开发者学堂课程【神经网络概览及算法详解:双向联想记忆神经网络】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/40/detail/948
双向联想记忆神经网络
内容介绍:
一、双向联想记忆网络
二、 BAM 网络运行过程
三、 BAM 能量函数与权值设计
四、 BAM 网络的特点
一、双向联想记忆网络
接下来介绍双向联想记忆神经网络。这里通过简单的介绍让大家了解有这种网络,以及该网络的作用、特点分别是什么;如果碰到实际问题和所讲的网络匹配,自己可以花费更多的时间仔细研究。
双向联想记忆网络( BAM ):由 Bart Kosko 在1988年提出,可实现双向联想。
双向可以体现该网络的主要特点:信息可以双向传播,既可以从输入层到输出层,也可以从输出层到输入层;所以这里没有输入层和输出层的概念,称为两层,是一个双层双向网络。同样 BAM 网还有离散型、连续型、自适应型等多种形式。
网络结构比较简答,X 层有 n 个节点, y 层有 m 个节点。需要注意的是:这里讲的不是输入层和输出层,因为难以界定输入层和输出层分别是哪一个。它们互为对方的输入和输出。
观看上图箭头,白色箭头是 x 到 y ,黑色箭头是 y 到 x 。对应的矩阵,一个为 W ,一个为 WT 的转制。它的状态输出为单极性二进制{1,0},或者双极性离散值{1,-1}。不同方式的输入,即方向不同,那么矩阵是互为转制的。
二、 BAM 网络运行过程
运行过程如下图。
一个输入到 x 层,它实际上可以通过 w 转制的矩阵, x 到 y ,计算净输出 WX( t-1 ) ,之后使用激活函数作用于净输出,得到 y 值,此时并未结束,该网络并不稳定。接着 y 值会在 y 层作为输入返回到 x 中。第一时刻是从 x 到 y ,第二时刻是从 y 返回的,由 t-1 变为 t 。 让激活函数 f(x) 作用于 Y ( t-1 ) 即 y 的净输出,得到 x 。
到这仍然没有结束,需要继续进行更新、循环、运行;直到输出稳定,网络训练完成。
三、 BAM 能量函数与权值设计
它同样使用了能量函数。84年之前没有能量函数的概念,使用的是网络误差或学习信号更新权重,但是在84年霍夫尔德提出了霍夫尔德网络能量函数之后,很多的神经网络开始借鉴能量函数,使用能量函数做权重的更新。
假设阈值为0,能量函数为:, T 为转制的意思。在做权重设计时,通常使用外积法。比如,当网络需要存储模式( X1, Y1)时,即输入为 X1 时,能够固定的在输出端得到 Y1 ;同样,如果在 Y 端输入 Y1 ,在 X 端可以得到固定的输入值 X1 。 权重设计需要满足联立方程组: 。即传 X1 得到 Y1 时必须有第一个式子,此时需要求未知的 W ;即用 W 乘 X1 ,在激活函数 sgn 作用之后必须等于 Y1 。
另外 W 转制乘 Y 求激活函数最终的输出应等于 X1 ,联立上述方程组后就可求出权值。权值的计算方法为:
更一般的为:即将1至p相加,因为可能有多个存储对。网络容量为: Pmax ≤ min(m,n)即最大就等于最小的。因为两端都可以做输入输出,一端是 m ,一端是 n ;最小的就是该网络容量的上限。
四、 BAM 网络的特点
BAM 网络的主要特点:
第一,网络设计比较简单;只需要几组输入和几组典型输出,权值由输入输出简单计算得到,运行时由实际输出与权向量矩阵做内积计算得到相应的输出。
第二,大规模并行处理,可以处理较大的数据量。
第三,实时性(非常重要)和容错性较好;通常来讲,网络训练和预测的发展时间相对较长,实时性较差。
第四,无需对输入向量进行预处理,可直接输入,不需要编码和解码。假设从 x 端输入,希望得到一个联想的输出 y ; x 的样本数可能是残缺不全的,比如要做图像识别或 OCR 图像字符,它们遮挡了部分数据,可以通过固定的联想得到一个实际的数值。另一个好处是可以将输入的缺失信息补全。