0

我对神经网络梯度下降背后的理论几乎没有疑问。

第一个问题:假设我们对 5 个特征中的每一个有 5 个权重。现在我们要计算梯度。算法内部是如何做到的?它是否采用第一个权重(=W1)并尝试稍微增加它(或减少它),当它完成后,转到第二个权重?还是通过同时改变超过 1 个权重来以不同的方式更有效地做到这一点?

第二个问题:如果特征 1 比特征 2 重要得多,那么与 W2 相比,W1 的相同变化(以 % 为单位)对损失的影响更大,每个权重具有不同的学习率不是更好吗?如果我们只有一个学习率,我们只考虑最有影响的权重来设置它,对吧?

4

1 回答 1

1

对于问题 1:

它只是做梯度下降。您不会独立地摆动权重:您将权重堆叠在向量/矩阵/张量W中,计算和增量delta_W本身就是(分别)向量/矩阵/张量。一旦你知道了这个增量,你就可以一次将它应用到所有的权重上。

对于问题 2:

已经有许多算法可以将学习率调整为参数。参见例如RMSpropAdam。这些通常(粗略地说)基于参数干预的频率。

关于您描述的“重要性”:

因此,与 W2 相比,W1 的相同变化(以 % 为单位)对损失的影响更大,每个权重具有不同的学习率不是更好吗

您只是在描述渐变!在这种情况下,它W1的梯度比 更高W2,并且它已经被更新为更高的权重,可以这么说。除非你有更多关于它的作用的信息(例如上面提到的频率),否则独立地玩弄它的学习率并没有多大意义。

于 2020-06-04T10:08:21.360 回答