【发布时间】:2015-08-21 05:52:04
【问题描述】:
这更像是一个 Matlab 编程问题,而不是一个数学问题。
我想在不同的学习率上运行多次梯度下降。我有一套学习率
alpha = [0.3, 0.1, 0.03, 0.01, 0.003, 0.001];
每次运行梯度下降时,我都会得到一个向量 J_vals 作为输出。但是,除了执行以下操作之外,我对 Matlab 的了解还不够,不知道如何实现:
[theta, J_vals] = gradientDescent(...., alpha(1),...);
J1 = J_vals;
[theta, J_vals] = gradientDescent(...., alpha(2),...);
J2 = J_vals;
等等。
我考虑过使用 for 循环,但后来我不知道如何处理 J_vals 的(不知道如何将 for 循环应用于 J1、J2 等等)。也许它看起来像这样:
for i = len(alpha)
[theta, J_vals] = gradientDescent(..., alpha(i),...);
J(i) = J_vals;
end
然后我会有一个向量的向量。
在 Python 中,我只需运行一个 for 循环并将每个新结果附加到列表的末尾。如何在 Matlab 中实现这样的功能?还是有更有效的方法?
【问题讨论】: