得鹿梦鱼 得鹿梦鱼

损失函数

概论

“损失”即所有样本的“误差”的总和,亦即(m为样本数)
损失=i=0m1iJ=i=0m1lossi损失 = \sum_{i=0}^{m-1} 误差_i \\J = \sum_{i=0}^{m-1} loss_i

作用

作用就是计算神经网络每次迭代的前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行

步骤

  1. 用随机值初始化前向计算公式的参数。
  2. 代入样本,计算输出的预测值。
  3. 用损失函数计算预测值和标签值(真实值)的误差。
  4. 根据损失函数的导数,沿梯度最小方向将误差回传,修正前向计算公式中的各个权重值。
  5. 重复步骤2,直到损失函数值达到一个满意的值就停止迭代

机器学习中常用的损失函数

m为样本数,a为预测值, y为标本标签值
0-1损失函数
J=i=0m1lossi,loss={0a=y1ayJ = \sum_{i=0}^{m-1} loss_i, loss = \begin{cases}0 \qquad a = y\\1 \qquad a \neq y\end{cases}

绝对值损失函数
J=i=0m1lossi,loss=yaJ = \sum_{i=0}^{m-1} loss_i, loss = \left y - a \right

铰链/折页损失函数或最大边界损失函数,主要用于SVM(支持向量SVM)中

J=i=0m1lossi,loss=max0,1ya,y=±1J = \sum_{i=0}^{m-1} loss_i, loss = max0, 1-y \cdot a, y = \pm 1

对数损失函数,又叫交叉熵损失函数 用于分类

J=i=0m1lossi,loss=[yloga+1ylog1a]J = \sum_{i=0}^{m-1} loss_i, loss = - \left [ y\log a + 1 -y\log 1-a \right ]

均方差损失函数 用于回归

J=i=0m1lossi,loss=ay2J = \sum_{i=0}^{m-1} loss_i, loss = a -y^2

指数差损失函数

J=i=0m1lossi,loss=eyaJ = \sum_{i=0}^{m-1} loss_i, loss = e^{-y \cdot a }

原文链接