【发布时间】:2020-10-02 04:43:54
【问题描述】:
如果有 10 个特征和 1 个输出类(sigmoid 激活)具有回归目标:
如果我在我的第一个密集隐藏层中只使用 5 个神经元:第一个错误是否会仅基于训练特征集的一半来计算?是否必须将特征数与隐藏层 #1 中的神经元进行匹配,以便模型可以一次看到所有特征?否则它没有得到全貌?第一次 fwd 传播迭代将使用 10 个特征中的 5 个,并获得错误值(并在反向传播期间进行训练,假设批量梯度下降)。然后第 2 次 fwd 传播迭代将看到 10 个特征中剩余的 5 个具有更新的权重,并希望得到更小的误差。但它一次只能看到一半的功能!
相反,如果我有一个由 64 个神经元组成的卷积二维层。而我的训练形状是:(100, 28,28,1)(猫和狗的灰度图片),64 个神经元中的每一个会看到不同的 28x28 向量吗?不对,因为它一次只能通过前向传播发送一个示例?那么只有一张图片(猫或狗)应该跨越 64 个神经元?既然该层中的每个神经元都具有相同的过滤器、步幅、填充和激活函数,为什么要这样做呢?当你定义一个 Conv2D 层时……每个神经元的参数都是一样的。那么每个神经元只是训练示例的一部分吗?例如,为什么有 64 个神经元?只需要一个神经元,在其上使用一个过滤器,然后将其传递到第二个隐藏层,并使用另一个具有不同参数的过滤器!
请解释我的逻辑中的缺陷。非常感谢。
编辑:我刚刚意识到对于 Conv2D,您将训练数据集展平,使其成为一维向量,因此 28x28 图像意味着具有 724 个神经元的输入 conv2d 层。但是我仍然对密集的神经网络感到困惑(上面的第 1 段)
【问题讨论】:
标签: python tensorflow machine-learning deep-learning neural-network