從線性回歸到神經網路,機器學習工程師的進階之路
原文來源:hackernoon
作者:AndreyNikishaev
「機器人圈」編譯:嗯~阿童木呀、多啦A亮
在開始之前,我想告訴大家,我們將從最簡單的線性回歸開始,一直到最新的神經網路,從而讓你能夠了解機器學習的所有方面,相信你學習之後,不僅懂得該如何使用它們,還知道該如何從頭開始構建它們。
其實,這條學習之路中大部分知識是基於計算機視覺(CV)的,因為它是一條獲得一般知識的最佳捷徑,而從CV中獲得的經驗知識可以簡單地轉移到任何機器學習(ML)領域。
我們將使用TensorFlow作為ML框架,因為它是最有前途且早已準備充足的學習材料。
還有一點需要聲明的是,如果你現在正在學習相關理論和材料,且同時不斷地從已學材料中獲得經驗的話,學習效果將會更好。
此外,如果你想與那些能夠解決現實生活問題的人競爭,我建議你在Kaggle上註冊成為會員,以學習更多知識,因為它可能是你的簡歷中一個很好的加分項。
要求
Python,當然,你不必是成為一個導師,只要將基礎的知識掌握牢靠就很好了。關於其他任何相關知識,這裡有補充手冊。)
1.課程
1.1約翰霍普金斯大學的實用機器學習。
(https://www.coursera.org/learn/practical-machine-learning)
1.2斯坦福大學的機器學習
(https://www.coursera.org/learn/machine-learning)
前兩個課程主要講的是數據科學和機器學習的基本知識,從而使你準備充分開始一個真正的機器學習的艱難旅程。
(2016的版本在此處
http://academictorrents.com/details/46c5af9e2075d9af06f280b55b65cf9b44eb9fe7)
這就是你開始要好好學習的東西了,這是你能夠在互聯網上找到關於ML和CV的最好的課程。它不僅會告訴你這個領域的知識有多麼深,而且還會為你提供進一步調查的良好基礎。
1.4 *Google深度學習(https://www.udacity.com/course/deep-learning--ud730)
可選課程。你可以只選擇其中的實用部分。
對於那些想要掌握自然語言處理的人來說這是一個可選課程。不過,它確實很棒)
1.6 *深度學習教材(https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/)
這是涵蓋了ML許多方面的實用手冊。
2.實踐部分
該列表包括許多教程和項目,你可以試著去運行相關程序,了解它們的工作原理,並考慮該如何改進它們。創建這個列表的目的就是增加你在ML領域的專業知識和興趣,所以即使有些任務對你來說很難,也不要害怕,你可以在準備就緒時再回頭開始嘗試。
2.1來自Kadenze的Tensorflow的簡單實踐課程
(https://www.kadenze.com/courses/creative-applications-of-deep-learning-with-tensorflow-iv/info)
2.2Tensorflow教學集(https://github.com/nfmcclure/tensorflow_cookbook)
2.3Tensorflow-101教程集
(https://github.com/sjchoi86/Tensorflow-101)
2.4快速風格遷移網路
(https://github.com/lengstrom/fast-style-transfer)
這將顯示如何使用神經網路將名畫中的風格遷移到任何照片中。
2.5圖像分割
(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 Brain團隊的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)
想讓你的汽車實現全自動?——這是一個很好的起點。
常見問題解答
如果你被難住了怎麼辦?
首先,你必須明白,機器學習不是100%精確的——大多數情況只是一個很好的猜測和大量的優化迭代。所以在大多數情況下想出一些獨特的想法是非常困難的,因為你將花大量的時間和資源來訓練模型。所以不要試圖自己找出解決方案——你應該搜索論文、項目以及尋找可以幫助你的人。這樣,你會更快更好地獲得經驗。
一些可以幫助你的網站:http://www.gitxiv.com/,http://www.arxiv-sanity.com/,https://arxiv.org/,https://stackoverflow.com
為什麼論文不能完全解決問題,甚至有些地方是錯的?
很可惜,但並不是所有的科技人員都想公開他們的工作,但他們都需要通過發表出版物才能獲得資助和成功。所以其中有些只是發布資料的一部分,或者故意在公式中出錯。這就是為什麼總是能更好地搜索到代碼而不是論文。你應該把這些論文當成一個論據或者某個問題解決的事實。
在哪裡可以找到最新的資料?
我使用這幾個網站http://www.gitxiv.com/,http://www.arxiv-sanity.com/,https://arxiv.org/。第一個網站不僅僅是一篇論文,也是一個代碼,所以更實用。
我應該使用雲端還是PC /筆記本電腦進行計算?
雲是最適合計算生產模型的。對於學習和測試,使用CUDA顯卡的PC /筆記本電腦經濟得多。例如,我用GTX GeForce 960M和690 CUDA內核在筆記本上訓練所有模型。
當然,如果你有雲或免費資助的設備,可以使用它。
如何改進模型超參數的優化?
在訓練中的主要問題是時間。你不能只是坐著觀看訓練統計數據。因此,我建議你使用GridSearch。基本上,只需創建一組超參數和模型體系結構,然後一個接一個地運行它們,保存結果就可以了。因此,你可以在晚上進行訓練,在第二天比較結果,找到最有中意的一個。
你可以在sklearn庫中查看如何完成:http://scikit-learn.org/stable/modules/grid_search.html
來源:機器人圈
點擊展開全文
※用Python實現CNN長短期記憶網路!你也行
※詳解徑向基函數神經網路RBNN,它和多層感知器MLP有何區別
※K-NN聚類演算法的良好泛化,可用於數據簡化
※未標註的數據如何處理?一文讀懂變分自編碼器VAE
TAG:機器人圈 |
※機器學習與神經網路
※機器學習中的人工神經網路
※機器學習、深度學習、神經網路、深度神經網路之間有何區別?
※輕鬆機器學習-神經網路的歷史
※還差一步之學習神經網路
※從生物神經網路到人工神經網路
※使用前向神經網路做線性回歸
※使用徑向基神經網路做非線性回歸
※神經網路進化能否改變機器學習?
※在機器學習中經常使用的6種人工神經網路
※深度學習還是之前的神經網路嗎?
※輕鬆機器學習-兩層神經網路
※機器學習研究者必知的八個神經網路架構
※掌握神經網路,入門深度學習
※深度學習與神經網路概述
※學界 | 牛津大學提出神經網路新訓練法:用低秩結構增強網路壓縮和對抗穩健性
※從腦波到機器人運動,使用深度神經網路對大腦活動進行解碼
※網路課程的學習效果提升
※挑戰與機遇:新媒體時代下的網路凈化工程
※聽專家談網路文學的出版之路