当前位置: 首页 > news >正文

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

本节均以二分类问题为例进行展开,统一定义类别标签 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)附近那个绿色中心点建立的,得到的结果就如右图所示)

相关文章:

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

本节均以二分类问题为例进行展开&#xff0c;统一定义类别标签 y ∈ { 1 , − 1 } y\in\{1,-1\} y∈{1,−1}&#xff0c;则分类正确时 y f ( x ; w ) > 0 yf(x;w)>0 yf(x;w)>0&#xff0c;且值越大越正确&#xff1b;错误时 y f ( x ; w ) < 0 yf(x;w)<0 yf(x;…...

数组(C语言)(详细过程!!!)

目录 数组的概念 一维数组 sizeof计算数组元素个数 二维数组 C99中的变⻓数组 数组的概念 数组是⼀组相同类型元素的集合。 数组分为⼀维数组和多维数组&#xff0c;多维数组⼀般比较多见的是二维数组。 从这个概念中我们就可以发现2个有价值的信息&#xff1a;(1)数…...

视频生成模型 Dream Machine 开放试用;微软将停止 Copilot GPTs丨 RTE 开发者日报 Vol.224

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…...

Vue30-自定义指令:对象式

一、需求&#xff1a;创建fbind指定 要用js代码实现自动获取焦点的功能&#xff01; 二、实现 2-1、步骤一&#xff1a;绑定元素 2-2、步骤二&#xff1a;input元素获取焦点 此时&#xff0c;页面初始化的时候&#xff0c;input元素并没有获取焦点&#xff0c;点击按钮&…...

2024/06/13--代码随想录算法(贪心)3/6|134.加油站、135.分发糖果、860.柠檬水找零、406.根据身高重建队列

134.加油站 力扣链接 class Solution:def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:curSum 0 # 当前累计的剩余油量totalSum 0 # 总剩余油量start 0 # 起始位置for i in range(len(gas)):curSum gas[i] - cost[i]totalSum gas[i] - co…...

机器学习的分类

机器学习分类 ​ 机器学习是人工智能的一个分支&#xff0c;它使计算机系统能够从数据中学习并做出决策或预测。机器学习&#xff08;Machine Learning&#xff09;是一种基于数据驱动的方法&#xff0c;旨在通过自动化的统计模型和算法从数据中学习和提取模式&#xff0c;以进…...

【Linux】进程控制3——进程程序替换

一&#xff0c;前言 创建子进程的目的之一就是为了代劳父进程执行父进程的部分代码&#xff0c;也就是说本质上来说父子进程都是执行的同一个代码段的数据&#xff0c;在子进程修改数据的时候进行写时拷贝修改数据段的部分数据。 但是还有一个目的——将子进程在运行时指向一个…...

PFC旁路二极管、继电器驱动电路以及PFC主功率

R001和R002以及R003三个电阻作用是限放X电容上的电 整流桥串联两个BJ1和BJ2 电容C3:给整流桥储能&#xff0c;给后续llc供电 PFC工作是正弦波上叠加高频电流 PFC功率部分 2个PFC电感&#xff08;选择两个磁芯骨架小&#xff0c;有利于散热&#xff09;、2个续流二极管&…...

CrossOver 2024软件下载-CrossOver 2024详细安装教程

Crossover软件是一款可以在Mac、Linux和Chromebook上运行Windows程序的软件。 它是一款商业软件&#xff0c;由CodeWeavers公司开发&#xff0c;Crossover不是一个虚拟机或模拟器&#xff0c;它使用Wine技术来将Windows程序直接转换成可以在其他操作系统上运行的程序&#xff0…...

Spark MLlib机器学习

前言 随着大数据时代的到来&#xff0c;数据处理和分析的需求急剧增加&#xff0c;传统的数据处理工具已经难以满足海量数据的分析需求。Apache Spark作为一种快速、通用的集群计算系统&#xff0c;迅速成为了大数据处理的首选工具。而在Spark中&#xff0c;MLlib&#xff08;…...

React Native将 ipad 端软件设置为横屏显示后关闭 Modal 弹窗报错

