[Machine Learning] 损失函数和优化过程

文章目录


机器学习算法的目的是找到一个假设来拟合数据。这通过一个优化过程来实现,该过程从预定义的 hypothesis class(假设类)中选择一个假设来最小化目标函数。具体地说,我们想找到 arg min ⁡ h ∈ H 1 n ∑ i = 1 n ℓ ( X i , Y i , h ) \argmin\limits_{h \in H} \frac{1}{n} \sum\limits_{i=1}^n \ell(X_i,Y_i,h) hHargminn1i=1n(Xi,Yi,h)。其中, H H H 是预定义的假设类。

假设类 H H H是一个函数集,其中每个函数都尝试从输入特征映射到输出标签, H = { h 1 , h 2 , … } H = \{ h_1, h_2, \dots \} H={h1,h2,}。通常, H H H 由一个特定的算法或模型结构定义,如线性回归、决策树等。

首先,0-1损失函数是最直接的分类误差度量。对于给定的分类器 h h h,它只是简单地计算误分类的数据点的数量。数学上,这定义为: arg min ⁡ h E [ 1 Y ≠ s i g n ( h ( X ) ) ] \argmin\limits_{h} \mathbb{E}[1_{Y \neq sign(h(X))}] hargminE[1Y=sign(h(X))]。但我们通常遇到的问题是:

  1. 真实数据的分布 P ( X , Y ) P(X,Y) P(X,Y) 是未知的,因此我们不能直接计算上述期望。
  2. 0-1损失在计算上是困难的,因为它是不连续的、非凸的,这使得优化变得复杂。

大数定律描述了随机变量的样本均值与整体均值之间的关系。它确保了当样本大小趋于无穷大时,样本均值趋于整体均值。更形式化地说,考虑一个随机变量 X X X,其期望值为 E [ X ] \mathbb{E}[X] E[X]。对于 X X X n n n 个独立同分布的样本 X 1 , X 2 , … , X n X_1, X_2, \dots, X_n X1,X2,,Xn,它们的样本均值定义为 X n ˉ = 1 n ∑ i = 1 n X i \bar{X_n} = \frac{1}{n} \sum_{i=1}^{n} X_i Xnˉ=n1i=1nXi。当 n → ∞ n \rightarrow \infty n 时, X n ˉ → E [ X ] \bar{X_n} \rightarrow \mathbb{E}[X] XnˉE[X]

通过大数定律,我们可以使用这些样本来估计某些与分布相关的数量,例如期望损失。假设我们的目标是估计由假设 h h h 引起的期望损失 E [ 1 Y ≠ sign ( h ( X ) ) ] \mathbb{E}[1_{Y \neq \text{sign}(h(X))}] E[1Y=sign(h(X))]。我们可以使用来自真实分布的样本 D \mathcal{D} D 来估计这个期望:

1 n ∑ i = 1 n 1 Y i ≠ sign ( h ( X i ) ) \frac{1}{n} \sum_{i=1}^{n} 1_{Y_i \neq \text{sign}(h(X_i))} n1i=1n1Yi=sign(h(Xi))

随着样本数量 n n n 的增加,上述估计将接近真实的期望损失。

为了在实践中使问题变得可解,我们使用所谓的 surrogate loss function(替代损失函数),它们在优化上更容易处理,但仍旨在近似0-1损失函数。

  • Hinge loss(合页损失):这是支持向量机中使用的损失函数。
    ℓ ( X , Y , h ) = max ⁡ { 0 , 1 − Y h ( X ) } \ell(X,Y,h) = \max \{0,1−Yh(X)\} (X,Y,h)=max{0,1Yh(X)}

  • Logistic loss(逻辑损失):这是逻辑回归中使用的。它对于异常值更为稳健,并且为概率提供了良好的估计。

  • Least square loss(最小二乘损失):主要在回归问题中使用。

  • Exponential loss(指数损失):是AdaBoost算法中使用的损失函数。

大多数流行的替代损失函数都是为了在大样本极限下模拟0-1损失函数的效果。这些被称为 classification-calibrated (分类校准的)替代损失函数。这意味着,如果训练数据无穷大,则使用这些损失函数训练的分类器在0-1损失上的表现将与真正的最佳分类器一致。

给定一个代理损失函数 ℓ \ell 和相应的函数 ϕ \phi ϕ 使得 ϕ ( Y h ( X ) ) = ℓ ( X , Y , h ) \phi(Yh(X)) = \ell(X, Y, h) ϕ(Yh(X))=(X,Y,h)。这里, Y Y Y 是标签,取值为 ( − 1 , 1 ) (-1, 1) (1,1),而 h ( X ) h(X) h(X) 是分类器对输入 X X X 的预测得分。为了检查 ℓ \ell 是否是分类校准的,我们通常检查以下条件:

  1. ϕ \phi ϕ 是凸的。
  2. ϕ \phi ϕ 在0处可导,并且 ϕ ′ ( 0 ) < 0 \phi'(0) < 0 ϕ(0)<0

满足上述条件意味着在大部分情况下,对于一个给定的数据点,分类器 h h h 使代理损失最小化时,也会使0-1损失最小化。

例如,考虑Hinge损失 ℓ hinge ( X , Y , h ) = max ⁡ { 0 , 1 − Y h ( X ) } \ell_{\text{hinge}}(X,Y,h) = \max \{ 0, 1-Yh(X) \} hinge(X,Y,h)=max{0,1Yh(X)}

对应的 ϕ \phi ϕ 函数为 ϕ ( z ) = max ⁡ { 0 , 1 − z } \phi(z) = \max \{ 0, 1-z \} ϕ(z)=max{0,1z}

这个函数在 z = 1 z=1 z=1 处是不可导的,但是在 z = 0 z=0 z=0 处是可导的,且其导数小于0,因此Hinge损失是分类校准的。

现在可以考虑以下两个分类器的定义:

  • h s h_s hs 是基于有限训练数据和替代损失函数的最优分类器。
  • h c h_c hc 是基于整个数据分布和0-1损失函数的最优分类器。

使用替代损失函数和训练数据,我们可以找到 h s h_s hs

h s = arg min ⁡ h 1 n ∑ i = 1 n ℓ ( X i , Y i , h ) h_s = \argmin\limits_{h} \frac{1}{n} \sum\limits_{i=1}^n \ell(X_i,Y_i,h) hs=hargminn1i=1n(Xi,Yi,h)

与此同时,如果我们知道整个数据的分布,我们可以找到 h c h_c hc

h c = arg min ⁡ h E [ 1 Y ≠ sign ( h ( X ) ) ] h_c = \argmin\limits_{h} \mathbb{E}[1_{Y \neq \text{sign}(h(X))}] hc=hargminE[1Y=sign(h(X))]

当我们的训练数据量无限大时,使用替代损失函数得到的 h s h_s hs 将与使用0-1损失函数得到的 h c h_c hc越来越接近。这可以通过以下公式表示:

E [ 1 Y ≠ sign ( h S ( X ) ) ] ⟶ n → ∞ E [ 1 Y ≠ sign ( h c ( X ) ) ] \mathbb{E}[1_{Y \neq \text{sign}(h_S(X))}] \overset{n \rightarrow \infty}{\longrightarrow} \mathbb{E}[1_{Y \neq \text{sign}(h_c(X))}] E[1Y=sign(hS(X))]nE[1Y=sign(hc(X))]

这意味着,当我们基于有限的样本数据集优化代理损失时,我们实际上是在优化该数据集上的经验损失。大数定律保证,随着样本数的增加,这个经验损失的期望会接近于真实的期望损失。同时,如果我们的代理损失是分类校准的,那么优化这个代理损失将隐式地优化0-1损失。当训练数据的大小趋向于无穷大时,通过最小化替代损失函数得到的分类器的期望0-1损失将趋近于最优的0-1损失。

当替代损失函数是凸的且光滑时,我们可以使用一系列的优化算法,如梯度下降、牛顿法等,来解决以下问题:
h = arg min ⁡ h ∈ H 1 n ∑ i = 1 n ℓ ( X i , Y i , h ) h = \argmin\limits_{h \in H} \frac{1}{n} \sum\limits_{i=1}^n \ell(X_i,Y_i,h) h=hHargminn1i=1n(Xi,Yi,h)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/47175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Revit 3D高效处理:cad exchanger sdk 3.21 Crack

3D 格式概述&#xff1a;Revit Revit 已成为寻求高效、准确的建筑信息建模的专业人士的首选解决方案。在这篇引人入胜的功能概述中了解 Revit 的特性和影响。 什么是Revit&#xff1f; Autodesk Revit 是一款流行的 CAD 软件&#xff0c;重点关注 BIM&#xff0c;被建筑师、工…

Oracle DG复制中断:RMAN-03015和RMAN-06094

Oracle DG复制中断&#xff1a;RMAN-03015和RMAN-06094 背景与错误信息主库备份数据文件备库恢复数据文件DG Broker创建DG更新备库数据文件名解决归档日志不传输 ⭐️DB_UNIQUE_NAME 主库&#xff1a;ORCLDB_0备库&#xff1a;ORCLDB_1 背景与错误信息 通过RMAN DUPLICATE搭建…

uniapp scroll-view横向滚动无效,scroll-view子元素flex布局不生效

要素排查&#xff1a; 1.scroll-x属性需要开启&#xff0c;官方类型是Boolean&#xff0c;实际字符串也行。 2scroll-view标签需要给予一个固定宽度&#xff0c;可以是百分百也可以是固定宽度或者100vw。 3.子元素需要设置display: inline-block&#xff08;行内块元素&#x…

时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现SO-CNN-BiL…

ffmpeg从摄像头获取视频流

使用FFmpeg获取本地摄像头设备 ffmpeg -list_devices true -f dshow -i dummy ffmpeg -f dshow -i video"e2eSoft iVCam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test ffmpeg -f dshow -i video&qu…

如何让智能搜索引擎更灵活、更高效?

