本文作者為 Andrey Nikishaev,既是軟件開發(fā)者,也是創(chuàng)業(yè)者。 如何成為一名機器學(xué)習(xí)工程師? 經(jīng)常有人這么問,這篇文章就嘗試回答這個問題,其中會談到關(guān)于機器學(xué)習(xí)各方面,從簡單的線性回歸到最新的神經(jīng)網(wǎng)絡(luò)。你不僅將學(xué)習(xí)如何使用這些技術(shù),還將學(xué)習(xí)如何從頭開始建構(gòu)。 這個指南主要針對電腦視覺(CV),這也是掌握一般知識的最快方式,從 CV 中抓取的經(jīng)驗可簡單應(yīng)用到機器學(xué)習(xí)的其他領(lǐng)域。 我們將使用 TensorFlow 為框架。這些課程需要你會 Python,雖然不要求你是大師,但至少要懂基本知識(另外,都是英語授課)。 溫馨提示,學(xué)習(xí)知識與動手實踐結(jié)合,效果更佳。 一、課程 1.1 約翰霍普金斯大學(xué)的實用機器學(xué)習(xí) 課程總共 4 周,用戶評分:4.4(5 分制,下同) 網(wǎng)址:https://www./learn/practical-machine-learning#syllabus 1.2 斯坦福大學(xué)的機器學(xué)習(xí) 課程總共 11 周,用戶評分:4.9。授課教師是大名鼎鼎的吳恩達。 網(wǎng)址:https://www./learn/machine-learning 上面兩節(jié)課,會教你數(shù)據(jù)科學(xué)和機器學(xué)習(xí)的基本知識,并為下面的學(xué)習(xí)做好準(zhǔn)備。 1.3 CS231n:面向視覺識別的卷積神經(jīng)網(wǎng)絡(luò) 總共 16 堂課,目前已更新為 2017 春季最新版本。李飛飛是這節(jié)課的導(dǎo)師。 網(wǎng)址:http://cs231n./ 現(xiàn)在才算步入正軌。這是網(wǎng)絡(luò)上最好的機器學(xué)習(xí)與電腦視覺課程。 1.4 Google 講深度學(xué)習(xí) 整個課程大約耗時 3 個月,導(dǎo)師為 Google 首席科學(xué)家 Vincent Vanhoucke,以及 Google Brain 的技術(shù)負責(zé)人 Arpan Chakraborty。 在這個課程中,將教授深度學(xué)習(xí)的原理、設(shè)計可從復(fù)雜的大型數(shù)據(jù)集學(xué)習(xí)的智能系統(tǒng)、訓(xùn)練和最佳化基本的神經(jīng)網(wǎng)絡(luò)、CNN、LSTM 等。 網(wǎng)址:https://www./course/deep-learning–ud730 選修課。你可以只看其中練習(xí)的部分。 1.5 CS224d:面向自然語言處理的深度學(xué)習(xí) 總共 17 堂課。 網(wǎng)址:http://cs224d./ 選修課。建議給那些需要用到 NLP 的同學(xué)。課程內(nèi)容也很棒。 1.6 深度學(xué)習(xí)電子書 Leonardo Araujo dos Santos 整理的深度學(xué)習(xí)電子書。 網(wǎng)址:https://leonardoaraujosantos./artificial-inteligence/content/ 選看。這是一本涉及諸多機器學(xué)習(xí)領(lǐng)域的好書。 二、練習(xí) 這部分給了一堆教程和項目清單,你應(yīng)該逐一嘗試并了解它們的工作原理,以及考慮如何改進提升。這個清單的存在,只是為了增加你對機器學(xué)習(xí)的興趣,所以遇到一些困難也別氣餒,當(dāng)你準(zhǔn)備好就可以隨時上手練習(xí)。 2.1 TensorFlow 上的簡單練習(xí) Kadenze 學(xué)院出品,總共 5 堂課。 網(wǎng)址:https://www./courses/creative-applications-of-deep-learning-with-tensorflow-iv/info 2.2 Tensorflow 食譜 這部分內(nèi)容來自 Nick McClure 的電子書《TensorFlow Machine Learning Cookbook》。 網(wǎng)址:https://github.com/nfmcclure/tensorflow_cookbook 2.3 Tensorflow-101 教程部分 這是一個用 Python 和 Jupyter Notebook 編寫的教程。嘗試為 TensorFlow 初學(xué)者提供盡可能的詳細解譯,希望對大家有用。 網(wǎng)址:https://github.com/sjchoi86/Tensorflow-101 2.4 快速風(fēng)格轉(zhuǎn)移網(wǎng)絡(luò) 網(wǎng)址:https://github.com/lengstrom/fast-style-transfer 這個教程展示如何使用神經(jīng)網(wǎng)絡(luò),將名畫風(fēng)格轉(zhuǎn)移到任何一張照片。 2.5 影像分割 這是一個使用 TensorFlow 實現(xiàn)的完全卷積網(wǎng)絡(luò)。作者 Marvin Teichmann 還提供如何把這部分字元集成到你的語義分割導(dǎo)管的示范。 網(wǎng)址:https://github.com/MarvinTeichmann/tensorflow-fcn 2.6 使用 SSD 達成物體識別 物體識別最快(也是最簡單)的模型之一。 網(wǎng)址:https://github.com/balancap/SSD-Tensorflow 2.7 面向物體識別和語義分割的快速掩膜 RCNN 網(wǎng)址:https://github.com/CharlesShang/FastMaskRCNN 2.8 強化學(xué)習(xí) 網(wǎng)址:https://github.com/dennybritz/reinforcement-learning 非常有用,特別是當(dāng)你想搭建一個機器人或下一個 DotA AI 時。 2.9 Google Brain 團隊的 Magenta 項目 網(wǎng)址:https://github.com/tensorflow/magenta/tree/master/magenta/models 這個項目旨在透過神經(jīng)網(wǎng)絡(luò)創(chuàng)造出色的藝術(shù)和音樂作品。 2.10 深度雙邊學(xué)習(xí)即時影像增強 網(wǎng)址:https://groups.csail./graphics/hdrnet/ 一個很棒的影像增強演算法,來自 Google。 2.11 自動駕駛汽車項目 網(wǎng)址:https://github.com/udacity/self-driving-car 想做一輛自動駕駛汽車嗎?這是很好的入門。 三、FAQ 如果中途卡住了怎么辦? 首先,你得明白機器學(xué)習(xí)不是 100% 精確的東西,大多數(shù)情況下只是一個很好的猜測,且需要大量調(diào)整更新。大多數(shù)情況下,想出一個獨特的點子非常困難,因為你的時間和資源將耗費在訓(xùn)練模型上。 所以,不要自己想解決方案。去搜索論文、項目,以及求助他人,積攢的經(jīng)驗越多,你會做得越好。提供幾個可能有用的網(wǎng)站:
為什么論文無法完全解決這個問題,為什么論文有些地方是錯的? 很遺憾,并不是所有科技人都想把成果公之于眾,但他們都需要發(fā)布論文來獲得“名”或“利”。所以一些人可能只發(fā)布部分素材,或者給錯誤的公式。所以找到程序碼永遠比找到論文更有用。 哪里可找到最新的數(shù)據(jù)? 參照上面建議過的幾個網(wǎng)站,尤其是 ,不僅能找到論文,而且還能找到程序碼,所以特別實用。 我應(yīng)該用云端計算還是桌機/筆記本電腦? 云端更適用大量計算需求的情況。對學(xué)習(xí)和測試來說,使用桌機或筆電要便宜得多,當(dāng)然前提是有支持 CUDA 的顯卡。比方,我自己就用筆電訓(xùn)練模型,顯卡是有 690CUDA 核心的 GTX GeForce 960M。 當(dāng)然,如果有免費的云資源可用,當(dāng)然要用。 如何調(diào)整超參數(shù)更好? 訓(xùn)練的主要問題是時間。你不可能一直坐在那看著訓(xùn)練數(shù)據(jù)。因此,我建議你使用 Grid Search?;旧?,只需要建立一組超參數(shù)和模型架構(gòu),然后一個接一個執(zhí)行,并儲存結(jié)果。這樣就能晚上訓(xùn)練,白天比對結(jié)果,找到最有希望的那個。詳情可參照這個網(wǎng)址:http:///stable/modules/grid_search.html。
|
|
來自: 公司總裁 > 《干貨/手冊/材料/工量具/樣本》