Artificial Neural Network 简明教程

Unsupervised Learning

顾名思义,这种类型的学习是在没有老师指导的情况下进行的。这种学习过程是独立的。在非监督学习下训练人工神经网络期间,类似类型的输入向量结合形成簇。当应用一个新的输入模式时,神经网络给出输出响应来指示输入模式所属的类别。在此过程中,不会有来自环境的反馈,说明期望的输出应是什么,以及它是否正确或不正确。因此,在这种类型的学习中,网络本身必须从输入数据中发现模式、特性,以及输入数据与输出之间的关系。

Winner-Takes-All Networks

这些类型的网络基于竞争学习规则,并且会使用以下策略:它选择具有最大总输入量的神经元作为获胜者。输出神经元之间的连接展示了它们之间的竞争,其中一个会“开启”,这意味着它会是获胜者,其他会“关闭”。

以下是使用非监督学习基于此简单概念的一些网络。

Hamming Network

在使用非监督学习的大多数神经网络中,计算距离并执行比较至关重要。这种类型的网络是汉明网络,对于给定的每个输入向量,它会将其聚类到不同的组中。以下是汉明网络的一些重要特性:

  1. Lippmann 于 1987 年开始研究汉明网络。

  2. 它是一个单层网络。

  3. 输入可以是 {0, 1} 二进制或 {-1, 1} 双极输入。

  4. 网络的权重由示例向量计算。

  5. 它是一个固定权重网络,这意味着权重即使在训练过程中也会保持不变。

Max Net

这也是一个固定权重网络,它充当一个子网络,用于选择具有最高输入的节点。所有节点都完全互连,并且在所有这些加权互连中都存在对称权重。

Architecture

max net

它使用机制,这是一个迭代过程,每个节点通过连接接收来自所有其他节点的抑制性输入。值最大的单个节点将处于活动状态或获胜状态,所有其他节点的激活将处于非活动状态。Max Net 使用恒等激活函数,其为 f(x)\:=\:\begin{cases}x & if\:x > 0\\0 & if\:x \leq 0\end{cases}

该网络的任务由 +1 自激发权重和相互抑制幅度完成,其设置为 [0 < ɛ < $\frac{1}{m}$],其中 “m” 是节点总数。

Competitive Learning in ANN

它与非监督训练有关,其中输出节点尝试相互竞争以表示输入模式。为了理解这个学习规则,我们必须了解竞争网络,其解释如下:

Basic Concept of Competitive Network

该网络就像一个单层前馈网络,在输出之间具有反馈连接。输出之间的连接是抑制型的,由虚线表示,这意味着竞争者永远不会支持自己。

basic concept

Basic Concept of Competitive Learning Rule

如前所述,输出节点之间存在竞争,因此主要概念是:在训练期间,对给定输入模式具有最高激活度的输出单元将被宣布为获胜者。此规则也称为赢家通吃,因为只有获胜的神经元会被更新,而其余神经元保持不变。

Mathematical Formulation

以下是此学习规则的数学公式的三个重要因素:

  1. 成为赢家条件假设一个神经元 yk 希望成为赢家,那么会出现以下条件:y_{k}\:=\:\begin{cases}1 & if\:v_{k} > v_{j}\:for\:all\:\:j,\:j\:\neq\:k\\0 & otherwise\end{cases}这意味着,如果说神经元 yk 想获胜,那么其感应局部场(求和单元的输出),例如 vk ,必须在网络中的所有其他神经元之间最大。

  2. 权重总和条件对竞争性学习规则的另一个约束是针对特定输出神经元的权重总和将为 1。例如,如果我们考虑神经元 k ,那么\displaystyle\sum\limits_{k} w_{kj}\:=\:1\:\:\:\:for\:all\:\:k

  3. 获胜者的重量改变如果神经元没有对输入模式做出反应,则该神经元中不进行任何学习。不过,如果一个特定的神经元获胜,则调整相应的权重如下 −\Delta w_{kj}\:=\:\begin{cases}-\alpha(x_{j}\:-\:w_{kj}), & if\:neuron\:k\:wins\\0 & if\:neuron\:k\:losses\end{cases}其中,$\alpha$是学习率。这清楚地表明,我们通过调整权重来支持获胜的神经元,如果一个神经元输了,那么我们不必费心重新调整它的权重。

