单个感知器
一个最简单的感知器示意图如下所示:
功能描述
设样本集
X
=
{
X
1
,
X
2
,
⋯
,
X
i
,
⋯
,
X
m
}
\mathbf X=\{X_1,X_2,\cdots,X_i,\cdots,X_m\}
X={X1,X2,⋯,Xi,⋯,Xm},记输入向量
X
i
=
X
=
(
x
1
,
x
2
,
⋯
,
x
n
)
T
X_i=X=(x_1,x_2,\cdots,x_n)^T
Xi=X=(x1,x2,⋯,xn)T,则输入向量可表示为高维空间中的一个点;感知器
j
j
j 对应的权重为
w
j
=
(
w
1
j
,
⋯
,
w
n
j
)
T
w_j=(w_{1j},\cdots,w_{nj})^T
wj=(w1j,⋯,wnj)T,阈值为
θ
j
\theta_j
θj。通过训练,可使得感知器
j
j
j 的输出为
y
^
j
=
s
i
g
n
{
w
j
T
⋅
X
i
−
θ
j
}
=
s
i
g
n
{
∑
k
=
1
n
w
k
j
⋅
x
k
−
θ
j
}
=
{
1
,
∑
k
=
1
n
w
k
j
⋅
x
k
−
θ
j
>
0
−
1
,
∑
k
=
1
n
w
k
j
⋅
x
k
−
θ
j
<
0
\displaystyle \hat y_j=sign\{w^T_j\cdot X_i-\theta_j\}=sign\{\sum^n_{k=1}w_{kj}\cdot x_k-\theta_j\}=\left\{ \begin{aligned} 1, & & {\sum^n_{k=1}w_{kj}\cdot x_k-\theta_j>0}\\ -1, & & {\sum^n_{k=1}w_{kj}\cdot x_k-\theta_j<0}\\ \end{aligned} \right.
y^j=sign{wjT⋅Xi−θj}=sign{k=1∑nwkj⋅xk−θj}=⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧1,−1,k=1∑nwkj⋅xk−θj>0k=1∑nwkj⋅xk−θj<0
即由方程
w
j
T
⋅
X
i
−
θ
j
=
∑
k
=
1
n
w
k
j
⋅
x
k
−
θ
j
=
0
\displaystyle w^T_j\cdot X_i-\theta_j=\sum^n_{k=1}w_{kj}\cdot x_k-\theta_j=0
wjT⋅Xi−θj=k=1∑nwkj⋅xk−θj=0 确定的超平面将超空间分为两部分。其具有分类功能,分类原理是将分类知识储存与感知器的权重向量(包含阈值)中,由权重向量确定的分类判决面将输入模式(向量)分为两类。但应注意,分类判决面不是唯一的。对于二维空间内的样本,其示意图如下:
训练
使用增广向量,用 w j T ⋅ X i w^T_j\cdot X_i wjT⋅Xi 替代 w j T ⋅ X i − θ j w^T_j\cdot X_i-\theta_j wjT⋅Xi−θj 。定义感知器的损失函数为 L ( w j ) = ∑ i = 1 m I { y i ⋅ w j T ⋅ X i < 0 } \displaystyle L(w_j)=\sum^m_{i=1}\mathbf I\{y_i\cdot w^T_j\cdot X_i<0\} L(wj)=i=1∑mI{yi⋅wjT⋅Xi<0},
其中
y
i
=
{
1
,
−
1
}
y_i=\{1,-1\}
yi={1,−1},为样本
X
i
X_i
Xi 的标签;
I
{
y
i
⋅
w
j
T
⋅
X
i
<
0
}
\mathbf I\{y_i\cdot w^T_j\cdot X_i<0\}
I{yi⋅wjT⋅Xi<0} 的含义为:正确分类时,
y
i
⋅
w
j
T
⋅
X
i
>
0
,
I
=
0
y_i\cdot w^T_j\cdot X_i>0,\mathbf I=0
yi⋅wjT⋅Xi>0,I=0;
错误分类时,
y
i
⋅
w
j
T
⋅
X
i
<
0
,
I
=
1
y_i\cdot w^T_j\cdot X_i<0,\mathbf I=1
yi⋅wjT⋅Xi<0,I=1;调整
ω
←
w
+
△
ω
\omega\gets w+\triangle\omega
ω←w+△ω。
注意到,
L
(
w
j
)
=
∑
i
=
1
m
I
{
y
i
⋅
w
j
T
⋅
X
i
<
0
}
\displaystyle L(w_j)=\sum^m_{i=1}\mathbf I\{y_i\cdot w^T_j\cdot X_i<0\}
L(wj)=i=1∑mI{yi⋅wjT⋅Xi<0}是不可导的,这不利于学习,
因此考虑将损失函数定义为
L
(
w
j
)
=
∑
X
i
∈
X
−
y
i
⋅
w
j
T
⋅
X
i
\displaystyle L(w_j)=\sum_{X_i\in\mathbf X}-y_i\cdot w^T_j\cdot X_i
L(wj)=Xi∈X∑−yi⋅wjT⋅Xi,其梯度为:
∇
ω
j
L
=
−
y
i
⋅
X
i
\displaystyle\nabla_{\omega_j}L=-y_i\cdot X_i
∇ωjL=−yi⋅Xi,
对每个分类错误的样本,都对
ω
j
\omega_j
ωj 进行调整:
ω
←
w
+
λ
∇
ω
j
L
\omega\gets w+\lambda\nabla_{\omega_j}L
ω←w+λ∇ωjL,直到所有的样本分类正确为止。
逻辑运算能力
逻辑“与”
根据 逻辑“与” 的真值表,进行训练,可得到判决方程(不唯一)为:
0.5
x
1
+
0.5
x
2
−
0.75
=
0
0.5x_1+0.5x_2-0.75=0
0.5x1+0.5x2−0.75=0
逻辑“或”
根据 逻辑“与” 的真值表,进行训练,可得到判决方程(不唯一)为:
x
1
+
x
2
−
0.75
=
0
x_1+x_2-0.75=0
x1+x2−0.75=0
感知器的局限性
可以看出,感知器只能得到线性分类判决面,其在二维时是直线,故无法实现“异或”功能;并且,感知器仅度线性可分问题具有分类能力。如果两类样本可以用直线、平面或超平面分开,称为线性可分;否则称为线性不可分。
多层感知器
因为单个感知器无法实现线性不可分问题,因此考虑引入多层感知器,其网络结构即输入输出函数如下:
假定隐层的节点可以根据需要自由设置,则使用三层的阈值网络可以实现任意的二值逻辑函数。解决异或问题的二层网络(不唯一)如下所示:
其分类面的叠加原理如下所示:
多层感知器的拟合能力
二层感知器
三层感知器
可以看出,单层感知器的判决域是半平面;双层感知器(一个隐层)的判决域为开放式闭合的凸域;而三层感知器(两个隐层,不限制隐层节点数)的判决域为任意复杂形状的域。
多层感知器的分类原理:隐含层实现对输入空间的非线性映射,输出层实现线性分类;使得非线性映射方式和线性判别函数可以同时学习。