如何評價Yann LeCun 說的「要研究機器學習,本科應盡量多學物理和數學課」?

原問題:為什麼Yann LeCun認為,要研究機器學習,本科應盡量多學物理和數學課程?

來源:《Data Scientists at Work》p64 http://www.springer.com/gp/book/9781430265986
要多學數學可以理解為人工智慧研究中要用到大量數學,但為什麼要多學物理課程?物理對機器學習有何幫助?
註:Yann LeCun是深度學習大牛,Facebook人工智慧實驗室主任。


Yann LeCun說:「Take all the math and physics courses you can take.」

個人有一些想法在這裡寫一寫。

1)關於數學

要學數學很容易理解。

因為學習機器學習舉目皆是(雖然大多時候並不深奧)數學。機器學習的數學細節很多,但很多不意味著很深。其實大多數數學細節可能稍顯繁複,但涉及的數學知識卻相當基礎。
你最需要的只是那人盡皆知的三板斧——微積分、線性代數、概率論和數理統計
所有理工科學生都應該認真學好的三門數學基礎課——微積分、線性代數、概率論和數理統計。在USTC,這三門課加起來僅僅20個學分。但我們應當付出遠遠超過20個學分的精力。

這三門課打好底子,有了這個數學基礎,學機器學習已是事半功倍。如果你已經學過這三門數學課,如果你想學習機器學習,那麼你不妨現在就去。如果你還沒有這三板斧打底,還是先去磨好斧子再砍柴為好。稍微尊重一下機器學習好嘛。但若你要再準備好個五把十把大斧子才砍柴,卻又大可不必了。這是使錯了力,我們又不是在買斧子。(你學的是機器學習呢又不是弦論對吧(⊙﹏⊙)b

研究機器學習來說,數學背景就是多多益善了。
兩個層面來講,
一是,很多數學方法、工具,如果你不知道,那就真是盲人摸象了。遇到了新問題就只能一臉懵逼。明明有一條路擺在那裡了,你卻怎麼也看不見。因為你不知道有路,所以你甚至不知道該怎搜索。

二是,數學光記得還不行。得訓練才能自己用。
真到做研究的時候,很多解是要自己算,很多結論是要自己證明的。不能沒看到過別人怎麼算,自己就什麼新東西都算不出來吧。如果本科時沒有受過系統的數學訓練,大概推到一半就開始懷疑人生了。這條路不對吧?這個解不出來吧?這個證不出來吧?
總是跟著別人推方程,你可能會感受到不到你面對的數學問題的深度,會漸漸失去數學上的嗅覺。有時候可能差一點你就能解出來了,但你看不到終點就不敢再向前。有更多的訓練,你才能對問題有敏銳的感知,才多一點人生經驗。

我在過去的一個回答里提到過一個觀點,數學在限定你的能力圈。因為創造數學太難了,我們不是牛頓,不能一言不合就創造個新工具搞個微積分出來。基本上你的學術成果都是在你的數學能力圈之內耕耘出來的。在本科的時候盡量拓寬自己的疆域,後來才能有更廣闊的土地用來耕耘、建造。

2)關於物理

我在計算機行業還能火幾年? - Summer Clover 的回答 - 知乎寫過這段話:

人類歷史上其實有很多學科都名噪一時,但是能像數學、物理學一樣保持長久的生命力、能吸引一代又一代最傑出的頭腦的學科實在鳳毛麟角。

一句話,數學和物理都是人類歷史上最傑出的頭腦的思想結晶。
有了三板斧的內功底子後,再學幾門物理基礎課也是極好的。但儘可能多學物理課對非物理系的學生未免不切實際。
向對物理學感興趣的非物理系理工科學生安利三門物理課——理論力學、量子力學、統計力學。不用更多,就學這三門(能學滿四大力學當然更好)。從左往右一個個來,學不了吃虧,學不了上當。在USTC,這三門課一共14個學分。同樣的,其課程價值遠遠超出14個學分。個人認為,沒有其他任何物理課比這三門更超值。內功、招式,應有盡有。這三門也足夠帶你領略物理學之博大精深了。

