【机器学习基石笔记】二、感知机

感知机算法:

1、首先找到点,使得sign(wt * xt) != yt,

  那么如果yt = 1,说明wt和xt呈负角度,wt+1 = wt + xt能令wt偏向正角度。

  如果yt = -1, 说明xt和wt呈正角度,wt+1 = wt - xt 能令wt偏向负角度。

  总之,参数更新为wt+1 = wt + yt * xt

2、直到分好为止。数据需要线性可分。

算法证明:

1、假设wf是正确的,证明wn和wf越来越接近,内积越来越大

wf * wt+1 = wf*wt + wf*yt*xt > wf * wt, 原因是对任何t,wf分类正确,那么sign(wf * xt) = yt,那么wf * yt * xt > 0

2、wt增长的不太快

||wt+1|| = ||wt|| + ||xt|| - 2wt * yt * xt < ||wt|| + ||xt||

3、角度变化

内积增长量级是n, 长度增长量级是sqrt(n),所以会收敛。

优缺点:

优点:简单、易实现、高维也可以。

缺点:线性可分、停止时间(由wf决定)

线性不可分怎么办

1、Min犯错误的点, np-hard问题。

pocket 贪心算法

2、就瞎跑

原文地址:https://www.cnblogs.com/yesuuu/p/7492616.html