机器学习基石 2 Learning to Answer Yes/No

Perceptron Hypothesis Set

对于一个线性可分的二分类问题,我们可以采用感知器 (Perceptron)这种假设集。

这种模型可以用下面的表达式表示出来:

其中不同的向量 \(w\) 代表了不同的假设函数 \(h(x)\),我们的目标是使用一些算法调整 \(w\) 的值,使得假设函数 \(h(x)\) 与我们要预测的函数 \(f(x)\) 尽可能的接近。

我们的想法是:如果 \(h(x)\) 与 \(f(x)\) 足够接近,那么它们作用在训练集 \(D\) 上的结果会是一样的,即对训练集中的 \(x\),有 \(f(x) = h(x)\)。反过来说,如果对所有训练集中的 \(x\),有 \(f(x) = h(x)\),那么在一定程度上,我们可以认为 \(h(x)\) 与 \(f(x)\) 是接近的。

Perceptron Learning Algorithm (PLA)

这个模型中训练 \(w\) 的算法称为感知器算法(Perceptron Learning Algorithm),算法描述如下图:

思想是对预测错误的样本进行修正:

当 \(f(x)=y=+1\) 而预测结果 \(h(x)=sign(w^Tx)=-1\) 时,说明此时 \(w\) 与 \(x\) 的内积过小,夹角过大,需要让 \(w\) 靠近 \(x\),因此将 \(w\) 改为 \(w+x=w+yx\);

当 \(f(x)=y=-1\) 而预测结果 \(h(x)=sign(w^Tx)=+1\) 时,说明此时 \(w\) 与 \(x\) 的内积过大,夹角过小,需要让 \(w\) 远离 \(x\),因此将 \(w\) 改为 \(w-x=w+yx\);

反复修正预测错误的样本点直到所有训练样本都预测正确。

一种可行的算法如下:

Guarantee of PLA

能使用PLA算法的重要前提是样本是线性可分的,即存在 \(w_f\) 使得 \(y_n = sign(w_f^Tx_n)\),下面证明PLA算法是收敛的,即 \(w\) 能收敛到 \(w_f\),即算法能停止下来。

  1. \(w_f\) 与 \(w_t\) 的内积会单调递增

  2. \(w_t\) 增长速度有限

以上两点可以推出:

算法更新次数\(T \leq \frac{R^2}{\rho^2}\)

其中\(R^2 = \max \limits_{n}\{f(x)\}, \quad \rho = \min \limits_{n} y_n \frac{w_f^T}{||w_f^T||} x_n\)

总结以下PLA算法

Non-Separable Data

对于数据有噪声时,学习的过程发生了一点改变:

对感知器模型来说,此时可能无法使所有样本都正确分类,因此学习的目标从 \(\arg \limits_{w} y_n = sign(w^Tx_n)\) 变成了 \(\arg \min \limits_{w}\sum {[[y_n \neq sign(w^Tx_n)]]}\) (NP-hard 问题)

于是PLA算法可以改进成Pocket算法:

机器学习基石 2 Learning to Answer Yes/No的更多相关文章

  1. 机器学习基石 4 Feasibility of Learning

    机器学习基石 4 Feasibility of Learning Learning is Impossible? 机器学习:通过现有的训练集 \(D\) 学习,得到预测函数 \(h(x)\) 使得它接 ...

  2. 机器学习基石 3 Types of Learning

    机器学习基石 3 Types of Learning Learning with Different Output Space Learning with Different Data Label L ...

  3. 机器学习基石 1 The Learning Problem

    机器学习基石 1 The Learning Problem Introduction 什么是机器学习 机器学习是计算机通过数据和计算获得一定技巧的过程. 为什么需要机器学习 1 人无法获取数据或者数据 ...

  4. 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总

    大家好,我是Mac Jiang,非常高兴您能在百忙之中阅读我的博客!这个专题我主要讲的是Coursera-台湾大学-機器學習基石(Machine Learning Foundations)的课后习题解 ...

  5. 机器学习基石(台湾大学 林轩田),Lecture 1: The Learning Problem

    课程的讲授从logo出发,logo由四个图案拼接而成,两个大的和两个小的.比较小的两个下一次课程就可能会解释到它们的意思,两个大的可能到课程后期才会解释到它们的意思(提示:红色代表使用机器学习危险,蓝 ...

  6. 机器学习基石第三讲:types of learning

    博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完毕机器学习基石的第三讲.这一讲主要介绍了机器学习的分类.对何种问题应该使用何种 ...

  7. Coursera机器学习基石 第1讲:The Learning Problem

    这门课的授课老师是个台湾人,师从Caltech的Yaser S. Abu-Mostafa,他们共同编撰了<Learning From Data>这本书.Yaser S. Abu-Mosta ...

  8. 机器学习基石第一讲:the learning problem

    博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) Andrew Ng的Machine Learning比較简单,已经看完.林田轩的机器 ...

  9. (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem

    (转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...

随机推荐

  1. SDWebImage源码解读之SDWebImagePrefetcher

    > 第十篇 ## 前言 我们先看看`SDWebImage`主文件的组成模块: ![](http://images2015.cnblogs.com/blog/637318/201701/63731 ...

  2. SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数

    -- SQL SERVER 判断是否存在某个触发器.储存过程 -- 判断储存过程,如果存在则删除IF (EXISTS(SELECT * FROM sysobjects WHERE name='proc ...

  3. 【java设计模式】之 抽象工厂(Abstract Factory)模式

    1. 女娲的失误 上一节学习了工厂模式,女娲运用了该模式成功创建了三个人种,可是问题来了,她发现没有性别--这失误也忒大了点吧--竟然没有性别,那岂不是--无奈,只好抹掉重来了,于是所有人都被消灭掉了 ...

  4. Windows下MySQL多实例安装/主从复制/重置密码

    Windows创建MySQL多实例 安装MYSQL和实例1 运行mysql-installer-community-5.7.16.0.msi 选择组件 MySQL Server 5.7.16 – X6 ...

  5. .Net程序员学用Oracle系列(15):DUAL、ROWID、NULL

    1.DUAL 表 2.ROWID 类型 2.1.利用 ROWID 查询数据 2.2.利用 ROWID 更新数据 3.NULL 值 3.1.NULL 与空字符串 3.2.NULL 与函数 3.3.NUL ...

  6. Java字符串之String与StringBuilder

    String与SringBuiler的一些比较   在Java中,我们会大量使用字符串,但是String究竟是怎样工作的我们可能没有想过太多,其实在String类中,每一个看起来会修改String值的 ...

  7. WebServerice

    WebServerice是什么 web service是一个web应用程序的分支,是构建应用程序的普通模型,可以在支持Internet网络通信操作系统上实施. 它的原理主要是利用HTTP协议使数据在w ...

  8. MongoDB学习总结(二) —— 基本操作命令(增删改查)

    上一篇介绍了MongoDB在Windows平台下的安装,这一篇介绍一下MongoDB的一些基本操作命令. 下面我们直奔主题,用简单的实例依次介绍一下. > 查看所有数据库 (show dbs) ...

  9. centos安装UCenter 和 UCenter_Home

    1.搭建lamp环境yum  –y  install  httpd  php  php-mysql  mysql  mysql-server 2启动服务   3.设置服务开机自动启动 4.上传UCEN ...

  10. Repeater中使用倒计时

    <asp:Label ID="lblTime" runat="server" Text='<%# FormatDateString(Eval(&qu ...