关于SVM的一点笔记

2023-10-27

关于SVM的一点笔记

一. 简单了解

1.感知机(perceptron)

感知机是一种类似于生物中神经细胞功能的人工神经元,它可以把一个或者多个输入( x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3, …)根据权重( w 1 w_1 w1, w 2 w_2 w2, w 3 w_3 w3, …)与输入值乘积之和(即 ∑ j w j x j \sum_{j}w_jx_j jwjxj)转变为-1或+1输出,而判断的依据是 ∑ j w j x j \sum_{j}w_jx_j jwjxj是否大于或者小于某个阈值(threshold),这就是感知机的基本原理,同样可以表述为:
o u t p u t = { − 1 i f   ∑ j w j x j &lt; t h r e s h o l d + 1 i f   ∑ j w j x j ≥ t h r e s h o l d output=\begin{cases} -1 &amp;if \ \sum_{j}w_jx_j&lt;threshold\\ +1 &amp;if \ \sum_{j}w_jx_j≥threshold \end{cases} output={1+1if jwjxj<thresholdif jwjxjthreshold
如果我们令X={ x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3, …},W={ w 1 w_1 w1, w 2 w_2 w2, w 3 w_3 w3, …},则对向量 x ⃗ \vec{x} x ∈X,向量 w ⃗ \vec{w} w ∈W,记
f ( x ) = s i g n ( x ⃗ ⋅ w ⃗ + b ) f(x)=sign(\vec{x} \cdot \vec{w} + b) f(x)=sign(x w +b)
式中 x ⃗ \vec{x} x 为空间的特征向量, w ⃗ \vec{w} w 为权值向量(weight),b为阈值,又被称为偏置(bias), x ⃗ ⋅ w ⃗ \vec{x} \cdot \vec{w} x w x ⃗ \vec{x} x w ⃗ \vec{w} w 的点积。
那么有
f ( x ) = { − 1 i f   x ⃗ ⋅ w ⃗ + b &lt; 0 + 1 i f   x ⃗ ⋅ w ⃗ + b ≥ 0 f(x)=\begin{cases} -1 &amp;if \ \vec{x} \cdot \vec{w} + b&lt;0\\ +1 &amp;if \ \vec{x} \cdot \vec{w} + b≥0 \end{cases} f(x)={1+1if x w +b<0if x w +b0

2. 线性回归

线性回归主要就是要根据已有的数据拟合出一条较为符合预期的直线,用这条直线对新的数据进行合理预测。例如,各类价格走势预测、商品销量预测等。
对于最基本的线性回归问题,我们令其公式为:
h ( x ) = h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ i x i h(x)=h_θ(x)=θ_0+θ_1x_1+θ_2x_2+...+θ_ix_i h(x)=hθ(x)=θ0+θ1x1+θ2x2+...+θixi
式中, θ 0 θ_0 θ0类似于感知机中的阈值b, θ i θ_i θi则类似于感知机中的权重 w w w
然后我们需要引入损失函数(cost function):
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) 2 − y ( i ) ) 2 J(θ)=\frac{1}{2}\sum_{i=1}^{m}(h_θ(x^{(i)})^2-y^{(i)})^2 J(θ)=21i=1m(hθ(x(i))2y(i))2
它表示每一项预测值与实际值差平方之和的二分之一,若我们可以找到 J J J( θ \theta θ)的最小值,那么我们就认为函数 h θ ( x ) h_\theta(x) hθ(x)为我们找的线性回归函数。
下面我们讨论如何求得 J J J( θ \theta θ)的最小值 min J J J( θ \theta θ):
J J J( θ \theta θ)对每一个 θ \theta θ求偏导,则有:
∂ J ( θ ) ∂ θ j = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 = 2 ⋅ 1 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( h θ ( x ) − y ) = ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( ∑ i = 0 n θ i x i − y ) = ( h θ ( x ) − y ) x j \begin{aligned} \frac{\partial J(\theta)}{\partial \theta_j} &amp;=\frac{\partial }{\partial \theta_j} \frac{1}{2}(h_\theta(x)-y)^2\\ &amp;= 2\cdot\frac{1}{2}(h_\theta(x)-y)\cdot\frac{\partial }{\partial \theta_j} (h_\theta(x)-y)\\ &amp;= (h_\theta(x)-y) \cdot\frac{\partial }{\partial \theta _j}(\sum_{i=0}^n\theta_ix_i-y)\\ &amp;= (h_\theta(x)-y)x_j \end{aligned} θjJ(θ)=θj21(hθ(x)y)2=221(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=0nθixiy)=(hθ(x)y)xj
那么我们可以得到:
θ j : = θ j + α ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j:=\theta_j+\alpha\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)} θj:=θj+αi=1m(y(i)hθ(x(i)))xj(i)
上式即为 θ j \theta_j θj梯度下降的数学表达形式,即可得到参数 θ j \theta_j θj,从而我们就得到了 h ( x ) h(x) h(x)的确切表达式。
但是,我们在拟合时会出现过度拟合的情况,从而我们需要引入另外一项——惩罚项。惩罚项在一定程度上可以防止出现过度拟合的情况。
那么,加入惩罚项后的 J J J( θ \theta θ)方程为:
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) 2 − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 J(θ)=\frac{1}{2}\sum_{i=1}^{m}(h_θ(x^{(i)})^2-y^{(i)})^2+\lambda\sum_{j=1}^n\theta_j^2 J(θ)=21i=1m(hθ(x(i))2y(i))2+λj=1nθj2

