Artificial Neural Network 简明教程
Unsupervised Learning
顾名思义,这种类型的学习是在没有老师指导的情况下进行的。这种学习过程是独立的。在非监督学习下训练人工神经网络期间,类似类型的输入向量结合形成簇。当应用一个新的输入模式时,神经网络给出输出响应来指示输入模式所属的类别。在此过程中,不会有来自环境的反馈,说明期望的输出应是什么,以及它是否正确或不正确。因此,在这种类型的学习中,网络本身必须从输入数据中发现模式、特性,以及输入数据与输出之间的关系。
Winner-Takes-All Networks
这些类型的网络基于竞争学习规则,并且会使用以下策略:它选择具有最大总输入量的神经元作为获胜者。输出神经元之间的连接展示了它们之间的竞争,其中一个会“开启”,这意味着它会是获胜者,其他会“关闭”。
以下是使用非监督学习基于此简单概念的一些网络。
Basic Concept of Competitive Learning Rule
如前所述,输出节点之间存在竞争,因此主要概念是:在训练期间,对给定输入模式具有最高激活度的输出单元将被宣布为获胜者。此规则也称为赢家通吃,因为只有获胜的神经元会被更新,而其余神经元保持不变。
Mathematical Formulation
以下是此学习规则的数学公式的三个重要因素:
-
成为赢家条件假设一个神经元 yk 希望成为赢家,那么会出现以下条件:y_{k}\:=\:\begin{cases}1 & if\:v_{k} > v_{j}\:for\:all\:\:j,\:j\:\neq\:k\\0 & otherwise\end{cases}这意味着,如果说神经元 yk 想获胜,那么其感应局部场(求和单元的输出),例如 vk ,必须在网络中的所有其他神经元之间最大。
-
权重总和条件对竞争性学习规则的另一个约束是针对特定输出神经元的权重总和将为 1。例如,如果我们考虑神经元 k ,那么\displaystyle\sum\limits_{k} w_{kj}\:=\:1\:\:\:\:for\:all\:\:k
-
获胜者的重量改变如果神经元没有对输入模式做出反应,则该神经元中不进行任何学习。不过,如果一个特定的神经元获胜,则调整相应的权重如下 −\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} ,更新原型 wj 为 Cj 中当前所有样本的质心,以便:
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
它是一个层次网络,包含许多层,并且在这些层中局部有连接模式。
正如我们在上图中看到的,新认知网络被划分为不同的连接层,并且每层有两个细胞。以下是对这些细胞的解释 −
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}