matlab神经网络梯度下降和均方误差

时间:2011-05-12 15:10:57

标签: matlab neural-network gradient

我想知道grdient descent算法如何在matlab网络训练中运行以及如何计算MSE - 我有自己的应用程序,但它不能用作matlab nn我想知道原因。 我的算法如下所示:

    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有什么相似之处?

1 个答案:

答案 0 :(得分:0)

它似乎与MATLAB的作用接近,但请记住,工具箱是为广泛的应用程序而设计的。您的算法每个时期将一次数据输入一次到网络。 Matlab的工具箱可以每个时期多次呈现数据,每个时期更新多次,并且可以通过多种方式进行更新。我向您保证,您可以使用现有的matlab工具箱复制您的确切方法,但具有非常特定的设置,可以通过在您正在使用的神经网络的帮助文件中挖掘来找到。他们中的一些人可能比其他人更接近你正在做的事情,所以要辨别。祝你好运!