3. logistic回归

logistic函数的值域介于0到1之间,其函数表达式为:
l o g i s t i c = g ( z ) = 1 1 + e − z logistic=g(z)=\frac{1}{1+e^{-z}} logistic=g(z)=1+ez1
承接线性回归部分,将函数 h ( x ) = h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ i x i h(x)=h_θ(x)=θ_0+θ_1x_1+θ_2x_2+...+θ_ix_i h(x)=hθ(x)=θ0+θ1x1+θ2x2+...+θixi转变为 h θ ( x ) = g ( θ T ⋅ x ) h_\theta(x)=g(\theta^T\cdot x) hθ(x)=g(θTx),那么, h θ ( x ) h_\theta(x) hθ(x)的函数值将介于0与1之间,使其结果概率化。与此同时,当当概率大于等于0.5,就判断为1,否则,判断为0。
从而,我们得到0与1两类数据。

二、SVM的实现

1.数学建模

SVM算法实际上就是一个数学优化问题,我们需要在一个多维空间上找到一个超平面(如果是二维平面,那么这个超平面就是一条直线),使到此超平面的距离最小的点的距离最大(这个距离我们称之为Margin)。鉴于表述与理解的方便,我们就以二维平面为例进行引入。图 1
我们首先设上图中黄色直线的方程为A x x x+B y y y+C=0,然后把 x x x换为 x 1 x_1 x1 y y y换为 x 2 x_2 x2,那么原直线方程就变为了A x 1 x_1 x1+B x 2 x_2 x2+C=0,同时,我们还可以将此方程写为 [ A B ] [ x 1 x 2 ] + C = 0 \left[ \begin{matrix} A&amp;B\\ \end{matrix} \right] \left[ \begin{matrix} x_1\\ x_2 \end{matrix} \right]+C=0 [AB][x1x2]+C=0
若我们令
[ A B ] = ω T , [ x 1 x 2 ] = x , C = γ \left[ \begin{matrix} A&amp;B\\ \end{matrix} \right]=\omega^T, \left[ \begin{matrix} x_1\\ x_2 \end{matrix} \right]=x, C=\gamma [AB]=ωT[x1x2]=xC=γ
那么上述方程还可写为 ω T ⋅ x + γ = 0 \omega^T\cdot x+\gamma=0 ωTx+γ=0,实际上,对于多维空间而言,其超平面上式也是适用的。
由高中数学知识我们就可以得到,空间内一点到该超平面的距离d满足:
d = ∣ ω T ⋅ x + γ ∣ ∣ ∣ ω ∣ ∣ d=\frac{|\omega^T\cdot x+\gamma|}{||\omega||} d=ωωTx+γ
式中, ∣ ∣ ω ∣ ∣ ||\omega|| ω为向量ω的模, x x x为样本点的坐标,ωγ即为要求超平面的参数。
如上图所示,我们假设已经找到了一个超平面 ω T ⋅ x + γ = 0 \omega^T\cdot x+\gamma=0 ωTx+γ=0且距离超平面最近的点到此超平面的距离为d(即黄色线与粉红线之间的距离为d),那么则对此空间内任意一点都有
∣ ω T ⋅ x + γ ∣ ∣ ∣ ω ∣ ∣ ≥ d \frac{|\omega^T\cdot x+\gamma|}{||\omega||}≥d ωωTx+γd
如果我们把在超平面以上的判定为+1类,把在超平面以下的判定为-1类,那么有
y ( i ) = { − 1 i f   ω T ⋅ x + γ ∣ ∣ ω ∣ ∣ ≤ − d + 1 i f   ω T ⋅ x + γ ∣ ∣ ω ∣ ∣ ≥ d y^{(i)}=\begin{cases} -1 &amp;if \ \frac{\omega^T\cdot x+\gamma}{||\omega||}≤-d\\ +1 &amp;if \ \frac{\omega^T\cdot x+\gamma}{||\omega||}≥d \end{cases} y(i)={1+1if ωωTx+γdif ωωTx+γd
整理可得
y ( i ) = { − 1 i f   ω T ⋅ x + γ ∣ ∣ ω ∣ ∣ ⋅ d ≤ − 1 + 1 i f   ω T ⋅ x + γ ∣ ∣ ω ∣ ∣ ⋅ d ≥ 1 y^{(i)}=\begin{cases} -1 &amp;if \ \frac{\omega^T\cdot x+\gamma}{||\omega||\cdot d}≤-1\\ +1 &amp;if \ \frac{\omega^T\cdot x+\gamma}{||\omega||\cdot d}≥1 \end{cases} y(i)={1+1if ωdωTx+γ1if ωdωTx+γ1
若此时,我们令 ω T ∣ ∣ ω ∣ ∣ ⋅ d = ω b T \frac{\omega^T}{||\omega||\cdot d}=\omega^T_b ωdωT=ωbT γ ∣ ∣ ω ∣ ∣ ⋅ d = γ b \frac{\gamma}{||\omega||\cdot d}=\gamma_b ωdγ=γb
那么有
y ( i ) = { − 1 i f   ω b T ⋅ x + γ b ≤ − 1 + 1 i f   ω b T ⋅ x + γ b ≥ 1 y^{(i)}=\begin{cases} -1 &amp;if \ \omega^T_b\cdot x+\gamma_b≤-1\\ +1 &amp;if \ \omega^T_b\cdot x+\gamma_b≥1 \end{cases} y(i)={1+1if ωbTx+γb1if ωbTx+γb1
此时,若我们就把 ω b T , γ b \omega^T_b,\gamma_b ωbT,γb叫做 ω T , γ \omega^T,\gamma ωT,γ,那么我们可以得到 y ( i ) = { − 1 i f   ω T ⋅ x + γ ≤ − 1 + 1 i f   ω T ⋅ x + γ ≥ 1 y^{(i)}=\begin{cases} -1 &amp;if \ \omega^T\cdot x+\gamma≤-1\\ +1 &amp;if \ \omega^T\cdot x+\gamma≥1 \end{cases} y(i)={1+1if ωTx+γ1if ωTx+γ1
利用一些数学技巧,我们可以了解到上式等价于
y ( i ) ⋅ ( ω T ⋅ x ( i ) + γ ) ≥ 1 y^{(i)}\cdot (\omega^T\cdot x^{(i)}+\gamma)≥1 y(i)(ωTx(i)+γ)1
通过上述推导我们可以知道,只有存在一个 x ( i ) x^{(i)} x(i)使得上式中的等号成立时,我们才能找到那个支持向量,从而可以求得最大的Margin,得到超平面方程。
当上式中的等号成立时,我们有
d = ∣ ω T ⋅ x + γ ∣ ∣ ∣ ω ∣ ∣ = 1 ∣ ∣ ω ∣ ∣ d=\frac{|\omega^T\cdot x+\gamma|}{||\omega||}=\frac{1}{||\omega||} d=ωωTx+γ=ω1
则,我们需要求min 1 ∣ ∣ ω ∣ ∣ \frac{1}{||\omega||} ω1,等价于求min 1 ∣ ∣ ω ∣ ∣ 2 \frac{1}{||\omega||^2} ω21(鉴于以后求导的方便)
我们便可以针对SVM给出其数学描述:
m i n ω , γ 1 2 ∣ ∣ ω ∣ ∣ 2 s . t .    y ( i ) ⋅ ( ω T ⋅ x ( i ) + γ ) ≥ 1 , i = 1 , 2 , 3 , . . . , m min_{\omega,\gamma}\frac{1}{2}||\omega||^2\\ s.t. \ \ y^{(i)}\cdot (\omega^T\cdot x^{(i)}+\gamma)≥1,i=1,2,3,...,m minω,γ21ω2s.t.  y(i)(ωTx(i)+γ)1,i=1,2,3,...,m

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于SVM的一点笔记 的相关文章

  • 关于谷歌浏览器css样式不显示的解决方法

    最近使用IntelliJ IDEA重新回顾html知识 原本使用360浏览器 360浏览器没有这个问题 现在改成使用谷歌浏览器 修改css后运行到谷歌浏览器上 发现并没有显示修改后的效果 本来以为是浏览器有不兼容的问题 后来发现原来谷歌浏览
  • xposed框架安全模式_太极免Root使用Xposed,实现虚拟定位,消息放撤回等神级功能...

    正文 小手壹挥隆重为大家介绍 一款可以免root使用Xposed模块的太极app 下载太极app即可帮助用户实现免root情况下运行Xposed模块 更好的使用辅助插件 太极app是干嘛的 有什么作用 这是一款可以帮助自己手机中应用渡劫的软
  • 动态规划(Dynamic Programming)入门

    前言 算法实验课的题目是一道关于动态规划 Dynamic Programming 的题目 正好借这个机会 学习一下动态规划 Dynamic Programming 动态规划简单介绍 动态规划 Dynamic Programming 简称DP
  • 评分函数和损失函数是什么(知识图谱嵌入KGE)

    一 知识图谱中的评分函数和损失函数 评分函数 评分函数用于计算给定实体和关系之间的匹配度或相似度得分 它接收实体和关系的嵌入表示作为输入 并输出一个分数 该分数反映了实体和关系之间的相关性 评分函数的目标是衡量实体和关系之间的连接程度或关联
  • Quartus ii调试工具之SignalProbe

    下图是quartusii handbook 给出的6个片上调试工具 列出了各自的用途 其中SignalProbe是Quartus ii提供的一个通过外部设备探测FPGA内部信号的一个工具 即把FPGA内部需要探测的信号连接到没有用到的IO管

随机推荐

  • 论文阅读——A Comprehensive Study on Deep Learning-Based 3D Hand Pose Estimation Methods综述阅读2

    3D手势姿态估计综述 本文通过对大量有代表性的论文研究 提出一种基于输入数据模式的新分类法 即RGB 深度或多模态信息 最后 我们展示了在最流行的RGB和基于深度的数据集上的结果 并讨论了这一快速增长领域的潜在研究方向 1 Introduc
  • shiro多realm的spring-boot案例剖析

    shiro多realm整合的spring boot案例剖析 概述 shiro认证的流程主要是通过securityManager调用login Subject subject AuthenticationToken token 方法 实际上委
  • 计算机网络原理 谢希仁(第8版)第四章习题答案

    4 01 网络层向上提供的服务有哪两种 试比较其优缺点 面向连接的和无连接 面向连接优点 通过虚电路发送分组 分组只用填写虚电路编号 分组开销较小 分组按序达到终点 面向连接缺点 一个节点出故障 所有通过该节点的虚电路均不能工作 可靠通信交
  • 什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean?

    前言 在Java开发中经常遇到这些概念问题 有的可能理解混淆 有的可能理解不到位 特此花了很多时间理顺了这些概念 不过有些概念实际开发中并没有使用到 可能理解还不够准确 只能靠后续不断纠正了 1 什么是POJO POJO Plain Old
  • RPC 技术及其框架 Sekiro 在爬虫逆向中的应用,加密数据一把梭

    文章目录 什么是 RPC JSRPC Sekiro 优缺点 什么是 RPC RPC 英文 RangPaCong 中文让爬虫 旨在为爬虫开路 秒杀一切 让爬虫畅通无阻 开个玩笑 实际上 RPC 为远程过程调用 全称 Remote Proced
  • LeetCode——036

    Valid Sudoku My Submissions QuestionEditorial Solution Total Accepted 71051 Total Submissions 233215 Difficulty Easy Det
  • AI 大行其道,你准备好了吗?—谨送给徘徊于转行 AI 的程序员

    前言 近年来 随着 Google 的 AlphaGo 打败韩国围棋棋手李世乭之后 机器学习尤其是深度学习的热潮席卷了整个 IT 界 所有的互联网公司 尤其是 Google 微软 百度 腾讯等巨头 无不在布局人工智能技术和市场 百度 腾讯 阿
  • 学习Javascript闭包(Closure)[非常棒的文章]

    作者 阮一峰 日期 2009年8月30日 闭包 closure 是Javascript语言的一个难点 也是它的特色 很多高级应用都要依靠闭包实现 下面就是我的学习笔记 对于Javascript初学者应该是很有用的 一 变量的作用域 要理解闭
  • 关于论青少年尽早学少儿编程之说

    关于论青少年尽早学少儿编程之说 正如一本书中所描述的一句话 尽早学习编程 是孩子为未来做好准备必不可少的一步 看完这句话之后 给我们的直观印象可能就是 不教孩子学习编程在某种程度上等于不教他们读书写字 这种说法明显是片面的 编程 读书写字
  • 若依系统注册功能

    加油 三步实现注册 前端 后端 分配角色 总结 前端 login vue中打开注册开关 后端 打开数据库sys config表 开启注册功能 分配角色 在SysUserMapper中添加方法 实现方法 在SysUserServiceImpl
  • dialog中二维码显示问题

    由于dialog加载过程会耗费一定时间 因此在dialog中直接调用会导致在一次打开的dialog无法加载二维码 在dialog标签中加入 opened ShowQRCode 属性 opened是dialog动画打开完毕之后的回调 当页面加
  • 计算机网络层提供的面向连接服务还是无连接服务讨论与思考

    概要 在计算机网络领域 网络层应该向运输层提供怎样的服务 面向连接 还是 无连接 曾引起了长期的争论 争论焦点的实质就是 在计算机通信中 可靠交付应当由谁来负责 是网络还是端系统 介绍 有些人认为应当借助于电信网的成功经验 让网络负责可靠交
  • 计算机主机名与用户名区别

    一 主机名概念 主机名就是计算机的名字 计算机名 网上邻居就是根据主机名来识别的 这个名字可以随时更改 从我的电脑属性的计算机名就可更改 用户登陆时候用的是操作系统的个人用户帐号 这个也可以更改 从控制面板的用户界面里改就可以了 这个用户名
  • 1. Inna and Pink Pony

    1 Inna and Pink Pony 首先找出四个边界点 但要注意当横纵坐标等于边界横纵坐标时 需考虑是否会出界 满足以上条件时 考虑横纵坐标移动次数其和为偶数时便可以完成移动 因为正负抵消原则 话不多说 直接上Python代码 n m
  • 解决 CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’问题

    针对使用conda进入虚拟环境时遇到的问题 CommandNotFoundError Your shell has not been properly configured to use conda activate 解决方法 win r
  • 解决Android中使用RecyclerView滑动时底部item显示不全的问题

    感觉这个bug是不是因人而异啊 找了很多文章都没能解决我的问题 包括在RecyclerView上在嵌套上一层RelativeLayout 添加属性android descendantFocusability blocksDescendant
  • 解决“L6200E Symbol xx defined (by xx.o and xx.o)”重复定义问题

    今天来分享一个关于自己之前遇到的一个问题 就是关于重复定义会造成的一个错误 错误提示为 OBJ LCD axf Error L6200E Symbol ascii 1206 multiply defined by lcd user o an
  • C语言每日一题:7.寻找数组中心下标。

    思路一 暴力求解 1 定义一个ps作为中间下标去记录下标值 2 循环下标ps从头到位 定义四个变量分别是left sum left right sum right 3 初始化left ps 1和right ps 1 当ps0 gt 就让su
  • etcd学习和实战:4、Java使用etcd实现服务发现和管理

    etcd学习和实战 4 Java使用etcd实现服务发现和管理 文章目录 etcd学习和实战 4 Java使用etcd实现服务发现和管理 1 前言 2 代码 2 1 服务注册 2 2 服务发现 2 3 运行结果 2 4 问题 3 最后 1
  • 关于SVM的一点笔记

    关于SVM的一点笔记 一 简单了解 1 感知机 perceptron 感知机是一种类似于生物中神经细胞功能的人工神经元 它可以把一个或者多个输入 x 1 x 1 x1 x