手寫數字識别之網絡結構
不可能是一個線性關系
使用普通的多層神經網絡
1.基礎模型:神經網絡
(1)輸入層+隐含層+輸出層,非線性轉化為sigmoid
(2)輸出層:單一輸出
2.以類的方式組建網絡
(1)初始化函數:定義每層
(2)Forward函數:串聯方式
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR9UNFRVT3VFVNFDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2QzM5QDMxQTMzITNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
- 輸入層:将資料輸入給神經網絡。在該任務中,輸入層的尺度為28×28的像素值。
- 隐含層:增加網絡深度和複雜度,隐含層的節點數是可以調整的,節點數越多,神經網絡表示能力越強,參數量也會增加。在該任務中,中間的兩個隐含層為10×10的結構,通常隐含層會比輸入層的尺寸小,以便對關鍵資訊做抽象,激活函數使用常見的Sigmoid函數。
- 輸出層:輸出網絡計算結果,輸出層的節點數是固定的。如果是回歸問題,節點數量為需要回歸的數字數量。如果是分類問題,則是分類标簽的數量。在該任務中,模型的輸出是回歸一個數字,輸出層的尺寸為1。
*隐含層引入非線性激活函數Sigmoid是為了增加神經網絡的非線性能力。
針對手寫數字識别的任務,網絡層的設計如下:
- 輸入層的尺度為28×28,但批次計算的時候會統一加1個次元(大小為batch size)。
- 中間的兩個隐含層為10×10的結構,激活函數使用常見的Sigmoid函數。
- 與房價預測模型一樣,模型的輸出是回歸一個數字,輸出層的尺寸設定成1。
具體代碼
優化:卷積神經網絡