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

自适应学习率

        在模型训练的过程中,随着参数更新,loss变得越来越小,最终不再下降。是走到了驻点吗?

        可能发生的情况:梯度在来回震荡

         原因:Learning Rate太大,没法缓慢滑到“山谷”深处。 

        解决方案:

                直接降低Learning Rate?具体降低多少难以界定。

                需要有自适应的Learning Rate

        还存在什么问题?得到的Learning Rate是固定值,希望可以做动态调整。

        RMSProp

               

                通过参数动态调整Learning Rating

        Adam: RMSProp + Momentum

                使用动量作为参数更新方向,并且能够自适应调整学习率。

学习率调度

        σi^t 是把过去所有的梯度拿来作平均。在 AB段梯度很大,但在 BC 段,纵轴的方向梯度很小,因此纵轴方向累积了很小的 σit,累积到一定程度以后,步伐就变很大,但有办法修正回来。因为步伐很大,其会走到梯度比较大的地方。走到梯度比较大的地方后,σit 会慢慢变大,更新的步伐大小会慢慢变小,从而回到原来的路线。为了应对此种情况,需要学习率调度。

        学习率调度中最常见的策略是学习率衰减。随着参数的不断更新,让 η 越来越小

分类

        输出与期望的类别越接近越好。输出是数值时,用数值直接划分类别可行吗?

        假设三个类本身没有特定的关系,类 1 是 1,类 2 是 2 类 3 是 3

        实际上,在做分类的问题的时候,比较常见的做法是用独热向量表示类。

        把a1、a2和a3乘上三个不同的权重,加上偏置,得到yˆ1;再把a1、a2和a3乘上另外三个权重,再加上另外一个偏置得到yˆ2;把a1、a2和a3再乘上另外一组权重,再加上另外一个偏置得到yˆ3。输入一个特征向量,产生yˆ1、yˆ2、yˆ3,希望yˆ1、yˆ2、yˆ3跟目标越接近越好。

带有 softmax 的分类

        按照上述的设定,分类实际过程是:输入x,乘上W,加上b,通过激活函数σ,乘上W′,再加上b′得到向量yˆ。但实际做分类的时候,往往会把yˆ通过softmax函数得到y′,才去计算y′跟yˆ之间的距离。y是独热向量,所以其里面的值只有0跟1,但是yˆ里面有任何值。既然目标只有0跟1,但yˆ有任何值,可以先把它归一化到0到1之间,这样才能跟标签的计算相似度。

        先把所有的 y 取一个指数(负数取指数后也会变成正的),再对其做归一化(除掉所有 y 的指数值的和)得到 y′。

分类损失

        计算y′跟y之间的距离,可以是均方误差,即把y里面每一个元素拿出来,计算它们的平方和当作误差。

        e=-\sum_{i}^{}(y_i-{y_i}')^2

        交叉熵更常用,当yˆ跟y′相同时,可以最小化交叉熵的值,此时均方误差也是最小的。最小化交叉熵其实就是最大化似然。

        e=-\sum_{i}^{}y_iln{y_i}'

        做分类时,选均方误差的时候,如果没有好的优化器,有非常大的可能性会训练不起来。改变损失函数可以改变优化的难度。

实践操作部分

训练中

模型网络架构

可视化分布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值