【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】线性分类模型损失函数对比

news2024/9/22 8:19:55

本节均以二分类问题为例进行展开,统一定义类别标签 y ∈ { + 1 , − 1 } y\in\{+1,-1\} y{+1,1},则分类正确时 y f ( x ; w ) > 0 yf(x;w)>0 yf(x;w)>0,且值越大越正确;错误时 y f ( x ; w ) < 0 yf(x;w)<0 yf(x;w)<0,且值越小越错误。不同损失函数间的损失随 y f ( x ; w ) yf(x;w) yf(x;w)变化如下图所示:
在这里插入图片描述

平方损失

L = ( y − f ( x ; w ) ) 2 = y 2 − 2 y f ( x ; w ) + f 2 ( x ; w ) = 1 − 2 y f ( x ; w ) + y 2 f 2 ( x ; w ) = ( 1 − y f ( x ; w ) ) 2 \begin{aligned} \mathcal{L} &=(y-f(x;w))^2 \\ &=y^2-2yf(x;w)+f^2(x;w) \\ &=1-2yf(x;w)+y^2f^2(x;w) \\ &=(1-yf(x;w))^2 \end{aligned} L=(yf(x;w))2=y22yf(x;w)+f2(x;w)=12yf(x;w)+y2f2(x;w)=(1yf(x;w))2
对于平方损失来说,当 y f ( x ; w ) < 1 yf(x;w)<1 yf(x;w)<1时,损失函数单调递减,此时如果用梯度下降进行优化,最终会收敛于点1。但当 y f ( x ; w ) > 1 yf(x;w)>1 yf(x;w)>1时,损失函数单调递减,同样在进行优化时还是会收敛于1,但事实上 y f ( x ; w ) yf(x;w) yf(x;w)越大说明分类越正确。因此可以说,平方损失不适合做分类任务。

Logistic回归的损失函数(交叉熵损失)

