无监督学习

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

赢家通吃网络

这些类型的网络基于竞争学习规则,并将使用选择总输入最多的神经元作为赢家的策略。输出神经元之间的连接表明它们之间存在竞争,其中一个神经元将处于"ON"状态,这意味着它将是赢家,而其他神经元将处于"OFF"状态。

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

汉明网络

在大多数使用无监督学习的神经网络中,计算距离和进行比较是必不可少的。这种网络是汉明网络,对于每个给定的输入向量,它将被聚类到不同的组中。以下是汉明网络的一些重要特征 −

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

  • 它是一个单层网络。

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

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

  • 它是一个固定权重网络,这意味着即使在训练期间权重也会保持不变。

最大网络

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

架构

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" 是节点总数。

ANN 中的竞争学习

它涉及无监督训练,其中输出节点试图相互竞争以表示输入模式。要理解这个学习规则,我们必须理解竞争网络,其解释如下 −

竞争网络的基本概念

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

基本概念

竞争学习规则的基本概念

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

数学公式

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

  • 成为赢家的条件

    假设一个神经元 yk 想要成为赢家,那么就会有以下条件

    $$y_{k}\:=\:\begin{cases}1 & if\:v_{k} > v_{j}\:for\:all\:\:j,\:j\: eq\:k\0 & else\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 聚类算法

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

算法

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

$$W_{j}\:=\:i_{p},\:\:\: where\:j\:\in \lbrace1,....,k brace\:and\:p\:\in \lbrace1,....,n brace$$

每个聚类 Cj 都与原型 wj 相关联。

步骤 2 − 重复步骤 3-5,直到 E 不再减少,或者聚类成员不再变化。

步骤 3 − 对于每个输入向量 ip,其中 p ∈ {1,…,n>,将 ip 放入聚类 Cj* 中,其最近的原型 wj* 具有以下关系

$$|i_{p}\:-\:w_{j*}|\:\leq\:|i_{p}\:-\:w_{j}|,\:j\:\in \lbrace1,....,k brace$$

步骤 4 − 对于每个聚类 Cj,其中 j ∈ { 1,…,k>,将原型 wj 更新为当前 Cj 中所有样本的质心,因此

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

步骤 5 − 计算总量化误差如下 −

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

Neocognitron

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

架构

它是一个分层网络,包含许多层,并且这些层中存在本地连接模式。

Neocognitron

如我们在上图中所见,neocognitron 分为不同的连接层,每层有两个单元。这些单元的解释如下 −

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

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

训练算法

神经认知机的训练是逐层进行的。从输入层到第一层的权重经过训练并冻结。然后,从第一层到第二层的权重经过训练,依此类推。S 单元和 C 单元之间的内部计算取决于来自前几层的权重。因此,我们可以说训练算法取决于 S-cell 和 C-cell 上的计算。

S-cell 中的计算

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

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

这里,ti 是固定权重,ci 是 C-cell 的输出。

S-cell 的缩放输入可以按如下方式计算 −

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

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

wi是从C-cell调整到S-cell的权重。

w0是在输入和S-cell之间可调的权重。

v是来自C-cell的兴奋性输入。

输出信号的激活为,

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

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, & else\end{cases}$$

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