我参加了一些机器学习的在线课程,总的来说,建议是为神经网络选择随机权重,以确保你的神经元不会都学习相同的东西,从而打破对称性。
但是,在其他情况下,我看到人们使用零权重进行初始化。不幸的是,我不记得那些是什么。我认为这可能是非神经网络案例,例如简单的线性或逻辑回归模型(仅在输入上的简单权重,直接导致输出)。
这些情况对于零初始化是否安全?或者,我们是否也可以在这些情况下使用随机初始化来保持一致?
我参加了一些机器学习的在线课程,总的来说,建议是为神经网络选择随机权重,以确保你的神经元不会都学习相同的东西,从而打破对称性。
但是,在其他情况下,我看到人们使用零权重进行初始化。不幸的是,我不记得那些是什么。我认为这可能是非神经网络案例,例如简单的线性或逻辑回归模型(仅在输入上的简单权重,直接导致输出)。
这些情况对于零初始化是否安全?或者,我们是否也可以在这些情况下使用随机初始化来保持一致?
只要你有一个凸成本函数,你就可以将你的权重初始化为零。如果您将 MSE 用于逻辑回归,逻辑回归和线性回归的成本函数具有凸成本函数,还有RSS、线性回归和交叉熵用于逻辑回归。主要思想是,对于凸成本函数,您将只有一个最佳点,从哪里开始并不重要,起点只是改变达到该最佳点的时期数,而对于神经网络,成本函数确实如此不只有一个最佳点。看看这里. 关于随机初始化,您必须考虑不允许选择太小或太大的随机权重,尽管前者是一个更重要的问题。如果您选择随机的小权重,您可能会遇到梯度消失问题,这可能会导致网络无法学习。因此,您必须使用标准的初始化方法,例如He
或Glorot
,看看这里和了解训练深度前馈神经网络的难度。
另外,看看下面的问题。
将权重归零会禁用它们。是的,零张量有多种应用(例如您提到的凸成本函数)。让我们以神经网络(NNs)为例,看看数学是否给了我们更多的直觉:
示例图 #1:如何禁用连接到输出层的单个突触?
数学示例:让是形状 (1,2) 的输入张量。让是形状为 (2,1) 的权重张量。点积在这里用象征。
如果张量中的所有元素为零:
如果张量中的所有元素随机初始化(-1 和 1 之间):
如果张量中有一个元素随机设置为零:
啊哈,有点直觉!设置权重向量的一个元素为零以禁用它。
示例图 #2:随着复杂性的增加,我们对架构的潜在失控也会增加。
当您需要调整细节时,拥有以单位为基础更改节点和边的工具非常重要。零权重为您提供了这种能力。
这个想法推广到 CNNs、GANs、RNNs 等。看看特定的算法并逐层进行。设计师想要完成什么?