Tuesday, January 07, 2020

全方位 AI 課程(介紹篇)

全方位 AI 課程(介紹篇)

2020/01/07

-----

前言:

用短短一個下午的時間寫了書評,或者說是深度學習與機器學習指南。背後其實花了四年的心血。疏漏之處在所難免,只希望對看的人有一些幫助就好了!:)

-----


Fig. 1. 機器學習工程師面試全破解:嚴選124道AI演算法決勝題完整剖析 [11]。

-----

Summary:

以我個人的學習經驗,其實沒有深度學習,只有計概、工數、與數位信號處理 [1]-[3]。或者說,這三個大學電機系的基礎科目就是深度學習的基礎 [4]-[8]。那深度學習與機器學習應該如何攻略 [9], [10],才能通過面試、進入職場呢 [11]?這就是筆者撰寫本文的目的。

-----

Outline

一、Introduction
二、九陽神功:計概、工數、與數位信號處理
三、乾坤大挪移:DL 30、ML 30
四、聖火令武功:機器學習工程師面試全破解
五、Conclusion

-----

一、Introduction

四年前我從交大電控博士班畢業,正值深度學習崛起。因應工作與創業需要,第一年主要是 Big Data 與 Machine Learning,這三年則是以 Deep Learning 為主。我一邊自學、一邊在網路上撰寫論文導讀。對我來說,寫文章跟寫論文有點類似:蒐集資料、消化資料、呈現資料,這是學習的不二法門。雖然花時間,但可以讓你反覆、透徹地研究一個主題。

最近我收到博碩科技的樣書,內容很棒,但又多又難,所以我把自己的學習經驗跟樣書的內容搭配起來,提出原書編者建議的五種閱讀方法以外的第六種:系統閱讀法。

-----

二、九陽神功:計概、工數、與數位信號處理

如果我們把深度學習比喻為金庸小說《倚天屠龍記》 裡面的乾坤大挪移,那麼毫無疑問計概、工數、與數位信號處理,就是九陽神功。內力不足,就容易練到走火入魔。當我沒說,這是金庸他老人家說的。

所以,資工、數學、跟電機三個系,最適合進入深度學習。少林得其深、武當得其純、峨眉得其博。輕鬆比喻,笑笑就好。

-----


Fig. 2. Python Programming:An Introduction to Computer Science [1]。

-----


Fig. 3. Advanced Engineering Mathematics [2]。

-----


Fig. 4. Discrete - Time Signal Processing [3]。

-----

三、乾坤大挪移:DL 30、ML 30

◎ DL 30

參考圖五,機器學習是人工智慧裡面的一項,深度學習又是機器學習的一個分支。在過去 ML 的掌門人 SVM 曾經把 ANN 打趴。但 Big Data 跟 GPU 大盛之後,ANN 改名為 Deep Learning 又重新回到舞台,深度學習到底是如何勝出呢?請看圖六自明。

-----


Fig. 5. Artificial Intelligence [6]。

-----


Fig. 6. Deep Learning vs Machine [6]。

-----

深度學習最重要的一篇論文 [4],也是我第一篇閱讀的深度學習論文。從頭到尾我都看了,知道深度學習大概可以做些什麼,但還是不知道深度學習如何做。假定論文的圖是最重要觀念的呈現,圖七、圖八、圖九,就是最重要的三個觀念。

圖七是激活函數為何都是非線性,以及神經網路的權重如何透過反向傳播法與梯度下降法更新以使誤差變小。這個雖是核心,但不一定要一開始就徹底瞭解,但總有一天你要面對這一關。

-----


Fig. 7. Activation Function and Back Propagation [4]。

-----

圖八與圖九分別是 CNN 與 RNN。你如果看 Goodfellow 的教科書,可以從第十二章 12.2. 的 Computer Vision 跟 12.4. 的 Natural Language Processing 開始。教科書一開始就是第二章的線性代數、第三章的機率與訊息理論、第四章的數值運算。立意雖好,但如果你之前九陽神功的工數沒有學好,但這裡也只好先跳過。內力不足雖然容易走火入魔,但是硬練也是一樣的。

繼續 Deep Learning Book,CV 跟 NLP 的基礎是第九章的 CNN 與第十章的 RNN。如果你這兩章也讀的不錯,那就可以進入第七章的 Regularization 與第八章的 Optimization。

參考圖十,Regularization 裡由於 Batch Normalization 爆紅所以又分出 Normalization,有時 Normalization 也被歸為 Optimization。另外由於 Convolution 與 Pooling 散見在各論文,所以不特別選入,另外兩的基本主題選的是 Activation Function 與 Loss Function。

先排一個大綱,可以用十次完成,十週或十個月則不一定:

CV L1
CV L2
CV L3
CV L4
CV L5

NLP L1,FT L1
NLP L2,FT L2
NLP L3,FT L3
NLP L4,FT L4
NLP L5,FT L5

五個 Fundamental Topics 分別是 Regularization、Normalization、Optimization、Activation Function、Loss Function。

-----

以上就可以就十五個階段選出三十篇論文:

CV Level 1(Image Classification 1):LeNet
CV Level 2(Image Classification 2):NIN
CV Level 3(Image Classification 3):ResNet
CV Level 4(Semantic Segmentation):FCN
CV Level 5(Object Detection):YOLOv1

NLP Level 1:LSTM
NLP Level 2:Seq2seq
NLP Level 3:Attention
NLP Level 4:ConvS2S
NLP Level 5:Transformer

以上十篇依照順序閱讀,可以很快對 Deep Learning 有一個基本認識。每一篇也可以延伸出兩篇或更多的論文。建議是:

LeNet、AlexNet、ZFNet
NIN、GoogLeNet、VGGNet、PreVGGNet、Highway
ResNet
FCN、Mask R-CNN、YOLACT++
YOLOv1、Faster R-CNN、YOLOv3

LSTM、Weight Decay、Dropout
Seq2seq、Batch Normalization、Layer Normalization
Attention、RAdam、Lookahead
ConvS2S、ULMFiT、ELMo
Transformer、GPT-1、BERT

更仔細的內容,可以參考 [9]。

-----


Fig. 8. Convolutional Neural Network [4]。

-----


Fig. 9. Recurrent Neural Network [4]。

-----


Fig. 10. Components of Neural Networks [7]。

-----

◎  ML 30

假定把深度學習比喻為電鑽,那機器學習可以算是瑞士刀。表面上是機器學習,其實都是數學。

所以我們可以把十篇主要(或三十篇)的機器學習論文 [8],參考 Deep Learning Book [5] 數學章節的順序閱讀,可以有一個系統觀,比較不會覺得機器學習很亂 [10]。
 
-----

四、聖火令武功:機器學習工程師面試全破解

(6)系統閱讀法

寫到這邊讀者可能會覺得很奇怪,明明是要幫出版社寫書評,為何都在寫我自己的學習經驗。其實這個就是我想要推薦的系統閱讀法。

以上我寫的內容,也是《機器學習工程師面試全破解》全部的內容。原書編者建議了五個方法,本文讀者可以用我建議的深度學習與機器學習的架構,來閱讀這本書,相信可以更有系統地把知識裝進腦袋瓜子裡。那麼多、那麼難的知識,如果沒有系統,也許就邊塞邊漏吧!:)

-----

五、Conclusion

以上很簡單地介紹了 DL 跟 ML,比較著重在架構與順序上,並沒有對個別內容有太多著墨。讀者若有興趣參加我開的《全方位 AI 課程》,可以透過 [9] 的參考資料與我取得聯繫。《機器學習工程師面試全破解》這本書很不錯,我也計畫用來當作輔助教材。

-----

References

# 九陽神功

[1] Amazon.com:《Python Programming  An Introduction to Computer Science》第三版。 (9781590282755)  John Zelle  Books
https://www.amazon.com/-/zh_TW/dp/1590282752/ 

[2] Amazon.com:Advanced Engineering Mathematics, 10Th Ed, Isv (9788126554232)  Erwin Kreyszig  Books
https://www.amazon.com/-/zh_TW/dp/8126554231/

[3] Amazon.com:Discrete - Time Signal Processing (9789332535039)  Oppenheim Schafer  Books
https://www.amazon.com/-/zh_TW/dp/9332535035/ 

-----

# 乾坤大挪移

[4] Deep Learning Paper
LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." nature 521.7553 (2015): 436.
https://creativecoding.soe.ucsc.edu/courses/cs523/slides/week3/DeepLearning_LeCun.pdf 

[5] Deep Learning Book
http://www.deeplearningbook.org/

[6] History of Deep Learning
Alom, Md Zahangir, et al. "The history began from alexnet: A comprehensive survey on deep learning approaches." arXiv preprint arXiv:1803.01164 (2018).
https://arxiv.org/ftp/arxiv/papers/1803/1803.01164.pdf

[7] Recent Advances in CNN
Gu, Jiuxiang, et al. "Recent advances in convolutional neural networks." Pattern Recognition 77 (2018): 354-377.
https://arxiv.org/pdf/1512.07108.pdf

[8] Machine Learning Paper
Wu, Xindong, et al. "Top 10 algorithms in data mining." Knowledge and information systems 14.1 (2008): 1-37.
http://www.realtechsupport.org/UB/CM/algorithms/Wu_10Algorithms_2008.pdf

-----

[9] The Star Also Rises - AI Seminar 2020 Taipei
http://hemingwang.blogspot.com/2019/12/ai-seminar-2020-taipei.html

[10] The Star Also Rises - Machine Learning
https://hemingwang.blogspot.com/2019/04/machine-learning.html

-----

# 聖火令武功

[11] 天瓏網路書店-機器學習工程師面試全破解:嚴選124道AI演算法決勝題完整剖析
https://www.tenlong.com.tw/products/9789864344611 

No comments: