Pytorch深度学习笔记①:线性回归+基础优化方法

一、线性回归

首先,在介绍线性回归之前,先用一个简化的模型作为引入。

假设某地的房价影响因素有地理位置、人流量以及面积大小,分别记为x1、x2、x3。而房屋的最终成交价 y = w1x1  + w2x2 + w3x3 + b。

此即为线性模型,给定了n维输入 X = [x1, x2, ... , xn]T,以及模型的n维权重 w = [w1, w2, ..., wn]T和标量偏差b,模型的输出即为输入的加权和:y = w1x1 + w2x2 + ... + wnxn + b 。

由此可见,线性模型可以看做是一个单层的神经网络。

当然,在有了模型以后,我们可以对其定义损失,用于衡量预估质量,比较真实值与预估值,例如房屋售价和预估价进行比较。假设真实值为y,而预估值为y\hat{},比较常用的即为平方损失\imath\left ( y,y\hat{} \right ) = \frac{1}{2}\left ( y-y\hat{} \right )^{2}。前面加1/2是为了方便在求导时消去。

在定义了模型和损失之后,我们便可进行训练数据。假定我们有n个样本,X = [x1, x2, ..., xn],y = [y1, y2, ..., yn],我们便可以将这些数据丢到所定义的线性模型中进行训练来得到我们的权重和偏差。

那是如何进行参数学习的呢?

首先训练损失, \imath\left ( X,y,w,b \right ) = \frac{1}{2n}\sum{}\left ( y_{i}-\left \langle x_{i},w \right \rangle-b\right )^{2},接着再最小化损失函数进行学习参数即可得到所需的权重w*和b*:w^{*},b^{*}=arg min_{(w,b)}\l(X,y,w,b)

当然,线性模型由于模型简单,可以直接求出显式解,也就意味着其复杂度有限,很难符合较为复杂的数据或复杂的应用。像后续所学的网络均无法求出显式解。

二、基础优化方法

对于优化方法,在之后的过程中会有比较集中的学习,此处仅先对较为常用的一种优化方法——梯度下降法进行简单总结。

首先,梯度下降法的具体实现。先挑选一个参数的随机初始值 w0,然后重复迭代参数 t = 1,2,3 用以更新参数w,具体更新规则为:w_{t}=w_{t-1}-\eta \frac{\partial l}{\partial w_{t-1}}

我们来分析一下这个参数更新规则。

①首先需要了解,沿着梯度方向为此损失函数增加最快的方向,我们在前面加了负号即为负梯度方向,是此损失函数下降最快的方向。

 ②\eta为学习率,是步长的超参数,用于确定每一次迭代下降多长。

 对于学习率,我们不能选太小,这会导致我们要到达最优解要走很多步,浪费计算资源。

同时也不能选太大,极易导致最终结果发散。

 小批量随机梯度下降

由于在整个训练集上算梯度太贵,一个深度神经网络模型可能需要数分钟至数小时。所以我们可以采用小批量随机梯度下降,我们可以随机采样b个样本i1, i2, ..., ib来近似损失。

\frac{1}{b}\sum l\left ( x_{i},y_{i},w \right )

b即为批量大小,是另一个超参数。当然b也不能设置太小,这样不适合并行来最大利用计算资源;同时也不能设置过大,这会使得内存消耗增加,浪费计算。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值