第三课 SVM

本系列是七月算法机器学习课程笔记

文章目录

  • 1 问题
  • 2 key idea 1
  • 3 key idea 2
  • 4 key idea 3
  • 5 key idea4
  • 6 拉格朗日乘子求解
  • 7 核函数的发现

学习SVM不要先看数学公式,这样把SVM的精华都丢掉了。学习SVM学习作者是如何构建出这样一个算法的过程。

1 问题

无论线性分类、逻辑回归、决策树都是要找到一个决策边界。但是这个决策边界什么时候最好呢?

就像图中这样,答案应该是线条3最好,它的泛化能力更强。那怎么找到这样的一条线呢?

2 key idea 1

在这里插入图片描述

目标是要找到最宽的那条街道(widest street way)。

假设这条线已经存在,可以做这条线的法向量w⃗\vec{w}w,那么对于需要预测的一个点,记作向量ux⃗\vec{u_x}ux,那么ux⃗\vec{u_x}ux在法向量上的投影和截距b有这样一个关系:如果ux⃗w⃗+b>=0\vec{u_x}\vec{w}+b>=0uxw+b>=0,则是属于正分类。否则属于负分类。u是属于任意一个样本。

3 key idea 2

根据上面的式子,我们可以要求如下:
对于训练集中的正样本x+⃗w⃗+b>=1\vec{x_+}\vec{w}+b>=1x+w+b>=1
对于训练集中的负样本x−⃗w⃗+b<=−1\vec{x_-}\vec{w}+b<=-1xw+b<=1
对于训练集中的站在街边的点取到等于号。

yiy_iyi乘以上面的式子会发现两个条件变成一个条件了。
先看正样本,yi=1y_i=1yi=1yi∗(xi⃗w⃗+b)>=1∗1y_i*(\vec{x_i}\vec{w}+b)>=1*1yi(xiw+b)>=11 得到 xi⃗w⃗+b>=1\vec{x_i}\vec{w}+b>=1xiw+b>=1

再看负样本,yi=−1y_i=-1yi=1yi∗(xi⃗w⃗+b)>=−1∗(−1)y_i*(\vec{x_i}\vec{w}+b)>=-1*(-1)yixiw+b)>=1(1),得到yi(xi⃗w⃗)+b>=1y_i(\vec{x_i}\vec{w})+b>=1yi(xiw)+b>=1

所以对于训练集中的每一个样本有这样一个约束:yi(xi⃗w⃗+b)>=1y_i(\vec{x_i}\vec{w}+b)>=1yi(xiw+b)>=1
站在街边的样本取到等于号。

4 key idea 3

取训练集中站在街边的一个正样本x+⃗\vec{x_+}x+,一个负样本x−⃗\vec{x_-}x,可以得到一个x+⃗−x−⃗\vec{x_+}-\vec{x_-}x+x(图中红色的向量)

这条街的宽度就是红色向量在法向量上的投影。

width=(x+⃗−x−⃗)w⃗∣w⃗∣width=(\vec{x_+}-\vec{x_-})\dfrac{\vec{w}}{|\vec{w}|}width=(x+x)ww
对于站点街上的正样本,因为yi(x+⃗w⃗+b)=1y_i(\vec{x_+}\vec{w}+b)=1yi(x+w+b)=1,得到x+⃗w⃗=1−b\vec{x_+}\vec{w}=1-bx+w=1b

对于站点街上的负样本,因为yi(x−⃗w⃗+b)=1y_i(\vec{x_-}\vec{w}+b)=1yi(xw+b)=1,得到x−⃗w⃗=−1+b\vec{x_-}\vec{w}=-1+bxw=1+b

代入上面的式子
width=(x+⃗−x−⃗)w⃗∣w⃗∣=2∣w⃗∣width=(\vec{x_+}-\vec{x_-})\dfrac{\vec{w}}{|\vec{w}|}=\dfrac{2}{|\vec{w}|}width=(x+x)ww=w2

推到到这里,发现这个宽度和数据集没有关系。

