Datawhale X 李宏毅苹果书 AI夏令营 深度学习(入门笔记1)
leezone0321
编辑于 2024年08月28日 00:15
收录于文集
共6篇
Datawhale

本期夏令营学习目标是——通过《深度学习详解》和李宏毅老师 21年的机器学习课程视频​,入门机器学习,并尝试学习深度学习,展开代码实践。

《深度学习详解》主要内容源于《机器学习》(2021年春),选取了《机器学习》(2017年春) 的部分内容,在这些基础上进行了一定的原创,补充了不少除这门公开课之外的深度学习相关知识。在理论严谨的基础上,本书保留了公开课中大量生动有趣的例子,帮助读者从生活化的角度理解深度学习的概念、建模过程和核心算法细节,包括——

  • 卷积神经网络、Transformer、生成模型、自监督学习(包括 BERT 和 GPT)等深度学习常见算法,

  • 对抗攻击、领域自适应、强化学习、元学习、终身学习、网络压缩等深度学习相关进阶算法。

《深度学习详解》正版购买链接:https://u.jd.com/muCV8tI

最新版PDF下载

https://github.com/datawhalechina/leedl-tutorial

Task1:通过案例了解机器学习

电子书:9-14页。

任务①:找出本篇中形如回归(regression)加粗字体的术语,并用自己的话进行解释。

机器学习(Machine Learning,ML)机器学习是一种人工智能的分支,它主要涉及通过经验和数据来训练计算机模型以自动处理任务或进行预测。这些模型可以利用算法和数学模型来分析和学习数据,然后使用这些知识来执行特定的任务,如图像识别、语音识别、自然语言处理、数据分类、趋势预测等。

深度学习(Deep Learning,DL)深度学习是人工智能 (AI) 中的一种方法,它通过建立起一个复杂的神经网络模型,教会计算机以受人脑启发的方式处理数据。深度学习模型可以识别图片、文本、声音和其他数据中的复杂模式,从而产生准确的见解和预测。

回归(regression)回归分析是一种统计学方法,用于确定一个或多个因变量和一个或多个自变量之间的定量关系,然后用它们来预测未知数据的值。回归分析可分为一元回归和多元回归,简单回归和多重回归,线性回归和非线性回归。

分类(classification)分类任务要让机器做选择题。人类先准备好一些选项,这些选项称为类别(class),现在要找的函数的输出就是从设定好的选项里面选择一个当作输出,该任务称为分类。

模型(model)假设模型y = b + w ∗ x1中, b 跟 w 是未知的参数(parameter)。带有未知的参数(parameter)的函数称为模型(model)。特征(feature) x1 是这个函数里面已知的,w 称为权重(weight),b 称为偏置(bias)。

损失函数(Loss Function)在机器学习中用来衡量模型预测结果与实际结果之间差异的函数。其值越小,代表模型预测结果越接近实际结果。在训练模型时,需要通过不断调整模型参数来最小化损失函数的值。常见的损失函数包括均方误差、交叉熵等。

平均绝对误差(Mean Absolute Error,MAE)一种常用的预测精度评估指标,又称平均绝对百分误差,用于衡量预测值与真实值之间的误差程度,以百分比的形式表示。MAE的计算公式为:将所有绝对误差的和除以样本量。

均方误差(Mean SquaredError,MSE)一种评估模型预测结果与真实值之间误差大小的指标。它是指预测值与真实值之差的平方值的平均数。MSE越小,说明模型的预测结果越准确。它通常用于评估回归模型的性能。

