學(xué)號:16020120050
姓名:吳言凡
轉(zhuǎn)自:https://www.leiphone.com/news/201711/t6oAMy66pX7sFsnQ.html
【嵌牛導(dǎo)讀】:機器學(xué)習(xí)或深度學(xué)習(xí)所需要的數(shù)學(xué)知識
【嵌牛鼻子】:機器學(xué)習(xí)模型帅刊,神經(jīng)網(wǎng)絡(luò) , 深度學(xué)習(xí)
【嵌牛提問】:如何系統(tǒng)的學(xué)習(xí)機器學(xué)習(xí),然后自己編寫出機器學(xué)習(xí)或深度學(xué)習(xí)程序?
【嵌牛正文】:
2012 年之后看疗,隨著深度學(xué)習(xí)的浪潮卷來,大家逐漸認(rèn)可了神經(jīng)網(wǎng)絡(luò) / 深度學(xué)習(xí)這個東西睦授,都知道它在很多應(yīng)用場景下面表現(xiàn)得很好两芳。但是,它常常被人詬病的一點就是去枷,就算它表現(xiàn)很好怖辆,卻沒有一個很好的理論解釋。
相比之下删顶,很多算法雖然實際表現(xiàn)一般竖螃,但是在理論解釋這一方面就遠(yuǎn)勝神經(jīng)網(wǎng)絡(luò)了。典型的例子么逗余,自然就是我們耳熟能詳?shù)木€性回歸算法啦特咆。所謂的線性回歸,簡單地說录粱,就是嘗試用一條直線來擬合世間萬物腻格。雖然聽起來不太靠譜,實際上效果也一般啥繁,但是這并不妨礙研究人員在過去的幾十年間菜职,懷著滿腔熱情,發(fā)了大量的理論論文研究這個基本問題(不好意思旗闽,我也發(fā)了兩篇)酬核。這就像一個 PhD 笑話里面說的那樣蜜另,Theory is when one knows everything but nothing works. Practice is when everything works but nobody knows why。
真說起來倒也不是大家覺得線性回歸多么有用愁茁,筆者覺得主要還是直線比較好分析蚕钦,而神經(jīng)網(wǎng)絡(luò)比較難,所以理論工作就少一些鹅很。這個現(xiàn)象叫做 Streetlight effect嘶居,如下圖。
籠統(tǒng)地說促煮,原理和基礎(chǔ)都在數(shù)學(xué)這邊邮屁,當(dāng)然有很多偏應(yīng)用和軟件使用的技術(shù),例如“深度學(xué)習(xí)調(diào)參”等菠齿,這些報個培訓(xùn)速成班就能學(xué)會的技術(shù)含量不那么高的東西佑吝,不在討論范圍內(nèi)。
這里要討論的绳匀,是如何系統(tǒng)的學(xué)習(xí)芋忿,然后自己能編出這機器學(xué)習(xí)或深度學(xué)習(xí)的程序或軟件--我想,這才能稱為一個合格的機器學(xué)習(xí)疾棵、數(shù)據(jù)科學(xué)家戈钢。
1、入門基礎(chǔ)
1.微積分(求導(dǎo)是尔,極限殉了,極值)和線性代數(shù)(矩陣表示、矩陣運算拟枚、特征根薪铜、特征向量)是基礎(chǔ)中的基礎(chǔ),某篇圖像分割1w+引用的神文核心思想便就求解構(gòu)造矩陣的特征向量恩溅;
2.數(shù)據(jù)處理當(dāng)然需要編程了隔箍,因此C/C++/Python任選一門(推薦Python,因為目前很多庫和Library都是用python封裝)脚乡,數(shù)據(jù)結(jié)構(gòu)可以學(xué)學(xué)鞍恢,讓你編程更順手更高效,但是編程不是數(shù)據(jù)處理的核心每窖。
當(dāng)然了,樓主所在的圖像處理界弦悉,熟練使用matlab或者Python調(diào)用opencv庫是必要條件窒典,但是again他們只是工具,業(yè)余時間自學(xué)稽莉,多練練就沒問題瀑志。有同學(xué)問用R行不行,補充一點,用什么編程語言很大部分取決于你的核心算法會調(diào)用什么已有的庫函數(shù)劈猪,比如樓主的科研里面核心算法往往是MIP(混合整數(shù)規(guī)劃)問題需要調(diào)用Cplex或Gurobi庫函數(shù)昧甘,因此C/C++/Python/Java這些和Cplex接口良好的語言都可以拿來用,這時候R就別想了战得。(更新:最新Gurobi版本支持R)
另外雖然圖像處理界一些open-source的code都用C++寫的充边,但是鑒于使用方便都會提供Python的接口,因此需要用到這些code的話常侦,用Python調(diào)用比較方便浇冰;但是,如果是高階骨灰級玩家聋亡,需要修改甚至自己寫源代碼肘习,那么還是推薦C/C++,因為他們的速度最快坡倔。
3.算法
通常高校都會有算法類的課程漂佩,會概述各類算法的基礎(chǔ)和應(yīng)用,其中包括:精確算法罪塔、近似算法投蝉、啟發(fā)式算法、演化算法垢袱、遞歸算法墓拜、貪婪算法等待,還有各類優(yōu)化算法请契。
算法非常核心咳榜,想必大家都聽說過算法工程師這個職位。
關(guān)于數(shù)學(xué)模型和算法的區(qū)別爽锥、聯(lián)系涌韩,參見:
【學(xué)界】整數(shù)規(guī)劃精確算法/近似算法/(元)啟發(fā)算法/神經(jīng)網(wǎng)絡(luò)方反向傳播等算法的區(qū)別與關(guān)聯(lián)(http://t.cn/RlNoJ19)
2、中級教程
1.概率論+統(tǒng)計(很多數(shù)據(jù)分析建穆纫模基于統(tǒng)計模型)臣樱、統(tǒng)計推斷、隨機過程等
2.線性規(guī)劃+凸優(yōu)化(或者只學(xué)一門叫numerical optimization腮考,統(tǒng)計雇毫、機器學(xué)習(xí)到最后就是求解一個優(yōu)化問題)、非線性規(guī)劃等
3.數(shù)值計算踩蔚、數(shù)值線代等
當(dāng)年我是在數(shù)學(xué)系學(xué)的這門課棚放,主要是偏微分方程的數(shù)值解。
但我覺得其開篇講的數(shù)值計算的一些numerical issue更為重要馅闽,會顛覆一個數(shù)學(xué)系出身小朋友的三觀飘蚯。(原來理論和現(xiàn)實差距可以這么大馍迄!)
Conditional number, ill-conditioned problem,會讓你以后的編程多留個心眼局骤。
恭喜你攀圈,到這里,你就可以無壓力地學(xué)習(xí)Machine Learning這門課了(其實機器學(xué)習(xí)峦甩,通篇都是在講用一些統(tǒng)計和優(yōu)化來做clustering 和 classification這倆個人工智能最常見的應(yīng)用)赘来。并且你就會發(fā)現(xiàn),ML課中間會穿插著很多其他課的內(nèi)容穴店。恩撕捍,知識總是相通的嘛,特別是這些跨專業(yè)的新興學(xué)科泣洞,都是在以往學(xué)科的基礎(chǔ)上由社會需求發(fā)展而來忧风。
到這里,其實你已經(jīng)能看懂并且自己可以編寫機器學(xué)習(xí)里面很多經(jīng)典案例的算法了球凰,比如regression狮腿,clustering,outlier detection呕诉。
關(guān)于優(yōu)化類課程的綜述缘厢,相關(guān)專欄如下:
[運籌帷幄]大數(shù)據(jù)和人工智能時代下的運籌學(xué)
原文鏈接:http://t.cn/RlNoO3P
運籌學(xué)(最優(yōu)化理論)如何入門?
原文鏈接:http://t.cn/RlNoHiM
學(xué)到Mid-level甩挫,就已經(jīng)具備絕大部分理論基礎(chǔ)了贴硫。然后做幾個實際項目,就能上手然后就可以“吹噓”自己是搞機器學(xué)習(xí)的伊者,就能找到一份工作了英遭。
但是要讀Phd搞機器學(xué)習(xí)的科研,那么高階課程必不可少亦渗,而且同一個topic你需要上好幾門課挖诸,并且你博士的課題,很可能只是一本書中一個章節(jié)里面一小節(jié)里講的算法法精,去改進(jìn)他多律。
比如,樓主的博士課題就是mixed linear programming + discrete graphical models + markov random fields + regression + clustering + segmentation搂蜓。
3狼荞、高階課程
再高階的課程,就是比較specific的課程了帮碰,可以看你做的項目或者以后的concentration再選擇選修粘秆,比如:Probabilistic Graphical Models(概率圖模型), Integer Programming(整數(shù)規(guī)劃) 收毫,計算機視覺攻走,模式識別,視頻追蹤此再,醫(yī)學(xué)圖像處理昔搂,增強學(xué)習(xí),深度學(xué)習(xí), 神經(jīng)網(wǎng)絡(luò)输拇,自然語言處理摘符,網(wǎng)絡(luò)信息安全,等等等等策吠。
深度學(xué)習(xí):目前非彻淇悖火,打敗了非常多幾十年積累起來的經(jīng)典方法猴抹。
增強學(xué)習(xí):也很火带族,游戲AI、自動駕駛蟀给、機器人等等蝙砌,它都是核心。
概率圖模型:深度學(xué)習(xí)之前非常popular的“學(xué)習(xí)”方法跋理,有嚴(yán)格的數(shù)學(xué)模型和優(yōu)美的算法择克,雖然目前被前倆者蓋過了風(fēng)頭,但是依然有它的立足之處前普。什么肚邢?你不知道最近用PGM發(fā)了篇Nature,打敗了CNN拭卿?快看下面:
Robin Shen:如何評價 Vicarious 在 Science 上提出基于概率圖模型(PGM)的 RCN 模型骡湖?
原文鏈接:http://t.cn/RlNoFhH
再比如有用偏微分方程做圖像處理的(比較小眾),那么這時候你肯定要去學(xué)一下偏微分方程了记劈,大都是以科研為主導(dǎo)的勺鸦。
科研嘛,為了發(fā)文章目木,就是要嘗試前人沒嘗試過的方法换途,萬一效果不錯呢,就是一篇好paper了刽射,對吧军拟。
附上頂尖會議排名,共勉:
國際“頂尖”計算機視覺誓禁、機器學(xué)習(xí)會議大搜羅--附排名&接收率
原文鏈接:http://t.cn/RKd4jee
4懈息、互聯(lián)網(wǎng)教學(xué)資源
書目沒有特別推薦的,但是建議看英文原版摹恰。
另外直接翻墻Youtube看視頻課程辫继,很多國際知名教授都很無私地把自己上課的視頻放在youtube上免費學(xué)習(xí)(搜索我上面列出的科目名字)怒见。如果確實要樓主推薦,那就推薦海德堡大學(xué)歷史上最年輕的教授 Fred的機器學(xué)習(xí)視頻(我基本都看過)(http://t.cn/RlNKGop)
另外一個教授給你上課的時候姑宽,開頭一般是會推薦書給你的(如果你確實喜歡看書的話)遣耍。
以下再推薦一些視頻,僅受之以漁炮车,多為graduate course舵变。
Machine Learning by Prof. Nando de Freitas, 此視頻是其在UBC時13年所錄瘦穆,后來跳槽去牛津計算機系纪隙。
原文鏈接:http://t.cn/RlNKEyk
Deep learning at Oxford 2015 ? by Prof. Nando de Freitas, 跳槽到牛津所錄扛或。
原文鏈接:http://t.cn/RwgbKNb
Probabilistic Graphical Models by Daphne Koller, 斯坦福大學(xué)計算機系教授
原文鏈接:http://t.cn/RlNKgpB