问题&#xff1a; 将 ipad 端软件设置为横屏显示后&#xff0c;关闭 Modal 弹窗报错。 Modal was presented with 0x2 orientations mask but the application only supports 0x18.Add more interface orientations to your apps Info.plist to fix this.NOTE: This will cras…...

JavaEE大作业之班级通讯录系统(前端HTML+后端JavaEE实现)PS:也可选网络留言板、图书借阅系统、寝室管理系统

背景&#xff1a; 题目要求&#xff1a; 题目一&#xff1a;班级通讯录【我们选这个】 实现一个B/S结构的电子通讯录&#xff0c;其中的每条记录至少包含学号、姓名、性别、班级、手机号、QQ号、微信号&#xff0c;需要实现如下功能&#xff1a; &#xff08;1&#xff09;…...

代码随想录算法训练营第37天|● 56.合并区间● 738.单调递增的数字

合并区间 56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 按照左边界从小到大排序之后&#xff0c;如果 intervals[i][0] < intervals[i - 1][1] 即intervals[i]的左边界 < intervals[i - 1]的右边界&#xff0c;则一定有重叠。&#xff08;本题相邻区间也算重贴…...

SQL Server中的CTE和临时表优化

在SQL Server中&#xff0c;优化查询性能是数据库管理的核心任务之一。使用公用表表达式&#xff08;CTE&#xff09;和临时表是两种重要的技术手段。本文将深入探讨CTE如何简化代码&#xff0c;以及临时表如何优化查询性能。通过实例和详尽解释&#xff0c;我们将展示这两种技…...

CCRC信息安全服务资质认证是什么

什么是CCRC认证&#xff1f; CCRC 全称 China Cybersecurity Review Technology and Certification Center。CCRC认证是指中国网络安全审查技术与认证中心进行的信息安全服务资质认证。简称信息安全服务资质认证。 CCRC&#xff0c;即中国网络安全审查技术与认证中心&#xff0…...

第五十一天 | 1143.最长公共子序列

题目&#xff1a;1143.最长公共子序列718.最长重复子数组的区别是&#xff0c;子序列不要求连续&#xff0c;子数组要求连续。这一差异体现在dp数组含义和递推公式中&#xff0c;本题是子序列&#xff0c;那就要考虑上nums1[i - 1] ! nums2[j - 1]的情况。 本道题与 1.dp数组…...

未来的5-10年,哪些行业可能会被AI代替?

在未来的5-10年&#xff0c;多个行业可能会受到AI技术的影响&#xff0c;其中一些工作可能会被AI所代替。以下是对可能被AI替代的行业及工作的一些概述&#xff1a; 客户服务与代表&#xff1a;随着AI技术的发展&#xff0c;特别是自动话术对话和语音生成技术的进步&#xff0…...

据报道,FTC 和 DOJ 对微软、OpenAI 和 Nvidia 展开反垄断调查

据《纽约时报》报道&#xff0c;联邦贸易委员会 (FTC) 和司法部 (DOJ) 同意分担调查微软、OpenAI 和 Nvidia 潜在反垄断违规行为的职责。 美国司法部将牵头对英伟达进行调查&#xff0c;而联邦贸易委员会将调查 OpenAI 与其最大投资者微软之间的交易。 喜好儿网 今年 1 月&a…...

人工智能发展历程和工具搭建学习

目录 人工智能的三次浪潮 开发环境介绍 Anaconda Anaconda的下载和安装 下载说明 安装指导 模块介绍 使用Anaconda Navigator Home界面介绍 Environment界面介绍 使用Jupter Notebook 打开Jupter Notebook 配置默认目录 新建文件 两种输入模式 Conda 虚拟环境 添…...

Dijkstra算法的原理

Dijkstra算法的原理可以清晰地分为以下几个步骤和要点&#xff1a; 初始化&#xff1a; 引入一个辅助数组D&#xff0c;其中D[i]表示从起始点&#xff08;源点&#xff09;到顶点i的当前已知最短距离。如果起始点与顶点i之间没有直接连接&#xff0c;则D[i]被初始化为无穷大&a…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...