我们说“训练”支持向量机模型,其实就是确定"最大间隔超平面"。

用数学语言来说就是确定一个最优的W。好比训练一个逻辑回归模型的目的是确定最优的W和b。

输入 X,为一个n维向量

输出 y,为-1或1

1.”弱鸡版支持向量机“——硬间隔 线性支持向量机(1962)

我更喜欢叫它 ”弱鸡版支持向量机“,因为它还什么都没有。

判别函数 f(X)  = sign( W*X + b )。

我们要根据训练数据集{(X,y)}来计算出最优的参数W和b。

首先基于训练数据集我们有限制条件:  y(i) * (W*X(i)+b) >=1,对于训练集中所有的(X(i) ,y(i))。

在此基础上我们找最优的W,也就是使margin = 2 / ||W||    最大。

总结下来,即求解下面问题,解出最优的W和b。(相比之下,现代神经网络的求解是对于多项式目标函数J(W)求解使J(W)最小的W。只需要使用链式法则和求导计算这两个简单的数学技巧,这应该算是一个明显的进步吧)

拉格朗日乘子法转换为对偶问题,再KKT条件,

具体数学解决过程这里不写了,较为繁琐。

我们在求解过程中引入了一组拉格朗日乘子,a1,a2,a3,a4.....

推导出:

(SV是支持向量们的集合)

解出上式即可。

可以看出,最初支持向量机就是一个完全的数学模型。

2.“勃起版支持向量机”————软间隔 线性支持向量机(1962年)

在前面的硬间隔线性支持向量机上做了一些变化,即给目标函数加了铰链损失项,目标函数变为

J(W) = 

其中称为惩罚参数,越小时对误分类惩罚越小,越大时对误分类惩罚越大,当取正无穷时就变成了硬间隔优化。实际应用时我们要合理选取越小越容易欠拟合,越大越容易过拟合。

(下面用ξ表示铰链函数)

接下来只要采用同样方法求解下面问题即可。

<老古董>1962年的线性支持向量机解法的更多相关文章

  1. <老古董>线性支持向量机中的硬间隔(hard margin)和软间隔(soft margin)是什么

    _________________________________________________________________________________________________ Th ...

  2. SVM-非线性支持向量机及SMO算法

    SVM-非线性支持向量机及SMO算法 如果您想体验更好的阅读:请戳这里littlefish.top 线性不可分情况 线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,为了满足函数间隔大 ...

  3. 逻辑回归&线性支持向量机

    代码: # -*- coding: utf-8 -*- """ Created on Tue Jul 17 10:13:20 2018 @author: zhen &qu ...

  4. 统计学习:线性支持向量机(SVM)

    学习策略 软间隔最大化 上一章我们所定义的"线性可分支持向量机"要求训练数据是线性可分的.然而在实际中,训练数据往往包括异常值(outlier),故而常是线性不可分的.这就要求我们 ...

  5. 统计学习3:线性支持向量机(Pytorch实现)

    学习策略 软间隔最大化 上一章我们所定义的"线性可分支持向量机"要求训练数据是线性可分的.然而在实际中,训练数据往往包括异常值(outlier),故而常是线性不可分的.这就要求我们 ...

  6. 算法实践——Twitter算法面试题(积水问题)的线性时间解法

    问题描述:在下图里我们有不同高度的挡板.这个图片由一个整数数组所代表,数组中每个数是墙的高度.下图可以表示为数组(2.5.1.2.3.4.7.2).假如开始下雨了,那么挡板之间的水坑能够装多少水(水足 ...

  7. SVM(三)线性支持向量机

    本文是在微信公众号发表的原创~ 额,图片粘不过来~就把链接给你们吧 http://mp.weixin.qq.com/s?__biz=MjM5MzM5NDAzMg==&mid=400740076 ...

  8. 线性可分支持向量机与软间隔最大化--SVM(2)

    线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...

  9. 支持向量机原理(四)SMO算法原理

    支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...

随机推荐

  1. pytho 基本数据类型

    1.字符串(引号) name = "........."  双引号引出来的都是字符串 name = """.........""& ...

  2. 最新版本GIT安装

    版本问题,最直接的解决办法就是重新编辑安装git吧: 1. 下载:# wget -O git.zip https://github.com/git/git/archive/master.zip 2. ...

  3. 搜索await page.waitForSelector(allResultsSelector);

    /** * Copyright 2017 Google Inc. All rights reserved. * * Licensed under the Apache License, Version ...

  4. ssm框架前后端数据交互完整示例

    1.sprinMvc控制层 package com.dengfeng.house.controller; import java.text.ParseException; import java.ut ...

  5. spring事物(一),@EnableTransactionManagement @Transactional 启动解析

    1.事物的声明阶段 @EnableTransactionManagement,是我们开启注解事物的第一步,我们来看下这个类为我们干了什么 @Target(ElementType.TYPE) @Rete ...

  6. 你必须知道的.Net 8.4.4 位枚举

    位标记集合是一种由组合出现的元素形成的列表,通常设计为以“位或”运算组合新值:枚举 类型则通常表达一种语义相对独立的数值集合.而以枚举类型来实现位标记集合是最为完美的组 合,简称为位枚举.在.NET ...

  7. 基于RabbitMQ的MQTT协议及应用

    MQTT的开源代码地址先贴在这里:https://github.com/mqtt/mqtt.github.io/wiki/servers MQTT定义: MQTT(Message Queuing Te ...

  8. jmeter里面Dug Sampler 和json提取器的用法

    1.编写用户详情请求 2.查看结果树 一级一级往上查找父集 3.添加json提取器 步骤:点击[用户详情]请求->添加->后置处理器->json提取器 把查看结果树里面的JSON P ...

  9. Redis Cluster 强制kill某一个节点和shutdown某一个节点后修复过程

    redis cluster 命令行,执行以下命令需登录cluster,是集群所独有的集群(cluster)CLUSTER INFO 打印集群的信息CLUSTER NODES 列出集群当前已知的所有节点 ...

  10. 我的博客 Hexo 还是Jekyll

    我的博客 Hexo 还是Jekyll 标签(空格分隔): 博客 很喜欢找一些博客主题,目前发现几个比较不错的 Hexo: 阿里中间件 我的个人博客-Material主题 我的个人博客-Fluid主题 ...