L1的loss可以用函数表示为,挺好的,就是0点不可导
L ( x , y ) = 1 n ∑ i = 1 n ∣ y i − f ( x i ) ∣ L(x,y)=\frac{1}{n}\sum_{i=1}^n|y_i-f(x_i)| L(x,y)=n1i=1∑n∣yi−f(xi)∣
L2的loss可以用汉书表示为,0点可导,但远处容易梯度爆炸
L ( x , y ) = 1 n ∑ i = 1 n ( y i − f ( x i ) ) 2 L(x,y)=\frac{1}{n}\sum_{i=1}^n(y_i-f(x_i))^2 L(x,y)=n1i=1∑n(yi−f(xi))2
L1的Smooth loss可以用汉书表示为,挺好的,结合了L1、L2的优点
L ( x , y ) = 1 n ∑ i = 1 n { 1 2 ( y i − f ( x i ) ) 2 , i f ∣ y i − f ( x i ) ∣ ≤ 1 ∣ y i − f ( x i ) ∣ − 1 2 , o t h e r w i s e L(x,y)=\frac{1}{n}\sum_{i=1}^n \begin{cases} \frac{1}{2}(y_i-f(x_i))^2\ \ ,\quad if \ |y_i-f(x_i)| \leq 1\\ |y_i-f(x_i)|-\frac{1}{2}, \quad otherwise \end{cases} L(x,y)=n1i=1∑n{21(yi−f(xi))2 ,if ∣yi−f(xi)∣≤1∣yi−f(xi)∣−21,otherwise
正确分类的就不计算损失,计算错误的要计算损失
N个样本,每个样本有M个类别需要预测
L = 1 N ∑ i = 1 N L ( y i , p i ) = 1 N ∑ i = 1 N ∑ j = 1 M y i c l n ( p i c ) L = \frac{1}{N}\sum_{i=1}^NL(y_i, p_i) = \frac{1}{N}\sum_{i=1}^N\sum_{j=1}^My_{ic}ln(p_{ic}) L=N1i=1∑NL(yi,pi)=N1i=1∑Nj=1∑Myicln(pic)
N N N 表示样本总数目
M M M 表示单个样本中的类别数目
y i c y_{ic} yic 表示 i i i 样本中,第 c c c 个目标是否正确分类,正确时值为 0 0 0 否则为 1 1 1
p i c p_{ic} pic 表示 i i i 样本中,第 c c c 个目标的预测概率, 值为 0 ~ 1
上面已经得出交叉熵损失是所有样本中损失的均值,但是如果样本中正负样本的分布不均匀
优化器的最终目标是最小化Loss函数,从而优化网络本身参数
它包含了 learning rate 和 函数两部分
Momentum-动量法
又名随机梯度下降,前期算法没有增加动量,目前是一类动量法
优化参数的过程可以表示为如下,其中 α \alpha α 就是学习率, ν \nu ν 是动量, 参数 γ \gamma γ通常取值0.9
θ t = θ t − 1 − ν t ν t = γ ν t − 1 + α ∂ L ( θ ) ∂ θ \theta_t = \theta_{t-1}-\nu_t \\ \nu_t=\gamma \nu_{t-1} + \alpha \frac{\partial L(\theta)}{\partial\theta} θt=θt−1−νtνt=γνt−1+α∂θ∂L(θ)
代表着当前如何走与梯度有关,还与过去的累积梯度有关
此文仅供学习使用,禁止其他用处
CSDN:深度学习中常见的损失函数(L1Loss、L2loss)
知乎:如何通俗理解深度学习优化器?
博客园:深度学习中常用的优化器简介
知乎:从 SGD 到 Adam —— 深度学习优化算法概览(一)
知乎:损失函数|交叉熵损失函数