机器学习:感知机算法
数据定义
假设DataSet$$\sum_{i=1}^{N}(x_i,y_i)$$,其中$$X \in R^{p} \dfrac{iid}{}\left( N,\sigma ^{2}\right),Y\in(+1,-1)$$$$w\in R^p$$
模型介绍
感知机算法主要用来解决而分类问题,它的架构十分简单,采用了线性函数+激活函数(非线性)的思想。如图所示:
优化方法
感知机函数我们采用错误驱动的方法优化,在这里我们把⭕️看作+1类别,❌看作-1类别,也就是y的值,从下图我们可以看出,有两个⭕️被错误分类了,也就是它们y值本来是1却被分为-1。我们设集合D,把错误分类的观测值都存入集合D。
,这样我们就有了一个想法,当观测值被正确分类时,yixiwi的乘积为+1,反之,yixiwi的乘积为-1,把对样本错误分类的数量作为损失函数,当损失函数为0时,也就是说明了数据分类成功了。$$L(W)=\sum I(y_ix_iw_i)$$
但是由于指示函数I不可导,把指示函数去掉$$L(W)=-\sum_{_{x \in D}} y_i w_ix_i$$。
loss函数变成了一个正数,我们采用SGD(随即梯度下降)来优化。
局限性
感知机可以解决与,或,非三种问题。如图:
由于最终拟合的模型实际上是一条直线,如果样本点不能被一条直线切开,就无法分类,比如:异或问题。
代码: