什么情况下可以将所有权重初始化为零

数据挖掘 机器学习 神经网络 深度学习 成本函数 权重初始化
2021-10-10 13:54:38

我参加了一些机器学习的在线课程,总的来说,建议是为神经网络选择随机权重,以确保你的神经元不会都学习相同的东西,从而打破对称性。

但是,在其他情况下,我看到人们使用零权重进行初始化。不幸的是,我不记得那些是什么。我认为这可能是非神经网络案例,例如简单的线性或逻辑回归模型(仅在输入上的简单权重,直接导致输出)。

这些情况对于零初始化是否安全?或者,我们是否也可以在这些情况下使用随机初始化来保持一致?

2个回答

只要你有一个凸成本函数,你就可以将你的权重初始化为零。如果您将 MSE 用于逻辑回归,逻辑回归和线性回归的成本函数具有凸成本函数,还有RSS、线性回归和交叉熵用于逻辑回归。主要思想是,对于凸成本函数,您将只有一个最佳点,从哪里开始并不重要,起点只是改变达到该最佳点的时期数,而对于神经网络,成本函数确实如此不只有一个最佳点。看看这里. 关于随机初始化,您必须考虑不允许选择太小或太大的随机权重,尽管前者是一个更重要的问题。如果您选择随机的小权重,您可能会遇到梯度消失问题,这可能会导致网络无法学习。因此,您必须使用标准的初始化方法,例如HeGlorot,看看这里了解训练深度前馈神经网络的难度

另外,看看下面的问题。

将权重归零会禁用它们。是的,零张量有多种应用(例如您提到的凸成本函数)。让我们以神经网络(NNs)为例,看看数学是否给了我们更多的直觉:

tensor÷0=undefinedtensor0=0tensor0=0

示例图 #1:如何禁用连接到输出层的单个突触?

                                                            

数学示例:让X是形状 (1,2) 的输入张量。W是形状为 (2,1) 的权重张量。点积这里用象征。

如果张量中的所有元素W为零:

X=[11]   W=[0][0] 

XW=[0]

如果张量中的所有元素W随机初始化(-1 和 1 之间):

X=[11]   W=[0.24660266][0.05121049] 

XW=[0.29781315]

如果张量中有一个元素W随机设置为零:

X=[11]   W=[0][0.05121049] 

XW=[0.05121049]

啊哈,有点直觉!设置权重向量的一个元素W为零以禁用它。

示例图 #2:随着复杂性的增加,我们对架构的潜在失控也会增加。

当您需要调整细节时,拥有以单位为基础更改节点和边的工具非常重要。零权重为您提供了这种能力。

这个想法推广到 CNNs、GANs、RNNs 等。看看特定的算法并逐层进行。设计师想要完成什么?