第二讲···感知机学习算法

2-1 Perceptron hypothesis set

对于银行是否决定要给申请者信用卡问题,对于输入数据(例如申请者的个人信息,年龄,性别,收入,工作情况等)可用一组特征表示,不妨表示为:

X = (x1, x2, x3,···, xd)

即可视为每一维数据是该申请者对应每一项条件的分数,设想是根据每一维数据的重要程度不同,每一维数据与一个权值相乘,最后的总和可视为该申请者的得分,若得分超过某一阈值,则输出同意借贷信用卡,否则拒绝。

这种感知机模型的设立易于理解,与生活实际相通,最后得到上图最后的模型,当加权和超过阈值,差为正数,输出为1,否则负数为-1,分别代表两种结果。

继续将上式简化,将+1作为申请者的另外一个特征的值,只不过这个值是常数,且该特征对应的权重为负的阈值。如下图所示:

最终,sign函数内部为两个向量的內积值,即权重向量与特征数值向量的內积。

可知感知机模型是个线性分类器,以上图为例,拥有两个特征,在二维平面内,不同的参数w可生成不同的直线,在高维空间中依旧如此,且直线两侧不同颜色代表是不同的预测结果值,因此称作线性分类器。

2-2 Perceptron learning algorithm

有了上一节设定的感知机模型之后,我们同时也拥有很多的data,还有相应的label,接下来就是根据所得到的data,用机器学习算法在感知机模型中找到一组最好的参数,可以使得该模型有很好的预测结果。

但是W参数是多维度的,每个维度都有无穷个的取值,因此,用穷举的办法找到最佳的W是不太可行的。

所以就采用另外一个办法,先假设一个初始的参数W,根据data慢慢修改W的值,来使模型越来越准确。
我们假设给W一个初始值,初始值可以任意,例如可以全部都取值为零,将这一组参数记为W0。

回顾上节知识,参数W为权重向量,包括第零维的负的阈值,x为data中的一个向量,为某一个个体的特征的分数,包括第零维1,W与x的內积若为正数,代入sign函数之后为1,即表明这组参数W所构成的感知机,在预测当前这个例子x时,输出记过为1,当然输出结果可能正确也可能错误。

在我们假定了初始参数W0之后,让拥有这组参数的感知机去一个个预测data中的每一个个体,W与x皆为高维空间中的向量,两者內积类比于平面向量的內积。若找到一个个体,W0与该个体向量內积与该个体的label异号,说明感知机在这个个体的预测上面有问题,说明需要适当调整W0向量的值。

若感知机预测的结果为正,而实际label为-1,则说明两向量夹角太小,导致向量內积大于0,因此要适当增加向量之间的夹角,方法就是W向量加上x向量与x向量的label相乘,此和来作为新的W的值,到此W参数更新一次,感知机结果为负数的时候,也是同理,公式仍然保持一致。

在每一轮更新中,感知机找到一个预测错误样本即可,再根据此样本进行更新,之后再进行新的一轮。直到便利所有data中的样本,所有的样本都被感知机预测正确,到此结束。

过程如图所示:

2-3 Guarantee of PLA

让PLA算法可以停下来的条件就是确实存在一组参数向量可以使感知机对所有个体都预测正确,假设这一组参数为Wf{W}_fWf​,代表就是我们通过算法想要模拟的最佳的参数向量。

因此对于任意一个个体(xn,yn{x}_n,{y}_nxn​,yn​)都有 yn{y_n}yn​=sign(WfT⋅xn)sign({W^T_f·x_n})sign(WfT​⋅xn​) 代表全部预测正确。

上图证明了随着W{W}W的不断更新,其与Wf{W}_fWf​的內积越来越大,一定程度上代表W{W}W与Wf{W}_fWf​越来越接近,不过两向量內积的增大除了向量夹角变小之外,向量的长度变大也会有影响。

上图证明了向量长度的确在增长,不过根据前两页的公式,我们可以得到如下推导:

