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