寧婕
由於機器學習比較火,待遇也比較高,所以很多的程序員小哥都會想要轉型到機器學習的領域,包括我前段時間也有過此類的想法,想去學習一下機器學習的內容。
對於程序員最重要的能力,我也曾經對很多人講過,就是學習,當然,我也自認為自己的學習能力其實還算不錯。所以在電腦上安裝了TensorFlow,然後去Google TensorFlow的官網上去看他的教材和Demo。
然後,我就被打擊了。
可能對於很多程序員來說,以前可能是做.NET應用程序的,或者Java應用程序的,然後想轉行去做遊戲,那學習一下游戲的一些引擎,類似U2D, U3D,然後做一些練習,基本就可以入門了。
但是機器學習其實對編程方面的能力要求並不是特別的高,機器學習對什麼要求最高呢?數學。
如果想學習機器學習相關知識的同學,可以去看看http://www.tensorfly.cn,它有很多關於機器學習的文章和demo。
我們平時在看技術文章的時候,我們可以看到很多很多的代碼,甚至會有demo的代碼下載。
但是我們看機器學習的文章的時候,會發現,裡面出現得最多的兩個字叫“算法”。
我們可以看到很多這樣的內容:
說實話,做互聯網已經10多年了,計算機的知識,代碼的知識,可以說我都問題不大。但是數學真的已經還給老師了。
一篇關於機器學習的文章看完以後,給我的感覺就是,完全不知道寫的什麼,這些一個個的數學公式是什麼鬼?
所以,如果大家想要從程序員轉型到機器學習領域,我推薦大家去看的第一本書就是《高等數學》。
先從基礎開始學習吧,把數學的基礎知識先穩固一下,這樣我們才能夠看得懂那些更深入的知識,自然,我們大學時候可能並不上心的《高等數學》,就需要好好的研讀一下了,如果你還保留的上課的筆記,少年,你是好樣的。
高數我們複習好了,接下來就是概率了,一本《概率論》掏出來吧。
說穿了,機器學習裡面有很多和概率有關的算法,那不瞭解概率的基礎知識,只從應用出發是不合理的。
當你把這兩本書的知識都複習好了以後,那麼就可以開始你的算法之路了。《Deep Learning》可以讓你充分的瞭解深度學習的算法知識。
當然,可能很多的同學和我一樣,已經把數學知識都還給老師了,直接的去看數學方面的書,可能很難能夠回憶起當時的學習內容。
這個時候,可能你需要找個老師,好好的教教你數學了,無論是培訓班,還是一些大學的課程,去學習一下吧,這樣能夠接受得快一點。
如果同學你本來就是數學系出生,並且你的數學知識比較牢固,那恭喜了,你比學計算機的更加適合機器學習領域。
總而言之,人工智能領域重要的是數學,所以,程序員們,轉型之前要慎重考慮。
會技術的葛大爺
兩個字—學習。一個程序員,最不該丟掉的能力就是學習能力。那麼該如何來進行學習呢?這裡我結合自身經驗來推薦一些機器學習的入門級教材。
- 《機器學習》.周志華老師的機器學習是一本非常經典的入門教材,書中系統梳理了傳統的幾大類機器學習算法,並且附帶了大量的習題。對於這本書,無需介紹太多,我的建議就是對著書,把書中的算法自己推到一遍。至於實例代碼,我建議使用MATLAB(附帶了很多機器學習庫)再重新編寫一遍,相信會對書中理論有更深的認識。
- 《機器學習實戰》 .這本書由前英特爾工程師哈林頓編寫,全書代碼均使用Python實現,如果不熟悉,建議先學習一下Python(很簡單優雅的一門語言)。這本書的作者從工程師的視角出發,把實際工作和枯澀的理論聯繫在了一起,可以讓人實實在在感受到編程的樂趣,是一本難得的好書。
- 《深度學習》.該書由Google及加拿大蒙特利爾大學的三位科學家編著而成 。這本書雖然是主講深度學習(機器學習的一個分支,目前的主流研究方向),但還是系統的先介紹了一遍機器學習的基本理論,相信就算你沒有基礎直接看這本書,也還是能夠獲得一些基本的概念。主體深度學習部分講的就更為詳細,書中涉及內容過多,這裡就不一一贅述,建議這本書要慢慢的讀,做好筆記,最好能夠經常複習。
- 《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/