我在卷积神经网络上阅读this interesting article。它显示了这个图像,解释了对于5x5像素/神经元的每个感受野,计算了隐藏值的值。
我们可以将max-pooling视为网络询问是否在图像区域中的任何位置找到给定特征的一种方式。然后它会丢弃确切的位置信息。
因此应用了max-pooling。
使用多个卷积层,它看起来像这样:
但我的问题是,整个架构可以用感知器构建,对吗?
对于每个卷积层,需要一个感知器,层数:
input_size = 5x5;
hidden_size = 10; e.g.
output_size = 1;
然后,对于原始图像中的每个感受野,将5×5区域输入到感知器中以输出隐藏层中的神经元的值。因此,基本上每个接受领域都这样做:
因此,相同的感知器使用24x24次构建隐藏层,因为:
我们将对24×24隐藏神经元中的每一个使用相同的权重和偏差。
这也适用于池层的隐藏层,input_size = 2x2;
output_size = 1;
。对于max-pool图层,它只是数组上的max()
函数。
然后最后:
网络中的最后一层连接是完全连接的 层。也就是说,该层连接来自max-pooled的每个神经元 分层到10个输出神经元中的每一个。
这又是一个感知者。
所以我的最终架构看起来像这样:
-> 1 perceptron for every convolutional layer/feature map
-> run this perceptron for every receptive field to create feature map
-> 1 perceptron for every pooling layer
-> run this perceptron for every field in the feature map to create a pooling layer
-> finally input the values of the pooling layer in a regular ALL to ALL perceptron
还是我在监督什么?或者这已经是他们的编程方式了吗?
答案 0 :(得分:0)
答案很大程度上取决于您究竟叫什么感知器。常用选项是:
完整的体系结构。然后否,仅仅是因为根据定义,它是一个不同的NN。
单个神经元的模型,特别是y = 1 if (w.x + b) > 0 else 0
,其中x
是神经元的输入,w
和b
是其可训练参数,{ {1}}表示点积。然后是,您可以强制这些感知器中的一堆共享权重并将其称为CNN。您会在binary neural networks中找到此想法的变体。
A training algorithm,通常与Perceptron架构相关。这对这个问题毫无意义,因为学习算法原则上与体系结构正交。尽管您无法真正将Perceptron算法用于具有隐藏层的任何事物,但在这种情况下建议否作为答案。
与原始感知器相关的损失函数。 Peceptron的这个概念与眼前的问题是正交的,您对CNN的损失函数取决于您对整个模型所做的任何尝试。您最终可以使用它,但是它是不可区分的,所以祝您好运:-)
旁注:您可以看到人们将具有隐藏层的前馈,完全连接的NN称为“多层感知器”(MLP)。这是用词不当,MLP中没有感知器,请参见on Wikipedia这个讨论-除非您去探索一些非常奇怪的想法。将这些网络称为多层线性逻辑回归是有意义的,因为这是它们过去的组成。直到大约6年前。