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

这是我的学习笔记,若有不足和错误之处,欢迎交流和指正,谢谢!
联系方式:[email protected]

文章目录

  • 1.推导反向传播过程
  • 2.常见的损失函数
    • 2.1 基于距离的损失函数
    • 2.2 基于概率分布的损失函数
  • 3.常见的激活函数
    • 3.1 Sigmoid函数
    • 3.2 tanh函数
    • 3.3 ReLU函数
    • 3.4 . Leaky ReLU
  • 4.torch中常见的损失函数

1.推导反向传播过程

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

【深度学习系列】反向传播推导+损失函数+激活函数原理_第1张图片

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

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

【深度学习系列】反向传播推导+损失函数+激活函数原理_第2张图片
上图来源爱数据学习社

3.1 Sigmoid函数

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

【深度学习系列】反向传播推导+损失函数+激活函数原理_第3张图片
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

【深度学习系列】反向传播推导+损失函数+激活函数原理_第4张图片
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

【深度学习系列】反向传播推导+损失函数+激活函数原理_第5张图片

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

【深度学习系列】反向传播推导+损失函数+激活函数原理_第6张图片
主要是解决ReLU函数涵盖负数空间问题。

4.torch中常见的损失函数

待补充

你可能感兴趣的:(深度学习系列,深度学习,机器学习,概率论)