本文为AI方向小白记录暑期参加李宏毅苹果书 AI夏令营-入门学习方向的Task 01
报名赛事链接:Datawhale
欢迎所有小白,大神前来交流学习。
建议搭配视频食用更佳:
预测本频道观看人数(上) - 机器学习基本概念简介
一. 深度学习基础
第 1 章内容中,机器学习(Machine Learning, ML)和深度学习(Deep Learning, DL)是现代人工智能(AI)中的两个核心概念,它们在许多领域中得到了广泛的应用。以下是对这些概念的详细总结:
1.1 机器学习(Machine Learning)
机器学习是人工智能的一个子集,旨在通过数据驱动的方法使计算机系统具备自主学习和改进的能力。机器学习的核心是通过大量数据来训练模型,使其能够从经验中学习并找到能够解决特定问题的函数。这种方法与传统的编程方法不同,后者通常依赖于手工编写的规则和逻辑来解决问题。
机器学习的应用非常广泛,涵盖了以下几类任务:
1. 回归(Regression):用于预测连续数值的任务。例如,在环境监测中,可以使用机器学习来预测未来某个时段的PM2.5浓度值。这需要模型根据历史数据学习一个函数,该函数可以接受与PM2.5相关的各种输入(如温度、臭氧浓度等),并输出预测值。
2. 分类(Classification):分类任务旨在从预定义的类别集合中选择一个适当的输出。例如,在邮件过滤中,机器学习模型可以用来识别垃圾邮件,函数的输出即是该邮件属于“垃圾邮件”还是“非垃圾邮件”的分类结果。AlphaGo在围棋中的表现也可以看作是分类问题的一种,模型根据棋盘上的黑子和白子的位置选择下一步的最佳落子位置。
3. 结构化学习(Structured Learning):除了简单的数值或类别输出,机器学习还可以用于生成更为复杂的结构化输出,如生成图像、写作文章等。这个任务要求模型产生具有特定结构的结果,通常涉及生成任务和序列预测任务。
1.2 深度学习(Deep Learning)
深度学习是机器学习的一个子集,专注于通过多层神经网络来处理和分析复杂的模式和数据。神经网络的设计灵感来自人脑的结构,它们通过层层传递信息,并在此过程中提取数据的特征。这种方法极大地提高了模型在处理图像、语音、自然语言等高维数据上的表现能力。
深度学习的关键优势在于其自动特征提取能力,这意味着模型可以自主学习数据中的重要特征,而无需人为干预。随着深度学习的发展,计算机在处理复杂任务时的能力得到了显著提升,尤其是在图像识别、语音识别、自然语言处理等领域。
总结而言,机器学习和深度学习都是推动现代人工智能发展的核心技术。机器学习为计算机赋予了自主学习的能力,而深度学习则通过更深层次的神经网络结构进一步增强了这一能力,使得计算机能够以接近人类思维的方式处理和理解数据。
二. 通过案例学习
在机器学习中,预测视频点击次数的过程可以分为三个主要步骤:模型构建、损失函数定义、以及模型优化。以下是对这个过程的详细总结:
2.1 模型构建(Model Construction):
以视频的点击次数预测为例介绍下机器学习的运作过程。假设有人想要通过视频平台赚钱,他会在意频道有没有流量,这样他才会知道他的获利。假设后台可以看到很多相关的信息,比如:每天点赞的人数、订阅人数、观看次数。根据一个频道过往所有的信息可以预测明天的观看次数。找一个函数,该函数的输入是后台的信息,输出是隔天这个频道会有的总观看的次数.机器学习找函数的过程,分成 3 个步骤。第一个步骤是写出一个带有未知参数的函数 f,其能预测未来观看次数。比如将函数写成
y = b + wx
其中,y 是准备要预测的东西,要预测的是今天(2 月 26 日)这个频道总共观看的人,y 就假设是今天总共的观看次数。x1 是这个频道,前一天(2 月 25 日)总共的观看次数,y 跟 x1 都是数值,b 跟 w 是未知的参数,它是准备要通过数据去找出来的,w 跟 b 是未知的,只是隐约地猜测。猜测往往来自于对这个问题本质上的了解,即领域知识(domain knowledge)。机器学习就需要一些领域知识。这是一个猜测,也许今天的观看次数,总是会跟昨天的观看次数有点关联,所以把昨天的观看次数,乘上一个数值,但是总是不会一模一样,所以再加上一个 b 做修正,当作是对于 2 月 26 日,观看次数的预测,这是一个猜测,它不一定是对的,等一下回头会再来修正这个猜测。总之,y = b + w ∗ x1,而 b 跟 w 是未知的。带有未知的参数(parameter)的函数称为模型(model)。模型在机器学习里面,就是一个带有未知的参数的函数,特征(feature) x1 是这个函数里面已知的,它是来自于后台的信息,2 月 25 日点击的总次数是已知的,而 w 跟 b 是未知的参数。w 称为权重(weight),b 称为偏置(bias)。这个是第一个步骤。
- 首先,需要为预测问题构建一个数学模型,即定义一个函数 fff ,其中输入为相关的特征数据(如前一天的视频观看次数、点赞数、订阅数等),输出为预测的观看次数。
- 例如,可以假设一个简单的线性模型: y=b+w×x1 ,其中 y 是第二天的预测观看次数, x1 是前一天的观看次数, w 和 b 是模型中的未知参数,分别称为权重(weight)和偏置(bias)。这些参数需要通过训练数据来确定。
2.2 损失函数定义(Loss Function Definition)
损失函数是机器学习模型中用于衡量模型预测结果与真实值之间差异的函数。它反映了模型的预测与实际结果有多大偏差,是训练过程中需要最小化的核心指标。
在机器学习中,损失函数扮演着非常重要的角色,因为它直接影响模型的优化目标。通过最小化损失函数,我们能够调整模型的参数,使其在给定的训练数据上表现得更好。
损失函数的作用?
- 度量误差:损失函数提供了一个度量标准,用于量化模型预测结果与真实值之间的误差。
- 指导优化:通过最小化损失函数,模型得以逐步调整其参数,使得预测误差最小化。这一过程通常由优化算法(如梯度下降法)实现。
- 影响模型性能:损失函数的选择直接影响模型的训练效果和最终性能。不同的任务和数据类型可能需要不同的损失函数。
假设模型为 y=b+w×x,其中 w 和 b 是未知的参数。损失函数 L(b,w) 用于判断当参数 www 和 bbb 被设定为某个值时,这个设定的好坏。为了计算损失,通常会使用训练数据,即模型在历史数据上表现的准确性。
计算损失的步骤:
1. 计算误差:给定某个参数设定值(例如 w=1 和 b=500),可以通过代入训练数据来预测结果。真实值和预测值的差距即为误差。例如,对于某一天的观看次数预测,真实值为 4900,预测值为 5300,那么误差 e 为 400(即预测值减去真实值的绝对值)。
2. 累计误差:为了评估模型在整个数据集上的表现,会计算每一天的误差,然后对这些误差进行累计和平均。例如,过去三年的数据每天都有一个误差值,将这些误差值求和后取平均,得到损失函数的值 L。
3. 选择合适的损失函数:根据任务的不同,可以使用不同的损失函数:
- 平均绝对误差(MAE):计算预测值与真实值之间绝对值的差距,公式为 e=∣y^−y∣。
- 均方误差(MSE):计算预测值与真实值之间平方的差距,公式为 e=(y^−y)。
- 交叉熵(Cross Entropy):用于分类任务,特别是当 y 和 y^ 是概率分布时。
误差表面(Error Surface)
误差表面是一种通过试验不同参数组合后计算损失并绘制的等高线图。图中不同颜色代表不同的损失值:
- 红色区域:损失较大,表示当前的 w 和 b 组合效果较差。
- 蓝色区域:损失较小,表示当前的 w 和 b 组合效果较好。
通过研究误差表面,可以找到使损失最小的参数组合,这就是机器学习的优化目标。
以上就是机器学习的第 2 步:定义和计算损失函数的总结。
2.3 解一个最优化的问题
在机器学习中,优化问题的核心任务是找到一组最佳的参数,使模型的损失函数达到最小值。这一过程通常通过梯度下降法来实现。以下是对这一过程的详细解释:
1. 问题定义
- 目标是找到一组参数 www 和 bbb,使得模型的损失函数 L(w,b)L(w, b)L(w,b) 最小。这个过程称为最优化问题。
- 通常,损失函数衡量模型预测与真实值之间的差距,因此最小化损失函数意味着提高模型的预测准确性。
2. 梯度下降的基本思想
梯度下降法是一种迭代优化算法,用于寻找使损失函数最小的参数值。
假设只有一个待优化的参数 w,损失函数 L(w) 的图形呈现为一维误差表面。梯度下降通过不断调整 w 的值,使得 L(w)最小。
3. 算法步骤
随机初始化:首先随机选择一个初始点 w0
计算梯度:在当前点 wt 计算损失函数对 w 的导数 ∂L/∂w,这代表误差表面的斜率。
参数更新:根据梯度的符号和大小,更新 w 的值。更新公式为 wt+1=wt−η⋅∂L/∂w,其中 η 为学习率,控制每次参数更新的步长。
如果斜率为负,表示 www 需要增加,以减少损失;如果斜率为正,则需要减小 w。
局部最小值 vs. 全局最小值
全局最小值:在整个误差表面上损失函数的最小值。
局部最小值:相较于周围的点,损失函数较小的点,但不是全局最小值。
梯度下降可能陷入局部最小值,无法找到全局最小值,但在实践中,这个问题并非总是致命的。
多参数的梯度下降
当参数数量增加(如两个参数 w 和 b),梯度下降法依然适用 需要分别计算各参数的梯度,并更新每个参数:wt+1=wt−η⋅∂L/∂w 和 bt+1=bt−η⋅∂L/∂b。