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

news2024/11/27 4:38:25

文章目录

  • 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.coloradmin.cn/o/969176.html

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

相关文章

2022年03月 C/C++(七级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;红与黑 有一间长方形的房子&#xff0c; 地上铺了红色、 黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上&#xff0c; 只能向相邻的黑色瓷砖移动。 请写一个程序&#xff0c; 计算你总共能够到…

Aqs的CyclicBarrier。

今天我们来学习AQS家族的“外门弟子”&#xff1a;CyclicBarrier。 为什么说CyclicBarrier是AQS家族的“外门弟子”呢&#xff1f;那是因为CyclicBarrier自身和内部类Generation并没有继承AQS&#xff0c;但在源码的实现中却深度依赖AQS家族的成员ReentrantLock。就像修仙小说…

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

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

ref 操作 React 定时器

秒表 需要将 interval ID 保存在 ref 中&#xff0c;以便在需要时能够清除计时器。 import { useRef, useState } from "react";const SecondWatch () > {const [startTime, setStartTime] useState<any>(null);const [now, setNow] useState<any>…

Elasticsearch中RestClient使用

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

如何将自己的镜像使用 helm 部署

本文分别从如下几个方面来分享一波 如何将自己的镜像使用 helm 部署 简单介绍一下 helm 使用自己写 yaml 文件的方式在 k8s 中部署应用 使用 helm 的方式在 k8s 中部署应用 简单介绍一下 helm Helm 是 Kubernetes 的包管理器&#xff0c;在云原生领域用于应用打包和分发 Hel…

12. 微积分 - 梯度积分

Hi,大家好。我是茶桁。 上一节课,我们讲了方向导数,并且在最后留了个小尾巴,是什么呢?就是梯度。 我们再来回看一下但是的这个式子: [ f x f y

信息系统项目管理师(第四版)教材精读思维导图-第八章项目整合管理

请参阅我的另一篇文章&#xff0c;综合介绍软考高项&#xff1a; 信息系统项目管理师&#xff08;软考高项&#xff09;备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 本章思维导图PDF格式 本章思维导图XMind源文件 目录 8.1 管理基础 8.2 管理过程 8.3 制定项…

LRU算法 vs Redis近似LRU算法

LRU(Least Recently Use)算法&#xff0c;是用来判断一批数据中&#xff0c;最近最少使用算法。它底层数据结构由Hash和链表结合实现&#xff0c;使用Hash是为了保障查询效率为O(1)&#xff0c;使用链表保障删除元素效率为O(1)。 LRU算法是用来判断最近最少使用到元素&#xf…

最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)

文章目录 前言A - Dijkstra Algorithm0x00 算法题目0x01 算法思路0x02 代码实现 B - 最长路0x00 算法题目0x01 算法思路0x02 代码实现 C - 二分图最大匹配0x00 算法题目0x01 算法思路0x02 代码实现 D - 搭配飞行员0x00 算法题目0x01 算法思路0x02 代码实现 E - The Perfect Sta…

企业架构LNMP学习笔记11

Nginx配置文件的介绍&#xff1a; #nginx子进程启动用户 #user nobody; #子进程数量 一般调整为cpu核数或者倍数 worker_processes 1; #错误日志定义 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#进程pid 存储文件…

ISO/IEC/ITU标准如何快速查找(三十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

C++中的语法知识虚继承和虚基类

多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。 多继承时很容易产生命名冲突,即使我们很小心地将所有类…

UDP和TCP协议报文格式详解

在初识网络原理(初识网络原理_蜡笔小心眼子&#xff01;的博客-CSDN博客)这篇博客中,我们简单的了解了一下TCP/IP五层网络模型,这篇博客将详细的学习一下五层网络模型中传输层的两个著名协议:UDP和TCP 目录 一, 传输层的作用 二, UDP 1,UDP协议的特点 2,UDP报文格式 三, TC…

【数据结构】如何设计循环队列?图文解析(LeetCode)

LeetCode链接&#xff1a;622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09; 目录 做题思路 只开辟 k 个空间 多开一个空间 代码实现 1. 循环队列的结构 2. 开辟空间 3. 判断空 4. 判断满 5. 队尾插入数据 6. 队头删除数据 7. 获取队头元素 8. 获取队尾元…

ElasticSearch第二讲:ES详解 - ElasticSearch基础概念

ElasticSearch第二讲&#xff1a;ES详解 - ElasticSearch基础概念 在学习ElasticSearch之前&#xff0c;先简单了解下ES流行度&#xff0c;使用背景&#xff0c;以及相关概念等。本文是ElasticSearch第二讲&#xff0c;ElasticSearch的基础概念。 文章目录 ElasticSearch第二讲…

【GoldenDict】win11牛津高阶英汉双解词典安装使用方法

【词典资源】 1&#xff08;本文章使用的版本&#xff09;牛津高阶&#xff08;第10版 英汉双解&#xff09; V11.8&#xff1a; https://pan.baidu.com/s/11272Cldde_2UttQkWS2MlQ 提取码&#xff1a;0p3j 2&#xff08;另一版本&#xff09;第十版 v13.2&#xff1a; ht…

信息系统项目管理师(第四版)教材精读思维导图-第九章项目范围管理

请参阅我的另一篇文章&#xff0c;综合介绍软考高项&#xff1a; 信息系统项目管理师&#xff08;软考高项&#xff09;备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 本章思维导图PDF格式 本章思维导图XMind源文件 目录 9.1 管理基础 9.2 管理过程 9.3 规划范…

【Linux】线程安全-信号量

文章目录 信号量原理信号量保证同步和互斥的原理探究信号量相关函数初始化信号量函数等待信号量函数释放信号量函数销毁信号量函数 信号量实现生产者消费者模型 信号量原理 信号量的原理&#xff1a;资源计数器 PCB等待队列 函数接口 资源计数器&#xff1a;对共享资源的计…

Python之单调栈

单调栈 了解单调栈先要了解栈。栈&#xff08;stack&#xff09;又名堆栈&#xff0c;它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶&#xff0c;相对地&#xff0c;把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈&…