购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

CHAPTER2
第2章
认识深度学习

本章将系统介绍深度学习的基本概念和核心技术。2.1节将探讨机器学习的基础知识,包括其定义、基本要素和主要特点,这些是理解深度学习的基础。2.2节将学习机器学习的任务类型,了解机器学习在不同场景下的应用方式。2.3节将引导读者进入深度学习的研究领域,介绍深度学习的基本原理和特征。

2.4节将详细探讨人工神经网络这一核心内容。首先将回顾人工神经网络的发展历史,了解其演进过程;然后学习脉冲神经网络的基本概念;接着探讨神经网络的操作模式;最后了解重要的学习规则,理解神经网络如何进行训练和优化。

2.5节将系统介绍神经网络的各种结构类型,依次学习单层前馈网络、多层前馈网络、循环网络和网状网络,最后探讨训练过程中的学习特性。通过对这些结构的学习,读者将深入理解不同类型神经网络的特点和应用场景。通过本章的学习,读者将全面掌握机器学习和深度学习的基础知识,了解人工神经网络的发展历程、基本原理和典型结构。

2.1 机器学习的基本概念

机器学习是人工智能领域的一个主要分支,“机器学习”一词在1952年由Arthur Samuel创造,他创建了第一个可以玩和学习跳棋游戏的程序。这里的“学习”过程对应于移动棋盘位置,并且根据赢得或输掉游戏的概率来计算它们的分数,最后依据增量更新数据库。计算机玩的次数越多,赢得比赛的能力越高,这就是最早版本的强化学习。

在20世纪60和70年代,许多研究人员被纯逻辑机器的概念所吸引,当时的内存和计算机处理能力相比现在十分有限。更重要的是,人们普遍认为人类智能可以通过逻辑(“计算主义”观点)来表示,这导致了对基于规则的系统的强调,这些系统通过逻辑规则、事实和符号以及自然语言处理来表示知识。

与此同时,其他研究人员认为,应该更多地研究人类大脑的神经生物学并将其进行复制(一种“联结主义”观点),即人工神经网络(Artifical Neural Network,ANN)。第一个著名的例子是感知器,它将阈值规则应用于线性函数以区分二进制输出,如图2.1所示。

图2.1 感知器

机器学习技术为现代社会的许多方面提供了动力,从网络搜索到社交网络上的内容过滤,再到电子商务网站上的推荐,它越来越多地出现在相机和智能手机等消费产品中。机器学习系统被用来识别图像中的对象,将语音转录成文本,将新闻项目、帖子或产品与用户的兴趣相匹配,并选择相关的搜索结果。这些应用程序越来越多地使用了一种被称为深度学习的技术。

传统的机器学习技术在处理原始形式的自然数据方面能力有限。几十年来,构建模式识别或机器学习系统需要仔细的工程设计和相当多的领域专业知识来设计特征提取器,将原始数据(如图像的像素值)转换为合适的内部表示或特征向量,学习子系统(通常是分类器)可以检测输入中的模式或对其进行分类。

表示学习是一组方法,允许向机器提供原始数据,并自动发现检测或分类所需的表示。深度学习方法是具有多个表示级别的表示学习方法,通过组合简单但非线性的模块来实现,每个模块将一个级别的表示(从原始输入开始)转换为更高、更抽象的级别的表示。有了足够多的这种转换的组合,就可以学习非常复杂的函数。对于分类任务,更高的特征层放大了输入的一些方面,这些方面对区分很重要,并抑制了不相关的变化。例如,图像以像素值阵列的形式出现,第一特征层中的学习特征通常表示图像中特定方向和位置处的边缘的存在或不存在。第二特征层通常通过发现边缘的特定排列来检测图案,而不考虑边缘位置的微小变化。第三特征层可以将图案组装成与熟悉对象的部分相对应的较大组合,并且随后的特征层将检测作为这些部分的组合的对象。深度学习的关键方面是,这些特征层不是由工程师设计的,而是使用通用学习程序从数据中学习的。

