Я хочу знать, как работает алгоритм градиентного спуска при обучении в сети 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?