【人工智能】—_线性分类器、感知机、损失函数的选取、最小二乘法分类、模型复杂性和过度拟合、规范化

文章目录

  • Linear predictions 线性预测
  • 分类
  • 线性分类器
  • 感知机
  • 感知机学习策略
  • 损失函数的选取
    • 距离的计算
  • 最小二乘法分类
  • 求解最小二乘分类
  • 矩阵解法
  • 一般线性分类
  • 模型复杂性和过度拟合
  • 训练误差
  • 测试误差
  • 泛化误差
  • 复杂度与过拟合
  • 规范化

Linear predictions 线性预测

分类

从具有有限离散标签的数据中学习。机器学习中的主导问题

线性分类器

二元分类可以看作是在特征空间中分离类的任务(特征空间) 在这里插入图片描述

感知机

感知机是一种线性分类模型。它的决策边界是一个超平面,将特征空间分成了两个部分,分别对应于输出为 +1 和 -1 的两个类别。

感知机的线性分类模型可以表示为:

f ( x ) = sign ( w ⋅ x + b ) f(x) = \text{sign}(\boldsymbol{w} \cdot \boldsymbol{x} + b) f(x)=sign(wx+b)

其中 w \boldsymbol{w} w b \boldsymbol{b} b为感知机模型参数, w ∈ R n \boldsymbol{w}\in \textbf{R}^n wRn 是权重或者权值向量, x \boldsymbol{x} x 是输入的特征向量, b ∈ R b\in \textbf{R} bR 是偏置(bias), w ⋅ x w\cdot x wx 表示 w w w x x x的内积, sign ( ⋅ ) \text{sign}(\cdot) sign() 是符号函数。
sign ( x ) = { + 1 , x ≥ 0 − 1 , x < 0 \text{sign}(x)=\begin{cases} +1,\quad x \ge 0\\ -1,\quad x<0 \end{cases} sign(x)={+1,x01,x<0
感知机的训练目标是找到一个能够将训练集中的正负样本完全分开的超平面,即找到一个合适的权重向量 w \boldsymbol{w} w 和偏置项 b b b,使得对于任意训练样本 ( x i , y i ) (\boldsymbol{x}_i, y_i) (xi,yi),都有
y i ( w ⋅ x i + b ) > 0 y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) > 0 yi(wxi+b)>0

这个式子表达了感知机模型的训练目标,即让感知机能够对训练集中的正负样本进行完全分开,使得每个样本都被正确分类。

对于一个训练样本 ( x i , y i ) (\boldsymbol{x}_i, y_i) (xi,yi) y i y_i yi 是其真实的标签, x i \boldsymbol{x}_i xi是其特征向量, w \boldsymbol{w} w 是感知机的权重向量, b b b 是偏置项。根据感知机模型的定义,当 w ⋅ x i + b > 0 \boldsymbol{w} \cdot \boldsymbol{x}_i + b > 0 wxi+b>0 时,模型的输出为 +1,否则输出为 -1。

因此,当 y i = + 1 y_i=+1 yi=+1 时,要求 w ⋅ x i + b > 0 \boldsymbol{w} \cdot \boldsymbol{x}_i + b > 0 wxi+b>0,即要求模型将正样本正确分类为 +1。同理,当 y i = − 1 y_i=-1 yi=1 时,要求 w ⋅ x i + b < 0 \boldsymbol{w} \cdot \boldsymbol{x}_i + b < 0 wxi+b<0,即要求模型将负样本正确分类为 -1。

综合以上两种情况,我们可以将训练目标表达为 y i ( w ⋅ x i + b ) > 0 y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b)>0 yi(wxi+b)>0,即要求每个训练样本都被正确分类,即对于任意训练样本 ( x i , y i ) (\boldsymbol{x}_i, y_i) (xi,yi),都有 y i ( w ⋅ x i + b ) > 0 y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) > 0 yi(wxi+b)>0。如果存在任意一个训练样本不能被正确分类,那么就需要不断地更新权重向量和偏置项,直到训练集中的所有样本都能被正确分类。

