Datawhale X 李宏毅苹果书 AI夏令营-深度学习入门-机器学习task2

引子:用task1中的函数y=w+bx预测未来一天的观看人次,用已知的数据训练,再来估测未知的数据,分为两个部分来看这个准确性,发现在训练数据上误差是比较小的,但是在未知的数据上误差是比较大的。

\diamond探究原因:

从下图中可以观察到蓝色曲线差不多是将红色曲线向右平移了一点得到的,原来:

优化得到的最佳的w和b分别是0.97和100,这意味着机器几乎是拿前一天的观看人数预测下一天的观看人数的。

图像具有明显的周期性(每七天就有两天特别低)

1.天数限制

所以较大的误差可能是因为数据只考虑了一天的,如果给模型参考前七天的数据,说不定会更准确。
这时我们应该修改模型。

对模型的修改往往来自于对问题的理解,即领域知识

\bullet写一个新的函数

这是考虑7天,其实可以考虑更多天,考虑的天数越多,损失越小,直到56天......

损失不再继续降低——考虑天数达到极限了

2.模型限制(bias)

我们之前用的模型叫做线性模型,即x乘权重加偏置。

线性模型的x与y的关系就是一条直线,但实际x和y关系可能很复杂,可能是模型太过于简单才导致损失不能继续降低。

所以我们要写一个更复杂、更有灵活性的含有未知参数的函数

\bulletHard Sigmoid(蓝色函数)加常数构造分段线性曲线(红色函数)分段线性函数越复杂,转折点越多,需要的蓝色函数越多

\bulletx和y关系是曲线

先在曲线上取一些点,再把这些点连起来,就成了一条分段线性曲线。

所以我们只要写出Hard Sigmoid的方程式就可以了,直接写有困难可以用Sigmoid函数来逼近。

所以这个流程是:变换不同的c、b和w,得到不同的Sigmoid函数,将不同的Sigmoid函数叠加起来去逼近分段线性曲线,再用分段线性曲线逼近连续曲线。

另外还可以使用多个特征x

解决问题之后就可以进行下一步了

——定义损失

       可以将所有的未知参数简写成一个符号\theta,那么损失函数就写成L(\theta),损失的计算方法同task1中提到的一样。

——优化

实际操作中并不直接拿所有数据来计算L,而是将数据分成若干批量,只拿批量中的一个数据计算L,再根据L算梯度,再更新数据。

更新一次参数叫一次更新,而把所有的批量都看过一遍叫做一个回合

\star学习率、sigmoid的个数、批量大小都是超参数

\bullet模型的变形——用ReLU叠加构造Hard Sigmoid

2个ReLU合成1个Hard Sigmoid

Hard Sigmoid和ReLU都是激活函数。使用多个ReLU损失会慢慢变小。

Hard Sigmoid 和ReLU叫做神经元,多个神经元组成神经网络。(模拟人脑)每一排称为一层,称为隐藏层,很多隐藏层就”深“,这套技术就叫深度学习。【潮起来了】

人们把神经网络越叠越深,错误率也越降越低。

回到案例上,发现做3层损失反而高于4层,这个现象称为:过拟合。所以我们选择3层而不选4层,深度学习的训练会用到反向传播,这个方法效率较高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值