径向基函数神经网络 多层感知器是一类全局逼近的神经网络,对于每次训练,网络都要调整全部权值,全局逼近网络的收敛速度较慢。局部作用:果一个输入 A 在另外两个输入 B1 和 B2 的空间位置之间,那么响应输入 B1 和 B2 的神经元也应该在一定程度上被 A 激活。按照感受野的变化规律设置权重系数,得到的就是“径向基函数神经网络”(Radial Basis Function Network , RBFN)。径向基网络通常包含三层:一个输入层、一个隐藏层和一个输出层。其中隐藏层是径向基网络的核心结构。每个隐藏神经元都选择径向基函数作为传递函数,对输入分量的组合加以处理。需要注意的是,输入节点和隐藏节点之间是直接相连的,权重系数为 1。
径向基函数是只取决于与中心矢量的距离的函数,表达式:
隐藏层的作用是实现从输入空间到非显式特征空间的非线性变换,和支持向量机的思路是一样的。
另一个理解径向基网络的角度是多变量插值。整体上看,径向基网络的作用是学习一个高维空间上的超曲面,根据训练数据进行训练的过程就是对超曲面进行拟合的过程。但由于数据中存在噪声,因而训练得到的结果还需要泛化处理,泛化的任务就是在数据点之间进行插值,使插值后的曲面仍然要经过所有数据点。在插值过程中,使用的插值函数就是不同类型的径向基函数。
在实际应用中,对径向基网络的训练包括两个步骤。
- 第一步的任务是初始化中心向量 wi 的位置,中心向量的位置既可以随机分配,也可以通过 K 均值聚类这一无监督学习的方法完成。这个步骤对应的是隐藏层的训练。
- 第二步的任务是用线性模型拟合初始化的隐藏层中的各个中心向量,拟合的损失函数设定为最小均方误差函数,使用递归最小二乘法(Recursive Least Square)使损失函数最小化。这个步骤对应的是对输出层的训练。
自组织特征映射
无论是全局逼近的多层感知器,还是局部逼近的径向基网络,在训练中用到的都是监督学习的方法。如果将无监督学习引入神经网络中,对应的结构就是自组织特征映射。 自组织映射有两个明显的不同。第一,它能够将高维的输入数据映射到低维空间之上(通常是二维空间),因而起到降维的作用。
在训练完成后还可以添加额外的一个步骤,利用反向传播算法对径向基网络的所有参数进行一次微调,以达到更好的训练效果。
第二,自组织映射采用的是竞争性学习而非传统的纠错学习。
组织映射的主要任务就是将任意维度的输入模式转换为一维或二维的离散映射,并以拓扑有序的方式自适应地实现这个映射。 在训练过程中,自组织映射中每个神经元的权重系数首先要初始化,初始化的方式通常是将其赋值为较小的随机数,这可以保证不引入无关的先验信息。当初始化完成后,网络的训练就包括三个主要过程。
- 竞争过程:对每个输入模式,网络中的神经元都计算其判别函数的取值,判别函数值最大的神经元成为竞争过程的优胜者;
- 合作过程:获胜神经元决定兴奋神经元的拓扑邻域的空间位置
- 自适应过程:兴奋神经元适当调节其权重系数,以增加它们对于当前输入模式的判别函数值,强化未来对类似输入模式的响应。
竞争过程的实质是找到输入模式和神经元之间的最佳匹配。由于输入模式 x 和权重系数 w 是具有相同维度的向量, 因而可以计算两者的内积作为判别函数。通过选择具有最大内积 wjTx 的神经元,就可以决定兴奋神经元拓扑邻域的中心位置。内积最大化的匹配准则等效于欧氏距离最小化。从这个角度看,获胜神经元就是对输入模式的最佳匹配。
竞争过程确定了合作神经元的拓扑邻域的中心,合作过程就要界定中心之外的拓扑邻域。侧向抑制效应,自组织映射中的拓扑邻域被定义成以最佳匹配神经元和兴奋神经元之间的侧向距离为自变量的单峰函数。由于神经元在传导时倾向于激活距离较近的神经元,因而拓扑邻域的幅度在距离为 0 的中心点取到最大值,并随着侧向距离的增加而单调衰减。同时,拓扑邻域还应该满足平移不变性,也就是邻域幅度不依赖于中心点的位置。自组织映射中的拓扑邻域还有另一个特点,就是其大小会随着时间的推移而收缩,幅度值随着时间的增加而下降。这个时变性质的意义在于逐渐减少需要更新的神经元的数量。
神经元的权重系数具备自动调节的功能,权重系数的更新方程:
初始值的好坏便至关重要。传统算法采用的是随机方式的初始化,后来又提出了基于主成分的初始化方法。
组织映射的训练算法可以归纳为以下几个步骤:
- 使用主成分法或随机法初始化神经元的权重系数;
- 选取训练集中的样本用于激活整个网络;
- 根据最小距离准则寻找最佳匹配神经元;
- 通过更新方程调整所有神经元的权重系数;
- 重复以上步骤直到在从输入模式到神经元的映射关系中观察不到明显变化
模糊神经网络
模糊神经网络(fuzzy neural network)就是将常规的神经网络赋予模糊输入信号和模糊权值,其作用在于利用神经网络结构来实现模糊逻辑推理。
模糊神经网络和神经模糊系统是不同的。神经模糊系统的输入和输出都是确定对象。因此在神经模糊系统中,必备的结构是模糊化层和去模糊化层。模糊化层用于将输入的确定对象模糊化,去模糊化层则用于将输出的模糊对象转化为确定对象。相比之下,模糊神经网络的输入和输出都是模糊对象,完成的也是模糊推理的功能。
模糊数就是只有取值范围而没有精确数值的数。模糊数参与到运算中来,得到的结果也将变成一个模糊数。
构成模糊神经网络的基本单元是模糊化的神经元。模糊神经元的输入信号和权重系数都是模糊数,传递函数也需要对模糊集合上的加权结果进行处理。模糊神经元的组合形成模糊神经网络。模糊神经网络的训练方式同传统的神经网络类似,即定义一个误差函数并使其最小化。但由于模糊数不能进行微积分的计算,因此不能直接对模糊的权重系数使用反向传播,需要在处理误差时需要针对模糊数的特性提出新的方法。两种常用的方法是基于水平集的方法和基于遗传算法的方法。
基于水平集的方法采用的是直接推导的方式,通过确定模糊集合的水平集对模糊数中的元素加以筛选。在神经网络的训练中,训练算法的作用就是通过计算偏导数和应用反向传播算法,优化每个水平集的截断点,从而确定模糊权值。在模糊神经网络的训练中,如果保持学习率参数不变,误差函数就难以快速收敛。
为了处理这个问题,模糊神经网络引入了一种叫做“共轭梯度(conjugate gradient)”的机制,使训练过程能够找到全局最优解。而要确定最优的学习率,就要借助遗传算法(genetic algorithm)。
极客时间《人工智能基础课》学习笔记 Day8