当前位置: 首页 > 科技观察

分析深度学习背后的数学思想

时间:2023-03-19 21:48:24 科技观察

深度神经网络(DNN)本质上是由多个连接的感知器构成的,其中感知器是单个神经元。可以将人工神经网络(ANN)视为一个系统,该系统由一组沿加权路径馈送的输入组成。然后处理这些输入并产生输出以执行某些任务。随着时间的推移,人工神经网络“学习”并开发出不同的路径。各种路径可能具有不同的权重,并且被发现更重要(或产生更理想的结果)的路径在模型中被分配比那些产生较少理想结果的路径更高的权重。在DNN中,如果所有输入都密集连接到所有输出,则这些层称为密集层。此外,DNN可以包含多个隐藏层。隐藏层基本上是神经网络输入和输出之间的点,激活函数在这里转换来自输入的信息。它被称为隐藏层,因为它不能从系统的输入和输出中直接观察到。神经网络越深,网络从数据中识别出的信息就越多,输出的信息也就越多。然而,虽然目标是尽可能多地从数据中学习,但深度学习模型可能会过度拟合。当模型从训练数据(包括随机噪声)中学到太多东西时,就会发生这种情况。然后,该模型可以确定数据中非常复杂的模式,但这会对新数据的性能产生负面影响。训练数据中拾取的噪声不适用于新的或未见过的数据,并且该模型无法概括已发现的模式。非线性模型在深度学习模型中也很重要,虽然模型会从具有多个隐藏层的内容中学到很多,但将线性形式应用于非线性问题会导致性能不佳。现在的问题是,“这些层如何学习东西?”那么,在这里我们可以将ANN应用到现实世界的场景中来解决问题并了解如何训练模型以实现其目标。这是一个很好的例子:在当前的大流行中,许多学校已经过渡到虚拟学习,这让一些学生担心他们通过课程的机会。“我会通过这门课吗”这个问题是任何人工智能系统都应该能够解决的问题。为简单起见,让我们假设该模型只有3个输入:学生参加的讲座次数、作业花费的时间以及整个讲座过程中互联网连接丢失的次数。模型的输出将是二元分类。学生要么通过课程,要么失败,这实际上是0和1。现在学期结束了,学生A已经上了21节课,花了90个小时做作业,整个学期已经断网7次。这些输入被输入模型,输出预测学生有5%的机会通过课程。一周后,最终成绩公布,学生A通过了课程。那么,模型的预测出了什么问题呢?从技术上讲,没有任何问题。该模型本可以像目前开发的那样发挥作用。问题是模型不知道发生了什么。我们将在路径上初始化一些权重,但模型目前不知道什么是对的或错的。因此,权重不正确。这就是学习的用武之地。这个想法是模型需要学习错误的时间,我们通过计算某种形式的“损失”来做到这一点。计算出的损失取决于手头的问题,但通常涉及最小化预测输出和实际输出之间的差异。以上案例,只需要一个学生一分的错误就可以减少到最低限度。然而,通常情况并非如此。现在,如果多个学生和多个差异被认为是最小化的,那么总损失通常将计算为所有预测和实际观察之间的差异的平均值。回想一下,计算的损失取决于手头的问题。因此,由于我们当前的问题是二元分类(0和1分类),因此适当的损失计算将是交叉熵损失,该函数背后的思想是它将学生是否会通过课程的预测分布与实际情况进行比较分布,并尽量减少这些分布之间的差异。相反,我们不是预测学生是否会通过这门课程,而是想预测他们在课程中将获得的分数。因此,交叉熵损失将不再是一种合适的方法。相反,均方误差损失会更合适。这种方法适用于回归问题,其想法是它将尝试最小化实际值和预测值之间的平方差。现在我们了解了一些损失函数(这里有损失函数的介绍:深度学习基础:数学分析基础和Tensorflow2.0回归模型PDF书籍文末可下载),我们可以进行损失优化和模型训练。拥有良好DNN的一个关键因素是具有适当的权重。损失优化应该尝试找到一组权重W来最小化计算的损失。如果只有一个权重分量,则可以在二维图上绘制权重和损失,并选择使损失最小的权重。然而,大多数DNN具有多个权重分量,并且很难将n维图可视化。相反,计算所有权重的损失函数的导数以确定最大上升方向。现在,模型了解了上下的方向,并向下移动直到达到局部最小值的收敛点。在这个体面的操作之后,一组最优的权重被返回,这是DNN应该使用的(假设模型开发良好)。计算这个导数的过程称为反向传播,它本质上是来自微积分的链式法则。考虑上图所示的神经网络,第一组权重的微小变化如何影响最终损失?这就是导数或梯度试图解释的内容。然而,第一组权重被馈送到隐藏层,然后隐藏层有另一组权重,从而产生预测的输出和损失。因此,还应考虑权重变化对隐藏层的影响。目前,这些是网络中仅有的两个部分。但是,如果要考虑更多权重,则可以通过应用从输出到输入的链式法则继续该过程。训练DNN时要考虑的另一个重要因素是学习率(可以认为是数学中的收敛因子)。随着模型不断寻找最佳权重集,它需要通过某个因素更新其权重。虽然这看起来微不足道,但确定模型移动的因素是非常非常必要的。如果因子太小,模型可能会以指数形式运行很长时间,或者卡在某个非全局最小值中。如果因子太大,模型可能会完全错过目标点而发散。虽然固定比率可能是理想的,但自适应学习比率会减少上述问题的发生几率。也就是说,系数将根据当前梯度、当前权重的大小或其他可能影响模型下一步寻找最佳权重的因素而变化。可以看出,DNN是基于微积分和一些统计数据构建的。评估这些深层次技术过程背后的数学思想是有用的,因为它可以帮助人们理解模型中真正发生的事情,并可以导致整体上更好的模型的开发。