http://machinelearningmastery.com/machine-learning-roadmap-your-self-study-guide-to-machine-learning/
在這個帖子中我將展示一個具體的用于機(jī)器學(xué)習(xí)的自學(xué)路線,它可以給你指引方向并指出下一步的工作宝与。
我考慮了很多的框架和系統(tǒng)性的方法(從我的blog可以看出)彻舰。之前我在論壇里發(fā)表了一篇“機(jī)器學(xué)習(xí)自學(xué)指南”的帖子引起了大家的共鳴,我認(rèn)為這篇文章將極大的擴(kuò)展之前想法狰腌。
讓我們投入進(jìn)去吧......
機(jī)器學(xué)習(xí)的路線圖
機(jī)器學(xué)習(xí)是一個巨大的的研究領(lǐng)域。對于要學(xué)習(xí)如此多的算法、理論遭商、技術(shù)和各類問題屯阀,讓我們感覺不知所措缅帘。
機(jī)器學(xué)習(xí)也是深度跨學(xué)科的噪裕。你可以從材料學(xué)研究員跳躍到程序員,或跳躍到統(tǒng)計(jì)學(xué)家股毫,假定需要這么多的先驗(yàn)知識讓人感到很沮喪膳音。
我們需要一個結(jié)構(gòu)化的方法,該方法能夠?yàn)檠芯繖C(jī)器學(xué)習(xí)的相關(guān)主題和細(xì)節(jié)層次提供路線圖铃诬,同時(shí)也可以整合受歡迎的書籍和公開課等資源祭陷。
結(jié)構(gòu)化方法,通過將注意力集中在你需要學(xué)習(xí)的內(nèi)容趣席,以解決學(xué)習(xí)的壓力兵志。它通過側(cè)重于實(shí)用性來依次展示相關(guān)的材料,以解決學(xué)習(xí)的挫敗感宣肚,它是為工程師和程序員量身定制的想罕。
這張線路圖可以讓你知道當(dāng)前的位置和想到達(dá)的位置,明確學(xué)習(xí)的方向霉涨。
自學(xué)是路徑
自學(xué)是指以你自己的節(jié)奏按价,在你自己的條件下按照自己的時(shí)間進(jìn)度。
自學(xué)是學(xué)習(xí)機(jī)器學(xué)習(xí)最好的方法笙瑟。但這并不意味你必須完全靠自己去做楼镐,千萬不要這樣。它指的是用你最有效的方式學(xué)習(xí)往枷,并利用網(wǎng)絡(luò)上提供的最好的課程框产,書籍和指南。
自學(xué)也兼容更正式的本科和研究生課程的研究错洁。這意味著你可以積極的將機(jī)器學(xué)習(xí)的資料整合到你的知識體系中秉宿,并擁有這個過程。在這個過程中屯碴,你可以更加深入到非常感興趣的領(lǐng)域描睦。
機(jī)器學(xué)習(xí)像編程一樣,是一門應(yīng)用學(xué)科窿锉。學(xué)習(xí)理論很重要酌摇,但是你必須投入時(shí)間去應(yīng)用理論。你必須去實(shí)踐嗡载,這個非常關(guān)鍵窑多。你需要建立對處理,算法和問題的直覺洼滚。
能力等級
學(xué)習(xí)機(jī)器學(xué)習(xí)的結(jié)構(gòu)化方法分為如下四個等級的能力:
1.新手(Beginner)
2.初級(Novice)
3.中級(Intermediate)
4.高級(Advanced)
這四個等級是基于他們面臨的問題和學(xué)習(xí)目標(biāo)來劃分的埂息。按照順序,每個等級為了達(dá)到各自的目標(biāo)都會有不同的活動。
各等級的問題
各個能力等級面臨不同的問題集合千康,如下:
新手:對機(jī)器學(xué)習(xí)到底是什么感到困惑享幽。對大量的信息感到不知所措。對大多數(shù)可用的信息未指明先驗(yàn)知識感到沮喪拾弃。
初級:被數(shù)學(xué)描述的算法嚇到值桩。苦苦掙扎于機(jī)器學(xué)習(xí)的應(yīng)用問題豪椿。缺少尋找問題探索機(jī)器學(xué)習(xí)的能力奔坟。
中級:對于介紹性的材料感到厭倦。非常需要了解更多的細(xì)節(jié)和更深入的見解搭盾】缺渴望證明和展示他們的知識和技能。
高級:癡迷于從各系統(tǒng)和解決方案中獲得更多的知識鸯隅。同時(shí)尋求對機(jī)器學(xué)習(xí)更大的貢獻(xiàn)機(jī)會澜建,不斷激勵自己超越自己。
學(xué)習(xí)的目標(biāo)
每個層次的能力有一個單一的目標(biāo),很多任務(wù)可以追求這一目標(biāo)蝌以。這些目標(biāo)如下:
新手:制定一個明確的基礎(chǔ)并開始機(jī)器學(xué)習(xí)之旅
初級:開發(fā)和實(shí)踐應(yīng)用機(jī)器學(xué)習(xí)的過程
中級:開發(fā)對算法炕舵,問題和工具有更深入的理解
高級:開發(fā)對算法,問題和工具等領(lǐng)域的擴(kuò)展
自學(xué)的行動
每個等級的目標(biāo)定義了為了完成目標(biāo)的行動類型饼灿。強(qiáng)烈建議你自己設(shè)計(jì)行動幕侠,盡管下面為各個等級列出了建議的行動帝美。
新手
發(fā)現(xiàn)關(guān)于機(jī)器學(xué)習(xí)的“為什么”(例如為什么機(jī)器學(xué)習(xí)重要碍彭,為什么機(jī)器學(xué)習(xí)對你重要)
識別可能阻礙你的自我限制的信念(例如沒有學(xué)位,數(shù)學(xué)不好)
調(diào)查機(jī)器學(xué)習(xí)領(lǐng)域的基本定義和概念(例如機(jī)器學(xué)習(xí)的問題悼潭,機(jī)器學(xué)習(xí)的算法)
初級
研究和學(xué)習(xí)應(yīng)用機(jī)器學(xué)習(xí)過程中的各個步驟
充分理解在應(yīng)用機(jī)器學(xué)習(xí)各個步驟中所使用工具和庫的細(xì)節(jié)(基本熟悉工具和庫)
實(shí)踐應(yīng)用機(jī)器學(xué)習(xí)端到端解決問題的全過程
中級
通過參與和學(xué)習(xí)機(jī)器學(xué)習(xí)競賽,不斷提高應(yīng)用機(jī)器學(xué)習(xí)的技能
高級
以結(jié)構(gòu)化的方式開發(fā)擴(kuò)展算法舰褪,問題和工具
參與并對社區(qū)做出貢獻(xiàn)
如何使用
這個路線圖是一個有用的工具皆疹,你可以使用多種方法掌握機(jī)器學(xué)習(xí)。
學(xué)習(xí)指南:把它作為你完成目標(biāo)和行動的直線導(dǎo)軌占拍。耐心和努力將會讓你在短期內(nèi)達(dá)到更高的等級略就。
流線型指南:和上一個指南一樣,但是將你希望掌握的機(jī)器學(xué)習(xí)目標(biāo)縮小到一個特定的領(lǐng)域晃酒,而不是在廣泛的應(yīng)用機(jī)器學(xué)習(xí)的領(lǐng)域表牢。這可能是一個特定的問題或某一類的算法。
信息過濾:路線圖可以用來過濾你遇到的信息和資源贝次。這是一個非常有用的功能崔兴,它可以幫助你迅速的評估一篇博客,文章或書籍是否與你現(xiàn)在的能力等級相關(guān)。
這條路徑是適合你的敲茄!
我已經(jīng)給其他的工程師和程序員設(shè)計(jì)了這個指南位谋。
你可能懂如何編程
你可能是(或曾經(jīng)是)職業(yè)化的工程師或程序員
你可能是本科或研究生
你對機(jī)器學(xué)習(xí)或數(shù)據(jù)挖掘感興趣
你可能正在從事機(jī)器學(xué)習(xí)或數(shù)據(jù)挖掘
這個方法是專門為已經(jīng)熟悉開發(fā)和構(gòu)建系統(tǒng)過程的工程師和程序員定制的。他們有計(jì)算或邏輯的思維方式以及系統(tǒng)化的思考方法堰燎。尤其是程序員掏父,他們已經(jīng)熟悉自動化的力量和算法的復(fù)雜性和特性。
這個方法不僅對專職程序員有效秆剪,也對正在學(xué)習(xí)工程學(xué)损同,計(jì)算機(jī)科學(xué)或相關(guān)學(xué)科的學(xué)生有效。
你不必成為一名程序員或一名優(yōu)秀的程序員鸟款。你可以使用現(xiàn)成的工具膏燃,如Weka,通過可視化界面處理機(jī)器學(xué)習(xí)問題和使用算法何什。
你不必成為一名數(shù)學(xué)家或統(tǒng)計(jì)學(xué)家组哩。當(dāng)你需要學(xué)習(xí)某個算法時(shí),只需要回顧這個算法所需的統(tǒng)計(jì)學(xué)处渣,概率論和線性代數(shù)的相關(guān)知識伶贰。
你可以閱讀指南,書籍和公開課罐栈。他們非常適用于上述四個能力等級黍衙。一本給定的書籍可能對初級或中級(或者跨越這兩級)是很好的參考。同樣的荠诬,一個課程能介紹各種機(jī)器學(xué)習(xí)活動的例子琅翻,它可能適用于一個特定的等級或跨越兩或多個等級。
范圍
我建議你把學(xué)習(xí)范圍集中在分類和回歸問題相關(guān)的算法和工具柑贞。這是兩個非常常見的潛在機(jī)器學(xué)習(xí)問題方椎,其它問題都可以演變成這兩類問題。
機(jī)器學(xué)習(xí)的子領(lǐng)域钧嘶,如計(jì)算機(jī)視覺棠众,自然語言處理,推薦系統(tǒng)或強(qiáng)化學(xué)習(xí)有决。這些領(lǐng)域可以演變成分類和回歸問題闸拿,他們的學(xué)習(xí)也適用于上面提出的結(jié)構(gòu)化路線圖。我建議在你達(dá)到中級水平時(shí)再進(jìn)入這些領(lǐng)域书幕。
原則
我有幾個務(wù)實(shí)的原則新荤,可以幫助你讓你朝著機(jī)器學(xué)習(xí)的目標(biāo)快速而有效的前進(jìn)。它們實(shí)際上構(gòu)成了路線圖的框架按咒。
機(jī)器學(xué)習(xí)是一種旅行迟隅。你需要知道你現(xiàn)在在哪里和你想去的地方但骨。這將需要大量的時(shí)間和艱苦的工作,但對你非常有用智袭。
創(chuàng)建半正式的工作產(chǎn)品奔缠。在閱讀博客文章,技術(shù)報(bào)告和開源代碼的時(shí)候吼野,記下從中學(xué)習(xí)和發(fā)現(xiàn)到的東西校哎。你會很快的積攢一系列可以展示的技能,和一系列你和其他人可以仔細(xì)思考的知識瞳步。
及時(shí)學(xué)習(xí)闷哆。不要學(xué)習(xí)復(fù)雜的專題,直到你需要它的時(shí)候单起。例如抱怔,你只要掌握足夠的概率和線性代數(shù)來了解你正在使用的算法,而不是先花三年的時(shí)間學(xué)習(xí)統(tǒng)計(jì)學(xué)和數(shù)學(xué)嘀倒,然后再開始學(xué)習(xí)機(jī)器學(xué)習(xí)屈留。
利用現(xiàn)有的技能。如果你會編碼测蘑,實(shí)現(xiàn)算法理解他們灌危,而不是學(xué)習(xí)數(shù)學(xué)。使用你知道的編程語言碳胳。專注于你正在學(xué)習(xí)的一件事情勇蝙,而不是在同一時(shí)間學(xué)習(xí)新的語言,工具或庫挨约,使事情變的復(fù)雜味混。
精通是一種理想狀態(tài)。精通機(jī)器學(xué)習(xí)需要持續(xù)不斷的學(xué)習(xí)烫罩。事實(shí)上你是不可能達(dá)到的惜傲,你只能不斷的學(xué)習(xí),理解和提高贝攒。
提示
以下有3個提示可以讓你更有效的使用這篇指南,幫助你走上機(jī)器學(xué)習(xí)的旅程时甚。
從一個小項(xiàng)目開始隘弊,你可以在一個小時(shí)內(nèi)完成
每周完成一個項(xiàng)目,保持你學(xué)習(xí)的動力荒适,建立和維護(hù)項(xiàng)目的工作空間
在你的社交網(wǎng)絡(luò)上分享你的成果梨熙,如博客,F(xiàn)acebook刀诬,Google+咽扇,Github或者任何你可以展示興趣,技能和知識并獲得反饋的地方。
行動步驟
花點(diǎn)時(shí)間回答下面兩個問題:
你認(rèn)為你處于什么水平质欲,同時(shí)你現(xiàn)在在努力做什么树埠?
你想達(dá)到什么水平,同時(shí)你認(rèn)為你能夠做些什么嘶伟?