感知机

2020-03-10  本文已影响0人  0843d07b95d5

1.线性回归

1.1表达式:\hat y = w_0x_0+w_1x_1+...+w_ix_i+...w_nx_n

其中w_0 通常作为偏置项,在数据预处理的时候添加x_0 = 1

1.2损失函数:mse = \frac{1}{n}\sum_{i=0}^{n} {(y-\hat y)^2}

可以看出数据特征经过权重参数映射成实数\hat y,使用均方差作为损失函数在训练(最小化损失函数)过程中找到合适的参数,这些参数确定的这条直线(或者说超平面)使得每个点到这条直线的距离和最小。在二维坐标系上可以说是用一条直线来拟合数据点。

线性回归

2.感知机

2.1介绍

若我们要求将数据的特征映射成两个类别呢?那就不是用"直线"来拟合数据了而是用"直线"将数据划分开。可是我们的线性函数输出的依然是实数值啊如何根据实数值来确定类别?我们可以将该值输入一个阶跃函数。常见的阶跃函数:
sign(\hat y)=\begin{cases} 1,&\hat y>0 \\ 0,&\hat y=0 \cr -1,&\hat y<0 \end{cases}
若此处的阶跃函数是sigmod函数那么该模型类似于逻辑斯蒂回归。
那么我们如何定义损失函数呢?使用误分类的个数?不行这不是个连续函数不适合训练。有学者提出用误分类的点到该线性函数确定的超平面的距离和作为损失函数。点(X,Y)到直线的距离:
d = \frac{|AX+BY+C|}{\sqrt{A^2+B^2}}

2.2损失函数:

loss = -\sum _{x_i\in M}{}{y_i(wx_i)}
其中M为分类错误点的集合。对于分类错误的点x_i有:

2.3梯度:

\triangledown_w = -\sum_{x_i\in M} y_ix_i
由于我们在训练的时候采取随机梯度下降算法,一次只选取一个误分类的点所以我们的梯度为
\triangledown_w = - y_ix_i; x_i \in M
具体的学习策略和算法请参考李航老师的《统计学习方法》
具体实现代码请参考我的github深度学习实战

参考书籍

上一篇下一篇

猜你喜欢

热点阅读