Tuesday, January 21, 2020

All-round AI Lectures - Lab

All-round AI Lectures - Lab

2019/12/21

前言:

全方位 AI 課程,精選十個實作。 參考資料與報名連結在最下方。

-----


Fig. Lab(圖片來源:Pixabay)。

-----

一、LeNet-Lab [1]。

二、SENet-Lab [2]。

三、ResNet-Lab [3]。

四、YOLACT++-Lab [4]。

五、YOLOv3-Lab [5]。

-----

六、LSTM-Lab [6]。

七、Seq2seq-Lab [7]。

八、Ranger-Lab [12]。

九、Transformer-Lab [10]。

十、BERT-Lab [11]。

-----


-----



-----

References

[1] LeNet_LeNet at master · HiCraigChen_LeNet · GitHub
https://github.com/HiCraigChen/LeNet/tree/master/LeNet

[2] pytorch实现SeNet_winycg的博客-CSDN博客
https://blog.csdn.net/winycg/article/details/89285912

[3] 通过和resnet18和resnet50理解PyTorch的ResNet模块_得克特-CSDN博客
https://blog.csdn.net/weixin_40548136/article/details/88820996

[4] 【YOLACT】训练自己数据集_mjiansun的专栏-CSDN博客
https://blog.csdn.net/u013066730/article/details/103720215

[5] 利用PyTorch自己动手从零实现YOLOv3 _ 从零开始的BLOG
https://hellozhaozheng.github.io/z_post/PyTorch-YOLO/

[6] Sequence Models and Long-Short Term Memory Networks — PyTorch Tutorials 1.4.0 documentation
https://pytorch.org/tutorials/beginner/nlp/sequence_models_tutorial.html

[7] Deploying a Seq2Seq Model with TorchScript — PyTorch Tutorials 1.4.0 documentation
https://pytorch.org/tutorials/beginner/deploy_seq2seq_hybrid_frontend_tutorial.html

[8] NLP From Scratch  Translation with a Sequence to Sequence Network and Attention — PyTorch Tutorials 1.4.0 documentation
https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html

[9] Understanding incremental decoding in fairseq – Telesens
http://www.telesens.co/2019/04/21/understanding-incremental-decoding-in-fairseq/

[10] How to code The Transformer in Pytorch - Towards Data Science
https://towardsdatascience.com/how-to-code-the-transformer-in-pytorch-24db27c8f9ec

[11] BERT for dummies — Step by Step Tutorial - Towards Data Science
https://towardsdatascience.com/bert-for-dummies-step-by-step-tutorial-fb90890ffe03

[12] New Deep Learning Optimizer, Ranger  Synergistic combination of RAdam + LookAhead for the best of both
https://medium.com/@lessw/new-deep-learning-optimizer-ranger-synergistic-combination-of-radam-lookahead-for-the-best-of-2dc83f79a48d

[13] 全方位 AI 課程(六十小時搞定深度學習)
http://hemingwang.blogspot.com/2020/01/all-round-ai-lectures.html 

[14] 全方位 AI 課程報名處
https://www.facebook.com/permalink.php?story_fbid=113391586856343&id=104808127714689

Friday, January 10, 2020

AI Seminar 2020 Taipei

AI Seminar 2020 Taipei

2020/01/01

說明:

-----


Fig. Highway(圖片來源:Pixabay)。

-----

Outline

一、課程摘要
二、課程列表
三、2020 行事曆

-----

一、課程摘要

-----

◎ Computer Vision(CV )

-----


LeNet / Dataset / Introduction / AlexNet / ZFNet / LeNet-Lab /


NIN / Image Classification / (NAS-RL)/ GoogLeNet、VGGNet / PreVGGNet、Highway / SENet-Lab /


ResNet / Mobile / (NASNet) / ResNet Analysis / ResNet Variants / ResNet-Lab /


FCN / Semantic Segmentation / (Auto-DeepLab) / Mask R-CNN / YOLACT++ / YOLACT++-Lab /


YOLOv1 / Object Detection / (NAS-FPN) / Faster R-CNN / YOLOv3 / YOLOv3-Lab /

-----

◎ Natural Language Processing(NLP)and Fundamental Topics

-----


LSTM / Regularization / (AutoAugment) / Weight Decay / Dropout / LSTM-Lab /


Seq2seq / Normalization / (Whitening) / Batch Normalization / Layer Normalization / Seq2seq-Lab /


Attention / Optimization / (FSA、KVMN) / RAdam / Lookahead / Ranger-Lab /


ConvS2S / Activation Function / (NNLM、Word2vec) / ULMFiT / ELMo / Transformer-Lab /


Transformer / Loss Function / (AM-LFS) / GPT-1 / BERT / BERT-Lab /

-----

二、課程列表

-----

◎ Computer Vision(CV )

-----

一A
第一小時(授課):LeNet
第二小時(授課):Dataset
第三小時(授課):Introduction
講師:Marcel

一B
第一小時(研討):AlexNet
第二小時(研討):ZFNet
第三小時(實作):LeNet-Lab
助教:Tsai

