实施卷积网络有2种不同的想法,这些想法中是否有任何错误?

时间:2018-12-28 10:23:22

标签: neural-network conv-neural-network

在阅读了卷积网络之后,我有两种不同的实现方式,但是我不知道是否遇到一些逻辑错误,或者它们中的任何一个都将无法工作,因为我是这个主题的新手:

第一个是我读过的经典文章: 一层由输出特征图所具有的许多神经元组成。 神经元共享一个n * n内核的权重,因此没有实际的滑动,但是整个图片被“一次”处理(我知道它仍然是顺序的)。 这意味着网络将在每个步骤中生成一个功能图并使用池化功能。在所有卷积层和池化层之后,完全连接的网络将所有要素映射值作为输入矢量进行进一步处理。 对于反向传播,完全连接的部分很清楚:简单的梯度下降。 我认为卷积部分有些棘手: 对于每个内核输出,通过全连接部分的反向传播计算的错误需要通过卷积部分进行反向传播。我希望到目前为止是对的

第二个是一些思考的结果: 我不能只是让不同的神经元是不同的内核吗? 这意味着1个神经元具有n * n个权重矩阵。 在每个步骤中,该层为每个给定内核生成1个像素 这意味着网络需要与图片一样多的步骤。

全连接层的反向传播保持不变, 因此,将赋予卷积层的误差也应该相同。由于每个神经元的权重增量是输入*梯度(*学习率)的总和,因此结果应该相同。

这里有什么错误吗?我尝试在此处保留经典网络的布局,以使其简单并重用旧的冷库,因此任何建议都将有所帮助。 我计划通过将卷积层定义为单独的网络来实现此目的,其中的1个层可以计算每个步骤,而1个网络则代表完全连接层的最后阶段

预先感谢您:)

0 个答案:

没有答案