机器学习和神经网络 - 页 53

 

第1.5讲——三种学习类型



第 1.5 讲——三种学习类型[机器学习的神经网络]

在本视频中,我将讨论机器学习的三种主要类型:监督学习、强化学习和无监督学习。本课程将主要侧重于上半部分的监督学习和下半部分的无监督学习。不幸的是,由于时间限制,我们不会涵盖强化学习。

监督学习涉及预测给定输入向量的输出。目标是准确预测实数或类别标签。回归处理实数,例如预测股票价格,而分类涉及分配标签,例如区分正例和负例或识别手写数字。监督学习依赖于模型类,它是一组候选模型,由使用数值参数 (W) 将输入映射到输出的函数表示。调整这些参数以最小化预测输出 (Y) 和正确输出 (t) 之间的差异。

强化学习侧重于选择动作或动作序列以最大化收到的奖励。根据偶尔的奖励选择行动,目标是最大化未来奖励的预期总和。通常使用折扣因子来优先考虑即时奖励而不是遥远的奖励。由于奖励延迟和标量奖励传达的信息有限,强化学习面临挑战。

课程后半部分将广泛介绍的无监督学习涉及发现输入数据的有用内部表示。多年来,无监督学习被忽视而倾向于聚类,因为定义无监督学习的目标具有挑战性。然而,无监督学习有多种用途,包括创建有利于后续监督学习或强化学习的内部表征。它旨在通过识别底层流形来生成高维输入(例如图像)的紧凑、低维表示。无监督学习还可以使用学习到的特征提供经济的表示,其中输入可以用二进制或稀疏代码表示。此外,无监督学习包含聚类,这可以看作是寻找稀疏特征的一种极端情况,每个聚类有一个特征。

本视频涵盖机器学习的三种主要类型:监督学习、强化学习和无监督学习。监督学习侧重于预测输出,而强化学习则以通过行动选择最大化奖励为中心。无监督学习旨在发现有用的内部表示,例如低维表示或学习特征,并包括底层集群的识别。

 

第 2.1 讲——神经网络架构的类型



第 2.1 讲——神经网络架构的类型 [机器学习的神经网络]

神经网络可以有不同类型的架构,这指的是神经元是如何连接的。实际应用中最常见的架构是前馈神经网络,其中信息从输入单元通过隐藏层流向输出单元。另一方面,递归神经网络更有趣,因为它们允许信息循环流动,从而实现长期记忆和复杂的动态。由于其复杂性,训练循环网络具有挑战性,但最近的进展使它们更易于训练并且能够完成令人印象深刻的任务。

另一种架构是对称连接的网络,其中单元之间的权重在两个方向上都相同。这些网络遵循能量函数,与循环网络相比更容易分析。但是,它们的能力受到更多限制,无法对周期进行建模。

在前馈神经网络中,每一层计算输入和输出之间的转换,从而在每一层产生新的表示。非线性函数应用于每一层神经元的活动,以捕获输入之间的相似性和不同性。相比之下,递归神经网络在其连接图中利用有向循环,允许复杂的动态和顺序数据建模。每个时间步使用相同的权重,隐藏单元的状态决定下一个时间步的状态。

循环神经网络具有在隐藏状态下长时间记住信息的能力,但训练它们利用这种能力具有挑战性。然而,最近的算法在训练递归网络方面取得了重大进展。这些网络可用于预测序列中的下一个字符、生成文本或对序列数据建模等任务。

总的来说,神经网络架构的连接和功能各不相同,从用于直接计算的前馈网络到用于记忆和复杂动力学的循环网络。

 

第 2.2 讲——感知器:第一代神经网络



第 2.2 讲——感知器:第一代神经网络 [机器学习神经网络]

感知器是一类机器学习算法,在 1960 年代初首次受到研究。最初,它们显示出作为学习设备的巨大潜力,但后来它们的局限性被 Minsky 和 Papert 揭示出来,导致它们的受欢迎程度下降。 Minsky 和 Papert 证明了感知器在统计模式识别任务中学习复杂模式的能力相当有限。

在统计模式识别领域,遵循一种标准方法来识别模式。首先,原始输入数据被处理并转换为一组或特征激活向量。这种转换是使用基于常识的预定义程序完成的,其中人类的专业知识决定了哪些特征与手头的任务相关。需要注意的是,这个预处理阶段不涉及学习。选择合适的特征是至关重要的一步,通常需要反复试验。尝试了不同的特征,并评估了它们的有效性。通过这个迭代过程,最终确定了一组特征,使后续的学习阶段能够有效地解决问题。

