博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
吴恩达机器学习系列18:核函数
阅读量:5977 次
发布时间:2019-06-20

本文共 1037 字,大约阅读时间需要 3 分钟。

让我们来考虑这样一个问题,现在给定一个数据集,让你划分出决策边界,该怎么办呢?数据集中正样本为「叉」,负样本为「圈」,如下图:

第一反应就是用一个高阶多项式去构造一个假设函数,当假设函数大于等于零时,我们就可以认为它为正样本,否则为负样本,类似下面这种形式:

但是有一个问题出现了,我们不能确定构造的假设函数就是最符合这个例子的高阶多项式,可能还有其他的高阶多项式能够更好地符合这个例子。

为了解决这样一个问题,我们首先来引入新的符号,用 f 替换原来多项式中的 x,假设函数就变成了如下这种类型:

现在问题就转化成如何选择特征 f?我们可以通过核函数(Kernels)改造支持向量机让它来学习复杂的非线性假设函数。

对于特征 x_1 和 x_2,我们首先手动的选取几个点 l^(1), l^(2), l^(3), 这些点被称作标志(landmark), 然后令:

其中:

这里的 similarity( ) 是相似度函数,被称为核函数(Kernels),也叫做高斯核函数(Gaussian Kernel)虽然这个函数跟正态分布函数长得很像,但其实比没有什么关系。

现在我们来分析一下这个函数,当 x 与 l 几乎相等时,这一项:

就等于 0,那么 f =1。当 x 与 l 差距很大时,f = 0。

让我们用图像去直观地感受一下:

图像中高度为 f 的值,x 越接近 l ,f 就越处在「山丘」的顶部。山丘的形状还与 σ^2 有关。

 σ^2 越小,「山丘」越「瘦高」,σ^2  越大,「山丘」越「胖矮」。

在下面这张图中,假设我们已经手动寻找了标志且构造了一个假设函数:

参数也知道了:

现在观察粉红色的点,它离  l^(1)  近,f1 = 1,离 l^(2)  , l^(3)  远,f2 和 f3 都为 0,此时假设函数大于 0,我们就可以预测这是一个正样本。

再来观察浅蓝色的点:

离 l^(1)  , l^(2)  , l^(3)  都远,f1,f2,f3 都为 0,假设函数就小于 0,我们就可以认为这是一个负样本。通过这样的判断,我们就可以画出一个决策边界:

如何选择标记点呢?我们可以将训练集所在的位置直接当做样本点来处理。

ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。如果想要一起学习机器学习,可以关注微信公众号「SuperFeng」,期待与你的相遇。

转载于:https://juejin.im/post/5cc58f076fb9a0324e4a420e

你可能感兴趣的文章
五分钟创建一个自己的NPM包
查看>>
Flutter开发环境安装
查看>>
QQ登录的那些坑(如何开发qq登陆功能)
查看>>
中大型网站技术架构演变过程
查看>>
深入剖析OkHttp系列(五) 来自官方的事件机制
查看>>
【前端词典】进阶必备的网络基础(下)
查看>>
ARTS训练第三周
查看>>
12月21日云栖精选夜读:阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”...
查看>>
一出好戏不止是部电影,它也正接近你的生活。
查看>>
Angular 表单验证类库 ngx-validator 1.0 正式发布
查看>>
刨根问底——Handler
查看>>
H5活动刮刮卡功能的实现与注意事项
查看>>
搞定Go单元测试(三)—— 断言(testify)
查看>>
web前端—面试2
查看>>
设计模式之 - 简单工厂模式
查看>>
前端如何搭建一个成熟的脚手架
查看>>
vue中v-for循环如何将变量带入class的属性名中
查看>>
PHP 安全问题入门:10 个常见安全问题 + 实例讲解
查看>>
Leetcode03
查看>>
Mysql常用命令
查看>>