无论是经典的机器学习算法还是新兴的深度学习模型,其核心都是建立在监督学习的基础上。想象一下,要构建一个系统,可以将图像分类为房屋、汽车、人或宠物。首先收集大量数据集,其中包含房屋、汽车、人和宠物的图像,每个图像都标有其类别。在训练期间,机器会显示一张图像,并以分数向量的形式生成输出,每个类别一个。我们希望目标类别在所有类别中得分最高,但这在训练之前不太可能发生。我们计算一个目标函数,用于测量输出分数与期望分数模式之间的误差(或距离)。然后机器修改其内部可调参数以减少此错误。这些可调参数通常称为权重,是实数,可以看作定义机器输入-输出功能的“旋钮”。在典型的深度学习系统中,可能有数亿个这样的可调整权重,以及数亿个用于训练机器的标记示例。

为了正确调整权重向量,学习算法计算一个梯度向量,这个梯度向量表示每个权重,如果该权重增加很小的量,误差会增加或减少多少,然后在与梯度向量相反的方向上调整权重向量。

对所有训练样例进行平均的目标函数可以看作权值高维空间中的一种丘陵景观。负梯度向量表示该景观中下降最陡的方向,沿此方向调整权重可以使误差更接近最小值,从而使输出误差平均较低。

在实践中,大多数从业者使用随机梯度下降(Stochastic Gradient Descent,SGD)来进行样本训练。这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度,并相应地调整权重。对训练集中的许多小样本集重复该过程,直到目标函数的平均值停止减小。它之所以被称为随机,是因为每个小样本集都给出了所有样本的平均梯度的噪声估计。尽管SGD相对简单,但与复杂得多的优化技术相比,这个简单的过程通常会以惊人的速度找到一组好的权重。训练结束后,系统的性能将在另一组称为测试集的示例上进行测量。这是为了测试机器的泛化能力——它对在训练期间从未见过的新输入产生合理答案的能力。

目前机器学习的许多实际应用都是在人工设计特征的基础上使用线性分类器。两类线性分类器计算特征向量分量的加权和。如果加权和高于阈值,则输入被归类为特定类别。

机器学习结合了统计、优化和计算机科学。这里提到的统计数据与已经教授了几个世纪的学科完全相同。在绝大多数情况下,机器学习模型可以定义为

换句话说,我们希望通过函数 f x β )估计(或预测)响应变量 y 的值,其中, x 为观察到的(输入)变量, β 为模型的参数。由于在实践中,数据(包含在 x 中)并不完美,因此总是存在一些噪声或未观察到的数据,这通常由误差项 ε 表示。由于无法真正知道 ε 的真实值,它是一个随机变量,因此 y 也是一个随机变量。

f 的最基本形式,即线性模型表示为

因此,如果有一个包含( x y )对的数据集,则任务是估计最能重现线性关系的 β 值。可以使用优化来做到这一点,这通常被称为“训练”过程,它是最小化 y 的真实值和模型预测之间的差异,也称为损失函数。现在将 f x )定义为

其中,每个函数 f k 的结果提供给下一个。或者在此之前,它以分布式方式处理其数据,例如, f k 1 x 1 ,…, x j ), f k 2 x j +1 ,…, x k ),…, f kl x k +1 ,…, x r ),现有 l 个子函数,每个子函数处理数据的一个子部分。这就是一个深度神经网络(Deep Neural Network,DNN)的组成结构。当然,它可能变得更复杂,但原理完全相同。存在一系列函数,每个函数都有自己的一组参数(有时在不同函数之间共享),其中一个的输出是另一个的输入。由于数量众多,这些参数的估计可能需要大量的数据和计算,这就是它与经典统计数据不同的地方。

事实上,有几种方法可以对机器学习任务进行分类。最常见的方法取决于目标变量( y )是否存在于问题本身中,从而导致有监督和无监督的学习范式。监督学习意味着要预测的目标变量的存在,因此模型从“老师”那里接收到其预测如何接近基本事实的反馈。它还包括半监督学习(当目标值部分缺失时)、主动学习(可能的目标值数量有限,因此模型应决定首先使用哪些数据样本)和强化学习( y 以表格形式给出算法执行的一组动作的奖励)。

根据它们的输出,机器学习模型可以分为回归(目标变量是连续的)、分类(目标变量是分类的)和其他类似聚类(通常是无监督的)、概率密度估计和降维(例如主成分分析算法)。

