开发者学堂课程【神经网络概览及算法详解:离散 Hopfield 网络-6】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/40/detail/945
离散 Hopfield 网络-6
内容介绍:
一、外积法概念
二、外积法步骤
三、外积法举例
一、外积法概念
另外一个办法就是外积法,可以看到刚才的办法,有一些大的问题,即它的计算比较麻烦。
写一个三节点的不等式方程组是比较费劲的;如果容量大的话,计算会更麻烦,即不能通过一个简单的、固定的运算得到最终结果。所以,如果是简单网络还可以使用,稍微复杂一点就会很难计算。这里有另外一种方法叫做外积法,它是通过 Hebb 规则,确定网络的权重(包括阈值)。
该方法更通用,并且可以处理节点比较多的情况。给定 P 个需要记忆的样本 XP , P =1,2,..., P , x ∈{-1,1}n,则其连接权值的学习可以利用外积规则:, 为学习率,若 W ii =0,即它的对角线是零,则一个神经元节点,自己的输出不会再作为自己的输入。则有:,减掉单位矩阵的目的是为了让它的对角线为零。
二、外积法步骤
基本步骤如下:第一,根据需记忆的样本 XP ,根据 W =-I ,计算权重矩阵 W 。第二,令测试样本 pi ,i=1,2,..., n 为网络初始值 yi(0)= pi ,设定迭代次数,开始迭代,更新输出状态: yi(k+1)= f 。第三,直到达到预设的最大迭代次数,或者神经元输出状态保持不变,循环终止,否则继续循环更新 yi 值。
三、外积法举例
接下来,看外积法的例子。某 DHNN 网络,其记忆样本为 P1 =(1,1,1,1,1)T , P2 =(1,-1,-1,1,-1)T , P3 =(-1,1,-1,-1,-1)T ,求其网络设计,并分析结果。需要注意的是 P 是离散的,1,0或者1,-1都可以。因为计算比较容易,这里选择1,-1。在不同的算法里,2值有可能是1,0,也有可能取1,-1,只要把它区分开就可以。因为在运算过程中,如果取合适的分类值,计算就会很简单。比如,像 SVM 指示向量级,有时就会使用1,0,这个其实没有本质区别,只是看对后续的运算和推导是否有益,即求 W 。需要注意的是 XP 中 X 是一个状态,把需要记忆的样本做成矩阵即可。
如下图
是 XP 的转制,即将3*5的矩阵转为5*3的矩阵。因为有3个 P ,所以用3乘以单位矩阵;即可得到最终的权重矩阵。验证记忆样本: f(Wp1)=p1 , f(Wp2)=p2 , f(Wp3)=p3 ;即如果 f 乘以输出等于样本本身,说明它是稳定的;经过计算,可以发现1,2,3都是稳定的。则多出一个稳定点(伪): p4=(-1,1,1,-1,1)T ;简单来讲,也会收敛 p4 ,但是 p4 并不是最初设计的稳定值,所以称其为伪稳定点。
验证所有有输入的输出状态,因为是离散的,每个状态都有两种可能值,所以底是2;因为样本有5个分量值,所以次方为5,则共25=32种:在串行工作模式下:10个收敛于 p1 ,8个收敛于 p2 ,8个收敛于 p3 ,6个收敛于 p4 ;需要注意的是, p4 不是需要记忆的状态,所以是伪稳定点,即会有6个状态什么都想不起来或者想起来也不是期望的值。在并行工作模式下:8个收敛于 p1 ,1个收敛于 p2 ,2个收敛于 p3 ,1个收敛于 p4 ,其余20个陷入极限环。
接着看应用案例: OCR 字符识别。用5*3的矩阵表示一个数字,比如,0对应矩阵为: digit ,将有黄色标记(实心)的记为1,无颜色标记(空心)的记为-1,颜色标记如下图
1对应矩阵为: digit ,颜色标记如下图。
2对应矩阵为: digit ,颜色标记如下图。
期望自己记忆住的是0-9的10个数字,并通过数字的片段性信息是否能根据下图在记忆结果中联想到一个对应的结果。下图找到对应的结果为1。
下图找到的对应结果为3或8或9,所以它们的识别效果不是很好,因为网络容量不够大或者网络设计不够复杂,记忆结果相似程度太高,并不是正交,从而导致结果不好。
下图是计算的一个非常复杂且效果并不好的权值矩阵。
如何改进该矩阵?即希望它的识别率增高,识记内容更精准,网络更复杂;就是将输入输出状态的矩阵做的更大,由5*3变为9*9的矩阵;原来用15个格子表示5,现在用81个格子表示5。
这时9*9里的3、8、9比5*3中的区别率更高,则 OCR 字符的识别率就会增高。也就是说,网络结构越复杂,可以记忆的东西就越多;如果需要记忆的东西差别程度越大,那么最终识别的正确率可能也会越高。这就是 OCR 字符的改进方法。