Hi, Yoshua, 今天真的很高興你能加入我們 >> 我也很高興 >> 你現在不僅是一個深度學習的研究者或工程師 你已經變成了深度學習中的名人、偶像 不過我很想聽聽這故事的起源 那麼,當初你是怎麼踏入這深度學習,然後持續這旅程呢? >> 是的,其實呢,故事從小時候就開始了,少年時 讀了很多科幻小說,我猜我們很多人都這樣 當我1985年開始研究所的時候, 我開始讀類神經網路的論文 這讓我非常興奮,變得真正的熱情 >> 實際上,那感覺是怎麼樣的呢, 在80中期對吧,1985, 在讀那些論文的時候,你還記得嗎? 有對 你知道的,本來我學的是專家系統那種古典AI的課程 然後突然發現有那麼一個新大陸 是去思考人類如何學習、人類的智慧 然後可能可以跟人工智慧、 跟電腦聯結起來。 當我發現這些文獻時,我真的很興奮 我開始閱讀 Connectionists,這當然, 還有 Geoffrey Hinton、Rumelhart 的論文,等等等 我研究 RNN (遞歸神經網絡),我研究語音辨識 我研究 HMM (隱馬爾可夫模型),所以有 圖模型 (graphical model) 然後很快地,我進入 AT&T 貝爾實驗室和麻省理工學院, 我在那邊做博士後研究 就是在那裡,我發現一些訓練神經網路會碰到的 長期相依性的問題 (long-term dependencies) 過了不久,蒙特婁大學招募我,回去蒙特婁 那也是我度過大半少年時期之處 >> 那麼,身為一個在那打滾數十年、閱歷無數 見多識廣,告訴我你的想法 關於深度學習、神經網路在這些年的演進 >> 一開始,我們從實驗、從直覺觀念出發, 算是之後再看理論 現在,我們了解的更多更深,例如 為什麼反向傳播這麼有用,為什麼深度這麼重要 而對這些見解,在當時我們講不出很確實的理由 在2000年初期,當我們開始研究深度的網路, 我們有個直覺, 更深的網路應該更強大,這很合理 但是,我們不知道要怎麼運用 怎麼證明,而當然我們的實驗在一開始並沒有成功 >> 實際上 回顧過去,你覺得有哪些最重要的事情, 最後被發現是正確的 而哪些事最終發現是錯的、最讓人訝異的 如果和三十年前我們所知的來比較? >> 當然,我過去犯的最大的錯誤,是認為 — 就和90年代的每個人一樣 認為反向傳播要有效,就一定要有平滑非線性的性質 因為我以為,如果有像是整流般非線性 (rectifying nonlinearities) 其中有個平坦的部份,這樣會非常難訓練 因為有太多地方的導數會是零 而我們一開始嘗試 ReLU 的時候 大約在2010年,用在深度網路上,我很執著在 「喔我們要小心, 會不會神經元有很多在0那邊飽和啊?」 不過最後事實證明,ReLU 實際上表現遠比 S型函數 (sigmoid) 還要好,這讓人非常驚訝 我們會做這個探索,其實是因為生物學的關聯 並不是因為我們覺得這樣比較容易優化 不過最終他表現的比較好,而不是像我想的比較難訓練 >> 那麼讓我問你 深度學習和大腦之間有什麼關聯? 有一個明顯的答案,但我很好奇你的答案是什麼? >> 嗯,一開始讓我對神經網路 感到興奮的見解,是 Connectionists 上的某個意見: 資訊是分佈在眾多神經元的啟動 (activation) 上 而不是由某種「祖母細胞」(grandmother cell) 來表示 像那時他們稱呼的,一種符號性的表示法 那是古典人工智慧中的傳統觀點。 我現在仍然相信這真的很重要 甚至在最近,我看到也有人也發現了這個的重要性 因此那真的是個基礎。 「深度」這件事是之後出現的,在2000年初期 至少不是我在90年代在想的 >> 的確,我記得你當時建了很多比較淺 但是很分散式的表示法來做 word embedding (詞向量), 在很早期的時候 >> 是的,沒錯 那是在90年代後期讓我很興奮的其中一件事 事實上,我和我的兄弟 Samy 當時在研究一個點子: 我們可以用神經網路 來解決 curse of dimensionality (高維詛咒),這被認為 是統計學習裡其中一個主要的問題 而我們有了這些分布式表示 (distributed representation) 後 我們就可以 很有效率地表示多個隨機變數的聯合分布 這個最後非常有效,然後我把他擴展到 一串字的聯合分布,這個就是 word embedding 的由來 因為我認為,這可以讓許多那些 意義類似的字有更共同、廣義的表示 (generalization) >> 所以在過去幾十年,你的研究團隊發明了超級多的想法 多到沒有人可以用幾分鐘說完 所以我很好奇,你團隊的哪些發明或點子 是你最感到驕傲的? >> 好,我想我曾經提到長期相依性 (long-term dependencies),那個研究 我覺得人們還不夠了解這個。 然後我剛剛說的故事,關於高維詛咒, 用神經網路處理聯合分布 (joint distribution), 這在最近演進成 Hugo Larochelle 研究的 NADE (Neural Autoregressive Distribution Estimation) 然後像我剛說的,這啟發了許多研究 訓練 word embedding 來探討字詞的聯合分布。 接下來我想,或許是深度學習中我們最有名的研究 利用堆疊的 autoencoders 和堆疊的 RBMs (自編碼器 和 受限玻爾茲曼機)。 然後是一個研究,對深度網路訓練的難處了解更多 和 Glorot 想出初始化的點子 還有深度網路的消失梯度問題 (vanishing gradient) 實際上就是這項研究,引發了大家的實驗來證明 分段的線性啟動函數有多麼重要。 然後我會說,我們最重要的研究,有一些和 非監督學習、denoising autoencoders、GANs 有關 (降噪自編碼器 ; 生成式對抗網路) GAN 最近非常流行,Generative Adversarial Network。 還有我們利用 attention 做神經機器翻譯的研究 後來發現這個對機器翻譯非常的重要 而且現在業界系統也在用,例如Google翻譯 不過這個 "attention" 機制真的改變我對神經網路的看法 我們曾經認為,神經網路就是把一個向量對應到另一個向量 但是有了 attention 機制,你可以處理任何的資料結構 這開創了很多條有趣的研究路線。 而和生物學有關的方向 近幾年我在做的一件事情是 我們怎麼弄出一套類似反向傳播的東西, 但是人類大腦可以實作 在這方向我們有幾篇論文,看起來神經科學領域的人 覺得這很有趣 當然我們也持續在這個方向進行研究。 >> 我知道有一個主題,你一直花了很多心力思考 是深度學習和人類大腦之間的關連 可以和我們多談一些嗎? >> 這個生物學的問題,實際上我不斷想了很久 或者可以說,做了很多白日夢吧 因為,我覺得這就像個拼圖 我們有一些片段的證據,是關於大腦以及大腦怎麼學習 例如 Spike-timing-dependent plasticity 而另一方面,我們有這一堆機器學習的概念 例如對一個目標函數做整個、整體系統的訓練 還有反向傳播這個概念 其實,到底「反向傳播」是什麼意思? 就像,"Credit Assignment" 到底是什麼意思? 當我開始思考,人類大腦是如何做類似反向傳播的事 這讓我繼續思考,嗯,或許在反向傳播的背後 有個更一般的道理,讓反向傳播能如此有效 而或許有很多種類的方式可以解決 credit assignment 而這些和做 reinforcemnet learning (增強式學習) 的人 一直在問的問題有關 所以有趣的是,有時候問一個簡單的問題 能導引你去思考眾多不同方面,迫使你去思考 許多不同的元素,像拼一個很大的拼圖把他們都串起來 我這樣已經很多年了 而我必須說,這整個努力、我追逐的很多主題 一直以來都是受 Geoffrey Hinton 的強烈啟發 特別是,我猜是在2007年,他給了一個演講 在第一次的深度學習研討會上 他分享了他認為人腦怎麼運作, 類似像時序編碼 (temporal code) 可能怎麼 做到反向傳播所做的 這讓我在最近幾年有很多探索的想法 嗯,這算是個滿有趣的故事 算算也十年了 >> 還有一個主題我也聽你談過很多次,是關於 非監督學習 (unsupervised learning) 你可以分享一下你的觀點嗎? >> 當然當然,非監督式學習相當重要 目前業界的系統是基於監督式的學習 (supervised learning) 這本質上需要人類去定義 在某個問題中,什麼是重要的概念 以及在資料中把那些概念標示出來 你知道的,我們藉此做出許多玩意和服務和系統 不過人類能做的比這還多 藉由對這世界的觀察和互動,我們能探索、 能發現新的概念。 一個兩歲的小孩,能理解直觀的物理現象 換句話說,他知道重力,他了解壓力 他知道慣性 他懂得液體和固體 當然,他的父母從來沒教他這些東西,對吧? 那他是怎麼知道的? 這種問題就是非監督式學習想要回答的 這不僅僅是我們有沒有資料的標籤的問題 實際上這是一種心靈的建構 藉由觀察,來了解、解釋世界的運作 而最近,我一直在結合 非監督學習和增強學習兩者的概念 因為我認為,有很強烈的跡象顯示 那些我們想要釐清的、想要區分的 那些重要的最根本的概念 可以由人類或機器透過和世界互動、 探索這個世界、嘗試事物、嘗試控制來獲得 所以我認為這些和非監督學習的原始概念息息相關 學習. 所以我對非監督學習的意見: 十五年前當我們開始做 autoencoder 和 RBM 之類的 我們非常專注在如何學習良好的表示法 現在我仍然認為這是必要的課題 不過我們不清楚的是,什麼叫一個「良好的表示」 例如我們怎麼知道目標函數是什麼? 所以這些年我們試過非常多的東西 實際上,這是研究非監督式學習很酷的一件事 有超多各式各樣的點子 太多不同的方法來解決問題 這實在是...搞不好明年我們會發現完全不一樣的東西 而或許人腦運作方式又是另一種不一樣的 這種研究不是慢慢疊加上去的 這領域本身就非常值得探索 對於正確的目標函數該是什麼,我們沒有好的定義 更不用說怎麼測量一個系統的好壞, 在非監督學習的領域中。 所以當然,這很有挑戰,但同時 這也意味著無窮開放的可能性 而研究人員很喜歡這樣,至少這很吸引我 >> 時至今日,深度學習有太多事在發生了 我覺得我們已經過了某個階段 一個人已經沒辦法讀過所有深度學習的論文了 所以我很好奇,深度學習的哪些事最讓你興奮呢? >> 那麼,我很有野心,而我覺得現今 深度學習的科學面還遠不及我所期望的 我有一種印象是,我們系統犯的那樣子的錯誤 顯示了那些系統對這世界的了解還很膚淺 因此,最讓我興奮算是研究的方向 我們不是想建造系統讓他們做有用的事情 我們是回歸到基本原理:電腦如何觀察世界 和世界互動,以及發掘世界如何運作? 就算那個「世界」是很單純的,例如做成電動遊戲的形式 我們仍然不知道如何表現得好 這很棒,因為我不需要和Google和Facebook競爭 以及百度等等,對吧 因為這算是基礎研究 任何人可以在他的車庫進行,然後改變全世界 因此,當然,有很多很多的方向來著手 不過我看到很多深度學習和增強學習的點子 彼此間有豐碩的交流,這非常重要 而且我非常興奮這方向的進展 其實可能對實際應用有巨大的影響 因為,如果你觀察我們在應用層面碰到的一些大挑戰 例如怎麼處理新的領域,或者 一個類別裡面我們只有非常稀少的資料 以及那些人類非常擅長的情況。 所以這類 transfer learning 和 generalization 的挑戰 (遷移學習 ; 一般化/泛化) 如果我們的系統可以更了解這世界如何運作 那麼這些挑戰就顯得輕而易舉 要有深入的了解,對吧 到底發生什麼事? 造成我看到這些的原因為何? 我要採取什麼行動來影響我所看到的? 所以這一類的問題是我最近倍感興趣的 我也認為,隨著深度學習研究演進了幾十年 這些已經牽涉到了更古老的 AI 課題 因為現今深度學習大部分的成功 都和「感知」能力有關 那接下來呢? 剩下來的是更高層次的 也就是在抽象的層面上,理解萬物之運作 我們要理解高層次的抽象,而我認為 還沒達到那麼高的境界,所以我們必須要達到 我們必須思考推理、思考時序性的資訊處理 我們必須思考因果關係怎麼運作 以及要怎麼樣讓機器自己發掘這些事情 或許需要人類引導,至少機器要越自主越好 >> 你剛剛說的某一段,聽起來像是 你很喜歡用作研究的方法,也就是 — 我要用「玩具問題」這個詞,並沒有貶低之意 >> 好。 >> 在小問題上實驗 而你很樂觀認為這小問題可以轉移、類推到更大的問題 >> 對對沒錯,在高層次上類似地轉移 當然我們要花些功夫把格局弄大 然後解決那些問題 不過追求「玩具問題」的主要動機是, 我們能更清楚了解失敗在哪 我們可以把問題簡化到 從直觀上就能處理,更容易理解 好比典型科學在做的 divide and conquer 各個擊破 還有,我覺得,有件事大家想的不透徹 研究的週期會變快的多,對吧 如果我可以幾小時就做完一個實驗,我的進展就更快 如果我要嘗試一個超巨大模型, 試著捕捉所有的常識和知識 — 其實總有一天可以的 只不過以現今的硬體,每一個實驗就等到天荒地老 所以當我們的硬體夥伴還在建造那些 千倍萬倍飛快的機器,在那之前我還是做玩具實驗 >> 我也聽你說過 深度學習的科學,不只是一門工程學科 更是多多研究,了解究竟是怎麼回事 你想分享一下嗎? >> 好啊,當然 我擔心很多我們正在做的研究,恐怕像是 盲人尋路 如果你運氣夠好,這樣也能找到有趣的收穫 不過說真的,如果我們稍微停下腳步 用可以類推的方式,試著了解我們在做什麼 因為我們遵照原理、遵照理論 — 但是我說的「理論」不見得是「數學」 當然我喜歡數學啦,不過我覺得 不用把每件事都用數學公式化 — 但是要有邏輯 換句話說,我可以說服大家這個應該有用、 這個有沒有道理 這是最重要的一點 然後數學讓我們更強更穩固 不過真的,這其實和「理解」有關 也和做研究的道理有關 不是為了成為下一個目標、基準 也不是擊敗其他實驗室或公司的其他人 而是:我們要問什麼樣的問題,才能讓我們 更理解有趣的事物現象 舉個例子 是什麼導致訓練深層網路或 RNN 很難? 我們有一些想法,但很多事情我們還不明白 所以或許我們能設計實驗,其目的不在得到更好的演算法 而僅是更加了解現有的演算法 或是某個演算法在什麼樣的情況下比較有效?為什麼? 「為什麼」才是最重要的 這就是科學在做的 找到「為什麼」 >> 好的,現在有很多人想要 進入這個領域 我相信你已經在很多一對一的場合回答過 不過對於正在看這影片的大家,如果他們 想踏入 AI,想開始深度學習,你有什麼建議? >> 好,首先呢,動機有很多種 你能做的也不一樣 要成為一個深度學習的研究者所需要的,可能和 使用深度學習開發產品的工程師,兩者需要的不一樣 這兩個狀況所要求的理解程度會不同 不過無論如何,練習、再練習 如果要真正掌握深度學習 當然你要讀的多 你要嘗試自己手刻程式做練習 我常常面試到一些學生,他們用一些軟體 而現今有太多太好的軟體,你只消裝來就用 完全不用知道自己在做什麼 或者只有很粗淺的了解,於是乎 就很難發現何時無效、哪兒出問題 所以,試著自己實作東西,即使這沒效率 這只是為了確保你真的理解發生了什麼事 這真的很有用,自己多嘗試 >> 所以不要光是拿某個程式框架, 做每件事只需要幾行程式,但你其實不了解背後發生的事 >> 沒錯、沒錯!甚至不只如此 試著靠自己從基本原理推導各種東西,如果可以的話 這真的很有用 不過呢,至少一些平常的要做,像是閱讀、 看別人的程式、自己寫程式、 做很多的實驗、確保你都理解你所做的 特別是科學的方面 試著問自己:為什麼我在做這個?為什麼大家在做這個? 或許答案在某本書,而你要多多閱讀 不過如果你能自己想通,那樣更棒 >> 讚讚 事實上說到閱讀,你和 Ian Goodfellow 和 Aaron Courville 寫了一本很高評價的書 >> 謝謝、謝謝 嗯,這本賣得很好 有點誇張 我覺得在讀這本書的人比目前看得懂的 還要多 不過對,還有 ICLR 的論文 ICLR 大概是最佳的好論文集散地 當然 NIPS 和 ICML 和其他研討會也有非常棒的論文 不過如果你真的想看很多好的論文,就去讀 最近幾次的 ICLR 論文,會給你這領域的全貌 >> 太好了 還有其他的想法嗎? 如果請你給個建議,要如何擅長深度學習 >> 嗯,這要看你的背景 不要害怕數學 先養成直覺,當你能從直觀上了解 熟悉事物的原理,那數學方面就很容易理解了 而且有個好消息是,你不需要去讀五年的博士 來變成深度學習的專家 事實上你可以很快學會 如果你有電腦科學和數學的良好背景 幾個月的學習你就可以使用、做出東西 開始研究、開始實驗 經過正確的訓練,大概約莫六個月 就算可能對機器學習一無所知 如果他們擅長數學和電腦科學,這可以很快 不過當然,這意味著你要受過正確的數學 和電腦科學的訓練 有時候只靠電腦課所教的並不夠 特別是你還需要 連續函數的數學 (相對於離散數學) 也就是例如機率、代數、最佳化 >> 了解。還有微積分 >> 還有微積分,對對 >> 非常感謝, Yoshua, 分享這些意見、洞見和忠告 就算我已經認識你很久了,有很多細節、 早期歷史我到現在才知道,謝謝你 >> 也謝謝你 Andrew 特別做這影片,還有你所作的這些 我希望這能被很多人看見