【感知机】感知机(perceptron)学习算法的原始形式

感知机( perceptron )是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1 和-1二值。感知机对应输入空间(特征空间)中将实例划分为正负两类的分离超平面,是一种判别模型。感知机是神经网络与支持向量机的基础

感知机学习旨在求出将训练数据进行线性划分的分离超平面。

感知机学习思路:

1.导入基于误分类的损失函数

2.利用梯度下降法对损失函数进行极小化

3.代入参数得到感知机模型。

感知机学习算法分类:

原始形式、对偶形式。

 算法:感知机学习算法的原始形式

输入:训练数据集$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}$,其中x_i\in\mathcal{X}=\mathbb{R}^n,y_i\in\mathcal{Y}=\{-1,+1\}\:i=1,2,\cdots,N;学习率$\eta\left(0<\eta\leqslant1\right)$

输出:w,b;感知机模型f(x)=\mathrm{sign}(w\bullet x+b)

1)选取初值w_0,b_0;

2)在训练集中选取数据(x_i,y_i);

3)如果y_i(w\cdot x_i+b)\leq 0,

\begin{aligned}w&\leftarrow w+\eta y_ix_i\\b&\leftarrow b+\eta y_i\end{aligned}

4)转至2),直至训练集中没有误分类点。

算法采用随机梯度下降法(stochastic gradient descent):

首先任意选取一个超平面,然后用梯度下降法极小化损失函数。极小化过程不是一次使所有误分类点的梯度下降,而是每次随机选取一个误分类点使其梯度下降。

设误分类点集合M固定,损失函数L(w,b)=- \underset{x_i\in M}{\sum } y_i (w\cdot x_i+b )的梯度为:

\bigtriangledown_wL(w,b)=-\underset{x_1\in M}{\sum}y_ix_i

\bigtriangledown_bL(w,b)=-\underset{x_1\in M}{\sum}y_i

对某点(x_i,y_i)w的梯度-y_ix_i是增大的方向,故w\leftarrow w+\eta y_ix_i使损失函数减少。

算法理解:当一个实例点被误分类时,则调整w,b的值,使分类超平面向该误分类点的一侧移动,减少该误分类点与超平面的距离,直至超平面越过该误分类点使其被正确分类 

猜你喜欢

转载自blog.csdn.net/weixin_73404807/article/details/135365074