Press "Enter" to skip to content

揭开权重、偏置与损失函数的奥秘:深入探索深度学习

由Pietro Jeng在Unsplash上的照片

深度学习是一种利用分层神经网络帮助计算机从大量数据中自动学习的机器学习方法,就像人类一样。在高层次上,深度学习模型包含有松散仿照人脑的相互连接的神经元组。这些神经元接收输入,进行数学计算,并通过网络传递信号。

通过训练的过程,神经元不断地通过改进彼此之间的连接强度来学习。训练数据由许多示例通过网络提供。根据实际输出与期望输出的差异,模型调整其内部参数以减小误差。这使得模型逐渐在图像识别、自然语言处理和预测分析等任务中改进。

这个高度复杂的训练过程由一组基本构建模块驱动,包括权重、偏差、损失函数、激活函数和一种称为反向传播的算法。权重和偏差决定输入对网络预测的影响力。损失函数通过测量误差来引导学习。激活函数引入非线性模式。反向传播有效地计算如何调整其他一切。

在本文中,我们将详细解释每个概念。我们将直观地解释每个概念的含义以及它如何对深度学习过程的贡献。同样重要的是,我们将为不同类型的深度学习问题和应用提供选择适当实现的指导。通过理解基础知识,读者将获得构建更有效模型的见解。

权重

权重是神经网络中控制神经元之间连接强度的可学习参数。连接由权重建模,在前向传播过程中确定一个神经元向下一层传递多少信息。

通过在训练过程中调整权重,神经网络改进其对输入数据的内部表示。权重在支持准确的预测或分类的同时,发挥关键作用,使网络能够学习和表示复杂的模式。随着权重的调整,网络逐渐对问题领域有越来越复杂的理解。

想象一个简单的神经网络,它有三层 —— 输入层表示数据集的特征,隐藏层学习输入的表示,输出层用于预测。

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第2张

在这里,我们可以看到wa1、wa2、wa3、wa4是分配给输入层第1个节点的连接的权重,wb1、wb2、wb3、wb4是分配给输入层第2个节点的连接的权重,依此类推。

每层之间都有权重来控制从一个神经元传递到下一个神经元的信号的强度。在前向传播过程中,神经元的输入是来自上一层的所有信号的加权和。

这些权重可以让网络修改其行为 —— 通过增加权重,该连接对后续的输出有更强的贡献,吸收该特征的影响。相反,减小权重会减弱特征的影响力。

通过反向传播,学习过程通过反馈来调整权重的上升或下降,根据它们在最小化误差方面的作用。随着时间的推移,高影响力的权重会正确放大有用的模式,而预测能力较弱的连接则会变弱。

在训练过程中,神经网络在分析示例之前会随机初始化其许多连接权重,以计算错误并优化其性能。通过迭代调整,按比例改变权重以纠正错误,网络选择性地增强与标签相关的输入,同时削弱不太有用的特征。这个强化学习的过程允许网络通过其节点之间的协作自主地关注最具诊断性的模式。

我们还可以探索初始权重是如何影响学习的。如果值太大或太小,网络可能难以有效训练。但是,适当缩放的权重可以使洞察力从数据中平稳地浮现。调整权重可以窥探神经网络如何对问题形成越来越复杂的视角。

偏差

除了权重之外,还有另一个至关重要的组成部分使神经网络能够从复杂的实际模式中有效学习 —— 偏差。虽然权重决定神经元之间的连接强度,但偏差起着同样关键的支持作用。

我们可以将偏差视为网络的可调偏移量,它赋予网络灵活性。当输入在预测过程中首次到达神经元时,偏差就像一个微小的背景音量,即使在权重接管之前,它也可以提升或降低激活水平。这个简单的数值调整具有深远的影响。

有了偏差,即使在训练数据中某些输入特征被静音或不一致处理时,预测也可以出现和适应。网络可以获得余地来检测有用的关系,而不考虑所呈现的具体特征。如果没有偏差的灵活性,模型在超出精确样本变化之外的情况下将难以推广。

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第3张

偏差还有助于激活函数,该函数确定每个神经元的输出水平。这个数值计算根据组合的输入信号判断神经元是否“触发”或不触发。偏差作为一个一致的项,允许激活函数在输入尺度上微妙地左移或右移。

通过偏差引起的微小偏移,激活函数对检测激活模式的敏感性更加或更不敏感。这种微调能力对于学习存在于广泛输入条件下的复杂实际模式至关重要。它使网络能够在背景噪声中感知信号。

在嘈杂的真实数据中,偏差保护了网络分辨出森林和树之间的能力。偏差培养了一种能力,可以识别稳健的高级模式。借助其灵活性,网络可以正确地将知识推广到新情况中,避免期望过于狭窄或过于宽泛。

为了可视化偏差,想象一个大脑细胞在处理输入为“棒球”和“篮球”的情况时进行判断。权重将每个线索与结论连接起来。

如果没有偏差,该细胞只能考虑之前看到的确切证据的副本。但是有了偏差作为每个判断的微妙的“音量旋钮”,灵活性就出现了。即使线索比训练样本要柔软或模糊,该细胞现在也可以识别类似的情景。

要欣赏真实效果,可以想象评判照片 – 没有偏差,则所有模糊的照片都可能被判定不好。然而,像我们这样有经验的评委仍然可以识别出主题,区分模糊的树和不清晰的脸。

偏差帮助神经探测器在稀疏涂鸦上平滑地检测出数字,就像经验赋予灵活性一样。预测可以适应各种场景,而不仅仅是复制先前的观点。

监控和减轻模型中偏差的策略

  1. 正则化技术:在偏差上使用L1或L2正则化等正则化方法。这有助于防止训练过程中偏差过大,减轻过拟合的风险。
  2. 偏差修正:在训练过程中定期评估偏差值,以发现潜在问题。如果偏差收敛到极高或极低的值,可能需要调整学习率或尝试其他优化技术。
  3. 多样性的训练数据:确保训练数据多样性和代表性,以减小对特定子集的偏差。偏差可能会因训练数据的分布而意外产生,导致优化程度不佳。

权重和偏差初始化策略

正态分布初始化

数学表达式:W∼N(μ,σ ^2)

  • 权重是从正态(高斯)分布中采样的,具有均值(μ)标准差(σ)
  • 适用于初始化权重,特别是在浅层网络中。

实现(TensorFlow):

import tensorflow as tf

initializer = tf.keras.initializers.RandomNormal(mean=0.0, stddev=0.1)

均匀分布初始化:

数学形式:W∼U(a,b)

  • 权重是从ab之间的均匀分布中采样的。
  • 当希望权重最初探索更宽范围时,这种方法很有用。

实现(TensorFlow):

import tensorflow as tf

initializer = tf.keras.initializers.RandomUniform(minval=-0.1, maxval=0.1)

零初始化:

数学形式:W=0

  • 所有权重都初始化为零。
  • 由于对称性问题很少在实践中使用。

实现(TensorFlow):

import tensorflow as tf

initializer = tf.keras.initializers.Zeros()

一初始化:

数学形式:W=1

  • 所有权重都初始化为一。
  • 类似于零初始化,并且不常用。

实现(TensorFlow):

import tensorflow as tf

initializer = tf.keras.initializers.Ones()

Xavier/Glorot初始化:

数学形式:

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第4张

  • 解决了梯度消失/梯度爆炸的问题。
  • 根据输入和输出神经元的数量进行权重缩放。

实现(TensorFlow):

import tensorflow as tf

initializer = tf.keras.initializers.GlorotNormal()

He初始化:

  • 类似于Xavier,但只考虑输入神经元的数量。
  • 常用于ReLU激活。

实现(TensorFlow):

import tensorflow as tf

initializer = tf.keras.initializers.HeNormal()

这些初始化方法在深度神经网络的训练中起到至关重要的作用。选择合适的方法取决于任务的特定特征,选择的激活函数以及神经网络的结构。通常需要尝试不同的初始化策略,以找到给定问题的最有效方法。

损失函数

损失函数在神经网络的学习过程中充当着关键的指导系统。当模型在样本数据上进行训练时,损失函数在幕后持续评估模型的性能。

我们可以将其视为一个精度测量工具,仔细量化模型预测与真实情况之间的差异程度。通过确定每个训练步骤的预测误差,损失函数清晰地展示了网络目前在完成其分配任务方面的表现好坏。

在训练过程中,将最小化这个损失值作为首要目标。较低的损失值表明模型与数据中所观察到的模式更加一致,实际上它代表了模型的准确性。优化器通过反向传播悄然地将权重引导到更准确的路径上,一步一步地推动网络朝着不断改进的预测方向前进。

关键地,损失度量的选择必须适应手头的问题。有些适用于回归问题,有些适用于分类问题。合适的工具确保训练平稳地塑造模型,使其与每个独特挑战的内在轮廓具有和谐的关系。定制化地校准的损失函数使洞察力变得清晰。

损失函数的类型。

均方误差(MSE):常用于回归任务,MSE计算预测值与实际值之间的平均平方差。它对较大的误差进行更重的惩罚,对异常值敏感。

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第5张

交叉熵损失:主要用于分类问题,交叉熵度量预测概率分布与真实概率分布之间的差异。对处理分类数据特别有效,并且对于有信心的错误分类比其他损失函数更不敏感。

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第6张

Huber损失:是均方误差和绝对误差的混合方法,通过在小误差上使用均方误差,对于较大误差使用绝对误差,减少对异常值的敏感性。

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第7张

  • n — 数据点的数量。
  • y — 数据点的实际值。也称为真值。
  • — 数据点的预测值。该值由模型返回。
  • δ — 定义 Huber 损失函数从二次转为线性的点。

二元交叉熵:专为二元分类设计的损失函数,适用于输出为两个类别之一的概率得分的情况。

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第8张

多类别交叉熵/ Softmax 损失:延伸自二元交叉熵,这个损失函数适用于多类别分类任务。它衡量了预测类别和真实类别概率之间的差异。

揭开权重、偏置与损失函数的奥秘:深入探索深度学习 四海 第9张

不同损失函数的应用

  • 均方误差(MSE):想象一个预测房价的回归任务。MSE 会对模型产生较大的预测误差进行惩罚,使其力求实现整体平衡的准确性。
  • 交叉熵损失:在分类场景中,比如识别手写数字,交叉熵损失确保模型专注于正确分配高概率给真实类别,使其擅长区分不同类别。
  • Huber 损失:在处理含有异常值的数据时(如具有偶尔极端值的温度预测),Huber 损失可以在绝对误差的稳健性和 MSE 的敏感性之间提供一种折中方案。
  • 二元交叉熵:对于像垃圾邮件检测这样的二元分类任务,其中结果不是垃圾邮件就是非垃圾邮件,这个损失函数非常适合引导模型的学习。
  • 多类别交叉熵:在多类别分类的背景下,比如具有多个对象类别的图像识别,多类别交叉熵确保模型学习正确地预测多个可能性中的正确类别。

损失函数选择对训练动态的影响

  1. 收敛速度:损失函数的选择可以影响模型在训练过程中的收敛速度。有些损失函数可能更有效地引导优化过程,加快收敛速度。
  2. 对异常值的鲁棒性:像 Huber 损失这样的损失函数可以使模型对异常值不太敏感,增强其对噪声数据的鲁棒性。
  3. 任务特定性能:不同任务需要不同的损失函数。选择与问题相适应的合适损失函数可以显著增强模型的泛化能力和准确预测的能力。

如何选择适当的损失函数

基于任务的考虑:分类、回归等。

  • 分类任务:对于目标是将输入数据分类为离散类别的问题(如图像识别、垃圾邮件检测),交叉熵损失通常是一个合适的选择。它与分类问题的概率性质自然一致。
  • 回归任务:当目标是预测连续数值(如房价预测)时,均方误差(MSE)是一种常见且有效的选择。它强调最小化预测值与真实值之间的平均平方差。

在选择损失函数时平衡准确性和可解释性

  • 强调准确性:如果主要目标是优化精确预测,不太关心具体概率分布,那么均方误差(MSE)或绝对误差等损失函数可能更可取。它们强调最小化预测值与实际值之间的差异。
  • 关注可解释性:在我们了解概率分布或预测的确定性(如医学诊断)的情况下,交叉熵等损失函数可能更适合。它鼓励模型不仅预测正确的类别,还提供良好校准的概率估计。

当您在这个领域中探索时,让好奇心成为您的指南,实验成为您的罗盘。神经网络的世界正在等待您的创造性洞察和创新解决方案。愿您探索的过程快乐!

Leave a Reply

Your email address will not be published. Required fields are marked *