机器学习案例分享——Datawhale X 李宏毅苹果书 AI夏令营 深度学习(入门)Task1

在数字化时代,数据无处不在,如何从海量数据中提取有价值的信息成为了一个重要课题。机器学习作为一种强大的数据分析工具,能够帮助我们从数据中学习并做出预测。机器学习是人工智能的一个分支,它使计算机系统能够利用数据来不断改进性能,而无需明确编程。相对的是,深度学习作为机器学习的一个子集,通过模拟人脑的神经网络来处理复杂的数据模式。

本文通过一个具体案例——“视频的点击次数预测”,来介绍机器学习的运作过程。

视频点击次数预测案例

案例介绍:“假设有人想要通过视频平台赚钱,他会在意频道有没有流量,这样他才会知道他的获利。假设后台可以看到很多相关的信息,比如:每天点赞的人数、订阅人数、观看次数。根据一个频道过往所有的信息可以预测明天的观看次数。找一个函数,该函数的输入是后台的信息,输出是隔天这个频道会有的总观看的次数。”

这个案例将帮助我们理解机器学习的三个关键步骤:模型定义、损失函数和优化。

Step1. 定义模型

模型是机器学习中的一个核心概念,它是一个带有参数的数学函数,用于预测或决策。

在实际问题中,需要根据问题本身进行模型的选择和细节设计,例如:当数据关系近似线性时,可以选择线性回归或逻辑回归;问题具备明显的决策边界时,采用决策树和随机森林;对于复杂的非线性关系,使用深度神经网络;

在本案例中,我们假设前一天的点击次数与后一天的点击次数之间存在线性关系,选择线性模型,定义如下:
y = w x 1 + b y=wx_1+b y=wx1+b
在这里, x 1 x_1 x1代表前一天的观看次数(输入), y y y代表今天的观看次数(输出)。 w w w b b b分别是组成一个线性关系的权重和偏置,也是在学习过程中需要被优化的部分。

Step2. 定义损失

损失函数即优化的目标,用于评估模型的表现并由此做出惩罚。假设本案例中观看次数和日期的关系如下:
在这里插入图片描述
设某一时刻的 w = 1 , b = 500 w=1,b=500 w=1,b=500,这时代入一个数据点到 y = w x 1 + b y=wx_1+b y=wx1+b,比如2017/01/01,会发现预测值 y ^ = 4800 + 500 = 5300 \hat y=4800+500=5300 y^=4800+500=5300,而真实值是4900,显然,模型预测有所偏差,需要被优化。那么如何衡量这一偏差也就是损失函数需要做的事情了,我们需要选择合适的损失函数来更好地表达这种偏差,为模型优化提供目标。

简单的,我们可以取预测值和真实值之间差的绝对值,即:
ϵ 1 = ∣ y 1 − y ^ 1 ∣ = 400 \epsilon_1 = |y_1-\hat y_1|=400 ϵ1=y1y^1=400
带入更多的数据点同样可以得到损失值:
ϵ 2 = ∣ y 2 − y ^ 2 ∣ = ∣ 7500 − ( 4900 + 500 ) ∣ = 2100 ϵ 3 = ∣ y 2 − y ^ 2 ∣ = . . . \begin{split} &\epsilon_2 = |y_2-\hat y_2|=|7500-(4900+500)|=2100 \\ &\epsilon_3 = |y_2-\hat y_2|=... \end{split} ϵ2=y2y^2=∣7500(4900+500)=2100ϵ3=y2y^2=...
由此可以计算这三年来每一天的损失值,并将它们求和平均:
L = 1 N ∑ i = 1 N ϵ i L=\frac{1}{N}\sum_{i=1}^N\epsilon _i L=N1i=1Nϵi
上述的其实就是常用的损失之一,平均绝对误差(Mean Absolute Error,MAE)。值得注意的是,损失函数的设计是机器学习任务中的一个重点,需要根据具体场景、任务、问题等进行针对性选择。

Step3. 优化

优化就是找到一组合适的参数 w w w b b b,使得我们的模型 y = w x 1 + b y=wx_1+b y=wx1+b可以满足预测任务的需求。在此,我们采用梯度下降算法进行求解。

简要起见,假设 b b b已知,只需要求解 w w w w w w代入不同数值时能得到一系列损失值,共同构成误差表面(原本为2维, b b b确定后变为1维)。

那么如何找一个 w w w让损失的值最小呢?
在这里插入图片描述
简单来说,如上图所示,首先要随机选取一个初始的点 w 0 w_0 w0。接下来计算在 w = w 0 w=w_0 w=w0的时候,参数 w w w对损失的微分。计算在这一个点,在 w0 这个位置的误差表面的切线斜率,也就是这一条蓝色的虚线,它的斜率,如果这一条虚线的斜率是负的,代表说左边比较高,右边比较低。在这个位置附近,左边比较高,右边比较低。如果左边比较高右边比较低的话,就把 w w w的值变大,就可以让损失变小。如果算出来的斜率是正的,就代表左边比较低右边比较高。左边比较低右边比较高,如果左边比较低右边比较高的话,就代表把 w 变小了, w w w往左边移,可以让损失的值变小。这个时候就应该把 w w w的值变小。我们可以想像说有一个人站在这个地方,他左右环视一下,算微分就是左右环视,它会知道左边比较高还是右边比较高,看哪边比较低,它就往比较低的地方跨出一步。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值