首頁(yè)新聞動(dòng)態(tài)正文

Python培訓(xùn)之想成為機(jī)器學(xué)習(xí)工程師?這份自學(xué)指南你值得收藏

更新時(shí)間:2017-08-23 來(lái)源:黑馬程序員Python培訓(xùn)學(xué)院 瀏覽量:

這篇文章的作者為Andrey Nikishaev,他既是一個(gè)軟件開(kāi)發(fā)者,也是一個(gè)創(chuàng)業(yè)者。

如何成長(zhǎng)為一名機(jī)器學(xué)習(xí)工程師?

經(jīng)常有人這么問(wèn),而這篇文章就嘗試回答這個(gè)問(wèn)題,其中會(huì)談到關(guān)于機(jī)器學(xué)習(xí)的方方面面,從簡(jiǎn)單的線性回歸到最新的神經(jīng)網(wǎng)絡(luò)。你不僅將學(xué)習(xí)如何使用這些技術(shù),還將學(xué)習(xí)如何從頭開(kāi)始構(gòu)建它們。

這個(gè)指南主要面向計(jì)算機(jī)視覺(jué)(CV),這也是掌握一般知識(shí)的最快方式,從CV中獲取的經(jīng)驗(yàn)可以簡(jiǎn)單地應(yīng)用到機(jī)器學(xué)習(xí)的其他領(lǐng)域。

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

溫馨提示,學(xué)習(xí)知識(shí)與動(dòng)手實(shí)踐相結(jié)合效果更佳。

1. 課程

1.1 約翰霍普金斯大學(xué)的實(shí)用機(jī)器學(xué)習(xí)

課程總共4周,用戶評(píng)分:4.4(5分制,下同)

地址:

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

1.2 斯坦福大學(xué)的機(jī)器學(xué)習(xí)

課程總共11周,用戶評(píng)分:4.9。授課教師是大名鼎鼎的吳恩達(dá)。

地址:

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

上面兩節(jié)課,會(huì)教給你數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的基本知識(shí),并為下面的學(xué)習(xí)做好準(zhǔn)備。

1.3 CS231n:面向視覺(jué)識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)

總共16個(gè)課時(shí),目前已更新為2017春季的最新版本。李飛飛是這節(jié)課程的導(dǎo)師。

地址:

http://cs231n.stanford.edu/

現(xiàn)在才算步入正軌。這是網(wǎng)上最好的機(jī)器學(xué)習(xí)與計(jì)算機(jī)視覺(jué)課程。

1.4 Google講深度學(xué)習(xí)

整個(gè)課程大約耗時(shí)三個(gè)月,導(dǎo)師為Google首席科學(xué)家Vincent Vanhoucke,以及Google Brain的技術(shù)負(fù)責(zé)人Arpan Chakraborty。

在這個(gè)課程中,將會(huì)教授深度學(xué)習(xí)的原理、設(shè)計(jì)可以從復(fù)雜的大型數(shù)據(jù)集學(xué)習(xí)的智能系統(tǒng)、訓(xùn)練和優(yōu)化基本的神經(jīng)網(wǎng)絡(luò)、CNN、LSTM等。

地址:

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

選修課。你可以只看其中練習(xí)的部分。

1.5 CS224d:面向自然語(yǔ)言處理的深度學(xué)習(xí)

總共17個(gè)課時(shí)。

地址:

http://cs224d.stanford.edu/

選修課。推薦給那些需要用到NLP的同學(xué)。課程內(nèi)容也很棒。

1.6 深度學(xué)習(xí)電子書(shū)

Leonardo Araujo dos Santos整理的深度學(xué)習(xí)電子書(shū)。

地址:

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

選看。這是一本涉及諸多機(jī)器學(xué)習(xí)領(lǐng)域的好書(shū)。

2. 練習(xí)

這部分給了一堆教程和項(xiàng)目的清單,你應(yīng)該逐一嘗試并了解它們的工作原理,以及考慮如何進(jìn)行改進(jìn)提升。這個(gè)列表的存在,只是為了增加你對(duì)機(jī)器學(xué)習(xí)的興趣,所以遇到一些困難也別氣餒,當(dāng)你準(zhǔn)備好就可以隨時(shí)上手練習(xí)。

2.1 TensorFlow上的簡(jiǎn)單練習(xí)

Kadenze學(xué)院出品,總共5個(gè)課時(shí)。

地址:

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

2.2 Tensorflow菜譜

這部分內(nèi)容來(lái)自Nick McClure的電子書(shū)《TensorFlow Machine Learning Cookbook》。

地址:

https://github.com/nfmcclure/tensorflow_cookbook

2.3 Tensorflow-101教程部分

