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

本文介绍了感知器(Perceptron)这一经典的机器学习算法。它主要用于解决线性可分的二分类问题,并详细阐述了感知器的学习算法(PLA)及其工作原理。此外,还讨论了非线性可分数据情况下算法的改进。

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

Perceptron Hypothesis Set

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

这种模型可以用下面的表达式表示出来:
1115873-20170302103405251-1155092796.png

其中不同的向量 \(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),算法描述如下图:

1115873-20170302104435563-773646098.png

思想是对预测错误的样本进行修正:
\(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\);
反复修正预测错误的样本点直到所有训练样本都预测正确。

一种可行的算法如下:
1115873-20170302105543141-1170082268.png

Guarantee of PLA

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

  1. \(w_f\)\(w_t\) 的内积会单调递增
    1115873-20170302153803610-941993387.png
  2. \(w_t\) 增长速度有限
    1115873-20170302153906532-431878078.png

以上两点可以推出:
算法更新次数\(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算法
1115873-20170302155201032-745391354.png

Non-Separable Data

对于数据有噪声时,学习的过程发生了一点改变:
1115873-20170302155340860-1980512791.png

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

1115873-20170302160211860-880740862.png

于是PLA算法可以改进成Pocket算法:
1115873-20170302160318673-1245160815.png

转载于:https://www.cnblogs.com/eathen/p/6489487.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值