神经网络倍频程实现

2024-10-01 00:31:14 发布

您现在位置:Python中文网/ 问答频道 /正文

谁能给我解释一下:

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)

编辑:

没关系,我想这是为了不修改第一栏。在


Tags: lambdacomhttp编辑pdfspace神经网络feature
1条回答
网友
1楼 · 发布于 2024-10-01 00:31:14

Theta1_grad(:, 1)得到矩阵的第一列Theta1_grad,然后用m的值除以这个向量的每个元素

Theta1_grad(:, 2:end)获取从第2列到最后的矩阵的其余部分(基本上除了第一列以外的所有列)

通常,第一列设置为1,以便估计模型截距

一般来说,在八度运算之前有.表示逐元素运算,例如,A * B是正规矩阵乘法,而{}是逐元素乘法

a quick Octave,会对你有所帮助。在

编辑:

此方程适用于正则化神经网络(以减少过拟合风险)

 Theta1_grad(:, 2:end) = Theta1_grad(:, 2:end) ./ m + ((lambda/m) * Theta1(:, 2:end));

我看不到整个代码,但我相信lambda是学习率,它是正则化参数(或惩罚),它乘以Theta1本身而不是梯度。在

相关问题 更多 >