1.1 卷积神经网络基础
CNN 卷积神经网络:包含卷积层的网络
全连接层:由神经元连接而成
卷积层:一个滑动窗口在图像上滑动并计算
计算利用卷积核,将卷积核覆盖到图像上,再将卷积核上面的值与图像层相乘,最后相加得到该区域的值。
不断滑动,得到各个位置的卷积值
特性:1.具有局部感知机制 2.权值共享
对多维的矩阵进行卷积操作:
条件:1.输入特征矩阵深度与卷积核深度保持一致 2. 卷积完输出的特征矩阵(深度)与卷积核个数相同
计算:各个深度的卷积层相同位置处,卷积出来的值相加,最后各个深度卷完成一层了
当然卷积核不唯一,卷完之后拼接在一起
具体计算细节问题:
relu激活函数
因为计算过程是一个线性过程,如果想要解决非线性问题,就需要引入非线性因素。
3.越界问题:
矩阵经过卷积操作后的尺寸由以下几个因数决定:
<1>输入图片的大小 W x W
<2>Filter大小F x F (卷积核滑动窗口大小)
<3>步长S
<4>padding的像素数 (补零的像素数) P
经过卷积后的矩阵尺寸大小计算公式为:
池化层:对特征图进行稀疏处理,减少数据运算量
MaxPooling下采样层
AveragePooling下采样层
·只改变特征矩阵的大小,不改变深度
·一般池化核边长和步长相同
1.2 卷积神经网络基础补充
误差的计算
当前该节点的输出为:
w指权重,b为偏置,x1,x2等为上一个神经元的输出,若上一层为输出层就直接输入数据
上标(1)指当前处于哪一层
下表第一个数字是上一层第几个神经元,第二个数字是本层第几个神经元
最后一层的激活函数是softmax
softmax计算过程:
比如上图,
误差计算方法一:交叉熵损失
根据问题种类,有两种:
1.针对多分类问题(softmax输出,所有输出概率和为1,分类之间没有包含关系)
2.针对二分类问题 (sigmoid输出,每个输出节点之间互不相干,分类之间有包含关系)
上述公式中,
误差的反向传播
最后带入得到:
根据误差进行权重的更新
问题:当分批次训练时,批次的损失梯度和整体sample的方向不一样
所以需要优化器:
SGD优化器:
优化器的缺点:
1 容易受样本噪声的影响
2 可能陷入局部最优解
SGD+Momentum优化器:
Adagrad优化器(自适应学习率)
缺点:学习率下降太快可能还没收敛就停止训练