深度学习: 目标函数

Introduction

目标函数 是 深度学习之心,是 模型训练发动机

目标函数 (object function) = 损失函数 (loss function) = 代价函数 (cost function)

其中,模型loss 统称为 non-decay loss正则loss 称为 decay loss

作用:

计算 预测结果 与 真实标记 之间的 误差,并通过 误差反向传播 算法,指挥模型参数 哗啦啦地 刷新

目标函数 类型

主要分为 分类任务目标函数回归任务目标函数。此外往往会加上 附加任务目标函数 (为了 防止过拟合/求得稀疏解 而加入的 正则项 )。

分类任务

假设某分类任务共 NNN 个训练样本,针对网络最后分类层的第 iii 个样本的输入特征为 xixix_{i} ,其对应的真实标记为 yi∈{1,2,...,C}yi∈{1,2,...,C}y_{i}\in\{1, 2, ..., C\} ,另 h=(h1,h2,...,hC)Th=(h1,h2,...,hC)Th={(h_{1}, h_{2}, ..., h_{C})}^{T} 为网络的最终输出,即样本 iii 的预测结果,其中 CCC 为分类任务类别数。

yiyiy_{i}:分类正确时为1,错误时为0; hyihyih_{y_{i}}:分类正确的那一个 hjhjh_{j},可能为负值。

Softmax损失函数

Softmax损失函数(softmax function),又名 交叉熵损失函数 (CE)

该函数 是重要的 深度学习目标函数,也是 Sigmoid函数 的一种 推广。可转换为交叉熵误差 (CE)

CE(y^)=−1n∑k=1n[I{y=y′}log(pt)]CE(y^)=−1n∑k=1n[I{y=y′}log⁡(pt)]

CE(\hat{y}) = - \frac{1}{n} \sum_{k=1}^n [I \{y=y'\} \log(p_t)]

最常用 的分类任务目标函数。

合页损失函数

合页损失函数,hinge loss,主要被运用于SVM中。

L=1N∑i=1Nmax{0,1−hyi}L=1N∑i=1Nmax{0,1−hyi}

L={\frac{1}{N}}{\sum_{i=1}^N}\max\{0, 1-h_{y_{i}}\}

max{0,1−hyi}max{0,1−hyi}\max\{0, 1-h_{y_{i}}\}:保证了每个单样本的损失值不为负。

效果略逊于交叉熵损失函数。

坡道损失函数

坡道损失函数,ramp loss function。

亮点是 增强了 抗噪能力

坡道损失函数 和 Tukey’s biweight 损失函数 并称 鲁棒损失函数

大间隔交叉熵损失函数

引入了SVM的思想,即在 要求 分类正确 之外,还 额外要求 分开的类 需保持较大间隔

较难训练。

但在 分类性能 方面 优于 交叉熵损失函数 和 合页损失函数。

中心损失函数

在 大间隔交叉熵损失函数 的 基础上,更进一步要求 减小类内差异

Focal Loss损失函数

对Softmax损失函数进行“类别平衡”约束。

回归任务

预测误差,即 残差 ,用于 衡量 模型预测值真实标记靠近程度

假设回归问题中,对应第 iii 个输入特征 xixix_{i} 的真实标记为 yi=(y1,y2,...,yM)Tyi=(y1,y2,...,yM)Ty^{i} = (y_{1}, y_{2}, ..., y_{M})^{T} , MMM 为标记向量总维度,则 litltil_{t}^{i} 即表示样本 iii 上网络回归预测值 (y^i)(y^i)(\hat{y}^{i}) 与其真实标记在第 ttt 维的预测误差 (亦称 残差) :

lit=yit−y^itlti=yti−y^ti

l_{t}^{i} = y^{i}_{t} - \hat{y}^{i}_{t}

L1损失函数

L2损失函数

回归精度

少数情况下略优,大部分情况下差不多

收敛速度

略快

运用程度

较常用

最常用

L1损失函数

L=1N∑i=1N∑t=1M|lit|L=1N∑i=1N∑t=1M|lti|

L={\frac{1}{N}} {\sum_{i=1}^N} {\sum_{t=1}^M} \vert l_{t}^{i} \vert

Detection中常用的是 Smooth L1

L2损失函数

L=1N∑i=1N∑t=1M(lit)2L=1N∑i=1N∑t=1M(lti)2

L={\frac{1}{N}} {\sum_{i=1}^N} {\sum_{t=1}^M} ( l_{t}^{i} ) ^{2}

Tukey’s biweight 损失函数

可克服 离群点样本噪声样本 所带来的 干扰鲁棒性 强

其他任务

某些 无法被 简单划归为 分类 或 回归 的任务,需要设计其他的目标函数。

Summary

分类任务

回归任务

真实标记

二值向量

实数向量


[1] 解析卷积神经网络—深度学习实践手册 [2] 深度学习: 分类 目标函数 (交叉熵误差(CE) -> 焦点损失(FL))

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法工程师

绝对不容错过:最完整的检测模型评估指标mAP计算指南(附代码)在这里!

本文翻译自Measuring Object Detection models - mAP - What is Mean Average Precision?(...

1.1K80
来自专栏机器学习算法与Python学习

线性分类(SoftMax) - 下篇

导读 线性分类器-中篇 线性分类器 CS231n课程笔记翻译:图像分类笔记(下) CS231n课程笔记翻译:图像分类笔记(上) SoftMax分类器 SVM是最...

41380
来自专栏重庆的技术分享区

吴恩达-神经网络和深度学习( 第三周 浅层神经网络:)

18740
来自专栏机器学习算法工程师

循环神经网络(RNN)模型与前向反向传播算法

在前面我们讲到了DNN,以及DNN的特例CNN的模型和前向反向传播算法,这些算法都是前向反馈的,模型的输出和模型本身没有关联关系。今天我们就讨论另一类输出和模型...

26330
来自专栏机器学习算法与Python学习

干货 | 深度学习之CNN反向传播算法详解

微信公众号 关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 前言 在卷积神经网络(C...

1.4K70
来自专栏机器学习算法原理与实践

循环神经网络(RNN)模型与前向反向传播算法

    在前面我们讲到了DNN,以及DNN的特例CNN的模型和前向反向传播算法,这些算法都是前向反馈的,模型的输出和模型本身没有关联关系。今天我们就讨论另一类输...

16130
来自专栏机器学习算法原理与实践

深度神经网络(DNN)损失函数和激活函数的选择

    在深度神经网络(DNN)反向传播算法(BP)中,我们对DNN的前向反向传播算法的使用做了总结。里面使用的损失函数是均方差,而激活函数是Sigmoid。实...

20410
来自专栏机器学习算法与Python学习

线性分类器

线性分类 上一篇笔记介绍了图像分类问题。图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像。我们还介绍了k-Nearest Neighbor...

39490
来自专栏IT派

入门 | 了解神经网络,你需要知道的名词都在这里

近日,Mate Labs 联合创始人兼 CTO 在 Medium 上撰文《Everything you need to know about Neural Ne...

36880
来自专栏机器学习和数学

[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版

总结了一下这几个网络的比较重要的点,像这些经典的网络,面试的时候,估计会经常问到,怎么用自己的话说出来?不知道大家想过没有。 今天有空就总结了一下,尽量简单和通...

61490

扫码关注云+社区

领取腾讯云代金券