欢迎光临散文网 会员登陆 & 注册

1.2 卷积神经网络基础补充

2023-08-08 22:58 作者:旺旺浪味仙-  | 我要投稿

反向传播以及误差的计算


  • x1和x2为输入层
  • 中间的为隐藏层
  • w11,第一个1代表上一个层的第一个节点,第二个1表示本层的第一个节点
  • 上标括号的1代表第一层,中间的代表激活函数

实例:输出的计算

x1×对应的权重+x2×对应的权重+偏置,通过激活函数统一相乘得到输出

中间节点的输出以及下面节点的输出,b1为偏置(此案例没有使用激活函数)

计算多类损失过程中,一般最后一层激活函数统一用softmax作为激活函数

softmax的计算过程

图中输出的y1、y2并不符合任意一个分布,想要满足一个概率分布,要进行softmax处理

表达式在右下角o1、o2等

发现:

经过softmax激活处理后所有的输出满足概率分布,即和等于1(o1+o2=1)

损失计算

一般计算损失使用:交叉熵损失(一般有两种表达式)

根据最终层的输出函数决定使用哪一种表达式

1.针对多类问题,一般采用softmax输出,所有输出节点满足概率和为1的分布规律,大部分使用

2.针对二分类问题,一般采用sigmoid输出,每一个输出节点之间互不相干,即每一个输出不会满足任何一种分布规律

对于二分类问题,理论上使用sigmoid和softmax没有区别,因为数学表达式的形式是一样的。

对于多分类非互斥问题,使用sigmoid更合适。

对于多分类互斥问题,使用softmax更合适。

PS:Oi*为真实标签值,Oi为预测值,默认log是以e为底等于ln

区别:

若猫和狗的分类,得到的输出是唯一的(不是狗就是猫)

若输出包含人类、男人等等,它的输出不满足概率分布,需要使用二分类问题进行处理。

Loss损失公式


误差的反向传播

以求W11(2)的误差梯度为例(求偏导)


09:42





对每一个偏导进行计算

权重的更新

  • 左边是求得的损失函数的梯度
  • 右边为更新的权重(新值=旧值-设置的学习率×损失梯度)


求得的损失梯度的方向是否是指向全局最优的方向?

目标点:全局最优点

左边:

在实际应用中往往不可能一次性将所有数据载入内存(算力不够等问题),一般使用分批次训练方法进行训练

数据集随机的分成n等份,每份取x张图(正整数),即batch=x

每求一个批次进行一次误差的计算以及反向传播(常用SGD优化器

右边:

如果使用分批次样本进行求解,损失梯度指向当前批次最优方向(局部最优≠全局最优)

方向不够平稳,要引入优化器

优化器

目的:使网络更快的得到收敛

SGD优化器

每一批数据随机进行分批次,对于一批数据求得的方向可能不同(是随机的)

缺点:

1.易受样本噪声影响

2.可能陷入局部最优解

SGD+Momentum优化器(增加动量部分)

除了计算当前的梯度,还会将之前的梯度加入进来左下角实例

有效抑制样本噪声的干扰

Adagrad优化器(自适应学习率)

主要调整学习率

缺点:学习率下降很快,可能没有达到收敛就停止了

RMSProp优化器(是Adagrad的改良版)

相比Adagrad添加了两个系数,控制衰减速度

Adam优化器

包含了一阶动量和二阶动量

一些列优化器优化速度的快慢


25:33


要看实际情况进行选择


1.2 卷积神经网络基础补充的评论 (共 条)

分享到微博请遵守国家法律