交叉熵(cross entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。 人工智能语境下,指多类别分类问题中对 Log 损失函数的推广。交叉熵量化两个概率分布之间的区别,用于度量两个概率分布间的差异性信息。语言模型的性能也通常用交叉熵和复杂度来衡量,将交叉熵引入计算语言学消歧领域。

误差表面(error surface)表示模型误差的超曲面,它描述了模型权重参数与模型误差之间的关系。这个超曲面的每个点都对应模型在特定权重下的误差值。通过分析误差表面,可以更好地选择和调整训练算法及参数,从而找到全局最优解或可接受的局部最优解。这对提升模型的泛化能力和预测精度至关重要。误差表面是一个重要的概念,它揭示了模型参数与其误差之间的关系,并指导我们如何通过优化方法找到最佳的参数值,以提升模型的性能。

梯度下降(gradient descent)“梯度下降”是一个常用的优化算法,用于求解目标函数的最优解或局部最优解。它通过不断调整模型参数的值,使目标函数的值逐渐下降。具体来讲,每次迭代时,它计算目标函数的梯度(即函数在当前点处的斜率),并朝着梯度的反方向更新参数值,以使函数值下降。这个过程一直持续到目标函数的值收敛(即不再变化或变化极小),此时,算法得到的参数值就是目标函数的最优解或近似最优解。

学习率(learning rate)学习率是机器学习算法中的一个参数,用来控制模型在每次迭代中对数据学习的速率。它表示模型每次更新参数时改变的量的大小。学习率越小,模型对数据的学习速度越慢,但可以降低其过拟合的风险;学习率越大,模型对数据的学习速度越快,但容易导致过拟合或者不稳定。

超参数(hyperparameter)超参数是机器学习算法中的一种参数,它通常是在算法运行之前设置的。与模型学习时自动获得的参数不同,超参数在运行模型之前必须由数据科学家或开发者选择并设置。一些常见的超参数包括学习率、正则化参数、分类器种类等。超参数的选择往往会影响模型的性能和准确度,因此需要进行反复的试验和调整。

全局最小值(global minima)全局最小值是指在机器学习中,通过梯度下降算法优化的误差表面中,最低的点或区域,它代表了模型最优的参数设置,可以使得损失函数取得最小值。它对应于模型最佳性能的状态,即在训练数据集上达到最低的预测误差。在实际应用中,找到全局最小值往往面临许多挑战,因为误差表面可能非常复杂,有时甚至难以判断一个最小值是全局的还是局部的。

局部最小值(local minima)局部最小值是指在梯度下降算法中,模型参数更新到某个点时,该点的梯度为零,且在该点附近的小范围内,该点的函数值小于或等于其他点的函数值。然而,它并非整个函数范围内的最小值点。

任务②:整理出本篇中所有的公式,手动摘录,并尝试理解。

平均绝对误差:e = |yˆ − y| 均方误差:e = (ˆy − y)2 全局最小值:局部最小值:

任务③:找出机器学习找函数的3个步骤!并查找资料,交叉佐证这些步骤。

1.先定性问题,比如是回归问题还是分类问题,根据问题的定性结果,选择合适的带有未知参数的数学模型;2.定义Loss,可以用平均绝对误差或者均方误差甚至交叉熵等来定义损失,画出来误差表面3.进行最优化,就是用梯度下降等方法选择合适的参数值将Loss最小化,这时涉及到如何定义停下来的问题。

任务④:归纳梯度下降的步骤。

首先随机选取一个初始点。接下来计算在这个点上,参数w对损失的微分。计算在这一个点上的误差表面的切线斜率。如果斜率大于0,则将w调小;反之,则将w调大。输入调整后的w,再次计算微分,再次根据结果调整,反复迭代下去直到停止。

任务⑤:为什么局部最小是一个假问题,局部最小怎么解决?真正的难题是什么?

梯度下降在寻找代价函数最低点的过程,会出现局部最小值干扰, 真正的难题是影响寻找代价函数最低点方向的超参数调整(即梯度和学习率), 所以我们可以采用更优的算法(如动量优化器、Adam优化器)确定合适的超参数。

竞答①:在机器学习中,以下哪种任务最适合使用回归方法解决?

A. 预测房屋的未来价格

B. 检测一封邮件是否为垃圾邮件

C. 下围棋时选择下一步落子的最佳位置

D. 识别图片中的物体类别

答案:A。要找的函数的输出是一个数值,一个标量(scalar),这种机器学习的任务称为回归

竞答②:以下关于定义和计算损失函数的描述中哪些是正确的?

A. 损失函数是一个函数,它的输入是模型的参数(如b和w),输出是模型预测值与真实值之间的差距

B. 损失函数的计算方法包括绝对误差(MAE)和均方误差(MSE),其中均方误差是计算预测值和真实值之间的平方差

C. 在机器学习中,损失函数的值越小表示模型的预测约差

D.损失函数的值可以通过计算所有训练数据的误差的平均值来得到

E. 损失函数的值与参数b和w的选择有关,因此我们可以通过调整这些参数来优化模型

答案:ABDE。损失函数指的是在机器学习中用来衡量模型预测结果与实际结果之间差异的函数。其值越小,代表模型预测结果越接近实际结果。

竞答③:什么是超参数?请举例说明。

答案:与模型学习时自动获得的参数不同,超参数(Hyperparameter)在运行模型之前必须由数据科学家或开发者选择并设置。一些常见的超参数包括学习率、正则化参数、分类器种类等。超参数的选择往往会影响模型的性能和准确度,因此需要进行反复的试验和调整。

竞答④:在课程中出现了局部最小值和全局最小值的概念,在梯度下降算法中,如何避免陷入局部最小值?

答案:1、多次随机初始化权重和偏置,从不同的起始点进行梯度下降。由于每次初始化的位置不同,有更大的机会找到全局最小值或者更接近全局最小值的点。这样可以减少一开始就陷入局部最小值的可能性。

2、尝试不同的学习率。较小的学习率可能会使算法收敛得更稳定,但也容易陷入局部最小值;较大的学习率可能会导致算法跳过局部最小值,但也可能使算法无法收敛。可以通过动态调整学习率的方法,例如:在收敛后增大学习率,有助于跳出局部极小值

3、带动量的梯度下降算法可以避免陷入局部最小值,并且收敛速度更快。

4、模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出局部最小值。在每次迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定。