要想width最大,那就应该2∣w⃗∣\dfrac{2}{|\vec{w}|}w2最大,那么就∣w⃗∣|\vec{w}|w最小,那就12∣w⃗∣2\dfrac{1}{2}|\vec{w}|^221w2最小。

到现在的结论是:min(12∣w⃗∣2)min(\dfrac{1}{2}|\vec{w}|^2)min(21w2),约束条件是:yi(xi⃗w⃗+b)−1=0y_i(\vec{x_i}\vec{w}+b)-1=0yi(xiw+b)1=0

5 key idea4

现在我们知道目标是要找到最小的(12∣w⃗∣2)(\dfrac{1}{2}|\vec{w}|^2)(21w2),在约束条件下:yi(xi⃗w⃗+b)−1=0y_i(\vec{x_i}\vec{w}+b)-1=0yi(xiw+b)1=0

使用拉格朗日解决:L=12∣w⃗∣2−∑λi[yi(xi⃗w⃗+b)−1]L=\dfrac{1}{2}|\vec{w}|^2-\sum\lambda_i[y_i(\vec{x_i}\vec{w}+b)-1]L=21w2λi[yi(xiw+b)1]

在这个式子中,假设拉格朗日因子λ\lambdaλ已知,w和b是未知数。
首先对w求导取到极值点:w⃗−∑λiyixi⃗=0\vec{w}-\sum\lambda_iy_i\vec{x_i}=0wλiyixi=0,得到w⃗=∑λiyixi⃗\vec{w}=\sum\lambda_iy_i\vec{x_i}w=λiyixi

其次对b求导取到极值点:∑λiyi=0\sum\lambda_iy_i=0λiyi=0

将刚刚求得的两个式子带回到拉格朗日式子:
L=12∣w⃗∣2−∑λi[yi(xi⃗w⃗+b)−1]L=\dfrac{1}{2}|\vec{w}|^2-\sum\lambda_i[y_i(\vec{x_i}\vec{w}+b)-1]L=21w2λi[yi(xiw+b)1]

=12∑λiyixi⃗∑λjyjxj⃗−∑λiyixi⃗∑λjyjxj⃗−∑λiyib+∑λi=\dfrac{1}{2}\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}-\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}-\sum\lambda_iy_ib+\sum\lambda_i=21λiyixiλjyjxjλiyixiλjyjxjλiyib+λi

=12∑λiyixi⃗∑λjyjxj⃗−∑λiyixi⃗∑λjyjxj⃗+∑λi=\dfrac{1}{2}\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}-\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}+\sum\lambda_i=21λiyixiλjyjxjλiyixiλjyjxj+λi

=∑λi−12∑λiyixi⃗∑λjyjxj⃗=\sum\lambda_i-\dfrac{1}{2}\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}=λi21λiyixiλjyjxj

=∑λi−12∑∑λiλjyiyj(xi⃗xj⃗)=\sum\lambda_i-\dfrac{1}{2}\sum\sum\lambda_i\lambda_jy_iy_j(\vec{x_i}\vec{x_j})=λi21λiλjyiyj(xixj)

可以看到L取决于两个样本的乘积:xi⃗xj⃗\vec{x_i}\vec{x_j}xixj

6 拉格朗日乘子求解

拉格朗日乘子:λi\lambda_iλi可以使用SMO、KTT、QP来求解。在求解过程中每次以其中两个数λi\lambda_iλiλj\lambda_jλj为未知数进行求导,求得下一轮的值。因为如果只以一个为未知数:λi\lambda_iλi那么会存在另外一个λj\lambda_jλj和它是线性关系,不能求解。

7 核函数的发现

用来预测的函数:如果w⃗u⃗+b>=0\vec{w}\vec{u}+b>=0wu+b>=0,则是属于正分类。
∑λiyixi⃗u⃗+b>=0\sum\lambda_iy_i\vec{x_i}\vec{u}+b>=0λiyixiu+b>=0

∑λiyi(xi⃗u⃗)+b>=0\sum\lambda_iy_i(\vec{x_i}\vec{u})+b>=0λiyi(xiu)+b>=0

