0
本文作者: AI研習(xí)社 | 2017-11-07 17:38 |
雷鋒網(wǎng)按:本文原作者Robin Shen,本文整理自作者在知乎《機(jī)器學(xué)習(xí)應(yīng)該準(zhǔn)備哪些數(shù)學(xué)預(yù)備知識(shí)?》問題下的回答。雷鋒網(wǎng)已獲得轉(zhuǎn)載授權(quán)。
問題詳情:
數(shù)據(jù)分析師,工作中經(jīng)常使用機(jī)器學(xué)習(xí)模型,但是以調(diào)庫(kù)為主。自己一直也在研究算法,也裸寫過(guò)一些經(jīng)典的算法。最近在看PRML這類書籍,感覺有點(diǎn)吃勁,主要是公式推導(dǎo)看不懂,很多數(shù)學(xué)符號(hào)不知其意。也特地學(xué)過(guò)線性代數(shù)、微積分等,但是然并卵,還是看不懂大段的公式以及那些神奇的矩陣計(jì)算~
機(jī)器學(xué)習(xí)新手,想前來(lái)問下,有沒有哪些數(shù)學(xué)知識(shí)是可以彌補(bǔ)這一類缺陷的?能否具體的說(shuō)一些知識(shí)點(diǎn)或者相關(guān)的文章和書籍?
利益相關(guān):樓主@Robin Shen以本科應(yīng)用數(shù)學(xué)和碩士運(yùn)籌學(xué)、優(yōu)化理論的背景轉(zhuǎn)到德國(guó)海德堡大學(xué)讀博,主要從事機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺的研究,希望自己的一些經(jīng)驗(yàn)可以對(duì)想入門機(jī)器學(xué)習(xí)的朋友們有點(diǎn)借鑒作用。
此回答的部分答案摘自我另外一個(gè)相關(guān)回答:Robin Shen:想轉(zhuǎn)專業(yè)機(jī)器學(xué)習(xí)(人工智能)需要學(xué)哪些課程?
首先對(duì)人工智能、機(jī)器學(xué)習(xí)一個(gè)綜述:大話“人工智能、數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)”--綜述 - 知乎專欄
籠統(tǒng)地說(shuō),原理和基礎(chǔ)都在數(shù)學(xué)這邊,當(dāng)然有很多偏應(yīng)用和軟件使用的技術(shù),例如“深度學(xué)習(xí)調(diào)參”等,這些報(bào)個(gè)培訓(xùn)速成班就能學(xué)會(huì)的技術(shù)含量不那么高的東西,不在討論范圍內(nèi)。
這里要討論的,是如何系統(tǒng)的學(xué)習(xí),然后自己能編出這機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的程序或軟件--我想,這才能稱為一個(gè)合格的機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)家。
籠統(tǒng)地說(shuō),原理和基礎(chǔ)都在數(shù)學(xué)這邊,當(dāng)然有很多偏應(yīng)用和軟件使用的技術(shù),例如“深度學(xué)習(xí)調(diào)參”等,這些報(bào)個(gè)培訓(xùn)速成班就能學(xué)會(huì)的技術(shù)含量不那么高的東西,不在討論范圍內(nèi)。
這里要討論的,是如何系統(tǒng)的學(xué)習(xí),然后自己能編出這機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的程序或軟件--我想,這才能稱為一個(gè)合格的機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)家。
1.微積分(求導(dǎo),極限,極值)和線性代數(shù)(矩陣表示、矩陣運(yùn)算、特征根、特征向量)是基礎(chǔ)中的基礎(chǔ),某篇圖像分割1w+引用的神文核心思想便就求解構(gòu)造矩陣的特征向量;
2.數(shù)據(jù)處理當(dāng)然需要編程了,因此C/C++/Python任選一門(推薦Python,因?yàn)槟壳昂芏鄮?kù)和Library都是用python封裝),數(shù)據(jù)結(jié)構(gòu)可以學(xué)學(xué),讓你編程更順手更高效,但是編程不是數(shù)據(jù)處理的核心。
當(dāng)然了,樓主所在的圖像處理界,熟練使用matlab或者Python調(diào)用opencv庫(kù)是必要條件,但是again他們只是工具,業(yè)余時(shí)間自學(xué),多練練就沒問題。有同學(xué)問用R行不行,補(bǔ)充一點(diǎn),用什么編程語(yǔ)言很大部分取決于你的核心算法會(huì)調(diào)用什么已有的庫(kù)函數(shù),比如樓主的科研里面核心算法往往是MIP(混合整數(shù)規(guī)劃)問題需要調(diào)用Cplex或Gurobi庫(kù)函數(shù),因此C/C++/Python/Java這些和Cplex接口良好的語(yǔ)言都可以拿來(lái)用,這時(shí)候R就別想了。(更新:最新Gurobi版本支持R)
另外雖然圖像處理界一些open-source的code都用C++寫的,但是鑒于使用方便都會(huì)提供Python的接口,因此需要用到這些code的話,用Python調(diào)用比較方便;但是,如果是高階骨灰級(jí)玩家,需要修改甚至自己寫源代碼,那么還是推薦C/C++,因?yàn)樗麄兊乃俣茸羁臁?/span>
3.算法
通常高校都會(huì)有算法類的課程,會(huì)概述各類算法的基礎(chǔ)和應(yīng)用,其中包括:精確算法、近似算法、啟發(fā)式算法、演化算法、遞歸算法、貪婪算法等待,還有各類優(yōu)化算法。
算法非常核心,想必大家都聽說(shuō)過(guò)算法工程師這個(gè)職位。
關(guān)于數(shù)學(xué)模型和算法的區(qū)別、聯(lián)系,參見:
【學(xué)界】整數(shù)規(guī)劃精確算法/近似算法/(元)啟發(fā)算法/神經(jīng)網(wǎng)絡(luò)方反向傳播等算法的區(qū)別與關(guān)聯(lián)
1.概率論+統(tǒng)計(jì)(很多數(shù)據(jù)分析建?;诮y(tǒng)計(jì)模型)、統(tǒng)計(jì)推斷、隨機(jī)過(guò)程等
2.線性規(guī)劃+凸優(yōu)化(或者只學(xué)一門叫numerical optimization,統(tǒng)計(jì)、機(jī)器學(xué)習(xí)到最后就是求解一個(gè)優(yōu)化問題)、非線性規(guī)劃等
3.數(shù)值計(jì)算、數(shù)值線代等
當(dāng)年我是在數(shù)學(xué)系學(xué)的這門課,主要是偏微分方程的數(shù)值解。
但我覺得其開篇講的數(shù)值計(jì)算的一些numerical issue更為重要,會(huì)顛覆一個(gè)數(shù)學(xué)系出身小朋友的三觀。(原來(lái)理論和現(xiàn)實(shí)差距可以這么大!)
Conditional number, ill-conditioned problem,會(huì)讓你以后的編程多留個(gè)心眼。
恭喜你,到這里,你就可以無(wú)壓力地學(xué)習(xí)Machine Learning這門課了(其實(shí)機(jī)器學(xué)習(xí),通篇都是在講用一些統(tǒng)計(jì)和優(yōu)化來(lái)做clustering 和 classification這倆個(gè)人工智能最常見的應(yīng)用)。并且你就會(huì)發(fā)現(xiàn),ML課中間會(huì)穿插著很多其他課的內(nèi)容。恩,知識(shí)總是相通的嘛,特別是這些跨專業(yè)的新興學(xué)科,都是在以往學(xué)科的基礎(chǔ)上由社會(huì)需求發(fā)展而來(lái)。
到這里,其實(shí)你已經(jīng)能看懂并且自己可以編寫機(jī)器學(xué)習(xí)里面很多經(jīng)典案例的算法了,比如regression,clustering,outlier detection。
關(guān)于優(yōu)化類課程的綜述,歡迎關(guān)注我的專欄:
[運(yùn)籌帷幄]大數(shù)據(jù)和人工智能時(shí)代下的運(yùn)籌學(xué) - 知乎專欄
運(yùn)籌學(xué)(最優(yōu)化理論)如何入門? - 知乎
學(xué)到Mid-level,就已經(jīng)具備絕大部分理論基礎(chǔ)了。然后做幾個(gè)實(shí)際項(xiàng)目,就能上手然后就可以“吹噓”自己是搞機(jī)器學(xué)習(xí)的,就能找到一份工作了。
但是要讀Phd搞機(jī)器學(xué)習(xí)的科研,那么高階課程必不可少,而且同一個(gè)topic你需要上好幾門課,并且你博士的課題,很可能只是一本書中一個(gè)章節(jié)里面一小節(jié)里講的算法,去改進(jìn)他。
比如,樓主的博士課題就是mixed linear programming + discrete graphical models + markov random fields + regression + clustering + segmentation。
再高階的課程,就是比較specific的課程了,可以看你做的項(xiàng)目或者以后的concentration再選擇選修,比如:Probabilistic Graphical Models(概率圖模型), Integer Programming(整數(shù)規(guī)劃) ,計(jì)算機(jī)視覺,模式識(shí)別,視頻追蹤,醫(yī)學(xué)圖像處理,增強(qiáng)學(xué)習(xí),深度學(xué)習(xí), 神經(jīng)網(wǎng)絡(luò),自然語(yǔ)言處理,網(wǎng)絡(luò)信息安全,等等等等。
深度學(xué)習(xí):目前非?;?,打敗了非常多幾十年積累起來(lái)的經(jīng)典方法。
增強(qiáng)學(xué)習(xí):也很火,游戲AI、自動(dòng)駕駛、機(jī)器人等等,它都是核心。
概率圖模型:深度學(xué)習(xí)之前非常popular的“學(xué)習(xí)”方法,有嚴(yán)格的數(shù)學(xué)模型和優(yōu)美的算法,雖然目前被前倆者蓋過(guò)了風(fēng)頭,但是依然有它的立足之處。什么?你不知道最近用PGM發(fā)了篇Nature,打敗了CNN?快看下面:
Robin Shen:如何評(píng)價(jià) Vicarious 在 Science 上提出基于概率圖模型(PGM)的 RCN 模型?
再比如有用偏微分方程做圖像處理的(比較小眾),那么這時(shí)候你肯定要去學(xué)一下偏微分方程了,大都是以科研為主導(dǎo)的。
科研嘛,為了發(fā)文章,就是要嘗試前人沒嘗試過(guò)的方法,萬(wàn)一效果不錯(cuò)呢,就是一篇好paper了,對(duì)吧。
附上頂尖會(huì)議排名,共勉:
國(guó)際“頂尖”計(jì)算機(jī)視覺、機(jī)器學(xué)習(xí)會(huì)議大搜羅--附排名&接收率
互聯(lián)網(wǎng)教學(xué)資源
書目沒有特別推薦的,但是建議看英文原版。
另外直接翻墻Youtube看視頻課程,很多國(guó)際知名教授都很無(wú)私地把自己上課的視頻放在youtube上免費(fèi)學(xué)習(xí)(搜索我上面列出的科目名字)。如果確實(shí)要樓主推薦,那就推薦海德堡大學(xué)歷史上最年輕的教授 Fred的機(jī)器學(xué)習(xí)視頻(我基本都看過(guò))(http://t.cn/RlNKGop)
另外一個(gè)教授給你上課的時(shí)候,開頭一般是會(huì)推薦書給你的(如果你確實(shí)喜歡看書的話)。當(dāng)然了,翻墻是樓主suppose你們需要擁有的基本生存技能。
(注:以下再推薦一些視頻,僅受之以漁,多為graduate course)
Machine Learning by Prof. Nando de Freitas, 此視頻是其在UBC時(shí)13年所錄,后來(lái)跳槽去牛津計(jì)算機(jī)系了
Deep learning at Oxford 2015 by Prof. Nando de Freitas, 跳槽到牛津所錄
Probabilistic Graphical Models by Daphne Koller, 斯坦福大學(xué)計(jì)算機(jī)系教授
[運(yùn)籌帷幄]大數(shù)據(jù)和人工智能時(shí)代下的運(yùn)籌學(xué)
關(guān)于入行后就業(yè)前景(包括第三條運(yùn)籌學(xué)、算法工程師),參見:
國(guó)內(nèi)(全球)TOP互聯(lián)網(wǎng)公司、學(xué)術(shù)界超高薪的攬才計(jì)劃有哪些? - 知乎
關(guān)于機(jī)器學(xué)習(xí)在咨詢行業(yè)的應(yīng)用,參見:
Data Science/Analytics 出身,可以在咨詢行業(yè)做些什么? - Ruobing Shen 的回答
最后是通往大洋彼岸高薪博士職位,以及人工智能數(shù)據(jù)科學(xué)家的傳送門:
歐洲、北美、全球留學(xué)及數(shù)據(jù)科學(xué)深度私人定制咨詢,從此DIY - Ruobing Shen的文章 - 知乎專欄
雷鋒網(wǎng)推出機(jī)器學(xué)習(xí)入門數(shù)學(xué)基礎(chǔ)系列課程,詳情可戳鏈接:http://www.mooc.ai/course/252
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。