卷积神经网络与图像识别基本概念
来源:互联网 发布:网站源码可以干吗 编辑:程序博客网 时间:2024/04/30 13:33
此文同步到 : 卷积神经网络与图像识别基本概念
一 卷积神经网络的组成
图像分类可以认为是给定一副测试图片作为输入
属于哪一类。参数 W 是图像的宽度,H 是高度,C 是通道的个数;彩色图像中 C = 3,灰度图像
中 C = 1。一般的会设定总共类别的个数,例如在ImageNet竞赛中总共有 1000 个类别;在CIFAR10 中有 10 个类别。卷积神经网络则可以看成这样的黑匣子。输入是原始图片 I,输出是 L 维的向量
单类别识别问题,也就是说每一幅图像只分配 L 个标签中的一个标签,那么可以对 v 中的元素进行比较,选取最大的值对应的标签作为分类的结果。v 可以是一个概率分布的形式,即每一个元素
二 网络的前段
前段指 的是对图像数据的处理,可以称之为数据层。
2.1 数据裁减
输入的图像的大小可能各不相同,有一些图像的分辨率较大,有一些比较小。而且长宽比也不一定会一样。对于这样的不一致性,理论上而言,可以不予处理,但是这要求网络中其他的层次支持这样的输入。目前大部分情况下采用的是通过裁剪的方法使得输出的图像是固定分辨率的。
在网络训练的阶段,裁剪的位置从原始的图像上随机选择,只需要满足裁剪
的子图完全落在图像中即可。通过随机的方式,是因为相当于增加了额外的数据,能够缓解过拟合的问题。
2.2 颜色干扰
裁剪之后的原图,每一个像素的是 0 到 255 的固定的数值。进一步的处理,包括减去均值,以及等比例缩放像素值使得像素值的分部基本在 [−1, 1] 之间。除了这些常规的操作之外,也会对图像进行归一化,相当于图像增强,比如 [9, 18, 17] 中对 CIFAR10 的数据预处理中。比如,对于每一个像素,随机选择 RGB 三个通道中的一个,然后在原像素值的基础上,随机添加一个从 [-20,20] 之间的数值。
三 网络的中段
以下介绍在卷及神经网络中常用的层的定义,即输入的数据 x 是什么维度,输出 y 是什么维度以及如何从输入得到输出。
3.1 卷积神经网络的基本组成
如下图:
3.2 卷积层
卷积层输入表示为
从输入到输出的一般公式为:
矩阵
符号
直观而言,卷积层相当于对图像进行滤波,希望能够抽象出来局部信息。局部信息通过较小的卷积核在图像不同的局部位置上扫描而得。
下图是是一个动态示例,来源于 convolutional-networks
3.3 池化层
输入的信号表示为
池化层是对每一个特征图单独进行操作并且输出一个对应的特征图。假设池化范围是
池化层的作用包括降低特征图的分辨率,从而减少计算量,以及增强网络的鲁棒性。比如对于最大化池化的方式,对于图像的平移具有一定的鲁棒性。
实例,对于如下特征图 4x4,使用最大池化效果如下:
图中每个像素点的值是上面各个格子的数值,然后要对这张 4*4的图片进行池化;那么采用最大池化也就是对上面 4*4的图片分块,每块大小为2*2,然后统计每个块的最大值,作为下采样后图片的像素值。
3.4 CCCP
CCCP层的输入是
等效于卷积核为 1x1的卷积层。
CCCP 层相当于在多个全连接层,每一个全连接将信号从 C 维度映射为
3.5 ReLU 层及相关变体
该层的输入认识是一个信号 x。ReLU 并不要求输入信号的维度必须是一维或者几维的,因为该层的操作是对输出的每一个元素单独操作。但依然可以认为输入的
假设从输入到输出的一个示例为:
显然这是一个非线性操作,ReLU 的存在使得网络的表达更加丰富。同时从定义中容易得出,该操作非常简单,并且在不同的输入点之间进行并行。ReLU 在一定程度上也是 S 行函数的近似。
进一步将ReLU改进为:
当元素值为负数的时候,通过
进一步使用修正的ReLu为:
其中斜率
3.6 Dropout层
Dropout层的输入为
其中
为 1。
然而在进行测试的时候,计算公式更正为
Dropout层的引入主要是为了减少过拟合的问题,减少不同参数的耦合性。
3.7 全连接层
输入时
其中
全连接层是一个非常常用的层,然而该层在一定程度上会损失图像的空间信息,故而在有一些网络中,抛弃了全连接层。
3.8 局部响应归一化(LRN)
LRN层做的事是对当前层的输出结果做平滑处理。下图是示例:
前后几层(对应位置的点)对中间这一层做一下平滑约束。
输入时一个三维信号
其中
3.9 批归一化层(Batch Normalization)
详细理解参考:Batch Normalization
批归一化层的输入依然是三维的信号
出 y 与输入具有相同的大小。其归一化的基本思路是对输入的每一个元素按照如下方式归一化:
使得输出的
其优点如下:
- 可以选择比较大的初始学习率,此算法有快速训练收敛的特性。
- 可以不用考虑过拟合中的 Dropout ,L2正则项选择问题,采用BN之后可以移除这两个参数,或者可以选择更小的L2正则约束参数了,因为BN具有提高网络泛化能力的特性。
- 不再需要局部响应归一化层,因为BN本身就是一个归一化网络层。
- 可以完全打乱训练数据,防止每批训练时某些样本经常被挑选到。
四 网络的末端
从网络训练的角度,末端主要是损失函数。也就是将数据映射为一个标量。通过随机梯度下降的方式,使得损失函数逐渐的降低。目前使用比较广泛的是 Softmax 回归和 Hinge 损失函数。
4.1 Softmax回归
较通俗易懂的理解Softmax回归的一篇博客是 Softmax回归
输入时
然后通过交叉熵定义损失值,也就是:
该损失函数主要应用与单类别分类问题中。
参考文章:
- 卷积神经网络CNN经典模型整理
- Batch Normalization 学习笔记
- 卷积神经网络入门学习2.0
- 卷积神经网络与图像识别基本概念
- 深度学习:卷积神经网络与图像识别基本概念
- 深度学习:卷积神经网络与图像识别基本概念
- 卷积神经网络用于图像识别
- 图像识别和卷积神经网络架构原理
- lecture5-对象识别与卷积神经网络
- 深度学习与卷积神经网络--识别鸟
- cs231n 用卷积神经网络来进行图像识别
- 神经网络 与 卷积神经网络
- 卷积神经网络CNN(1)——图像卷积与反卷积(后卷积,转置卷积)
- 卷积神经网络CNN(1)——图像卷积与反卷积(后卷积,转置卷积)
- 【TensorFlow】第三课 卷积神经网络与图像应用
- tensorflow&卷积神经网络&字符识别
- 卷积神经网络-图像卷积的概念
- 卷积神经网络_图像卷积解释
- 深度卷积神经网络CNNs的多GPU并行框架 及其在图像识别的应用
- 神经网络入门(二)卷积网络在图像识别的应用
- 卷积神经网络CNN基本概念笔记[转载]
- 使用scipy进行层次聚类和k-means聚类
- RecyclerView实现的弹幕之中文DOC
- Dialog与PopWindow
- PHP-冒泡排序算法封装
- Eclipse编码格式
- 卷积神经网络与图像识别基本概念
- qqqqqqqqqqqqqqqqqqqqqqqqqq
- PHP读取excel文档
- 升压恒流驱动 120W大功率驱动
- Mybatis的mapper.xml的传值和<if></if>标签的使用(学习分享)
- css中的ul>li
- 判断语句switch - case 和if - else
- 深入理解HTTP Session
- GCD入门(三): Dispatch Sources( 含demo)