无法理解Conv网络中的过滤器如何计算
问题描述:
我一直在研究机器学习4个月,并且理解MLP背后的概念。当我开始阅读卷积神经网络时,问题就出现了。让我告诉你我知道什么,然后问我遇到什么麻烦。无法理解Conv网络中的过滤器如何计算
一个CNN的核心部分是:
- 卷积层:你的,你用它来生成“n”的特征映射过滤器数量“N”。
- RELU层:您使用它来规范化卷积层的输出。
- 子采样层:用于“生成”一个代表更抽象概念的新特征图。
有时重复前3层,最后一部分是通用分类器,如MLP。
我怀疑有以下几种:
- 如何创建的卷积层使用的过滤器?我必须创建一个过滤器,训练它,然后将它放入Conv层,还是使用反向传播算法进行训练?
- 想象一下,我有一个带3个过滤器的conv层,然后它会输出3个特征地图。应用RELU和Sub-sampling层后,我仍然会有3个特征地图(小图)。当再次通过Conv层时,我如何计算输出?我是否必须分别在每张特征地图中应用滤镜,或者对3张特征地图进行某种操作,然后进行求和?我不知道如何计算第二个Conv Layer的输出,以及它将输出多少个特征映射。
- 如何将数据从Conv层传递到MLP(用于NN中最后部分的分类)?
如果有人知道一个简单的CNN实现而不使用框架,我将不胜感激。我认为学习东西如何工作的最好方式是自己做。在另一次,当你已经知道东西是如何工作的时候,你可以使用框架,因为它们为你节省了很多时间。
答
- 您可以用反向传播算法训练它,就像训练MLP一样。
- 分别应用每个过滤器。例如,如果在第一个图层中有10个特征地图,并且第二个图层中的某个特征地图的滤波器形状为3 * 3,则将3 * 3滤镜应用于第一个图层中的10个特征地图中的每一个,每个特征图的权重是不同的,在这种情况下,一个过滤器将具有3 * 3 * 10的权重。为了更容易理解,请记住,非灰度图像的像素有三个值 - 红色,绿色和蓝色,所以如果您将图像传递到卷积神经网络,那么在输入图层中,您有3特征图(用于RGB),在接下来的层,一个值也将被连接的所有3名特征映射在第一层
- 你应该扁平化卷积特征图,例如,如果你有大小10个特征图5 * 5,那么你将有一个有250个值的图层,然后与MLP没什么区别,你可以通过权重将所有这些人造神经元连接到下一图层中的所有人造神经元。
Here有人已经实现了没有框架的卷积神经网络。
我也推荐你those讲座。
谢谢:D!我会看到这些讲座 – Malvrok