统计模式识别的学习阶段涉及确定与每个特征激活相关的权重。这些权重表示每个特征提供的支持或反对当前输入属于特定模式或类别的假设的证据强度。通过对加权特征激活求和,获得总证据得分,并将其与阈值进行比较。如果证据超过阈值,则输入向量被归类为被识别模式的正例。

感知器是一种特定类型的统计模式识别系统。虽然存在各种类型的感知器,但标准形式(被 Rosenblatt 称为 alpha 感知器)由转换为特征激活的输入单元组成。这种转变可能类似于神经元的行为,但重要的是要注意系统的这个阶段不涉及学习。一旦获得特征激活,就可以使用学习算法学习权重。

感知器在 1960 年代因弗兰克·罗森布拉特 (Frank Rosenblatt) 的工作而声名鹊起,他在他的著作《神经动力学原理》(Principles of Neurodynamics) 中对感知器进行了广泛研究和描述。这本书介绍了不同种类的感知器,并充满了创新思想。最显着的贡献之一是与感知器相关的强大学习算法,人们对其能力抱有很高的期望。

然而,当人们发现感知器的学习算法存在局限性时,最初对感知器的热情遭到了质疑。例如,有人夸大了他们区分部分模糊的坦克和卡车图片的能力。当人们发现感知器只是测量像素的总强度时,这些说法就被揭穿了,而人类执行的这项任务具有更高的灵敏度。这种误解玷污了感知器的声誉,并导致人们对整个神经网络模型的有效性产生怀疑。

1969 年,Minsky 和 Papert 出版了一本名为“感知器”的开创性著作,批判性地分析了感知器的能力并强调了它们的局限性。然而,更广泛的人工智能领域错误地将这些限制外推到所有神经网络模型。人们普遍认为,Minsky 和 Papert 已经证明神经网络模型不切实际,无法学习复杂的任务。实际上,Minsky 和 Papert 的发现是针对他们所研究的感知器的,并没有否定神经网络作为一个整体的潜力。

值得注意的是,我们稍后将探讨的感知器收敛过程今天继续广泛用于涉及大型特征向量的任务。事实上,像谷歌这样的大公司使用基于感知器的算法来预测基于大量特征的结果。

感知器中的决策单元是二元阈值神经元,这是一种以前在神经网络模型中遇到过的神经元。为了刷新我们的理解,这些神经元计算从其他神经元接收到的输入的加权和,添加偏置项,如果总和超过零则生成输出 1,否则生成输出 0。

为了简化学习过程,可以通过使用常数值 1 的附加输入来扩充每个输入向量,将偏差视为权重。通过这样做,偏差被合并为这个额外输入行的权重,消除了对偏差的单独学习规则的需要。本质上,偏差相当于一个权重,其值为阈值的负值。

现在,让我们探索感知器的学习过程,它非常强大并且可以保证收敛到一个解决方案。但是,重要的是要考虑有关其保证的一些注意事项,这将在后面讨论。

首先,我们在每个输入向量中包含一个值为 1 的额外组件。然后我们可以关注权重并忽略偏差,因为它们现在被视为附加输入行上的权重。训练案例是根据确保每个案例都在合理时间范围内选择的任何政策来选择的,尽管“合理时间”的准确定义可能因上下文而异。

选择训练案例后,我们评估感知器生成的输出并将其与预期输出进行比较。如果输出正确,表明感知器的决定与所需的分类一致,我们将保持权重不变。但是,如果输出不正确,我们会根据以下规则调整权重:

  1. 如果输出在应该为 1 时为 0(即感知器错误地拒绝输入),我们将输入向量添加到感知器的权重向量。
  2. 如果输出为 1 而它应该为零(即感知器错误地接受输入),我们从感知器的权重向量中减去输入向量。

值得注意的是,这个简单的学习过程可以保证找到一组权重,为每个训练案例产生正确的输出。但是,必须满足一个重要条件:必须存在一组可行的权重,可以正确地对所有训练案例进行分类。不幸的是,对于许多有趣的问题,可能不存在这样一组可行的权重。

一组可行的权重的存在在很大程度上取决于所使用的特征的选择。对于许多问题,关键的挑战在于确定最合适的特征来捕获相关模式。如果选择了正确的特征,学习过程就会变得可行和有效。另一方面,如果选择的特征不充分,学习就变得不可能,主要焦点就会转移到特征选择上。

