身邊很多人,都想搭上搭上人工智能這列二十一世紀(jì)的快車。
可是這駕車,是想搭,就能搭的嗎?
有很多人都在詢問,如何能夠?qū)W好人工智能
今天,我就來分享一下,我的觀點(diǎn)
文章的宗旨是:1. 指出一些自學(xué)的誤區(qū) 2. 不過多的推薦資料 3. 提供客觀可行的學(xué)習(xí)表 4. 給出進(jìn)階學(xué)習(xí)的建議。這篇文章的目標(biāo)讀者是計(jì)劃零基礎(chǔ)自學(xué)的朋友,對(duì)數(shù)學(xué)/統(tǒng)計(jì)基礎(chǔ)要求不高,比如:
在讀的學(xué)生朋友
非計(jì)算機(jī)行業(yè)的讀者
已經(jīng)工作但想將機(jī)器學(xué)習(xí)/數(shù)據(jù)分析和自己的本職工作相結(jié)合的朋友
因此,這篇文章對(duì)于已經(jīng)身處機(jī)器學(xué)習(xí)領(lǐng)域可能幫助不大。同時(shí)再次聲明這只是我的個(gè)人看法,請(qǐng)大家有選擇的性閱讀,探索適合自己的學(xué)習(xí)方法。
不要試圖掌握所有的相關(guān)數(shù)學(xué)知識(shí)再開始學(xué)習(xí)
在很多相關(guān)的回答中,我都一再?gòu)?qiáng)調(diào)不要試圖補(bǔ)足數(shù)學(xué)知識(shí)再開始學(xué)習(xí)機(jī)器學(xué)習(xí)。一般來說,大部分機(jī)器學(xué)習(xí)課程/書籍都要求:
1)線性代數(shù):矩陣/張量乘法、求逆,奇異值分解/特征值分解,行列式,范數(shù)等
2)統(tǒng)計(jì)與概率:概率分布,獨(dú)立性與貝葉斯,最大似然(MLE)和最大后驗(yàn)估計(jì)(MAP)
3)優(yōu)化:線性優(yōu)化,非線性優(yōu)化(凸優(yōu)化/非凸優(yōu)化)以及其衍生的求解方法如梯度下降、牛頓法、基因算法和模擬退火等
4)微積分:偏微分,鏈?zhǔn)椒▌t,矩陣求導(dǎo)等
5)信息論、數(shù)值理論等
一般人如果想要把這些知識(shí)都補(bǔ)全再開始機(jī)器學(xué)習(xí)往往需要很長(zhǎng)時(shí)間,容易半途而廢。而且這些知識(shí)是工具不是目的,我們的目標(biāo)又不是成為運(yùn)籌學(xué)大師。建議在機(jī)器學(xué)習(xí)的過程中哪里不會(huì)補(bǔ)哪里,這樣更有目的性且耗時(shí)更低。
不要把深度學(xué)習(xí)作為入門的第一門課
雖然很多人都是沖著深度學(xué)習(xí)來的,但把深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)第一課不是個(gè)好主意。原因如下:
1)深度學(xué)習(xí)的黑箱性更加明顯,很容易學(xué)得囫圇吞棗
2)深度學(xué)習(xí)的理論/模型架構(gòu)/技巧還在一直變化當(dāng)中,并未塵埃落定
3)深度學(xué)習(xí)實(shí)驗(yàn)對(duì)硬件要求高,不太適合自學(xué)或者使用個(gè)人電腦進(jìn)行學(xué)習(xí)
不要收集過多的資料 & 分辨資料的時(shí)效性
機(jī)器學(xué)習(xí)的資料很多,動(dòng)輒就有幾個(gè)G的材料可以下載或者觀看。而很多朋友都有“收集癖”,一下子購(gòu)買十幾本書的人我也常常能夠看到。
機(jī)器學(xué)習(xí)的發(fā)展和變化速度很快。在入門期間,建議“小而精”的選擇資料,選擇近期出版的且口碑良好的書籍。我不止一次的提到這個(gè)例子:
在很多深度學(xué)習(xí)的教科書中,尤其是10年以前的教科書中都還依然把Sigmoid當(dāng)作默認(rèn)的激活函數(shù)。但事實(shí)上,整流函數(shù)(ReLu)以及其拓展變形函數(shù),如Leaky ReLu早就成為了主流的深度學(xué)習(xí)激活函數(shù)。但因?yàn)橹R(shí)的滯后性,很多課程/書籍甚至都沒有介紹ReLu的章節(jié)。
1)硬件選擇
另一個(gè)大家常問的問題是:是否可以用自己的筆記本電腦進(jìn)行機(jī)器學(xué)習(xí)。答案是肯定的,大部分市面上的數(shù)據(jù)集都可以放到你的內(nèi)存中運(yùn)行。在入門階段,我們很少會(huì)用到非常大的數(shù)據(jù)集,一般最大也就是MNIST,完全可以使用個(gè)人筆記本電腦進(jìn)行運(yùn)行。
請(qǐng)不要打著學(xué)習(xí)的名義重新購(gòu)買機(jī)器...
2)軟件選擇
如果要做深度學(xué)習(xí),Linux還是首選,因?yàn)槠鋵?duì)很多學(xué)習(xí)模型支持比較好(主要是深度學(xué)習(xí)的Library)。但即使你使用的是Windows系統(tǒng),也可以用虛擬機(jī)裝Ubuntu來進(jìn)行學(xué)習(xí)。小型的深度學(xué)習(xí)模型足夠了,大型的深度學(xué)習(xí)我們很少在本地/個(gè)人計(jì)算機(jī)上運(yùn)行。
至于編程語(yǔ)言,首推Python,因?yàn)槠淞己玫耐卣怪С中?,主流的工具包都有Python版本。在特定情況下,選擇R作為編程語(yǔ)言也是可以的。其他可能的語(yǔ)言還包括C++、Java和Matlab,但我個(gè)人不大推薦。
此處也想額外提一句,因?yàn)榫幊虒儆跈C(jī)器學(xué)習(xí)基本要求之一,所以推薦大家可以自學(xué)一些基礎(chǔ)編程的知識(shí)(如Python),在文中不再贅述。
3)語(yǔ)言能力
學(xué)好英語(yǔ),至少打下閱讀和聽力的基礎(chǔ)。雖然人工智能領(lǐng)域中國(guó)現(xiàn)在已經(jīng)做得很不錯(cuò),但主流的書籍、期刊和會(huì)議,資料都是英文的。我們可以接受翻譯版,但最好的方法還是自己有能力直接閱讀。即使你將來不做機(jī)器學(xué)習(xí),英文閱讀能力還是會(huì)有很大的幫助。
學(xué)習(xí)是一件長(zhǎng)時(shí)間的事情,不要著急,人工智能這趟列車還要開很久,現(xiàn)在開始學(xué)習(xí),肯定也是來得及的。
公眾號(hào):maibanzhang