物理有這樣一個特點,每學習一門物理科學課,你都要去熟悉一套數學工具。
就像每一門武功都有內功心法一樣。內功和招式是相輔相成的。

學物理,你能獲得的什麼?
一是,數理訓練。簡單一點說,是把問題數學化然後再求解這個數學問題。
數學系學數學和物理系學數學的方式其實非常不同。雖然都被當做數學基礎好,但其實數學系的同學們更擅長證定理,物理系的同學們更擅長解方程。數學家眼中的數學是很偏前者的,普通人遇到的數學問題更像後者。
論抽象的數學證明嘛,數學系不是針對誰,在座的各位都是...
單就論解方程這個技能點,物理系的訓練肯定是比數學系好不少的。
另外,搞物理常常會先猜出來大概的結論,再去求解、證明。還不行就假設是對的推推看再說。還不行,我們還可以加點什麼近似。這和數學圈的philosophy截然不同。

二是,物理學的思維方式。
在最基本的層面挖掘原理,從最基本的原理抽象模型。《費曼物理學講義》可以說處處都是這種高超思維技巧的展現。還有就是,吸取物理學中處理新問題的一些歷史經驗。特別是量子力學和統計力學裡對不直觀物理系統的處理方法

如果費曼在這個時代的話,我想他一定會對機器學習很感興趣的。
機器學習太物理學了。尤其像古典時期的物理。
牛頓別再磨透鏡,來這時代跑幾個程序可好。

預計接下來十年會有一波物理學家研究Deep Learning的熱潮。文章直接發到Physical Review Letters等物理頂刊上。這個時代的物理學家很飢餓。想跨界獵食的物理學家不少。
而目前Machine Learning Community里99%的人大概都對閱讀PRL感到無力。一方面因為要關注的ML conference已經很多了,另一方面也因為物理學家會用ML Community非常陌生的概念和數學工具。
比如說這種類型的:
Statistical mechanics of complex neural systems and high dimensional data
https://arxiv.org/abs/1301.7115

我覺得未來非常需要能連接這個兩個community的研究者。
能同時理解兩個community,也能讓兩個community更好交流的研究者。
學點物理可能會在這點有潛在的好處。


儘管Machine Learning is not Computer Science.
但考慮到國內的培養模式,還是CS背景的學生更適合機器學習無疑。
只是想做ML的CS學生多學點數學和物理也是有所裨益


最後,套用一下集成學習里的一個結論。
Zhihua Zhou:「Many could be better than all.
不是所有個體都對集體有貢獻。如果你想對community有貢獻,你需要減少和其他人的correlation。我想物理學裡浩瀚的養分正好可以帶來研究的diversity,減少跟風趨同的correlation。

一點個人看法。不成熟的地方見諒。
以上。


好吧,我們的回答主要針對原問題:為什麼Yann LeCun認為,要研究機器學習,本科應盡量多學物理和數學課程?

這確實是一個好問題,值得我們注意的不只是Yann LeChun提到的物理的重要性,還有一個正在被關注的趨勢:物理學家越來越多進入數據分析/機器學習領域了。

前段時間,著名科技媒體wired發表了文章To Solve Its Hardest Problems, Silicon Valley Turns to Physicists,講到了矽谷中,無論是巨頭還是初創公司的數據處理/機器學習崗位上,都出現了大量物理學家或物理學背景的工程師。從GE收購機器學習初創公司Wise.io時,CEO吹噓:「我們打劫到了一打物理學家!」到領英CTO Kevin Scott(現在是微軟CTO了)在谷歌時狂招物理PhD,再到微軟的數據中心主任Vijay Narayanan本身還是一個天體物理學家,同樣是天體物理學PhD的Berian James畢業後進了Square當Data Scientist,普林斯頓的物理學PhD Claire Lackner在東京大學做了幾年博後之後,也進入了矽谷的數據挖掘公司,就像十年前物理學家大批進入金融領域一樣,現在他們正在矽谷大殺特殺。而且這一切發生得非常自然,接受Wired採訪的初創公司Stripe的聯合創始人John Collison十分義正嚴辭:「說的好像我們去物理學的幼兒園然後把那兒的孩子裝進籃子偷出來了一樣」, 他說,「這事就這麼發生了」。他的公司的機器學習業務部門,有來自哥大和UCLA的物理學博士,來自哈佛的物理碩士,和MIT的物理本科。

是什麼讓物理學家在似乎是數學和CS統治多年的機器學習領域展露頭角呢?這一現象在深度學習社區也引起了很多討論。

首先物理學家更熟悉概率論和數理方法,他們在這方面受過嚴格的訓練,有人認為機器學習中的數學問題充其量也就是物理本科課程的難度,這話雖然有些誇大其辭,但比起計算機科學家,物理學家對待數學要嚴肅多了。如果你去看吳恩達的機器學習公開課,Andrew經常說的幾句話就是「如果你熟悉線性代數那當然好,不熟也沒關係」「這裡的最優化方法非常複雜,原理到現在我也沒弄得非常清楚,但是我們就這麼用」,甚至高斯分布都是十分鐘現講現用,各種不講究。只是為了應用現有的模型這樣自然也足夠了,但是手握數學工具的物理學家,只要掌握了各種框架的API,搭起模型似乎更加得心應手。

另外就是物理學家對數據的洞察更加深刻,對於長年累月處理加速對撞機、NASA的天文項目等等海量數據的物理學家,大多數的機器學習問題中的數據量完全不足以嚇到他們,這似乎也能解釋為什麼在前兩年的大數據浪潮中,很多物理學家協助開發的軟體大受歡迎,谷歌的分散式系統的主要工程師之一Yonatan Zunger,在進谷歌之前在斯坦福研究弦論,之前提到的GE收購案中的CEO Jeff Immelt,說起那30幾個伯克利出身的天體物理學家的時候這麼形容他們:「只要給他們數據,他們就是幹掉一切(You match them with aviation data, and they』re killer)」


去年九月,MIT Tech Review 的一篇文章談到了Physicists have discovered what makes neural networks so extraordinarily powerful,給出了和以往生物學基礎都不同的,物理學家角度的神經網路的解釋。在計算機學家和統計學家看來成百萬的參數,實際上神經網路只是在優化其中很小的一個子集,起決定性的只有少數參數。事實上物理的優美所在,就是用簡單而優美的幾個參數,描述出整個宇宙中所有事物的運行規律,在這一點上,物理學的研究方法,無比適合深度學習。

無論物理學家最終能否真的解釋清楚神秘的深度學習,我們都需要認識到,物理學家正在從自己的角度,幫助重塑機器學習社區。在機器視覺,語音識別,機器翻譯等領域被深度學習的浪潮徹底吞噬後,神經科學也在喊著和深度學習的合併。深度學習正在影響著越來越多的學科,而它本身,也是生物,數學,計算機等等學科的雜交產物,作為一個誰都能拿來試試的工具,機器學習正在給所有的學科和領域,帶來新的碰撞和衝擊。

最後,歡迎關注 @矽谷密探 和本答案作者 @薛冬毅~


看了個神評論,說深度學習的數學大部分只需要大一水平,還有三十多個人點贊。讓我覺得自己看的論文是假的。。。

拿hinton兩篇比較早期的論文舉個例子。

大一看得懂deep Boltzmann machine 和deep belief nets的區別?扯。。。我不說做實驗了,更不說訓練演算法,就說結構上的不同。沒有比較強的概率論基礎,能看出來前者直接是擬合一個joint 分布,而後者是rbm疊加了很多bayes net?


沒有對優化,和蒙特卡羅方法的理解,怎麼能理解為什麼他提出的訓練方法有效?退一步,他為什麼這麼訓練?難道只是看得懂演算法,能寫出程序就夠了么?

