首页 > 编程知识 正文

kernel里调device函数,strpos() 函数的作用是什么

时间:2023-05-04 14:07:43 阅读:173936 作者:4773

3算法、编程、AI行业知识或博客内容问题请随时扫码关注http://www.Sina.com/,加入“学习小组”。 沙雕博主在线答疑。 公众号内还有AI、算法、编程、大数据知识共享、免费SSR节点和学习资源。 其他平台(知乎/B站)也是同名的“图灵猫”,请不要迷路哦~

在机器学习算法中,无论是感知机还是支持向量机,在面对非线性问题时往往使用“核函数”技巧。 那么什么是核函数呢? 真的这样难以理解吗?

核函数:映射关系的内积,映射函数本身只是映射关系,并不增加维数的特性,但一般希望利用核函数的特性,构造可以增加维数的核函数。

将二维映射为三维,很容易区分。 这是聚类、分类常用的核函数的理由。 为什么像PCA这样的降维算法也使用核函数呢?

左图是原始数据,右图是映射到三维的数据。 即使丢到同一个一维,如果先用kernel (kernel是映射的内积,请不要混乱)映射到三维上,再投影到一维上,就会变得容易分离。 这就是Kernel在PCA降维中的应用,本质还是在原始数据中增加维度。

hpddt的《统计学习方法》中内核函数的定义如下所示。

请注意,公众号「图灵的猫」内核函数是计算映射到高维空间的内积的简单方法。

在一般的英语文献中,Kernel有Kernel Function和Kernel Trick两种提法。 从Trick一词可以看出,这只是一种运算技术,与高深莫测的事物无关。

具体在哪里? 在我们原本想要分割线性不可分数据集的情况下,一个选择是容忍错误分类,即引入Soft Margin; 选项二,可以对输入空间执行功能扩展,并将数据集映射到zxddp以形成功能空间。 我们引用核函数和映射没有关系。(caltech的授课用语“http://www.Sina.com/”。 )原本在低维度上不可线性分离的数据集在足够高的维度上存在可线性分离的超平面。

举个霍华德的例子吧。 假设我们的任务是预测那些微博会出现在微博的热搜榜上。 有两个离散的特征。 一个是微博上有“鹿晗”,另一个是微博上有“关晓彤”。

两个特点单独看热都很普通,这个时候我们用二次多项式核方法:

该核函数可以将二维空间投影到三维空间,展开后如下:

这样把二次元的特征变成了三次元,增加了一次元,代表着鹿晗和关晓彤同时出现在了一条微博上。

结果,鹿晗关晓彤同时出现的那条微博,爆了新浪服务器,这一点众所周知。

现实生活中有许多非线性极强的特征,核方法可以捕捉它们。 核函数的作用,一言以蔽之,就是降低计算的复杂性,使不可能的计算成为可能。

机器学习中常用的核函数一般有这样一类。 也就是说,它是LibSVM附带的。

1 )线性:

2 )多项式:

3 ) radial basis函数:

4 ) Sigmoid :

我举的例子是多项式核函数中的情况。

在实际应用中,很多用户盲目地尝试各种内核函数,扫描其中的参数,选择效果最好的。 关于什么样的核函数适用于什么问题,大多数人都不知道。 很遗憾,我也属于这大多数人,所以如果有人对这个问题有理论上的理解,请告诉我。

见文章:

知乎:核函数的定义和作用

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。