2.2 机器学习任务

机器学习的任务主要有回归、分类、聚类、异常检测、去噪等,这里简单描述4种机器学习任务。

1)回归是一个有监督的函数近似预测问题,旨在将实函数在样本点附近进行近似(从样本点 n 寻求近似函数表达式)。为了完成这个任务,学习算法需要输出函数: f : R n R ,当 y = f x )时,模型将 x 所代表的输入回归到函数值 y 。如图2.2所示,利用统计分析工具进行回归分析,可以自动计算出线性或非线性模型,并检验模型中各个参数的显著性。

图2.2 预测拟合图

2)分类是将样本点对指定类别进行识别与分类的有监督的模式识别问题,考虑到已指定模式其实也是一种样本点,因此分类也可被看作回归(函数近似预测)问题,除了返回结果的形式不同外,学习算法需要输出函数,当 y = f x )时,模型将向量 x 所代表的输入分类到 y 所代表的类别。图2.3所示为用Python语言实现的基于反向传播(Back Propagation,BP)神经网络的数据集分类结果及误差结果。

图2.3 分类结果及误差结果图

3)聚类是在不给出指定类别的情况下,将样本点进行识别与分类(自我产生模式,再将样本点按模式分类)的无监督的模式识别问题,准确计算样本点的相似度是聚类问题中的重要课题。

4)异常检测是寻找样本中所包含异常数据的问题,计算机程序在一组事件或对象中筛选,并标记不正常或非典型的个体。若已知正常和异常标准,则是有监督的分类问题;若未知正常和异常标准,则可采用无监督的密度估计方法。异常检测任务的一个典型案例是信用卡欺诈检测,通过对购买习惯建模,信用卡公司可以检测你的卡是否被滥用,如果有人窃取了你的信用卡并发生不正常的购买行为,那么信用卡公司会发现该信用卡相对应的数据分布发生异常,从而尽快采取冻结措施以防欺诈。

2.3 深入研究深度学习

DNN是具有多层人工神经元的多层感知器(Multilayer Perceptron,MLP)的直接扩展(见图2.4)。

图2.4 一种通用的DNN架构

它的损失函数 L 衡量模型的预测与基本事实之间的差异。例如,它可以是连续输出(回归)的均方误差(Mean Square Error,MSE)或分类输出(分类)的熵损失。由于它是参数(权重和偏差)的函数,为了将它最小化,通常应用梯度下降(Gradient Descent,GD)算法。我们所需要的只是计算损失函数相对于参数的梯度,并在损失函数最小值的方向上更新它们:

式中, η 为学习率,定义了步长; w ijk 为神经网络中第 i 层、第 j 个神经元与第 k 个神经元之间的权重参数; 为通过梯度下降法更新后的新权重值; 为当前迭代中的旧权重值; L 为损失函数。权重参数决定了输入信号在神经网络中传播时的强度和方向。著名的反向传播算法基本上是应用于损失函数微分以计算所需梯度的链式法则。简单来说,网络中每个神经元对总损失函数的贡献,取决于该神经元与后续神经元之间连接权重的大小,以及激活函数在当前输入值处的导数值。可以从输出层开始,利用这一原理,逐层向后计算每个神经元对损失函数的贡献(也称为误差项),并据此更新该神经元的权重和偏置,使损失函数值不断减小。这种自后向前、逐层传播误差项的过程,就是反向传播算法的工作原理。

这其中存在的问题是普通梯度下降会陷入局部最小值或鞍点。目前已经制定了许多不同的优化技术来解决这个问题。最简单和最流行的一种技术是随机梯度下降,其中误差的梯度是在数据的小子集上计算的,称为小批量。事实上,它在估计的梯度中引入了一些噪声,因此参数有机会从损失函数不需要的区域中逃离。它还提出了对参数更新规则的许多修改,如动量、Nesterov、Adagard、Adadelta、RMSprop、Adam、AdaMax等。这些修改通常将来自先前学习步骤的梯度合并到更新规则中。