总之,感知器在神经网络模型的早期发展中发挥了重要作用。虽然 Minsky 和 Papert 揭示了他们的局限性,但重要的是要注意他们的发现是针对他们检查的感知器的,并且并未否定神经网络的更广泛潜力。感知器收敛过程仍然是一个有价值的工具,特别是对于涉及大特征向量的任务。然而,模式识别成功的关键在于选择合适的特征,因为使用正确的特征极大地促进了学习过程,而使用不当的特征则可能导致学习无法进行。

 

第 2.3 讲——感知器的几何视图



第 2.3 讲——感知器的几何视图 [机器学习神经网络]

在本视频中,我们将深入探讨感知器如何学习的几何理解。为此,我们需要考虑权重空间,这是一个高维空间,其中每个点对应于所有权重的特定配置。在这个空间中,我们可以将训练案例表示为平面,学习过程涉及将权重向量定位在所有训练平面的正确一侧。

对于那些不精通数学的人来说,这可能比以前的材料更具挑战性。可能需要投入充足的时间来理解即将到来的内容,特别是如果您不熟悉高维空间中超平面的思考。您需要首先想象一个 3 维空间,然后用声音提醒自己这个维度,从而熟悉 14 维空间的想象。这可能看起来很奇怪,但这是帮助理解的常见做法。

在处理 14 维空间中的超平面时,复杂度显着增加,类似于从 2D 空间过渡到 3D 空间。了解 14 维空间广阔而复杂这一点至关重要。考虑到这一点,让我们首先关注权重空间。

权重空间是感知器中每个权重都有一个维度的空间。假设我们已经消除了阈值,权重空间中的一个点代表所有权重的特定配置。每个训练案例都可以表示为一个通过权重空间原点的超平面。因此,该空间中的点对应于权重向量,而训练案例对应于平面。

对于特定的训练案例,权重必须位于超平面的一侧才能产生正确的输出。让我们通过一个例子来形象化这个概念。考虑一个训练案例,其中正确答案是一个。权重向量需要与训练向量指示的方向位于超平面的同一侧。该侧的任何权重向量与输入向量的夹角都小于 90 度,从而产生正标量积。由于我们已经消除了阈值,感知器将输出一个,提供正确答案。

相反,如果权重向量位于平面的错误一侧,它与输入向量的角度将超过 90 度,产生负标量积。因此,感知器将输出零,从而导致错误的答案。

总而言之,平面一侧的权重向量会产生正确的答案,而另一侧的权重向量会产生错误的答案。现在,让我们检查一个不同的训练案例,其中正确答案为零。

在这种情况下,任何与输入向量夹角小于 90 度的权重向量都会产生正标量积,导致感知器输出 1,从而导致错误答案。相反,平面另一侧的权重向量,角度超过 90 度,将产生小于零的标量积,感知器将输出零,从而正确提供答案。

让我们将这两个训练案例结合到一张权重空间图片中。权重空间变得拥挤,并且出现了一个可能的权重向量锥。该圆锥内的任何权重向量都会为两种训练案例产生正确答案。值得注意的是,这种圆锥体的存在并不能保证。可能存在没有权重向量为所有训练案例提供正确答案的情况。但是,如果存在这样的权重向量,它们将形成一个圆锥体。

学习算法一个一个地考虑训练案例,调整权重向量最终位于这个圆锥内。重要的是要观察,如果我们有两个适用于所有训练案例的良好权重向量,那么它们的平均值也会位于圆锥内。这意味着问题是凸的,两个解的平均值本身就是一个解。凸学习问题简化了机器学习的过程。

了解权重空间以及权重向量与训练案例之间的关系,可以从几何角度深入了解感知器的学习方式。目标是找到一个位于可能解决方案锥内的权重向量,以确保对所有训练案例进行正确分类。

 

第 2.4 讲——为什么学习有效



第 2.4 讲 — 为什么学习有效 [机器学习的神经网络]

在本视频中,我们旨在证明感知器学习过程最终会导致权重收敛在可行解的锥形范围内。但是,我想强调的是,本课程主要侧重于工程方面,而不是严格的证明。在整个课程中将很少有证明。然而,了解感知器最终如何找到正确答案提供了有价值的见解。

为了构建我们的证明,我们将利用我们对权重空间和感知器学习过程的几何理解。我们假设存在一个可行的权重向量,它可以为所有训练案例产生正确的答案。在图中,这由绿点表示。

