【动手学深度学习】01-线性回归模型

1.线性回归 linear-regression

1.1 一个简化模型

问题引入:房价预测,究竟什么决定着房价。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v0KGQA6q-1646920568014)(01-linear-regression.assets/image-20220223211453671.png)]

简化模型为: y = w 1 x 1 + w 2 + w 3 + b y=w_1x_1+w_2+w_3+b y=w1x1+w2+w3+b​​​

1.2 线性模型

1.2.1 模型公式定义
  • 给定n为输入: x = [ x 1 , x 2 , . . . , x n ] T \mathbf{x}=[x_1,x_2,...,x_n]^T x=[x1,x2,...,xn]T
  • 线性模型中有一个n维权重和一个标量偏差

w = [ w 1 , w 2 , . . . , w n ] T , b \mathbf{w}=[w_1,w_2,...,w_n]^T,b w=[w1,w2,...,wn]T,b

  • 输出是输入的加权和

    y = w 1 x 1 + w 2 x 2 + . . . + w n x n + b y = w_1x_1+w_2x_2+...+w_nx_n+b y=w1x1+w2x2+...+wnxn+b

  • 向量版本: y = < w , x > + b y = < \mathbf{w,x} >+b y=<w,x>+b

1.2.2 线性模型可以看做是单层神经网络

由于带权重的层只有一个,所以是单层神经网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7wuPnxqV-1646920568016)(01-linear-regression.assets/image-20220223212836192.png)]

1.2.3 衡量预估质量
  • 比较真实值和预估值,例如房屋售价和估价

  • 假设y是真实值,$ \hat{y}$​是估计值,我们可以比较

    ι ( y , y ^ ) = 1 2 ( y − y ^ ) 2 \iota(y,\hat{y})=\frac{1}{2}(y-\hat{y})^2 ι(y,y^)=21(yy^)2​​​,这个叫做平方损失​​​​​​​

    这里的 1 2 \frac{1}{2} 21是为了求导时消去

1.3 训练数据

对于训练数据,理论上越多越好,但是现实中往往不是这样,没有足够的训练样本,之后会有深入的讨论,这里先不提。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I4Cv8ri2-1646920568017)(01-linear-regression.assets/image-20220223214909275.png)]

参数学习
  • 其实就是就算估计值和真实值之间的平方损失
  • 目标就是找到参数w和b使得损失函数的值最小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dxRpwgHE-1646920568018)(01-linear-regression.assets/image-20220223215131071.png)]

显示解

由于是线性模型所以存在显示解,即最优解可以直接求出来(线性模型也是唯一有最优解的模型,之后的模型都是没有最优解的)

  • 将偏差加入权重,即使输入样本X和参数w能够完成矩阵乘法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fHZ6Vxu9-1646920568018)(01-linear-regression.assets/image-20220225105537941.png)]

1.4 总结

  • 线性回归是对n维输入的加权,外加偏差
  • 使用平方损失来衡量预测值和真实值的差异
  • 线性回归有显示解
  • 线性回归可以看做是单层神经网络

2.基础优化方法

2.1 梯度下降

一个模型没有显示解的时候怎么办呢?解决方法:首先随机挑选一个初始值w,之后根据规则进行迭代

按照负梯度的值下降,负梯度是下降最快的方向,走的步长就是学习率。学习率是一个超参数。这样的好处就是不用管显示解,按照这个算法进行就可了。

比如:我下山的时候,不沿着大路走,而是每走一步都是沿着最陡峭的方向走,这样一步步走到山脚。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hg9hT4OA-1646920568019)(01-linear-regression.assets/image-20220225111558674.png)]

选择学习率
  • 不能太小,太小了就需要很多步才能到达,而计算梯度是一件很贵的事情。计算梯度基本上是模型中最贵的部分,一般不能太多次梯度计算。
  • 不能太大,震荡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C6WFgAjx-1646920568021)(01-linear-regression.assets/image-20220225111808900.png)]

小批量随机梯度下降
  • 在整个训练集上算梯度太贵
    • 一个深度神经网络模型可能需要数分钟至数小时
  • 那么我们就可以采用随机b个样本来近似损失
  • 1 b ∑ l ( x i , y i , w ) \frac{1}{b}\sum l(\mathbf{x_i},y_i,\mathbf{w}) b1l(xi,yi,w)
  • b是批量大小,另外一个重要的超参数

梯度的计算复杂度是和样本大小线性相关的,批量大小也不能太大和太小。

总结
  • 梯度下降通过不断沿着反梯度方向更新参数求解
  • 小批量随机梯度下降是深度学习默认的求解方法
  • 两个重要的超参数是批量大小学习率

3.线性回归的实现

分为从0开始实现和使用api实现,实际运用中都是采用后者,但是从零开始实现有利于更加清晰滴理解线性回归的实现过程

见 01-linear-regression-impl

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值