神經網絡
神經網絡一個重要性質就是可以自動地設定合适的權重參數
1. 複習感覺機:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn5keRRlT4FleNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwYDO4EDMxUTMxIDNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
其中b被稱為偏置的參數,用于控制神經元被激活的容易程度;而w1和w2是表示各個信号權重的參數,用于控制各個信号的重要性。
為了簡化上式我們用函數來表示這種分情況的動作(超過0則輸出1,否則輸出0),引入新函數h(x),将上式改寫為:
2. 激活函數(activation function):
上面h(x)函數會将輸入信号的總和轉化為輸出信号,這種函數一般被稱為激活函數;
激活函數的作用在于決定如何來激活輸入信号的總和。
現在進一步改寫“公式3.2”,将其分為兩個階段進行處理,先計算輸入信号的權重總和a,然後用激活函數轉換這一總和。如下:
信号的權重總和為節點a,然後節點a被激活函數h(x)轉換成節點y。
由上述描述我們可以知道,激活函數是連接配接感覺機和神經網絡的橋梁;
- 樸素感覺機:指單層感覺機,其激活函數使用了階躍函數的模型。
- 多層感覺機:指神經網絡,即使用sigmoid函數後等平滑的激活函數的多層網絡。
- 階躍函數:表示激活函數以門檻值為界,一旦輸入超過門檻值,就切換輸出;圖形顯示詳見“A.step_function.py”。
- sigmoid函數:就是給定某一輸入後,會傳回某個輸出的轉換器,其平滑性對神經網絡的學習具有重要意義,圖形顯示詳見“B.sigmoid.py”。
- 其中兩者比較的圖形顯示詳見“C.sig_step_compare.py”
3. 非線性函數
* 函數本來就是輸入某個值後會傳回一個值的轉換器。神經網絡的激活函數必須是非線性函數。
4. ReLU(Rectified Linear Unit)函數
ReLU函數在輸入大于0時,直接輸出該值在輸入小于等于0時輸出0,如圖:
其函數實作詳見“D.relu.py”,其實作效果,即函數圖像如下:
5. 多元數組的運算
- 簡單來說,多元數組就是“數字的集合”,二維數組也稱矩陣(matrix),數組的橫向排列稱為行(row),縱向排列稱為列(column);
- 矩陣的乘法:np.dot(Amxn, Bnxl),多元數組乘法運算時,必須使兩個矩陣中的對應次元的元素個數一緻
6. 3層神經網絡的實作
神經網絡的運算可以作為矩陣運算打包進行。因為神經網絡各層的運算是通過矩陣的乘法運算打包進行的;
增加了表示偏置的神經元“1”
将第一層的權重和表示為下面的式子:
隐藏層的權重和(權重信号和偏置的總和)用a表示,被激活函數轉換後的信号用z表示。此外,圖中h()表示激活函數;
輸出層所用的激活函數,要根據求解問題的性質決定。一般地,回歸問題可以使用恒等函數(對于輸入的資訊不加任何改動地輸出),二進制分類問題可以使用sigmoid函數,多元分類問題可以使用softmax函數。
7. 輸出層的設計
機器學習的問題大緻可分為分類問題和回歸問題。分類問題是資料屬于哪一類的問題;而回歸問題是根據某個輸入預測一個(連續的)數值的問題。
softmax函數的輸出通過箭頭與所有的輸入信号相連。輸出層的各個神經元都受到所有輸入信号的影響。
實作softmax函數的注意事項:
- 超大值無法表示的問題,即溢出,在進行計算機的運算時必須注意,為了防止溢出,一般會加上或減去輸入信号的最大值,如下公式中的C’: softmax函數的輸出是0.0到1.0之間的實數。并且softmax函數的輸出值總和為1。輸出總和為1是softmax函數的一個重要性質。正因如此,我們才可以把softmax函數的輸出解釋成“機率”。
第三章 神經網絡
一般而言,神經網絡隻把輸出值最大的神經元所對應的類别作為識别結果。
求解機器學習問題的步驟可以分為“學習”和“推理”兩個階段。首先,在學習階段進行模型的學習(訓練),然後在推理階段,用學到的模型對未知的資料進行推理(分類)。
對于分類問題,輸出層的神經元數量一般設定為類别的數量,如手寫體數字的識别,共0~9,10個數字,是以輸出層神經元就設定為10個。
8. 手寫數字識别
我們假設訓練過程已結束,并得到了我們想要的參數。現在推理階段,先實作神經網絡的“推理處理”,這個推理處理也稱神經網絡的前項傳播(forward propagation)。
正規化:把資料限定到某個範圍内的處理成為正規化(normalization),如把輸入圖像的像素由0 ~ 255 的值正規化為 0.0 ~ 1.0 的值,其正規化方法很多種,如利用資料整體的均值或标準差,移動資料,使資料整體以0為中心分布