我们证明中的关键思想是,每次感知器对训练案例进行错误分类时,当前权重向量都会以一种更接近所有可行权重向量的方式进行更新。我们可以测量当前权重向量与可行权重向量之间的平方距离,作为沿输入向量线(训练案例的定义)的平方距离与与该线正交的另一个平方距离之和。正交平方距离保持不变,而沿输入向量线的距离减小。

虽然这种说法看起来很有希望,但我们遇到了图中黄金可行权重向量所说明的问题。它恰好位于由其中一个训练案例定义的平面的右侧,而当前权重向量位于错误的一侧。此外,输入向量相对较大,导致输入向量的添加使当前权重向量远离黄金可行权重向量。结果,我们最初的索赔失败了。

然而,我们可以通过引入一个非常可行的权重向量的概念来纠正这个问题。这些权重向量不仅对所有训练案例进行了正确分类,而且对每个案例的边距等于或大于输入向量的长度。在可行解锥内,我们还有另一个非常可行的解锥。

通过这种调整,我们的证明变得有效。我们现在可以声称,每次感知器对一个案例进行错误分类时,到所有广泛可行的权重向量的平方距离至少会减少输入向量的平方长度。此更新确保权重向量更接近于大量可行的解决方案。

虽然我们不会在这里提供正式的证明,但这个非正式的草图展示了收敛过程。如果输入向量不是无穷小,则在有限次数的错误之后,到所有慷慨可行的权重向量的平方距离至少会减少输入向量的平方长度。因此,假设权重向量存在,它最终必须位于可行区域内。它不一定非要位于宽大的可行域内,但至少要在可行域内,以避免再犯错误。

总而言之,这是证明感知器收敛过程有效的证明的非正式概述。然而,需要注意的是,整个证明依赖于存在一个非常可行的权重向量的假设。如果这样的向量不存在,则证明不成立。

 

第 2.5 讲——感知器不能做什么



第 2.5 讲——感知器不能做什么 [机器学习的神经网络]

在本视频中,我们将探讨感知器的局限性,这些局限性源于所使用的特征类型。感知器的有效性在很大程度上取决于特征的选择。有了正确的特征,感知器可以变得非常灵活,但如果特征不正确,它们的学习能力就会受到严重限制。这种限制导致感知器在过去失宠。它突出了学习适当特征的挑战,这是学习过程的关键方面。

然而,即使不学习特征,感知器仍然可以取得很多成就。例如,在确定英语句子的合理性等任务中,人们可以手动定义大量特征并学习它们的权重,以确定句子语法正确的可能性。然而,从长远来看,学习特征是必要的。

感知器研究在 60 年代末和 70 年代初遇到挫折,当时人们发现感知器有很大的局限性。通过手动选择特征并结合足够的特征,感知器几乎可以完成任何任务。例如,如果我们考虑二进制输入向量并创建基于特定二进制输入向量激活的单独特征单元,我们可以实现对二进制输入向量的任何区分。然而,这种方法对于解决现实世界的问题是不切实际的,因为它需要过多的特征单元,阻碍了泛化。试图从一个案例子集中进行概括而忽略其他案例是徒劳的,因为其余案例将需要新的特征单元,并且一旦手动选择完成,确定这些新特征单元的权重就具有挑战性。

一旦建立了特征单元及其权重,对感知器可以学习的内容有严格的限制。让我们通过一个经典示例来了解这些限制。我们想确定二元阈值决策单元是否可以学习识别两个特征是否具有相同的值。我们有两个正例和两个负例,每个例都由值为 1 或 0 的单比特特征定义。正例发生在两个特征都打开 (1) 或两个特征都关闭 (0) 时,而负例当一个特征开启 (1) 而另一个特征关闭 (0) 时,就会出现这种情况。这个任务看起来很简单,但从代数上来说,可以证明不可能满足由这些输入-输出对形成的所有四个不等式。因此,不可能找到允许感知器为所有四种情况提供正确输出的权重。

这种限制也可以从几何学上理解。我们想象一个数据空间,其中每个点代表一个数据点,权重向量定义垂直于数据点的平面。为了正确区分,权重平面应该将正例与负例分开。然而,有些训练案例集不是线性可分的,这意味着没有超平面可以正确地将输出应为 1 的案例与输出应为 0 的案例分开。这种无法正确分离案例的情况被称为“一组线性不可分的训练案例。”

