Python還是R語(yǔ)言?怎樣學(xué)數(shù)學(xué)?機(jī)器學(xué)習(xí)的征程從這里開(kāi)始……
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)
機(jī)器學(xué)習(xí)是近幾年來(lái)最熱門的技術(shù)之一,也許你對(duì)機(jī)器學(xué)習(xí)很感興趣,但卻不知從何處下手。別擔(dān)心,興趣是最好的老師這里有你開(kāi)啟該領(lǐng)域職業(yè)生涯的完整學(xué)習(xí)路徑。
筆者也曾面臨同樣的困惑:怎樣才是好的開(kāi)始?應(yīng)該學(xué)習(xí)Python還是選擇R語(yǔ)言?數(shù)學(xué)總是很可怕,筆者總是擔(dān)心自己應(yīng)該從何處開(kāi)始學(xué)數(shù)學(xué),還擔(dān)心如何為機(jī)器學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
不管怎樣,祝賀你,至少你已經(jīng)下定決心了。本文將帶你做好開(kāi)啟機(jī)器學(xué)習(xí)生涯之前的所有準(zhǔn)備工作。
機(jī)器學(xué)習(xí)第一步(基礎(chǔ)編程)
第一步應(yīng)該是學(xué)習(xí)編程,最好是Python。如果你一行代碼都沒(méi)編寫(xiě)過(guò),那么推薦你學(xué)習(xí)哈佛大學(xué)的CS50。這是編程初學(xué)者的最佳課程,它將從頭開(kāi)始教你C語(yǔ)言的所有內(nèi)容、Python的許多要點(diǎn)、JavaScript以及SQL和JSON的基礎(chǔ)知識(shí)。而且它在edx.org上是免費(fèi)的。
如果想直接從Python開(kāi)始,那么edx上免費(fèi)的“MIT計(jì)算機(jī)科學(xué)入門Python課”很適合你。需要注意的是,至少你得掌握高中代數(shù)。
如果覺(jué)得自己的計(jì)算邏輯不好,而且不善于解決編程問(wèn)題,微軟的課程很不錯(cuò),這門課程與edx上的“計(jì)算思維”有關(guān),都是免費(fèi)的。它能教你很多計(jì)算邏輯和批判性思維方面的內(nèi)容。
如果已經(jīng)掌握了足夠的編程基礎(chǔ)知識(shí),但是還不了解面向?qū)ο蟪绦蛟O(shè)計(jì)方面的知識(shí),建議學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)編程。雖然它在機(jī)器學(xué)習(xí)(基本水平)中沒(méi)有被大量使用,但確實(shí)有很大的幫助。它會(huì)教授python中OOP和算法的基本知識(shí)。
下一步是熟悉數(shù)據(jù)結(jié)構(gòu)和算法。一個(gè)好的程序員必須知道一些基本的算法,如鏈表、二叉樹(shù)等。微軟的課程將教授:
- 算法分析
- 分類和搜索算法
- 數(shù)據(jù)結(jié)構(gòu):鏈表、堆棧、隊(duì)列
如果想深入研究數(shù)據(jù)結(jié)構(gòu)和算法,加州大學(xué)圣地亞哥分校的專題絕對(duì)是經(jīng)典。它有6門課程,將帶領(lǐng)學(xué)習(xí)者在數(shù)據(jù)結(jié)構(gòu)和算法方面從0級(jí)達(dá)到英雄級(jí)??梢渣c(diǎn)擊每門課程并免費(fèi)旁聽(tīng)它的材料,但如果想獲得證書(shū),價(jià)格是50美元/月,這取決于完成的速度。你可以在Coursera.org找到這個(gè)專題。
機(jī)器學(xué)習(xí)第二步
對(duì)大多數(shù)初學(xué)者來(lái)說(shuō),數(shù)學(xué)是最“勸退”的部分。
事實(shí)上,數(shù)學(xué)并不像想象的那么難,如果認(rèn)為自己有很好的高中數(shù)學(xué)基礎(chǔ)(向量、矩陣、微積分、概率和統(tǒng)計(jì)),可以只參加一個(gè)復(fù)習(xí)課程;但如果認(rèn)為自己的數(shù)學(xué)不夠好,那么學(xué)數(shù)學(xué)最好的地方就是“可汗學(xué)院”,這里內(nèi)容豐富有用,而且都是免費(fèi)的,可以找到所有有關(guān)線性代數(shù)、概率和統(tǒng)計(jì)以及多變量微積分課程。
另一個(gè)優(yōu)質(zhì)的課程是Coursera上倫敦帝國(guó)理工學(xué)院的機(jī)器學(xué)習(xí)數(shù)學(xué)專題,教授基本知識(shí)和復(fù)習(xí)概念,但不會(huì)深入探討,練習(xí)和測(cè)驗(yàn)很有挑戰(zhàn)性。它有以下3門課程:
- 機(jī)器學(xué)習(xí)數(shù)學(xué):線性代數(shù)
- 機(jī)器學(xué)習(xí)數(shù)學(xué):多元微積分
- 機(jī)器學(xué)習(xí)數(shù)學(xué):主成分分析
MIT也有一門很好的統(tǒng)計(jì)學(xué)課程,它的內(nèi)容包括:
- 使用矩和最大似然法構(gòu)造估算器,決定如何在兩者間進(jìn)行選擇
- 使用置信區(qū)間和假設(shè)檢驗(yàn)量化不確定性
- 使用擬合優(yōu)度測(cè)試在不同模型之間進(jìn)行選擇
- 使用線性、非線性和廣義線性模型進(jìn)行預(yù)測(cè)
- 使用主成分分析(PCA)進(jìn)行降維
如果想在編寫(xiě)代碼的同時(shí)學(xué)習(xí)數(shù)學(xué),去學(xué)習(xí)微軟的課程“機(jī)器學(xué)習(xí)基本數(shù)學(xué):Python版本”。這是一門交互式課程,它使用Python著名的數(shù)據(jù)處理庫(kù)Numpy、pandas和matplotlib來(lái)形象化地進(jìn)行數(shù)學(xué)教學(xué),這些庫(kù)是本課程的前提條件。
Udacity上有3門免費(fèi)的統(tǒng)計(jì)學(xué)課程:
- 統(tǒng)計(jì)簡(jiǎn)介
- 統(tǒng)計(jì)學(xué)
- 推理統(tǒng)計(jì)簡(jiǎn)介
也可以在學(xué)習(xí)實(shí)用機(jī)器學(xué)習(xí)的同時(shí)學(xué)習(xí)數(shù)學(xué),當(dāng)遇到不熟悉的內(nèi)容時(shí),只需搜索可汗學(xué)院,YouTube上也有數(shù)百個(gè)關(guān)于這個(gè)話題的優(yōu)質(zhì)視頻。
機(jī)器學(xué)習(xí)第三步
熟悉了線性代數(shù)、多變量微積分和統(tǒng)計(jì)學(xué)之后,接下來(lái)需要學(xué)習(xí)的是Python著名的可視化數(shù)據(jù)處理庫(kù),包括Numpy、Pandas、Matplotlib和Scipy,它們有助于分析和操作任何類型的數(shù)據(jù),并以圖表方式查看數(shù)據(jù)。
當(dāng)然,還有很多其他可視化數(shù)據(jù)處理庫(kù),但這些是最重要的,可以將線性代數(shù)和微積分的概念以圖表方式可視化。
這方面的代表之一是密歇根大學(xué)的Python統(tǒng)計(jì)學(xué)專題,教授了數(shù)據(jù)可視化和操作細(xì)節(jié)。當(dāng)然,可在coursera.org上免費(fèi)獲取。
另一門課程是密歇根大學(xué)為數(shù)據(jù)分析初學(xué)者開(kāi)設(shè)的“Python的數(shù)據(jù)科學(xué)導(dǎo)論”,它包括從numpy的基礎(chǔ)知識(shí)到pandas的內(nèi)容。同樣也coursera.org上免費(fèi)提供。本課程的下一部分是改變方式,在Python中命名Applied Plotting、Charting和Data Representation,會(huì)交給你所有的圖形可視化及其技巧技術(shù)。
哈佛大學(xué)的《使用Python進(jìn)行研究》會(huì)通過(guò)一些著名的案例研究來(lái)教授這些庫(kù),其最后一課無(wú)比振奮人心,會(huì)講解很多新內(nèi)容。
加州大學(xué)圣地亞哥分校的“使用Python進(jìn)行數(shù)據(jù)科學(xué)項(xiàng)目”內(nèi)容非常全面,該課程教授:
- Python
- Jupyternotebooks
- pandas
- NumPy
- Matplotlib
- git
- sci kit-learn
- NLTK
雖然該課程也會(huì)講解機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí),但更重要的是,它教授數(shù)據(jù)科學(xué)庫(kù)。所有的這些課程都會(huì)在edx.org上免費(fèi)提供。
第四步 實(shí)用機(jī)器學(xué)習(xí)
所以現(xiàn)在要進(jìn)入最令人興奮的部分——機(jī)器學(xué)習(xí)。
第一個(gè)課程意義重大。如果其不夠引人入勝,學(xué)習(xí)者可能會(huì)半途而廢。所以這里的所有課程都是高質(zhì)量的,在開(kāi)始第一門機(jī)器學(xué)習(xí)課程之前,我們要對(duì)它做一些研究。
入門課程不會(huì)教授機(jī)器學(xué)習(xí),而是讓學(xué)員了解一些基本概念。這門課程將概述什么是機(jī)器學(xué)習(xí),它是如何工作的,它的工作流程是什么,以及如何在公司建立人工智能。課程還提供了關(guān)于人工智能的完整介紹和概述。該課程由著名的機(jī)器學(xué)習(xí)講師吳恩達(dá)教授,可在coursera.org上免費(fèi)獲得。
接下來(lái)到了正式內(nèi)容。無(wú)論是搜索谷歌還是瀏覽任何博客,都可以看到,首推課程是斯坦福大學(xué)吳恩達(dá)教授的“機(jī)器學(xué)習(xí)”。注冊(cè)了這門課程的學(xué)生超250萬(wàn),20萬(wàn)多名學(xué)生對(duì)其進(jìn)行了評(píng)分(4.9*)。它從非?;镜母拍钪v授到高級(jí)的概念,對(duì)初學(xué)者來(lái)說(shuō)是一門非常全面的課程。這門課的總學(xué)時(shí)超過(guò)56小時(shí)。以下為課程目錄:
- 線性回歸
- 多項(xiàng)式回歸
- 邏輯回歸
- 多類分類
- 神經(jīng)網(wǎng)絡(luò)
- 支持向量機(jī)
- K-均值聚類
- 主成分分析
- 異常檢測(cè)
- 推薦系統(tǒng)
唯一的問(wèn)題是,它是用octave/Matlab來(lái)教的。對(duì)筆者而言這不是大問(wèn)題,因?yàn)樗€會(huì)用各種其他語(yǔ)言來(lái)清晰闡明機(jī)器學(xué)習(xí)的所有基礎(chǔ)和深層概念,沒(méi)有任何問(wèn)題,另外,Matlab也是一項(xiàng)額外的技能。這個(gè)課程在斯坦福大學(xué)官方網(wǎng)站和coursera.org都可以找到。
無(wú)需多言,這門課對(duì)每個(gè)人來(lái)說(shuō)都是必修課。
學(xué)習(xí)完這門課,現(xiàn)在需要用Python來(lái)實(shí)操所有學(xué)到的東西,并通過(guò)學(xué)習(xí)來(lái)提高專業(yè)化程度。所以,Coursera上由吳恩達(dá)、Kian Katanfrosh和 Younes Bensouda教授的deeplearning.ai也是必修課。這個(gè)專題有五門課程:
- 神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)
- 改進(jìn)深層神經(jīng)網(wǎng)絡(luò):超參數(shù)調(diào)整、正則化和優(yōu)化
- 構(gòu)建機(jī)器學(xué)習(xí)項(xiàng)目
- 卷積神經(jīng)網(wǎng)絡(luò)
- 序列模型
你從中可獲得的主要技能是:
- TensorFlow
- 卷積神經(jīng)網(wǎng)絡(luò)
- 人工神經(jīng)網(wǎng)絡(luò)
- 深度學(xué)習(xí)
有人可能不喜歡TensorFlow,或者只是想測(cè)試TensorFlow的著名競(jìng)爭(zhēng)者Pythorch(Facebook),那你可以選擇學(xué)習(xí)Udacity上的課程。它由臉書(shū)與亞馬遜網(wǎng)絡(luò)服務(wù)合作提供,并且還有部分內(nèi)容來(lái)自價(jià)值1400美元的Udacity著名的深度學(xué)習(xí)“納米學(xué)位”課程。
當(dāng)然,這只是一個(gè)開(kāi)始,還有很多東西需要學(xué)習(xí)和發(fā)現(xiàn),但如果開(kāi)始學(xué)習(xí)了,希望學(xué)習(xí)者知道自己的立場(chǎng)和下一步計(jì)劃。
一些建議
現(xiàn)在開(kāi)始收聽(tīng)OC Devel的“機(jī)器學(xué)習(xí)指南”播客。這將提供一個(gè)完整的機(jī)器學(xué)習(xí)概述,包括機(jī)器學(xué)習(xí)的具體知識(shí)以及一個(gè)android和web應(yīng)用程序開(kāi)發(fā)人員轉(zhuǎn)向機(jī)器學(xué)習(xí)道路的旅程。
在Kaggle上多練習(xí)(一旦開(kāi)始機(jī)器學(xué)習(xí),就會(huì)明白這一點(diǎn))。
獲取《使用Scikit Learn和TensorFlow進(jìn)行機(jī)器學(xué)習(xí):構(gòu)建智能系統(tǒng)的概念、工具和技術(shù)》或是2019年10月發(fā)布的新版本。這本書(shū)的作者是 AurélienGéron。這本書(shū)內(nèi)容廣泛,值得推薦。
最關(guān)鍵的是要保持信心,一氣呵成就好,祝你在如何使機(jī)器更智能的學(xué)習(xí)之路上一路愉快。