随着互联网的发展和普及&#xff0c;搜索引擎已经成为人们获取信息、解决问题的主要工具之一。 然而&#xff0c;传统的搜索引擎在面对大数据时&#xff0c;往往存在着搜索效率低下、搜索结果精准度不够等问题。 为了解决这些问题&#xff0c;越来越多的企业开始采用智能搜索技…

Python Pandas 处理Excel数据 制图

目录 1、饼状图 2、条形统计图 1、饼状图 import pandas as pd import matplotlib.pyplot as plt import numpy as np #from matplotlib.ticker import MaxNLocator # 解决中文乱码 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[font.sans-serif]Microsoft YaHei …

Git学习笔记

Git学习笔记 文章目录 Git学习笔记一、版本控制二、Linux基础命令三、Git的环境配置四、Git的基本理论&#xff08;核心&#xff09;五、Git项目的搭建六、Git文件操作七、使用码云八、IDEA集成git九、Git分支 一、版本控制 什么是版本控制 版本控制&#xff08;Revision contr…

遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

[git]github上传大文件

github客户端最高支持100Mb文件上传&#xff0c;如果要>100M只能用git-lfs&#xff0c;但是测试发现即使用git lfs&#xff0c;我上传2.5GB也不行&#xff0c;测试737M文件可以&#xff0c;GitHub 目前 Git LFS的总存储量为1G左右&#xff0c;超过需要付费。(上传失败时&…

git管理代码

理论上改代码前要pull一次&#xff0c;然后在push前在pull一次 改代码前pull一次是为了获取最新的同步&#xff0c;但是coding也是需要时间的&#xff0c;难保敲代码的这段时间没有人动远程仓库的东西&#xff0c;所以在改完代码要push的时候也应该再pull一下看有无冲突&#x…

卷积神经网络——上篇【深度学习】【PyTorch】

文章目录 5、卷积神经网络5.1、卷积5.1.1、理论部分5.1.2、代码实现5.1.3、边缘检测 5.2、填充和步幅5.2.1、理论部分5.2.2、代码实现 5.3、多输入多输出通道5.3.1、理论部分5.3.2、代码实现 5.4、池化层 | 汇聚层5.4.1、理论部分5.4.2、代码实现 5、卷积神经网络 5.1、卷积 …

es入门实战

创建索引 PUT /hotel/ { “mappings”:{ “properties”:{ “title”:{ “type”:“text” }, “city”:{ “type”:“keyword” }, “price”:{ “type”:“double” } } } } 给索引写入数据 POST /hotel/_doc/001 { “title”:“好再来大酒店”, “city”:“东京”, “pri…

Java学习笔记——(21)运算符分类

分类一&#xff1a; 单目运算符&#xff1a;! ~ – -双目运算符&#xff1a;* / % - << >> < < > > ! & ^ | && || * / % - << >> & ^ | >>> ~三目运算符(条件运算符)&#xff1a;? :其他运算符&#xff1…

自然语言处理从入门到应用——LangChain:索引(Indexes)-[文档加载器(Document Loaders)]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 合并语言模型和我们自己的文本数据是区分它们的一种强大方式&#xff0c;这样做的第一步是将数据加载到“文档”中&#xff0c;文档加载器的作用就是使这个过程变得简单。 LangChain提供了三种文档加载器&#xff1a;…

Go语言基础之数组

Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中&#xff0c;数组从声明时就确定&#xff0c;使用时可以修改数组成员&#xff0c;但是数组大小不可变化。 基本语法&#xff1a; // 定义一个长度为3元素类型为int的数组a var a [3]int数组定义&#xff1a; var 数…

游戏开发与硬件结合,开启全新游戏体验!

游戏与硬件的结合可以通过多种方式实现&#xff0c;从改善游戏体验到创造全新的游戏玩法。以下是一些常见的游戏与硬件结合的方式&#xff1a; 虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;技术&#xff1a;VR和AR技术使玩家能够沉浸式地体验游戏…

OLED透明屏介绍:领先科技的革命性创新

OLED透明屏作为一项领先的科技创新&#xff0c;在产品设计和用户体验方面展现出了巨大的潜力。 在这篇文章中&#xff0c;尼伽将介绍OLED透明屏的定义、特点、应用领域以及未来发展趋势&#xff0c;以帮助您全面了解OLED透明屏。 一、OLED透明屏的定义与原理 1.1 定义&#x…

卷积神经网络——下篇【深度学习】【PyTorch】

文章目录 5、卷积神经网络5.10、⭐批量归一化5.10.1、理论部分5.10.2、代码部分 5.11、⭐残差网络&#xff08;ResNet&#xff09;5.11.1、理论部分5.11.2、代码部分 话题闲谈 5、卷积神经网络 5.10、⭐批量归一化 5.10.1、理论部分 批量归一化可以解决深层网络中梯度消失和…

如何进行电脑文件夹分类与整理?

本科电脑用了四年&#xff0c;毕业后发现空间很满&#xff0c;但是真正有用的东西仿佛就一点。好像是在学开发的时候&#xff0c;听到一个老师说&#xff0c;根目录不要放太多文件夹&#xff0c;不然就相当于没有根目录了。刚好研究生有了新的台式电脑&#xff0c;开始有规划的…