程序員如何轉型到機器學習領域之一?

寧婕

由於機器學習比較火,待遇也比較高,所以很多的程序員小哥都會想要轉型到機器學習的領域,包括我前段時間也有過此類的想法,想去學習一下機器學習的內容。

對於程序員最重要的能力,我也曾經對很多人講過,就是學習,當然,我也自認為自己的學習能力其實還算不錯。所以在電腦上安裝了TensorFlow,然後去Google TensorFlow的官網上去看他的教材和Demo。

然後,我就被打擊了。

可能對於很多程序員來說,以前可能是做.NET應用程序的,或者Java應用程序的,然後想轉行去做遊戲,那學習一下游戲的一些引擎,類似U2D, U3D,然後做一些練習,基本就可以入門了。

但是機器學習其實對編程方面的能力要求並不是特別的高,機器學習對什麼要求最高呢?數學。

如果想學習機器學習相關知識的同學,可以去看看http://www.tensorfly.cn,它有很多關於機器學習的文章和demo。

我們平時在看技術文章的時候,我們可以看到很多很多的代碼,甚至會有demo的代碼下載。

但是我們看機器學習的文章的時候,會發現,裡面出現得最多的兩個字叫“算法”。

我們可以看到很多這樣的內容:

說實話,做互聯網已經10多年了,計算機的知識,代碼的知識,可以說我都問題不大。但是數學真的已經還給老師了。

一篇關於機器學習的文章看完以後,給我的感覺就是,完全不知道寫的什麼,這些一個個的數學公式是什麼鬼?

所以,如果大家想要從程序員轉型到機器學習領域,我推薦大家去看的第一本書就是《高等數學》

先從基礎開始學習吧,把數學的基礎知識先穩固一下,這樣我們才能夠看得懂那些更深入的知識,自然,我們大學時候可能並不上心的《高等數學》,就需要好好的研讀一下了,如果你還保留的上課的筆記,少年,你是好樣的。

高數我們複習好了,接下來就是概率了,一本《概率論》掏出來吧。

說穿了,機器學習裡面有很多和概率有關的算法,那不瞭解概率的基礎知識,只從應用出發是不合理的。

當你把這兩本書的知識都複習好了以後,那麼就可以開始你的算法之路了。《Deep Learning》可以讓你充分的瞭解深度學習的算法知識。

當然,可能很多的同學和我一樣,已經把數學知識都還給老師了,直接的去看數學方面的書,可能很難能夠回憶起當時的學習內容。

這個時候,可能你需要找個老師,好好的教教你數學了,無論是培訓班,還是一些大學的課程,去學習一下吧,這樣能夠接受得快一點。

如果同學你本來就是數學系出生,並且你的數學知識比較牢固,那恭喜了,你比學計算機的更加適合機器學習領域。

總而言之,人工智能領域重要的是數學,所以,程序員們,轉型之前要慎重考慮。


會技術的葛大爺

兩個字—學習。一個程序員,最不該丟掉的能力就是學習能力。那麼該如何來進行學習呢?這裡我結合自身經驗來推薦一些機器學習的入門級教材。

  1. 《機器學習》.周志華老師的機器學習是一本非常經典的入門教材,書中系統梳理了傳統的幾大類機器學習算法,並且附帶了大量的習題。對於這本書,無需介紹太多,我的建議就是對著書,把書中的算法自己推到一遍。至於實例代碼,我建議使用MATLAB(附帶了很多機器學習庫)再重新編寫一遍,相信會對書中理論有更深的認識。
  2. 《機器學習實戰》
    .這本書由前英特爾工程師哈林頓編寫,全書代碼均使用Python實現,如果不熟悉,建議先學習一下Python(很簡單優雅的一門語言)。這本書的作者從工程師的視角出發,把實際工作和枯澀的理論聯繫在了一起,可以讓人實實在在感受到編程的樂趣,是一本難得的好書。
  3. 《深度學習》.該書由Google及加拿大蒙特利爾大學的三位科學家編著而成
    。這本書雖然是主講深度學習(機器學習的一個分支,目前的主流研究方向),但還是系統的先介紹了一遍機器學習的基本理論,相信就算你沒有基礎直接看這本書,也還是能夠獲得一些基本的概念。主體深度學習部分講的就更為詳細,書中涉及內容過多,這裡就不一一贅述,建議這本書要慢慢的讀,做好筆記,最好能夠經常複習。
  4. 《Tensorflow實戰:第二版》.這本書詳細介紹了當今最為流行的深度學習框架——谷歌公司推出的Tensorflow
    。書中從做應用的角度介紹了tensorflow框架的結構和一些使用案例,並給出部分示例代碼,相信學完這本書會對深度學習有一個更新的認識。
這裡就先介紹這麼多,歡迎打擊關注太科羅技,並在下方積極留言補充。

太科羅技

轉型進入機器學習領域有很多方式,這裡我給你推薦一些學習資源吧。


1. 在線課程

斯坦福大學在計算機科學和機器學習領域是處在世界前列的,這個學校有很多公開課,網上都可以找得到資源的,其中比較有名的是吳恩達的“CS229 | Machine Learning”還有李飛飛的“CS231n | Convolutional Neural Networks for Visual Recognition”。如果看英文比較費勁的話,網易雲課堂上有配有中文字幕的課程,鏈接在這裡(http://study.163.com/category/AI)。

網易雲課堂上也有其他很多關於機器學習、人工智能的課程資源。






2. 書籍推薦


周志華《機器學習》(俗稱西瓜書)


李航《統計學習方法》


《機器學習實戰》


《深度學習》(俗稱花書)




3. 實戰平臺


kaggle是一個很棒的實戰平臺,因為它上邊有許多現實中的問題的數據集可供使用。你也可以查看內核,看看別人對比賽的數據集所使用的解決方案,可以邊實戰邊學習。


網址:https://www.kaggle.com/


GitHub是一個開源社區,也可以說是一個代碼倉庫,這上邊有許多別人開源出來的代碼和項目,通過閱讀別人的代碼來學習,也可以幫助你更快地學習。


網址:https://github.com/




4. 論文


毫無疑問,要跟上時代前沿,看論文必不可少。許多大佬的研究成果會第一時間以論文的形式放出來,如果不去閱讀論文,就不知道大佬在做什麼研究工作。


這裡放出來一個網址,這上邊可以免費下載論文。


網址:https://arxiv.org/





分享到:


相關文章: