机器学习——核函数

2023-10-30

问:已知三维空间中的两个样本点分别为(2,4,5)和(1,2,3),定义核函数表达式为:

试计算这两个样本点映射到十维空间后的

 

答:首先计算两个样本点的平方内积=2*1+4*2+5*3=25

然后代入核函数表达式:25*5+6=131

1.核函数把低维空间映射到高维空间

下面这张图位于第一、二象限内。我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母。我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横、纵坐标是两个特征。显然,在这个二维空间内,“+”“-”两类数据不是线性可分的。

这里写图片描述

这个核函数对应着一个二维空间到三维空间的映射,它的表达式是: 

在P这个映射下,原来二维空间中的图在三维空间中的像是这个样子:
这里写图片描述

前后轴为x轴,左右轴为y轴,上下轴为z轴)
注意到绿色的平面可以完美地分割红色和紫色,也就是说,两类数据在三维空间中变成线性可分的了。
而三维中的这个判决边界,再映射回二维空间中是这样的:
这里写图片描述

这是一条双曲线,它不是线性的。

如上面的例子所说,核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。当然,我举的这个具体例子强烈地依赖于数据在原始空间中的位置。事实中使用的核函数往往比这个例子复杂得多。它们对应的映射并不一定能够显式地表达出来;它们映射到的高维空间的维数也比我举的例子(三维)高得多,甚至是无穷维的。这样,就可以期待原来并不线性可分的两类点变成线性可分的了。

该映射的效果如下图所示:

2.常见的核函数

在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:

我举的例子是多项式核函数中γ=1, c = 0 n = 2 的情况。

3.核函数的性质

核函数只是满足某些必要条件的函数,其作用要与具体的算法结合才能显示出来。
我来简明说一下SVM中核技巧(kernel trick)的作用,一句话概括的话,就是降低计算的复杂度,甚至把不可能的计算变为可能。
核函数有如下一个性质:

  

4.核函数与SVM

求解SVM时,原始形式(这里我们假设已经对原始的输入做了变换,即输入模型的样本变成了ϕ ( x )


i = 1 , 2… N(N为样本个数)

这是个二次规划,因为未知量的个数是参数w的维度,而w的维度与样本的维度相等,即等于变换后ϕ ( x ) \phi(x)ϕ(x)的的维度,所以其求解复杂度与样本的维数正相关,这意味着,如果我们把原始样本从十维空间变换到一万维的空间,那么求解该问题的时间复杂度提升了1000倍或者更多,我们知道有些变换可以将样本换边到无穷维空间,那么这种变化之后直接是不可求解的。

上面的问题可以使用对偶 + 核技巧的组合来解决。

我们也知道,SVM原始形式的对偶问题是:

很明显,未知量α \alphaα的个数与样本的个数是相等的,那么这个对偶问题计算的时间复杂度是与训练样本的个数正相关的(这也是为啥样本个数太多的时候不推荐使用带核技巧的SVM的原因)。

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

机器学习——核函数 的相关文章

随机推荐

  • python 接口自动化测试-----常见面试题汇总

    1 软件接口是什么 程序不同模块之间传输数据并作处理的类或函数 2 HTTP 和 HTTPS 协议区别 答 https 协议需要到 CA Certificate Authority 证书颁发机构 申请证书 一般免费证书 较少 因而需要一定费
  • 【Anaconda】基本操作

    1 创建 使用命令查看当前拥有的虚拟环境 conda info envs 在指定目录下创建新的虚拟环境 其中C ProgramData Anaconda3 envs 是创建的目录所在位置 pytorch 是新环境名称 python 3 8是
  • SpringBoot之【mybatisplus】分页插件、条件查询、sql打印开启

    文章目录 一 概述 二 流程 1 sql打印开启 2 分页插件 3 常用条件 一 概述 本篇主要写开启 sql的打印 分页插件开启 条件查询 二 流程 1 sql打印开启 yml文件添加如下配置 mybatis plus 配置slq打印日志
  • ForeFront Chat 免费版GPT-4来了!

    Forefront Chat简介 近日 Forefront AI 正式推出 Forefront Chat 允许用户免费体验GPT 4 的强大功能 Forefront AI 在 Twitter 上表示 今天 我们发布了 Forefront C
  • 为什么析构函数必须是虚函数?为什么默认的析构函数不是虚函数?

    本博客可能随时删除或隐藏 请关注微信公众号 获取永久内容 微信搜索 编程笔记本 获取更多信息 codingbook2020 今天我们来谈一谈面试 C 工程师时经常被谈到的一个问题 为什么析构函数必须是虚函数 为什么默认的析构函数不是虚函数
  • java高频面试题(2023最新)

    目录 一 java基础 1 八大基础类型 2 java三大特性 3 重载和重写的区别 4 pubilc protected dafault 不写 private修饰符的作用范围 5 和equals的区别 6 hashcode 值相同 equ
  • 如何解决“Error: xxx.js 已被代码依赖分析忽略,无法被其他模块引用”报错?

    今天在用uniapp框架写小程序 遇到报错 错误原因 微信开发者工具从 1 05 2201210 版本开始 对小程序项目新增了无依赖文件过滤能力 如果某个 js 文件被静态分析显示是无依赖文件 在实际运行时又被其他 js 文件 requir
  • java 文件读取和写入

    1 文件名 1 InputStream 字节流 和Reader 字符流 2 OutputStream 字节流 和 Writer 字符流 1 文件名 Java提供了File类 来表示一个文件 通过构造方法来指定路径 绝对路径 目录与目录之间用
  • BUCK电路-TL494方案 持续更新大概2周更新完成

    目录 一 电磁感应现象 这个现象是如何产生的 磁生电的变换的条件 二 电感的伏安特性 计算磁场大小可以用上面这个公式 磁感应强度B来表示 u0是真空磁导率 N是线圈的匝数 I是通过这个线圈的的电流大小 电生磁的过程就是由I来生成这个B 可以
  • SpringBoot 整合 ChatGPT API 项目实战,挣了3K!

    大家好 我是老赵 体验到了ChatGPT的强大之后 那么我们会想 如果我们想基于ChatGPT开发一个自己的聊天机器人 这个能搞定吗 ChatGPT平台已经为技术提供了一个入口了 很简单的就是实现了 一 准备工作 1 已成功注册 OpenA
  • Jmeter多接口测试之参数传递

    接口测试包含单接口测试和多接口测试 通过组合多个接口实现一组功能的验证称为多接口测试 单接口重在单个接口多种请求组合的响应断言 多接口重在组合不同接口 实现流程的串联和验证 多接口测试涉及到接口之间参数的传递 比如AB两个接口协同完成一个功
  • DDOS高防ip是什么?有什么用?

    ddos高防ip是网络安全公司针对服务器在遭受大流量的ddos攻击导致服务不可用的情况 推出的付费增值服务 ddos攻击是通过用大量的无效流量数据对该IP的服务器进行请求 导致服务器的资源被大量占用 无法对正确的请求作出响应通过配置ddos
  • shell变量的设定规则

    内容摘自鸟哥的Linux 私房菜 1 变量与变量内容以一个等号 来连结 如下所示 myname VBird 2 等号两边不能直接接空格符 如下所示为错误 myname VBird 或 myname VBird Tsai 3 变量名称只能是英
  • Django基础之Admin后台数据管理

    Admin后台数据管理 一个站点或者网站 除了给用户浏览及操作外 还需要对后台数据进行管理 比如添加商品 修改商品等等 Django提供了一个可插拔的后台管理系统 Admin 应用 该系统可以从模型中读取元数据 并提供以模型为中心的界面 A
  • C语言文件通讯录制作说明

    文件通讯 前言 很多计算机专业大学生第一个课设就是校园出入管理系统或者文件版通讯录 这些软件工程不仅可以锻炼我们的编程能力 也可以让我们更为深刻的理解C语言知识 为将来的学习打下基础 但是同学们肯定会有所疑问 下面是我的一个范例 提示 以下
  • 高德地图 – 1.问题集锦

    1 自动加载文本框的坐标 并在地图标注点 2 点击地图时 并且 逆地理编码 解析出地址方在文本框 js var lnglatXY var marker 初始化地图对象 加载地图 var map new AMap Map mapContain
  • 【PB】动态添加数据窗口列中下拉列表的内容

    1 设置数据窗口某个列 dept id 的style type为DropDownListBox dw 1 Modify dept id ddlb case any 2 为下拉列表框添加数据 boolean lb flag false str
  • 剖析C++标准库智能指针(std::auto_ptr)

    1 Do you Smart Pointer Smart Pointer 中文名 智能指针 舶来品 不可否认 资源泄露 resource leak 曾经是C 程序的一大噩梦 垃圾回收 机制 Garbage Collection 一时颇受注目
  • 测开笔记九:线程&TestNG

    1 线程 1 1 线程概念 线程 程序执行流的最小执行单位 是行程中的实际运作单位 经常容易和进程这个概念混淆 那么 线程和进程究竟有什么区别呢 首先 进程是一个动态的过程 是一个活动的实体 简单来说 一个应用程序的运行就可以被看做是一个进
  • 机器学习——核函数

    问 已知三维空间中的两个样本点分别为 2 4 5 和 1 2 3 定义核函数表达式为 试计算这两个样本点映射到十维空间后的 答 首先计算两个样本点的平方内积 2 1 4 2 5 3 25 然后代入核函数表达式 25 5 6 131 1 核函