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

时间:2020-05-12 06:23:44

标签: python machine-learning neural-network feed-forward

我对神经网络的工作原理一无所知,并提出了一些相互联系的问题,但我找不到答案。

考虑单层前馈神经网络:如果每个隐藏层神经元的功能相同

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

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

我确实不理解神经元之间手动建立的连接点。如图Manually established connections between neurons所示,通过这种方式,我们定义了功能的可能功能(即,房屋大小和卧室数量加在一起可能表示房屋可以容纳的家庭人数)。但是完全连接的网络对我来说毫无意义。

我认为完全连接的神经网络应该以某种方式自动定义,哪些功能有意义,但是如何实现?

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

1 个答案:

答案 0 :(得分:1)

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

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

为什么要增加神经元数量才能提高模型预测的准确性?

这仅是部分正确,增加神经元数量应提高您的训练准确性(这是验证和测试性能的另一种游戏)。通过添加单位,您的模型能够存储其他信息或将异常值合并到您的网络中,从而提高预测的准确性。考虑一个2D问题(预测每平方米房屋价格超过某些物业的平方米)。使用两个参数可以拟合一条直线,使用三个参数可以拟合一条曲线,依此类推,参数越多,曲线就可以越复杂,并且可以通过每个训练点拟合。

深入了解next step很棒-Karpathy在斯坦福大学的计算机视觉讲座。