天天看點

想成為機器學習工程師?這份自學指南你值得收藏1. 課程2. 練習3. FAQ

本文來自AI新媒體量子位(QbitAI)

這篇文章的作者為Andrey Nikishaev,他既是一個軟體開發者,也是一個創業者。

想成為機器學習工程師?這份自學指南你值得收藏1. 課程2. 練習3. FAQ

如何成長為一名機器學習工程師?

經常有人這麼問,而這篇文章就嘗試回答這個問題,其中會談到關于機器學習的方方面面,從簡單的線性回歸到最新的神經網絡。你不僅将學習如何使用這些技術,還将學習如何從頭開始建構它們。

這個指南主要面向計算機視覺(CV),這也是掌握一般知識的最快方式,從CV中擷取的經驗可以簡單地應用到機器學習的其他領域。

我們将使用TensorFlow作為架構。這些課程需要你會Python,雖然不要求你是大師,但至少要懂基本的知識。(另外,都是英語授課)

溫馨提示,學習知識與動手實踐相結合效果更佳。

1.1 約翰霍普金斯大學的實用機器學習

課程總共4周,使用者評分:4.4(5分制,下同)

位址:

https://www.coursera.org/learn/practical-machine-learning#syllabus

1.2 斯坦福大學的機器學習

課程總共11周,使用者評分:4.9。授課教師是大名鼎鼎的吳恩達。

https://www.coursera.org/learn/machine-learning

上面兩節課,會教給你資料科學和機器學習的基本知識,并為下面的學習做好準備。

1.3 CS231n:面向視覺識别的卷積神經網絡

總共16個課時,目前已更新為2017春季的最新版本。李飛飛是這節課程的導師。

http://cs231n.stanford.edu/

現在才算步入正軌。這是網上最好的機器學習與計算機視覺課程。
想成為機器學習工程師?這份自學指南你值得收藏1. 課程2. 練習3. FAQ

1.4 Google講深度學習

整個課程大約耗時三個月,導師為Google首席科學家Vincent Vanhoucke,以及Google Brain的技術負責人Arpan Chakraborty。

在這個課程中,将會教授深度學習的原理、設計可以從複雜的大型資料集學習的智能系統、訓練和優化基本的神經網絡、CNN、LSTM等。

https://www.udacity.com/course/deep-learning--ud730

選修課。你可以隻看其中練習的部分。

1.5 CS224d:面向自然語言處理的深度學習

總共17個課時。

http://cs224d.stanford.edu/

選修課。推薦給那些需要用到NLP的同學。課程内容也很棒。

1.6 深度學習電子書

Leonardo Araujo dos Santos整理的深度學習電子書。

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/

選看。這是一本涉及諸多機器學習領域的好書。

這部分給了一堆教程和項目的清單,你應該逐一嘗試并了解它們的工作原理,以及考慮如何進行改進提升。這個清單的存在,隻是為了增加你對機器學習的興趣,是以遇到一些困難也别氣餒,當你準備好就可以随時上手練習。

2.1 TensorFlow上的簡單練習

Kadenze學院出品,總共5個課時。

https://www.kadenze.com/courses/creative-applications-of-deep-learning-with-tensorflow-iv/info

2.2 Tensorflow菜單

這部分内容來自Nick McClure的電子書《TensorFlow Machine Learning Cookbook》。

https://github.com/nfmcclure/tensorflow_cookbook

2.3 Tensorflow-101教程部分

這是一個用Python和Jupyter Notebook編寫的教程。試圖為TensorFlow初學者提供盡可能的詳細解釋,希望對大家有用~

https://github.com/sjchoi86/Tensorflow-101

2.4 快速風格遷移網絡

https://github.com/lengstrom/fast-style-transfer

這個教程展示了如何使用神經網絡,将名畫的風格遷移到任何一張照片上。
想成為機器學習工程師?這份自學指南你值得收藏1. 課程2. 練習3. FAQ

2.5 圖像分割

這是一個使用TensorFlow實作的完全卷積網絡。作者Marvin Teichmann還提供了如何把這部分代碼內建到你的語義分割管道中的示例。

https://github.com/MarvinTeichmann/tensorflow-fcn

2.6 使用SSD實作物體識别

物體識别最快(也是最簡單)的模型之一

https://github.com/balancap/SSD-Tensorflow

2.7 面向物體識别和語義分割的快速掩膜RCNN

https://github.com/CharlesShang/FastMaskRCNN

2.8 強化學習

https://github.com/dennybritz/reinforcement-learning

非常有用,特别是當你想搭建一個機器人或者下一個DotA AI時。

2.9 Google大腦團隊的Magenta項目

https://github.com/tensorflow/magenta/tree/master/magenta/models

這個項目旨在通過神經網絡創造出色的藝術和音樂作品。

2.10 深度雙邊學習實時圖像增強

https://groups.csail.mit.edu/graphics/hdrnet/

一個很棒的圖像增強算法,來自Google。

2.11 自動駕駛汽車項目

https://github.com/udacity/self-driving-car

想造一輛自動駕駛汽車麼?這是一個很好的入門。
想成為機器學習工程師?這份自學指南你值得收藏1. 課程2. 練習3. FAQ

首先,你得明白機器學習不是100%精确的東西,大多數情況下隻是一個很好的猜測,并且需要大量的調整疊代。大多數情況下,想出一個獨特的點子是非常困難的,因為你的時間和資源将耗費在訓練模型上。

是以,不要自己想解決方案。去搜尋論文、項目,以及求助他人,積攢的經驗越多,你會幹的越好。給幾個可能有用的網站:

http://www.gitxiv.com

http://www.arxiv-sanity.com

https://arxiv.org

https://stackoverflow.com

很遺憾,并不是所有的科技人員都想把他們的成果公之于衆,但他們都需要發表論文來獲得“名“或者”利”。是以一些人可能隻釋出部分素材,或者給出錯誤的公式。是以找到代碼永遠比找到論文更有用。

參考上面推薦過的幾個網站,尤其是gitxiv.com,不僅僅能找到論文,而且還能找到代碼,是以特别實用。

雲更适用于有大量計算需求的情況。對于學習和測試來說,使用桌上型電腦/筆記本電腦要便宜得多,當然前提是配有支援CUDA的顯示卡。比方,我自己就用一個筆記本訓練模型,顯示卡是帶有690CUDA核心的GTX GeForce 960M。

當然,如果有免費的雲資源可用,當然要用。

訓練的主要問題是時間。你不可能一直坐在那看着訓練資料。是以,我建議你使用Grid Search。基本上,隻需要建立一組超參數和模型架構,然後一個接一個的運作,并儲存結果。這樣就能晚上訓練,白天比較結果,找到最有希望的那個。

詳情可以參考這個網址:

http://scikit-learn.org/stable/modules/grid_search.html

— 完 —

本文作者:問耕

原文釋出時間:2017-08-21 

繼續閱讀