DNN非常通用和灵活,已成为一种非常流行且功能强大的模型,具有广泛的应用。其主要优势之一是以分层方式处理信息的能力,自动捕获数据中新的抽象级别,有效地处理维度灾难。之所以出现维度问题,是因为随着数据维度(即特征数量)的增长,该空间中单位球体的体积呈指数增长。因此,为了探索这一数量并提供合理的统计估计,模型需要成倍增加的数据样本。解决这个问题的已知方法之一是降维,它假设只有很少的重要维度可以表示为初始维度(通常是非线性的)的组合。DNN被认为是自动完成降维,其中每个后续层都学习数据的新低维表示。

例如,考虑一个给定扫描的手写文本作为输入的文档主题分类问题。直接对原始像素强度进行这种语义分析几乎是不可能的。相反,DNN首先检测笔画和曲线,然后尝试识别字母,这些字母又构成单词。这要归功于理论上可以学习任何复杂映射的分层结构。这里强调“理论上”这个词,因为在实践中这样做似乎并不那么简单。主要挑战是DNN的训练:拟合其参数本质上归结为在高(千甚至百万)维空间中找到最小的非凸函数。因此,普通的全连接DNN很少单独使用。

卷积神经网络(Convolutional Neural Network,CNN)架构被认为类似于大脑的视觉系统。它由几个卷积层对和一个全连接网络组成(见图2.5)。卷积层中的神经元共享它们的权重,扫描输入并产生与输入大小相同的多个输出,也称为特征图。该层之所以被称为卷积层,因为它使用由神经网络表示的自适应内核对输入进行卷积。池化层对这些特征图进行下采样,例如,在小的连续区域上使用max函数,有效地降低了它们的维数。这些层保留了空间相关性,并能够捕获前面提到的层次特征如笔画、基本几何形状等。紧随其后的是具有少量隐藏层的全连接神经网络,它现在能够解决最初的复杂任务(例如,猫与非猫的分类)。最初,CNN旨在处理图像 [ 1 ] ,但原则上它可以应用于任何固定长度的相关数据,例如文本或时间序列。对于与图像相关的任务,可以在大量图像上对CNN进行预训练以供进一步重用,然后替换全连接层并从头开始训练手头的任务,称为迁移学习的方法。

图2.5 CNN的一个例子

递归神经网络(Recursive Neural Network,RNN)有一个非常简单的基本思想,它能够存储网络的状态,因此它具有一些内存概念(见图2.6)。RNN的输出不仅取决于当前输入,还取决于先前所有的输入。RNN用于处理可变长度的序列,特别强调自然语言处理应用。然而,事实证明,由于长时间保持其记忆的能力有限,普通的RNN实现并不实用。

为了解决简单递归神经网络难以捕捉长期依赖关系的问题,研究人员提出了多种改进型的循环神经元结构。其中广为人知和使用的是长短期记忆(Long Short-Term Memory,LSTM)细胞 [ 2 ] 和门控循环单元(Gated Recurrent Unit,GRU) [ 3 ] 。这些改进型神经元在内部设计中引入了专门的门控机制,能够更好地控制和调节隐藏状态的传递和更新,从而增强捕获长期依赖关系的能力。类似的改进思路也被应用于常规前馈神经网络,从而产生各种网络架构如深度残差网络和高速公路网络,这些架构能够通过数百层传播信息(向前和向后),使信息能够更深层次地传递。这些网络对于图像处理任务变得非常高效。

图2.6 RNN的一个例子

由于DNN的模块化结构配备了通过反向传播的端到端训练,因此有无数种方法可以修改和组合各种DNN架构。例如,对于视频帧预测任务,CNN可用于将每个帧编码为低维向量(嵌入),如使用其全连接部分的顶部隐藏层的输出,而RNN应用于这些向量的顺序预测,最后可以使用反卷积神经网络将这些表示解码回图像。另一个例子是字幕生成任务,其中RNN用于处理文本输入,而CNN用于处理图像。有趣的是,一个同时考虑CNN和RNN的联合损失函数可以以无监督的方式用于在相同的低维向量空间中对图像和文本进行编码。在这种情况下,一张猫的图片和“猫”这个词最终会在这个嵌入空间中非常接近。

