为什么神经网络中的权重随机初始化有效?

关于为什么神经网络的权重不能初始化为0的问题已经被问过很多次了。答案很简单:如果初始权重为零,那么同一层的节点将学习到相同的东西,因此必须打破这种对称性。

然而,我无法理解的是,为什么将权重初始化为接近零的随机数会有效。即使是更高级的初始化技术,如Xavier,也只是调整了方差,而方差仍然接近零。链接中的一些回答提到存在多个局部最优解,但我严重怀疑这个论点的有效性,原因如下:

单个逻辑回归的(常见)成本函数有一个唯一的极小值。然而,这个见解可能无法推广到多个节点,所以我们暂时先忽略它。

为了讨论方便,假设存在多个局部最优解。那么,适当的随机化技术难道不应该是类似蒙特卡洛的方法,覆盖所有可能权重的整个范围,而不是在零附近的一些随机微小偏差吗?是什么阻止了权重在几次迭代后再次收敛呢?我能想到的唯一理由是,原点处存在一个全局最大值,所有局部最优解都很好地以“辐射”方式分布,因此在任何方向上的微小扰动都足以让你沿着梯度向不同的局部最优解移动,这一点非常不可能。

PS1: 我在主要的Stack Overflow网站上提问,因为我的参考资料在这里。

PS2: 为什么初始权重的方差按这种方式缩放的答案可以在这里找到这里。然而,这并没有解决我的问题,即为什么随机初始化会有效,因为权重可能会收敛,或者更确切地说,权重会“发散”以“学习”不同的特征。


回答:

你已经触及了主要原因:我们需要核(节点)有所不同,以便它们能够区分学习内容。

首先,随机初始化并不总是有效;根据你对模型结构和超参数的调整程度,有时模型无法收敛;这从早期迭代的损失函数中可以明显看出。

对于某些应用,确实存在局部最小值。然而,在实际使用中,问题复杂性的积极结果是,这些最小值的准确性非常相似。简而言之,我们找到哪个解并不重要,只要我们找到了一个解即可。例如,在图像分类中(如ImageNet比赛),有很多特征对识别照片有用。就像(更简单的)主成分分析一样,当我们有一组与期望输出高度相关的特征,并且这些特征之间也高度相关时,我们使用哪一组并不重要。这些特征相当于CNN的核。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注