二、小脑模型连接控制器( CMAC)网络原理:从小脑活动只获取启发
1)小脑从各种传感器获得信号、反馈和命令,构成地址,地址的内容形成各种所需的动作。
2)输出的动作只限制在最活跃神经中的一个小子集,绝大多数神经元都受到抑制。
地址内容 执行器运动轨迹反馈传感信号命令输入状态空间 概念存贮空间实际存贮器输出实现二个映射
f,S A
g,A P
P = f(s)
输入向量
S
随机表格地址表联想单元 权值表
P=F(s)
泛化 存贮压缩散列编码激活的单元数为 4,即 C= 4,一般 C = 4-256
5
三个特点:
1) 利用散列编码( Hash Coding) 进行多对少的映射;
2)通过对输入分布式测量信号的编码,使输出具有泛化和插值能力;
3)通过监督学习,修改地址的内容和连接权值,使之逼成任意非线性函数 。
映射:通过特殊的编码方式实现:
(见图)
使输入空间中,相同或相距不远的输入向量,有相同 的输出
—— 泛化
使输入空间中,不同或相距远的输入向量,有不同 的输出
—— 分类
CMAC 学习方法,
⑴ 给定期望的输出函数 F 即:
P
= F ( S )
p
i
= F ( s
i
)
P
为期望函数
⑵ 对输入空间每一点,计算实际输出
p
K
= F ( s
i
) k = 1,2,…,n ( 输出向量的维数 )
i = 1,2,…,N ( 输入向量的维数 )
P = F ( S )
P
K
= A
K
W
T
K
A
K
= ( a
1K
,a
2K
,… a
nk
)
W
k
= ( w
1k
,w
2k
,…,w
nk
)
对 n 维输出 P 向量,应有 n 个实际存贮器。
3
⑶ 比较 P k 和 P
k 使 | p k - p
k |? e k
如果不满足,按下式更改和修正权值 W,
其中,是地址 中 第 次迭代的权值(新)
是地址 中 第 次迭代的权值(旧)
括号中是平均误差是修正因子。
⑷ 重复以上步骤,直至误差达到规定值。
k
l
k
l
k
k
n k
j
k
jk
k
l
k
l
WWW
mNWPWW
1
1
*
1 /?
klW1? kW
klW kW
km
1?l
l
编码方法
a b c d e f g h i j k l
1 1 1 1 1 0 0 0 0 0 0 0 0
2 0 1 1 1 1 0 0 0 0 0 0 0
3 0 0 1 1 1 1 0 0 0 0 0 0
4 0 0 0 1 1 1 1 0 0 0 0 0
5 0 0 0 0 1 1 1 1 0 0 0 0
6 0 0 0 0 0 1 1 1 1 0 0 0
7 0 0 0 0 0 0 1 1 1 1 0 0
8 0 0 0 0 0 0 0 1 1 1 1 0
9 0 0 0 0 0 0 0 0 1 1 1 1
S的大小
m*i
把 S=( s1,s2,… sN)变成二进制变量 mi*
规则,a) 对每一个输入量,mi*只能有 |Ai*|个 1;
b) 相邻的输入,只有 1位不同;
c) mi*的每一个 1,对应 si的变化范围。
|Ai*|= 4
S
i
m
i
*
1 a b c d
2 b c d e
3 c d e f
4 d e f g
5 e f g h
6 f g h i
7 g h i j
8 h i j k
9 i j k l
一维向量 二维向量( 45种组合)
S
1
m
i
*
1 a b c d
2 b c d e
3 c d e f
4 d e f g
5 e f g h
6 f g h i
7 g h i j
8 h i j k
9 i j k l
S
2
m
i
*
1 A B CD
2 B CDE
3 CDE F
4 DE F G
5 E F G H
S1,4 = aDbEcFdG
S2,5 = bEcFdGeH
这种编码方法的特点:
1)相邻的向量其编码只有 1 位不同;
2)相近的向量其汉明距随向量之间的距离增加而增加,
超过一定距离其汉明距就保持不变 。
汉明距 = Hij =?
N
k
ikS
1
jk S -
Hij = | A*| - | Ai*? Aj* |
Hij = | A*| —— 实现分类( | Ai*? Aj* | = 0)
Hij? | A*| —— 实现泛化( | Ai*? Aj* |? 0)
如何选择 | A*|?
|A*|的大小确定了 Si的变化范围,在 |A*|
一定的情况下,Si的变化范围也影响 si mi
的分辨率。举例,|A*|=4
S 1 m
*
1 a b c d
2 b c d e
3 c d e f
4 d e f g
5 e f g h
6 f g h i
7 g h i j
8 h i j k
9 i j k l
分辨率 =1.0 分辨率 =0.5
S1变化范围,1-9
S2变化范围,1.0-5.0
S1 m*
1 a b c d
1.5 b c d e
2.0 c d e f
2.5 d e f g
3.0 e f g h
3.5 f g h i
4.0 g h i j
4.5 h i j k
5.0 i j k l
在二维的情况下,不同的轴可以有不同的分辨率,
同一的轴,在不同区间也可以有不同的分辨率,
分辨率越高,Si对 |A*| 的影响越强 ;反之,Si对
|A*| 的影响越弱,
一般情况下,|A*| = 泛化范围 /量化精度,
取 32-256
为了减少联想单元的数目,可以做进一步的处理
| Ai*? Aj* |<? | Ai
*? Aj* |>?
选择范围
| Ai*?Aj* |=0 3010 30,10 NRN输入的组合为,个不同的值,每一变量有散列编码用随机地址进行数据的存贮
AP=n
6 6 K有 12位
I (K,i),i = 0,1,2,…,n -1
212 = 4096地址设 Si 为某一个数,有 12位,其存储的地址由 6位随机数所产生的地址确定散列函数,表长 n位
K
S A* P*=F(s)
1 abcd 10
2 bcde 9
3 cdef 7
4 defg 5
5 efgh 4
6 fghi 4
7 ghij 5
8 hijk 6
9 ijkl 7
10 jklm 8
联想单元 权值
a 3
b 3
c 2
d 2
e 2
f 1
g 0
h 1
i 2
j 2
k 1
例子 1 期望函数 学习结果
1 5 6 10
10
4
举例,
1 8 0 S 0,3 6 0 S0
3 6 0
S 2 πs i n
3 6 0
S 2 πs i n f
21
21
0
CMCA的主要优点
1) CMAC 接受实际输入,给出实际输出。
2) CMAC有固有的局部泛化能力。
3) CMAC可用于实时大系统的训练。
4) CMAC可利用 LMS自适应规律。
5) CMAC可以训练种类很多的函数。
6) CMAC在输出空间服从叠加原理。
7) CMAC利用逻辑元阵列可硬件实现。
1)小脑从各种传感器获得信号、反馈和命令,构成地址,地址的内容形成各种所需的动作。
2)输出的动作只限制在最活跃神经中的一个小子集,绝大多数神经元都受到抑制。
地址内容 执行器运动轨迹反馈传感信号命令输入状态空间 概念存贮空间实际存贮器输出实现二个映射
f,S A
g,A P
P = f(s)
输入向量
S
随机表格地址表联想单元 权值表
P=F(s)
泛化 存贮压缩散列编码激活的单元数为 4,即 C= 4,一般 C = 4-256
5
三个特点:
1) 利用散列编码( Hash Coding) 进行多对少的映射;
2)通过对输入分布式测量信号的编码,使输出具有泛化和插值能力;
3)通过监督学习,修改地址的内容和连接权值,使之逼成任意非线性函数 。
映射:通过特殊的编码方式实现:
(见图)
使输入空间中,相同或相距不远的输入向量,有相同 的输出
—— 泛化
使输入空间中,不同或相距远的输入向量,有不同 的输出
—— 分类
CMAC 学习方法,
⑴ 给定期望的输出函数 F 即:
P
= F ( S )
p
i
= F ( s
i
)
P
为期望函数
⑵ 对输入空间每一点,计算实际输出
p
K
= F ( s
i
) k = 1,2,…,n ( 输出向量的维数 )
i = 1,2,…,N ( 输入向量的维数 )
P = F ( S )
P
K
= A
K
W
T
K
A
K
= ( a
1K
,a
2K
,… a
nk
)
W
k
= ( w
1k
,w
2k
,…,w
nk
)
对 n 维输出 P 向量,应有 n 个实际存贮器。
3
⑶ 比较 P k 和 P
k 使 | p k - p
k |? e k
如果不满足,按下式更改和修正权值 W,
其中,是地址 中 第 次迭代的权值(新)
是地址 中 第 次迭代的权值(旧)
括号中是平均误差是修正因子。
⑷ 重复以上步骤,直至误差达到规定值。
k
l
k
l
k
k
n k
j
k
jk
k
l
k
l
WWW
mNWPWW
1
1
*
1 /?
klW1? kW
klW kW
km
1?l
l
编码方法
a b c d e f g h i j k l
1 1 1 1 1 0 0 0 0 0 0 0 0
2 0 1 1 1 1 0 0 0 0 0 0 0
3 0 0 1 1 1 1 0 0 0 0 0 0
4 0 0 0 1 1 1 1 0 0 0 0 0
5 0 0 0 0 1 1 1 1 0 0 0 0
6 0 0 0 0 0 1 1 1 1 0 0 0
7 0 0 0 0 0 0 1 1 1 1 0 0
8 0 0 0 0 0 0 0 1 1 1 1 0
9 0 0 0 0 0 0 0 0 1 1 1 1
S的大小
m*i
把 S=( s1,s2,… sN)变成二进制变量 mi*
规则,a) 对每一个输入量,mi*只能有 |Ai*|个 1;
b) 相邻的输入,只有 1位不同;
c) mi*的每一个 1,对应 si的变化范围。
|Ai*|= 4
S
i
m
i
*
1 a b c d
2 b c d e
3 c d e f
4 d e f g
5 e f g h
6 f g h i
7 g h i j
8 h i j k
9 i j k l
一维向量 二维向量( 45种组合)
S
1
m
i
*
1 a b c d
2 b c d e
3 c d e f
4 d e f g
5 e f g h
6 f g h i
7 g h i j
8 h i j k
9 i j k l
S
2
m
i
*
1 A B CD
2 B CDE
3 CDE F
4 DE F G
5 E F G H
S1,4 = aDbEcFdG
S2,5 = bEcFdGeH
这种编码方法的特点:
1)相邻的向量其编码只有 1 位不同;
2)相近的向量其汉明距随向量之间的距离增加而增加,
超过一定距离其汉明距就保持不变 。
汉明距 = Hij =?
N
k
ikS
1
jk S -
Hij = | A*| - | Ai*? Aj* |
Hij = | A*| —— 实现分类( | Ai*? Aj* | = 0)
Hij? | A*| —— 实现泛化( | Ai*? Aj* |? 0)
如何选择 | A*|?
|A*|的大小确定了 Si的变化范围,在 |A*|
一定的情况下,Si的变化范围也影响 si mi
的分辨率。举例,|A*|=4
S 1 m
*
1 a b c d
2 b c d e
3 c d e f
4 d e f g
5 e f g h
6 f g h i
7 g h i j
8 h i j k
9 i j k l
分辨率 =1.0 分辨率 =0.5
S1变化范围,1-9
S2变化范围,1.0-5.0
S1 m*
1 a b c d
1.5 b c d e
2.0 c d e f
2.5 d e f g
3.0 e f g h
3.5 f g h i
4.0 g h i j
4.5 h i j k
5.0 i j k l
在二维的情况下,不同的轴可以有不同的分辨率,
同一的轴,在不同区间也可以有不同的分辨率,
分辨率越高,Si对 |A*| 的影响越强 ;反之,Si对
|A*| 的影响越弱,
一般情况下,|A*| = 泛化范围 /量化精度,
取 32-256
为了减少联想单元的数目,可以做进一步的处理
| Ai*? Aj* |<? | Ai
*? Aj* |>?
选择范围
| Ai*?Aj* |=0 3010 30,10 NRN输入的组合为,个不同的值,每一变量有散列编码用随机地址进行数据的存贮
AP=n
6 6 K有 12位
I (K,i),i = 0,1,2,…,n -1
212 = 4096地址设 Si 为某一个数,有 12位,其存储的地址由 6位随机数所产生的地址确定散列函数,表长 n位
K
S A* P*=F(s)
1 abcd 10
2 bcde 9
3 cdef 7
4 defg 5
5 efgh 4
6 fghi 4
7 ghij 5
8 hijk 6
9 ijkl 7
10 jklm 8
联想单元 权值
a 3
b 3
c 2
d 2
e 2
f 1
g 0
h 1
i 2
j 2
k 1
例子 1 期望函数 学习结果
1 5 6 10
10
4
举例,
1 8 0 S 0,3 6 0 S0
3 6 0
S 2 πs i n
3 6 0
S 2 πs i n f
21
21
0
CMCA的主要优点
1) CMAC 接受实际输入,给出实际输出。
2) CMAC有固有的局部泛化能力。
3) CMAC可用于实时大系统的训练。
4) CMAC可利用 LMS自适应规律。
5) CMAC可以训练种类很多的函数。
6) CMAC在输出空间服从叠加原理。
7) CMAC利用逻辑元阵列可硬件实现。