[問題] 倒傳遞類神經 矩陣運算 轉換函式 tansi …已回收

看板MATLAB作者 (巴426)時間14年前 (2011/08/07 17:39), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
大家好 問題是這樣的 我呼叫了nntool 訓練比較基本的 Feed-forward backprop 由於小弟有特殊需求,因此需要實作一個方法代替sim(net,input) 相信有學過類神經的各位應該知道 a = f(W*P+b) a - 輸出 f - 轉換函式 W - 權重 P - 輸入向量 b - 偏權值 Feed-forward backprop 照理說也是多層感知機才對 所以我應該只要把訓練好的權重直接拿來計算 就能得到我要的結果 但實作後發現 卻不是這麼回事.... 雖然沒必要 但我還是把其中一行Code貼上來好了 tansig(network1.IW{1,1}*Input)+network1.B{1}; 假如我想要的答案是 [6 6] 但我自己計算 得到的卻是 [-0.9 -0.98] 後來我嘗試驗證了一下 發現一個問題 那就是轉換函式 tansig tansig(6) = 1 ; tansig(-6) = -1; 可以看到上面這個結果 無論給予7、8、9 或者 -7、-8、....、-200 都不會逃出 -1 ~~~1 這個範圍 那到底matlab模擬出來的結果 基於我用的神經模型 要怎樣才能於大於1 或 小於-1? 還是說..其實計算並不像我所想的 只有多層感知機如此簡單? 但我找了些資料 大多是講怎麼運用鎖鏈法則偏微分 來得到新的權重 卻幾乎沒看到 倒傳遞類神經確定全部權重後 是怎麼計算的。 期望有人能解惑 謝謝。 ------------------------------------------------------------- 2011/08/13 問題總算解決了 感謝 jounle 版友的協助 問題點在於 input、target 沒做正規化 下面是我與J大的來信 給有需要的人參考 J大: 我有用過nntool 不過沒有研究的很深 就我的經驗應該是沒有含正規化的東西在裡面 為什麼和你的計算會有出入我也不是很清楚 正規化就是配合神經網路作一些數據處理 譬如使用tangsig函數 上下限在+1和-1 所以要把輸入的數據值大小都限制在+1~-1之間 以單一向量為例,總數目為100的資料來看 首先找尋這100個數據裡面最大及最小的值 以這兩個值作為上下限 重新計算每個數據的值 new_p =[[p-min(p)]/[max(p)-min(p)]]*2-1 完成後你會發現每個數據都在+1~-1的範圍內 不過要注意處理多維向量要分開處理每個向量 不要搞混 如果你需要出來的數據上下限超過+1~-1 這需要反正規化 new_out = [(網路out+1)/2]*[max(原out)-min(原out)]+min(原out) 步驟就是 先將輸入的數據正規化(包括輸入向量及輸出向量) 丟進網路訓練 完成就可進行網路輸出 分類問提則不須反正規化 回歸問題則須反正規化 將所得的輸出值套用new_out公式可得反正規化結果 原out即未正規化的輸出向量 網路out即網路輸出的向量(介於+1~-1) 最後的話 建議你使用一層為tansig或是logsig的函數 然後後面接一個purelin的函數 講的可能不是很清楚 給你參考 還是建議多看一些論文或文章比較好 -------------------------------------------- 你好! 就在剛剛 小弟總算得到想要得結果了 跟大大說的沒錯 的確就是正規化搞鬼 小弟參考的是下面這篇 內含Sourcecode 還有正規化 和反正規化所用的呼叫含 式 http://www.cnblogs.com/heaad/archive/2011/3/7.html 正規化後 總算矩陣運算正常了 先前因為.. XOR 的分類 若單純只有 1 -1 不用經過正規化 也可以直接矩陣運算 算出正確答案 所以差點因為這一點而放棄繼續鑽研 想改用手動實作 現在有了解答 總算可以趕進度了 謝謝您的協助 -- 我怕的 不是 正眼看 而是 一旁砍人的飆仔 -- ※ 編輯: pkmu8426 來自: 114.38.101.127 (08/07 17:41)

08/08 00:20, , 1F
改用別的轉換函數?
08/08 00:20, 1F
唉 這我有想過 但治標不治本 FFBPNN 轉換函數就那3個 tansig、purelin、logsig logsig我沒記錯也是一樣 logsig(8) 還是logsig(10) 最大就是-1~1 至於purelin 那更不用說了 根本就等於沒有換 不過...你這一席話 倒是讓我想試試看 每層都用purelin狀況會如何 只是擔心收斂效果會不佳... 算了 做過之後我再把結果PO上來 ※ 編輯: pkmu8426 來自: 118.170.82.179 (08/08 22:51)

08/09 14:35, , 2F
樓主似乎不是很清楚各種轉移函數的定義..建議搞懂..
08/09 14:35, 2F

08/09 14:36, , 3F
還有~一般用神經網路都會正規化..這是有原因的..
08/09 14:36, 3F
※ 編輯: pkmu8426 來自: 114.38.110.108 (08/14 00:01)
文章代碼(AID): #1EFbrjQN (MATLAB)