2011-05-12 115 views
0

我想知道grdient下降算法如何工作在matlab網絡培訓和如何計算MSE - 我有我自己的應用程序,但它不工作作爲matlab nn,我想知道爲什麼。 我的算法是這樣的:matlab神經網絡梯度下降和均方誤差

foreach epoch 
     gradient_vector = 0 // this is a vector 
     rmse = 0 

     foreach sample in data set 
      output = CalculateForward(sample.input) 
      error = sample.target - output 
      rmse += DotProduct(error,error) 
      gradient_part = CalculateBackward(error) 
      gradient_vector += (gradient_part/number_of_samples) 
     end 

     network.AddToWeights(gradient_vector * learning_rate) 
     rmse = sqrt(rmse/number_of_samples) 

    end 

我把它類似的東西做什麼MATLAB?

回答

0

它看起來接近MATLAB的功能,但請記住,該工具箱是爲廣泛的應用設計的。您的算法在每個時期向網絡提供一次數據。 Matlab的工具箱可以在每個時期多次呈現數據,每個時期多次更新,並且可以通過多種方式進行更新。我向你保證,你的確切方法可以與現有的matlab工具箱重複使用,但是可以通過在你正在使用的神經網絡的幫助文件中找到一個非常具體的設置來找到。他們中的一些人可能比其他人更接近你所做的,所以要有洞察力。祝你好運!