卷积神经网络
得分函数
- 关于函数
f
(
x
,
W
)
=
W
x
+
b
f(x,W) = Wx + b
f(x,W)=Wx+b其中,
W
W
W代表数据的权重值,需要根据经验或者推算的到,
x
x
x代表实际的图像数据值,
b
b
b为偏执参数。同意n*1与1*n的矩阵相乘得到一个1*1的数值,该数值代表了结果更倾向于哪一个种类
损失函数
- 关于损失函数,值越大越不好。最后错误结果减去正确的结果值
- 损失函数+正则化,防止过拟合同时约束 W W W的权重参数, λ \lambda λ值越大会导致拟合程度越大,但是过拟合没意义, λ \lambda λ值越小会导致拟合程度不够
- 部分流程
-
S
o
f
t
m
a
x
Softmax
Softmax分类器,方便得到概率
- exp表示对数值做 e x e^x ex处理得到全部大于0的数值,并且使得小于零的数值极度小, n o r m a l i z e normalize normalize归一化处理是将每一个得到的数值除以总共的数值和得到对应的概率值 P P P,并且对其进行 l o g log log取对数得到损失函数 L L L,越靠近1的数值损失越小,可以看到间距小。
- 梯度下降,反向传播
- 在机器学习中,我们的目标是最小化损失函数,而损失函数通常是一个多维函数。梯度下降帮助我们找到使得损失函数最小化的模型参数,就像在山上找到最低点一样。
神经网络架构
- 神经网络通过输入层接收数据,经过多个隐藏层的加权求和和激活函数处理,最终输出预测结果。在训练过程中,通过反向传播算法计算损失函数对参数的梯度,并利用优化器来更新参数,以不断优化模型的预测能力,使其在测试数据上表现更好。
卷积神经网络的结构
- 卷积神经网络(CNN)通过卷积层提取输入数据的特征图,并通过池化层降低特征图的维度,然后通过全连接层进行分类或回归预测。在训练过程中,利用反向传播算法计算损失函数对参数的梯度,并利用优化器更新参数,以不断调整网络的权重和偏置,使其能够更好地学习数据的特征并进行准确的预测。
卷积过程
移动步长
- 步长越长提取的特征越少越不细致,步长越短提取的特征越多,图像类任务多用步长为1
边缘填充
- 经过卷积(矩阵网格计算)可以发现越靠近中间的数据被使用的次数越多,靠近边缘的数据使用次数少,为了使得数据公平在边缘增加填充数据使得边缘数据不边缘增加边缘数据的使用次数。可以弥补边界信息提取不完全的缺陷。零填充
卷积之后图像的大小计算
- H1 表示原始的高,FH代表卷积核的高,P为填充的数据列数,S为步长,H2表示卷积之后的高
卷积参数共享
- 每一个卷积核需要计算完整个图像的数据
参数计算
- 64是图像的种类,卷积核为3*3
- 只有卷积层和全连接层有参数,即卷积包含的层数也仅仅包含这两个
- 平化层是为了将三维数据转为一维,方便全链接。
池化层(下采样/压缩)
-
最大值池化(没有矩阵计算)
-
平均值池化
全连接层
- 有几种结果就有几列,前面的值是得到的三维结果转换为一列n*1的结果
判断卷积神经网络的层数
- 只看conv和FC的个数即卷积层和全连接层,判定标准是观察该层次是否有参数的计算,有就算作一层
整体流程
- 卷积数据增多,池化数据减少,再卷积数据增多,再池化数据减少,转换将三维结果转换为一维结果进行全链接操作
残差卷积网络(Resnet)
- 网络层数的增加,不一定使得最终的效果越好。可能提取的特征并不是好的特征,所以需要将不好的提取结果去掉,保证最后的结果不会随着网络层数的增加变得更差。
- 如下图所示, x x x为之前的网络层提取的结果,经过两次卷积之后得到 F ( x ) F(x) F(x)为新的结果后,计算加得之前的结果x,可以得到新的结果方案 H ( x ) = F ( x ) + x H(x)=F(x)+x H(x)=F(x)+x,这样新的结果经判断经过后两次的结果之后的loss更高,可以将这两次的权重设置为0,不再计算之内,而后面的 x x x保证了之前的结果依然存在,这就是残差网络。可以使得增加网络层数不会比之前更差。
- 层数越多,不一定越好,好也不会太多。网络层数一般20差不多了。
感受野
- 通过后面得到的一个计算结果,可以感受到前面是一个3*3的一个矩阵得到的,依次向后推,后面的结果可以依次推的前面的是哪个几乘几矩阵得到的。感受野越大越好,感知的数据越多。
- 通过一个点,可以感受到原始数据的大小。
- 不用大的卷积核代替小的多个卷积核,因为这样参数会增多