一元线性回归中loss值的变化分析

1 致谢

感谢陈助教的帮助和解答!

2 前言

线性回归是我们在机器学习算法中学习到的第一个回归算法,所以我们一定要学习并且掌握清楚,为后续的学习奠定良好的基础。

3 问题描述

这几天在做一元线性回归的作业,在模拟训练过程的实验时,发现一个问题,赵老师在课堂上面画了这样的一张图,

这张图会让我误以为:“在一元线性回归中,如果开始的时候,学习率\alpha取的过小的话,权重值就会沿着曲线一直慢慢下降,而不会出现越过抛物线对称轴的情况”(实际上这样的想法不正确);之后,我在进行一元线性回归的实验时,观察到一个很奇怪的情况,即便在学习率\alpha开始设置成足够小的值,在进行多次训练之后,总会出现\theta值振荡的情况,(也就是\theta值忽大忽小的情况),但是这是很奇怪的,因为按照上面的假设的推论,如果“一元线性回归在第一次训练时,若学习率\alpha极小,\theta值第一次就向极小值收敛的话,后面的的所有训练\theta值就都会向下收敛,而不会出现振荡的情况”;所以,根据实验结果可知,这个假设肯定是错误的,那么为什么这个假设是错误的呢?从直觉上感觉,这个假设似乎也有一定的道理,因为如果““一元线性回归\alpha极小在第一次训练时就收敛的话”,那么就说明此时变化率\alpha \frac{\partial }{\partial \theta _{j}}J\left ( \theta \right )的值较小,权值\theta没有越过抛物线的对称轴;而在下一次迭代时,由抛物线的几何性质可知,梯度\frac{\partial }{\partial \theta _{j}}J\left ( \theta \right )会变得更小,则\alpha \frac{\partial }{\partial \theta _{j}}J\left ( \theta \right )会以更小的变化率逼近真实的\theta值,而不会出现越过对称轴的情况;从实验结果看来,这种假设是十分美好的,可是事实却并非如此,那么\alpha很小的情况下,开始时\theta值会沿着曲线向真实值缓慢逼近,那为什么后来又会突然出现振荡呢?

4 一元线性回归中loss值变化的理论分析

为了更好的对这个问题判断,进行分析我们需要对这些数值的变化进行理论推导,

首先,我想要确认的第一个问题是,为什么损失函数关于\theta的变化会是一个抛物线呢?

4.1 loss函数关于单个\theta的偏函数的形式 —— 二次函数

其实这也是容易理解的,首先我们再来回顾一下损失函数的定义,即:

J\left ( \theta_0,\theta_1 \right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( h_ \theta\left ( x^i \right )-y^i \right )^2

由于,一元函数h_ \theta\left ( x^i \right )=\theta_0+\theta_1x^i,所以这应该是一个二元二次函数,

其图像类似于是山地的地形图,

所有我们可以知道,损失函数关于其中一个\theta\theta_0\theta_1)的偏函数则肯定是一个抛物线,即上面二维曲面的某个剖面;

我们可以看看,loss函数关于\theta_0的偏函数,形式如下:

J\left ( \theta_0\right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( \theta_0+\theta_1 x^i -y^i \right )^2

很容易看出,这肯定是一个二次函数。

4.2 \theta与抛物线对称轴的距离

如果我们想要分析,下一次迭代训练的\theta值是否会越过抛物线,则我们需要分析的是\theta与抛物线对称轴的距离是否会总是大于0;

从实验结果,我们可以知道,肯定不是的,

上图是我用一元线性回归拟合直线函数 y = x + 2的实验结果,可以看到从某次迭代之后,w的值就从0.99左右越过坐标轴而达到了1.00000736左右,说明此时\theta_1出现了越过坐标轴的情况;

在越过坐标轴之前,我们还需要澄清的一个事实时,迭代中的损失函数在每次迭代过程中都是动态变化的,具体来说,就是每次执行梯度下降之后,由于\boldsymbol{\theta}都会变化,所以损失函数的形式也会不同,那么我们之前提到过的关于单一\theta的偏函数也会不同,所以实际上,在每次迭代之后,偏函数的抛物线的对称轴都会改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值