有人会说,深度学习已经变得如此突出,以至于几乎让一切都黯然失色。虽然它一直是人工智能作为热门话题重生的幕后推手,并得到谷歌、Facebook或亚马逊的巨大团队的支持,但还是建议读者们在这种解读中保持谨慎。深度学习在图像和声音方面显示出令人难以置信的结果,但在交通等涉及人类行为建模和模拟的领域还有很长的路要走。主要原因是DNN的可解释性较低(难以纳入先验知识和领域知识),稳定性问题,以及为估计提供统计特性的能力较差。

2.4 人工神经网络

由相互连接的神经元组成的计算系统被称为人工神经网络(ANN)。这些神经元的特性类似于生物神经元的特性。它们可以表现出复杂的全局行为,这取决于神经元的互连方式、它们的内部参数和功能。这些人工神经元通过不同的结构连接在一起。通过这些连接实现信号从一个神经元到另一个神经元的无缝传输。

ANN用于不同的现实生活应用,例如函数逼近、时间序列预测和分类、序列识别、数据处理、过滤和聚类、盲信号分离和压缩、系统识别和控制、模式识别、医学诊断、金融应用、数据挖掘、可视化和垃圾邮件过滤。

2.4.1 人工神经网络的历史

第一代ANN是基于阈值神经元,它产生二进制输出。如果输入的加权和高于阈值,则将该神经元视为“开”;否则,将其视为“关”。输入的性质是十进制数或浮点数。这些神经元的输出只是数字的,但它们已经成功地应用于ANN。第二代神经元利用连续的激活函数来计算其输出,这使得它们适合于模拟输入和输出。常用的激活函数有Sigmoid和双曲正切。第二代神经元被认为比第一代神经元更强。如果第二代的输出层使用第一代二进制单元,则与仅由第一代单元组成的网络相比,它们可以用于具有较少神经元的数字计算,还可以用来逼近任何模拟函数,从而使这些网络普遍用于模拟计算。第二代ANN单元的连续输出值可以用发火率模型来解释。该输出值表示神经元在响应特定输入模式时的归一化活跃程度。这就是为什么第二代神经元模型被认为是生物神经元的近似值,而且比第一代神经元模型更强大。

第三代ANN产生单独的输出脉冲,因此它们更接近生物神经元,可以使用脉冲编码机制来解释输出。神经元发送和接收单独的脉冲。第三代ANN有时被称为脉冲神经网络(Spiking Neural Network,SNN),如2.4.2节所述。它考虑了更广泛的神经编码机制,例如脉冲编码、速率编码以及两者的混合。

最近的实验结果表明,大脑皮层神经元可以以非常高的速度进行模拟计算。它还表明,人类对视觉输入的分析和分类发生在100ms以下。从视网膜到颞叶至少需要10个突触步骤,因此每个神经元的处理时间为10ms。对于处理信息的速率编码等平均机制来说,这个时间太短。因此,当速度成为问题时,脉冲编码方案被认为是最好的。

2.4.2 脉冲神经网络

生物神经元之间的相互作用通过称为动作电位或棘波的短脉冲发生。最近,研究人员表明,神经元可以编码这些脉冲的时间信息,而不是平均放电频率。这些SNN模型的实现就是在这一原则上进行的。在传统的ANN和SNN中,信息通常分布在权重矩阵中。利用突触后神经元和突触前神经元的脉冲时间间隔来调整SNN中的权值。只有通过突触的可塑性,才有可能处理快速的时间变化的刺激,这种处理方式是无法通过增加更多的神经元或连接来复制的。

2.4.3 操作模式

ANN可以在学习(训练)或测试模式下运行。一旦学习开始,网络从一组随机参数开始,不断更新权重和阈值,直到获得所需的解;然后参数被冻结并在测试过程中保持固定。在学习的自适应过程中,所有相互连接的神经元之间的权重都会更新,直到达到最佳点。网络的权重可以是浮点数或参数相关函数。

2.4.4 学习规则

用于调整负责学习信息的某些量的方法,通常是权重,称为学习规则。监督学习和无监督学习是学习的两种主要机制。当期望的输出结果用于指导神经参数的更新时,称为监督学习。而在无监督学习中,网络的训练完全依赖于输入数据,并且没有提供用于更新网络参数的目标结果,这些参数可用于从输入数据中提取特征。

