我对神经网络的运作有了一个大致的了解,并提出了一些相互关联的问题,但我无法找到答案。
考虑一个隐藏层的前馈神经网络:如果每个隐藏层神经元的函数是相同的
a1 = relu (w1x1+w2x2), a2=relu(w3x1+w4x2), ...
我们如何让模型学习不同的权重值?
我理解人工建立神经元之间的连接的意义。如图所示神经元之间的人工建立连接,这种方式我们定义了可能的函数组合(例如,房屋大小和卧室数量一起可能代表房屋可以容纳的家庭大小)。但完全连接的网络对我来说不太合理。
我明白完全连接的神经网络应该自动定义哪些函数组合有意义,但它是如何做到的呢?
无法回答这个问题,我也不明白为什么增加神经元的数量会提高模型预测的准确性?
回答:
我们如何让模型学习不同的权重值?
通过在训练开始前初始化参数。对于完全连接的神经网络,否则我们会在每个参数上进行相同的更新步骤——这就是你的困惑所在。初始化可以是随机的,也可以是更复杂的(例如Glorot),这样可以解决这个问题。
为什么增加神经元的数量会提高模型预测的准确性?
这只是部分正确的,增加神经元的数量应该会提高你的训练准确性(对于验证和测试性能来说是不同的情况)。通过增加单元,你的模型能够存储额外的信息或将异常值纳入你的网络,从而提高预测的准确性。想象一个二维问题(根据某物业的平方米数预测每平方米的房价)。用两个参数你可以拟合一条直线,用三个参数可以拟合一条曲线,依此类推,参数越多,你的曲线可以变得越复杂,并通过每个训练点进行拟合。
深入了解的下一步 – 斯坦福大学Karpathy关于计算机视觉的讲座。