关于机器学习:神经网络泛化

1次阅读

共计 3621 个字符,预计需要花费 10 分钟才能阅读完成。

每当咱们训练本人的神经网络时,咱们都须要留神称为神经网络的 泛化 的问题。从实质上讲,这意味着咱们的模型在从给定数据中学习以及将所学信息利用到其余方面有多杰出。

在训练神经网络时,将有一些数据在神经网络上进行 训练, 并且还将保留一些数据以查看神经网络的性能。如果神经网络在 尚未 训练的数据上体现良好,那么能够说它在给定数据上的 推理成果很好。让咱们通过一个例子来了解这一点。

假如咱们正在训练一个神经网络,该神经网络应该通知咱们给定图像是否有狗。假如咱们有几只狗的图片,每只狗属于某个种类,并且这些图片中总共有 12 个种类。我将保留 10 个种类的狗的所有图像进行训练,而这 2 个种类的其余图像将临时保留。

当初,在进入深度学习之前,让咱们从人类的角度来对待这一点。让咱们思考一个毕生中从未见过狗的人(仅举一个例子)。当初,咱们将向人类展现 10 种狗,并通知他们这是狗。尔后,如果咱们向他们展现其余 2 个种类,他们是否可能说出它们也是狗?心愿他们能做到,十个种类应该足以了解和辨认狗的独特特色。从某些数据学习并将取得的常识 正确 利用于其余数据的这种概念 称为generalization(泛化)。

回到深度学习,咱们的指标是使神经网络从给定的数据中尽可能无效地学习。如果咱们胜利地使神经网络理解到,其余 2 个种类 狗,那么咱们曾经造就了十分 general(个别的) 神经网络,它会在事实世界中执行得很好。

这实际上说起来容易做起来难,而训练通用神经网络是深度学习从业人员最令人丧气的工作之一。这是因为神经网络中的一种景象,即 适度拟合。如果神经网络对 10 种犬进行训练,并且回绝将其余 2 种犬归为狗,那么该神经网络就 适度适宜 了训练数据。这意味着神经网络曾经 记住了 那 10 种狗,并且只将它们视为狗。因而,它无奈造成 对狗长什么样的 _广泛理解_。在训练神经网络的同时解决这个问题是咱们在本文中要探讨的。

当初,咱们实际上没有自在在像“滋生”这样的根底上划分所有数据。相同,咱们将简略地拆分所有数据。数据的一部分,通常是较大局部(大概 80–90%)将用于训练模型,其余部分将用于测试模型。咱们的指标是确保测试数据的性能与训练数据的性能大致相同。咱们应用诸如损失和准确性之类的指标来掂量这一绩效。

咱们能够管制神经网络的某些方面,以避免适度拟合。让咱们一一介绍。首先是 参数 数量。

参数数量

在神经网络中,参数的数量实质上是指权重的数量。这将与 层数 和每一层中 神经元 的数目成正比。参数和适度拟合的数量之间的关系如下:越多 的参数,越容易 导致过拟合。

咱们须要依据 复杂性 来定义问题 一个非常复杂的数据集将须要一个非常复杂的函数来胜利了解和示意它。从数学上讲,咱们能够将复杂度与 非线性 相关联 让咱们回忆一下神经网络公式。

在此,W1,W2 和 W3 是此神经网络的权重矩阵。当初,咱们须要留神的是方程中的 激活函数 ,该 函数 实用于每一层。因为具备这些激活性能,因而每一层都与下一层 非线性连贯

第一层的输入为 f(W_1 X)_(设 L1)_,第二层的输入为 f(W_2 L1)。如您所见,因为激活函数(f),第二层的输入与第一层具备 非线性 关系。因而,在神经网络的末端,最终值 Y 绝对于输出 X 具备肯定水平的非线性,具体取决于神经网络中 的层数

层的数量越多 越多的激活函数 扰乱层之间的线性度,并且因而 更加非线性

因为这种关系,咱们能够说,如果神经网络 在每一层中具备 更多的层 更多的节点 ,它将变得 更加简单。因而,咱们须要依据数据的复杂性来调整参数。除了反复试验和比拟后果外,没有确定的办法。

在给定的试验中,如果测试指标远 低于 训练指标,则 模型具备过拟合 ,这意味着神经网络 对于给定的数据具备 太多的参数 。这基本上意味着神经网络对于给定的数据来说 太简单 了,须要简化。如果测试分数与训练分数大致相同,则该模型曾经 generalized,但这并不意味着咱们曾经达到了神经网络的最大后劲。如果咱们减少参数,性能将会进步,但也可能会过拟合。因而,咱们须要持续尝试通过均衡 性能和泛化 来优化参数数量

咱们须要将 神经网络的复杂度与数据复杂度相 匹配 。如果神经网络太简单,它将开始记忆训练数据,而不是对数据有个别的理解,从而导致过拟合。

