感知器(Perceptron)
感知器的概念
感知器是人工神经网络中的一种典型结构,它的主要的特点是结构简单,对所能解决的问题存在着收敛算法,并能从数学上严格证明,从而对神经网络研究起了重要的推动作用。
它可以被视为一种最简单形式的前馈式人工神经网络,是一种二元线性分类器。
那么什么是二元线性分类器呢?
首先要先理解什么是线性分类器——在机器学习领域,分类的目标是指将具有相似特征的对象聚集。而一个线性分类器则透过特征的线性组合来做出分类决定,以达到此种目的。对象的特征通常被描述为特征值,而在向量中则描述为特征向量。
对于一个二元分类问题——可以设想成是将一个线性分类利用超平面划分高维空间的情况:在超平面一侧的所有点都被分类成“是”,另一侧则分成“否”。
感知器的作用
感知器是二类分类的线性分类模型,它的思想很简单,在一个二维空间中,就是寻找一条直线将红点和蓝点分开(图3),类比到高维空间中,感知器尝试寻找一个超平面,将所有二元类别分开(图4)。
注意:无论是在二维空间中寻找线、三维空间中寻找平面还是高维空间中寻找超平面,这里所说的空间是指特征空间。
如果我们找不到一条直线的话怎么办?找不到的话那就意味着类别线性不可分(图5),也就意味着感知器模型不适合该类数据的分类。使用感知器一个最大的前提,就是数据需要是线性可分的。
感知器的模型
如果我们有n个样本,每个样本有m维空间和一个二元输出类别:
( ( x 1 1 , x 2 1 , . . . , x m − 1 1 , x m 1 , y 1 ) , ( x 1 2 , x 2 2 , . . . , x m − 1 2 , x m 2 , y 2 ) , . . . , ( x 1 n , x 2 n , . . . , x m − 1 n , x m n , y n ) ((x_1^1,x_2^1,...,x_{m-1}^1,x_m^1,y_1),(x_1^2,x_2^2,...,x_{m-1}^2,x_m^2,y_2),...,(x_1^n,x_2^n,...,x_{m-1}^n,x_m^n,y_n) ((x11,x21,...,xm−11,xm1,y1),(x12,x22,...,xm−12,xm2,y2),...,(x1n,x2n,...,xm−1n,xmn,yn)
感知器的目标是找到一个超平面:
ω 1 x 1 + ω 2 x 2 + . . . + ω m x m + b = 0 \omega_1x_1+\omega_2x_2+...+\omega_mx_m+b=0 ω1x1+ω2x2+...+ωmxm+b=0
让其中一个类别的样本满足 ω 1 x 1 + ω 2 x 2 + . . . + ω m x m + b > 0 \omega_1x_1+\omega_2x_2+...+\omega_mx_m+b>0 ω1x1+ω2x2+...+ωmxm+b>0,而另一类样本满足 ω 1 x 1 + ω 2 x 2 + . . . + ω m x m + b < 0 \omega_1x_1+\omega_2x_2+...+\omega_mx_m+b<0 ω1x1+ω2x2+...+ωmxm+b<0,从而实现样本线性可分。但这样的超平面不是唯一的,感知器模型采取不同的初始值 ( ω 0 ⃗ , b 0 ) (\vec{\omega_0},b_0) (ω0,b0)解可能会不同。
我们用向量方式对上式进行表达: ω ⃗ ⋅ x ⃗ + b = 0 \vec{\omega}\cdot\vec{x}+b=0 ω⋅