卷积神经网络,卷积矩阵(内核)

Convolutional Neural Networks, Matrix of Convolutional (Kernel)

下午好!在卷积神经网络(输入层)输入的第一阶段,我们收到源图像(因此是手写英文字母的图像)。首先,我们使用 nxn window 从左到右扫描图像并在内核(卷积矩阵)上乘法以构建特征图?但是没有地方写过内核应该有什么确切的值(换句话说,我应该乘以从 n*n window 检索到的数据的内核值)。在这个用于边缘检测的卷积核上乘以数据是否合适?有无数的卷积核(浮雕、高斯滤波器、边缘检测、角度检测等)?但是没有地方写入需要乘以检测手写符号的数据的确切内核。

Sample of Edge detection 3*3 kernel

Convolutional operation for multiplication on kernel

另外,如果整张图片的尺寸是30*30,是否可以使用5*5的window来构建feature maps?是否足以达到最佳的字母检测精度?

为了字母识别的最大精度,最好在什么确切的内核上乘以整个图像的面积?或者最初内核中的所有值都等于 0?我还可以问一下,应用什么公式或规则来检测构建特征图的总体需求量?或者如果任务是英语字母识别,那么在特征图构建过程的每个阶段都必须有 25 个特征图?谢谢回复!

在 CNN 中,卷积核是一个共享权重矩阵,其学习方式与其他权重类似。它以相同的方式初始化,具有较小的随机值,并且来自反向传播的权重增量在接收其输出的所有特征上求和(即通常所有 "pixels" 在卷积层的输出中)

典型的随机内核的性能有点像边缘检测器。

训练完成后,可以显示第一个CNN层,如果熟悉图像处理,通常会学到一些可以解释的内核

这里有一个关于正在学习的内核特性的动画视图:http://cs.nyu.edu/~yann/research/sparse/

简而言之,你的答案是:不需要寻找正确的内核来使用。而是寻找一个 CNN 库,您可以在其中设置参数(例如卷积层数),并研究在学习时查看内核的方式 - 大多数 CNN 库都会有一个记录的方式来可视化它们。