谁能给我解释一下:
Theta1_grad(:, 1) = Theta1_grad(:, 1) ./ m;
Theta1_grad(:, 2:end) = Theta1_grad(:, 2:end) ./ m + ((lambda/m) * Theta1(:, 2:end));
我用python实现,我不知道Octave,我只是找到了这个神经网络实现,但我不明白这是在做什么。在
参考号:http://feature-space.com/en/document49.pdf- 第12页(2.5)
没关系,我想这是为了不修改第一栏。在
Theta1_grad(:, 1)
得到矩阵的第一列Theta1_grad
,然后用m
的值除以这个向量的每个元素Theta1_grad(:, 2:end)
获取从第2列到最后的矩阵的其余部分(基本上除了第一列以外的所有列)通常,第一列设置为
1
,以便估计模型截距一般来说,在八度运算之前有}是逐元素乘法
.
表示逐元素运算,例如,A * B
是正规矩阵乘法,而{读a quick Octave,会对你有所帮助。在
编辑:
此方程适用于正则化神经网络(以减少过拟合风险)
我看不到整个代码,但我相信lambda是学习率,它是正则化参数(或惩罚),它乘以
Theta1
本身而不是梯度。在相关问题 更多 >
编程相关推荐