Stanford機器學習課程筆記——神經網路的表示

bigface1234fdfg發表於2015-01-28

Stanford機器學習課程筆記——神經網路的表示

   

1. 為什麼要引入神經網路


    其實這個問題等價與神經網路和之前的迴歸模型有什麼區別,如果你沒有學過其他機器學習演算法的話。這個問題可以通過一個例子來說明:如果樣本都是60*60的影像,那麼每個樣本的特徵維數都是3600個,使用前面講的線性迴歸模型,那麼需要建立的引數個數就有3600的;如果是非線性迴歸模型,還要考慮高次項的情況,需要求解的引數就更加多了。此時的迴歸模型將會變得異常複雜,故我們需要其餘比較高效的模型來解決這些實際的問題。這個時候我們就引入了神經網路。


2. 神經網路的表示形式


    一般而言,神經網路由3部分組成:輸入層、中間層和輸出層。如下:



其中輸入層我們一般用x_1, x_2, x_3,...來表示;中間層我們使用a_j_i來表示第j層的第i個元素。如下:


其中的theta_j(暫且讀作theta吧。。。)是第j層到第j+1層的權重矩陣。其矩陣的維數為:


那麼中間層的每個元素都可以由輸出層x和權重矩陣theta求得。


其實形式就是每個元素都是前面一層的輸入和對應的權重相乘再疊加的過程。根據這個思想,我們也可以得到最後輸出層的假設,如下:


不知道有沒有發現,疊加之後的括號外面還有一個函式巢狀,就是g(),這個前面LR迴歸中的sigmod函式,也就是說中間層a(2,j)是輸入層線性組合的sigmod值,輸出又是中間層線性組合的sigmod值

    其實上面那個假設的形式和LR迴歸還是很接近的,同樣的都是每個元素前面乘以對應的係數theta,然後疊加,然後放在sigmod函式中。當時不同的是,和引數相乘的不再是原始特徵,而是中間層的最後一層元素,也就是說神經網路不直接使用原始特徵來構建假設,而是根據前面中間層的“過濾學習”得到的特徵來構建假設。

    這裡講到的構建神經網路的順序都是input->activation->output的順序,這個是前向傳遞。


3. 如何用神經網路實現邏輯表示式AND,OR,XNOR


    這部分Coursera課程中講的比較好,畫圖也豐富,後面給出的Rahcel Zhang的連結也不錯,我就直接參考過來吧。。。


邏輯與AND:




邏輯或OR:



我們發現,其實神經網路實現不同的邏輯表示式就是在每一層到下一層的權重矩陣不同而已。說明這個權重矩陣對神經網路的功能至關重要。


邏輯同或XNOR:








參考:

http://blog.csdn.net/abcjennifer/article/details/7749309

Coursera機器學習筆記





相關文章