【问题标题】:How do neural network models learn different weights for each of the neuron in a single layer?神经网络模型如何为单层中的每个神经元学习不同的权重?
【发布时间】:2020-05-12 06:23:44
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢您的回答!对于回归问题,我是否理解正确,由于 relus 的添加,结果函数将是一条折线(一条由几条线组成的线),并且该线的数量由单位数定义?
    • 我不会称其为断线。这是一个可能会变得更清晰的游乐场:playground.tensorflow.org
    猜你喜欢
    • 1970-01-01
    • 2014-08-01
    • 2016-07-11
    • 2016-09-02
    • 1970-01-01
    • 2019-03-15
    • 2011-08-17
    • 2020-10-29
    • 2018-10-17
    相关资源
    最近更新 更多