CNN基础
基于卷积神经网络的深度学习技术可以实现对图像的高准确率识别。卷积神经网络主要应用于计算机视觉相关任务,但它能处理的任务并不局限于图像,其实语音识别也是可以使用卷积神经网络。
将使用MNIST手写数字、cifar10图像数据以及猫狗图像识别数据来进行举例说明。
当计算机看到一张图像(输入一张图像)时,它看到的是一大堆像素值。当我们人类对图像进行分类时,这些数字毫无用处,可它们却是计算机可获得的唯一输入。
现在的问题是:当你提供给计算机这一组数据后,它将输出描述该图像属于某一特定分类的概率的数字(比如:80%是猫、15%是狗、5%是鸟)。
我们人类是通过特征来区分猫和狗,现在想要计算机能够区分开猫和狗图片,就要计算机搞清楚猫猫狗狗各自的特有特征。
计算机可以通过寻找诸如边缘和曲线之类的低级特点来分类图片,继而通过一系列卷积层建构出更为抽象的概念。这是CNN(卷积神经网络)工作方式的大体概述。
为什么叫卷积神经网络?
CNN的确是从视觉皮层的生物学上获得启发的。简单来说:视觉皮层有小部分细胞对特定部分的视觉区域敏感。
例如:一些神经元只对垂直边缘兴奋,另一些对水平或对角边缘兴奋。
CNN工作概述
使用激活函数(比如relu)使其非线性化。
最终得到输出,那就像前面所说,输出最好是可以描述图像内容的一个单独分类或一组分类的概率。
什么是卷积?
卷积是指将卷积核应用到某个张量的所有点上,通过将卷积核在输入的张量上滑动而生成经过滤波处理的张量。
一个卷积提取特征的例子:图像的边缘检测
卷积核:边缘提取卷积算子
-1 | -1 | -1 |
---|---|---|
-1 | 8 | -1 |
-1 | -1 | -1 |
应用到图像的每个像素,结果输出一个刻画了所有边缘的新图像。
总结:卷积完成的是对图像特征的提取或者说是信息匹配,当一个包含某些特征的图像经过一个卷积核的时候,一些卷积核被激活,输出特定信号。
我们训练区分猫和狗图像的时候,卷积核会被训练,训练的结果是,卷积核会对猫和狗不同特征敏感,输出不同的结果,从而达到了图像识别的目的。
CNN架构
卷积层 | conv2d |
---|---|
非线性变换层 | relu/sigmoid/tanh |
池化层 | pooling2d |
全连接层 | w*x+b |
如果没有这些层,模型很难与复杂模式匹配,因为网络将有过多的信息填充,也就是其他那些层作用就是突出重点信息,降低噪声。
卷积层
ksize | 卷积核大小 |
---|---|
strides | 卷积核移动跨度(步距) |
padding | 边缘填充 |
filters | 卷积之后图片厚度或者是卷积核个数 |
池化层
最大池化和平均池化
池化核、步距、边缘填充
变厚就是卷积提取特征过程
变小就是池化降低维度过程
想要了解更多详细内容请关注下面公众号,获取更多资讯。