感知器的另一个破坏性示例涉及识别即使在使用环绕转换时仍保留其身份的模式。如果辨别需要与转换和包装模式一起使用,则感知器无法区分具有相同像素数的模式。当考虑模式 A 和 B 时,此限制变得明显。模式 A 有四个“开”像素排列成条形码形状,模式 B 也有四个“开”像素排列不同。当使用环绕式翻译时,感知器无法学会区分这些模式。 Minsky 和 Papert 的群不变性定理指出,如果允许环绕,则感知器无法识别翻译下的模式。这个定理在感知器的历史上特别重要,因为模式识别的目的是识别模式,尽管存在转换等转换。

该定理揭示了感知器,正如它们最初制定的那样,无法处理需要具有环绕的平移不变性的模式识别任务。这种限制极大地限制了它们的实际应用,并导致 20 世纪 60 年代末和 70 年代初人们对感知器的兴趣和研究下降。但是,请务必注意,这些限制仅适用于具有二进制阈值单元的单层感知器。随着多层感知器 (MLP) 和卷积神经网络 (CNN) 等更高级模型的开发,人工神经网络领域不断发展并克服了这些限制。 MLP 在输入层和输出层之间引入隐藏层,允许更复杂和灵活的特征表示。通过合并非线性激活函数并使用反向传播等技术进行权重调整,MLP 可以克服单层感知器的线性可分性限制。

另一方面,CNN 是专门为解决模式识别和图像分类问题而设计的。他们采用分层结构,其中卷积层提取局部特征,池化层捕获空间不变性。 CNN 在图像识别、目标检测和自然语言处理等任务中取得了显着的成功。

感知器的局限性突出了神经网络中特征学习、非线性和层次表示的重要性。该领域的后续进展导致了更复杂模型的开发,这些模型具有改进的学习能力和更广泛的应用。

虽然感知器在学习复杂特征和处理某些模式识别任务的能力方面存在局限性,但这些局限性已通过开发更先进的神经网络架构得到解决。 MLP 和 CNN 等模型克服了单层感知器的限制,成为人工智能各个领域的强大工具。

 

第 3.1 讲——学习线性神经元的权重



第 3.1 讲——学习线性神经元的权重 [机器学习的神经网络]

他的视频介绍了线性神经元的学习算法,它实现了与感知器学习算法不同的东西。在感知器中,权重总是越来越接近一组好的权重,而在线性神经元中,输出总是越来越接近目标输出。

感知器收敛过程确保改变权重使我们更接近一组好的权重。然而,这种保证不能扩展到更复杂的网络,因为平均两组好的权重可能会导致一组不好的权重。因此,对于多层神经网络,我们不使用感知器学习过程,学习过程中的改进证明也不同。

多层神经网络,通常称为多层感知器 (MLP),需要不同的方法来显示进度。我们没有证明权重更接近一组好的权重,而是证明实际输出值更接近目标输出值。这甚至适用于非凸问题,其中两个好的解决方案的权重平均不会产生好的解决方案。

线性神经元的学习算法通过玩具示例进行说明。它涉及从对部分价格的随机猜测开始,然后迭代地调整这些猜测以适应观察到的价格。迭代方法使用 delta 规则根据学习率、部分数和残差更新权重。

Delta 规则是通过将误差度量相对于其中一个权重进行微分而得出的。学习规则指出,权重的变化等于学习率乘以输入值以及目标和实际输出之间的差异。通过迭代应用增量规则,可以调整权重以最小化误差。

使用 delta 规则的学习过程并不能保证个体权重总是会提高。然而,目标产出与估计产出之间的差异往往会有所改善。学习率决定了学习的速度,如果学习率足够小,权重可以接近给定训练案例的最佳近似值。

重要的是要注意,即使对于线性系统,学习过程也可能很慢,尤其是当输入维度高度相关时。在这种情况下,确定每个输入维度应分配多少权重变得具有挑战性。此外,在线版本的 delta 规则与感知器学习规则之间存在相似性,其中权重向量根据输入向量和误差进行调整。但是,delta 规则结合了学习率和残差。选择合适的学习率对于稳定高效的学习至关重要。

为线性神经元描述的迭代学习过程可以收敛到最小化误差度量的解决方案。但是,请务必注意,可能没有完美的解决方案可以完全匹配所有训练案例的所需输出。相反,目标是找到一组权重,以提供最佳近似值并最小化所有训练案例中的误差度量。通过使学习率足够小并允许学习过程持续足够长的时间,我们可以接近这个最佳近似值。

