【问题标题】:Feature extraction using convolutional neural network?使用卷积神经网络进行特征提取?
【发布时间】:2012-01-12 21:51:15
【问题描述】:
我的数字识别有问题。在特征提取部分,我必须使用一些卷积掩码(如link 中的图 4.23)来获取特征图和输出。但是,我不知道我需要什么样的口罩以及如何获得口罩? (在一些论文中,也许他们使用了反向传播,但我不知道如何使用它)你能告诉我这部分使用的一些掩码,或者如何获得它们吗?
非常感谢!欢迎任何建议!
【问题讨论】:
标签:
image-processing
machine-learning
【解决方案1】:
反向传播是在设置架构后训练您的神经网络。我从未将神经网络用于数字识别问题,但这里有一个关于手写数字识别的链接:link。它有一些代码示例。
祝你好运。
【解决方案2】:
在 CNN 中,您通常将 2D 图像作为输入数据,例如 MNIST 中的黑白 28x28x1(水平、垂直、通道)数字。
然后您创建一个 2d 内核(例如 3x3 内核),它以定义的 步幅(每一步水平/垂直移动多少像素)和 滑过输入图像像素>padding(在所有边上添加多少值为 0 的像素,以使滑动内核中心在到达其边界时能够覆盖图像的每个像素)。
假设使用的 Kernel=3x3,Padding=1,Stride=1。
这个内核在滑动时应用在卷积中,也会生成一个 28x28 的图像,其中每个像素是内核与输入图像不同区域的卷积。
如果您创建 16 个内核而不是仅一个内核,则在卷积之后您将获得 16 个 28x28 图像,每一个代表图像的不同“模式”。 “模式”是每个内核内部的内容。
CNN 通过监督训练中的反向传播,将自动学习放入每个内核的值。例如,一个内核的格式可以是
000
111
000
表示它将检测水平线。
我认为内核就是您所说的掩码。
最后,可以将所有 16 张 28x28 的图像拼接起来形成一些特征,这些特征可以作为全连接层的输入,得到分类输出。
请注意,这个解释非常简单,因为它跳过了一些段落(深度卷积、池化等),但我希望它足以解决您的疑问。