智慧型控制 Intelligent Control

深度學習

本課程原本的教材約完成於 2005 年。類神經網路一章介紹的感知器與倒傳遞網路,是 1980 年代就成熟的方法;當時的網路通常只有一兩個隱藏層,用 Matlab 的 newff、traingd 訓練。2006 年起,研究者開始成功訓練很多層的網路,2012 年 AlexNet 在 ImageNet 影像辨識競賽大幅領先其他方法,此後「深度學習」(deep learning)迅速成為人工智慧的主流。

本次新增的範圍(時間軸放大)196019701980199020002010201520202025感知器RosenblattXOR 限制Minsky–Papert倒傳遞Rumelhart 等卷積網路LeCunLSTMHochreiter 等本課程原教材AlexNetImageNet 奪冠Adam、GANResNet、BatchNormAlphaGo深度強化學習Transformer注意力機制ChatGPT大型語言模型

為什麼深度學習在 2010 年代起飛 Why Now

推力內容
資料網路時代累積大量標註資料,例如 ImageNet 有上百萬張標註影像;資料越多,大模型越不容易過擬合
運算GPU 擅長大量平行的矩陣乘法,訓練速度比 CPU 快數十倍以上
演算法ReLU 激活函數、配合激活函數的初始化、Adam 等自適應最佳化器、dropout 與批次正規化、殘差連接(ResNet),解決了深層網路「訓練不動」的問題
軟體PyTorch、TensorFlow 等框架提供自動微分:只要寫出前向計算,梯度自動算好,研究者不必再手推倒傳遞公式

與原課程的對照 Then and Now

項目原課程(約 2005,Matlab)現在(PyTorch)
網路深度1~2 個隱藏層數十到上百層
隱藏層激活函數tansig、logsigReLU 及其變形
初始化initnw(Nguyen–Widrow)依激活函數選 He 或 Xavier(Glorot)
訓練法traingd(批次梯度下降)、trainlm小批次 SGD+動量、Adam
防止過擬合提早停止、調整網路大小再加上 dropout、權值衰減、批次正規化、資料擴增
求梯度工具箱內建的倒傳遞通用的自動微分,任何可微分的運算都能訓練
網路架構全連接的前饋網路卷積網路(影像)、遞迴網路與 Transformer(序列、語言)

本章內容 In This Chapter

後續章節:強化學習、神經網路用於控制、現代最佳化與調參。

程式範例使用 Python 3 與 PyTorch。安裝方式見 PyTorch 官方說明 ↗;本章範例只需要 CPU 版本。