logo
Loading...

神經網路問題 - Cupoy

老師:Day 75的題目說:通過增加更多的中間層,以對更多關係的組合進行建模,syn1 權值矩陣將隱...

ml100-2,ml100-2-d75

神經網路問題

2019/07/13 下午 03:00
機器學習共學討論版
Ken Hu
觀看數:114
回答數:1
收藏數:0
ml100-2
ml100-2-d75

老師:


Day 75的題目說:


通過增加更多的中間層,以對更多關係的組合進行建模,syn1 權值矩陣將隱層的組合輸出映射到最終結果,而在更新 syn1 的同時,還需要更新 syn0 權值矩陣,以從輸入資料中更好地產生這些組合

原本的範例程式是 L0 * syn0 -> L1、 sigmoid(L1) -> y(預測值)

所以題意是要我們曾加一層L2,讓網路變成:

L0 * syn0 -> L1、 L1 * syn1->L2、sigmoid(L2) -> y(預測值)的意思囉?


在試著這麼做的時候

新增的L2層的誤差,仿照原範例的L1層誤差,寫成L2_error = y - L2(誤差=真值-預測值)

但接下來要計算L1的誤差時,就不知道該怎麼算了,也因此不曉得該如何調整syn0

不曉得老師能否給予提示? 

回答列表

  • 2019/07/13 下午 05:29
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:0

    # Feed forward through layers 0, 1, and 2    

     # l0 網路第 1 層,即網路輸入層。    

     # l1 網路第 2 層,常稱作隱藏層。    

     # l2 假定為網路最後一層,隨著訓練進行,其輸出應該逐漸接近正確結果         


     l0 = X    

     l1 = nonlin(np.dot(l0,syn0))    

     l2 = nonlin(np.dot(l1,syn1))

          

     # how much did we miss the target value?    

     # l2_error 該值說明了神經網路預測時“丟失”的數目。     

    # l2_delta 該值為經確信度加權後的神經網路的誤差,除了確信誤差很小時,它近似等於預測誤差。   

     # l1_error 該值為 l2_delta 經 syn1 加權後的結果,從而能夠計算得到中間層/隱層的誤差。   

     # l1_delta 該值為經確信度加權後的神經網路 l1 層的誤差,除了確信誤差很小時,它近似等於 l1_error 。


     # in what direction is the target value?   

     # were we really sure? if so, don't change too much.   

     l2_delta = l2_error*nonlin(l2,deriv=True)