二A
第一小時(授課):NIN
第二小時(授課):Image Classification
第三小時(授課):Discussion(NAS-RL)
講師:Marcel

二B
第一小時(研討):GoogLeNet、VGGNet
第二小時(研討):PreVGGNet、Highway
第三小時(實作):SENet-Lab
助教:Fan

三A
第一小時(授課):ResNet
第二小時(授課):Mobile
第三小時(授課):Discussion(NASNet)
講師:Marcel

三B
第一小時(研討):ResNet Analysis
第二小時(研討):ResNet Variants
第三小時(實作):ResNet-Lab
助教:Rex

四A
第一小時(授課):FCN
第二小時(授課):Semantic Segmentation
第三小時(授課):Discussion(Auto-DeepLab)
講師:Marcel

四B
第一小時(研討):Mask R-CNN
第二小時(研討):YOLACT++
第三小時(實作):YOLACT++-Lab
助教:Fan

五A
第一小時(授課):YOLOv1
第二小時(授課):Object Detection
第三小時(授課):Discussion(NAS-FPN)
講師:Marcel

五B
第一小時(研討):Faster R-CNN
第二小時(研討):YOLOv3
第三小時(實作):YOLOv3-Lab
助教:Tsai

-----

◎ Natural Language Processing(NLP)and Fundamental Topics 

-----

六A
第一小時(授課):LSTM
第二小時(授課):Regularization
第三小時(授課):Discussion(AutoAugment)
講師:Marcel

六B
第一小時(研討):Weight Decay
第二小時(研討):Dropout
第三小時(實作):LSTM-Lab
助教:Tom

七A
第一小時(授課):Seq2seq
第二小時(授課):Normalization
第三小時(授課):Discussion(Whitening)
講師:Marcel

七B
第一小時(研討):Batch Normalization
第二小時(研討):Layer Normalization
第三小時(實作):Seq2seq-Lab
助教:Tom

八A
第一小時(授課):Attention
第二小時(授課):Optimization
第三小時(授課):Discussion(FSA、KVMN)
講師:Marcel

八B
第一小時(研討):RAdam
第二小時(研討):Lookahead
第三小時(實作):Ranger-Lab
助教:Rex

九A
第一小時(授課):ConvS2S
第二小時(授課):Activation Function
第三小時(授課):Discussion(NNLM、KVMN)
講師:Marcel

九B
第一小時(研討):ULMFiT
第二小時(研討):ELMo
第三小時(實作):Transformer-Lab
助教:Titan

十A
第一小時(授課):Transformer
第二小時(授課):Loss Function
第三小時(授課):Discussion(AM-LFS)
講師:Marcel

十B
第一小時(研討):GPT-1
第二小時(研討):BERT
第三小時(實作):BERT-Lab
助教:Titan

-----

三、2020 行事曆

-----

第 01 個週日,01/05。
第 02 個週日,01/12。
第 03 個週日,01/19。
第 04 個週日,01/26。

第 05 個週日,02/02。
第 06 個週日,02/09。
第 07 個週日,02/16。
第 08 個週日,02/23。

第 09 個週日,03/01。二二八和平紀念日相關。
第 10 個週日,03/08。一A
第 11 個週日,03/15。
第 12 個週日,03/22。一B
第 13 個週日,03/29。青年節相關。

第 14 個週日,04/05。清明節相關。
第 15 個週日,04/12。二A
第 16 個週日,04/19。二B
第 17 個週日,04/26。員工旅遊。

第 18 個週日,05/03。五一勞動節相關。
第 19 個週日,05/10。母親節相關。
第 20 個週日,05/17。三A
第 21 個週日,05/24。
第 22 個週日,05/31。三B

第 23 個週日,06/07。四A
第 24 個週日,06/14。
第 25 個週日,06/21。四B
第 26 個週日,06/28。端午節相關。

第 27 個週日,07/05。五A
第 28 個週日,07/12。
第 29 個週日,07/19。五B
第 30 個週日,07/26。

第 31 個週日,08/02。六A
第 32 個週日,08/09。父親節相關
第 33 個週日,08/16。六B
第 34 個週日,08/23。
第 35 個週日,08/30。

第 36 個週日,09/06。七A
第 37 個週日,09/13。
第 38 個週日,09/20。七B
第 39 個週日,09/27。教師節相關。

第 40 個週日,10/04。中秋節相關。
第 41 個週日,10/11。國慶日相關。
第 42 個週日,10/18。八A
第 43 個週日,10/25。八B(台灣光復節相關)

第 44 個週日,11/01。
第 45 個週日,11/08。九A
第 46 個週日,11/15。國父誕辰相關。
第 47 個週日,11/22。九B
第 48 個週日,11/29。

第 49 個週日,12/06。十A
第 50 個週日,12/13。
第 51 個週日,12/20。十B
第 52 個週日,12/27。聖誕節相關。

-----

References

[1] 全方位 AI 課程
https://hemingwang.blogspot.com/2020/01/all-round-ai-lectures.html

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