机器学习——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−∣∣x−y∣∣2=e−x2e−y2[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!}...] e−x2e−y2[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}) (xa1,xb1,xc1), ( x a 2 , x b 2 , x c 2 ) (x_{a2},x_{b2},x_{c2}) (xa2,xb2,xc2)

则它们的点积为 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!}...] e−x2e−y2[1+1!(2x.y)1+2!(2x.y)2+3!(2x.y)3...]无穷维的两条数据点积,对应的计算式正是 e − ∣ ∣ x − y ∣ ∣ 2 e^{-||x-y||²} e−∣∣x−y∣∣2,这正是核函数

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

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

当x,y两条数据差距非常大时,核函数值接近0

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

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

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

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

相关推荐
肥猪猪爸24 分钟前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
LZXCyrus1 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
我感觉。1 小时前
【机器学习chp4】特征工程
人工智能·机器学习·主成分分析·特征工程
YRr YRr1 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
DieYoung_Alive1 小时前
一篇文章了解机器学习(下)
人工智能·机器学习
夏沫的梦1 小时前
生成式AI对产业的影响与冲击
人工智能·aigc
goomind2 小时前
YOLOv8实战木材缺陷识别
人工智能·yolo·目标检测·缺陷检测·pyqt5·木材缺陷识别
只怕自己不够好2 小时前
《OpenCV 图像基础操作全解析:从读取到像素处理与 ROI 应用》
人工智能·opencv·计算机视觉
幻风_huanfeng2 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
嵌入式大圣2 小时前
嵌入式系统与OpenCV
人工智能·opencv·计算机视觉