Hopfield神经网络:从理论到实例解析

源内容(英文)

Hopfield神经网络由John J. Hopfield博士发明,由一层 ‘n‘ 个全连接的循环神经元组成。它通常用于执行自联想和优化任务。它是通过收敛的交互过程计算出来的,并且产生的响应与我们的普通神经网络不同。

离散Hopfield网络

这是一个全互联的神经网络,其中每个单元都连接到其他所有单元。它以离散的方式运作,即它给出有限的、截然不同的输出,通常有两种类型:

  • 二进制(0/1)
  • 双极性(-1/1)

与此网络相关的权重本质上是对称的,并具有以下属性。

  • w{ij} = w{ji} \\ 2. w_{ii} = 0

Hopfield网络的结构与架构

  • 每个神经元都有一个反相输出和一个同相输出。
  • 由于是全连接的,每个神经元的输出都是所有其他神经元的输入,但自身除外。

下图展示了具有以下元素的离散Hopfield神经网络架构的示例表示。

!roadmapp1离散Hopfield网络架构

****[ x1 , x2 , ... , xn ] ->**** 输入到给定的 n 个神经元。
****[ y1 , y2 , ... , yn ] ->**** 从给定的 n 个神经元获得的输出
****W********ij ->**** 与第 i 个和第 j 个神经元之间的连接相关的权重。

训练算法

为了存储一组输入模式 S(p) [p = 1 到 P],其中 S(p) = S1(p) … Si(p) … Sn(p),权重矩阵由以下公式给出:

  • 对于二进制模式

w{ij} = \sum{p = 1}^{P} [2s{i}(p) – 1][2s{j}(p) – 1]\ (w_{ij}\ for\ all\ i

eq j)

  • 对于双极性模式

w{ij} = \sum{p = 1}^{P} [s{i}(p)s{j}(p)]\ (where\ w_{ij} = 0\ for\ all\ i= j)

(即这里的权重没有自连接)

Hopfield网络训练中涉及的步骤映射如下:

  • 初始化权重 (wij) 以存储模式 (使用训练算法)
  • 对于每个输入向量 yi,执行 步骤 3-7
  • 使网络的初始激活器等于外部输入向量 x。

yi = xi : (for\ i = 1\ to\ n)

  • 对于每个向量 yi,执行 步骤 5-7
  • 使用下面给出的方程计算网络的总输入 yin

y{in{i}} = xi + \sum{j} [yjw{ji}]

  • 对总输入应用激活以根据下面给出的方程计算输出:

yi = \begin{cases} & 1 \text{ if } y{in}>\thetai \\ & yi \text{ if } y{in}=\thetai \\ & 0 \text{ if } y{in}<\thetai \end{cases}

(其中 θi (阈值),通常取为 0)

  • 现在将获得的输出 yi 反馈给所有其他单元。因此,激活向量被更新。
  • 测试网络是否收敛。

考虑以下问题。我们需要创建一个离散Hopfield网络,其输入向量的双极性表示为 [1 1 1 -1] 或 [1 1 1 0](在二进制表示的情况下)存储在网络中。用存储向量的第一个和第二个分量中缺失的条目(即 [0 0 1 0])测试Hopfield网络。

给定输入向量,x = [1 1 1 -1](双极性),我们初始化权重矩阵 (wij) 如下:

w_{ij} = \sum [s^T(p)t(p)] \\ = \begin{bmatrix} 1 \\ 1 \\ 1 \\ -1 \end{bmatrix} \begin{bmatrix} 1 & 1 & 1 & -1 \end{bmatrix} \\ = \begin{bmatrix} 1 & 1 & 1 & -1 \\ 1 & 1 & 1 & -1 \\ 1 & 1 & 1 & -1 \\ -1 & -1 & -1 & 1 \\\\end{bmatrix}

且没有自连接的权重矩阵为:

w_{ij} = \begin{bmatrix} 0 & 1 & 1 & -1 \\ 1 & 0 & 1 & -1 \\ 1 & 1 & 0 & -1 \\ -1 & -1 & -1 & 0 \\\\end{bmatrix}

根据问题,输入向量 x 缺失条目,x = [0 0 1 0]([x1 x2 x3 x4])(二进制)。使 yi = x = [0 0 1 0] ([y1 y2 y3 y4]). 选择单元 yi (顺序不重要) 用于更新其激活。取权重矩阵的第 i 列进行计算。

(我们将为 yi 的所有值执行以下步骤,并检查是否收敛)

y{in{1}} = x1 + \sum{j = 1}^4 [yj w{j1}] \\ = 0\ + \begin{bmatrix} 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} 0 \\ 1 \\ 1 \\ -1 \end{bmatrix} \\ = 0\ + 1 \\ = 1 \\ Applying\ activation,\ y{in1} > 0 \implies y_1 = 1 \\ giving\ feedback\ to\ other\ units,\ we\ get \\ y = \begin{bmatrix} 1 & 0 & 1 & 0 \end{bmatrix} \\ which\ is\ not\ equal\ to\ input\ vector\ \ \ x = \begin{bmatrix} 1 & 1 & 1 & 0 \end{bmatrix} \\ Hence,\ no\ covergence.         ‘

现在对于下一个单元,我们将通过反馈获取更新值。(****即 y = [1 0 1 0]****)

y{in{3}} = x3 + \sum{j = 1}^4 [yj w{j3}] \\ = 1\ + \begin{bmatrix} 1 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} 1 \\ 1 \\ 0 \\ -1 \end{bmatrix} \\ =

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/40024.html
点赞
0.00 平均评分 (0% 分数) - 0