L = − I ( y = 1 ) log ⁡ σ ( f ( x ; w ) ) − I ( y = − 1 ) log ⁡ ( 1 − σ ( f ( x ; w ) ) ) = − I ( y = 1 ) log ⁡ σ ( f ( x ; w ) ) − I ( y = − 1 ) log ⁡ ( σ ( − f ( x ; w ) ) ) = − log ⁡ σ ( y f ( x ; w ) ) = log ⁡ σ − 1 ( y f ( x ; w ) ) = log ⁡ ( 1 + exp ⁡ ( − y f ( x ; w ) ) ) \begin{aligned} \mathcal{L} &=-I(y=1)\log\sigma(f(x;w))-I(y=-1)\log(1-\sigma(f(x;w)))\\ &=-I(y=1)\log\sigma(f(x;w))-I(y=-1)\log(\sigma(-f(x;w)))\\ &=-\log\sigma(yf(x;w))\\ &=\log\sigma^{-1}(yf(x;w))\\ &=\log(1+\exp(-yf(x;w))) \end{aligned} L=I(y=1)logσ(f(x;w))I(y=1)log(1σ(f(x;w)))=I(y=1)logσ(f(x;w))I(y=1)log(σ(f(x;w)))=logσ(yf(x;w))=logσ1(yf(x;w))=log(1+exp(yf(x;w)))
对于函数 σ ( x ) \sigma(x) σ(x),可证 1 − σ ( x ) = σ ( − x ) 1-\sigma(x)=\sigma(-x) 1σ(x)=σ(x),且 I I I是指示函数,
I ( y = 1 ) = 1 y = 1 = { 1 y = 1 0 y = − 1 I(y=1)=\mathbb{1}_{y=1}=\left\{\begin{aligned} &1&y=1\\\\ &0&y=-1 \end{aligned}\right. I(y=1)=1y=1= 10y=1y=1
I ( y = − 1 ) = 1 y = − 1 = { 1 y = − 1 0 y = 1 I(y=-1)=\mathbb{1}_{y=-1}=\left\{\begin{aligned} &1&y=-1\\\\ &0&y=1 \end{aligned}\right. I(y=1)=1y=1= 10y=1y=1
由图像可知,随着 y f ( x ; w ) yf(x;w) yf(x;w)的增大,函数损失逐渐减小最终趋于0。这样虽然满足了 y f ( x ; w ) yf(x;w) yf(x;w)越大分类效果越好的条件,但其实这是没必要的,因为当损失大于0时就可以完成分类任务。因此虽然说交叉熵损失可以满足分类要求,但造成了一些不必要的计算,仍然具有改进空间。

感知器的损失函数

L = max ⁡ ( 0 , − y f ( x ; w ) ) \mathcal{L}=\max(0,-yf(x;w)) L=max(0,yf(x;w))
感知器损失解决了交叉熵损失的问题。感知器损失是专门为分类而设计的损失函数,其结果与真实效果基本一致。

软间隔支持向量机的损失函数(Hinge损失)

L = max ⁡ ( 0 , 1 − y f ( x ; w ) ) \mathcal{L}=\max(0,1-yf(x;w)) L=max(0,1yf(x;w))
Hinge损失与感知器损失在几何上的不同仅仅在于Hinge损失在感知器损失的基础上向右平移了一个单位,这就导致了Hinge损失对距离分界面较近的样本( y f ( x ; w ) yf(x;w) yf(x;w)落在0到1之间)造成一定的惩罚。

结论

从模型健壮性角度来讲,选择支持向量机(Hinge损失)来解决一般分类问题的效果更好
各线性分类模型对比如下表所示
在这里插入图片描述

XOR问题

感知器和支持向量机虽然在线性可分问题上表现良好,但其无法解决非线性可分问题,例如XOR(异或)问题。
假设空间中有两个变量 ( x 1 , x 2 ) (x_1,x_2) (x1,x2),对两个变量分别取与、或、异或逻辑运算,结果如下图所示。
在这里插入图片描述

对于与运算和或运算产生的结果来说,总能找到一个分界面来把两类分开,也就是说这两个结果产生的数据集是线性可分的;但异或运算的结果无法直接找到一个分界面,也就是说它的结果数据是非线性可分的。XOR这类非线性可分问题是无法通过线性分类器来解决的。
要解决这类问题,可以借助使用”基函数“的广义线性模型,也就是把线性模型过一个基函数,让线性模型变为非线性的,也就是将 f ( x ) = w T x f(x)=w^Tx f(x)=wTx变成 f ( ϕ ( x ) ) = w T ϕ ( x ) f(\phi(x))=w^T\phi(x) f(ϕ(x))=wTϕ(x),这样就实现了将非线性可分的数据集映射到另一个空间中,映射的数据集在这个空间中是线性可分的。

以下图为例,
在这里插入图片描述

左图表示原来的数据集,可见该数据集是非线性可分的。但它有一个很明显的特征,对于这个数据集来说,可以找到一个中心点,计算样本到中心点的距离,使得中心点某个范围内的为一类,范围外的为另一类,这样就可以构建出一个特征函数,将原本非线性可分的数据集映射到线性可分的数据集上。(上面这个图是按照坐标(-1,-1)附近那个绿色中心点建立的,得到的结果就如右图所示)

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

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

相关文章

大数计算器(加减乘除)

#define _CRT_SECURE_NO_DEPRECATE 1#include<stdio.h> #include<string.h> #define N 200 #define jc_MAX 4000//输入 void input_digit(char s1[], char s2[]) {printf("请输入第一个数&#xff1a;");scanf("%s", s1);printf("请输入第…

郑州申请大气污染防治乙级资质,这些材料必不可少

在郑州申请大气污染防治乙级资质时&#xff0c;以下材料是必不可少的&#xff1a; 一、企业基础资料&#xff1a; 企业法人营业执照副本&#xff1a;需清晰&#xff0c;且在有效期内[1][2]。企业章程&#xff1a;提交企业章程的扫描件或复印件&#xff0c;以展示企业的组织结构…

基于机器学习和深度学习的轴承故障诊断方法(Python)

在工业早期&#xff0c;设备故障诊断通常由专家通过观察设备运行中的变量参数并结合自身知识进行诊断。但相比传统的机理分析方法&#xff0c;数据驱动的智能设备故障诊断更能充分提取数据中隐含的故障征兆、因果逻辑等关系。智能设备故障诊断的优势表现在其对海量、多源、高维…

【Python】已完美解决:ERROR: Could not find a version that satisfies the requirement re

文章目录 一、问题背景二、可能出错的原因三、错误代码示例四、正确代码示例&#xff08;结合实战场景&#xff09;五、注意事项 已解决&#xff1a;“ERROR: Could not find a version that satisfies the requirement re”的问题 一、问题背景 在使用Python的pip包管理器安…

codegeex2-6b-int4 部署

codegeex2-6b-int4 模型文件 CodeGeeX2 仓库文件地址 CodeGeeX2 推理教程 conda create -n codegeex2 python3.10 -y conda activate codegeex2 pip install -r requirements.txt -i https://pypi.mirrors.u…

2024中国翻译行业发展报告

来源&#xff1a;中国翻译协会 近期历史回顾&#xff1a; 2024国内工商业储能市场研究报告.pdf 2023幸福企业白皮书.pdf 2024年欧亚地区移动经济报告.pdf 内容供应链变革 2023人工智能与首席营销官&#xff08;CMO&#xff09; AI科技对PC产业的影响.pdf 金融业数据应用发展报…

成都晨持绪:抖音电商新手怎么做可信

在如今这个信息爆炸的时代&#xff0c;抖音作为新兴的电商平台&#xff0c;为许多创业者和商家提供了展示和销售产品的新渠道。然而&#xff0c;对于刚入行的新手来说&#xff0c;如何在抖音上建立起一个可信的电商身份&#xff0c;却是一个值得深思的问题。 要确保所售卖的产品…

短剧分销市场动态:机遇挑战双重解读

一、引言 近年来&#xff0c;随着互联网的快速发展和智能手机的普及&#xff0c;短视频和短剧逐渐成为人们日常娱乐的重要组成部分。短剧以其短小精悍、情节紧凑的特点&#xff0c;吸引了大量观众的关注和喜爱。而短剧分销市场则应运而生&#xff0c;为内容创作者和平台方提供了…

[数据集][目标检测]减速带检测数据集VOC+YOLO格式5400张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;5400 标注数量(xml文件个数)&#xff1a;5400 标注数量(txt文件个数)&#xff1a;5400 标注…

Linux 中 “ 磁盘、进程和内存 ” 的管理

在linux虚拟机中也有磁盘、进程、内存的存在。第一步了解一下磁盘 一、磁盘管理 &#xff08;1.1&#xff09;磁盘了解 track&#xff08; 磁道 &#xff09; &#xff1a;就是磁盘上的同心圆&#xff0c;从外向里&#xff0c;依次排序1号&#xff0c;2号磁盘........等等。…

ZnO电阻片在低电场区域的泄漏电流及其电阻的负温度系数

在低电场区域,流过ZnO非线性电阻的泄漏电流小于1mA.泄漏电流不仅与施加的电压幅值有关,而且与温度高低有关。图2.6表示温度对泄漏电流的影响,温度越高,电子在电场作用下定向的运动就越激烈,导致泄漏电流增大。因此温度升高将导致电阳值下降,即ZnO 电阻呈现负温度特性。 一般以…

Siemens-NXUG二次开发-创建平面(无界非关联)、固定基准面[Python UF][20240614]

Siemens-NXUG二次开发-创建平面&#xff08;无界非关联&#xff09;、固定基准面[Python UF][20240614] 1.python uf函数1.1 NXOpen.UF.Modeling.CreatePlane1.2 NXOpen.UF.ModlFeatures.CreateFixedDplane 2.示例代码2.1 pyuf_plane.py 3.运行结果3.1 内部模式3.1.1 NXOpen.UF…

期末复习5---PTA

以下是提交正确的代码&#xff1a; int max_len( char *s[], int n ) {int i;int max0;for(i1;i<n;i){if(strlen(s[i])>strlen(s[max]))maxi;}return strlen(s[max]); } 以下是我自己写的代码&#xff1a; 出现的问题是 &#xff1a;括号加的不对&#xff0c;需要细心…

湖仓一体全面开启实时化时代

摘要&#xff1a;本文整理自阿里云开源大数据平台负责人王峰&#xff08;莫问&#xff09;老师在5月16日 Streaming Lakehouse Meetup Online 上的分享&#xff0c;主要介绍在新一代湖仓架构上如何进行实时化大数据分析。内容主要分为以下五个部分&#xff1a; Data Lake Dat…

YOLOv8可视化界面,web网页端检测

YOLOv8可视化界面&#xff0c;web网页端检测。支持图片检测&#xff0c;视频检测&#xff0c;摄像头检测等&#xff0c;支持检测、分割等多种任务&#xff0c;实时显示检测画面。支持自定义数据集&#xff0c;计数&#xff0c;……

【教程】从0开始搭建大语言模型:构造GPT模型

从0开始搭建大语言模型&#xff1a;构造GPT模型 从0开始搭建大语言模型&#xff1a;构造GPT模型GPT模型Layer NormalizationGELU激活函数Feed Forward网络增强shortcut连接构造Transformer Block构造GPT模型使用GPT模型生成文本 从0开始搭建大语言模型&#xff1a;构造GPT模型 …

第104天: 权限提升-Linux 系统环境变量定时任务权限配置不当MDUT 自动化

目录 案例一&#xff1a;Linux-环境变量文件配合 SUID-本地 案例二&#xff1a;Linux-定时任务打包配合 SUID-本地 案例三&#xff1a;Linux-定时任务文件权限配置不当-WEB&本地 案例四&#xff1a;Linux-第三方软件 MYSQL 数据库提权-WEB&本地 隧道出网 手工提权…

将自己md文件发布到自己的博客园实现文件的持久化存储

上传markdown文件到博客园 目录 【0】需求原因【1】功能【2】环境【最佳实践测试】 &#xff08;1&#xff09;查看 Typora 设置&#xff08;2&#xff09;配置 pycnblog 配置文件 config.yaml&#xff08;3&#xff09;运行 pycnblog 中的文件 cnblog_markdown.cmd&#xff0…

基于文本和图片输入的3D数字人化身生成技术解析

随着虚拟现实、增强现实和元宇宙等技术的飞速发展,对高度逼真且具有表现力的3D数字人化身的需求日益增长。传统的3D数字人生成方法往往需要依赖大量的3D数据集,这不仅增加了数据收集和处理的成本,还限制了生成的多样性和灵活性。为了克服这些挑战,我们提出了一种基于文本提…

flask基础3-蓝图-cookie-钩函数-flask上下文-异常处理

目录 一&#xff1a;蓝图 1.蓝图介绍 2.使用步骤 3.蓝图中的静态资源和模板 二.cookie和session 1.cookie 2.flask中操作cookie 3.session 4.session操作步骤 三.请求钩子 四.flask上下文 1.介绍 2.请求上下文&#xff1a; 3.应用上下文 3.g对象 五&#xff1a;…