📄 1_3 hopfield模型.htm
字号:
<TD width="76%"><IMG height=95
src="1_3 Hopfield模型.files/4.3.ht29.gif" width=397 border=0></TD>
<TD width="24%">(1-46)</TD></TR>
<TR>
<TD width="76%">对于神经元j,其能量函数可表示为</TD>
<TD width="24%"></TD></TR>
<TR>
<TD width="76%"><IMG height=41
src="1_3 Hopfield模型.files/4.3.ht30.gif" width=307 border=0></TD>
<TD width="24%">(1-47)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=1>
<P>也即是有
<P><IMG height=40 src="1_3 Hopfield模型.files/4.3.ht31.gif" width=76
border=0></P>
<P>神经元j的能量变化量表示为<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>E<SUB>j</SUB>:</P>
<TABLE cellSpacing=0 cellPadding=0 width="95%" align=center border=0>
<TBODY>
<TR>
<TD width="50%"><IMG height=164
src="1_3 Hopfield模型.files/4.3.ht32.gif" width=576 border=0></TD>
<TD width="50%">(1-48)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=18>
<P>如果存在条件 W<SUB>ii</SUB>=0,i=1,2,...,n
<P>W<SUB>ij</SUB>=W<SUB>ji</SUB> i=1,2,...,n
j=1,2,...,n</P>
<P>则有:</P>
<TABLE cellSpacing=0 cellPadding=0 width="95%" align=center border=0>
<TBODY>
<TR>
<TD width="80%"><IMG height=117
src="1_3 Hopfield模型.files/4.3.ht33.gif" width=320 border=0></TD>
<TD width="20%">(1-49)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=18>
<P>其中:E<SUB>j</SUB>为神经元j的能量;
<P><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>E<SUB>j</SUB>为神经元j的能量变化;</P>
<P>W<SUB>ij</SUB>为神经元i到神经元j的权系数:</P>
<P>Y<SUB>i</SUB>为神经元j的输出;</P>
<P>X<SUB>j</SUB>为神经元j的外部输入;</P>
<P><SPAN
style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><FONT
size=3>θ<SUB></SUB></FONT></SPAN><SUB>j</SUB>为神经元j的阀值;</P>
<P><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>Y<SUB>j</SUB>为神经元j的输出变化。</P>
<P>如果,令</P>
<P><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">U<SUB>j</SUB>=ΣW<SUB>ij</SUB>Y<SUB>i</SUB>+X<SUB>j</SUB></SPAN></P>
<P>则<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>E<SUB>j</SUB>可表示为:</P>
<P>考虑如下两种情况:</P>
<P>1.如果U<SUB>j</SUB><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≥</SPAN><FONT
size=3><SPAN
style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">θ</SPAN></FONT><SUB>j</SUB>,即神经元j的输入结果的值大于阀值,则U<SUB>j</SUB>-<FONT
size=3><SPAN
style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">θ</SPAN></FONT><SUB>j</SUB><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≥0</SPAN>,则从二值神经元的计算公式知道:Y<SUB>j</SUB>的值保持为1,或者从0变到1。这说明Y<SUB>j</SUB>的变化<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>Y<SUB>j</SUB>只能是0或正值。这时很明显有<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>E<SUB>j</SUB>:</P>
<P><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>E<SUB>j</SUB><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≤0</SPAN></P>
<P>这说明Hopfield网络神经元的能量减少或不变。</P>
<P>2.如果U<SUB>j</SUB><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≤</SPAN><FONT
size=3><SPAN
style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">θ</SPAN></FONT><SUB>j</SUB>,即神经元j的输入结果的值小于阀值,则U<SUB>j</SUB>-<FONT
size=3><SPAN
style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">θ</SPAN></FONT><SUB>j</SUB><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≥0</SPAN>,则从二值神经元的计算公式可知:Y<SUB>j</SUB>的值保持为0,或者从1变到0。这说明Y<SUB>j</SUB>的变化<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>Y<SUB>j</SUB>只能是零或负位。这时则有<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>E<SUB>j</SUB>:</P>
<P><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">△</SPAN>E<SUB>j</SUB><SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≤0</SPAN></P>
<P>这也说明Hopfield网络神经元的能量减少。</P>
<P>上面两点说明了Hopfield网络在权系数矩阵W的对角线元素为0,而且W矩阵元素对称时,Hopfield网络是稳定的。</P>
<P>Coben和Grossberg在1983年给出了关于Hopfield网络稳定的充分条件,他们指出:</P>
<P>如果Hopfield网络的权系数矩阵w是一个对称矩阵,并且,对角线元素为0.则这个网络是稳定的。即是说在权系数矩阵W中,如果</P>
<P>i=j时,W<SUB>ij</SUB>=0</P>
<P>i<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">≠</SPAN>j时,W<SUB>ij</SUB>=W<SUB>ji</SUB></P>
<P>则Hopfield网络是稳定的。</P>
<P>应该指出:这只是Hopfield网络稳定的充分条件.而不是必要条件。在实际中有很多稳定的Hopfield网络,但是它们并不满足权系数矩阵w是对称矩阵这一条件。</P>
<P>上面的分析可知:</P>
<P>无自反馈的权系数对称Hopfield网络是稳定的网络。它如图1—16,图1—17所示。</P>
<P align=center><IMG height=376 src="1_3 Hopfield模型.files/4.3.ht1.gif"
width=420 border=0></P></TD></TR>
<TR>
<TD width="100%" height=10>
<P align=center>图1-16 对角线权系数为0的对称Hopfield网络</P>
<P align=center><IMG height=338 src="1_3 Hopfield模型.files/4.3.ht2.gif"
width=409 border=0></P></TD></TR>
<TR>
<TD width="100%" height=6>
<P align=center>图1-17 对角线权系数为0的对称网另一图示</P></TD></TR>
<TR>
<TD width="100%" height=12>
<P>Hopfield网络的一个功能是可用于联想记忆,也即是联想存储器。这是人类的智能特点之一。人类的所谓“触景生情”就是见到一些类同过去接触的景物,容易产生对过去情景的回昧和思忆。对于Hopfield网络,用它作联想记忆时,首先通过一个学习训练过程确定网络中的权系数,使所记忆的信息在网络的n维超立方体的某一个顶角的能量最小。当网络的权系数确定之后,只要向网络给出输入向量,这个向量可能是局部数据.即不完全或部分不正确的数据,但是网络仍然产生所记忆的信息的完整输出。1984年Hopfield开发了一种用n维Hopfield网络作联想存储器的结构。在这个网络中,权系数的赋值规则为存储向量的外积存储规则(out
product storage prescription),其原理如下:
<P>设有m个样本存储向量x<SUB>1</SUB>,x<SUB>2</SUB>,…,x<SUB>m</SUB> </P>
<P>X<SUB>1={</SUB>X<SUB>11,</SUB>X<SUB>21,</SUB>...<SUB>,</SUB>X<SUB>m1}</SUB></P>
<P>X<SUB>2={</SUB>X<SUB>12,</SUB>X<SUB>22,...,</SUB>X<SUB>m2}</SUB></P>
<P><SUB>......</SUB></P>
<P>X<SUB>m={</SUB>X<SUB>m1,</SUB>X<SUB>m2,...,</SUB>X<SUB>mm}</SUB></P>
<P>把这m个样本向量存储人Hopfield网络中,则在网络中第i,j两个节点之间权系数的值为:</P>
<P><IMG height=62 src="1_3 Hopfield模型.files/4.3.ht3.gif" width=295
border=0></P>
<P>其中:k为样本向量X<SUB>k</SUB>的下标,k=1,2,…m;</P>
<P>i,j分别是样本向量X<SUB>k</SUB>的第i,j分量X<SUB>i</SUB>,X<SUB>j</SUB>的下标;i,j=1,2,…n。</P>
<P>对联想存储器的联想检索过程如下:</P>
<P>给定一个向量X。进行联想检索求取在网络中的存储内容。这时,把向量</P>
<P>X={X<SUB>1</SUB>,X<SUB>2</SUB>,...X<SUB>n</SUB>}</P>
<P>的各个分量x<SUB>1</SUB>,x<SUB>2</SUB>,…,x<SUB>n</SUB>赋于相对应的节点j,(j=1,2,…,n),则节点有相应的初始状态Y<SUB>j</SUB>(0),则有</P>
<P>Y<SUB>j</SUB>(0)=X<SUB>j</SUB>,j=1,2,…,n</P>
<P>接着,在Hopfield网络中按动力学系统原则进行计算,得</P>
<P>Y<SUB>j</SUB>(t+1)=f[<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ΣW<SUB>ij</SUB>Y<SUB>j</SUB>(0)-</SPAN><FONT
size=3><SPAN
style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">θ</SPAN></FONT><SUB>j</SUB>]
, i,j=1,2,…,n</P>
<P>其中,f[·]是非线性函数,可取阶跃函数。</P>
<P>通过状态不断变化,最后状态会稳定下来.最终的状态是和给定向量x最接近的样本向量。所以,Hopfield网络的最终输出也就是给定向量联想检索结果。这个过程说明,即使给定向量并不完全或部分不正确,也能找到正确的结果。在本质上,它也有滤波功能。</P>
<P>1.3.2连续Hopfield网络</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -