導讀
本文總結了來自于知乎問題:“為什么感覺深度學習越學越懵?”下的精華回答,優秀的作者們對學習的方式,書籍的選擇以及該問題本質下透露的目前領域的發展困境都提出了自己的看法。
問題背景:近日,有一位開發者在知乎進行提問,說自己目前國內top2研一在讀,方向是AI和NLP。本科沒有怎么接觸過科研,這學期剛剛開始在實驗室搬磚。他在閱讀了DL相關書籍和資料,如李航老師的《統計學習方法》后,對深度學習方面的理論知識理解感到困難,花書也不太讀的懂。那么對于如題主這樣的初次接觸科研的學生來說,為什么會產生深度學習越學越懵的感覺?是不是對知識結構的掌握不夠,亦或是學習的方法上存在問題?
01
作者:薛天凡
題主你所經歷的困惑其實是很多ML研究員多會經歷的。你正處于知其然但不知其所以然的這一階段,所以感到困惑。你知道每個算法是如何實現的,但可能還沒完全理解這個算法如何發展而來,根本上要解決一個什么問題。當知道這個,這些算法就會自然而然在你腦子中串成一張網。 就以你提到vae,cvae,生成模型來說。這些最初的基礎是ae(auto encoder)算法,就是用一個encoder把一個原始高維向量(圖片,文字,語音)投影到一個低維的向量(隱變量),再用一個decoder將原始向量從隱變量中恢復出來。從此引出 1)能夠通過sample隱變量來生成新的圖像/文字/語音。這就有了vae,就是在ae的基礎上加上kl divergence loss使得隱向量可以被sample。 2)進一步,如果想sample特定種類的圖片/文字/語音,例如只生成男人的圖像,或者小孩子的聲音。這就引出了conditional sample,也就是cvae。 3)再進一步,vae大部分使用l2 loss,而l2 loss通常會使生成的圖片變得模糊。為了解決這個問題,就需要一種更靠近我們感知的loss,也就引出了GAN模型中的learned loss function。 舉這個例子就是想說當你明白了每個算法到底在解決一個什么問題是,就很容易串起來。另外,對于算法的理解每個人也并不相同,所以也不必局限于一本書中所說的知識架構。能夠建立起自己的知識架構,才是真正懂這個領域。 要想做到這一點,就是要多看,多想,多討論。多看,就是要讀更多書,有時也不如直接去看一下原始的論文,書畢竟是加工后的信息。多想,就是不要書或論文怎么說就怎么信,而是自己想想其中的邏輯。一個很好的思維訓練就是,可以在看到一篇論文提出的解決方案之前,先自己想想如果是你會怎么解決,再看論文中的方法是否合理。多討論就是把你的想法和同行說說,看看其他人怎么理解的。題主其實已經在正確的道路上,看了不少書籍,多想想多與人討論討論,慢慢就會越學越清晰。 去完全理解一個算法的發展,真正理解這個領域,需要去建立起自己的知識架構。要到達這個境界就需要大量的閱讀和思考,下面兩位答主就介紹到該如何通過有效的閱讀書籍以及閱讀論文的方式去加深對深度學習的理解。
02
作者:棒棒糖
盡管你是top2研一,但是你還是會發現周圍的全是調參俠和啟發式帶師。
如果真想做下去,而不是研究生畢業去找工作,看完一遍花書(第九章之前),然后就可以把花書當工具去查了。(花書,即goodfellow寫的deep learning一書,中文名是深度學習)
花書的問題是它有些機器學習的基礎(被絕大部分頂會論文所忽略的東西)略過不談,但是在描述深度學習的時候又不由自主的用了這些東西,所以初學者讀起來云里霧里的。
而這些基礎,從西瓜書里可以看到,從統計學習方法里可以看到,但你不會去注意,因為你并不認為它關鍵,一掠而過。這是現在很多深度學習者所面臨的致命問題。
我的方法是興趣廣泛的讀論文,讀那些試圖去解釋神經網絡的論文,包括NTK這些企圖用線性代數和動力學的,用特征和矩陣分解的,用優化理論的,用編碼的,等等。然后去做實驗,思考你該怎么在不斷波動的測試結果中選擇填進論文里的數據,你很快就會意識到偏差,方差,過擬合,欠擬合,early stop等等詞語和你最開始理解的東西完全不一樣。思考那些看似合理的曲線在各種各樣的理論里扮演著怎么樣的角色,深度學習背后的幽靈會在那些曲線里露出馬腳。
格物而致知。
這世界上的科學莫過于此。
03
作者:zibuyu9
建議選一本為主進行學習,如李航老師《統計學習方法》,其他參照即可,因為大部分教材的核心內容都大同小異。以我對李航老師教材內容的了解,在掌握微積分、線性代數、概率論、編程等基礎知識后,還比較容易讀。如果經常卡殼,建議從這些基礎知識補起。
另外結合高贊回答(剛發現該回答已刪除,不是現在的高贊回答)說幾句,現在AI是很火,吸引很多學生,論文成倍增加,也出現很多質量參差不齊的工作。我覺得主要原因是,行之已久的基于“信任”的學術會議同行評審機制,無法應對背后功利暗涌的海量投稿。從論文價值上講,只要一份工作實驗結果和結論是真實的,無論作用大小,對整個領域總是正面的,而且這些科研過程訓練學生解決開放能力也是非常有意義的;而從最底線上講,以我參與的相關學術會議服務的經歷,很多學術會議已經開始利用數據挖掘算法檢測和打擊互bid論文行為,開始探討如何解決當下的可復現性(reproducibility)問題。
當然這也是因為現在國內還處在數頂會論文的階段。等后面大家都有頂會論文了,相信又會有人開始刷引用刷其他影響力。只要有一個評價標準,就總會有人走捷徑,除非這個領域不火了。但無論怎樣,有人也許能通過不合適的手段獲益,也不應當成為你這么做的理由。學術研究應當做的是不斷追求卓越,而不是反復試探底線。
為什么會對書本的知識無法理解?問題或許在于數學能力較弱。下文中,答主日月講述到了題主問題的關鍵所在并給出了簡略的解決方法。在基礎打牢后,需要動手去書寫,馬克思也說過,實踐出真知。在理論知識豐富的基礎上,必須要踏出實操的一步,才能將知識理解的更為透徹。
04
作者:日月
你說的這幾本書理論太差了,我不知道你計算機基礎如何。如果編程基本的算法能力和系統掌握的不錯的話,清北ai的研究生應該具備這個能力才對。你讀的這幾本書基本都是調api的,人家都給你封裝玩了,你光調用一下怎么可能深入理解?
那么,問題就在于你的數學太差了,你疑惑的哪些問題全是數學問題,但是這個時間點,你應該還在學習基礎課,其實機器學習是比較高深的課程,學這個之前,數值計算,各種計算機系統課程,優化,統計概率應該先學完再來學機器學習,這時候才能很好的理解那些概念,再實戰強化。但是現在很多整ai的,直接跳過了這個過程,我經常碰到做深度學習計算機視覺的,問數學優化算法不會,跟系統相關的東西你讓他改點東西不會。太浮躁了。
建議抓緊補數學基礎,你數學越硬,后面做研究才能做的更扎實,而不是一個大神整出來什么算法然后喊666在拷貝過來改吧改吧用。
補完數學基礎,有空一些寫一些機器學習算法,光李航那本書,如果你想用cpp從底層一路打上去實現也要用到很多基礎計算機算法和系統知識的。別光用python調包,你都不知道他怎么實現的,你說你理解的有多深刻,自己都不信的。用c++寫,不用所有算法都寫,但是要寫一些,然后改并行分布式。練兩個之后再去看一些算法實現的源碼,這時候你入門了。再去跑數據集,然后就會有很多idea,你才逐步進入科研。
在對學習的方法了解后,下面這位答主對問題的本質進行了探討,為什么會產生越學越困惑,似懂非懂的感覺呢,或許有這樣感受的不止題主一人。作者分析了目前深度學習幾個大發展方向,之所以會讓很多人產生困惑的原因,事實上就是黑盒,而且幾乎沒什么辦法打開盒子看,因為打開了就是上億個參數。雖然可能現在深度學習方面存在大量的灌水,或許某天也能夠突然的起飛。
05
作者:匿名用戶
本來就是煉丹,你這么覺得完全沒錯。
深度學習搞了這么久,還是個黑盒子,最多就是隱層截幾張圖片出來搞個“可視化”,搞了一堆沒什么用的“萬能”逼近理論,結果理論中的結果和現實中的樣本量、參數量根本不在一個數量級上。最核心的問題,也就是樣本空間的數學結構,因為太過復雜根本沒人能講清楚,也沒人想到要去研究。譬如說,手寫數字MNIST數據集服從什么分布?
應用上除了CV和NLP也沒搞出什么東西。
CV搞出的東西被對抗樣本克得死死的。對抗的手段要多少有多少,一個一個去堵是堵不完的。現在已經只要在標識牌上貼個便簽條就能把自動駕駛算法給忽悠了,或者戴個紙糊的眼鏡就能把基于深度學習的人臉識別算法給騙了,相關的論文你都可以自己去找。
NLP搞出的東西的可解釋性就是差,也沒有很緊密地和邏輯體系、知識體系相融合,一融合就是貝葉斯,實際上只不過是用貝葉斯公式強行解釋神經網絡罷了,至于融合上沒有不知道。
我讀過的每篇論文里都會用貝葉斯公式,仿佛深度學習能和數理統計掛上鉤似的。如果真能掛上鉤,那么神經網絡對應的概率論模型是什么?樣本服從什么分布?為什么服從這樣的分布?能不能用假設檢驗來驗證這一模型是合理的?等到哪天學術界能夠不玩文字游戲地解釋清楚這些問題,深度學習才能被解釋清楚。如果總是說什么隱變量(隱層神經元)、嵌入(見VAE等)等服從高維正態分布,那也太含混不清了。
VAE那篇開山作品,將MNIST嵌入到二維流形上,生成了一張圖片,上面按照不同的嵌入表示不同的數字。依我看來基本邏輯都說不通。應該是每個數字和字母處在一個低維的流形,例如二維或者三維,1就是1,2就是2,每個類所處的流形之間應該存在一個比較清晰的邊界。將所有的數字混到一個流形上去是要干什么,而且這個流形居然還是一個二維的正方形,意義不明啊,合著1就是7,3就是5,兩兩之間傻傻分不清啊。我個人在這個問題上還做過一點科研,用簡單的LadderNetwork將MNIST嵌入到二維空間上并且使每個類聚在一起,類與類之間有一定間距。效果一般般,只能說確實能把MNIST嵌入到二維流形上。訓練集每個類都聚得很好,測試集就烏七八糟了,過擬合極為明顯。
還有什么卷積神經網絡的平移不變性、縮放不變性什么的,如果你找一張圖片往上邊補個黑邊,左右平移平移10%、20%、30%,縮放1.1倍、1.2倍、1.3倍,找個state of art的網絡喂進去,分類結果絕對精彩。
我看還是搞搞強化學習運用到機器人控制上比較靠譜,畢竟任務簡單些。參數超過一萬個的網絡我是覺得都信不過。機械臂、機械狗的動作軌跡都有比較簡單的模型,參數不多,這些模型應該是能做好的,實際上我們也看到包括波士頓動力等一些公司造出了實際的產品。
或者多搞搞對抗樣本惡心一下學術界和工業界也不錯。
實在不行也可以將深度學習運用到藝術創作上。生成游戲場景貼圖、創作音樂、創作抽象藝術,反正是在虛擬的世界里,不會有什么實質的危害,最多也就是惡搞惡搞特朗普罷了。或者用來生成語音,不過這方面科大訊飛已經有比較成熟的產品了。
工業化的應用,例如自動車,我看還是別搞的好,特斯拉已經霍霍死不少人了,不需要再多一家。
事實上工業界里機器學習是很吃香的,應用極為廣泛,只不過那些都是模型的內涵被分析得非常清楚的傳統的機器學習。
如果沒有理想的話,深度學習灌水是很簡單的。東拼西湊就能整一篇,但有什么用呢?
順帶說一句,Goodfellow那本Deep Learning的英文版我看過,也就是那樣的東西,別搞得跟圣經似的。
責任編輯:lq
-
AI
+關注
關注
87文章
31844瀏覽量
270639 -
深度學習
+關注
關注
73文章
5521瀏覽量
121650 -
nlp
+關注
關注
1文章
489瀏覽量
22125
原文標題:國內 Top2 高校研一在讀,為什么感覺深度學習越學越懵?
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
百度吉利高管承諾兜底極越智駕與售后服務
IMC到底是越厚越好?還是越薄越好
![IMC到底是<b class='flag-5'>越</b>厚越好?還是<b class='flag-5'>越</b>薄越好](https://file1.elecfans.com/web3/M00/00/1A/wKgZPGdGkeKAKkhvAAAPeUJBdZc034.png)
NPU在深度學習中的應用
極越汽車引領智能駕駛新紀元,ASD智駕系統正式發布并搭載于極越07
貼片電容越厚越耐用嗎?
交越失真產生的原因和消除方法
新手小白怎么學GPU云服務器跑深度學習?
電容全部顯示越限是什么原因
![電容全部顯示<b class='flag-5'>越</b>限是什么原因](https://file1.elecfans.com/web2/M00/E9/8C/wKgZomZUJCeATe4GAAI9wqOK-To807.jpg)
評論