Python 神经网络隐藏层与卷积隐藏层

Python 神经网络隐藏层与卷积隐藏层,python,tensorflow,machine-learning,deep-learning,neural-network,Python,Tensorflow,Machine Learning,Deep Learning,Neural Network,如果有10个特征和1个输出类(sigmoid激活),且具有回归目标: 如果我在第一个密集隐藏层中只使用了5个神经元:第一个误差会仅仅基于训练特征集的一半来计算吗?难道不是必须将特征的#与隐藏层#1中的神经元进行匹配,以便模型可以一次看到所有特征吗?否则就不能了解全部情况了?第一次fwd传播迭代将使用10个特征中的5个,并获得错误值(并在后推过程中进行训练,假设批量梯度下降)。然后,第二次fwd传播迭代将看到10个特征中的其余5个具有更新的权重,并有望获得较小的误差。但一次只能看到一半的功能 相反

如果有10个特征和1个输出类(sigmoid激活),且具有回归目标:

如果我在第一个密集隐藏层中只使用了5个神经元:第一个误差会仅仅基于训练特征集的一半来计算吗?难道不是必须将特征的#与隐藏层#1中的神经元进行匹配,以便模型可以一次看到所有特征吗?否则就不能了解全部情况了?第一次fwd传播迭代将使用10个特征中的5个,并获得错误值(并在后推过程中进行训练,假设批量梯度下降)。然后,第二次fwd传播迭代将看到10个特征中的其余5个具有更新的权重,并有望获得较小的误差。但一次只能看到一半的功能

相反,如果我有一个由64个神经元组成的二维卷积层。我的训练形状是:(100,28,28,1)(灰阶猫和狗的图片),64个神经元中的每一个都会看到不同的28x28向量吗?不对,因为它一次只能通过正向传播发送一个示例?那么,在64个神经元中只需要一张图片(猫或狗)就可以了?既然该层中的每一个神经元都有相同的过滤、步幅、填充和激活功能,你为什么要这样做?定义Conv2D层时,每个神经元的参数都是相同的。那么,每个神经元中是否只包含了训练示例的一部分?例如,为什么有64个神经元?只要有一个神经元,在它上面使用一个过滤器,然后用另一个不同参数的过滤器将它传递到第二个隐藏层

请解释一下我逻辑上的缺陷。非常感谢

编辑:我刚刚意识到,对于Conv2D,您可以将训练数据集展平,使其成为1D向量,因此28x28图像意味着输入Conv2D层有724个神经元。但是我仍然对密集的神经网络感到困惑(上面第1段)

你的“第一”层是什么? 通常,您有一个输入层作为第一层,它不包含任何权重。 输入层的形状必须与要素数据的形状匹配。 因此,基本上,当您训练一个具有10个特征的模型,但只有一个输入层的形状
(无,5)
(其中无表示批次大小),tensorflow将引发一个异常,因为它需要正确形状的所有输入的数据

所以你说的不会发生。如果您只有5个功能,那么接下来的5个功能将无法在下一次迭代中放入网络,但是,下一个示例将被发送到模型。(假设没有抛出异常)因此,对于下一个示例,也仅使用前5个特性

您可以使用
input\u层
作为具有正确特征形状的第一层。然后作为secodn层,你可以使用任何你喜欢的形状,1,10100个密集的神经元,这取决于你(当然也取决于你的工作原理)输出的形状必须再次匹配(这次)标签数据的形状

我希望这能让事情变得更清楚