xi⃗u⃗\vec{x_i}\vec{u}xiu是向量的点乘,表示一个线性关系。如果样本线性不可分,怎么办?一种方法是将每个点升级到高维空间。让它们在高维空间线性可分。发现找不到这样的线性函数。上面的式子告诉我们,不用找到每个点的高维空间,只要找到两个点点乘的高维空间即可。也就是说K(xi,xj)=Θ(xi)Θ(xj)K(x_i,x_j)=\varTheta(x_i)\varTheta(x_j)K(xi,xj)=Θ(xi)Θ(xj)

常用的核函数有:
线性核函数:K(xi,xj)=xiTxjK(x_i,x_j)=x_i^Tx_jK(xi,xj)=xiTxj
多项式核函数:K(xi,xj)=(λxiTxj+r)dK(x_i,x_j)=(\lambda x_i^Tx_j+r)^dK(xi,xj)=(λxiTxj+r)d
RBF:K(xi,xj)=e1λ∣xi−xj∣2K(x_i,x_j)=e^{\dfrac{1}{\lambda|x_i-x_j|^2}}K(xi,xj)=eλxixj21

sigmoid函数:K(xi,xj)=tanh(λxiTxj+r)K(x_i,x_j)=tanh(\lambda x_i^Tx_j+r)K(xi,xj)=tanh(λxiTxj+r)

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

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

相关文章

百度新闻的索引机制(二):智能聚类

百度新闻的索引机制(二)&#xff1a;智能聚类http://net.chinabyte.com/377/2520877.shtml 转载于:https://www.cnblogs.com/cy163/archive/2006/09/23/512337.html

spring mvc学习(29):modelandview向页面传输数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

C#远程开机

http://tryios.com/article/473.aspx C#远程开机 http://baike.baidu.com/view/1965454.htm 远程开机 http://www.cnblogs.com/whssunboy/archive/2007/12/05/984059.html C# 远程唤醒转载于:https://www.cnblogs.com/jacktang/articles/3309258.html

RESTORE DATABASE命令还原SQLServer 2005 数据库

今天在sqlServer20005 的management studio里使用bak文件还原数据库的时候,总是失败!Restore failed for Server ADANDELI. (Microsoft.SqlServer.Smo)An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfoThe bac…

第一百一十九期:支付宝历年双十一背后的技术揭秘

和过去10年一样&#xff0c;2019年天猫双11又创造了一个全新的纪录。这个数字背后&#xff0c;是数代支付宝工程师们殚精竭虑、不断突破技术难关。 作者&#xff1a;蚂蚁金服科技 自从有了双十一这个电商节日&#xff0c;很多技术人的生命轨迹都改变了&#xff0c;这种年度高…

第五课 机器学习中的特征工程

本系列是七月算法机器学习课程笔记 文章目录1 特征工程与意义2 数据与特征处理2.1数据采集2.2 数据清洗2.3 数据采样2.4 特征处理2.4.1 数值型2.4.2 类别型2.4.3 时间型2.4.3 文本型2.4.4 统计特征3 特征选择3.1 为什么做特征选择3.2 特征选择的方法3.2.1 过滤型3.2.2 包裹型3.…

局域主机做服务器,安装DNN,外网访问的解决办法

局域主机做服务器,安装DNN&#xff0c;外网访问的解决办法 问题&#xff1a; 如图&#xff1a;局域网主机IIS安装了DotNetNuke 4.0.x版本&#xff0c;设置虚拟目录为&#xff1a;dnn &#xff0c;安装好之后&#xff0c;内网用户通过http://192.168.19.9/dnn访问是没问题…

第一百二十期:终于有篇看的懂的B树文章了!

索引&#xff0c;相信大多数人已经相当熟悉了&#xff0c;很多人都知道 MySQL 的索引主要以 B 树为主&#xff0c;但是要问到为什么用 B 树&#xff0c;恐怕很少有人能把前因后果讲述完整。本文就来从头到尾介绍下数据库的索引。 作者&#xff1a;安静的boy 索引&#xff0c;…

csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery

<?xml version"1.0" encoding"utf-8"?> <hibernate-mapping assembly"Domain" namespace"Domain" xmlns"urn:nhibernate-mapping-2.2"><class name"DuCardType" table"DuCardType" la…

