天天看點

資源 | 普通程式員如何自學機器學習

機器學習工程師自學指南

     本文将會介紹機器學習的方方面面,從簡單的線性回歸到最新的神經網絡,你不僅僅能學會如何使用它們,并且還能從零進行建構。

     以下内容以計算機視覺為導向,這是學習一般知識的最快方法,并且你從中獲得的經驗可以很容易地遷移到機器學習的其他領域。

     本文我們将會使用TensorFlow作為機器學習架構。

     學習是一個多元因素作用的結果,是以如果能基于學習資料,理論和實踐并重,學習效果會好很多。另外,還有一個很好的實踐方法是參與Kaggle競賽,通過競賽的形式解決實際生活中的問題,進而鞏固此前所學。

(要求:關于Python,你無需達到專家級别,但要很好地掌握基礎知識)

1.課程

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

www.coursera.org/learn/pract…

1.2 機器學習(斯坦福大學)

www.coursera.org/learn/machi…

以上兩個課程會教你一些資料科學和機器學習的基礎知識,也有助于你對更有難度知識的學習和掌握。

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

cs231n.stanford.edu/

該課程是網上關于ML & CV最好的課程之一,不僅能讓你了解這裡邊的水有多深,還能為你進一步的研究探索打下良好的基礎。

1.4 深度學習(Udacity的課程)

www.udacity.com/course/deep…

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

cs224d.stanford.edu/

1.6 深度學習相關的電子書(涵蓋了ML的方方面面)

leonardoaraujosantos.gitbooks.io/artificial-…

2.實戰

以下是課程和項目清單,有助于了解運作原理并找到提升辦法。

2.1. Tensorflow 相關的簡單練習課

www.kadenze.com/courses/cre…

2.2. Tensorflow cookbook

github.com/nfmcclure/t…

2.3. Tensorflow-101教程部分

github.com/lengstrom/f…

2.4. 如何使用神經網絡實作圖像風格遷移。

2.5 圖像分割

github.com/MarvinTeich…

2.6 使用SSD實作物體識别

github.com/balancap/SS…

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

github.com/CharlesShan…

2.8 強化學習,對搭建一個機器人或者Dota AI非常有用。

github.com/dennybritz/…

2.9 Google Brain團隊的Magenta項目

github.com/tensorflow/…

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

groups.csail.mit.edu/graphics/hd…

2.11 自動駕駛汽車項目

github.com/udacity/sel…

3. FAQ

學習過程中遇到困難怎麼辦?

首先,你必須明白機器學習不是100%精确的,大多數情況下隻是一個很好的猜測并且需要大量的調整疊代。是以,在大多數情況下,想出一些獨特的想法是非常困難的,因為你的時間和資源大多會花在訓練模型上。是以不要試圖獨自找出解決方案,你可以搜尋論文、項目以及找可以幫助你的人。可以說,在獲得經驗方面越快越好。

以下這些網站可以幫得到你:

  • www.gitxiv.com/
  • www.arxiv-sanity.com/
  • arxiv.org/, https://s…

為什麼論文不能完全解決問題,或者在一些特定情況下為什麼論文被驗證是錯的?

很遺憾的說,并不是所有的科技人員都願意公開自己的研究成果,但他們需要通過發表論文來獲得收益或者名望。是以他們中的一些人隻公布了一部分材料,或者給出了錯誤的公式。是以我們最好搜尋代碼,而不是論文。論文隻是解決了特定問題的證據或者事實。

從哪裡查找最新的學習資料?

  • www.gitxiv.com/,不僅能找到最新論文,還能找到所需要的代碼。
  • arxiv.org/

用雲計算還是桌上型電腦/筆記本電腦?

在有大量計算需求的情況下,雲計算是最好的選擇。對于學習和測試,使用帶有支援CUDA的顯示卡的PC/筆記本電腦要便宜得多。當然,如果你有免費雲資源或多餘資金,還是使用雲比較好。

如何提高調超參數技能?

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

你可以看看如何在sklearn庫中完成這個操作:

scikit-learn.org/stable/modu…

努力奮鬥的小墨魚 ---- http://www.cnblogs.com/WayneZeng/