WfT⋅WT≥WfT⋅WT−1+minn(yn⋅WfT⋅xn){W_f^T}\cdot{W_T}\geq{W_f^T}\cdot{W_{T-1}}+\underset{n}{min}(y_n\cdot{W_f^T}\cdot{x_n})WfT​⋅WT​≥WfT​⋅WT−1​+nmin​(yn​⋅WfT​⋅xn​)
≥WfT⋅WT−2+2minn(yn⋅WfT⋅xn)\geq{W_f^T}\cdot{W_{T-2}}+2\underset{n}{min}(y_n\cdot{W_f^T}\cdot{x_n})≥WfT​⋅WT−2​+2nmin​(yn​⋅WfT​⋅xn​)
≥WfT⋅WT−3+3minn(yn⋅WfT⋅xn)\geq{W_f^T}\cdot{W_{T-3}}+3\underset{n}{min}(y_n\cdot{W_f^T}\cdot{x_n})≥WfT​⋅WT−3​+3nmin​(yn​⋅WfT​⋅xn​)
…………
≥WfT⋅W0+Tminn(yn⋅WfT⋅xn)\geq{W_f^T}\cdot{W_{0}}+T\underset{n}{min}(y_n\cdot{W_f^T}\cdot{x_n})≥WfT​⋅W0​+Tnmin​(yn​⋅WfT​⋅xn​)
≥Tminn(yn⋅WfT⋅xn){\geq}T\underset{n}{min}(y_n\cdot{W_f^T}\cdot{x_n})≥Tnmin​(yn​⋅WfT​⋅xn​)

两边同时除以∥Wf∥\lVert{W_f}\rVert∥Wf​∥可以得到:
WfT⋅WT∥Wf∥{W_f^T}\cdot{W_T} \over \lVert{W_f}\rVert∥Wf​∥WfT​⋅WT​​≥\geq≥Tminn(yn⋅T\underset{n}{min}(y_n\cdotTnmin​(yn​⋅WfT∥Wf∥{W_f^T} \over \lVert{W_f}\rVert∥Wf​∥WfT​​⋅xn)\cdot{x_n})⋅xn​)………………………………………………………………………(1)

令ρ=minn(yn⋅WfT⋅xn)\rho=\underset{n}{min}(y_n\cdot{W_f^T}\cdot{x_n})ρ=nmin​(yn​⋅WfT​⋅xn​):

(1)式子为WfT⋅WT∥Wf∥{W_f^T}\cdot{W_T} \over \lVert{W_f}\rVert∥Wf​∥WfT​⋅WT​​≥\geq≥T⋅ρT\cdot\rhoT⋅ρ ………………………………………………………………………………(2)

同时由于:
∥WT∥2≤∥WT−1∥2+maxn∥xn∥2\lVert{W_T}\rVert^2\leq\lVert{W_{T-1}}\rVert^2+\underset{n}{max}\lVert{x_n}\rVert^2∥WT​∥2≤∥WT−1​∥2+nmax​∥xn​∥2
≤∥WT−2∥2+2maxn∥xn∥2\leq\lVert{W_{T-2}}\rVert^2+2\underset{n}{max}\lVert{x_n}\rVert^2≤∥WT−2​∥2+2nmax​∥xn​∥2
…………
≤∥W0∥2+Tmaxn∥xn∥2\leq\lVert{W_0}\rVert^2+T\underset{n}{max}\lVert{x_n}\rVert^2≤∥W0​∥2+Tnmax​∥xn​∥2
≤Tmaxn∥xn∥2\leq{T}\underset{n}{max}\lVert{x_n}\rVert^2≤Tnmax​∥xn​∥2…………………………………………………………………………………………(3)

令R2=maxn∥xn∥2R^2=\underset{n}{max}\lVert{x_n}\rVert^2R2=nmax​∥xn​∥2:
(3)式为∥WT∥2≤T⋅R2\lVert{W_T}\rVert^2\leq{T}\cdot{R^2}∥WT​∥2≤T⋅R2
即∥WT∥≤T⋅R\lVert{W_T}\rVert\leq{\sqrt{T}}\cdot{R}∥WT​∥≤T​⋅R …………………………………………………………………………………(4)

结合(2)(4):
WfT∥Wf∥{W_f^T} \over \lVert{W_f}\rVert∥Wf​∥WfT​​⋅\cdot⋅WT∥WT∥{W_T} \over \lVert{W_T}\rVert∥WT​∥WT​​≥\geq≥T⋅constant{\sqrt{T}}\cdot{constant}T​⋅constant
其中constant=constant=constant=ρR\rho\over{R}Rρ​

