第四周——深層神經(jīng)網(wǎng)絡(luò)
1示绊、Introduction to DNN
只不過是把之前的單隱含層網(wǎng)絡(luò)拓展了一下罷了,符號(hào)約定基本一致。
2、在DNN中做forward pass
通過for循環(huán)逐層計(jì)算Z和A亲族,得到模型的輸出矩陣。
3可缚、核對(duì)矩陣的shape
(1)Z和dZ的shape一致霎迫,其他也是。
(2)前向或反向傳播帘靡,只需確保等號(hào)兩邊的矩陣shape一致即可知给。
4、為什么使用深層表示
(1)有特征的內(nèi)部變化描姚,低層次的特征組合得到高層次抽象的特征涩赢,做特征的自動(dòng)抽取。
(2)人臉檢測任務(wù):先檢測出圖像哪里有edge轩勘,再進(jìn)一步檢測出哪里有眼鼻嘴等谒主,再進(jìn)一步檢測出哪里有人臉。
(3)感知野在逐步擴(kuò)大(In CNN)赃阀。
(4)如果用淺層網(wǎng)絡(luò)擬合一個(gè)函數(shù),相較于small L-layer DNN,需要指數(shù)增長更多的hidden unit榛斯。
(5)當(dāng)解決一個(gè)新的問題時(shí)观游,從logistic回歸開始,然后嘗試淺層網(wǎng)絡(luò)驮俗,再逐步加深懂缕,將層數(shù)做為一個(gè)超參來調(diào)整。
5王凑、DNN的building block
(1)參考Chainer DL框架搪柑,Linear Link是層(這個(gè)class的成員變量W和b是該層的參數(shù)),它包裝了LinearFunction索烹,要實(shí)現(xiàn)Function的forward and backward over cpu and gpu工碾,forward和backward方法使用了模板方法模式。
(2)一個(gè)層只做一件事百姓,例如線性層和激活層等渊额,符合OOP的思想。
(3)自定義一個(gè)層垒拢,只需實(shí)現(xiàn)forward and backward pass即可旬迹,forward(self, inputs)和backward(self, inputs, grad_outputs),其中inputs和grad_outputs都是ndarray的元組求类,這兩個(gè)方法返回的也是tuple of ndarray奔垦。
6、前向和反向傳播
見基于Chainer的DNN實(shí)現(xiàn)代碼(見我的Github):(1)實(shí)現(xiàn)Linear Link尸疆、ReLU Link和Sigmoid Link椿猎;(2)通過組合/堆疊這些層構(gòu)建二分類模型,即Link => Chain仓技;(3)數(shù)據(jù)驅(qū)動(dòng)鸵贬,訓(xùn)練得到二分類器。
7脖捻、參數(shù) VS 超參
(1)超參阔逼,即需要告訴學(xué)習(xí)算法的東西,包括:學(xué)習(xí)率地沮、迭代數(shù)嗜浮、多少隱含層、隱含單元數(shù)和激活函數(shù)等摩疑。
(2)應(yīng)用DL是一個(gè)經(jīng)驗(yàn)性的過程危融,通過實(shí)驗(yàn)確定最佳超參。
8雷袋、DL和大腦的關(guān)系
目前的DL和大腦沒什么關(guān)系吉殃。