1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【机器学习】感知器

【机器学习】感知器

时间:2020-11-05 04:08:02

相关推荐

【机器学习】感知器

#介绍

感知器算法由Rosenblatt于1957年提出,它是一种监督式学习算法。它是一种相当好的二分类在线算法。比如说Y有d个特征:

X = x 1 , x 2 , x 3 , . . . , x d X = x_1,x_2,x_3,...,x_d X=x1​,x2​,x3​,...,xd​

如果给这个d个特征每个加上一个权值,并进行线性组合。那么就可以得到下式:

y = ∑ i = 1 d ( w i x i + b i ) y=\sum_{i=1}^d(w_ix_i+b_i) y=i=1∑d​(wi​xi​+bi​)

这里求和出的结果就是用这些特征计算出来的总分,如果我们假定y>threshold时,最终结果为1。否则y <threshold时,最终结果为-1。则最终的表达式可以表示为:

h ( x ) = s i g n ( ( ∑ i = 1 d ( w i x i ) ) − t h r e s h o l d ) h(x)=sign((\sum_{i=1}^d(w_ix_i))-threshold) h(x)=sign((i=1∑d​(wi​xi​))−threshold)

这个公式称为perceptron hypothesis

(1)可以对上面的公式进行简化。其中可以把threshold作为w0,x0作为1,这样子的话就可以把上面的公式简化为:

h ( x ) = s i g n ( ( ∑ i = 1 d ( w i x i ) ) − t h r e s h o l d ) h(x)=sign((\sum_{i=1}^d(w_ix_i))-threshold) h(x)=sign((∑i=1d​(wi​xi​))−threshold)

= s i g n ( ( ∑ i = 0 d ( w i x i ) ) + ( − t h r e s h o l d ) ⏟ w 0 ∗ ( + 1 ) ⏟ x 0 \quad\quad\;=sign((\sum_{i=0}^d(w_ix_i))+\underbrace{(-threshold)}_{w_0}*\underbrace{(+1)}_{x_0} =sign((∑i=0d​(wi​xi​))+w0​ (−threshold)​​∗x0​ (+1)​​

= s i g n ( ∑ i = 0 d ( w i x i ) ) \quad\quad\;=sign(\sum_{i=0}^d(w_ix_i)) =sign(∑i=0d​(wi​xi​))

= s i g n ( w T x ) \quad\quad\;=sign(w^Tx) =sign(wTx)

(2)如果把上面的特征(二维)对应到空间中,则h(x)就是空间中的直线。如果是在多维空间中,则h(x)对应超平面。

#PLA算法(perceptron learning algorithm)

##(1)伪代码描述

##(2)基本思想

我们假定一个初始的w向量来对数据进行判定,一直到遇到一个判断错误的数据,这个时候,我们就是使用这个判断错误的数据,对w进行修改。

**如果 w x < 0 wx<0 wx<0, y > 0 y>0 y>0,w(k+1) = w(k) + pxk

**如果 w x > 0 wx>0 wx>0, y < 0 y<0 y<0,w(k+1) = w(k) - pxk

**如果 y w x > 0 ywx>0 ywx>0,w(k+1) = w(k)

##(3)向量描述

这里我们可以知道w,x在空间中是两个向量,对于第一种情况, w x < 0 wx<0 wx<0,就相当于两个向量夹角大于90度:

此时,W+X会把新的W向X靠近,这样的话就达到了学习的效果。

同理对于第二种情况, w x > 0 wx>0 wx>0,就相当于两个向量夹角小于90度:

#算法验证

##(1)验证算法是会收敛的

当出现错误时:

∣ ∣ w t + 1 ∣ ∣ 2 = ∣ ∣ w t + y t x t ∣ ∣ 2 = ∣ ∣ w t ∣ ∣ 2 + 2 y t w t T x t + ∣ ∣ y t x t ∣ ∣ 2 ||w_{t+1}||^2=||w_t + y_tx_t||^2=||w_t||^2 + 2y_tw_t^Tx_t + ||y_tx_t||^2 ∣∣wt+1​∣∣2=∣∣wt​+yt​xt​∣∣2=∣∣wt​∣∣2+2yt​wtT​xt​+∣∣yt​xt​∣∣2

≤ ∣ ∣ w t ∣ ∣ 2 + ∣ ∣ y t x t ∣ ∣ 2 ≤ ∣ ∣ w t ∣ ∣ 2 + m a x ∣ ∣ y n x n ∣ ∣ 2 ≤ ∣ ∣ w 0 ∣ ∣ 2 + T m a x ∣ ∣ y n x n ∣ ∣ 2 = T m a x ∣ ∣ x n ∣ ∣ 2 \leq||w_t||^2 + ||y_tx_t||^2\leq||w_t||^2 + max||y_nx_n||^2\leq||w_0||^2 + Tmax||y_nx_n||^2=Tmax||x_n||^2 ≤∣∣wt​∣∣2+∣∣yt​xt​∣∣2≤∣∣wt​∣∣2+max∣∣yn​xn​∣∣2≤∣∣w0​∣∣2+Tmax∣∣yn​xn​∣∣2=Tmax∣∣xn​∣∣2

由上面的公式可知: ∣ ∣ w t + 1 ∣ ∣ 2 ∣ ∣ w t ∣ ∣ 2 ≤ 1 + m a x ∣ ∣ x n ∣ ∣ 2 ∣ ∣ w t ∣ ∣ 2 \frac{||w_{t+1}||^2}{||w_t||^2} \leq 1 + \frac{max||x_n||^2}{||w_t||^2} ∣∣wt​∣∣2∣∣wt+1​∣∣2​≤1+∣∣wt​∣∣2max∣∣xn​∣∣2​,其中,另 R 2 = m a x ∣ ∣ x n ∣ ∣ 2 R^2=max||x_n||^2 R2=max∣∣xn​∣∣2,所以,上面的式子可以变为:

∣ ∣ w t + 1 ∣ ∣ 2 ∣ ∣ w t ∣ ∣ 2 ≤ 1 + R 2 ∣ ∣ w t ∣ ∣ 2 \frac{||w_{t+1}||^2}{||w_t||^2} \leq 1 + \frac{R^2}{||w_t||^2} ∣∣wt​∣∣2∣∣wt+1​∣∣2​≤1+∣∣wt​∣∣2R2​

因此,可以知道算法最终是收敛的。算法学习是可以终止的。

##(2)求算法学习步数

因为

w f T ∗ w t + 1 = w f T ( w t + y t x t ) = w f T w t + y t w f T x t ≥ w f T w t + m i n y n w f T x n ≥ . . . ≥ w f T w 0 + T m i n ( y n w f T x n ) = T m i n y n w f T x n w_f^T*w_{t+1}=w_f^T(w_t +y_tx_t)=w_f^Tw_t + y_tw_f^Tx_t\geq w_f^Tw_t +miny_nw_f^Tx_n\geq...\geq w_f^Tw_0 + Tmin(y_nw_f^Tx_n)=Tminy_nw_f^Tx_n wfT​∗wt+1​=wfT​(wt​+yt​xt​)=wfT​wt​+yt​wfT​xt​≥wfT​wt​+minyn​wfT​xn​≥...≥wfT​w0​+Tmin(yn​wfT​xn​)=Tminyn​wfT​xn​

所以:

w f T w t ∣ ∣ w f ∣ ∣ ∣ ∣ w t ∣ ∣ ≥ T m i n y n w f T x n ∣ ∣ w f ∣ ∣ T m a x ∣ ∣ x n ∣ ∣ 2 \frac{w_f^Tw_t}{||w_f||||w_t||}\geq\frac{Tminy_nw_f^Tx_n}{||w_f||\sqrt{Tmax||x_n||^2}} ∣∣wf​∣∣∣∣wt​∣∣wfT​wt​​≥∣∣wf​∣∣Tmax∣∣xn​∣∣2 ​Tminyn​wfT​xn​​

又因为 w f T w t ∣ ∣ w f ∣ ∣ ∣ ∣ w t ∣ ∣ ≤ 1 \frac{w_f^Tw_t}{||w_f||||w_t||} \leq1 ∣∣wf​∣∣∣∣wt​∣∣wfT​wt​​≤1

又另: ρ = m i n y n w f T ∣ ∣ w f ∣ ∣ x n \rho=miny_n\frac{w_f^T}{||w_f||}x_n ρ=minyn​∣∣wf​∣∣wfT​​xn​

计算可得:

T ≤ R 2 ρ 2 T\leq\frac{R^2}{\rho^2} T≤ρ2R2​

如果大家对相关话题感兴趣的话,可以关注yiyele-xxq(程序猿技术交流)公众号。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。