说明随着计算的迭代,参数向量的确是与Wf{W_f}Wf​越来越接近,单位向量內积不断增大,且不会超过1。

2-4 Non-separable data

当数据集不可分时,采用贪心的策略对参数WWW进行更新,通过比较更新之后和更新之前感知机对data预测的结果,来得到是否要对参数进行更新,若感知机预测效果更差则保留原来的参数,若效果变好则新的参数代替旧的参数WWW,以此进行足够的次数。

过程如下图所示:

注明:
文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程

台大·林轩田·机器学习基石·第二讲相关推荐

  1. 台大林轩田·机器学习基石记要

    台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主 ...

  2. 台大林轩田机器学习基石学习笔记(一):The Learning Problem

    这里写自定义目录标题 写在前面 一.What is Machine Learning 二.Applications of Machine Learning 三.Components of Machin ...

  3. 机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation

    课程主页 课程视频和PPT 上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classification问题.本节课主要介绍非 ...

  4. 机器学习 | 台大林轩田机器学习基石课程笔记3 --- Types of Learning

    课程主页 课程视频和PPT 上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类(前提数据是线性可分的,在高维空间中,可以用一个超平面完全 ...

  5. 台大林轩田·机器学习技法记要

    台大林轩田·机器学习技法 记要 6/1/2016 7:42:34 PM 第一讲 线性SVM 广义的SVM,其实就是二次规划问题 把SVM问题对应到二次规划的系数 这就是线性SVM,如果想变成非线性,只 ...

  6. 台大林轩田机器学习技法完全解读

    支持向量机(SVM)完全解读 集成学习完全解读 神经网络深度学习完全解读 感谢林轩田老师!

  7. [机器学习基础][台大林轩田]机器学习概念

    什么是机器学习 什么是"学习"?学习就是人类通过观察.积累经验,掌握某项技能或能力.就好像我 们从小学习识别字母.认识汉字,就是学习的过程.而机器学习(Machine Learni ...

  8. ccc-台大林轩田机器学习基石-hw1

    文章目录 Question1-14 Question15-PLA Question16-PLA平均迭代次数 Question17-不同迭代系数的PLA Question18-Pocket_PLA Qu ...

  9. 【本站原创】台大林轩田《机器学习基石》系列课程教材的习题解答和实现

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

最新文章

  1. 一文读懂大数据漏斗分析!
  2. mysql数值比中文检索快_MySQL 千万 级数据量根据(索引)优化 查询 速度
  3. 没想到,我都来阿里5年了!
  4. spring 标注 详解
  5. 这些云计算网络安全知识,你不得不知
  6. 程序设计入门经典题解(百练篇)
  7. js学习笔记(新手向)
  8. GitHub 简单教程
  9. subsequence java_Java StringBuilder subSequence()方法与示例
  10. 【STM32】RCC复位和时钟控制器
  11. srand c语言,C语言srand()rand()
  12. kettle 6.1.0.1 mysql_kettle连接数据库报错:Error occured while trying to connect
  13. OpenLayers5在EPSG:4326投影坐标系下测量长度和面积
  14. Linux--指令(六) cp
  15. python注册登陆程序_python的简单的登陆和注册功能实现
  16. 进阶1·调用高德API获取交通数据(多个URL访问,字典提取,while无限循环下的程序间断运行)
  17. Redis缓存的使用
  18. tableView 取消 cell 默认下划线样式 - iOS
  19. python模拟登陆 验证码el_python 模拟登陆163邮箱
  20. Mentor.Graphics.O-in v3.0 Linux 1DVD

热门文章

  1. 参考C++高级进阶教程
  2. 如何在Nintendo Switch上进行游戏共享
  3. js 全屏移动漂浮框广告栏(3w)
  4. Torvalds 拒绝接受 ZFS 文件系统
  5. Ubuntu16.04安装ftp配置
  6. WIN11自定义版本镜像下载教程
  7. Java内部类及内部接口
  8. 怎么用dw修改PHP网页模板,【网站模板如何使用】从网站下载的网页模板在dwcs6中如何修改使用?什么是网页设计模板,如何利用网页设计模板?...
  9. 使用python的turtle库画表情包
  10. 多品种+小批量生产计划方法