02 线性模型

目录

1. Logistic 回归

2. Softmax回归

3. 感知器

4. 支持向量机

5. 总结


        线性模型是机器学习中常用的一类预测模型。这类模型假设输出变量(目标)与输入变量(特征)之间存在线性关系。 本文主要介绍四种不同线性分类模型:Logistic回归、Softmax回归、感知器和支持向量机,这些模型的区别主要在于使用了不同的损失函数。

1. Logistic 回归

      Logistic 回归(Logistic Regression,LR)是一种常用的处理二分类问题的线性模型。分类问题的值为离散型,即“要么是A”、“要么是B”。为了解决连续的线性函数不适合进行分类的问题,Logistic 回归引入非线性函数𝑔,将f(\textbf{\textit{x}};\textit{\textbf{w}})的值“挤压”到0~1之间,用来表示概率,如下式:

p(y=1|\textbf{\textit{x}})=g(f(\textbf{\textup{\textit{x;w}}}))

g(x)=\frac{1}{1+e^{-x}}

      其中,g函数称为sigmoid函数,在神经网络中的作用为激活函数,由于f(\textbf{\textit{x;w}})=\textbf{\textit{w}}^T\textbf{\textit{x}},因此上式可写为:

p(y=1|\textbf{\textit{x}})=\frac{1}{1+exp(-\textbf{\textit{w}}^T\textbf{\textit{x}})}

      这样,我们可以给定一个阈值进行分类,比如阈值为0.5,大于0.5是A类,小于0.5是B类。g函数的图像如下:

     Logistic 回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化。使用交叉熵损失函数,其风险函数为:

R(\textbf{\textit{w}})=\frac{1}{N}\sum_{n=1}^{N}[y^{(n)}logy^{(n)}+(1-y^{(n)})log(1-y^{(n)})]

     由于g'(x)=g(x)·(1-g(x)),则风险函数R(w)关于w的偏导数为:

        采用梯度下降法,Logistic回归的训练过程通过下式来迭代更新参数:

2. Softmax回归

      Softmax 回归(Softmax Regression),也称为多项(Multinomial)或多类(Multi-Class)的Logistic回归,是Logistic回归在多分类问题上的推广。

      Softmax是一种数学函数,通常用于将一组任意实数转换为表示概率分布的实数。其本质上是一种归一化函数,因为softmax将可以将一组任意的实数值转化为[0, 1]之间的的值,所以它们可以被解释为概率。Softmax 回归预测概率为(假设有K类):

p(y=c|\textbf{\textit{x}})=g(f(\textbf{\textup{\textit{x;w}}}))=\frac{exp(\textbf{\textit{w}}^T\textbf{\textit{x}})}{\sum_{i=1}^{K}exp(\textbf{\textit{w}}_i^T\textbf{\textit{x}})}

      实际应用中,数据的标签常用独热编码(one-hot)表示,对于类别c,其标签为:

\textbf{\textit{y}}=[I(1=c),I(2=c),\cdots ,I(K=c)]^T

 其中,I(·)为指示函数。采用交叉熵损失函数,Softmax回归模型的风险函数为:

R(\textbf{\textit{w}})=-\frac{1}{N}\sum_{n=1}^{N}(\textbf{\textit{y}}^{(n)})^Tlog\hat{\textbf{\textit{y}}}^{(n)}

其中,\hat{\textbf{\textit{y}}}^{(n)}=p(y=c|\textbf{\textit{x}})为样本\textit{\textbf{x}}^{(n)}在每个类别的后验概率。风险函数R(W)关于W的偏导数为:

      采用梯度下降法,Softmax 回归的训练过程通过下式来迭代更新参数W

式中,\alpha是学习率,\hat{\textit{\textbf{y}}}^{(n)}_{W_t}是当参数为W_t时模型的预测值。 

      注意:Softmax 回归往往需要使用正则化来约束其参数。

3. 感知器

      感知器(Perceptron)由 Frank Roseblatt 于 1957 年提出,是一种广泛使用的线性分类器,感知器可谓是最简单的人工神经网络,只有一个神经元,有与生物神经元相对应的部件,如权重(突触)、偏置(阈值)及激活函数(细胞体)。

      感知器的激活函数采用符号函数(Sign Function):

