【深度学习系列】反向传播推导+损失函数+激活函数原理

这是我的学习笔记,若有不足和错误之处,欢迎交流和指正,谢谢!
联系方式:lrcgnn@163.com

1.推导反向传播过程

参考链接:https://blog.csdn.net/qq_32865355/article/details/80260212

在这里插入图片描述

2.常见的损失函数

参考链接:https://zhuanlan.zhihu.com/p/261059231

2.1 基于距离的损失函数

在上面的推导过程中采用了简单的均方误差损失函数(MSE),这种损失函数的标准形式为:
L ( Y ∣ f ( X ) ) = 1 N ∑ i = 1 N ( Y i − f ( x i ) ) 2 L(Y|f(X)) = \frac{1}{N}\sum_{i=1}^{N}(Y_i- f(x_i))^2 L(Yf(X))=N1i=1N(Yif(xi))2

还有一些其他的基于距离的损失函数:
L2损失函数,L2损失又被称为欧氏距离:
L ( Y ∣ f ( X ) ) = 1 N ∑ i = 1 N ( Y i − f ( x i ) ) 2 L(Y|f(X)) = \sqrt{\frac{1}{N}\sum_{i=1}^{N}(Y_i- f(x_i))^2} L(Yf(X))=N1i=1N(Yif(xi))2

L1损失函数,也称为曼哈顿距离:
L ( Y ∣ f ( X ) ) = ∑ i = 1 N ∣ ( Y i − f ( x i ) ∣ L(Y|f(X)) = \sum_{i=1}^{N}| (Y_i- f(x_i) | L(Yf(X))=i=1N(Yif(xi)

2.2 基于概率分布的损失函数

基于概率分布的损失函数是将样本之间的相似性转化为随机事件出现的概率,即度量样本真实分布和估计的分布之间的距离,通常应用于预测类别的问题中。

KL散度损失函数(相对熵)
L ( Y ∣ f ( x ) ) = ∑ i = 1 N Y i    l o g ( Y i f ( x i ) ) L(Y|f(x)) = \sum_{i=1}^NY_i \; log(\frac{Y_i}{f(x_i)}) L(Yf(x))=i=1NYilog(f(xi)Yi)
其中 Y i Y_i Yi为真实的值, f ( x ) f(x) f(x)为模型预测值。
当KL散度越小时,两个分布之间的相似度越高。当且仅当两个分布相同时,相对熵为0。

交叉熵损失函数
L ( Y ∣ f ( x ) ) = − ∑ i = 1 N Y i l o g ( f ( x i ) ) L(Y|f(x)) = -\sum_{i=1}^NY_i log(f(x_i)) L(Yf(x))=i=1NYilog(f(xi))
在很多分类任务中都使用交叉熵损失函数,特别是正负样本不均衡的分类问题。
当正负样本不均衡时,交叉熵损失函数前面通常会加个参数 α \alpha α
L ( Y ∣ f ( x ) ) = − 1 N ∑ i = 1 N [ y I n f ( x ) + ( 1 − y ) I n ( 1 − f ( x ) ) ] L(Y|f(x)) = -\frac{1}{N}\sum_{i=1}^N[y In f(x)+(1-y)In (1-f(x))] L(Yf(x))=N1i=1N[yInf(x)+(1y)In(1f(x))]

softmax损失函数
softmax损失函数的本质是将一个k维的任意实数向量x映射成另一个k维的实数向量,其中,输出向量中的每个元素的取值范围都是(0,1),即softmax损失函数输出每个类别的预测概率。通常适用于类间距离的优化,不适用类内距离的优化。
L ( T ∣ f ( x ) ) = − 1 N ∑ i = 1 N l o g e f Y i ∑ j = 1 c e f j L(T|f(x)) = -\frac{1}{N}\sum_{i=1}^N log\frac{e^{f_{Y_i}}}{\sum_{j=1}^c e^{f_j}} L(Tf(x))=N1i=1Nlogj=1cefjefYi

3.常见的激活函数

参考链接:https://www.cnblogs.com/missidiot/p/9378079.html

添加激活函数的目的是添加非线性因素,增强模型的表达能力,使得模型具有非线性映射学习能力。

在这里插入图片描述
上图来源爱数据学习社

3.1 Sigmoid函数

f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1

Sigmoid函数具有以下特点: 1.将阈值范围限制在(0,1),可以和预测概率分布之间联系起来。 2.它的导数就是它本身,计算方便 3.两侧的导数趋于0,具有明显的饱和性,可能带来梯度消失的问题。

3.2 tanh函数

f ( x ) = 1 − e − 2 x 1 + e − 2 x f(x)=\frac{1-e^{-2x}}{1+e^{-2x}} f(x)=1+e2x1e2x

tanh同样是一种具有饱和性的函数,但是它的收敛速度要快于sigmoid函数。

3.3 ReLU函数

f ( x ) = { x , x > = 0 0 , x < 0 f(x)=\begin{cases} x, & x>=0\\ 0, & x <0 \end{cases} f(x)={x,0,x>=0x<0

ReLU函数在取值为正时,不存在饱和现象。
由于只存在线性关系,计算速度快。
然而当输入为负时,ReLU完全失效。

3.4 . Leaky ReLU

f ( x ) = { x , x > = 0 a x , x < 0 f(x)=\begin{cases} x, & x>=0\\ ax, & x <0 \end{cases} f(x)={x,ax,x>=0x<0

主要是解决ReLU函数涵盖负数空间问题。

4.torch中常见的损失函数

待补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值