学习速度可能会有所不同,即使对于线性系统也是如此。当两个输入维度高度相关时,就很难确定应该为每个输入维度分配多少权重。例如,如果番茄酱和薯条的份数始终相同,则学习过程可能需要很长时间才能为每个成分正确分配价格。

有趣的是,delta 规则和感知器的学习规则之间存在关系。增量规则的在线版本,其中权重在每个训练案例后更新,与感知器学习规则有相似之处。在感知器学习中,权重向量随输入向量递增或递减,但仅在发生错误时才会发生。在 delta 规则的在线版本中,权重向量也由输入向量调整,但由残差和学习率缩放。

使用 delta 规则的一个挑战是选择合适的学习率。如果学习率太大,系统可能会变得不稳定,从而难以收敛到一个解。另一方面,如果学习率太小,学习过程可能会花费不必要的长时间才能达到一组合理的权重。

线性神经元的学习算法旨在最小化目标输出与实际输出之间的误差。它使用 delta 规则迭代调整权重,该规则结合了学习率、输入值以及目标和实际输出之间的差异。尽管学习过程可能很慢并且权重可能不会单独提高,但总体目标是接近给定训练案例的最佳近似值。

 

第 3.2 讲——线性神经元的误差曲面



第 3.2 讲——线性神经元的误差表面 [机器学习神经网络]

在本视频中,我们将探索线性神经元的误差面,从而深入了解学习过程。通过可视化这个表面,我们可以从几何角度理解线性神经元中的权重是如何学习的。我们考虑的空间类似于感知器中使用的权重空间,但多了一个维度。

想象一个空间,水平维度代表权重,垂直维度代表误差。在这个空间中,不同的权重设置表示为水平面上的点,每个点的高度对应于与该权重设置相关的误差,在所有训练案例中求和。对于线性神经元,每个权重设置的误差定义了一个误差曲面,它采用二次碗的形式。误差表面的垂直横截面总是产生抛物线,而水平横截面形成椭圆。请务必注意,此行为仅适用于具有平方误差的线性系统。随着我们转向多层非线性神经网络,误差面变得更加复杂。

当权重保持在合理范围内时,误差表面保持平滑但可能有许多局部最小值。为了便于学习,我们采用了 delta 规则,该规则涉及计算误差相对于权重的导数。与该导数成比例地调整权重等同于在误差曲面上执行最速下降。从上方查看误差表面会发现椭圆轮廓线。三角洲规则引导我们垂直于这些等高线。在批量学习中,梯度是在所有训练案例上计算的,delta 规则引导我们朝着正确的方向前进。然而,我们也可以采用在线学习,其中权重在每个训练案例后更新,类似于感知器。在这种情况下,权重变化将我们移向由训练案例形成的约束平面。

通过在训练案例之间交替,我们可以向约束线相交的解决方案点曲折,指示满足两种情况的权重。此外,检查错误面使我们能够了解导致学习缓慢的条件。如果代表等高线的椭圆被高度拉长,这发生在对应于两个训练案例的线几乎平行时,梯度表现出不利的特性。梯度在我们不想走得太远的方向变大,在我们想要取得重大进展的方向变小。这种不匹配阻碍了有效的学习,并使得沿着其细长轴穿过错误表面的沟壑状结构变得具有挑战性。

可视化线性神经元的误差面可以为学习过程提供有价值的见解。了解表面的几何形状有助于我们掌握 delta 规则的行为及其对学习速度的影响。

 

第 3.3 讲 — 逻辑输出神经元的学习权重


第 3.3 讲 — 逻辑输出神经元的学习权重 [机器学习神经网络]

要将学习规则从线性神经元扩展到非线性神经元的多层网络,我们需要采取两个步骤。首先,我们需要概括单个非线性神经元的学习规则,特别是逻辑神经元。虽然使用逻辑神经元作为示例,但也可以使用其他类型的非线性神经元。

逻辑神经元计算它的 logit,表示为 z,它是它的偏差和它的输入线的加权和的总和。表示为 y 的输出是 logit 的平滑非线性函数。在图中,可以观察到函数在 z 大且为负时趋近于零,在 z 大且为正时趋近于 1,并且在两者之间表现出平滑和非线性的变化。逻辑函数的连续性为学习提供了方便的导数。为了获得逻辑神经元关于权重的导数(这对学习至关重要),我们首先计算 logit 本身关于权重的导数。该导数简化为输入行上的值,表示为 xi。类似地,logit 对 xi 的导数就是权重 wi。

