机器学习——SVM核函数

核函数这块,原理理解起来,相对比较简单

但还是会有一些不太理解的地方

对于非线性可分的数据而言,在当前维度,直接使用SVM有分不出的情况

那么就可以从当前维度,直接升到更高维度,进行计算。

例如原本数据只有3个影响因素 x a , x b , x c x_a,x_b,x_c xa,xb,xc(性别)(年龄)(样貌),那么根据这三个维度的数据,可以拓展成更高维度(更多个不具名的影响因素),例如xc、xd、xe、xf、xg,再代入SVM的对偶问题里进行计算

其实有一本书《人工智能数学基础》里,描述的还是挺清晰的
在这里插入图片描述

另外讲到高斯核函数的时候,还给出了推导

在这里插入图片描述

这里的推导,实际就是在印证高斯核函数中,是如何拓展成高维向量,并且高维向量的点积,是如何用当前低维数据进行计算的。

K ( x , y ) = e − ∣ ∣ x − y ∣ ∣ 2 = e − x 2 e − y 2 [ 1 + ( 2 x . y ) 1 1 ! + ( 2 x . y ) 2 2 ! + ( 2 x . y ) 3 3 ! . . . ] K(x,y) = e^{-||x-y||²}=e^{-x^2}e^{-y^2}[1+\frac{(2x.y)^1}{1!}+\frac{(2x.y)^2}{2!}+\frac{(2x.y)^3}{3!}...] K(x,y)=e∣∣xy2=ex2ey2[1+1!(2x.y)1+2!(2x.y)2+3!(2x.y)3...]

这里高维向量的点积,体现在 e − x 2 e − y 2 [ 1 + ( 2 x . y ) 1 1 ! + ( 2 x . y ) 2 2 ! + ( 2 x . y ) 3 3 ! . . . ] e^{-x^2}e^{-y^2}[1+\frac{(2x.y)^1}{1!}+\frac{(2x.y)^2}{2!}+\frac{(2x.y)^3}{3!}...] ex2ey2[1+1!(2x.y)1+2!(2x.y)2+3!(2x.y)3...]

在SVM对偶函数求解里,正是需要求解点积

假设原数据的x总共分为3个影响因素 x a , x b , x c x_a,x_b,x_c xa,xb,xc

则两条数据分别为 ( x a 1 , x b 1 , x c 1 ) (x_{a1},x_{b1},x_{c1}) (xa1xb1xc1), ( x a 2 , x b 2 , x c 2 ) (x_{a2},x_{b2},x_{c2}) (xa2xb2xc2)

则它们的点积为 x a 1 x a 2 + x b 1 x b 2 + x c 1 x c 2 x_{a1}x_{a2}+x_{b1}x_{b2}+x_{c1}x_{c2} xa1xa2+xb1xb2+xc1xc2

但如果,现在将3个影响因素通过某种关系,上升到无穷个影响因素, x e , x f , x g , x h , x k x_e,x_f,x_g,x_h,x_k xe,xf,xg,xh,xk

这两条数据就变为了
x e 1 , x f 1 , x g 1 , x h 1 , x k 1 . . . x_{e1},x_{f1},x_{g1},x_{h1},x_{k1}... xe1,xf1,xg1,xh1,xk1...
x e 2 , x f 2 , x g 2 , x h 2 , x k 2 . . . x_{e2},x_{f2},x_{g2},x_{h2},x_{k2}... xe2,xf2,xg2,xh2,xk2...

则它们的点积为
x e 1 x e 2 + x f 1 x f 2 + x g 1 + x h 1 x h 2 + x k 1 x k 2 + . . . x_{e1}x_{e2}+x_{f1}x_{f2}+x_{g1}+x_{h1}x_{h2}+x_{k1}x_{k2}+... xe1xe2+xf1xf2+xg1+xh1xh2+xk1xk2+...

但由于高维度的点积计算量太大,找到一个原低维的计算式等于高维的点积结果,那个计算式就是核函数!

高斯核函数中的 e − x 2 e − y 2 [ 1 + ( 2 x . y ) 1 1 ! + ( 2 x . y ) 2 2 ! + ( 2 x . y ) 3 3 ! . . . ] e^{-x^2}e^{-y^2}[1+\frac{(2x.y)^1}{1!}+\frac{(2x.y)^2}{2!}+\frac{(2x.y)^3}{3!}...] ex2ey2[1+1!(2x.y)1+2!(2x.y)2+3!(2x.y)3...]无穷维的两条数据点积,对应的计算式正是 e − ∣ ∣ x − y ∣ ∣ 2 e^{-||x-y||²} e∣∣xy2,这正是核函数

只是高斯核函数还有一个参数σ,也叫核半径

e − ∣ ∣ x − y ∣ ∣ 2 2 σ e^{\frac{-||x-y||²}{2σ}} e2σ∣∣xy2,当x,y两条数据差距非常小,很接近时,核函数值接近1,
当x,y两条数据差距非常大时,核函数值接近0

这就像是正态分布(高斯分布)

那么σ的作用,就是调节用的:

极端来看,当σ值非常非常非常非常大时,如果x和y两条数据差距比较大,核函数值也依然接近1

因此,核函数正是一个低维升高维求解线性关系,并用低维数据计算替代高维点积的计算式。

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

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

相关文章

springboot房地产管理java购房租房二手房j客户sp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 springboot房地产管理 系统1权限:管理员 …

pom文件---maven

027-Maven 命令行-实验四-生成 Web 工程-执行生成_ev_哔哩哔哩_bilibili 27节.后续补充 一.maven下载安装及配置 1)maven下载 2) settings文件配置本地仓库 3)settings配置远程仓库地址 4)配置maven工程的基础JDK版本 5)确认JDK环境变量配置没问题,配置maven的环境变量 验证…

【数据结构OJ题】合并两个有序数组

原题链接:https://leetcode.cn/problems/merge-sorted-array/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 看到这道题,我们注意到nums1[ ]和nums2[ ]两个数组都是非递减的。所以我们很容易想到额外开一个数组tmp[ ]&#x…

小研究 - Mysql快速全同步复制技术的设计和应用(二)

Mysql半同步复制技术在高性能的数据管理中被广泛采用,但它在可靠性方面却存在不足.本文对半同步复制技术进行优化,提出了一种快速全同步复制技术,通过对半同步数据复制过程中的事务流程设置、线程资源合理应用、批量日志应用等技术手段&#…

C++/Qt读写ini文件

今天介绍C/Qt读写ini文件,ini文件一般是作为配置文件来使用,比如一些程序的一些默认参数会写在一个ini文件中,程序运行时会进行对应的参数读取,详细可以查看百度ini文件的介绍。https://baike.baidu.com/item/ini%E6%96%87%E4%BB%…

401 · 排序矩阵中的从小到大第k个数

链接:LintCode 炼码 - ChatGPT!更高效的学习体验! 题解: 九章算法 - 帮助更多程序员找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 class Solution { public:/*** param matrix: a matrix of intege…

stable diffusion(1): webui的本地部署(windows)

一、前言 是的,现在是202308月份了,网上已经有很多打包好的工具,或者直接进一个web就能用SD的功能,但是我们作为程序员,就应该去躺坑,这样做也是为了能够有更多自主操作的空间。 像其他AI一样&#xff0c…

Python——调用webdriver.Chrome() 报错

今天运行脚本&#xff0c;报错内容如下&#xff1a; collecting ... login_case.py:None (login_case.py) login_case.py:11: in <module> dr webdriver.Chrome() D:\Program Files (x86)\Python\Python39\Lib\site-packages\selenium\webdriver\chrome\webdriver.p…

【算法题解】52. 分割圆的最少切割次数

这是一道 简单 题 https://leetcode.cn/problems/minimum-cuts-to-divide-a-circle/ 题目 圆内一个 有效切割 &#xff0c;符合以下两个条件之一&#xff1a; 该切割是两个端点在圆上的线段&#xff0c;且该线段经过圆心&#xff0c;即圆的直径。该切割是一端在圆心另一端在圆…

自然语言处理学习笔记(五)————切分算法

目录 1.切分算法 2.完全切分 3.正向最长匹配 4.逆向最长匹配 5.双向最长匹配 6.速度评测 1.切分算法 词典确定后&#xff0c;句子可能含有很多词典中的词语&#xff0c;他们有可能互相重叠&#xff0c;如何切分需要一些规则。常用规则为&#xff1a;正向匹配算法、逆向匹…

关于Godot游戏引擎制作流水灯

先上核心代码 游戏节点 流水灯的通途可以是 1. 装饰 2. 音乐类多媒体程序&#xff08;如FL中TB-303的步进灯&#xff09; FL Studio Transistor Bass

Stephen Wolfram:ChatGPT 的训练

The Training of ChatGPT ChatGPT 的训练 OK, so we’ve now given an outline of how ChatGPT works once it’s set up. But how did it get set up? How were all those 175 billion weights in its neural net determined? Basically they’re the result of very large…

pycharm、idea、golang等JetBrains其他IDE修改行分隔符(换行符)

文章目录 pycharm、idea、golang系列修改行分隔符我应该选择什么换行符JetBrains IDE&#xff0c;默认行分隔符 是跟随系统修改JetBrains IDE&#xff0c;默认行分隔符 pycharm、idea、golang系列修改行分隔符 一般来说,不同的开发环境和项目对换行格式的使用偏好不同: Windo…

Maven: No compiler is provided in this environment.

在Eclipse中运行Maven项目&#xff0c;报错&#xff1a; No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 解决方法&#xff1a; Windows > Preferences > Java > Installed JREs > Add > Standard VM,…

基于arcFace+faiss开发构建人脸识别系统

在上一篇博文《基于facenetfaiss开发构建人脸识别系统》中&#xff0c;我们实践了基于facenet和faiss的人脸识别系统开发&#xff0c;基于facenet后续提出来很多新的改进的网络模型&#xff0c;arcFace就是其中一款优秀的网络模型&#xff0c;本文的整体开发实现流程与前文相同…

软件测试缺陷报告

缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report&#xff08;SBR&#xff09;或软件问题报告Software Problem Report&#xff08;SPR&#xff09; 作用&#xff1a;缺陷报告是软件测试人员的工作成果之一&#xff0c;体现软件测试的价值缺陷报…

针对高可靠性和高性能优化的1200V碳化硅沟道MOSFET

目录 标题&#xff1a;1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance摘要信息解释研究了什么文章创新点文章的研究方法文章的结论 标题&#xff1a;1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance 摘要 本文详…

Vue2 第二十一节 Vue UI组件库

移动端常用UI组件 1. Vant https://youzan.github.io/vant 2. Cube UI https://didi.github.io/cube-ui 3. Mint UI http://mint-ui.github.io PC端常用UI组件 1. Element UI https://element.eleme.cn 2. IView UI https://www.iviewui.com 一. Element UI 的引入和使…

SpringBoot项目增加logback日志文件

一、简介 在开发和调试过程中&#xff0c;日志是一项非常重要的工具。它不仅可以帮助我们快速定位和解决问题&#xff0c;还可以记录和监控系统的运行状态。Spring Boot默认提供了一套简单易用且功能强大的日志框架logback&#xff0c;本文将介绍如何在Spring Boot项目中配置和…

SpringBoot核心配置和注解

目录 一、注解 元注解 基本注解 启动注解 二、配置 格式介绍 读取配置文件信息 案例演示1 嵌套读取bean信息 案例演示2 读取Map&#xff0c;List 以及 Array 类型配置数据 案例演示3 三、总结 一、注解 之前我们了解了SpringBoot基础和AOP简单应用&#xff0c;这期来讲…