SVM学习笔记1-问题定义
问题定义: 给出一些样本,包含两类。svm试图找到一个超平面,将数据分开,并且每种样本到超平面的距离的最小值最大。
输入样本:$\{x_{i},y_{i}| 1\leq i\leq n \}$,$y_{i}\in \{-1,1\}$
超平面定义:$w^{T}x+b=0$
设某一个采样点$x^{(i)}$到超平面的距离为$\gamma^{(i)}$,那么从$x^{(i)}$作方向为w的射线,其与超平面的交点为B,采样点到B的距离为$\gamma^{(i)}$,那么B可以用这样的向量表示$B=x^{(i)}-\gamma^{(i)}\frac{w}{||w||}$。
由于B在超平面上,所以有:$w^{T}(x^{(i)}-\gamma^{(i)}\frac{w}{||w||})+b=0$
我们从中解得$\gamma^{(i)}=(\frac{w}{||w||})^{T}x^{(i)}+\frac{b}{||w||}$。当$y^{(i)}=1$时此值为正数,否则为负数,所以我们将其乘以$y^{(i)}$,那么此时$\gamma^{(i)}=y^{(i)}((\frac{w}{||w||})^{T}x^{(i)}+\frac{b}{||w||})$
现在令$||w||=1$,按照我们问题定义中的描述,我们要解决的问题是这样的:$max_{w,b,\gamma }$ $\gamma$,使得(1)$y^{(i)}(w^{T}x^{(i)}+b)\geq \gamma ,1 \leq i \leq n$,(2)$||w||=1$
由于$||w||=1$的限制不利于求解,所以我们将求解换成如下的描述$max_{w,b,\gamma }$ $\frac {\gamma}{||w||}$,使得$y^{(i)}(w^{T}x^{(i)}+b)\geq \gamma ,1 \leq i \leq n$。此时$w$的大小可以任意取。
进一步我们令$\gamma=1$,那么现在变为$max_{w,b}$ $\frac {1}{||w||}$,使得$y^{(i)}(w^{T}x^{(i)}+b)\geq 1 ,1 \leq i \leq n$
最后,将求解问题变成$min_{w,b}$ $\frac{1}{2}||w||^{2}$,使得$y^{(i)}(w^{T}x^{(i)}+b)\geq 1 ,1 \leq i \leq n$。
SVM学习笔记1-问题定义的更多相关文章
- SVM学习笔记(一)
支持向量机即Support Vector Machine,简称SVM.一听这个名字,就有眩晕的感觉.支持(Support).向量(Vector).机器(Machine),这三个毫无关联的词,硬生生地凑 ...
- Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法
最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...
- SVM学习笔记
一.SVM概述 支持向量机(support vector machine)是一系列的监督学习算法,能用于分类.回归分析.原本的SVM是个二分类算法,通过引入“OVO”或者“OVR”可以扩展到多分类问题 ...
- SVM学习笔记5-SMO
首先拿出最后要求解的问题:$\underset{\alpha}{min}W(\alpha)=\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\a ...
- SVM学习笔记4-核函数和离群点的处理
核函数在svm里,核函数是这样定义的.核函数是一个n*n(样本个数)的矩阵,其中:$K_{ij}=exp(-\frac{||x^{(i)}-x^{(j)}||^{2}}{2\sigma ^{2}})$ ...
- SVM学习笔记(二)----手写数字识别
引言 上一篇博客整理了一下SVM分类算法的基本理论问题,它分类的基本思想是利用最大间隔进行分类,处理非线性问题是通过核函数将特征向量映射到高维空间,从而变成线性可分的,但是运算却是在低维空间运行的.考 ...
- Struts2学习笔记 - Action篇<定义逻辑Action>
有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这文章就谈论一下定义逻辑Action 这里主要关注的是struts.xml配置文件,一般情 ...
- SVM学习笔记(一):libsvm参数说明(转)
LIBSVM 数据格式需要---------------------- 决策属性 条件属性a 条件属性b ... 2 1:7 2:5 ... 1 1:4 2:2 ... 数据格式转换--------- ...
- scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
package yjmyzz import scala.io.StdIn object ScalaApp { def main(args: Array[String]) { println(" ...
随机推荐
- node.js初识03
node中的url var http = require("http"); var url = require("url"); var server = htt ...
- SSM框架-SpringMVC 实例文件上传下载
一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+sta ...
- C#学习入门第一篇
1. using System; using System.Collections.Generic; using System.Ling; using System.Text; using Syste ...
- WEBGL threejs 1
首先感谢国内的这些研究者,先驱们~~~~~ 文章内容来自于webgl中文网,感谢~~~ -------------------------------------------------------- ...
- html5-fieldset和legend和keygen元素的用法
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Keras中使用LSTM层时设置的units参数是什么
https://www.zhihu.com/question/64470274 http://colah.github.io/posts/2015-08-Understanding-LSTMs/ ht ...
- 20165305 苏振龙《Java程序设计》第三周学习总结
面向对象和面向过程: 面向对象是相对面向过程而言的,面向过程强调的是功能行为,面向对象是将过程封装进对象,强调具备了功能的对象,面向对象是基于面向过程的. 面向对象的三个特征: 封装,继承,多态: 对 ...
- 【Alpha版本】冲刺阶段——Day7
[Alpha版本]冲刺阶段--Day7 阅读目录 今日进展 今日贡献量 贡献量汇总 TODOList 及项目燃尽图 [今日进展] 将项目源文件打成jar包,并运行测试 完成答辩ppt 项目运行情况 主 ...
- pyspider操作千万级库,pyspider在对接量级较大库的策略
pyspider操作千万级库,pyspider在对接量级较大库的策略 如果是需要pyspider正常的流程去执行,那必然是会在on_strat()时任务执行超时,可能只读取出几万条或十几万条数据就会被 ...
- JustOj 1936: 小明A+B
题目描述 小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算. 对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于 ...