g(x)=sgn(x)=\left\{\begin{matrix} 1 & if&x>0 \\ -1 & if &x<0 \end{matrix}\right.

      因此,感知器预测概率:

\hat{\textbf{\textit{y}}}=sgn(\textbf{\textit{w}}^T\textbf{\textit{x}})=\left\{\begin{matrix} 1 & if&\textbf{\textit{w}}^T\textbf{\textit{x}}>0 \\ -1 & if &\textbf{\textit{w}}^T\textbf{\textit{x}}<0 \end{matrix}\right.

      感知器的算法原理为:

       感知器的损失函数可写为如下表达式:

Loss(\textbf{\textit{w;x}},y)=max(0,-y\textbf{\textit{w}}^T\textbf{\textit{x}})

      采用随机梯度下降,其每次更新的梯度为:

       二分类感知器的算法训练过程如下:

    

       Novikoff于1963年证明了对于二分类问题,如果训练集是线性可分的(在二维空间中,‌表现为存在一条直线能够将两种不同类别的数据点分开),那么感知器算法可以在有限次迭代后收敛。

      传统的二分类感知器有两个缺点:

      (1)感知器算法可收敛但并不能保证找到的判别函数是最优的(比如泛化能力高),这样可能导致过拟合。

      (2)感知器学习到的权重向量和训练样本的顺序相关,在迭代次序上排在后面的错误样本比前面的错误样本对最终的权重向量影响更大,比如有1000个训练样本,在迭代100个样本后感知器已经学习到一个很好的权重向量,在接下来的899个样本上都预测正确,也没有更新权重向量,但是在最后第1000个样本时预测错误,并更新了权重,这次更新可能反而使得权重向量变差。

      为了提高感知器的鲁棒性和泛化能力,可采用“平均感知器算法”:

      复旦大学邱锡鹏《神经网络与深度学习》中给出平均感知器算法训练过程:

    

     阿里的通义千问给出的平均感知器工作流程:

(1)初始化权重向量 w 和累积权重向量 aw 为零向量。
(2)遍历训练数据集中的每个样本,对于每个样本:a. 使用当前权重向量 w 对样本进行预测;b. 如果预测错误,根据学习率和输入样本更新权重向量 w;c. 更新累积权重向量 aw = aw + w。
(3)重复步骤(2),直到达到预定的迭代次数或满足停止条件。
(4)最终的权重向量是 aw / T,其中 T 是总的迭代次数。

      平均感知器特别适用于文本分类等自然语言处理任务,因为它能够处理高维稀疏特征空间,并且在大规模数据集上表现出色。

      广义感知器算法(Generalized Perceptron Algorithm)是对原始二分类感知器的扩展,用于解决多分类问题。在多分类情况下,我们通常需要多个感知器,每个感知器负责区分某一类与其他所有类。这种方法也被称为“一对多”或“一对其余”策略。  

        注意:广义感知器算法并不保证找到全局最优解,它可能收敛到一个局部最优解。此外,对于非线性可分的数据集,广义感知器可能无法找到合适的分类边界。为了改善性能和稳定性,可以采用一些技术,例如引入正则化项来避免过拟合,或者使用更复杂的模型如多层感知器(MLP)或支持向量机(SVM)等。在实际应用中,还经常使用交叉验证来调整参数和选择最佳模型。

4. 支持向量机

      支持向量机(Support Vector Machine, SVM)是一种广泛使用的监督学习模型,主要用于分类和回归分析。SVM的核心思想是找到一个超平面,使得两类数据点被这个超平面分开,并且两类数据点到超平面的最近距离最大。这个超平面被称为最大间隔超平面。SVM是一个经典的二分类算法,其找到的分割超平面具有更好的鲁棒性,因此广泛使用在很多任务上,并表现出了很强优势。

      下面根据《神经网络与深度学习》来说明SVM算法原理:

        间隔由最近点到超平面的距离决定,因此间隔又可以写为:

\gamma =\frac{1}{||\textbf{\textit{w}}||}

        因此,寻找超平面的问题就转化为了寻找最小||\textbf{\textit{w}}||的问题,这又等同寻求\frac{1}{2}||\textbf{\textit{w}}||^2的最小值。当使用拉格朗日乘数法求解时,问题又转化为了下式的求解:

        支持向量机的主优化问题为凸优化问题,即\Gamma (\lambda )的最大值就是最优解,可采用序列最小优化(SMO)等方法求解。

        支持向量机的目标函数可以通过SMO等优化方法得到全局最优解,因此比其他分类器的学习效率更高.此外,支持向量机的决策函数只依赖于支持向量,与训练样本总数无关,分类速度比较快.

 至此,介绍完了SVM算法的原理!


      现在,介绍一种SVM的高阶使用方法:核技巧(Kernel Trick)

       SVM算法的应用前提是训练集样本线性可分,那如果样本不可分呢?解决办法是:引入一个核函数!

      核函数能够将数据映射到更高维的空间,使得原本线性不可分的问题变得线性可分。核函数通过计算原始空间中两个点的内积,从而在高维空间中模拟点积的计算。这样,SVM就可以在不需要显式映射到高维空间的情况下,处理非线性问题。 

      核函数包括:线性核、多项式核、高斯径向基函数核(RBF)、sigmoid核等。核函数类型根据数据的特性选择,对于线性可分数据,选择线性核函数,对于非线性数据可选后三类。


      最后,介绍一个避免SVM分类器过拟合的手段:软间隔(Soft Margin) 

      SVM的软间隔是相对于硬间隔而言的,在一定程度上容忍某些样本点被错误分类,为了减少过拟合的风险,提高模型的泛化能力。软间隔是指在SVM模型中,通过引入松弛变量允许某些样本点不满足原本的硬间隔条件,即允许样本点位于超平面的错误一侧或在间隔内部。这样做可以避免模型对训练数据中的噪声或异常点过于敏感。

       软间隔原理:

      软间隔SVM适用于数据不完全线性可分的情况,如手写数字识别、人脸识别、文本分类和图像分类等。

5. 总结

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

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

相关文章

Java面试八股之Redis怎么实现消息队列

Redis怎么实现消息队列 Redis实现消息队列主要依赖于其内置的数据结构&#xff0c;如List、Pub/Sub&#xff08;发布/订阅&#xff09;和Stream。下面将分别介绍这三种方式及其特点&#xff1a; 1. List实现消息队列 Redis的List是一个双向链表&#xff0c;支持快速的头部和…

【Linux/Windows】Wireshark抓包工具下载、安装、使用、数据分析、常用知识点

文章目录 Linux版下载Windows版下载Wireshark使用Wireshark测试Tcp三次握手Wireshark常见过滤条件本篇小结 更多相关内容可查看 在一个阳光明媚的周五清晨&#xff0c;一起快乐的玩耍一下Wireshark Linux版下载 1.使用yum安装wireshark yum -y install wireshark2.使用yum安…

TDC 5.0:多集群统一纳管,构建一体化大数据云平台

近期&#xff0c;星环科技数据云平台Transwarp Data Cloud&#xff08;简称TDC&#xff09;5.0版本正式发布&#xff0c;TDC5.0架构屏蔽底层多个TDH集群的差异&#xff0c;采用统一操作模式&#xff0c;新增一个多集群抽象与管理层&#xff0c;能够实现多集群网络互通、跨集群资…

一文搞懂Java中的双亲委派

一天正在宿舍里忙着写代码。突然&#xff0c;老师给我布置了一项新任务&#xff1a;优化他正在开发的项目中的类加载机制。我对类加载器了解不多&#xff0c;开始翻阅各种资料&#xff0c;逐渐了解了Java中的类加载器机制。尤其是当读到双亲委派模型时&#xff0c;脑海中豁然开…

【鸿蒙学习笔记】舜和酒店项目开发

这里写目录标题 前期准备1. 环境准备2. 开发工具准备 创建项目1. 使用 deveco-studio 创建 ShunHeHotel 项目2. 把ShunHeHotel 项目使用git进行版本控制3. 提交第1个commit&#xff0c;Alt0 → 输入commit message → 提交4. 查看已经提交的第一个提交5. gitcode 创建同名远程项…

微信小程序毕业设计-选课系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

杭州外贸网站建设 最好用wordpress模板来搭建

防护服wordpress外贸网站模板 消防服、防尘服、隔热服、防化服、防静电服、电焊服wordpress外贸网站模板。 https://www.jianzhanpress.com/?p4116 工业品wordpress外贸网站模板 机械及行业设备、五金工具、安全防护、包装、钢铁、纺织皮革等工业品wordpress外贸网站模板。…

家庭主妇人格独立问题,不断成长自己,保持人格独立

86天 周六反省 家庭主妇人格独立问题&#xff1b; 深刻反省自己&#xff0c;成长、改变自己&#xff1b;身体有毛病就去治疗&#xff0c;心上有问题就去改正&#xff1b;多年形成的习惯需要下功夫填坑 无论在哪个时刻我们都应该成长自己、人格独立&#xff0c;和爱人一起成长…

卷积神经网络【CNN】--池化层的原理详细解读

池化层&#xff08;Pooling Layer&#xff09;是卷积神经网络&#xff08;CNN&#xff09;中的一个关键组件&#xff0c;主要用于减少特征图&#xff08;feature maps&#xff09;的维度&#xff0c;同时保留重要的特征信息。 一、池化层的含义 池化层在卷积神经网络中扮演着降…

mac如何合并pdf文件到一个文件 macpdf合并 Mac如何合并pdf文件

在数字化的今天&#xff0c;pdf文件因其跨平台、格式统一等优势&#xff0c;已经成为工作、学习和生活中不可或缺的文件格式。然而&#xff0c;当我们需要合并多个pdf文件时&#xff0c;可能会感到有些无从下手。本文将为你详细介绍几种简单实用的合并pdf的方法&#xff0c;让你…

使用Tailwind CSS实现响应式面板

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 代码应用场景 此代码旨在用作 Web 应用程序或软件平台的仪表板界面。它提供结构化布局&#xff0c;包含多个部分&#xff0c;用于显示关键统计数据、最近活动和用户管理功能。仪表板旨在提供基本数据的全面概述…

第十四届蓝桥杯省赛C++B组H题【整数删除】题解(AC)

题目大意 依次删除长度为 n n n 的数组中的 k k k 个最小值&#xff0c;在删除一个数后&#xff0c;该数的相邻数加上它的值&#xff0c;输出最终数组。 解题思路 数组中删除一个数的复杂度为 O ( n ) O(n) O(n)&#xff0c;故我们可以考虑用链表进行维护&#xff0c;这样…

3112. 访问消失节点的最少时间 Medium

给你一个二维数组 edges 表示一个 n 个点的无向图&#xff0c;其中 edges[i] [ui, vi, lengthi] 表示节点 ui 和节点 vi 之间有一条需要 lengthi 单位时间通过的无向边。 同时给你一个数组 disappear &#xff0c;其中 disappear[i] 表示节点 i 从图中消失的时间点&#xff0…

【hadoop大数据集群 2】

【hadoop大数据集群 2】 文章目录 【hadoop大数据集群 2】1. 虚拟机克隆2. 时间同步3. 环境变量配置、启动集群、关闭集群 1. 虚拟机克隆 克隆之后一定要重新生成新虚拟机唯一的MAC地址和UUID等&#xff0c;确保新虚拟机与源虚拟机在网络拓扑中不发生冲突。 注意1.生成新的MA…

【C++】C++设计远程桌面软件的技术详解

在当今的数字化时代&#xff0c;远程桌面技术已成为企业远程办公、技术支持、教育培训等领域不可或缺的一部分。它允许用户从任何地点通过互联网安全地访问和控制远程计算机&#xff0c;就像直接坐在那台计算机前一样。C作为一种高效、灵活且性能强大的编程语言&#xff0c;非常…

C++ 继承详解:从基础到深入

继承是面向对象编程中最强大的功能之一&#xff0c;它不仅促进了代码的重用&#xff0c;还帮助我们构建复杂的系统。在C中&#xff0c;通过继承&#xff0c;我们可以创建一个新的类&#xff08;称为派生类&#xff09;来扩展现有类&#xff08;基类&#xff09;的功能。本文将全…

复学数据结构

1.for循环 c中的for循环和js的for循环用法一样 for (初始化表达式; 条件表达式; 递增/递减表达式) {// 循环体 } 2.数组 1&#xff09;时间复杂度 算法 平均情况 最坏情况 访问 O(1) O(1) 搜索 O(n) O(n) 插入 O(n) O(n) 删除 O(n) O(n) 2&#xff09;C 将高维维数组存…

10个常见的电缆载流表,值得收藏!

众所周知,电线电缆的载流是所有电工、电气人员都必须具备的基本储备,但是如果要将那么多的“数字”都记得清清楚楚,还是有一点困难的!今天咱们就做了一个电力电缆载流量对照表,速度收藏!下次参考不迷路! 1、0.6/1KV聚氯乙烯绝缘电力电缆载流量 以上电缆载流量计算条件:…

一个小问题导致,AI大模型集体翻车?

9.11大还是9.9大&#xff1f; 这两天大家都在说ChatGPT大模型翻车了 &#xff01; 这到底是怎么个事儿呢&#xff1f; 原来是最近有人想ChatGPT等大模型提了一个简单的问题&#xff1a; 9.11 大还是 9.9 大&#xff1f; 答案显而易见&#xff0c;然而众多大模型却给出了错误…

AI小白也能驾驭!10款免费工具让你秒变高手

市面上的AI工具种类繁多&#xff0c;覆盖了从创意设计到日常工作处理的各个领域。下面列出了10款实用的AI工具&#xff0c;它们能帮你在不同场景下提升效率&#xff0c;解决实际问题&#xff1a; Aicbo&#xff1a;这个在线生成工具可以根据你提供的描述生成图像&#xff0c;适…