從簡單的線性回歸(linear regressoin)到最新的神經(jīng)網(wǎng)絡(neural network),我們將引導你學習機器學習(ML:machine learning)的各個方面,不僅學習如何使用它們,而且學習如何從頭開始構建它們。
這條學習路徑的很大一部分是以計算機視覺(CV: Computer Vision)為導向的,因為它是獲得機器學習領域的知識的最快方法,CV的經(jīng)驗可以簡單地轉(zhuǎn)移到任何ML領域。
我們將使用TensorFlow作為ML框架,因為它是目前看來最有前途的機器學習框架,并且可以直接用于生產(chǎn)環(huán)境。
如果你在學習理論和實踐的同時加以實踐,那么學習效果會更好。
此外,如果你想嘗試解決現(xiàn)實生活中的實際問題,我建議你在Kaggle注冊,因為這種競賽有助于豐富你的簡歷。
基本技能要求:Python。
你不需要是一個Python專家,掌握基本的知識就夠了。碰到問題可以查手冊。
1.1 約翰霍普金斯大學的實用機器學習
網(wǎng)址: https://www.coursera.org/learn/practical-machine-learning
1.2 斯坦福大學的機器學習
網(wǎng)址: https://www.coursera.org/learn/machine-learning
這兩個課程主要是關于數(shù)據(jù)科學和機器學習方面的基本知識,讓你為解決真正的問題做好基礎知識的準備。
1.3 Andrew Ng的深度學習課程
網(wǎng)址:https://www.coursera.org/specializations/deep-learning
1.4 CS231n:用于視覺識別的卷積神經(jīng)網(wǎng)絡2017
網(wǎng)址:http://cs231n.stanford.edu/
這是你可以在互聯(lián)網(wǎng)上找到有關ML&CV的最好的課程之一。 它不僅會告訴你計算機視覺現(xiàn)在可以達到的高度,而且會幫你打好基礎以便進一步深入。
1.5 Google深度學習
網(wǎng)址:https://www.udacity.com/course/deep-learning--ud730
可選課程。 你可以只學習其中的實戰(zhàn)部分。
1.6 CS224d:使用深度學習進行自然語言處理
網(wǎng)址:http://cs224d.stanford.edu/
如果要使用自然語言處理(NLP: Natural Language Processing)技術,可以選擇這門課程。 嗯,很棒的課程。
1.7 深度學習書
網(wǎng)址:https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/
很好的手冊,涵蓋ML的諸多方面。
這份清單包括許多教程和項目,你可以嘗試、理解它們是如何工作的,并考慮如何進行改進。 這個清單是為了增加你對ML的專業(yè)知識了解和興趣而整理的,所以如果其中某些任務對你現(xiàn)在來說還很難,那么不妨在你打好基礎以后再回頭學習。
2.1 Kadenze的Tensorflow簡明實踐課程
網(wǎng)址:https://www.kadenze.com/courses/creative-applications-of-deep-learning-with-tensorflow-iv/info
2.2 Tensorflow碼書
網(wǎng)址:https://github.com/nfmcclure/tensorflow_cookbook
2.3 Tensorflow-101教程集
網(wǎng)址:https://github.com/sjchoi86/Tensorflow-101
2.4 快速風格遷移網(wǎng)絡
網(wǎng)址:https://github.com/lengstrom/fast-style-transfer
講解如何使用神經(jīng)網(wǎng)絡將繪畫風格遷移到任何照片上。
2.5 圖像分割
網(wǎng)址:https://github.com/MarvinTeichmann/tensorflow-fcn
2.6 使用SSD進行對象檢測
網(wǎng)址:https://github.com/balancap/SSD-Tensorflow
SSD是用于對象檢測的最快、也更簡單的模型之一。
2.7 用于對象檢測和分割的快速掩碼遞歸卷積網(wǎng)絡
網(wǎng)址:https://github.com/CharlesShang/FastMaskRCNN
2.8 強化學習
網(wǎng)址:https://github.com/dennybritz/reinforcement-learning
強化學習是非常有用的機器學習技術,特別是如果你想打造一個智能機器人或下一個Dota AI :)
2.9 來自Google Brain團隊的Magenta項目
網(wǎng)址:https://github.com/tensorflow/magenta/tree/master/magenta/models
該項目旨在利用神經(jīng)網(wǎng)絡創(chuàng)作藝術和音樂。 成果相當可觀。
2.10 用于實時圖像增強的深度雙邊學習
網(wǎng)址:https://groups.csail.mit.edu/graphics/hdrnet/
來自Google的新算法,用于圖片增強
2.11 自動駕駛項目
網(wǎng)址:https://github.com/udacity/self-driving-car
想讓你的車實現(xiàn)全自動駕駛? - 這是一個很好的起點。
首先,你必須明白,ML不是100%精確的 - 大多數(shù)情況下只能是一個很好的猜測和大量的調(diào)整迭代。 因此,在大多數(shù)情況下,因為你花費在模型訓練上的時間和資源的限制,靠自己提出一些獨特的想法是非常困難的。 所以盡量不要試圖自己找出解決方案 - 搜索論文、項目、可以幫助你的人。 越快獲得經(jīng)驗越好。
有些網(wǎng)站可以幫助你:
http://www.gitxiv.com/
http://www.arxiv-sanity.com/
https://arxiv.org/
https://stackoverflow.com
很可惜,但并不是所有的技術人員都想公開其工作,但是他們都需要出版物才能獲得資助和聲譽。 所以有些人只是公布一部分材料,或者是故意在公式中引入錯誤。 這就是為什么搜索代碼要好于論文。 你應該把這些論文看作是某個問題已經(jīng)得到解決的證據(jù)或事實。
我使用這幾個網(wǎng)站來跟蹤機器學習領域的最新進展:
http://www.gitxiv.com/
http://www.arxiv-sanity.com/
https://arxiv.org/
首先你可以找到的不僅僅是一篇論文,而且其中包含有實驗代碼,所以更實用。
云計算是密集型計算的最佳選擇。 對于學習和測試而言,使用帶有CUDA圖形卡的PC /筆記本電腦則要便宜得多。 例如,我使用裝有GTX GeForce 960M顯卡的筆記本電腦訓練所有的模型。
當然,如果你已經(jīng)有云或可以免費獲得的云資源,可以使用它。
訓練中的主要問題是需要時間。 你不能坐下來一直盯著訓練數(shù)據(jù)看。 出于這個原因,我建議你使用網(wǎng)格搜索(grid search)。 基本上,只需創(chuàng)建超參數(shù)集和模型體系結(jié)構,然后一個接一個地運行并保存結(jié)果。 因此,你可以在晚上進行訓練,并在第二天比較結(jié)果,從而找出最好的參數(shù)。
你可以看看在sklearn庫中是如何進行網(wǎng)格搜索的,
建議你收藏這篇文章,我相信你會時不時地需要它:-)
原文:How To Become A Machine Learning Engineer: Learning Path