(《机器学习》完整版系列)第5章 神经网络——5.3 SOW网络(“灯阵”面板)、Elman网络(将训练集转化时序数据)、Boltzmann机(达到Boltzmann分布)

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所示),排成矩形。
图5.8 SOM神经网络

图5.8 SOM神经网络

这样初始化神经元的权重:取任一对角线的两端代表两类(如, A A A表示正例、 C C C表示反例),即取训练集中正例的样本向量的平均值为 A A A点神经元的权重向量,类似地,反例的样本向量的平均值为 C C C点神经元的权重向量,其余神经元的权重向量全设为0。

Elman网络

将【西瓜书图5.13】画成如下图5.9:
 图5.9 Elman网络

图5.9 Elman网络

将训练集转化时序数据(若以在线数据来训练,则以一定的频率从线上获取时序数据),如,从训练集中随机采样,第 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 Elman网络的时间步

图5.10 Elman网络的时间步
  • 将图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=1dvihkxik+t=1qvthkutk=f(αhkγh)=h=1qwhjk+1uhk+1=f(βjk+1θj)=21j=1l(y^jk+1yjk+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+1Ek+1βjk+1y^jk+1=(y^jk+1yjk+1)f(βjk+1θj)=y^jk+1(1y^jk+1)(yjk+1y^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} αhkuhk+1=f(αhkγh)=f(αhkγh)[1f(αhkγh)]=uhk+1[1uhk+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算法的高级表达

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值