通常,深度学习从业人员如何做到这一点是首先训练具备足够大量参数的神经网络,以使模型过拟合。因而,最后,咱们尝试取得一个非常适合训练数据的模型。接下来,咱们尝试迭代地缩小参数的数量,直到模型 进行适度拟合 为止,这能够视为一种 最佳的神经网络。咱们能够用来避免适度拟合的另一种技术是应用dropout 神经元。

dropout 神经元

在神经网络中,增加 dropout 神经元是缩小神经网络适度拟合的最风行,最无效的办法之一。基本上网络中的每个神经元都有肯定的概率从网络中齐全 退出 。这意味着在特定时刻,某些神经元将 不会连贯 到网络中的任何 其余神经元。这是一个视觉示例:

在训练过程中的每一个霎时,一组不同的神经元将以 随机的形式 掉落。因而,咱们能够说在每个时刻,咱们都在无效地训练某个 神经网络 比原始神经网络少的某个 子集 神经网络。因为辍学神经元的随机性质,该子神经网络每次都会扭转。

实际上,这里产生的是,当咱们训练带有缺失神经元的神经网络时,咱们基本上是在训练 许多较小的 子集神经网络,并且因为权重是原始神经网络的一部分,因而神经网络的最终权重能够视为 所有 相应 子集神经网络权重的 平均值。这是正在产生的事件的根本可视化:

这就是 dropout 神经元在神经网络中的工作形式,然而_为什么_dropout 会阻止适度拟合?这有两个次要起因。

第一个起因是 dropout 的神经元促成 神经元独立。 因为在特定霎时可能存在或不存在围绕特定神经元的神经元这一事实,因而该神经元不能依赖于围绕其的那些神经元。因而,它会_被迫_成为 更独立,同时训练。

第二个起因是因为 dropout,咱们本质上是一次训练多个较小的神经网络。通常,如果咱们训练多个模型并求均匀权重,则因为 每个神经网络 的独立学习 积攒,性能通常会进步。然而,这是一个低廉的过程,因为咱们须要定义多个神经网络并别离进行训练。然而,在辍学的状况下,这也做_同样的事件,_ 而咱们 须要 一个 神经网络,就能够从中训练 子神经网络的 多种可能配置

训练多个神经网络并汇总其学习常识称为“汇合”,通常能够进步性能。应用 dropout 实质上是在只有 1 个神经网络的状况下实现的。

缩小适度拟合的下一种技术是 权重正则化。

权重正则化

在训练神经网络时,某些权重的值可能会变得十分大。产生这种状况是因为这些权重_集中_在训练数据中的某些 特色 上,这导致它们在整个训练过程中价值 一直 减少。因而,网络适度适宜训练数据。

咱们不须要一直减少权重来捕捉特定模式。相同,如果它们的值 绝对于 其余权重较高,则很好。然而,在训练过程中,当神经网络通过屡次迭代对数据进行训练时,权重值可能会 一直减少,直到权重变大为止,这是不必要的。

为什么权重过大对神经网络不利的其余起因之一是因为减少的 输入输出差别。 基本上,当呈现网络中的微小权重,这是十分 容易 小的变动 的输出,但神经网络应该根本输入_同样的事件_ 了_相似的投入_。当咱们领有微小的权重时,即便咱们保留两个十分类似的独自的数据输出,它们的输入也可能有很大的不同。这会导致在测试数据上产生许多 谬误的预测 ,从而 升高 了神经网络的通用性。

神经网络中权重的个别规定是,神经网络中的权重越高,神经网络越简单。因而,具备较高权重的神经网络通常趋于过拟合。

因而,基本上,咱们须要限度权重的增长,以使权重不会增长太多,然而咱们到底该如何做呢?神经网络尝试将训练时的损失降到最低,因而咱们能够尝试在该损失函数中包含权重的一部分,以便在训练时权重 也被最小化,然而当然要优先思考缩小损失。

有两种执行此操作的办法,称为 L1 和 L2 正则化。在 L1 中,咱们只占网络中所有权重 绝对值 之和的一小部分。在 L2 中,咱们在网络中权重的所有 平方值 的总和中占一小部分。咱们只是 将此表达式 增加 到神经网络的整体损失函数中。公式如下:

在这里,lambda 是一个容许咱们扭转权重变动 水平 的值。咱们基本上只是将 L1 或 L2 项增加到神经网络的损失函数中,以便网络 尝试最小化 这些项。通过增加 L1 或 L2 正则化,网络将限度其权重的增长,因为权重的大小是损失函数的一部分,并且网络始终尝试使损失函数最小化。让咱们重点介绍 L1 和 L2 之间的一些区别。

应用 L1 正则化时,尽管权重因正则化而减小,但 L1 尝试将其齐全升高到 零。 因而,对神经网络奉献不大的不重要权重最终将变为零。然而,在 L2 的状况下,因为平方函数对于小于 1 的值成反比例,因而权重不会被推为零,而是被推为 较小的值。 因而,不重要的权重比其余权重要低得多。

这涵盖了避免适度拟合的重要办法。在深度学习中,咱们通常混合应用这些办法来改善神经网络的性能并改善模型的泛化性。


随机森林原理介绍与实用状况(综述篇)’ 倡议珍藏 ’

正文完
 0