這是一個(gè)用Python和Jupyter Notebook編寫(xiě)的教程。試圖為T(mén)ensorFlow初學(xué)者提供盡可能的詳細(xì)解釋,希望對(duì)大家有用~

地址:

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

2.4 快速風(fēng)格遷移網(wǎng)絡(luò)

地址:

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

這個(gè)教程展示了如何使用神經(jīng)網(wǎng)絡(luò),將名畫(huà)的風(fēng)格遷移到任何一張照片上。

2.5 圖像分割

這是一個(gè)使用TensorFlow實(shí)現(xiàn)的完全卷積網(wǎng)絡(luò)。作者M(jìn)arvin Teichmann還提供了如何把這部分代碼集成到你的語(yǔ)義分割管道中的示例。

地址:

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

2.6 使用SSD實(shí)現(xiàn)物體識(shí)別

物體識(shí)別最快(也是最簡(jiǎn)單)的模型之一

地址:

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

2.7 面向物體識(shí)別和語(yǔ)義分割的快速掩膜RCNN

地址:

https://github.com/CharlesShang/FastMaskRCNN

2.8 強(qiáng)化學(xué)習(xí)

地址:

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

非常有用,特別是當(dāng)你想搭建一個(gè)機(jī)器人或者下一個(gè)DotA AI時(shí)。

2.9 Google大腦團(tuán)隊(duì)的Magenta項(xiàng)目

地址:

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

這個(gè)項(xiàng)目旨在通過(guò)神經(jīng)網(wǎng)絡(luò)創(chuàng)造出色的藝術(shù)和音樂(lè)作品。

2.10 深度雙邊學(xué)習(xí)實(shí)時(shí)圖像增強(qiáng)

地址:

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

一個(gè)很棒的圖像增強(qiáng)算法,來(lái)自Google。

2.11 自動(dòng)駕駛汽車(chē)項(xiàng)目

地址:

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

想造一輛自動(dòng)駕駛汽車(chē)么?這是一個(gè)很好的入門(mén)。

3. FAQ

如果中途卡住了怎么辦?

首先,你得明白機(jī)器學(xué)習(xí)不是100%精確的東西,大多數(shù)情況下只是一個(gè)很好的猜測(cè),并且需要大量的調(diào)整迭代。大多數(shù)情況下,想出一個(gè)獨(dú)特的點(diǎn)子是非常困難的,因?yàn)槟愕臅r(shí)間和資源將耗費(fèi)在訓(xùn)練模型上。

所以,不要自己想解決方案。去搜索論文、項(xiàng)目,以及求助他人,積攢的經(jīng)驗(yàn)越多,你會(huì)干的越好。給幾個(gè)可能有用的網(wǎng)站:

http://www.gitxiv.com

http://www.arxiv-sanity.com

https://arxiv.org

https://stackoverflow.com

為什么論文不能完全解決這個(gè)問(wèn)題,為什么論文有些地方是錯(cuò)的?

很遺憾,并不是所有的科技人員都想把他們的成果公之于眾,但他們都需要發(fā)表論文來(lái)獲得“名“或者”利”。所以一些人可能只發(fā)布部分素材,或者給出錯(cuò)誤的公式。所以找到代碼永遠(yuǎn)比找到論文更有用。

哪里可找到最新的資料?

參考上面推薦過(guò)的幾個(gè)網(wǎng)站,尤其是gitxiv.com,不僅僅能找到論文,而且還能找到代碼,所以特別實(shí)用。

我應(yīng)該用云計(jì)算還是臺(tái)式機(jī)/筆記本電腦?

云更適用于有大量計(jì)算需求的情況。對(duì)于學(xué)習(xí)和測(cè)試來(lái)說(shuō),使用臺(tái)式機(jī)/筆記本電腦要便宜得多,當(dāng)然前提是配有支持CUDA的顯卡。比方,我自己就用一個(gè)筆記本訓(xùn)練模型,顯卡是帶有690CUDA核心的GTX GeForce 960M。

當(dāng)然,如果有免費(fèi)的云資源可用,當(dāng)然要用。

如何更好地調(diào)整超參數(shù)?

訓(xùn)練的主要問(wèn)題是時(shí)間。你不可能一直坐在那看著訓(xùn)練數(shù)據(jù)。因此,我建議你使用Grid Search。基本上,只需要?jiǎng)?chuàng)建一組超參數(shù)和模型架構(gòu),然后一個(gè)接一個(gè)的運(yùn)行,并保存結(jié)果。這樣就能晚上訓(xùn)練,白天比較結(jié)果,找到最有希望的那個(gè)。


本文版權(quán)歸黑馬程序員Python培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

作者:黑馬程序員Python培訓(xùn)學(xué)院

首發(fā):http://zhongqishi.cn/news/python.html


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!