第六课 多算法组合与模型调优

本系列是七月算法机器学习课程笔记 文章目录1 前序工作流程1.1 数据处理1.2 特征工程1.3 模型选择1.4 交叉验证1.5 寻找最佳超参数2 模型优化2.1 模型状态2.2 模型优化12.3 模型优化22.4 模型优化32.5 模型优化4&#xff1a;模型融合2.5.1 bagging2.5.2 staking2.5.3 adaboost2…

我的分页代码

private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!this.IsPostBack) { string PageIndexRequest.QueryString["PageIndex"]; if(PageIndexnull||PageIndex.Length0)//这种方法判断快一些 { …

第一百二十一期:当新闻报道用上AR 技术,能为读者带来什么?

「有一种名为记忆宫殿的记忆术&#xff0c;要点就是在人脑内建立起虚拟的空间场景&#xff0c;并把各种信息与空间产生联系。如果我们也能为每一起新闻建立起空间的概念&#xff0c;显然也会给读者带来更深刻的印象。」 作者&#xff1a;木斯 大部分新闻都拥有不同的切入视角…

第七章 scikit-learn与机器学习实战

文章目录1 scikit-learn2 一个项目实战2.1 项目目标2.2 划定问题2.3 选择性能指标2.4 核实假设2.5 获取数据2.6 数据探索和可视化、发现规律2.7 为机器学习算法准备数据2.8 选择并且训练模型2.9 模型微调2.10 测试集上测试1 scikit-learn 导航页与算法指南 API&#xff1a;数据…

Erlang注册进程名称-tut16.erl

作 w3cschool erlang 的练习 --------- 1 -module(tut16).2 3 -export([start/0, ping/1, pong/0]).4 5 %% Erlang 注册进程名称6 7 %% ping 进程必须通过某种途径 获得 pong 进程的进程标识符后 8 %% 才能将消息发送给 pong 进程9 10 %% Erlang 提供了 为每个进程提供一个名称…

verycd重整——CBT系列

《CBT 金牌教程 SCCP 系列》(CBT NUGGETS SCCP SERIES)LiBiSO 教程[Bin]http://lib.verycd.com/2006/06/05/0000105677.html2006-06-05 19:18[CBT.金牌教程.SCCP.系列].CBT.NUGGETS.SCCP.SERIES-LiBiSO.bin498.8MB《CBT 金牌教程 LINUX LPIC-2》(CBT NUGGETS SCCP SERIES)JGTiS…

第一百二十二期:大数据分析:红包先抢好,还是后抢好

本文用matlab程序&#xff0c;模拟微信给10个人发红包&#xff0c;设定次数1亿次&#xff0c;统计每个人抢到的红包&#xff0c;最佳手气和最差手气次数&#xff0c;用以分析红包是应该先抢还是后抢? 作者&#xff1a;景因分析 本文用matlab程序&#xff0c;模拟微信给10个人…

Linux重定向的理解

1 /*2 重定向的实例3 dup2函数4 5  利用filefd来代替STDOUT(标准输出流)&#xff0c;write写入filefd的数据&#xff0c;重定向写出到STDOUT中&#xff1b;6 */7 8 #include <stdio.h>9 #include <sys/stat.h> 10 #include <string.h> 11 #include …

第八章xgboost/lightGBM

文章目录1 xgboost1.1 基本用法1.1.1 通用参数1.1.2 集成参数1.1.3 任务参数1.2 例子1.3 当评价函数不在默认范围内2 lightGBM1 xgboost 1.1 基本用法 xgboost有三类参数&#xff1a;通用参数、集成参数和任务参数。 1.1.1 通用参数 booster&#xff1a;可选值gbree、gblin…

根据Web服务器的记录来追踪黑客(转)

有感触&#xff0c;转此文 现今的网络&#xff0c;安全越来越受到大家的重视&#xff0c;在构建网络安全环境时&#xff0c;在技术手段&#xff0c;管理制度等方面都逐步加强&#xff0c;设置防火墙&#xff0c;安装入侵检测系统等等。但网络安全是个全方位的问题&#xff0c;忽…

spring mvc学习(30):sessionatrribute存储session数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…