Lecture 2:Learning to Yes/No

2018-08-24  本文已影响0人  薛家掌柜的

Perceptron Learning Algorithm (PLA)

现在我们把H看作是所有可能的感知机(Perceptron),把g看作其中的一个感知机假设。
那么,我们想要做的就是让g尽可能的接近target functionf,理论上讲在数据集D上,g(x_n) = f(x_n) = y_n是成立的,也是必要的。
但是H(感知机假设)是无限的,那要怎么做呢?

idea: start from some g_0(represent by its weight vector w_0),and 'correct' its mistakes on D

以下是PLA流程:
For t = 0,1,...

  1. 找到被w_t^T划分错误的一个错误点(x_{n(t)} ,y_{n(t)}),使得sign(w_t^T x_{n(t)}) \neq y_{n(t)}
  2. w_{t+1} \leftarrow w_t + y_{n(t)}x_{n(t)},尝试去修正这个错误。

    ... 直到没有分错的点为止。此时令g = w( w_{PLA})
    举例说明:

Guarantee of PLA

首先讲一下线性可分(Linear Separability)的概念:

并且,w_t does not grow too fast
Because w_tchanged only when mistake \Leftrightarrow sign(w_t^Tx_{n(t)}) \neq y_{n(t)} \Leftrightarrow y_{n(t)}w_f^T x_{n(t)} \leq0
mistakes 'limits' ||w_t||^2 growth,even when updating which 'longest' x_n
||w_{t+1}||^2 = ||w_t+y_{n(t)}x_{n(t)}||^2
     =||w_t||^2+2w_ty_{n(t)}x_{n(t)}+||y_{n(t)}x_{n(t)}||^2
     \leq||w_t||^2+0+||y_{n(t)}x_{n(t)}||^2
     <||w_t||^2+max||y_nx_n||^2

Note:start from w_0 = 0,after T mistake corrections:\frac{w_f^T}{||w_f||}\frac {w_t}{||w_t||} \leq \sqrt{T} \cdot constant


Non-Separable Data

上面讲述了PLA基于线性可分数据的过程,而在现实生活中,D并不总是separable的。那么,我们要怎么做才能使得g \approx f成立呢?
如果数据集如下图所示,我们永远不可能画一条直线完全分开\circ\times样本。


但是,显然,noise数据不会太多(太多了就没意义了,对这份数据集而言),那么我们可以假设 y_n = f(x_n) 在一般情况下是成立的,即忽略噪点。那么,在这份数据集 D 上, g\approx f \Leftrightarrow y_n = g 也是成立的。
所以,现在我们要做的,就是找一条线,使得错误点数量尽可能少。
w_g \leftarrow argmin \sum_{n=1}^{N}[|y_n \neq sign(w_n^T x_n)|]
不幸的是,这是一个NP难题。我们只能去找一个近似的符合条件的g。
这里我们引入Pocket算法 \Rightarrow modify PLA by keep best weights in Pocket。
initialize pocket weights in \hat{w} ,
For t = 0,1,...
  1. 找到被w_t^T划分错误的一个错误点(x_{n(t)} ,y_{n(t)}),使得sign(w_t^T x_{n(t)}) \neq y_{n(t)}
  2. w_{t+1} \leftarrow w_t + y_{n(t)}x_{n(t)},尝试去修正这个错误。
  3. 如果w_{t+1}划分的错误点比\hat{w}少,那么replace \hat{w}byw_{t+1}
    ... 直到迭代到足够次数为止。
    此时令g = \hat{w}( w_{POCKET})
上一篇 下一篇

猜你喜欢

热点阅读