神经网络模型如何为单层中的每个神经元学习不同的权重?

How do neural network models learn different weights for each of the neuron in a single layer?

我对神经网络的工作原理有一个大致的了解,并提出了一些相互关联的问题,但我无法找到答案。

考虑一个隐藏层前馈神经网络:如果每个隐藏层神经元的函数都相同

a1 = relu (w1x1+w2x2), a2=relu(w3x1+w4x2), ...  

我们如何让模型学习不同的权重值?

我不明白神经元之间手动建立连接的意义。如图所示 Manually established connections between neurons,这样我们定义了函数的可能函数(即,房屋大小和卧室数量加在一起可能代表房子可能容纳的家庭人数)。但是全连接网络对我来说没有意义。

我明白了一个完全连接的神经网络应该以某种方式自动定义函数的哪些功能是有意义的,但它是如何做到的?

无法回答这个问题,我也不明白为什么要增加神经元的数量来提高模型预测的准确性

我们如何让模型学习不同的权重值?

通过在训练开始前初始化参数。在完全连接的神经网络的情况下,否则我们会对每个参数进行相同的更新步骤——这就是您的困惑所在。随机初始化或更复杂的初始化(例如 Glorot)解决了这个问题。

为什么增加神经元数量会增加模型预测的准确性?

这只是部分正确,增加神经元的数量应该会提高你的训练准确性(对于你的验证和测试性能来说这是一个不同的游戏)。通过添加单元,您的模型能够存储额外信息或将异常值合并到您的网络中,从而提高预测的准确性。考虑一个二维问题(预测每平方米的房屋奖品超过 属性 的平方米)。使用两个参数可以拟合一条线,使用三个参数可以拟合一条曲线等等,参数越多,您的曲线就越复杂,并且可以拟合每个训练点。

伟大的 next step 深入研究 - Karpathy 在斯坦福大学关于计算机视觉的讲座。