单层感知器
单层感知器进行模式识别的超平面为:
单层感知器的算法
假定第n次迭代中的:
- 输入向量
x(n)=[1,x1(n),x2(n),...,xN(n)]T
x
(
n
)
=
[
1
,
x
1
(
n
)
,
x
2
(
n
)
,
.
.
.
,
x
N
(
n
)
]
T
- 权值向量
w(n)=[b(n),w1(n),w2(n),...,wN(n)]T
w
(
n
)
=
[
b
(
n
)
,
w
1
(
n
)
,
w
2
(
n
)
,
.
.
.
,
w
N
(
n
)
]
T
因此,第n次迭代时的线性组合器的输出为
令上式等于0,即为二分类问题的决策面
学习算法步骤如下:
1. 定义变量和参数:
-
x(n)=[1,x1(n),x2(n),...,xN(n)]T
x
(
n
)
=
[
1
,
x
1
(
n
)
,
x
2
(
n
)
,
.
.
.
,
x
N
(
n
)
]
T
-
w(n)=[b(n),w1(n),w2(n),...,wN(n)]T
w
(
n
)
=
[
b
(
n
)
,
w
1
(
n
)
,
w
2
(
n
)
,
.
.
.
,
w
N
(
n
)
]
T
-
b(n)=偏置
b
(
n
)
=
偏
置
-
y(n)=实际输出
y
(
n
)
=
实
际
输
出
-
d(n)=期望输出
d
(
n
)
=
期
望
输
出
-
η=学习率,0<η<1
η
=
学
习
率
,
0
<
η
<
1
- 激活函数
f=sgn
f
=
s
g
n
(符号函数)
2. 初始化:
-
n=0
n
=
0
- 权值向量
w
w
设置为随机值或全零值
3. 迭代:
w(n+1)=w(n)+η[d(n)−y(n)]x(n)
w
(
n
+
1
)
=
w
(
n
)
+
η
[
d
(
n
)
−
y
(
n
)
]
x
(
n
)
4. 判断算法是否收敛,若收敛则结束算法,否则n+=1继续迭代。
收敛条件:
-
|d(n)−y(n)|<ϵ,ϵ是一个很小的正值
|
d
(
n
)
−
y
(
n
)
|
<
ϵ
,
ϵ
是
一
个
很
小
的
正
值
-
|w(n+1)−w(n)|<ϵ
|
w
(
n
+
1
)
−
w
(
n
)
|
<
ϵ
- 设定最大迭代次数M,迭代到了M次就停止迭代
注意: 为防止偶然因素导致的提前收敛,前两个条件可以改成连续若干次小于 ϵ ϵ 。