学习笔记2 #Datawhale X 李宏毅苹果书 AI夏令营#

把w跟b更新的方向结合起来, 就是一个向量,就是红色的箭头,再计算一次微分,再决定要走什么样的方向,把这个微分的 值乘上学习率,再乘上负号,我们就知道红色的箭头要指向那里,就知道如何移动w跟b的 位置,一直移动,期待最后可以找出一组不错的w,b。

线性模型

接下来使用这个函数预测未来的观看次数。 预测从2021 年开始每一天都拿这个函数去预测次日的观看人次,,一直 做到2月14日,得到平均的值,在2021年没有看过的数据上,误差值用L′ 来表示,它是 0.58,所以在有看过的数据上,在训练数据上,误差值是比较小的,在没有看过的数据上,在2021 年的数据上,看起来误差值是比较大的。

红色线是真实的 观看人次,蓝色线是机器用这一个函数预测出来的观看人次。蓝色的线几乎就是红色的线往 右平移一天而已,这很合理,因为x1也就是前一天的观看人次,跟隔天观看人次的,要怎么 拿前一天的观看人次,去预测隔天的观看人次呢,前一天观看人次乘以0.97,加上100加上 100,就是隔天的观看人次。

接下来我们观察了真实的数据以后,得到一个结论是,每隔7天有一个 循环。所以要把前7天的观看人次都列入考虑,写了一个新的模型

考虑了比较多的信息,在训练数据上应该要得到更好的、更低的损失。在没有看到的数据 上的损失有比较好是490。只考虑1天的误差是580,考虑7天的误差是490。用梯度下降, 算出w跟b的最优值如表1.1所示。

可以考虑28天,即

如果考虑56天,即

在训练数据上损失是320,在没看过的数据上损失还是460。考虑更多天没有办法再更降低损 失了。看来考虑天数这件事,也许已经到了一个极限。这些模型都是把输入的特征x乘上一 个权重,再加上一个偏置就得到预测的结果,这样的模型称为线性模型(linear model)

现实中也许在x1小于某一个数值的时候,前一天的观看次数 跟隔天的观看次数是成正比;也许当x1 大于一个数值的时候,x1 太大,前天观看的次数太 高,隔天观看次数就会变少;也许x1 跟y 中间,有一个比较复杂的、像红色线一样的关系。

红色线,即分段线性曲线(piecewise linear curve)可以看作是一个常数,再加上一堆蓝色的函数。分段线性曲线可以用常数项加一大堆的蓝色函数组合出来,只是用的蓝色函 数不一定一样。要有很多不同的蓝色函数,加上一个常数以后就可以组出这些分段线性曲线。 如果分段线性曲线越复杂,转折的点越多,所需的蓝色函数就越多。

Sigmoid 函数的表达式为

如果x1 的值,趋近于无穷大的时候,e−(b+wx1) 这一项就会消失,当 x1 非常大的时候, 这一条就会收敛在高度为c的地方。如果x1 负的非常大的时候,分母的地方就会非常大,y 的值就会趋近于0。

每一 个蓝色的函数都用一个Sigmoid 函数来比近似它,1,2,3 代表有个Sigmoid 函数。 b1 +w11x1 +w12x2 +w13x3 (1.18) wij 代表在第 i 个 Sigmoid 里面,乘给第 j 个特征的权重,w 的第一个下标代表是现在 在考虑的是第一个Sigmoid 函数。为了简化起见,括号里面的式子为 r1 = b1 +w11x1 +w12x2 +w13x3 r2 = b2 +w21x1 +w22x2 +w23x3 r3 = b3 +w31x1 +w32x2 +w33x3 ,将其改成线性代数比较常用的表示方式为 r =b+Wx

接下来要定义损失。之前是L(w,b),因为w跟b是未知的。现在未知的参数很多了,再 把它一个一个列出来太累了,所以直接用θ 来统设所有的参数,所以损失函数就变成L(θ)。 损失函数能够判断θ的好坏,其计算方法跟刚才只有两个参数的时候是一样的。 先给定θ的值,即某一组W,b,cT,b的值,再把一种特征x代进去,得到估测出来的y, 再计算一下跟真实的标签之间的误差e。把所有的误差通通加起来,就得到损失。

其实还可以对模型做更多的变形,不一定要把Hard Sigmoid 换成 Soft Sigmoid。Hard Sigmoid 可以看作是两个修正线性单元(Rectified Linear Unit,ReLU)的加总,ReLU的 图像有一个水平的线,走到某个地方有一个转折的点,变成一个斜坡,其对应的公式为 c ∗max(0,b +wx1)

机器学习框架

我们会有一堆训练的数据以及测试数据如式(1.30)所示,测试集就是只有x没有y。

训练的过程是3个步骤。 (1.30) 1. 先写出一个有未知数θ 的函数,θ 代表一个模型里面所有的未知参数。fθ(x)的意思就 是函数叫fθ(x),输入的特征为x,; 2. 定义损失,损失是一个函数,其输入就是一组参数,去判断这一组参数的好坏; 3. 解一个优化的问题,找一个θ,该θ可以让损失的值越小越好。让损失的值最小的θ为 θ∗,即 θ∗ = argmin θ L。

有了θ∗ 以后,就把它拿来用在测试集上,也就是把θ∗带入这些未知的参数,本来fθ(x) 里面有一些未知的参数,现在θ 用θ∗ 来取代,输入是测试集,输出的结果存起来,上传到 Kaggle 就结束了。

(文中多处引用李宏毅老师文章《机器学习基础》 Datawhale

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值