K-means Clustering Algorithm

K-means 是最流行的群集算法之一,其中我们使用分区程序的概念。我们从初始分区开始,并反复将模式从一个群集移动到另一个群集,直到获得满意结果。

Algorithm

Step 1 − 选择 k 个点作为初始质心。初始化 k 个原型 (w1,…,wk) ,例如,我们可以用随机选择的输入向量识别它们 −

W_{j}\:=\:i_{p},\:\:\: where\:j\:\in \lbrace1,…​.,k\rbrace\:and\:p\:\in \lbrace1,…​.,n\rbrace

每个群集 Cj 都与原型 wj 相关。

Step 2 − 重复步骤 3-5,直到 E 不再减小,或群集成员资格不再改变。

Step 3 − 对于每个输入向量 ip ,其中 p ∈ {1,…,n} ,将 ip 放在与最近的原型 wj 具有以下关系的群集 Cj 中:

|i_{p}\:-\:w_{j*}|\:\leq\:|i_{p}\:-\:w_{j}|,\:j\:\in \lbrace1,…​.,k\rbrace

Step 4 − 对于每个群集 Cj ,其中 j ∈ { 1,…,k} ,更新原型 wjCj 中当前所有样本的质心,以便:

w_{j}\:=\:\sum_{i_{p}\in C_{j}}\frac{i_{p}}{|C_{j}|}

Step 5 − 计算总量化误差如下 −

E\:=\:\sum_{j=1}^k\sum_{i_{p}\in w_{j}}|i_{p}\:-\:w_{j}|^2

Neocognitron

它是一个多层前馈网络,由福岛于 20 世纪 80 年代开发。该模型基于监督学习,用于视觉模式识别,主要是手写字符。它基本上是福岛于 1975 年开发的 Cognitron 网络的扩展。

Architecture

它是一个层次网络,包含许多层,并且在这些层中局部有连接模式。

neocognitron

正如我们在上图中看到的,新认知网络被划分为不同的连接层,并且每层有两个细胞。以下是对这些细胞的解释 −

S-Cell − 它被称为一个简单细胞,经过训练,可以对特定的模式或一组模式做出反应。

C-Cell − 它被称为复杂细胞,它将来自 S 细胞的输出结合起来,同时减少了每个阵列中的单元数量。从另一个意义上讲,C 细胞取代了 S 细胞的结果。

Training Algorithm

发现新认知网络的训练逐层进行。训练从输入层到第一层的权重并冻结它们。然后,训练从第一层到第二层的权重,以此类推。S 细胞和 C 细胞之间的内部计算取决于来自前一层的权重。因此,我们可以说训练算法取决于 S 细胞和 C 细胞的计算。

Calculations in S-cell

S 细胞拥有从前一层接收到的兴奋信号并拥有在同一层内获得的抑制信号。

\theta=\:\sqrt{\sum\sum t_{i} c_{i}^2}

这里, ti 是固定权重, ci 是 C 单元格的输出。

S 单元格的缩放输入可用下述方式计算:

x\:=\:\frac{1\:+\:e}{1\:+\:vw_{0}}\:-\:1

这里,$e\:=\:\sum_i c_{i}w_{i}$

wi 是从 C 单元格到 S 单元格调整的权重。

w0 是输入与 S 单元格之间可调整的权重。

v 是从 C 单元格的激励性输入。

输出信号的激活为:

s\:=\:\begin{cases}x, & if\:x \geq 0\\0, & if\:x < 0\end{cases}

Calculations in C-cell

C 层的净输入是:

C\:=\:\displaystyle\sum\limits_i s_{i}x_{i}

这里, si 是 S 单元格的输出, xi 是从 S 单元格到 C 单元格的固定权重。

最终输出如下:

C_{out}\:=\:\begin{cases}\frac{C}{a+C}, & if\:C > 0\\0, & otherwise\end{cases}

这里 ‘a’ 是取决于网络性能的参数。