怎樣看待Ali Rahimi 獲得 NIPS 2017 Test-of-time Award後的演講?
視頻: https://www.youtube.com/watch?v=Qi1Yry33TQEt=1258s
演講摘要:NIPS風波|獲獎者登台開炮:ML是鍊金術,大神LeCun強硬回懟
看到大部分回答在討論理論和實踐哪個更重要,我認為這並沒有切中Ali演講的要點。
Ali呼籲的是: Bring rigor back to this community!
rigor是一個廣義的詞,不僅限於math,theory,更不是empirical study的對立。Experimental Physics, Mechanical Engineering, Chemistry等等學科都是empirical study, 但我認為他們的方法是rigorous的。因為他們的paper會對每一個假設,每一個結論做仔細、詳盡的實驗來支撐。
說白了就是「無論做理論還是做實驗,要做就做嚴格」。面對如此合理合法合情的呼籲,Yann有什麼好吐槽的。
rigor指的是一種「小心求證」的態度。 Ali在talk中引用了batch-normalization這篇paper作為例子。Paper的作者聲稱bach-normalization解決了internal covariate shift的問題,從而使training得到穩定,但自始至終都沒有定義什麼是internal covariate shift,更不用說設計實驗驗證batch-normalization有沒有解決,以及怎麼解決這個問題的。
如果仔細看一看近幾年的deep learning papers, 你就會發現「大膽假設」但不「小心求證」成了一種主流。似乎只要刷出了state-of-the-art的結果,就可以在paper里irresponsibly make claims。
更可怕的是這個問題不只存在於論文作者身上,reviewer的審稿方式更是逼著大家盲目追求state-of-the-art。近來review形成一種格式: "good idea, but I think your experiments should be ____"。 這意味著這些reviewer對文章本身的idea完全不給於評價,而對一兩個實驗細節窮追不捨。
今年ICLR review出來了以後我們好奇地評估了一下其他論文審稿質量,結果令人擔憂,以至於同事發了一份長篇吐槽。(即使我們自己的paper情況還算樂觀)
其實我覺得ali說的不錯,雖然鍊金術像是某種政治正確用詞,只能說自己不能說別人,但是ali提到的一些點真的非常中肯。我認為他並不是反對實驗優先的research,而是希望大家的claim能夠足夠實際而不浮誇。work並不是壞事,壞事是work但是不那麼願意去深挖work的原因。
感覺yan的反應相比之下有些過於aggressive了,Ali也並沒有任何貶低的意思。實驗為主的explore當然重要,尤其在發展的初期,但是如果真的要進步,theory的支持肯定必不可少。在這點上,ali說到的鍊金術其實非常貼切,yan舉的例子不是正好反應了ali的話么?望遠鏡先於光學,飛機先於空氣動力學,有了後者之後我們的進步是不是都更加迅速了呢?畢竟鍊金術也先於化學啊。
ali也沒指責大家不去做theory,更多的也是呼籲大家在努力實驗的時候,要多多注意吧。補充一點: Yann LeCun (楊立昆) 對Ali Rahimi 的反駁中有一條證據是錯誤的.
the airplane preceded flight aerodynamics
與楊立昆所說恰好相反, 萊特兄弟之所以能夠成為飛機第一人,和他們嘗試理解空氣動力學,用嚴謹的科學方法設計飛機是分不開的。內燃機發明後很多人都嘗試給內燃機綁上個螺旋槳來造飛機。萊特兄弟之前靠民科式硬來,糙快猛的方法造飛機的嘗試無一例外都失敗了。18世紀末19世紀初摔死了不少跳過數學建模和理論計算,通過直接在內燃機上綁螺旋槳的方式造飛機的發明家。
萊特兄弟發現基於現有升力模型計算出的升力數據和實際觀測不符之後,為了深入理解速度和升力的關係,於 1901 年建造了自己的風洞
萊特兄弟基於風洞和重新測量的升力係數表,設計了不少於200個機翼橫截面模型
資料來源 :
Wright brothers - Wikipedia
Wright 1901 Wind Tunnel
Wind Tunnel Test Models
1.
本科數學專業,剛開始入行深度學習那會兒,心裡還殘留著非常濃厚的數學情結,信誓旦旦要干一番大事業。結果蒙頭搞了兩個月,π都沒搞出來,心力憔悴,導師緊急叫停,從此以後不煉丹,只煉金。
後來看到田淵棟師傅也曾經花費半年做理論,大概看了他的論文結果,非常嚴謹,也很欽佩。不過實實在在地說,是心有餘悸。煉金兩年以來,也有一些小收穫、小成績,但其實心底依然保留著極大的理想主義:1687年牛頓的《Mathematical Principles of Nature Philosophy》,1948年香農的《A Mathematical Theory of Communication 》,1950年圖靈的《Computing Machinery and Intelligence》,……,真心期待,未來某日誕生《Mathematical Theory of Intelligence》。
2.
Ali先生的發言,其他答主已經做了非常深入的解析,我說一個自己的小感受:就在剛剛,跑一個DRL-based Image Caption的實驗,當我輸入run命令的那一刻,我發現心中還是有一絲絲莫名的驚惶。我不禁問自己,是不是真的要在案頭放一個圖靈的牌位,每日供奉,心裡才會更加安定一些?3.
Lecun先生的發言,我斗膽補充一點點思考。誠如有些答主所提及的那樣,感覺他的反應有些過激了。若是站在支持他的角度,或許可以聯想到的是,在上一輪冰封期里Lecun先生勇扛大旗、不懼風雨的雄姿(相關描述來自Hinton教授的某次採訪);若是站在一個質疑的角度,或許可以想到的是,學術爭鋒,百家爭鳴,這背後爭的可不僅僅是思路,不僅僅是真理本身,更加是話語權,和實實在在的名利糾葛。當然,無可厚非:人活一輩子,總要有點依託。——真理?大師?有些時候可能只是因緣際會,順應天道吧。我在場聽了talk,覺得Rahimi講得挺好的。我沒覺得Rahimi噴deep learning不好,他噴的應該是那些不嚴謹的研究。嚴謹的研究並不一定是要證明出什麼bound,只要方法合理就行。問題是很多研究連「合理」都做不到,搞出些奇奇怪怪的trick,號稱很好,可是解釋牽強,換個batch size、rounding就不work。
還有文章號稱搞出些理論解釋,其實也沒理論,也不一定合理;比如有一篇文章號稱flat minima泛化能力更強,很快就被Bengio懟回去了 https://arxiv.org/pdf/1703.04933.pdf 現在這種文章挺多,既沒有傳統ML的理論分析,也沒有實驗科學那種小心求證。
Rahimi也沒說煉丹不好;煉金可以造出化學藥品、發現化學元素。但很多搞煉金的號稱能把鐵變成金子,貌似現在挺多這樣的人。
聽說Ben Recht今年在美國巡迴演講,主題就是把deep learning比作鍊金術。。。。哎呦,Ben他至於么,什麼仇什麼怨啊。。。。
其實非常贊同理論的重要性,無奈數學不好只能繼續回去煉丹。可是煉丹需要信仰,昨天在尋找信仰的時候在某大佬指點下看到幾段話,於是我決定把鍋推給寫這幾段話的人,然後堅實自己繼續煉丹的信仰。
It"s a good thing he wasn"t around when Newton passed white light through a prism, Galileo saw the moons of Jupiter, or Faraday moved a magnet to and fro within a coil. He might have tapped them on the shoulder and said, 「This isn"t science until you have obtained a graph,」 thereby aborting the birth of physics.
...
The question of what the rules are—specified in functional terms—and how these rules incorporate the statistics of the natural world is interesting in itself. And it"s orthogonal to the question of whether the rules are acquired through evolution or through learning.
-- V. S. Ramachandran
從Yann的角度和經歷來講,估計是在經歷上次NN低潮期的時候被打壓怕了,明明能work很好的東西總是被各種「挑刺」-不優美、沒有理論上下界、直覺假設沒有證明,導致在很長時間裡都憋著一肚子氣,所以對噴這種言論也就很容易理解了。
先看了宣傳報道,再看了視頻。感覺其實宣傳報道沒有什麼大問題。
看ali的視頻覺得他態度確實有點消極,雖然可能是故意的。(但是如果調侃著來,可能就不會有現在這樣激烈的討論了)
然而完全同意ali和ben的說法,dl就是鍊金術啊。。。。感覺比煉丹的比喻還要貼切一些。
感覺yann lecun反應有點過激了(論證中是有問題的,別的回答也指出了)。
貼一個喜歡的博主的評價,Alchemy, Rigour and Engineering
(一句話介紹已經改成鍊金術士)
(然而我也是不會去搞理論的。。。。我這個智商只能給他們加油鼓勁~~)
煉金的比喻明顯沒有朱老師中醫的比喻來的貼切
credit: Song-chun Zhu and Kun Deng http://www.stat.ucla.edu/~sczhu/research_blog.html
只要發文章是剛需,強調application永遠都是主流,這點也沒人說不好。但要明白,Ali真正指出的問題是,這個社區最流行的處事方式已經變成了這樣:
1.找個前沿模型跑個結果
2.調整下模型
3.a 哇,跑的更好了,快、快、發文章!
3.b 挖槽,怎麼結果這麼差,再換個方法試試
有時候,我們會讓結果蒙蔽了過程,對中間的微妙之處失去探索的熱情。這不就讓一門科學成了鍊金術了嘛。
看完視頻之後想起自己剛開始接觸NLP的時候,也是deep learning剛開始進入這個領域的時候,調參還是相對簡單的,網路的寬度、層數、SGD的學習率,l2 norm,最多再加上dropout。
再看現在的煉丹,layer norm, batch norm, 各種optimizer,是否residual,lstm的stack數。。。而且最噩夢的是很多情況下我們不知道這些方法theoratically為什麼會有用,所以只能多開丹爐。。。
deep learning很好用,但也希望能有更多theory的研究,至少把各個丹的有效成分弄清楚。
我覺得很多 CV 很不喜歡搞理論的。我猜測尤其被之前各種 jointly loss 加 jointly regularization的各種對偶形式的若干變換等灌水噁心到了。當然,這不是肯定不是理論的全部,只是一段時期到處都是這類東西,有點辣眼睛罷了。
我相當尊敬 Ali 這麼說,目的倒不是討論理論和實驗的貢獻問題,而是學科多樣性問題。大家扎堆往同一個方向走,並不斷被論文審稿的喜好洗腦,我只擔心深度學習為了指標,又變成了新的研究 CV 的範式,或者說類似生物解蛋白質結構那種研究模式,知乎勸退首要學科。。。。
說到空氣動力學,我聽過一位老師曾經說過工程和理論強藕合的例子(這個我是聽過來的,我本人也沒找到出處,大家就意會一下,這段歷史可能是被理論家修飾過的),就是直升機機翼,當年直升機機翼的設計還是簡單粗暴的,使用一段時間後,就會出現各種小坑,工程師百思不得其解,一個簡單的解決方案就是換個材料,增強機翼的強度這些,特別類似深度學習各種臨時的trick。這事情被搞空氣動力學的理論學家聽到了,他研究了一陣,發現坑的本質是高速旋轉機翼在潮濕空氣中會激發大量微小的空氣氣泡,氣泡爆炸的威力導致了機翼出現損傷,按照這個理解,加強機翼的材料強度就不會是唯一的一條路,改空氣動力學屬性才行。當然,知道本質後飛機還是飛,也不會因為理論多飛快多少,但是穩健性得到保證,直接影響後面的工程走向。
本來,科學和理論的東西是探索有可能work 的東西,本來就不應該過分強求sota問題,而是邏輯自洽以及和實際問題的接軌程度,工程和煉金是實現大家覺得應該work 的東西,自然而然需要在性能上花費力氣。兩者是不分家的。
我們要反對的,永遠是為了推行某個方向,而施行學科沙文主義,搞江湖流派的人。不管是理論還是實驗,搞江湖大佬都要反對。
當然是結合其他人的觀點一起看待啦~
Marvin Minsky對Statistical Learning的態度:
cf. https://www.quora.com/Whats-Marvin-Minskys-view-on-deep-learning
「Neural Networks, Reinforcement, and Statistic-Based Methods tend to be too opaque to support other kinds of reflective thought.」
「When these solutions work, what you end up with are machines that can solve problems without anyone knowing how they do it.」
Michael I. Jordan對Deep Learning的態度:
cf. AMA: Michael I Jordan ? r/MachineLearning
In some of the deep learning learning work that I"ve seen recently, there"s a different tack---one uses one"s favorite neural network architecture, analyses some data and says "Look, it embodies those desired characterizations without having them built in". That"s the old-style neural network reasoning, where it was assumed that just because it was "neural" it embodied some kind of special sauce. That logic didn"t work for me then, nor does it work for me now.
Yoav Goldberg對Deep Learning的態度:
cf. https://medium.com/@yoav.goldberg/an-adversarial-review-of-adversarial-generation-of-natural-language-409ac3378bd7
Or, for fucks sake, DL people, leave language alone and stop saying you solve it.
此外,就我所在的國家(非歐美)而言,CoLING,ACL和NIPS某年的General Chairs對Deep Learning的態度都非常曖昧。
see also: 深度學習勸退文
目前的「深度學習「確實是鍊金術, 所以阿里說得沒錯。
LeCun的觀點有兩個:
1, 不是說鍊金術我們就應該摒棄他。
我也沒聽到 阿里說我們不應該用深度學習。
2, 與其在這bb, 還不如趕緊去做理論研究啊
這個阿里也回復了, 之所以要說, 就是希望鼓動更多人來做理論研究。
但阿里有一點說對了, 由於深度學習的玄學,導致神秘主義在這一行盛行, 大神被過度崇拜, 賺的盆滿缽滿, 至於他們有沒有盡到自己的義務, 推動這個行業往更健康, 更不鍊金術的方向發展?
我覺得沒有。
這篇博客分析得非常中肯。裡面有一句話說得非常好
It"s okay to use non-rigorous methods, but it"s not okay to use non-rigorous evaluation.
現在DL理論還沒跟上,文章沒法用理論證明,只能用實驗效果說話,這個現狀是無奈之舉。但是現在的問題是,有的文章做實驗都做得不嚴謹,這是Ali很反感的一點。Ali反感的另外一點是現在大部分人都在憑直覺找idea,發現實驗效果不錯就滿足了,不去深究背後的原因,這不是正確的科研態度
Lecun的反應的確有點過激,我覺得應該是被Ali說的「Alchemy」給刺激到了。「Alchemy」,也就是鍊金術,指的是通過化學方法將一些基本金屬轉變為黃金,製造萬靈藥及製備長生不老葯,這個詞帶有一些貶義,而且跟DL也不太一樣,DL是理論無法解釋,但是實際效果卻非常好。這種說法喚起了Lecun的恐懼——90年代的時候,DL沒有理論支撐,又沒能有特別好的實驗效果,DL一度陷入絕境,所謂「一朝被蛇咬,十年怕井繩」。
作為一個兼具了「精確可知」的理論研究背景以及深度學習經驗的後輩怒答一發:
我在因為業務需求搞深度學習前是搞數值偏微分方程的,寫大量的數值代碼以及演算法,在那個世界裡,所有的誤差都可以被分析,所有的結果都可以「無窮」逼近。注意這個無窮逼近,我會在後文再次提到。
這一塊學科的研究方法告訴我,科學研究,不是去化零為整,而是設法去化整為零逐步擊破,比如要研究整個宇宙的天體運動,我們先明白f=ma. 而要研究f=ma的規律, 我們是研究小車與滑塊,而不是採集地月運動的數據。此處滑塊實驗的分析,我們不妨稱之為一個最簡單元。
我們採取單一變數法來研究物理規律,而不是多變數法。其好處之一是帶給我們更好的啟發。
深度學習則恰恰相反。 為了提取f=ma這個原理,或者隱含地提取這個原理進而直接地建模星球運動的模型,它先從採集百萬個行星的質量和軌跡開始,然後企圖建立一個xt+ =NN(m,v,r,t,xt......)的大統一模型,為了讓這個模型足夠描述複雜的非線性現象,它先設定它是具有某種結構的複雜非線性函數嵌套,並嘗試去擬合函數的參數。 為了擬合這些參數,它採用的是多變數變化法而非控制變數法……
此處有幾點值得注意的:研究者如何確定所提出的網路結構,即函數結構,正好是所求規律的函數結構,或者必然包含了所求規律的結構呢? 就如線性函數只能在某些區間描述拋物線規律,而永遠不可能真正描述拋物線一樣。研究者如何知道所構造的結構比所求規律高級?
2. 拋開優化問題不談。
3. 如何控制變數研究? 改進的intuition在哪? 如何無窮逼近我需要的解? 這都是rigorous的科學研究所需要回答的,而機器學習領域缺乏的。
結合實際說說: 我所做的項目正好提供了我很好的控制變數研究環境。同一個人,同一個動作,同樣的環境和時刻,我們有幾百個不同角度的照片,假設這個人不在綠幕,我們想把這個人摳圖出來,並且同樣的事我們要做幾萬個幀。 我們想要高清,高精,不差分毫的自動扣圖。我們創造出了一系列的數據集和訓練方法,得到了一個神經網路,這個神經網路在某些角度能達到幾乎完美,99.9%準確的摳圖(對比人摳),邊緣像素幾乎無差,連衣服的褶皺,領子的細節都不放過。然而問題來了:在另一些角度,同樣的模型失去了準確度,或者引入了點背景 或者切去了手指 或者掉了塊頭髮,或者丟了塊褲腿……當然誤差像素麵積平均不超準確mask面積的5%. 但得到的結果對我們來說已經是沒用的了。當我們試圖去理解為何這種事情發生時,問題就擺在眼前:
我還可以如何「定向」地優化我們的網路?有沒有辦法至少可以令我們總是能有指導地無窮逼近真實解?—— 比如有沒有理論保證每增加一層網路層數就一定會有更精確的解?—— 或者每增加前幾層的feature維度就能更精確?—— 或者neuron的函數具備某些性質就能更精確?—— 改變input的維度比如在rgb之上再增加rgb的梯度吼不吼?—— 或者這些全都是廢的我們所建立的模型所處的函數空間僅僅只是和「真實規律」的函數空間有那麼點兒的重疊罷了。在我看來所有的這些都是比網路結構更值得研究的東西但恰恰是機器學習community不去研究的東西。和研究這些問題的手段,正如Ali所說,是需要narrow down研究對象,簡化實驗模型的。就和生物學需要針對細胞來特定研究而非僅僅喂一個人吃一堆東西,再觀測他拉出來什麼一樣(不巧,機器學習就差不多這思路)。演了困還「樂觀地」認為這是「飛機先於空氣力學」。恰恰相反正是因為萊特兄弟對空氣力學和翼型的作用採取了narrow down的研究方式,才最終造出了可以飛的飛機。
說到底,為了解決諸如圖像分割,語言識別等問題,人們甚至沒能找出一個narrow down的實驗模型,即最可能簡潔的,原理性的,揭示性的那個「最簡單元」,僅僅是在企圖逼近包含這個最簡單元的複雜函數而已。然而人類發展幾百萬年?的經驗告訴我們,我們只有能越narrow down一個問題並解決的時候,才能真正解決複雜的問題。
所以我也順帶集思廣益一下:為啥同一個人同一時刻,換個角度就有問題呢? 不是說完全失敗了,只是說會不完美了? 注意所有的測試角度都不在訓練集里,甚至都和訓練集相差甚遠!!
最後 Ali 的這句鍊金術實在大快人心。想到了richard feymen的一個有關knowing and understanding的一段話。大意是假設有人想算出某時某刻月亮會在天空哪個位置出現,一個人給你一個黑盒,你輸入時間它就給你準確輸出那個時間月亮的位置。另一個人走過來說:我有一個理論,假如地球和月亮是個球體,然後月亮繞著地球做旋轉,那麼我們可以近似算出。。。第一個人不耐煩的說:但你的結果有多精確呢,我們能精確到百分之99。第二個人回答:有些量還不能準確估測,比如月亮到地球距離等等。。。第一個人繼續不耐煩的回答,那用我的模型啊,我們能夠精確到百分之99。個人觀點,我也認為實驗和理論不必要同時發展,比如有的人就是想知道月亮的位置而已,它怎樣繞著地球轉我不關心。但我覺得Ali更多是為了讓更多人思考dl的原理而不是排斥「煉丹」。畢竟總要有人做類似理論物理學家的那些工作,而這些工作在某種程度講對於researcher來說更為重要。話說期待什麼時候做control的和做deep RL的人能打一架。
Ali的抱怨就是我現在不all in 深度學習的原因, 雖然我是從DNN開始接觸人工智慧的,但是現在還是在老老實實看各種基礎數學知識
Ali和Yann都沒錯,理論和實踐是一個平衡問題。放到一個有限的時間軸上看,可能一方暫時得到了壓倒性的關注。但放到更大的時間軸上看,進展總是交替進行的,因為總會有瓶頸。只要還有人做理論研究,就不可怕。但可怕的是大家都發現調整結構最容易出結果,而放棄了理論研究,所以在這個風向下的確要為Ali點贊。
其實Ali的言論也可以推廣到其他領域,比如集成學習(ensemble learning)。因為集成學習的有效性(各種競賽中的獲獎模型一般都是集成模型),不少人已經到了不問具體場景直接就用,這點和神經網路很像。雖然比深度學習稍好,但集成學習也有重模型效果輕理論的趨勢。因此不少研究人員也表達過類似的擔憂,集成學習研究不該僅僅是換個data sampling方式,或者換一個隨機特徵方式,要從理論上證明有效性。
簡單說,集成學習一般分為:bagging,boosting和stacking:
- bagging中出名的模型有隨機森林(Random Forests)
- boosting中出名的有xgboost和lightgbm,總能在kaggle獲勝者中看到
- stacking更是比賽利器,最為人津津樂道的就是它贏得了06年netflix高達100萬的獎金
但從理論角度來看,隨機森林的工作機制還不完全明朗 [1],並沒有完整的理論保障。boosting有相對較好的理論研究[2 ,3],有關於bound的分析。stacking也有一些的理論研究[4],但使用起來效果因人而異差別很大,這點和神經網路最像。
正因為集成學習從根本上沒有完整的理論基礎,人們對於其效果的解釋一般是variance-bias decomposition。以bagging和subsampling為例,現有的理論解釋是,由於集成所降低的variance超過了bias的升高,因此有效。而這種隨機說法是缺乏理論保障的 [5],連bagging的發明者Brieman也表示這不是萬靈藥[6]。在監督學習的框架下,集成學習的有效性理論尚且薄弱,推廣到無監督學習更還不完善,在我的了解中比較新的是15年Aggarwal在無監督框架下討論的variance-bias分解 [7]。
因此不少研究的做法是提出一個新思路,跑跑實驗,然後說"我們的做法降低了variance(或bias),所以有效"。至於為什麼?一般都是"這很顯然(it is apparent) xxx 手段可以有效的控制variance"。這點和深度學習何其相似...
舉了集成學習的例子,是想說明這不單是深度學習的問題,實用的機器學習領域都有類似的性質:實踐容易走在理論前面。這個時候,要是能力在線的朋友不妨多研究研究理論,將來必定可以低買高賣。
[1] M. Denil, D. Matheson, and N. De Freitas. Narrowing the Gap: Random Forests In Theory and in Practice. ICML, pp. 665–673, 2014.
[2] Y. Freund and R. Schapire. A Decision-theoretic Generalization of Online Learning and Application to Boosting. Computational Learning Theory, 1995.
[3] Y. Freund and R. Schapire. Experiments with a New Boosting Algorithm. ICML, pp. 148–156, 1996.
[4] M.J. Van der Laan, E.C. Polley and A.E. Hubbard, Super learner. Statistical applications in genetics and molecular biology, 6(1), 2007.
[5] C. C. Aggarwal and S. Sathe. Outlier Emsembles An Introduction. Springer, 2017.
[6] L. Brieman. Bagging Predictors. Machine Learning, 24(2), pp. 123–140, 1996.
[7] C. C. Aggarwal and S. Sathe. Theoretical Foundations and Algorithms for Outlier Ensembles, ACM SIGKDD Explorations, 17(1), June 2015.
阿里反映了大部分煉丹工作者的煩惱,但是容易被媒體斷章取義,營造一種消極氛圍。雖然他本意是呼籲更多人專註理論,但我覺得更容易被聽者理解成唱衰。LeCun的觀點很符合領域大佬應該有的積(hua)極(bing)形象。。
推薦閱讀:
※使用強化學習做出的拆單和下單演算法,和傳統的下單演算法相比,有哪些優勢?
※你用機器學習做過哪些有趣的事兒?
※为什么泊松分布可以应用在推荐系统上?
※這個讓一張圖用另外一張圖的筆觸重新演繹出來的軟體是怎麼實現的?
※梯度下降演算法中的初始值和收斂條件怎樣理解?
TAG:人工智慧 | 機器學習 | 統計學習 | 深度學習DeepLearning | NIPS |