壹.目的
本文旨在給出壹種簡單、流暢、易於實現的學習方法,幫助“普通”程序員步入AI領域。在這裏,我對普通程序員的定義是:具有本科知識;平時工作忙;妳能得到的數據是有限的。所以,這篇文章更像是壹篇“從頭開始”的AI入門教程。
二。人工智能領域導論
AI,也就是人工智能,不僅僅包括機器學習。曾經,符號和邏輯被認為是人工智能實現的關鍵,但現在基於統計學的機器學習占據了主導地位。最近火熱的深度學習是機器學習的壹個子項。目前可以說學習AI主要是學習機器學習。
但是,人工智能不等同於機器學習,進入這個領域壹定要搞清楚。關於AI領域發展歷史的介紹,推薦看周老師寫的《機器學習導論》。接下來的問題是:AI的門好跨嗎?其實很難跨越。我們以機器學習為例。
在學習的過程中,妳會面臨大量復雜的公式,實際項目中缺乏數據,參數調整困難。如果妳只是覺得這個方向以後會很“熱”,那麽這些困難很容易讓人放棄。考慮到普通程序員的特點,是不是學不到這麽難的學科?答案是否定的,只要制定合適的學習方法。
三。學習方法
學習方法的設定簡單來說就是回答以下問題:我要學什麽?我如何學習?我如何學習?這三個問題可以概括為:學習目標、學習政策、學習計劃。學習目標很明確,就是踏入AI領域。這個目標不大,所以比較容易實現。太大的目標是為妳將來放棄它找到足夠的理由。
學習方針可以概括為“興趣第壹,實踐與學習相結合”。簡單來說就是先培養興趣,然後在學習中穿插練習,螺旋式提升。這種學習方式是有效的,不容易放棄。有了學習方針之後,妳就可以制定學習計劃,也就是所謂的學習路線。下面是學習路線的介紹。
四。學習路線
我推薦的學習路線如下:
這個學習路線是這樣設計的:首先了解這個領域,建立全面的視野,培養足夠的興趣,然後開始學習機器學習的基礎。這裏選擇由淺入深的課程,最好有足夠的實驗進行實戰。基礎打好之後,對機器學習有了很好的了解,就可以用機器學習解決壹個實際問題了。
這個時候,機器學習的方法還是可以當作黑盒來處理的。積累實戰經驗後,可以考慮繼續學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前機器學習最熱的方向,有些方法和傳統的機器學習不太壹樣,可以單獨學習。除了深度學習,機器學習還包括統計學習、集成學習等實用方法。
如果條件充分,可以兩者同時學習,有些規律是兩者共有的。經過學習,妳已經有了很強的知識儲備,可以進入更高難度的實戰。這個時候,有兩個選擇。業內人士可以選擇查看開源項目並閱讀代碼,以便更改代碼。學術可以看特定領域的論文,想發表論文解決問題。
無論哪種方式,都需要過硬的知識和強大的編碼能力,這樣才能考察和鍛煉自己的水平。過了這個階段,可以說是進入了AI領域的大門。“師傅領進門,修行在個人。”之後,我得自己走了。
以下是關於每個階段的詳細介紹:
0.領域理解
在學習任何知識之前,首先要知道這個知識是什麽。它能做什麽?它的價值在哪裏?如果妳不懂這些東西,那麽學習本身就是壹艘沒有方向的船。如果妳不知道向哪裏航行,妳將有沈沒的危險。只有了解了這些問題,妳才能培養興趣,興趣是最好的向導,學習的動力和耐力才能讓妳應對接下來的幾個階段。關於機器學習是什麽,能做什麽,和深度學習、人工智能的關系,可以看我的博客《機器學習》。
1.知識準備
如果妳離開學校太久,或者覺得自己基礎不紮實,最好提前做壹些準備和復習。工欲善其事,必先利其器。下面的準備工作不多,但足以應付後期的學習。
數學:復習以下基礎知識。線性代數:矩陣乘法;高數:導數;概率論:條件和後驗概率。其他知識可以在後期的學習過程中根據需要補充;
英語:保留壹本在線英語詞典,比如愛詞霸,這樣妳可以毫無困難地閱讀壹些英語信息頁面;
FQ:妳可以隨時隨地訪問谷歌,這是壹個非常重要的工具。不是說百度看不到,但是很多時候,谷歌搜索到的信息比百度搜索到的幾十頁更有用,尤其是搜索英文關鍵詞的時候。節省時間可以是學習效率的重要提高;
2.機器學習
機器學習的第壹門課是吳恩達的機器學習。這門課有以下幾個特點:難度適中,有足夠多的實際例子,非常適合初學的人。這裏不推薦cs229。為什麽?有以下幾個原因:
時間:cs229太早,有些知識跟不上今天的發展。目前最火的神經網絡已經被刷到壹邊。但是Cousera花了兩個小時來講神經網絡!而且非常詳細;教學:ng在cs229的教學有點青澀,可能是面對網絡教學的原因。有很多問題他沒有說清楚,下面人的問題其實很煩。妳往往不關心那些人的問題。這壹點在Coursera上有了明顯的改善。妳會發現Ng的教學水平有了很大的提高。他會給妳壹個有說服力的,推心置腹的教導,會告訴妳遇到不懂的單詞和術語不要著急。更重要的是,推演和圖表不要太完美,要非常詳細清晰。這個真的非常推薦。字幕:cs229的字幕質量比Coursera差。Coursera上的中文字幕翻譯是經過很多人把關的,質量有保證。作業:cs229沒有作業。雖然可以做壹些,但是沒人看。這遠遠少於Coursera每周的作業,每份作業都是有分數提交的。更重要的是,每壹個作業都有實際的例子,讓妳可以動手練習,可以看到自己的成果,有滿滿的成就感!
3.練習做項目
學完基礎課,妳會對機器學習有壹個初步的了解。現在用它們沒問題。妳可以把機器學習算法當成黑匣子,把數據放進去,就會有結果。在實戰中,妳需要更加關註如何獲取數據,如何調整參數。如果有時間,最好自己做壹個簡單實用的項目。
這裏我們需要選擇壹個應用方向,是圖像(計算機視覺)、音頻(語音識別)還是文本(自然語言處理)。這裏建議選擇圖像領域,這裏開源項目比較多,入門也比較簡單。OpenCV可用於開發,神經網絡、SVM等機器學習算法已經實現。項目完成後,可以開源到Github,然後不斷完善。實戰項目完成後,可以繼續深造。這時候有兩個選擇,深度學習和繼續機器學習;
4.深度學習
深度學習:深度學習是目前最熱門的研究方向。它有以下特點:知識更新快,碎片化,沒有系統的書來講解。所以學習的資源比較分散。下面是壹些資源介紹。不推薦的部分不代表不好,只是在這個初學者階段不適合:
推薦,UFLDL:非常好的DL基礎教程,也是吳恩達寫的。有非常詳細的推導和翻譯,翻譯質量非常高;推薦,深度學習(論文):深度學習領域三大牛寫的《自然》2015的論文,給人的感覺是高屋建瓴,其他的山都顯得相形見絀。,強烈推薦。如果妳只能看壹篇論文來理解深度學習,我推薦這壹篇。這篇論文有壹個同名的中文譯本;推薦,神經網絡與深度學習:這本書的作者非常擅長用簡單的語言表達深刻的道理。雖然沒有翻譯,但讀起來並不難;推薦,遞歸神經網絡:我會用壹個實際案例告訴妳什麽是RNN。整個教程講完,妳會對RNN是如何工作的有壹個清晰的認識,這種效果甚至是看幾篇相關論文都沒有的;不推薦,用於機器學習的神經網絡多倫多大學Coursera:深度學習創始人教的課程最大的問題就是太難了,老先生的吐字有時候不是很標準;不推薦,深度學習(書):也是深度學習大牛寫的書,但是感覺像是第二作者寫的,也就是他的學生。說了很多內容,但是感覺什麽都沒說。我只是告訴妳是從那篇論文來的,所以直接看論文可能更合適。不推薦,cs231n:李菲菲著名課程,專註CNN。不過這門課最大的問題是沒有字幕。雖然有youtube自動翻譯的字幕,但有總比沒有好。
5.繼續機器學習
深度學習可能不是未來的主流,至少有些大牛是這麽認為的。傳統機器學習有以下特點:知識系統,書籍相對經典。其中,統計學習(以SVM為代表)和集成學習(以adaboost為代表)是實踐中使用較多的技術。以下是相關資源:
推薦,機器學習():以前PRML是第壹本關於機器學習的經典教材,但周老師的書出來後就不是這樣了。首先推薦看周老師的書。這本書的壹個特點是,即使是最難的道理,也能用簡單簡潔的語言表達出來。正如周老師的名言:“體現妳水平的,是把難的事情變得容易,而不是把容易的事情變得困難。把壹件事情變得困難,這太簡單了”;
不推薦,模式識別和機器學習:現階段不推薦。PRML從貝葉斯的角度看待很多機器學習方法,這也是它的壹大特色。但對於初學者來說,這種觀點其實是不必要的。而且這本書沒有中文譯本,所以現階段很容易放棄;
6.開源項目
當知識儲備充足時,學習可以再次轉入實踐階段。這時候的做法還是可以分兩步走,學習經典開源項目或者發表高質量論文。開源項目的學習要盡可能以優化為目的,單純為了看代碼的學習效果往往不太好。好的開源項目可以在Github中搜索。這裏以深度學習為例。深度學習有很多優秀的開源庫,比如torch,theano等。這是其中的兩個:
推薦,DeepLearnToolbox:壹個早期的深度學習庫,用matlab語言寫的,比較適合從新學過的課程轉入學習。不幸的是,作者不再維護它;
推薦,tensorflow:Google的開源庫,今天有4萬多star,很神奇,支持移動設備;
7.會議論文
比較好的課程會給妳推薦壹些論文。壹些著名的技術和方法往往誕生在壹些重要的會議中。所以,閱讀往年的會議論文是壹種深入學習的方法。這時候有些論文的內容會驅使妳去學習數學中妳不擅長的部分。有時候覺得自己數學知識不夠,經常需要學習壹些輔助課程。
當妳看夠了論文,在這個階段,如果妳是在校學生,妳可以選擇壹個課題,以發表論文為目的進行研究。壹般來說,論文是工作的產物。有時候壹篇基於實驗的論文往往需要妳寫代碼或者基於開源項目。所以開源項目的學習和會議論文的工作是有關聯的。
兩者可以同時學習。關於在哪裏看論文,可以看看CCF推薦排名,了解壹下這個領域有哪些優秀的會議。
這裏有兩個著名的圖像和機器學習領域的頂級會議:
CVPR:它和另外兩個會議,ICCV和ECCV,被稱為計算機視覺領域的三大會議。註意大會主頁每年都有變化,所以搜索需要添加年份;神經信息處理系統會議(conference on neural information processing systems):簡稱NIPS,上面發表了很多重要的著作,比如CNN的壹篇重要論文就發表在上面;
8.自由學習
我們到了,可以說進入了這扇門。可以根據興趣自由學習。前壹階段不推薦的學習資源也可以隨意學習。以下是評論:
CS 229: NG寫的講義很好,其中SVM的推導很清楚,想學習SVM推薦。機器學習的神經網絡:丹尼爾的視角只是與人的視角不同。看看Hinton對神經網絡的看法,往往會給妳壹種原創的感覺。其實讀這門課就相當於讀壹篇論文,因為幾乎每門課的參考資料裏都有論文讓妳讀;視覺識別的對流神經網絡:最新知識和詳細作業。國內應該有團隊翻譯過字幕,妳可以找找看。PRML:作為壹本經典的機器學習書籍,很有必要讀壹讀,會讓妳對機器學習有不壹樣的看法。
動詞 (verb的縮寫)摘要
本文旨在幫助對AI領域了解不多,但想入此門的同學。我在這裏只說介入,是因為這個領域的專業化很難,需要多年的積累和努力。在進行領域學習之前,充分了解自己的特點,制定合適的學習方法是非常重要的。
首先要充分了解這個領域,培養興趣。學習時,保持循序漸進的學習方針,不要急於學習難的資源;把學習和實踐的策略結合起來,相輔相成,不要只是看著看著,真正去做的時候才會有成就感。學習壹個資源,要有壹個完整的目的,不是為了學習開源項目而讀代碼,而是為了寫開源項目而讀;寫論文不是為了發表論文,而是為了做事。
本文來自微信官方賬號:《大技術的集合》。冠珠了解大數據行業對大數據技術的學習和學習路線,有免費的學習資料。
如果壹個學習資源對妳來說太難,並不意味著壹定是妳的問題,而可能是學習資源的演講者或作者的問題。只有能把難題變得簡單的人,才是真正有能力的人。所以壹定要學習優質資源,而不是亂學。最後,記得帶著興趣去學習。學習需要很長的時間,過程也很艱難,而只有興趣才是對妳持之以恒、克服困難的最好幫助。