吴恩达机器学习 -- 神经网络学习
9.1 非線性假設
無論是線性回歸還是邏輯回歸都有這樣一個缺點,即:當特征太多時,計算的負荷會非常大。
吳恩達老師舉了一個例子:
當我們使用 的多次項式進行預測時,我們可以應用的很好。 之前課程學習過,使用非線性的多項式項,能夠建立更好的分類模型。假設有非常多的特征,例如大于100個變量,希望用這100個特征來構建一個非線性的多項式模型,結果將是數量非常驚人的特征組合,即便只采用兩兩特征的組合,也會有接近5000個組合而成的特征。這對于一般的邏輯回歸來說需要計算的特征太多了。
老師緊接著又舉了一個計算機視覺的問題:
?假設選用灰度圖片,每個像素點只有一個值(RGB有三個),可以選取圖片上的兩個不同位置上的兩個像素,然后訓練一個邏輯回歸算法利用這兩個像素的值來判斷圖片上是否是汽車。假設采用50x50像素的小圖片,并將所有的像素視為特征,會有 2500個特征,如果要進一步將兩兩特征組合構成一個多項式模型,則會有接近3百萬個特征。
普通的邏輯回歸模型,不能有效地處理這么多的特征,這時候就需要神經網絡模型。
?
9.3 模型展示1
大腦中的神經網絡結構如下圖所示,Dendrite['dendra?t]是樹突,接收來自其他神經元的信號;Axon['?ks?n]是軸突,向其他神經元輸出經過此神經元處理過的信息。
神經網絡就是大量神經元相互鏈接并通過電脈沖來交流的一個網絡。
?
神經網絡模型建立在很多神經元 之上,每個神經元是一個學習模型。這些神經元(也叫激活單元,activation unit)采納一些特征作為輸入,并且根據本身的模型提供一個輸出。
下圖是一個以邏輯回歸模型作為自身學習模型的神經元示例,在神經網絡中,參數 又可被成為權重(weight)。
?類似于神經元的神經網絡,效果如下:
其中: 是輸入單元,將原始數據輸入給它們,處于輸入層; 是中間單元,負責將數據進行處理,然后呈遞到下一層;最后是輸出單元,它負責計算 。
神經網絡模型是許多邏輯單元按照不同層級組織起來的網絡,每一層的輸出變量都是下一層的輸入變量。
下圖為一個3層的神經網絡,第一層為輸入層(Input Layer),最后一層為輸出層(Output Layer),中間一層為隱藏層(Hidden Layers)。我們為每一層都增加一個偏差單位(bias unit):
一些標記:
:第 層的第 個激活單元
:從第 層映射到第 層的權重矩陣;例如 代表從第1層映射到第2層的權重矩陣,其大小為:第 層的激活單元數量為行數,以第? 層的激活單元數加1 為列數的矩陣。
對上述模型,激活單元和輸出分別表達為:
把 分別用矩陣表示:
,可得
觀察上面的式子,每一個 都是由上一層所有 的和每一個 所對應的 決定的。
把這樣從左到右的算法稱為前向傳播算法( FORWARD PROPAGATION ))
?
9.4 模型展示2
相對于使用循環來編碼,利用向量化的方法會使得計算更為簡便。以上面的神經網絡為例,試著計算第二層的值:
把 定義為 ,其他類似
?
令 ,,計算后添加? 。 計算輸出的值為:
令 令 ,則
為了更好地了解Neuron Networks的工作原理,先把左半部分遮住:
右半部分其實就是以 , 按照Logistic Regression的方式輸出:
其實神經網絡就像是logistic regression,只不過把logistic regression中的輸入向量 變成了中間層的 ,可以把 看成更高級的特征值,他們由 決定。
?
9.5 例子與直覺展示①
神經網絡中,單層神經元(無中間層)的計算可用來表示邏輯運算,比如邏輯與(AND)、邏輯或(OR)。
舉例說明:邏輯與(AND);
?
?,此時
從圖中可以看出 AND
接下來是 OR函數的例子:
?
9.6 例子與直覺展示②
可以利用神經元來組合成更為復雜的神經網絡以實現更復雜的運算。例如我們要實現XNOR 功能(輸入的兩個值必須一樣,均為1或均為0),即
這種方法可以逐漸構造出越來越復雜的函數,也能得到更加厲害的特征值。?
?
9.7 多元分類
如果要訓練一個神經網絡算法來識別路人、汽車、摩托車和卡車。
輸入 有三個維度,有兩個中間層,輸出層是一個四維向量,也就是每一個數據在輸出層都會出現 ,且a,b,c,d只有一個為1
神經網絡算法的輸出結果為四種可能情形之一:?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的吴恩达机器学习 -- 神经网络学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吴恩达机器学习 -- 正则化
- 下一篇: 一些知识点