知乎讓我很崩潰的地方是,wgan剛出來的時候,火的不行,討論的,解釋的特別多。但扯到數學,又能看到不少數學無用論。我就呵呵了,媽的到底看的懂那篇文章嗎?

我自己真的也迷茫了,本人作為上班狗,是不是知其然不知其所以然,就沒問題了?我覺得至少我現在這個崗位這麼搞不太行。

我非常同意有人說跟搞機器學習的人炫耀數學是沒意義的,但那是跟真正搞數學的數學家說的。

一般人優化和概率論至少要溜溜的才行吧。

########

附一個討論Andrew Ng貢獻的知乎問題。
http://www.zhihu.com/question/27177122

沒人提spectral clustering么?哭臉。知乎還是不看論文的人多。還有人家是lda的二作。。。


瀉藥,搞金融上街的人曾經也覺得本科讀物理數學的好,現在金工專業化後,就沒物理數學太多事情了。剩下只是用本科學物理和數學考考智商啥的,其實本質還是看你是不是名校出身,你試著看在知乎三本大學讀了物理,然後現在只能在機器學習界當失敗人士 @勃失敗 ,更不要說我這種100流本科,非985的科研院所出身的傻逼讀完物理,沒辦法幫公司賺錢,只能失業。。。

正經的說:物理數學是底子,尤其數學,不過不要為了搞機器學習學物理,要抱著超出目前框架的心態學習物理數學,只為了勝任國內機器學習工作不用讀物理,讀多了老讓你懷疑模型的效力,品味變高,出活卻慢,失業率變高。。。

如果搞的是人工智慧,當上面沒說。。。


數學和物理在機器學習中的重要性已經有不少人說了。

數學和物理是基礎,年輕的時候不認真學,以後不容易補。
數學不好,會有更多的模型和方法「知其然不知其所以然」。
機器學習的有些方法就是從物理模型中的啟發得到的。
掌握調參數的技巧並不是長久之法。

我想補充一下前面抖機靈的匿名答案。

Yann LeCun是法國人,在拿到博士學位之前,先拿到了工程師學位。

Yann LeCun was born near Paris, France, in 1960. He received a Dipl?me d"Ingénieur from the Ecole Superieure d"Ingénieur en Electrotechnique et Electronique (ESIEE), Paris in 1983, and a PhD in Computer Science from Université Pierre et Marie Curie in 1987 during which he proposed an early form of the back-propagation learning algorithm for neural networks. He was a postdoctoral research associate in Geoffrey Hinton"s lab at the University of Toronto.

英文維基百科頁面:Yann LeCun - Wikipedia

法國預科主要是包含了數學和物理的課程,想必Yann LeCun年輕時也遭受過法國預科的摧殘。

關於法國預科和工程師,可以參考以下的知乎問題:
法國工程師學院的培養模式是什麼樣的? - 留學 - 知乎
法國的預科是法國高等教育的精華嗎? - 巴黎高科 - 知乎

再偏個題,最近UCLA的朱松純教授也有類似的觀點:
初探計算機視覺的三個源頭、兼談人工智慧|正本清源
文章千古事, 得失寸心知 | 學術人生


楊樂坤這些主要是說給有志於在機器學習理論方面做深入研究的人聽的,大部分人實話說還達不到這個層次,而且學力也不足以學好這些複雜的理論,當然不否認多讀些物理和數學自然也會對理解演算法背後的理論有幫助,如果不是有志於搞研究的話,不如把時間花在更有意義的東西上面。


對!我開始讀研後也有類似的體會:要研究計算機圖形學,本科應盡量多學數學和物理課程。因為幾乎所有的應用層計算機科學的研究中,更多的用到的是數學工具和思想。嚴格按國內本科的計算機科學與技術專業培養方案培養出來的人才更適合去當軟體工程師。

機器學習里,計算機編程只是個工具,計算機科學思維(迭代、遞歸、分治、分層級設計等)、應用數學(數學分析、線性代數、數學優化、數值方法等)、統計學(概率論、數理統計、隨機過程等)才是核心。

