得分函数
其中x为输入的特征点,为n* 1矩阵,W为计算权重为1n矩阵,如果这是一个五分类的任务,需要分别计算,当前对象分别属于五类的得分,W就是5n矩阵,b是一个5* 1的矩阵,微调参数。最后就会得到一个5* 1的矩阵,也就是当前对象属于每一类的得分。
损失函数
其他类的得分,减去当前类的得分再加1,和0取最大值求和,就是损失函数的值,表示其他类的得分大于当前类得分的程度,损失函数的值越大,表示当前权重矩阵效果不好。
损失函数=数据损失+正则化惩罚项,加入正则化惩罚项的目的避免过拟合。
正则化惩罚项:
Softmax分类器
该图来源木子说python
该图来源木子说python
前向传播流程:
得分函数->损失函数(计算各个分类得分差值的和->加上正则化惩罚项->Softmax分类器(扩大得分差距,归一化,转为对应0到1))
反向传播流程:
损失函数从后向前逐层求导,按照梯度下降法不断优化参数。
全连接
输入层的每个特征和输出层的每个特征都相连。
神经元
神经元就是每一层中的特征,神经元越多,过拟合风险越大。
正则化与激励函数
正则化惩罚力度适当的增大有助于防止模型过拟合,常用的激活函数有Sigmoid、Relu、Tanh。
Sigmoid函数:不怎么使用,存在梯度消失的问题。
Relu函数:应用广泛
DROP-OUT
在网络训练的过程中,随机的放弃一些神经元,防护过拟合的发生。
卷积神经网络特点
传统神经网络(NN):
卷积神经网络(CNN):
滑动窗口步长和卷积核尺寸
滑动窗口步长和卷积核尺寸越大,相当于提取特征的过程比较粗糙,提取的特征相对较少,相反,滑动窗口步长和卷积核尺寸越小,相当于提取特征的过程比较细腻,提取的特征越丰富。
卷积核个数
卷积核个数就是要得到的特征图的个数,每个卷积核里面的数值不一样
边缘填充(pad)
计算特征时,越靠近中间的像素点被使用的次数越多,但是,边界点也可能很重要,通过边缘填充,提升边界点被使用的次数,让网络能够更公平的对待一些边界特征,一般用0填充(zero padding),不会对结果产生影响。
池化层
池化层可以理解为压缩或者下采样,可以有效的缩小参数矩阵的尺寸,从而减少最后连接层的中的参数数量。所以加入池化层可以加快计算速度和防止过拟合的作用,最大池化是因为通常越大特征值越重要。
卷积神经网络的全连接层
出现在最后,要把最后一层得到的所有特征拉伸成一个向量,全连接层实现这个向量和分类结果的一个全连接。
经典网络-Resnet
对于一个堆积层结构(几层堆积而成)当输入为x 时其学习到的特征记为 H(x),现在我们希望其可以学习到残差 F(x)= H(x)-x ,这样其实原始的学习特征是 F(x)+x。之所以这样是因为残差学习相比原始特征直接学习更容易。当残差为0时,此时堆积层仅仅做了恒等映射,至少网络性能不会下降,实际上残差不会为0,这也会使得堆积层在输入特征基础上学习到新的特征,从而拥有更好的性能
感受野
感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域。