目录
卷积神经网络——基本概念
卷积神经网络(Convolutional Neural Network,CNN)的主要应用领域是图像分析处理,如人脸识别、物体识别等
神经网络
神经元模型
模型示意图如下:
其中f为激活函数(activation function)
多层网络
多层前馈神经网络(multi-layer feedforward neural network)
-
输入层
接受外界输入,特征向量
-
隐藏层
对信号进行处理加工,可以有多层,后面一层在前面一层加工的基础上再进行进一步处理(前一层的输出作为后一层的输入)
-
输出层
输出最终结果
隐藏层和输出层都是拥有激活函数的功能神经元
反向传播(西瓜书搬运)
误差逆传播(error BackPropagation,BP),BP算法基于梯度下降策略
什么是梯度下降(gradient descent)?
代价函数(cost function)是衡量预测结果和真实值之间偏差的函数,训练的目的是通过修正参数θ最小化代价函数(optimization),(此处参数θ,可理解上文提到的连接权和阈值)
梯度是一个向量,它的几何意义是,多元函数在某点处函数值变化最快的方向,梯度的模是方向导数的最大值,因此梯度下降,可以理解为沿着使得代价函数减小最快的方向更新参数θ的过程
ps:如果不好理解可以先试着从代价函数为一元函数出发,某一点出导数(切线),具体看一下代价函数和参数是如何变化的
示例网络结构如下图所示,这里仅以隐藏层到输出层一个权重参数whj为例
对于反向传播的理解
- 所谓反向相对于正向,正向也就是从输入特征值到预测结果的方向,通过隐藏层各层权重以及激活函数得到最终的预测结果
- 计算代价函数关于参数的梯度,是一个从后向前的过程(复合函数求导)
过拟合
神经网络的拟合能力太过强大,可能会很严格的拟合训练集上的每一条数据,但在测试集上的表现不尽人意
解决方法:早停(early stopping)、正则化(regularization)
早停:一边训练一边检测模型在训练数据集和测试数据集上的表现,若在训练集上的表现很好,但在测试集上的表现效果出现下降,则可能出现了过拟合,找到临界点停止训练即可
正则化:在代价函数中增加用于描述网络复杂程度的部分
卷积神经网络(CNN)
为什么提出CNN
对于图像的处理,若使用传统的全连接神经网络模型,会面临的问题有
-
要将图片展开成一个向量,需要规模非常大的权重矩阵(参数)
如:64 * 64 * 3的图像,作为输入展开为一个12288维的向量,假设隐藏层有100个神经元,则全连接需要的权重矩阵为1228800,而64 * 64 *3仅是一个比较小的图像,而且仅考虑了一层隐藏层。试想图像为1000 * 1000 * 3,隐藏层神经元为1000,有多个隐藏层......在这样的情况下,传统神经网络模型需要的参数是非常非常大的。很难获得足够多的数据避免神经网络过拟合。
-
对计算量和内存要求提出了挑战
总之,对于计算机视觉方面,使用传统神经网络由于参数过多而不可行。为了解决传统神经网络在计算机视觉方面的不好表现,提出了卷积神经网络。
什么是CNN
简单理解:
直接将图片作为一个输入矩阵,确定一个卷积核(过滤器),在图片上做卷积运算,得出来一个矩阵,这个矩阵能够帮助我们提取出图片的一些特征,进而从图片中获取我们需要的信息。卷积运算是以卷积核作为窗口,以特定步长进行矩阵内积的运算。显然,确定卷积核是提取图像特征的关键,卷积神经网络将卷积核作为参数,通过大量数据对卷积核进行训练,在提取出图片中需要的特征信息的基础上,实现某个计算机视觉的目标。
卷积的过程
输入图像为7 * 7 * 3,3通道RGB图像
对每一个通道指定一个卷积核,卷积核大小为3*3,对整个图像来说,卷积核为3 * 3 * 3,即为一个过滤器(filter),一个过滤器在一个图像上应用卷积再加上偏置得出一个特征图
注意此处的计算细节,x0 * w0 + x1 * w1 + x2 * w2 + b0 = o0
相关概念
-
卷积核
可以理解为权重,也就是滑动窗口
每张图片不同位置对于识别这张图片的权重贡献是不同的,图片中有的地方对于识别图片很关键,那么这一点处的权重就大,反之则小。
卷积核是k阶矩阵,而k通常是奇数,原因是
- 奇数阶矩阵存在一个中心点,中心像素点
- 在边缘填充时,计算padding可能会用到k,如果k为奇数,则刚好是对称填充,否则填充不对称
-
滑动窗口步长
卷积核一次移动几个单位
-
边缘填充
- 原因1:在计算特征图的过程中,处于边缘位置的像素点参与计算的次数要比处于中间位置的像素点次数少,为了减少这种差异,为原始数据图像增加一层边界,填充为0。
- 原因2:原始图片经过一层卷积就会变小一点,如果不想让图片经过多层卷积之后变得很小,加padding是一种解决方法,图片经过一次卷积之后大小变成(n-f+1)*(n-f+1),n为原始图片大小,f为卷积核大小
-
特征图
一个原始图片在一个卷积核的作用下生成一个特征图,卷积核可以有多个
-
卷积结果计算公式
池化
池化是为了在保留图像特征的前提下,压缩特征值,减小数据规模
最大池化,在卷积之后,对特征图在某个区域中选择最大值
全连接
相当于一个传统神经网络层,先将卷积池化得到的结果展成一个1*n的向量,在对应到要分类的一个向量
标签:函数,卷积,CNN,神经网络,初识,图像,cnn,图片 From: https://www.cnblogs.com/dctwan/p/17051965.html