物理在其中的意義,就我的理解而言,是它裡面有很多模型就是用數學理論(如數學優化、微分方程等)來建立的。所以通過學物理,你能體會到如何用數學去建立模型以解決實際問題。通過學習一個物理現象/問題如何被一個數學理論來描述,你也會對這個數學理論有更深刻、直觀的理解。


誒呀,很多人可能沒有意識到,物理是自然科學裡把分布(distribution)研究的最為透徹的一門學科了吧,尤其是統計物理,這一點上和機器學習以及人工智慧的目標,嗯,蠻像的。

很多人覺得機器學習僅僅是統計模型,其實不僅僅是如此,一個沒有interpretability的模型是沒有生命力的。Boltzmann machine, Ising model, Helmholtz Machine,它們既曾是概率圖模型的backbone,也是時下深度學習的先驅。當然了,如今的深度學習可能會讓人有一種錯覺,那就是過分地強調拓撲結構本身,而不是背後的演算法(反向傳播大法好)和解釋力,所以巨頭們才號召大家多學數學物理從事相關理論研究,試圖從數學和物理的角度打開深度學習的黑箱啦。

所以總結來說吧,顏樂存這句話是寫給未來去填深度學習的理論坑的人,而不是寫給想學tensorflow轉「人工智慧方向」的程序員(又不是人人都有學術理想_(:з」∠)_,write your code, someone can do the math)


楊樂村這話說的有一定道理,但是不能全信。