感知机学习策略

  1. 数据集线性可分性
  2. 在二维平面中,可以用一条直线将+1类和-1类完美分开,那么这个样本空间就是线性可分的。下图中的样本就是线性不可分的,感知机就不能处理这种情况。因此,感知机都基于一个前提:问题空间线性可分在这里插入图片描述

损失函数的选取

  1. 损失函数的一个自然选择就是误分类点的总数,要找到决策边界,即分类超平面,使得分类误差最小,可以通过最小化期望的 0/1 损失函数来实现。对于一个样本 ( x , y ) (x, y) (x,y),0/1 损失函数定义为:

    L ( h ( x ) , y ) = { 0 , h ( x ) = y 1 , h ( x ) ≠ y L(h(\textbf{x}), y) = \begin{cases} 0, \quad h(\textbf{x}) = y\\ 1, \quad h(\textbf{x}) \neq y \end{cases} L(h(x),y)={0,h(x)=y1,h(x)=y
    其中, h ( x ) h(\textbf{x}) h(x) 是模型预测的输出, y y y 是样本的真实标签。但是这样的点不是参数 w , b w,b wb的连续可导函数,不易优化

  2. 损失函数的另一个选择就是误分类点到划分超平面 S ( w ⋅ x + b = 0 ) S(\textbf{w} \cdot \textbf{x}+b=0) S(wx+b=0)的总距离
    在这里插入图片描述

距离的计算

x 0 x_0 x0 到超平面 S : w T x + b = 0 S: w^Tx+b=0 S:wTx+b=0 的距离 d d d(注: x 0 , w , x x_0,w,x x0,w,x全为N维向量)可以通过以下步骤计算:

  1. 设点 x 0 x_0 x0 在平面 S S S 上的投影为 x 1 x_1 x1,则有 w T x 1 + b = 0 w^Tx_1+b=0 wTx1+b=0
  2. -在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

在这里插入图片描述

Lhinge(也称为 hinge 损失函数)是一种常用的分类器损失函数,通常用于支持向量机(SVM)和感知机等模型 中。它的形式如下:

L h i n g e ( w , b ; x , y ) = max ⁡ { 0 , 1 − y ( w T x + b ) } L_{hinge}(w,b;x,y) = \max\{0, 1 - y(w^Tx+b)\} Lhinge(w,b;x,y)=max{0,1y(wTx+b)}

其中, w w w b b b 是模型的参数 x x x 是输入样本, y y y 是样本的标签,取值为 + 1 +1 +1 − 1 -1 1,表示正类或负类。 h ( x ) = sign ( w T x + b ) h(x) = \text{sign}(w^Tx+b) h(x)=sign(wTx+b) 表示模型对样本 x x x 的预测输出。
当模型对样本 x x x 的预测结果正确时(即 y ( h ( x ) ) > 0 y(h(x))>0 y(h(x))>0),损失函数为 0 0 0;当模型对样本 x x x 的预测结果错误时(即 y ( h ( x ) ) ≤ 0 y(h(x))\leq 0 y(h(x))0),损失函数为 1 − y ( h ( x ) ) ( w T x + b ) 1-y(h(x))(w^Tx+b) 1y(h(x))(wTx+b)
这个损失函数的含义是,对于误分类的样本,我们希望让其距离超平面至少为 1 1 1,即 y ( w T x + b ) ≥ 1 y(w^Tx+b)\geq 1 y(wTx+b)1,如果距离小于 1 1 1,则损失函数为 1 − y ( w T x + b ) 1-y(w^Tx+b) 1y(wTx+b),表示分类错误的程度;如果距离大于等于 1 1 1,则损失函数为 0 0 0,表示分类正确。
Lhinge 损失函数是一个凸函数,但不是连续可导的,因为在 y ( w T x + b ) = 1 y(w^Tx+b)=1 y(wTx+b)=1
时,存在一个“拐点”,导致其导数不连续。因此,在使用梯度下降等优化算法时,需要使用次梯度(subgradient)来代替导数,使得算法可以收敛。同时,Lhinge
损失函数也可以通过一些优化算法(如 SMO 算法)来求解支持向量机模型的最优解。

最小二乘法分类

最小二乘损失函数在这里插入图片描述
目标:学习分类器在这里插入图片描述以最小化最小二乘损失在这里插入图片描述

求解最小二乘分类

在这里插入图片描述 image-20230622202409187

矩阵解法

线性回归定义为:
h θ ( x 1 , x 2 , … x n − 1 ) = θ 0 + θ 1 x 1 + … + θ n − 1 x n − 1 h_{\theta}\left(x_{1}, x_{2}, \ldots x_{n-1}\right)=\theta_{0}+\theta_{1} x_{1}+\ldots+\theta_{n-1} x_{n-1} hθ(x1,x2,xn1)=θ0+θ1x1++θn1xn1
其中 θ \theta θ 为参数。假设现在有 m m m 个样本,每个样本有 n − 1 n-1 n1 维特征,将所有样本点代入模型中得:
h 1 = θ 0 + θ 1 x 1 , 1 + θ 2 x 1 , 2 + … + θ n − 1 x 1 , n − 1 h 2 = θ 0 + θ 1 x 2 , 1 + θ 2 x 2 , 2 + … + θ n − 1 x 2 , n − 1 ⋮ h m = θ 0 + θ 1 x m , 1 + θ 2 x m , 2 + … + θ n − 1 x m , n − 1 \begin{aligned} h_{1} &=\theta_{0}+\theta_{1} x_{1,1}+\theta_{2} x_{1,2}+\ldots+\theta_{n-1} x_{1, n-1} \\ h_{2} &=\theta_{0}+\theta_{1} x_{2,1}+\theta_{2} x_{2,2}+\ldots+\theta_{n-1} x_{2, n-1} \\ & \vdots \\ h_{m} &=\theta_{0}+\theta_{1} x_{m,1}+\theta_{2} x_{m,2}+\ldots+\theta_{n-1} x_{m, n-1} \end{aligned} h1h2hm=θ0+θ1x1,1+θ2x1,2++θn1x1,n1=θ0+θ1x2,1+θ2x2,2++θn1x2,n1=θ0+θ1xm,1+θ2xm,2++θn1xm,n1

为方便用矩阵表示,我们令 x 0 = 1 x_0=1 x0=1,于是上述方程可以用矩阵表示为: h = X θ \mathbf{h}=\mathbf{X} \theta h=Xθ
其中, h \mathbf{h} h m × 1 m \times 1 m×1 的向量,代表模型的理论值, θ \theta θ n × 1 n \times 1 n×1 的向量, X \mathbf{X} X m × n m \times n m×n 维的矩阵, m m m 代表样本的个数, n n n 代表样本的特征数。于是目标损失函数用矩阵表示为:
J ( θ ) = ∥ h − Y ∥ 2 = ∥ X θ − Y ∥ 2 = ( X θ − Y ) T ( X θ − Y ) J(\theta)=\|\mathbf{h}-\mathbf{Y}\|^2=\|\mathbf{X}\theta-\mathbf{Y}\|^2=(\mathbf{X} \theta-\mathbf{Y})^{T}(\mathbf{X} \theta-\mathbf{Y}) J(θ)=hY2=XθY2=(XθY)T(XθY)
其中 Y \mathbf{Y} Y 是样本的输出向量,维度为 m × 1 m \times 1 m×1

根据高数知识我们知道函数取得极值就是导数为0的地方,所以我们只需要对损失函数求导令其等于0就可以解出 θ \theta θ。矩阵求导属于矩阵微积分的内容,我们先介绍两个用到的公式:
∂ x T a ∂ x = ∂ a T x ∂ x = a \frac{\partial x^{T} a}{\partial x}=\frac{\partial a^{T} x}{\partial x}=a xxTa=xaTx=a
∂ x T A x ∂ x = A x + A T x \frac{\partial x^{T} A x}{\partial x}=Ax+A^{T} x xxTAx=Ax+ATx
如果矩阵 A A A 是对称的:
A x + A T x = 2 A x Ax+A^{T} x=2Ax Ax+ATx=2Ax
对目标函数化简:
J ( θ ) = θ T X T X θ − θ T X T Y − Y T X θ + Y T Y J(\theta)=\theta^{T} X^{T} X \theta-\theta^{T} X^{T}Y-Y^{T} X\theta+Y^{T} Y J(θ)=θTXTθTXTYYT+YTY
求导令其等于0:
∂ ∂ θ J ( θ ) = 2 X T X θ − 2 X T Y = 0 \frac{\partial}{\partial \theta} J(\theta)=2X^{T} X \theta-2X^TY=0 θJ(θ)=2XT2XTY=0
解得:
θ = ( X T X ) − 1 X T Y \theta=\left(X^{T}X\right)^{-1} X^{T}Y θ=(XTX)1XTY
经过推导我们得到了 θ \theta θ 的解析解,现在只要给了数据,我们就可以带入解析解中直接算出 θ \theta θ

一般线性分类

基函数(非线性)
在这里插入图片描述
其中 ϕ \phi ϕ为基函数,用于拟合非线性
在这里插入图片描述
在这里插入图片描述

模型复杂性和过度拟合

在这里插入图片描述

Ockham‘s razor(奥卡姆剃刀原则): maximize a combination of consistency and simplicity
优先选择与数据一致的最简单的假设

训练误差

训练误差(Training errors),也称为表观误差(Apparent errors),是指在训练数据集上用模型进行训练时所产生的误差。训练误差是模型在学习过程中不可避免的产物,通常我们希望训练误差越小越好,因为模型对训练数据的拟合程度越高,就越可能对未知数据产生良好的预测能力。但是,如果模型过于拟合训练数据,训练误差可能会变得非常小,但是这种模型可能会过度拟合,对于未知数据的预测性能将变得很差。

测试误差

测试误差(Test errors)是指在测试数据集上用模型进行测试时所产生的误差。测试误差用于评估模型的泛化能力,即模型是否具有对未知数据的预测能力。测试误差与训练误差之间的差异通常被称为泛化误差。

泛化误差

泛化误差(Generalization errors)是指模型在未知数据上的期望误差,即模型对于新数据的预测能力。泛化误差是机器学习中最为重要的概念之一,因为机器学习的目标是构建泛化能力强的模型,而不是仅仅在训练数据上表现良好的模型。泛化误差通常用测试误差来近似估计,但是测试误差只能提供模型的一种局部估计,因此为了更准确地估计模型的泛化误差,需要使用交叉验证等方法。

复杂度与过拟合

在这里插入图片描述 欠拟合:当模型过于简单时,训练和测试误差都很大 过拟合:当建模过于复杂时,训练误差很小,但测试误差很大

给定两个具有相似泛化误差的模型,人们应该更喜欢更简单的模型而不是更复杂的模型
复杂的模型更有可能因数据错误而意外拟合
因此,在评估模型时应包括模型复杂性

规范化

在这里插入图片描述 $λ$是惩罚权重 取$w$的L2范数作为惩罚项,让系数的取值变得平均。对于关联特征,能够获得更相近的对应系数 L1范数,系数$w$的L1范数作为惩罚项加到损失函数上,由于非零,迫使那些弱的特征所对应的系数变成0,达到特征选择 当𝜆 足够大,相当于: 在这里插入图片描述
  • L1范数正则化会使得解更加稀疏。在损失函数中加入L1范数惩罚项会使得模型尽可能地将参数稀疏化,即让一些参数变为0,从而剔除那些对模型影响较小的特征,提高模型的泛化性能。因此,L1范数正则化通常用于特征选择和稀疏性建模。
  • L2范数正则化会使得解更加平滑。在损失函数中加入L2范数惩罚项会使得模型的参数尽可能小,从而降低模型的复杂度,防止过拟合。L2范数正则化通常用于提高模型的泛化性能和防止过拟合。

需要注意的是,当L1范数惩罚项足够大时,模型的参数会变为0,从而得到一个稀疏解。而L2范数惩罚项则不会将参数完全变为0,而是将参数约束在一个较小的范围内,从而获得一个平滑的解。

不同q值的正则化项的等高线
在这里插入图片描述

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

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

相关文章

MySQL-数据类型

MySQL-数据类型 数值类型bittinyintfloatdecimal 字符串和文本类型charvarcharblobtext 日期和时间类型enum-枚举类型set-集合类型 数值类型 数据类型说明bit(M)位类型。M指定位数&#xff0c;默认值为1&#xff0c;范围1-64.tinyint [unsigned]带符号范围:-128 - 127&#xf…

JavaScript 生成 16: 9 宽高比

这篇文章只是对 for 循环一个简单应用&#xff0c;没有什么知识含量。 可以跳过这篇文章。 只是我用来保存一下我的代码&#xff0c;保存在本地我嫌碍眼&#xff0c;总想把他删了。 正文部分 公式&#xff1a;其中 width 表示宽度&#xff0c;height 表示高度 16 9 w i d t…

【微服务部署】一、使用docker-compose部署Jenkins、SonarQube、PostgreSQL

一、安装 1、编写docker-compose部署Postgres、SonarQube、Jenkins的yml文件jenkins-compose.yml Postgres&#xff1a;作为SonarQube的数据库存储SonarQube&#xff1a;代码质量检查Jenkins&#xff1a;jenkins/jenkins:lts镜像&#xff0c;jenkinsci/blueocean镜像缺少node…

22.3D等距社交媒体菜单的悬停特效

效果 源码 <!doctype html> <html><head><meta charset="utf-8"><title>CSS Isometric Social Media Menu</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.…

Vue框架--理解MVVM

我们知道&#xff0c;MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版。我们看看MVVM的模型架构&#xff0c;如下所示: 架构理解与实例

git大文件推送报错

报错信息 不多掰扯&#xff0c;直接上报错信息和截图 Delta compression using up to 8 threadsRPC failde; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large从以上的报错信息不难看出推送仓库的时候&#xff0c;请求体过大&#xff0c;为…

供热管网安全运行监测,提升供热管网安全性能

城市管网是城市的“生命线”之一&#xff0c;是城市赖以生存和发展的基础&#xff0c;在城市基础设施高质量发展中发挥着重要作用。供热管网作为城市生命线中连接供热管线与热用户的桥梁&#xff0c;担负着向企业和居民用户直接供热的重要职责。随着城市热力需求的急剧增加&…

网络实验 VlAN 中 Trunk Access端口的说明及实验

网络实验 VlAN 中 Trunk Access端口的说明及实验 VlAN 虚拟局域网技术Access端口 工作原理Trunk端口 工作原理简单实验&#xff08;一&#xff09;划分不同Vlan&#xff0c;实现vlan内部通信拓朴图主机IP 配置划分Vlanping 测试 &#xff08;二&#xff09;跨交换机实现VLAN间通…

Java 复习笔记 - 学生管理系统篇

文章目录 学生管理系统一&#xff0c;需求部分需求分析初始菜单学生类添加功能删除功能修改功能查询功能 二&#xff0c;实现部分&#xff08;一&#xff09;初始化主界面&#xff08;二&#xff09;编写学生类&#xff08;三&#xff09;编写添加学生方法&#xff08;四&#…

坦克400 Hi4-T预售价28.5万元起,越野新能源好理解

8月25日&#xff0c;在以“智享蓉城&#xff0c;驭见未来”为主题的成都国际车展上&#xff0c;坦克品牌越野新能源再启新程&#xff0c;首次以全Hi4-T新能源阵容亮相展台&#xff0c;释放坦克品牌加速布局越野新能源的强烈信号。 Hi4-T架构首款落地车型坦克500 Hi4-T上市至今斩…

Kotlin判断null比较let布尔值Boolean

Kotlin判断null比较let布尔值Boolean class MyData {val count: Int? 2023val number: Int? null }fun main(args: Array<String>) {val data MyData()val year 2022if (data.count ! null) {if (data.count > year) {println("data.count ! null")}}…

Windows 操作系统下 Python 及其模块的管理

Python 是一款解释型语言&#xff0c;理论上一个.py文件可以当成一个稍微复杂一些的字符串指令集本文不涉及jupyter,VS,VScode,Pycharm 等集成开发环境&#xff0c;这不是我们这篇文章所关心的东西 这篇文章面向的是Python 的初学者 最近没有写太多长文章&#xff0c;多写几篇&…

工具分享 | PDF文档解析工具PyMuPDF

1 需求描述 最近工作需要从PDF文档中按照章节解析出对应的文本和图片(后续可能还会有表格)&#xff0c;经过调研&#xff0c;找到了一个功能强大的解析工具MuPDF&#xff0c;对应的Python包是PyMuPDF。本篇博客记录使用它来实现具体功能。 官方文档&#xff1a;https://pymupd…

WEB项目利用Eclipse打包成war包并部署在CentOS8

1、Eclipse把WEB项目打包成war包 2、Xftp上传war包到Linux中安装Tomcat的webapps目录 /usr/local/tomcat/apache-tomcat-9.0.80/webapps3、利用IP地址访问部署的项目 在CentOS中可用 ifconfig找到对应的IP地址 http://192.168.122.2:8080/CentOS-Web/index.html

CSS学习笔记02

CSS笔记02 美化网页元素 为什么要美化网页 目的&#xff1a; 有效的传递页面信息美化网页、页面漂亮、才能吸引用户突显页面的主题提高用户的体验 span标签 span标签是短语内容的通用行内容器&#xff0c;它本身并没有任何特殊语义。 通常我们使用span标签来把我们想要重…

Docker部署RustDesk Server 设置开机自启

三、Docker安装 Docker官方和国内daocloud都提供了一键安装的脚本&#xff0c;使得Docker的安装更加便捷。 官方的一键安装方式&#xff1a; curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令&#xff1a; curl -sSL https://…

nmap的使用

目录 nmap简介 主要作用 nmap原理 namp使用 options nmap列举远程机器开放端口 普通扫描 扫描范围端口 对几个端口探测 对所有端口进行探测 指定协议探测端口 扫描对应协议的所有端口 端口状态 nmap识别目标机器上服务的指纹 服务指纹 识别目标机器服务信息 …

el-tree组件的锚点链接

el-tree部分&#xff1a; <el-tree:default-expand-all"true":data"anchorList":props"defaultProps"node-click"handleNodeClick"/> 组件内部部分&#xff1a; <div class"header" :id"content obj.id&q…

界面控件Telerik UI for WPF——Windows 11主题精简模式提升应用体验

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序&#xff0c;同时还能快速构建企业级办公WPF应用程序。Telerik UI for WPF支持MVVM、触摸等&#xff0c;创建的应用程序可靠且结构良好&#xff0c;非常容易维护&#xff0c;其直观的API将无缝地集成Visua…

Qt Creator 创建 Qt 默认窗口程序

Qt 入门实战教程&#xff08;目录&#xff09; Windows Qt 5.12.10下载与安装 使用Qt Creator 本文介绍用Qt自带的集成开发工具Qt Creator创建Qt默认的窗口程序。 本文不需要你另外安装Visual Studio 2022这样的集成开发环境&#xff0c;也不需要你再在Visual Studio 2022中…