西瓜书第五章学习笔记——神经网络
5.1 神经元模型 神经网络(neural networks)方面的研究很早就已出现,今天“神经网络”已是一个相当大的、多学科交叉的学科领域,各相关学科对神经网络的定义多种多样,本书采用目前使用得最广泛的一种,即“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应”[Kohonen,1988],我们在机器学习中谈论神经网络时指的是“神经网络学习”,或者说,是机器学习与神经网络这两个学科领域的交叉部分。
文章图片
在上图这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出。
5.2 感知机与多层网络 感知 (Perceptron)由两层神经元组成, 输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元"(threshold logic unit)。
文章图片
文章图片
【机器学习|西瓜书第五章学习笔记——神经网络】要解决非线性可分问题,需考虑使用多层功能神经元。神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”(connection weight)以及每个功能神经元的阈值;换言之,神经网络“学”到的东西,蕴涵在连接权与阈值中。
5.3 误差逆传播算法 误差逆传播(error BackPropagation,简称BP)算法就是其中最杰出的代表,它是迄今最成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练,值得指出的是,BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络,例如训练递归神经网络。
文章图片
文章图片
文章图片
文章图片
文章图片
5.4 全局最小与局部极小 在现实任务中,人们常采用以下策略来试图“跳出”局部极小,从而进一步接近全局最小:
- 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数,这相当于从多个不同的初始点开始搜索,这样就可能陷入不同的局部极小,从中进行选择有可能获得更接近全局最小的结果。
- 使用“模拟退火”(simulated annealing)技术[Aarts and Korst,1989].模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小,在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定
- 使用随机梯度下降.与标准梯度下降法精确计算梯度不同,随机梯度下降法在计算梯度时加入了随机因素,于是,即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。
- RBF网络
文章图片
- ART网络
ART(Adaptive Resonance Theory,自适应谐振理论)网络[Carpenter and Grossberg,1987]是竞争型学习的重要代表,该网络由比较层、识别层、识别阈值和重置模块构成,其中,比较层负责接收输入样本,并将其传递给识别层神经元,识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类。
在接收到比较层的输入信号后,识别层神经元之间相互竞争以产生获胜神经元,竞争的最简单方式是,计算输入向量与每个识别层神经元所对应的模式类的代表向量之间的距离,距离最小者胜,获胜神经元将向其他识别层神经元发送信号,抑制其激活,若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别,同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜;若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。
显然,识别阈值对ART网络的性能有重要影响,当识别阈值较高时,输入样本将会被分成比较多、比较精细的模式类,而如果识别阈值较低,则会产生比较少、比较粗略的模式类。
ART比较好地缓解了竞争型学习中的“可塑性-稳定性窘境”(stability-plasticity dilemma),可塑性是指神经网络要有学习新知识的能力,而稳定性则是指神经网络在学习新知识时要保持对旧知识的记忆,这就使得ART网络具有一个很重要的优点:可进行增量学习(incremental learning)或在线学习(online learning).
- SOM网络
- 级联相关网络
与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合。
- Elman网络
- Boltzmann 机
文章图片
文章图片
文章图片
5.6 深度学习 我们可以从另一个角度来理解深度学习,无论是DBN还是CNN,其多隐层堆叠、每层对上一层的输出进行处理的机制,可看作是在对输入信号进行逐层加工,从而把初始的、与输出目标之间联系不太密切的输入表示,转化成与输出目标联系更密切的表示,使得原来仅基于最后一层输出映射难以完成的任务成为可能,换言之,通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务.由此可将深度学习理解为进行“特征学习"(feature learning)或“表示学习"(representation learning)。
推荐阅读
- 神经网络|RBF神经网络理论与实现
- 机器学习|机器学习西瓜书——第05章神经网络
- 机器学习|西瓜书——第五章神经网络
- python|超简单教你用Python克隆声音(以卷福为例)
- 神经网络|对CTC、RNA、RNN-T的理解
- CVPaper|计算机视觉论文-2021-09-09
- pytorch|pytorch学习笔记(六)——pytorch中搭建神经网络
- 算法|YOLOv6(又快又准的目标检测框架开源啦)
- python|YOLOv5系列学习之指标