習題
5.1
試述將線性函數 \(f(\boldsymbol{x}) = \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}\) 用作神經元激活函數的缺陷.
理想中的激活函數是階躍函數, 但是它不連續, 不光滑, 所以要一個連續、光滑的函數替代它. 線性函數雖然連續、光滑, 但是它跟階躍函數並不是那么相似. 線性函數對 \(0\) 周圍的數值和對趨近 \(\infty\) 的數值是一視同仁的, 而這樣的性質我們並不需要, 我們更在乎那些處於 \(0\) 周圍的, 在被分為正 (大於 \(0\) ) 還是負 (小於 \(0\) ) 的界限邊的 '模糊' 的數值, 因此有了 \(\mathrm{Sigmoid}\) 函數, 它的特點就是在 \(0\) 周圍輸出急劇變化.
5.2
試述使用圖 \(5.2(\mathrm{b})\) 激活函數的神經元與對率回歸的聯系.
這已經非常明顯了, 対率回歸的激活函數也是 \(Sigmoid\) .
5.3
對於圖 \(5.7\) 中的 \(v_{ih}\) 試推導出 \(\mathrm{BP}\) 算法中的更新公式 \((5.13)\) .
全部展開, 得
顯然成立.
5.4
試述式 \((5.6)\) 中學習率的取值對神經網絡訓練的影響.
學習率太低, 訓練速度太慢. 學習率太高, 不容易收斂 (在極值點附近反復迭代) .
5.5
試編實現標准 \(\mathrm{BP}\) 算法和積累 \(\mathrm{BP}\) 算法, 在西瓜數據集 \(3.0\) 上分別用這兩個算法訓練一個單隱層網絡, 並進行比較.
《機器學習》西瓜書 第 3 章 編程實例
5.6
試設計一個 \(\mathrm{BP}\) 改進算法, 能通過動態調整學習率顯著提升收斂速度. 編程實現該算法, 並選擇兩個 \(\mathrm{UCI}\) 數據集與標准 \(\mathrm{BP}\) 算法進行實驗比較.
簡單描述一下, 就是一開始學習率比較高 (來更快逼近) , 然后學習率慢慢變小 (提高精度) ,
5.7
根據式 \((5.18)\) 和 \((5.19)\) , 試構造一個能解決異或問題的單層 \(\mathrm{RBF}\) 神經網絡.
《機器學習》西瓜書 第 3 章 編程實例
5.8
從網上下載或自己編程實現 \(\mathrm{SOM}\) 網絡, 並觀察其在西瓜數據集 \(3.0\alpha\) 上產生的結果.
《機器學習》西瓜書 第 3 章 編程實例
5.9*
試推導用於 \(\mathrm{Elman}\) 網絡的 \(\mathrm{BP}\) 算法.
說實話這個問題太變態了, 不過上網搜索一番總算是差不多弄懂了, 我自己估計說不清楚, 所以推薦零基礎入門深度學習(5) - 循環神經網絡.
5.10
從網上下載或自己編程實現一個卷積神經網絡, 並在手寫字符識別數據 \(\mathrm{MNIST}\) 上進行實驗測試.
《機器學習》西瓜書 第 3 章 編程實例
