CNN
Convolutional Neural Network
1. 输入层
原始图片,在计算机内用构成像素点的多维矩阵来表示。
2. 隐层
convolution卷积:过滤特征
ReLU线性修正单元:激活函数
polling池化:降低维度并提高模型的容错性
降低模型的参数数目
局部感知野:每个神经元只需要对局部图像进行感知,然后在更高层将局部的信息综合起来得到全局的信息;
权值共享:对于每一层来讲,所有神经元对应的权值参数是一样的,同一层下的神经元连接参数只与特征提取的方式有关,而与具体的位置无关。
第一层隐层一般是用来做边缘和曲线检测
第二层隐层对第一层学到的边缘曲线组合得到的一些特征
第三层则会学到一些更复杂的特征
ReLU激活函数
引入非线性激励函数,深层网络具有意义(不再是输入的线性组合,可以逼近任意函数)
为什么采用ReLU函数:1. 采用sigmoid等函数,计算量大,反向传播求误差梯度时涉及除法;2. 对于深层网络,sigmoid函数反向传播时,容易出现梯度消失的情况(sigmoid接近饱和区时,变换太缓慢,导数趋于0,容易造成信息丢失),从而无法完成深层网络的训练;3. ReLU会使一部分神经元的输出为0,造成了网络的稀疏性,并减少了参数的相互依存关系,缓解了过拟合问题的发生。
pooling池化(欠采样)
主要有max、average、sum等不同类型的操作
3. 输出层
经过若干次的卷积+线性修真+pooling,模型会将学到的高水平特征接到一个全连接层,通过softmax函数得到输出。