首先想做機器學習數學肯定是要學好的,線性代數,微積分,概率論,這三門是重中之重。學好了就有足夠的基礎開始入門機器學習了。學不好只能當個data scientist(逃

然後物理我持保留意見,我覺得他這麼說是因為CS高年級的很多課,尤其是硬體課,對搞機器學習幫助有限,所以還不如學學物理,鞏固一下數學基礎。但是!如果你自學能力強或者有人帶,直接入門機器學習比學物理更好。學物理這個建議是在你不知道幹什麼好的時候的權宜之計。

為什麼這麼說呢?機器學習大概有兩個方向,理論和應用。應用方面跟物理有一個本質區別:物理主要研究對少量對象或低緯情況精確建模,比如四維時間的幾個基本粒子或者三位宇宙里的很多行星,就算最不靠譜的弦論也就11維到頭了,而建模的數學通常極為複雜,一個公式寫一頁紙是常有的事。

而機器學習善於對大量高維數據簡單建模。在實際應用中,通常數學越簡單的模型效果越好,因為簡單的模型對算力和數據的利用率更高。尤其是deep learning興起以後,把一票沒有解析解只能靠近似的複雜方法都掃進了角落。簡單、粗暴、有效。如果你看到一個論文數學特別複雜,證明了一堆定理,通常意味著一件事:他們的實驗不work,想搞點複雜的數學製造一種不明覺厲的效果讓reviewer一臉懵逼把論文收了……

從另一個方向來說,如果你想做理論,那麼可以考慮多學點物理,找點複雜的模型搬到CS,其實也不一定有多難,但是reviewer才不會為了審一篇paper去查文獻研究到底怎麼回事。最後誰也看不懂又不願意承認自己看不懂,實驗不work也能發paper。


機器學習,玩的就是數學。那張安裝Caffe/TensorFlow收費10元的圖呢..模型甩在臉上,api誰都會用,參數不懂數學就調不來啊。


最起碼某些方向是不需要太多物理的...因為自己比較想做Graphical Model方向的研究,有去找過Larry Wasserman/Roni Rosenfeld/Ryan Tibshirani問過怎麼做準備比較好...反正得到的結果是除了別的題主說的三板斧意外,實分析Real Analysis同樣十分重要,反而物理課程並沒有像LeCun說的那麼重要...
然後看paper其實感覺也比較明顯,各種function space(Sobolev,Holder)如果沒有實分析背景還是挺難啃的
相反大學裡一節物理課都不敢上的我並沒覺得物理差是一個不可彌補的缺點...


不算進沒有列出任何證明的論文, 機器學習的研究大都集中在三個科目, 微分流形, 群作用, 張量代數跟序理論.

只是應用機器學習的話, 難說有啥特別需要學習的. 看誰研究出啥就抄襲快一點, 應用活一點, 快點為公司賺錢才是真的

只因為物理有用到同樣的理論, 微分黎曼幾何啥的, 就說得學物理, 這是捨本逐末邏輯有誤, 直接學數學就好


中科院理論物理所就有人基於自旋玻璃、相變理論研究消息傳遞演算法...


我同意。事實上我認為不僅僅是學機器學習,幾乎所有理工科的專業入學都應該在數學和物理上修足學分。

這兩門學科是墜吼的。上面已經有人說了,是幾百年來經久不衰,凝結了科學界最頂尖頭腦智慧結晶的學科。通過這兩門學科的訓練,人的思維水平才能上一個層次。這是一個對人的磨練。

本科的時候我和室友討論也是這個結論,尤其是上海交大,清華北大,華東五校這類的學校,應該有這些標準。有種說法是「人文通識課」,那這兩門課是「科學通識課」。

當然,有文學修養也是很重要滴,這樣才能在關鍵時刻念兩首詩。


可能是因為智能更是一個自然的問題,而不是一個人的看法問題的原因吧。


其實中國學生應該更多地體會,因為我們初中學的所謂「馬克思哲學」基本就是反的:世界是唯機械論的,

世界不是普遍聯繫的。


隨著硬體的更一步提高,軟體更多是工具性的了,而不是決定性的因素。


數學是解決問題的一切的基礎,而物理學則是問出正確的問題。


說實話 一開始接觸支持向量機的時候真的很有種無力感(注,現在也沒多麼有力…),裡面遇到的統計學知識真的不懂…
本科時候學了高數(工科) 概率論 線代 大物以及控制,電學等等自動化課程 但在實際學習svm時候還是一頭霧水
可能本科時候的課程也沒學好吧(新人們如果真要走這條路一定要打好基礎) 最後我的解決辦法是:再刷一遍高數,線代 當然這次就是有目的的複習了 現在有點開竅了 我不是說現在的自己有多強 確實是 現在看到一些問題 發現原來當初是這麼個意思 連帶著理論推導也有了提升 確實很高興(發自肺腑的)
所以我感覺多積累些數學基礎只會更好 至於物理知識 我個人沒有太多感受 也不評價了


我大一, 我發現我並沒有辦法完全弄懂那堆數學誒.

說大一數學就夠的, 要麼是我讀的是三本, 要麼就是你在逗我


物理學不好,意味著你對物理沒有熱情,對這個世界不夠好奇,因而也不會有洞察力。
那你來做機器學習,就是在編程的層次來做的,而不是探索未知。


現在的「深度學習」就處於萊特兄弟發明飛機那個時代。那時空氣動力學理論還不實用,把飛機搞上天依靠的是工程能力,千百次反覆試驗。萊特兄弟、愛迪生都不太懂數學,但並不妨礙他們成就一番偉業。難道非要對萊特兄弟講現在理論不成熟,你們不要去發明飛機了。

深度學習目前嚴格來說沒有成形的理論,也沒有太多的數學證明,那些論文上的數學公式也不需要高深的數學知識就能看懂。現在需要理論家,更需要千百個萊特兄弟。


是挺重要。可是國內很多學校本科數學和物理教的很差,堪稱興趣殺手。不如學點公開課。


推薦閱讀:

如何評價 ICLR 2017 中關於 Rethinking Generalization 的那篇文章?
最優化問題中,牛頓法為什麼比梯度下降法求解需要的迭代次數更少?
Python 在網頁爬蟲、數據挖掘、機器學習和自然語言處理領域的應用情況如何?
什麼是機器學習?
如何評價聚類結果的好壞?

TAG:人工智慧 | 機器學習 | 深度學習(Deep Learning) |