逻辑回归的权重参数为什么要初始化为零?

14

我曾见过神经网络的权重被初始化为随机数,所以我很好奇为什么逻辑回归的权重会被初始化为零?

5个回答

10

对于神经网络,每个层中有n个神经元。因此,如果您将每个神经元的权重初始化为0,那么在反向传播后,它们每个人将具有相同的权重:

shallow neural network

第一层中的神经元a1和a2将具有相同的权重,无论迭代多长时间。因为它们计算的是相同的函数。

而逻辑回归不是这种情况,它只是y = Wx + b。


2
这是不是意味着对于神经网络来说,因为没有添加偏差,所以它始终保持不变?但对于逻辑回归并非如此? - melaos

3

我认为上面的答案有些误导。实际上,在逻辑回归中始终使用的是Sigmoid函数,也称为Logit函数,因为它具有特殊的属性。 例如,

P(y=1|x;\theta) =g(\theta^Tx)= \frac{1}{1+e^{-\theta^Tx}}

(对于丑陋的公式表示我感到抱歉)。它对应的函数如下所示: enter image description here 因此,零确保值始终在线性区域上,使传播更加容易。


1
如果所有的权重都初始化为0,反向传播将不能按预期工作,因为中间神经元和起始神经元的梯度会消失(变成0),而且不会再更新。原因是,在神经网络的反向传递过程中,某个中间神经元的梯度会乘以从该神经元到下一层神经元的输出边上的权重,这个权重为0,因此该中间节点的梯度也为0。随后所有的权重都不会得到改善,模型最终只能纠正与输出神经元直接连接的权重。

0

这是否意味着,权重初始化为零的神经网络与普通的逻辑回归或只计算WX+b的单个神经元的神经网络一样好?


2
这不正确,因为您使用了某种激活函数(sigmoid、tanh等),从而使您获得了非线性。我认为,如果您将所有权重初始化为零,则每层将会有一个神经元,因为每层中所有神经元的权重都相等。 - Baskaya

0
在逻辑回归中,线性方程a = Wx + b,其中a是标量,W和x都是向量。对于权重向量W[i]中的单个维度,二元交叉熵损失相对于其的导数是x[i]的函数,当i不等于j时,这通常与x[j]不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接