反向传播和进化方法是两种传统的学习方法。在反向传播中,将输出和期望的结果进行比较,并将误差向后反映,以相应地更新ANN的权重。在进化方法中,性能最好的ANN的权重会稍微改变(通过变异或交叉)以产生下一组权重。以这种方式,获得了最佳性能权重。反向传播也用于具有输入层、隐藏层和输出层的多层感知器。成本函数是预定义的误差函数,可以通过将输出与反向传播中的目标进行比较来计算。成本函数由下式给出:

e = f d i -y i

式中, d i 为期望值; y i 为系统输出; e 为误差。

为了最小化误差,成本函数值被反馈,从而对神经网络中每个连接的权重进行调整,使整体误差不断减小。

梯度下降是一种优化方法,用减小净误差的方式调整权重。误差函数相对网络权重进行区分。根据判别的结果,调整权重以减小误差。正因为如此,反向传播被应用于具有可微激活函数的网络。

前馈神经网络的中间层单元可以通过反向传播算法进行训练。这些单元表示用于预测期望输出的输入向量的特征。该训练可以通过提供关于网络的实际输出和期望输出之间的差异的信息来执行,以便定制连接权重以减少差异。

2.5 神经网络架构

一般来说,一个ANN可以分为3个部分:

1)输入层:该层负责从外部环境接收信息(数据)、信号、特征或测量值。这些输入(样本或模式)通常在激活函数产生的极限值内进行归一化。这种归一化可以为网络执行的数学运算带来更好的数值精度。

2)隐藏层、中间层或不可见层:这些层由负责提取与被分析的过程或系统相关的模式的神经元组成。这些层从网络执行大部分内部处理。

3)输出层:该层也由神经元组成,因此负责产生和呈现最终的网络输出,这是由前几层中的神经元执行的处理产生的。

考虑到神经元的分布,神经元如何相互连接以及它的层的组成,人工神经网络的主要架构可以分为单层前馈网络、多层前馈网络、循环网络和网状网络。

2.5.1 单层前馈网络

这个ANN只有一个输入层和一个神经层,它也是输出层。图2.7展示了一个由 n 个输入和 m 个输出组成的单层前馈网络。

信息总是沿单一方向流动(单向),即从输入层到输出层。从图2.7可以看出,在这种架构的网络中,网络输出的数量总是与其神经元的数量一致。这些网络通常用于模式分类和线性过滤问题。

图2.7 单层前馈网络示例

使用前馈架构的主要网络类型有感知器和ADALINE,它们在训练过程中使用的学习算法分别基于Hebb规则和Delta规则。

2.5.2 多层前馈网络

与单层前馈网络不同,多层前馈网络由一个或多个隐藏神经层组成(见图2.8)。它们被用于解决与函数逼近、模式分类、系统识别、过程控制、优化、机器人技术等相关的问题。

图2.8 多层前馈网络示例

图2.8中,一个输入层具有 n 个样本信号,两个隐藏神经层分别由 n 1 n 2 个神经元组成,最后一个输出神经层由 m 个神经元组成,代表各自的输出值正在分析的问题。

使用多层前馈架构的主要网络有多层感知器(MLP)和径向基函数(Radial Basis Function,RBF),它们在训练过程中使用的学习算法分别基于广义delta规则和竞争delta规则。

从图2.8可以看出,构成第一个隐藏层的神经元数量通常与构成网络输入层的信号数量不同。事实上,隐藏层的数量和它们各自的神经元数量取决于网络映射问题的性质和复杂性,以及有关问题的可用数据的数量和质量。尽管如此,同样对于单层前馈网络,输出信号的数量将始终与相应层的神经元数量一致。

2.5.3 循环网络

在循环网络中,神经元的输出被用作其他神经元的反馈输入。反馈特性使这些网络有资格进行动态信息处理,这意味着它们可以用于时变系统,例如时间序列预测、系统识别和优化、过程控制等。

主要的反馈网络是Hopfield神经网络和感知器,它们在来自不同层的神经元之间进行反馈。它们在训练过程中使用的学习算法分别基于能量函数最小化和广义delta规则。

图2.9展示了一个带有反馈的感知器网络,其中一个输出信号被反馈到中间层。因此,使用反馈过程的网络产生的当前输出还考虑了先前的输出值。

图2.9 循环网络的示例

2.5.4 网状网络

网状网络的主要特征为,为了模式提取的目的而考虑神经元的空间排列,即神经元的空间局部化直接关系到其突触权重和阈值的调整过程。这些网络广泛应用于数据聚类、模式识别、系统优化、图表等问题。

Kohonen网络是网状体系结构的主要代表,其训练是通过竞争过程进行的。图2.10展示了Kohonen网络的一个例子,其中它的神经元排列在一个二维空间内。

从图2.10可以验证在该网络类别中,网络内所有神经元都读取了几个输入信号。

图2.10 Kohonen网络的结构

2.5.5 训练过程和学习特性

人工神经网络最显著的一个特征是,它能够从表示系统行为的样本数据(模式)中自主学习,捕捉输入与输出之间的映射关系。因此,在神经网络完成学习训练后,它可以对新的输入数据进行推广,生成与期望输出值接近的预测输出,而不仅限于训练数据本身。

神经网络通过一系列有序的计算步骤(也被称为学习算法),从训练数据样本中提取出被映射系统的判别特征模式。在学习算法的执行过程中,神经网络会逐步优化自身的参数,使其能够从输入数据到期望输出的映射中学习相关的判别知识。

通常,包含系统行为的所有可用样本的完整集被分为两个子集,称为训练子集和测试子集。训练子集由来自完整集合的60%~90%的随机样本组成,主要用于学习过程。测试子集(由完整样本集中的10%~40%组成)用于验证概括解决方案的网络能力是否在可接受的水平内,从而允许验证给定的拓扑。尽管如此,在确定这些子集的维度时,还必须考虑数据的统计特征。

在ANN的训练过程中,为了调整突触权值和阈值,训练集内所有样本的每一次完整呈现被称为训练纪元。

1.监督学习

在监督学习策略中,需要为给定的一组输入信号提供其对应的期望输出,也就是说,每个训练样本都由输入信号及其目标输出值组成。此后,它需要一个包含输入/输出数据的表,也称为属性表,表示过程及其行为。正是从这些信息中,神经结构将形成关于正在学习的系统的“假设”。

在这种情况下,监督学习的应用仅取决于该属性的可用性,并且它的行为就像是一位“教练”在教网络对于其输入提供的每个样本的正确响应是什么。

通过应用由学习算法本身执行的比较动作来持续调整网络的突触权重和阈值,所述比较动作监督所产生的输出相对于期望输出之间的差异,在调整过程中使用该差异。考虑到推广解决方案的目的,当这种差异在可接受的值范围内时,网络被认为是“训练完成”的。

事实上,监督学习是一种典型的纯归纳推理,网络的自由变量通过先验地知道被研究系统的期望输出来调整。

受神经生理学观察的启发,Donald Hebb于1949年提出了第一个有监督的学习策略 [ 4 ]

2.无监督学习

与监督学习不同,基于无监督学习的算法无须任何已知的期望输出标签。它仅依赖于输入数据本身的模式和内在结构,旨在自主发现数据中隐藏的规律性。

因此,当给定一组样本数据时,无监督学习算法的目标是让神经网络自发地探索和组织这些数据,识别出彼此相似的子集簇或者隐含类别。学习算法会自适应地调整神经网络中神经元之间的连接权重和激活阈值,使网络内部能够有效地对应和反映出这些天然存在的数据簇。

如果网络设计者基于先验知识或假设,能够预先估计出可能的最大簇类数量,也可以相应地设置神经网络的初始结构,辅助无监督学习的聚类过程。

无监督学习的一大优势在于,在没有标签数据的情况下也能够自主发掘数据中潜在的模式,这种探索性极强的特点使其能够应用于数据挖掘、异常检测、压缩和特征提取等领域。与监督学习相比,无监督学习通常难以获得确定、直接的输出预测,但能为后续的监督学习提供数据理解和特征表示的基础。

3.强化学习

基于强化学习的方法被认为是监督学习技术的一种变体,因为它们不断分析网络产生的响应与相应的期望输出之间的差异 [ 5 ] 。用于强化学习的学习算法依赖于通过与被映射的系统(环境)的交互获得的任何定性或定量信息来调整内部神经参数,并使用这些信息来评估学习性能。

网络学习过程通常通过反复试验来完成,因为对于给定输入的唯一可用响应是它是否令人满意。如果令人满意,突触权重和阈值会逐渐增加,以加强(奖励)与系统相关的这种行为条件。

强化学习使用的几种学习算法是基于概率选择调整动作的随机方法,如果它们有机会产生令人满意的结果,则可以得到奖励。在训练过程中,与动作调整相关的概率被修改以提高网络性能 [ 6 ]

这种调整策略与一些动态规划技术有一些相似之处 [ 7-8 ]

4.离线学习

离线学习也称为批处理学习,在呈现所有训练集之后调整网络的权重向量和阈值,每个调整步骤都考虑了相对于其输出的期望值在训练样本内观察到的误差的数量,则使用离线学习的网络需要至少一个训练时期来执行对其权重和阈值的一个调整步骤。在整个学习过程中,所有训练样本必须是可用的。

5.在线学习

与离线学习相反,在在线学习中,网络的权重和阈值的调整在呈现每个训练样本之后执行。在执行调整步骤之后,可以丢弃各个样本。

当被映射系统的行为快速变化时,采用离线学习是不切实际的,通常使用在线学习,因为在给定时刻使用的样本可能不再代表系统在后验时刻的行为。

然而,由于每次呈现一个模式,权重和阈值调整动作定位准确且准时,并且反映了系统的给定行为环境。因此,在提供了大量样本之后,该网络将开始生成准确的答复 [ 9 ]

本章习题

1.写出线上和线下学习的优点和缺点。

2.考虑一个具有四个输入和两个输出的应用程序。该应用程序的设计者指出,要开发的前馈网络必须在第一个隐藏层中恰好呈现四个神经元。讨论一下这个信息的针对性。

3.结合第2题,列举一些影响多层前馈网络隐藏层数确定的因素。

4.在循环网络和前馈网络之间观察到的最终结构差异是什么?

5.在哪些应用类别中必须使用循环神经网络?

6.画一个框图来说明监督训练的工作原理。

7.简述训练方法和学习算法的概念,进一步解释训练纪元的概念。

8.有监督和无监督训练方法之间的主要区别是什么?

9.监督学习方法和强化学习方法之间的主要区别是什么?

10.考虑一个特定的应用,解释什么性能标准可用于使用强化学习方法来调整网络的权重和阈值。

参考文献

[1]LECUN Y,BOTTOU L,BENGIO Y,et al.Gradient-based learning applied to document recognition[J].Proceedings of the IEEE,1998,86(11): 2278-2324.

[2]HOCHREITER S,SCHMIDHUBER J.Long short-term memory[J].Neural computation,1997,9(8): 1735-1780.

[3]CHO K,VAN MERRIËNBOER B,GULCEHRE C,et al.Learning phrase representations using RNN encoder-decoder for statistical machine translation[C]//Proceeding of the 2014 Conference on Empirical Methods in Natual Language Processing.Rockville: ACL 2014: 1724-1734.

[4]HEBB D O.The first stage of perception: growth of the assembly[J].The organization of behavior,1949,4: 60-78.

[5]DING Z,HUANG Y,YUAN H,et al.Introduction to reinforcement learning[J].Deep reinforcement learning: fundamentals,research and application,2020: 47-123.

[6]HINES J W,TSOUKALAS L H,UHRIG R E.MATLAB supplement to fuzzy and neural approaches in engineering[M].New York: John Wiley & Sons,1997.

[7]SUTTON R S,MCALLESTER D,SINGH S,et al.Policy gradient methods for reinforcement learning with function approximation[C]//Proceeding of the 12th International Conference on Neural Information Processing Systems.[S.l.]:NIPS,1999,1057-1063.

[8]WATKINS C J C H.Learning from delayed rewards[D].Cambridge: University of Cambridge,1989.

[9]ABRAHART R J.Neural network rainfall-runoff forecasting based on continuous resampling[J].Journal of hydroinformatics,2003,5(1): 51-61. 2d2LdKjE4dWXBH6reKgxhb9AMIJMqRUvIOlzs5eQPa7Lgsj/4ZwI0JcprtkrdbK7

点击中间区域
呼出菜单
上一章
目录
下一章
×