输出关于 logit 的导数可以用输出本身来表示。具体来说,如果输出表示为 y,则 dy/dz 由 y * (1 - y) 给出。该结果的数学推导在下一张幻灯片中提供,它涉及繁琐但直接的计算。获得输出对 logit 的导数和 logit 对权重的导数后,我们现在可以确定输出对权重的导数。通过应用链式法则,我们将 dz/dw 作为 xi,将 dy/dz 作为 y * (1 - y)。因此,我们得出了一个与 delta 规则非常相似的逻辑神经元学习规则。

当我们修改权重时,误差的变化表示为 de/dwi,它是通过对所有训练案例 (n) 求和输入行上的值 (xin) 与残差的乘积而获得的,残差是神经元的目标输出和实际输出。然而,还有一个源于逻辑函数斜率的附加项,即 yn * (1 - yn)。通过对 delta 规则的这种轻微修改,我们得出了用于训练逻辑神经元的梯度下降学习规则。

通过将梯度下降学习规则应用于逻辑神经元,我们可以有效地训练非线性神经元的多层网络。这将学习规则扩展到线性系统之外,使我们能够处理更复杂的任务。为了解此学习规则在多层网络环境中的工作原理,让我们以一个简单的两层网络为例。我们有一个包含多个神经元的输入层和一个包含单个逻辑神经元的输出层。层之间的权重表示为 W,偏差表示为 b。

学习过程包括两个步骤。首先,我们计算给定输入的网络输出。这是通过在网络中向前传播输入、将逻辑函数应用于每个神经元的总输入 (logit) 并获得最终输出来完成的。接下来,我们使用链式法则计算误差相对于权重的梯度。从输出层开始,我们计算误差对输出的导数,简单来说就是目标输出与网络实际输出的差值。然后我们通过网络向后传播这个误差梯度,将它乘以逻辑函数在每个神经元的导数以获得隐藏层的梯度。最后,我们使用计算出的梯度和学习率更新权重。学习率决定了权重更新中的步长,可以通过调整来控制学习的速度。权重更新遵循等式:ΔW = learning_rate * error_gradient * input,其中ΔW表示权重的变化。

这个前向传播、错误反向传播和权重更新的过程在一定数量的时期内迭代重复,或者直到网络达到所需的性能水平。通过迭代调整权重,网络逐渐学会做出更好的预测或更准确地对输入进行分类。重要的是要注意,我们讨论的逻辑神经元学习规则也可以推广到其他类型的非线性激活函数。关键是准确计算激活函数的导数,以通过网络有效地传播误差梯度。

通过将学习规则从线性神经元扩展到逻辑神经元并将其应用于多层网络,我们可以训练复杂的非线性模型。这使我们能够通过基于误差梯度迭代调整权重来解决范围广泛的任务,包括模式识别、分类和回归。

 

第 3.4 讲——反向传播算法



第 3.4 讲——反向传播算法 [机器学习的神经网络]

现在我们已经介绍了预备知识,让我们深入研究学习多层特征的核心问题。在本视频中,我们将最终介绍反向传播算法,该算法出现于 1980 年代,引发了人们对神经网络的兴趣。

在我们深入研究反向传播之前,让我们首先讨论另一种算法,它不是那么有效但值得一提。一旦我们知道如何学习逻辑单元的权重,下一个挑战就是学习隐藏单元的权重。没有隐藏单元的神经网络在它们可以建模的输入输出映射方面受到限制。虽然一层手动编码的功能(例如在感知器中)增强了网络的功能,但为新任务设计这些功能仍然是一个困难的手动过程。

理想情况下,我们希望自动化特征设计循环,让计算机找到好的特征,而不需要人类的洞察力或反复试验和错误。这就是通过扰动权重进行学习的概念浮现在脑海中的地方。随机扰动权重类似于突变,我们可以观察它是否提高了网络的性能。如果性能提高,我们会保存权重变化,类似于强化学习的一种形式。

然而,这种方法非常低效。为了评估改变权重是否改善了网络,需要对一组有代表性的训练案例进行多次前向传递。基于单个训练案例评估体重变化的影响是不够的。此外,随着学习的进行,权重的较大变化往往会使事情变得更糟,因为权重之间的适当相对值至关重要。在学习快要结束时,不仅评估每个重量变化非常耗时,而且变化本身必须很小。

有一些更好的方法可以使用扰动进行学习。一种方法是并行扰动所有权重,然后将性能增益与权重变化相关联。然而,这种方法没有提供显着的改进。挑战在于需要对所有权重进行不同随机扰动的大量试验,以在更改其他权重引起的噪音中隔离更改一个权重的影响。

显示出一些改进的另一种方法是随机扰乱隐藏单元的活动而不是权重。一旦确定在特定训练案例上扰动隐藏单元的活动可以提高性能,就可以计算权重变化。由于活动比权重少,因此算法变得更有效。然而,反向传播在效率上仍然优于这些方法,其系数等于网络中神经元的数量。

反向传播背后的核心思想是,虽然我们可能不知道隐藏单元应该做什么(因此称为“隐藏”),但我们可以计算当我们修改隐藏单元在特定训练案例中的活动时误差变化的速度。我们没有使用隐藏单元的活动作为期望状态,而是利用关于活动的误差导数。由于每个隐藏单元都可以影响多个输出单元,因此需要组合其效果,这可以有效地完成。

为了总结单个训练案例的反向传播算法,我们首先将误差定义为输出单元的目标值与网络产生的实际值之间的平方差。通过对该误差进行微分,我们获得了误差如何随输出单元的输出而变化的表达式。然后我们可以计算隐藏单元的误差导数,方法是使用先前计算的上一层的误差导数对来自隐藏单元的所有传出连接的影响求和。

反向传播算法允许我们有效地将误差导数从一层传播到前一层。一旦我们有了隐藏单元的误差导数,我们就可以很容易地计算进入隐藏单元的权重的误差导数。这是通过将相对于单元接收到的总输入的误差导数乘以下层单元的活动来完成的。权重的计算误差导数表示当我们修改特定权重时误差如何变化。

现在,让我们概述一下单个训练案例的反向传播算法所涉及的步骤:

  1. 将误差定义为目标值与网络实际输出值之间的平方差。

  2. 通过应用链式法则计算关于每个输出单元的输出的误差导数,这涉及将输出关于总输入的导数乘以关于输出的误差导数。

  3. 通过对来自隐藏单元的所有传出连接的影响求和,计算关于每个隐藏单元的输出的误差导数。这涉及将每个连接上的权重乘以在上层计算的误差导数。

  4. 对所有隐藏层重复步骤 3,通过网络向后传播误差导数。

  5. 计算进入每个单元的权重的误差导数。这是通过将相对于单元接收到的总输入的误差导数乘以下层单元的活动来完成的。

通过遵循这些步骤,我们可以基于单个训练案例有效地计算网络中所有权重的误差导数。反向传播算法使我们能够理解修改每个权重如何影响整体误差并促进学习过程。理解和实施反向传播算法对于训练具有多层特征的深度神经网络至关重要。虽然这种解释可能需要仔细研究,但掌握基本概念和计算对于在神经网络训练中有效利用反向传播至关重要。

一旦我们使用反向传播算法计算出网络中所有权重的误差导数,我们就可以使用此信息来更新权重并提高网络性能。此过程称为权重调整或权重更新。权重更新通常涉及使用优化算法,例如梯度下降,以迭代方式在最小化误差的方向上调整权重。基本思想是通过减去相应误差导数的一小部分乘以学习率参数来更新每个权重。

学习率决定了权重空间中的步长,影响了训练过程的收敛速度。选择合适的学习率对于保证稳定高效的学习很重要。学习率太大会导致权重发散,而学习率太小会导致收敛缓慢。在权重更新过程中,通常会小批量甚至一次更新单个训练示例的权重。这种方法被称为随机梯度下降或小批量梯度下降,它有助于加快学习过程并避免陷入局部最优。

权重更新过程通常重复多个时期,其中每个时期包括遍历整个训练数据集。这允许网络根据来自多个训练示例的累积误差逐渐调整权重,从而提高其泛化性能。重要的是要注意反向传播和权重更新是在神经网络的训练阶段执行的。一旦网络经过训练,它就可以用于对新的、看不见的数据进行预测,只需通过网络输入输入并获得输出即可。

反向传播和学习多层特征的能力对于深度学习的成功至关重要。借助反向传播算法,神经网络可以自动学习数据的复杂表示,从而使其能够解决范围广泛的任务,包括图像和语音识别、自然语言处理等。

反向传播算法是一种有效计算多层神经网络误差导数的强大技术。通过网络向后传播误差信息,我们可以确定权重的变化如何影响整体误差。然后使用此信息迭代更新权重,使网络能够随着时间的推移学习和改进其性能。