2017/02/15
前言:
Back Propagation(BP)跟 Automatic Differentiation(AD)之後,我應該要有系統地開始幫自己安排一些 Deep Learning(DL)的課程了。
-----
Fig. Glance(圖片來源:Pixabay)。
-----
Summary:
也許可以從 AlphaGo 的介紹看起吧 [1]-[9],先引發興趣再說!
去年十一月開始,我因為工作上接觸 chatbot,間接開始蒐集 AI 的資料。除了網頁,也開始查論文,關鍵字用 survey、review、以及 deep learning [10]-[16]。論文,說實在,即使是文獻回顧的論文,對新手來說還是很不容易閱讀。後來查到一些 machine learning(ML)的電子書,有專門介紹 DL 的章節 [17]-[19],比起直接閱讀專書 [20], [21],要有親和力一點。
要學 DL,一開始可以從 CNN [22]-[24] 與 RNN [25]-[30] 入手,DL 的未來,則是Representation Learning [31],這是 LeNet 的作者 Yann LeCun 的看法 [12]。Goodfellow 的書也是從 CNN、RNN 開始,到後面安排了一章專門講 Representation Learning 的 [20]。
-----
Outline
一、Introduction
二、CNN
三、RNN
四、RL-M
五、MCTS
六、AE
七、RBM
八、RL-D
九、GAN
-----
一、Introduction
圖一是從 [17] 的第十一章:Deep learning摘錄下來的,我認為這可以幫我們掌握 DL 的全貌,以及各個子題之間的關連性。另外本章前面也從生理學的角度,簡單介紹一些神經元的概念。雖然它的 BP 很難看懂。
上面是 Supervised,左邊是 ML,這個我們跳過去。右邊是 DL,有三項,分別是 Deep Neural Nets,有興趣的話,[21] 的第四章:Deep Neural Networks 有介紹。另外是 CNN [22]-[24] 與 RNN [25]-[30]。
下面是 Unsupervised,主要是 Autoencoder(AE)跟 Restricted Boltzmann Machine(RBM)。由上而下,由淺入深,安排課程的順序主要參考此圖。
Fig. 1. Deep learning taxonomy, p. 492 [17]。
-----
二、CNN - Convolutional Neural Network
CNN [22]-[24] 用到兩個主要的觀念,convolution 跟 max-pooling [10], [24]。這兩個觀念是受到視神經的構造所啟發 [23],發明的人真的蠻有巧思。我認為這是 CNN 特別之處,若要自己設計新的神經網路,腦神經應該還有很多可以借鏡的地方。
Convolution 對於沒有 DSP 概念的人不易理解,在我修完 DSP 時,才想到,一維的convolution,其實就是二項式相乘!
-----
三、RNN - Recurrent Neural Network
懂 BP 的話,RNN [25]-[30] 應該就也懂了。關鍵是在多層的 BP 時,每一層的神經元處理時不用照順序(實作當然也是照順序較方便,p.s. 我還沒實作過)但是以一層的 RNN 來說,要從最後的輸出開始處理 [26], [27]。
RNN [26] 有記憶的特性,在處理時序的信號時表現很好,但它也有一些缺點如不易收斂等 [25]。所以有更新的 RNN 設計出來解決上述缺點,叫 Long Short-Term Memory(LSTM)[28], [29]。實際應用時,常用簡化版本 Gated Recurrent Unit(GRU)[25]。
-----
四、RL-M - Reinforcement Learning(Machine Learning)
緊接著 [17] 的第十一章:Deep learning 後面是第十二章:Reinforcement learning。所以我們可以推測它不是 DL,但是有高度相關性?RL-M 在 AlphaGo上充分證明了它的厲害 [9]。這個主題從 DL 還不大 deep 的時代就一直反覆出現 [13]。
為了探究 AlphaGo [9] 的奧秘,在CNN 跟 RNN 之後,我認為可以學一下 RL-M。
-----
五、MCTS - Monte Carlo Tree Search
AlphaGo [9] 裡面用到另一個重要的技術是 MCTS。它是更廣義的蒙地卡羅方法(Monte Carlo Method)用在遊戲上。Goodfellow 第十七章有講到更廣義的 Monte Carlo Method [20]。要讀懂 [9],就得先瞭解 RL-M 跟 MCTS。
-----
六、AE - Autoencoder
這個我直接引用一段論文好了:"An autoencoder (AE) is a feedforward neural network to encode the input into a more compact representation and reconstruct the input with the learned representation. In its simplest form, an autoencoder is no more than a multilayer perceptron with a bottleneck layer (a layer with a small number of hidden units) in the middle" [11].
參考 Goodfellow 第十四章:Autoencoders [20]。
-----
七、RBM - Restricted Boltzmann Machine
參考Goodfellow 第二十章:Deep Generative Models [20]。
-----
八、RL-D - Representation Learning - (Deep Learning)
為了安排這個讀書計畫,由於最近我在查 RTB 的 DL 相關論文時意外查到 [31],對於 Representation Learning 有點印象,回去看 [12],Yann LeCun 也說這很重要,然後Goodfellow 第十五章:Representation Learning [20] 也有,所以安排進來。
這也算是一種 deep learning 吧!
-----
九、GAN - Generative Adversarial Network
對機器學習或深度學習等演算法具基本概念(CNN、RNN、LSTM、GAN)理解且具熱忱尤佳。
以上是我在瀏覽網頁時看到的一則訊息,所以我把 GAN 也加進來了 [32]-[34]。
-----
結論:
基本上,你可以說這是一個還不熟 DL 的新手幫自己安排的讀書計畫,談不上心得,若有謬誤之處,還請不吝指正。它是為了避免從頭到尾 K 聖經 [20] 導致消化不良,所以找了一些輔助教材協助學習。順序則是以自己一點點的 DL 經驗穿插以加強學習動機。
計畫安排好了,有沒有時間執行呢?看狀況吧:)
-----
出版說明:
2019/09/10
這是兩年半前自擬的讀書計畫,只有部分實施,原因是部分主題進行了較深入的探討。兩年半後回顧這個計畫,大方向還是對的。主題可以先定為 Computer Vision(CV)與 Natural Language Processing(NLP)各選一些經典論文,每篇論文則視時間是否充足,加入次要論文與 Optimization、Regularization、Normalization。最後才是 RBM、AE、VAE、GAN。
我的習慣是經常幫自己擬讀書計畫。如果以深度學習為例,就是用 Goodfellow 的教科書,直接從 CNN、RNN 進入,然後是 Optimization 與 Regularization,加上 Batch Normalization 系列,最後是最後一章的 RBM、AE、VAE、GAN。至於其他的部分,特別是數學那幾章,千萬不要從那邊開始讀。數學當然很重要,不過如果你大學時沒有學好,從數學再開始,只會打擊你的信心,有機會再慢慢補回來,就可以了!
-----
References
[1] AI人工智慧再突破!Google圍棋系統,幹掉歐洲最強職業選手
https://www.bnext.com.tw/article/38593/BN-2016-01-28-033655-81
[2] 深入淺出,解讀Google的人工智慧圍棋「大腦」
https://www.bnext.com.tw/article/38740/BN-2016-02-22-183726-196
[3] 淺談Alpha Go所涉及的深度學習技術
https://www.bnext.com.tw/article/38923/BN-2016-03-14-120814-178
[4] 「戰勝自己」不只是口號──《Nature》AlphaGo論文讀後感
https://www.bnext.com.tw/article/38927/BN-2016-03-14-172809-178
[5] [韓國現場]世紀對決開始啦!AlphaGo與棋王李世乭對弈中
https://www.bnext.com.tw/article/38883/BN-2016-03-09-113106-117
[6] AlphaGo再勝李世乭!人機大戰4:1落幕
https://www.bnext.com.tw/article/38931/BN-2016-03-15-130754-117
[7] DeepMind執行長Demis Hassabis:20年前我就想發明AlphaGo了
https://www.bnext.com.tw/article/38910/BN-2016-03-11-152616-117
[8] [曹家榮]AlphaGo贏了,那人類開始反省了嗎?
https://www.bnext.com.tw/index.php/article/38905/BN-2016-03-11-082935-178
[9] 2016_Mastering the game of Go with deep neural networks and tree search
[10] 2016_Towards Bayesian Deep Learning, A Survey
[11] 2016_Deep Learning on FPGAs, Past, Present, and Future
[12] 2015_Deep learning
[13] 2015_Deep learning in neural networks, An overview
[14] 2014_Deep Learning, Methods and Applications
[15] 2012_Unsupervised feature learning and deep learning, A review and new perspectives
[16] 2009_Learning deep architectures for AI
[17] 2016_Practical Machine Learning
[18] 2016_Machine Learning Models and Algorithms for Big Data Classification
[19] 2015_Python Machine Learning
[20] 2016_Deep Learning
http://www.deeplearningbook.org/
[21] 2015_Automatic speech recognition, a deep learning approach
[22] LeNet CNN 實例 MNIST 手寫數字辨識 allenlu2007
https://allenlu2007.wordpress.com/2015/11/28/mnist-database-%E6%89%8B%E5%AF%AB%E6%95%B8%E5%AD%97%E8%BE%A8%E8%AD%98/
[23] 1998_Gradient-Based Learning Applied to Document Recognition
[24] 2002_Tutorial on Convolutions - Torch
[25] 淺談Deep Learning原理及應用
http://www.cc.ntu.edu.tw/chinese/epaper/0038/20160920_3805.html
[26]
[27] 1990_Backpropagation through time, what it does and how to do it
[28] 1997_Long short-term memory
[29] 2012_LSTM, A search space odyssey
[30] 2013_How to construct deep recurrent neural networks
[31] 2016_ICE, Information Credibility Evaluation on Social Media via Representation Learning
[32] 2014_Generative adversarial nets
[33] 2016_Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
[34] 2015_Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.