都是基於梯度下降的邏輯回歸與神經網絡有什么區別?(邏輯回歸參數更新和神經網絡反向傳播)


   最近在刷吳恩達的coursea的機器學習視頻,學完基於梯度下降的邏輯回歸和基於梯度下降的神經網絡后,就在反思這兩者之間的區別,為什么必須使用神經網絡?

邏輯回歸不能替代神經網絡么?他們的區別是什么呢?

 

答案:邏輯回歸不能替代神經網絡。

   機器學習的本質其實是訓練出一組參數,盡可能讓基於這組參數的模型能正確識別出所有的樣本。

然而,邏輯回歸所有參數的更新是基於相同的式子,也就是所有參數的更新是基於相同的規則。 相比之下,神經網絡每兩個神經元之間參數的更新都基於不同式子,也就是每個參數的更新都是用不同的規則

顯而易見,神經網絡模型能模擬和挖掘出更多復雜的關系,也具有更好的預測效果。下面詳細分析邏輯回歸的更新和神經網絡的反向傳播。

 

分析邏輯回歸的參數更新  假設有m 個樣本,他們的cost function(成本函數)為:

其中 h 函數為激活函數, xi為第 i 個樣本, theta 為要訓練的參數, 用向量的形式來寫就是:

,其中X為代表所有樣本的向量,是二維矩陣,每一行表示一個樣本, Y為每一個樣本本身應該屬於的類。

 

對上面的cost function的每一個參數theta求偏導, 得到邏輯回歸的所有參數的更新都根據的規則是:

通過此式, 可以看出影響參數的更新的因素有  學習率a, 樣本個數 m,樣本輸入X,樣本所屬於的類。

 

 

神經網絡的參數更新過程

 

 

本文以上圖神經網絡為例,輸入層有兩個神經元,這兩個神經元表示一個樣本。 一個隱藏層, 兩個輸出。

正向傳播: i1 ---h1 之間的傳播,h1的輸入為: 

              h1 的輸出為: 假設用激活函數sigmoid, 

 

 

      h1---o1 之間的傳播,o1的輸入為

              o1 的輸出為: 

 

 

反向傳播: 

(1)總誤差(square error): 

                 

因為有2個輸出, 所以error由兩部分組成

              

             

 

(2)輸出層與隱藏層間的參數更新

以權重w5為例,

 

計算

      

 

計算 : 

      

 

計算:.

      

 

三者相乘,得到 w5 的更新為:

       (

      w5的更新值主要與Out o1 和 Outh1相關

      同理,w6的更新取決於 Out o1 和 Outh2, W7 的更新取決於 Out o2 和 Outh1, W8 的更新取決於 Out o2 和 Outh2, 由此可見每個參數的更新式子都不同

 

(3)隱藏層與隱藏層間的參數更新

 

  計算W5時, 誤差是從outo1 --neto1--w5 這樣傳遞過來的

  而更新 w1 時, 路徑是 outh1 ---neth1---w1, 而 outh1先要接收 Eo1 和 E 02 傳來的誤差。 


                               

                 

 

  ,    其中    

 

通過計算可以得到,

 

 所以, W1 的更新取決於Out o1 ,Out o2 , net01, net02, outh1, neth1.

即 W1的更新路徑是(Out o1  ----- neto1    &  Out o2  ----- neto2 )----- outh1 ----neth1 ----W1

W2 的更新路徑是(Out o1  ----- neto1    &  Out o2  ----- neto2 )----- outh1 ----neth1----W2

W3 的更新路徑是(Out o1  ----- neto1    &  Out o2  ----- neto2 )----- outh2 ----neth2----W3

 

由此可見, 神經網絡的反向傳播每個參數的路徑是不一樣的。

 


 

 

 

 

 

 

 

 

 

 

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM