誰能想到,NIPS這種頂會都能風波乍起。
Ali Rahimi(阿裡·拉希米),因為2007年發表的一篇論文,獲得今年的“Test of Time”最具時間價值大獎。當然,阿裡作為最佳論文作者理所應當的登臺演講。
起初,這個演講主要介紹之前的研究成果。阿裡說從很多方面來講,我們的狀況都比10年前好多了。在技術上,取得了很大的進步,街上跑著自動駕駛汽車,人工智慧可以乾很多事情……基於機器學習技術,能產生出幾十億美元的公司。
後來,火藥味逐漸濃烈起來,阿裡朝著整個深度學習界開了一槍,他說:
但某些方面更糟糕了。
空氣中飄蕩著一種自鳴得意的感覺,我們會說“人工智慧是新的電力”。(安德魯老師最愛的說法)
我想換個比方:機器學習已經成了煉金術。
煉金術挺好的,煉金術沒毛病,它自有它的地位,煉金術“管用”。
煉金術帶來了冶金、紡織、現代玻璃製造工藝、醫療等等領域的發明。但同時,煉金術還相信水蛭能治病,廉價金屬能變成金子。
從當年的煉金術到現在的物理、化學,到我們現在對宇宙的認識,科學家們要消解掉2000年的煉金術理論。
如果你要做個照片分享系統,用“煉金術”就行。但我們現在所做的遠遠超出了這個範圍,我們所做的系統用在醫療領域,用在社交媒體上,甚至能影響大選。
我希望我所生活的世界裡,這些系統都建立在嚴格、周密、可驗證的知識之上,而不是基於“煉金術”。
我有點懷念十年前NIPS上質疑各種想法夠不夠嚴謹的“學術警察”,希望他們回來。
(不關心技術細節的可以跳過下麵的例子)
舉個例子,不知道你有沒有經歷過這樣的情況:從零開始搭建、訓練了一個神經網路,然後發現它不管用的時候,總覺得是自己的錯。這種狀況我大約每三個月就要經歷一次,我想說,這不是你的錯,是梯度下降的錯。
比如說這個最簡單的深度神經網路,兩層線性網路:
左邊是我的模型,右邊是損失函式,底下是不同引數設定下梯度下降的過程。有時候loss一開始下降得很快,後來就不動了。你可能會覺得遇到了區域性最小值,或者鞍點,loss和0相差還很遠。
換一個下降的方向,很快就能最佳化到最低。
你可能會覺得這個例子不自然,或者說梯度下降在更大的神經網路上表現得不錯,我的回答是:第一,很多人都被梯度下降坑過;第二,我們把自己的工具用在簡單的例子上,從中學習知識,然後應用到更複雜的場景,這正符合我們建立知識的方式。
梯度下降帶來的痛苦是真實存在的。
上個月,我的朋友Boris給我發了封郵件:
週五,另一個組有人改動了TensorFlow內部的預設舍入樣式,從“舍到0”改成了“四捨五入到偶數”。
我們的訓練就崩潰了,誤差從<25%飆升到了~99.97%。
這樣的郵件我收到過不少,網上也有人在討論類似的問題。
會發生這種情況,是因為我們把脆弱的最佳化技巧用到了我們不理解的loss上, 我們的解決方案在本來就已經很神秘的技術上增加了更多神秘性。
Batchnorm是加速梯度下降的一種方法,把Batchnorm插入到深度神經網路的層中,梯度下降的速度就會更快。
我不排斥使用一些自己不懂的技術,比如說我是坐飛機來的,並不完全清楚它的工作原理,但知道有整個航空界都在研究這項技術就很安心了。
而對於Batchnorm的工作原理,我們只知道它的功能是“reducing internal covariate shift”。
可是為什麼這樣就能加速梯度下降了?有沒有相關的理論或者實驗?你甚至都不清楚internal covariate shift是什麼,就不想要一個定義嗎?
Batchnorm已經成了構建深度神經網路的一個基礎工具,但我們對它幾乎一無所知。
想想過去一年裡你為了刷競賽榜單而做的實驗、嘗試的新技術;再想想過去一年裡你為瞭解釋奇怪現象、尋找其根源而做的努力。前者,我們做得很多,後者,我們應該再多做一些。簡單的實驗和理論是幫我們理解複雜系統的基礎。
我們還有一件事可以做。現在,所有商用硬體上執行的成熟計算引擎都是梯度下降的變體,處理著數百億的變數。
想象一下,如果我們有能在標準商用硬體上執行,處理數百億變數線性解算器或者矩陣分解引擎,想象一下這樣我們能做出多好的最佳化演演算法,用多好的模型來做實驗,當然,這在數學上和系統上都很難,但這正是我們要解決的問題。
我對這個圈子有真摯的愛,這也是為什麼我會站在這兒,號召大家更嚴格精確,別那麼像煉金術師。
希望我們可以共同努力,將機器學習從“煉金術”變成“電力”。
完整演講,參見下麵這段影片:
01 LeCun:實名反對
一石激起千層浪,阿裡的演講引發了熱烈的討論。
深度學習專家、前谷歌大腦成員Denny Britz說:“對很多人來說,這是NIPS的高光時刻。深度學習就像煉金術,我們不知道發生了什麼。
我們需要在這個領域更加嚴謹。如果你知道背後沒有可靠的科學理論,你會坐上飛機麼?”
當然也有人立刻丟擲不同意見。比如號稱“三巨頭”之一的Yann LeCun。他在Facebook上發表了一篇“長篇大論”進行了闡釋。
原文概要如下:
阿裡發表了一個有趣的演講,但我壓根不同意他說的話。他的核心思想是說:機器學習(ML)現在的實踐,類似於“煉金術”(他的原話)。
這是種侮辱,是的。但是不要擔心:他是錯的。
阿裡抱怨目前ML使用的許多方法,缺乏(理論上)的理解,尤其是在深度學習領域。理解是好事,這也是NIPS群體中很多人追求的標的。
但另一個更重要的標的是發明新的方法、新的技術,以及新的技巧(tricks)。
翻看科學技術發展的歷史,工程實踐總是先於理論理解出現:透鏡和望遠鏡先於光學理論,蒸汽機先於熱動力學,飛機先於空氣動力學,無線電和資料通訊先於資訊理論,計算機先於電腦科學。
因此只是因為目前理論工具還沒趕上實踐,就批評整個ML群體(還是個相當成功的群體)在搞“煉金術”,這是一個非常危險的行為。
為什麼說危險?因為正是這種態度,曾讓ML群體拋棄神經網路超過10年,儘管有充分的證據表明他們在很多情況下效果很好。具有非凸損失函式的神經網路不能保證收斂。所以人們連嬰兒帶洗澡水一起潑掉了。
只是因為可以進行理論研究就固守一套方法,而且還忽視另一套從經驗上來說更好的方法,僅僅是因為還沒有從理論上理解它?
是的,我們需要更好的理解我們所用的方法。但是,正確的態度應該是嘗試去解決問題,而不是因為還沒解決就跑去羞辱整個群體。
致阿裡:你每天也在用這些方法,如果你對如何理解他們不滿意,請動手研究深度學習的理論,而不是抱怨其他人沒做,更不是建議NIPS世界只用“理論正確”的方法。這是錯的。
阿裡隨後跟帖回覆:
Yann,感謝你深思熟慮的反饋。你最後的讓我進行理論研究的建議,正是Moritz Hardt一年前曾對我說的話。只是一小群人很難取得進步,老實說,我被這個任務的規模壓得喘不過氣來。這次的演講也是尋求更多人的幫助。
我呼籲簡單的實驗和簡單的定力,以便我們都可以毫無困惑的傳達見解。你可能已經非常擅長建立深度模型,在這方面你的經驗可能比幾乎任何人都多。但是想象一下新手會有怎樣的困惑,一切看起來都像魔術。大家談論的都是整個模型如何工作,而不是每一個小部分在乾什麼。
我認同煉金術的方法很重要。這讓我們加速向前,解決了眼前的問題。我對那些能迅速建立起直覺以及可工作系統的人懷有最深的敬意。你和我在Google的許多同事都有這樣令人印象深刻的技能,但你們只是少數。
我呼籲你們不但授人以魚,而且還授人以漁,讓大家都能達到你的生產力水平。我所期望的“嚴謹”是:簡單的實驗,簡單的定理。
LeCun再回覆:
簡單和通用理論很好。
熱力學的原則,讓我們免於浪費時間去尋找永動機。在ML領域我們已經有這樣的理論,適用於所有的學習機器,包括神經網路。
但是很有可能不會有專註於神經網路的“簡單”定理,原因類似於我們沒有納維-斯托克斯方程或者三體問題的解析解。
02 背景交代
Ali Rahimi,去年5月加入Google,目前擔任Member of Technical Staff(這個職位類似於主任工程師)。2005-2011年期間,他供職於英特爾擔任研究員。
這次被NIPS 2017評為最佳時間檢驗獎的論文《Random Features for Large-Scale Kernel Machines》,就是他在英特爾期間發表的。
1997年,阿裡在UC Berkeley獲得學士學位,隨後在MIT獲得碩士和博士學位。
如果你對他感興趣,可以看看他的個人主頁。在欣賞了他的女友、兄弟和女朋友們的照片後,量子位感覺這也是一個“逗逼型”科學家。
主頁地址:
https://keysduplicated.com/~ali/Personal.html
煉金術又是啥?
根據維基和百度百科,煉金術(Alchemy)的標的,是想把“賤金屬”煉製成“貴金屬”,比方把鉛變成黃金。(當然還有煉丹,想造出長生不老藥)。包括牛頓也曾研究過這門技術。不過現代化學證明,這種方法是行不通的。
03 OMT
以上,就是這次NIPS大會上關於真理標準的大討論。
最後推薦一款應景的T恤,就是下麵這款啦
來源:量子位
近期精彩活動(直接點選檢視):
投稿和反饋請發郵件至hzzy@hzbook.com。轉載大資料公眾號文章,請向原文作者申請授權,否則產生的任何版權糾紛與大資料無關。
為大家提供與大資料相關的最新技術和資訊。
近期精彩文章(直接點選檢視):
更多精彩文章,請在公眾號後臺點選“歷史文章”檢視,謝謝。