概述
卷积神经网络(CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络”。
卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程要求。
特点:在于隐藏层分为卷积层和池化层(pooling layer),又叫下采样层)以及激活层(激励层)。
结构
卷积神经网络大体可以分为五层:输入层、卷积层、激活层、池化层、全连接FC层。(或输入层,隐含层(包括:卷积层(convolutional layer)、池化层(pooling layer)、Inception模块(Inception module)、全连接层(fully-connected layer))和输出层)
一、输入层
卷积神经网络的输入层直接接收二维视觉模式,如二维图像。可以不再需要人工参与提取合适的特征作为输入,它自动地从原始图像数据提取特征、学习分类器,可大大减少开发的复杂性,有助于学习与当前分类任务最为有效的视觉特征。
与传统神经网络/机器学习一样,模型需要输入的进行预处理操作,常见的输入层中对图像预处理方式有:
- 均值化: 把输入数据各个维度都中心化到0,所有样本求和求平均,然后用所有的样本减去这个均值样本就是去均值。
- 归一化: 数据幅度归一化到同样的范围,对于每个特征而言,范围最好是 [-1, 1]。
- PCA/白化: 用PCA降维,让每个维度的相关度取消,特征和特征之间是相互独立的。白化是对数据每个特征轴上的幅度归一化。
(如下图)
二、 卷积层、 激活层 、 池化层、 全连接层
下面我们来了解一下相关内容:
-
首先,我们大体看看各自的作用:
• 卷积层:通过在原始图像上平移来提取特征
• 激活层:增加非线性分割能力
• 池化层:(包括最大池化和平均池化)通过特征后稀疏参数来减少学习的参数,降低网络的复杂度,为了能够达到分类效果
• 全连接层(FC):也就是最后的输出层,进行损失计算分类。 -
然后我们来看看卷积层的相关内容:
-
卷积思想
我认为,卷积思想来自局部感知:
人的大脑识别图片的过程中,并不是一下子整张图同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。 -
卷积层
• 卷积神经网络中每层卷积层由若干卷积单元(卷积核)组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的。
• 卷积核: 就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。
提到卷积核,就不得不提卷积核的四大要素:
• 卷积运算的目的 :提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。
-
接下来看看池化层:
池化层(Pooling),也称为欠采样或下采样。
作用:主要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。主要有:
Max Pooling:最大池化
Average Pooling:平均池化 -
最后看看激励层(激活层):
所谓激励,实际上就是对卷积层的输出结果做一次非线性映射。
如果不用激励函数(其实就相当于激励函数是f(x)=x),这种情况下,每一层的输出都是上一层输入的线性函数。容易得出,无论有多少神经网络层,输出都是输入的线性组合,与没有隐层的效果是一样的,这就是最原始的感知机(感知机是集语音、文字、手语、人脸、表情、唇读、头势、体势等多通道为一体的,并对这些通道的信息进行编码、压缩、集成、融合的计算机智能接口系统)了。
常用的激励函数有:
Sigmoid函数
Tanh函数
ReLU
Leaky ReLU
ELU
Maxout
卷积神经网络的应用
• 目标检测
• 目标定位
• 滑窗检测
• YOLO算法
• R-CNN
• 人脸识别
• Siamese网络
• Triplet损失
• 神经风格转换
( 部分内容节选自百度百科、网址:https://www.cnblogs.com/wj-1314/p/9593364.html 网址:https://www.jianshu.com/p/f155bd970fc5)
目前只了解了这些,之后随着学习会补充哒!