SOW网络结构只有两层,其中,输入层是非功能层,仅是将高维度的样本输入,每个结点对应一个维度(属性),输出层是功能层,可将输出层视为一个“灯阵”面板,每盏灯对应于一类,灯间的距离体现类间的“相似度”,以灯的亮度表示样本属于该类的程度。
Elman网络:将训练集转化时序数据(若以在线数据来训练,则以一定的频率从线上获取时序数据),由其“产生”其预测值,“产生”过程视为一个时间步,则相配以样本、真值和预测值三者。
Boltzmann机:显层为输入、输出共享,隐层为功能层,隐层的输出又作为显层的输入,再次又作用于隐层,这样来回地迭代更新参数,直到收敛。 过程中的目标函数为能量函数(仿热力学) 网络参数训练好之后,状态向量(分量为0或1)达到Boltzmann分布。
SOW网络
【西瓜书图5.11】所示的SOW网络结构只有两层,其中,输入层是非功能层,仅是将高维度的样本输入,每个结点对应一个维度(属性),输出层是功能层,可将输出层视为一个“灯阵”面板,每盏灯对应于一类,灯间的距离体现类间的“相似度”,以灯的亮度表示样本属于该类的程度。 当输入一个样本时,该样本所属类的灯最亮,邻近的灯次亮,离其越远的灯越暗。 训练要点可以形象地作如下理解:
(1)输出层的神经元的权重向量 w \boldsymbol{w} w视为该神经元的值,比较各神经元的值与输入样本的值 x \boldsymbol{x} x,找到最相似的一个神经元,相似度可以用欧氏距离度量,点亮该灯并调整到最亮,这一步是通过输入层与输出层之间的网络来实现的。
(2)以该灯为“中心”,调整邻近灯的亮度(亮度与拓扑距离成反比),即要调整邻近神经元的值,这一步是通过输出层中神经元间的连接所形成的网络来实现的。
(3)针对训练集的样本将上述(1)、(2)进行迭代,直到收敛。
SOW网络用于多分类问题,我们看看最简单的二分类:由于是二分类,故输出层至少两个神经元(4个神经元情况如图5.8所示),排成矩形。
这样初始化神经元的权重:取任一对角线的两端代表两类(如, A A A表示正例、 C C C表示反例),即取训练集中正例的样本向量的平均值为 A A A点神经元的权重向量,类似地,反例的样本向量的平均值为 C C C点神经元的权重向量,其余神经元的权重向量全设为0。
Elman网络
将【西瓜书图5.13】画成如下图5.9:
将训练集转化时序数据(若以在线数据来训练,则以一定的频率从线上获取时序数据),如,从训练集中随机采样,第 k k k次采样样本记为 ( x k ) (\boldsymbol{x}^k) (xk),上标 k k k表示时间步,由其“产生”其预测值,“产生”过程视为一个时间步,则相配的样本、真值和预测值三者为 ( x k , y k + 1 , y ^ k + 1 ) (\boldsymbol{x}^k,\boldsymbol{y}^{k+1},\hat{\boldsymbol{y}}^{k+1}) (xk,yk+1,y^k+1)。
以时间步展开局部即得图5.10,其中,以上标
k
k
k表示时间步,将数据穿过隐藏层(图中小方框)的视为一个时间步(即单位时间),而输出层不花费时间步。
- 将图5.10中的上下两个框画成一个框,则虚线变为了图5.9中的“单位时间延迟”反馈了。
参考BP网络中的符号,我们定义图5.9、图5.10中的符号(省去了上标):
输入层:外部输入:
x
1
,
x
2
,
⋯
,
x
i
,
⋯
,
x
d
x_1,x_2,\cdots,x_i,\cdots,x_d
x1,x2,⋯,xi,⋯,xd,内部反馈:
u
1
,
u
2
,
⋯
,
u
t
,
⋯
,
u
q
u_1,u_2,\cdots,u_t,\cdots,u_q
u1,u2,⋯,ut,⋯,uq;
- 输入层至隐藏层的权重: x i x_i xi与 α h {\alpha }_h αh的连接权重为 v i h v_{ih} vih, u t u_t ut与 α h {\alpha }_h αh的连接权重为 v t h v_{th} vth;
- 隐藏层输出: u 1 , u 2 , ⋯ , u h , ⋯ , u q u_1,u_2,\cdots,u_h,\cdots,u_q u1,u2,⋯,uh,⋯,uq;阈值: γ 1 , γ 2 , ⋯ , γ h , ⋯ , γ q {\gamma }_1,{\gamma }_2,\cdots,{\gamma }_h,\cdots,{\gamma }_q γ1,γ2,⋯,γh,⋯,γq;
- 隐藏层至输出层的权重: u h u_h uh与 β j {\beta }_j βj的连接权重为 w h j w_{hj} whj;
- 输出层输出: y 1 , y 2 , ⋯ , y j , ⋯ , y l y_1,y_2,\cdots,y_j,\cdots,y_l y1,y2,⋯,yj,⋯,yl;阈值: θ 1 , θ 2 , ⋯ , θ j , ⋯ , θ l {\theta }_1,{\theta }_2,\cdots,{\theta }_j,\cdots,{\theta }_l θ1,θ2,⋯,θj,⋯,θl;
再设输入时为第
k
k
k步,各变量标上时间步上标,参考【西瓜书图5.7】中的式子,则对应有图5.9中的式子:
α
h
k
=
∑
i
=
1
d
v
i
h
k
x
i
k
+
∑
t
=
1
q
v
t
h
k
u
t
k
u
h
k
+
1
=
f
(
α
h
k
−
γ
h
)
β
j
k
+
1
=
∑
h
=
1
q
w
h
j
k
+
1
u
h
k
+
1
y
^
j
k
+
1
=
f
(
β
j
k
+
1
−
θ
j
)
E
k
+
1
=
1
2
∑
j
=
1
l
(
y
^
j
k
+
1
−
y
j
k
+
1
)
2
\begin{align} {\alpha }_h^{k} & =\sum_{i=1}^dv_{ih}^{k}x_i^{k}+\sum_{t=1}^qv_{th}^{k}u_t^{k}\tag{5.12} \\ u_h^{k+1} & =f({\alpha }_h^{k}-{\gamma }_h)\tag{5.13} \\ {\beta }_j^{k+1} & =\sum_{h=1}^qw_{hj}^{k+1}u_h^{k+1}\tag{5.14} \\ {\hat{y}}_j^{k+1} & =f({\beta }_j^{k+1}-{\theta }_j)\tag{5.15} \\ E_{k+1} & =\frac{1}{2}\sum_{j=1}^l({{\hat{y}}_j^{k+1}}-{{{y}}_j^{k+1}})^2 \tag{5.16} \end{align}
αhkuhk+1βjk+1y^jk+1Ek+1=i=1∑dvihkxik+t=1∑qvthkutk=f(αhk−γh)=h=1∑qwhjk+1uhk+1=f(βjk+1−θj)=21j=1∑l(y^jk+1−yjk+1)2(5.12)(5.13)(5.14)(5.15)(5.16)
其中,
f
(
⋅
)
f(\cdot)
f(⋅)为logistic函数,上标
k
k
k为时间步,其意义参见图5.10。
有了式(5.12)至式(5.16),则可参考BP网络中的迭代更新公式的推导,可以得到Elman网络的迭代更新公式,对应公式几乎同BP算法一致,但需要注意上标的表示,推导举例:
g
j
=
−
∂
E
k
+
1
∂
y
^
j
k
+
1
∂
y
^
j
k
+
1
∂
β
j
k
+
1
=
−
(
y
^
j
k
+
1
−
y
j
k
+
1
)
f
′
(
β
j
k
+
1
−
θ
j
)
=
y
^
j
k
+
1
(
1
−
y
^
j
k
+
1
)
(
y
j
k
+
1
−
y
^
j
k
+
1
)
\begin{align} g_j & =-\frac{\partial E_{k+1} }{\partial {\hat{y}}_j^{k+1}}\frac{\partial {\hat{y}}_j^{k+1}}{\partial {\beta }_j^{k+1} }\notag \\ & =-({{\hat{y}}_j^{k+1}}-{{{y}}_j^{k+1}})f'({\beta }_j^{k+1}-{\theta }_j)\notag \\ & =\hat{y}_j^{k+1}(1-\hat{y}_j^{k+1})({y}_j^{k+1}-\hat{y}_j^{k+1})\tag{5.17} \end{align}
gj=−∂y^jk+1∂Ek+1∂βjk+1∂y^jk+1=−(y^jk+1−yjk+1)f′(βjk+1−θj)=y^jk+1(1−y^jk+1)(yjk+1−y^jk+1)(5.17)
∂
u
h
k
+
1
∂
α
h
k
=
f
′
(
α
h
k
−
γ
h
)
=
f
(
α
h
k
−
γ
h
)
[
1
−
f
(
α
h
k
−
γ
h
)
]
=
u
h
k
+
1
[
1
−
u
h
k
+
1
]
\begin{align} \frac{\partial u_h^{k+1} }{\partial {\alpha }_h^{k}} & =f'({\alpha }_h^{k}-{\gamma }_h)\notag \\ & =f({\alpha }_h^{k}-{\gamma }_h)[1-f({\alpha }_h^{k}-{\gamma }_h)]\notag \\ & =u_h^{k+1}[1-u_h^{k+1}]\tag{5.18} \end{align}
∂αhk∂uhk+1=f′(αhk−γh)=f(αhk−γh)[1−f(αhk−γh)]=uhk+1[1−uhk+1](5.18)
有了迭代更新公式,就可以设计算法了,将【西瓜书图5.8】的BP算法进行修改即可。
Boltzmann机
【西瓜书图5.14】所示,显层为输入、输出共享,隐层为功能层,隐层的输出又作为显层的输入,再次又作用于隐层,这样来回地迭代更新参数,直到收敛。 过程中的目标函数为由【西瓜书式(5.20)】所定义的能量函数(仿热力学),其中第一项为“边”上的能量,第二项为“顶点”上的能量。 网络参数训练好之后,状态向量(分量为0或1)达到Boltzmann分布,即由【西瓜书式(5.21)】表达的分布。
根据极大似然法,训练过程就是将每个训练样本视为一个状态向量,使其出现的概率尽可能大,由此出发去推导迭代的更新公式。
当切断同层内部各神经元之间的连接时,称为受限Boltzmann机(RBM),此时,层内的神经元间相互独立,独立的随机变量联合分布的概率可以表示为各随机变量概率的积,即有【西瓜书式(5.22)(5.23)】。 用“对比散度”算法(CD)获得连接权的更新公式【西瓜书式(5.24)】。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:5.2 RBF网络(单层RBF就可解决异或问题)与ART网络(实现“自适应谐振”)
下一篇:5.4 BP算法的高级表达