学习沐神课程 自用深度学习笔记05 线性回归基础优化算法
线性回归&基础优化算法
线性回归
导入:
美国买房 价格的影响因素: 卧室个数 卫生间个数 房屋大小 据此给出一个价格
影响因素记为关键因素 成交价记为y
权重为w
偏差为b
关键因素:x1,x2,x3关键因素: x_1, x_2, x_3 关键因素:x1,x2,x3
y=w1x1+w2x2+w3x3+by = w_1x_1 + w_2x_2 + w_3x_3 + b y=w1x1+w2x2+w3x3+b
引入线性模型
给定n维输入x=[x1,x2,…,xn]T给定n维输入\,\,\,\,\,\mathbf{x}=[x_1, x_2,\ldots,x_n]^T 给定n维输入x=[x1,x2,…,xn]T
线性模型有一个n
维权重和一个标量偏差
w=[w1,w2,…,wn]T,b\mathbf{w} = [w_1,w_2,\ldots,w_n]^T, \,\,\,\,b w=[w1,w2,…,wn]T,b
输出的是y
即加权和
y=w1x1+w2x2+⋯+wnxn+by=w_1x_1+w_2x_2+\cdots+w_nx_n+b y=w1x1+w2x2+⋯+wnxn+b
如果用向量来表示的话是y=<w,x>+b如果用向量来表示的话是\,\,\,y=<\mathbf{w},\,\mathbf{x}>+b 如果用向量来表示的话是y=<w,x>+b
线性模型可以看作是单层的神经网络 即仅有一层输入层 箭头代表权重
衡量预估质量
用于衡量偏差 比较典型的是平方损失
假设y为真实值,y^是估计值,我们比较l(y,y^)=12(y−y^)2假设y为真实值,\hat{y}是估计值,我们比较\,\,\,l(y,\hat{y})=\frac{1}{2}(y-\hat{y})^2 假设y为真实值,y^是估计值,我们比较l(y,y^)=21(y−y^)2
训练数据
收集一些数据点决定参数值,在此例子中我们寻找过去六个月卖的房子,训练数据通常越多越好,在数量不足时会有一些算法进行处理
在这里我们设有n
个样本,记
X=[x1,x2,…,xn]Ty=[y1,y2,…,yn]T\mathbf{X}=[\mathbf{x_1},\mathbf{x_2},\ldots,\mathbf{x_n}]^T\,\,\,\,\,\,\,\,\,\mathbf{y}=[y_1,y_2,\ldots,y_n]^T X=[x1,x2,…,xn]Ty=[y1,y2,…,yn]T
参数学习
训练损失
l(X,y,w,b)=12n∑i=1n(yi−<xi,w>−b)2=12n∣∣y−Xw−b∣∣2l(\mathbf{X},\mathbf{y},\mathbf{w},b)=\frac{1}{2n}\sum_{i=1}^n(y_i-<\mathbf{x}_i,\mathbf{w}>-b)^2=\frac{1}{2n}||\mathbf{y}-\mathbf{Xw}-b||^2 l(X,y,w,b)=2n1i=1∑n(yi−<xi,w>−b)2=2n1∣∣y−Xw−b∣∣2
这是我们要训练的函数,即我们会将参数X
、y
代入得到关于w
、b
的函数最小化损失
w∗,b∗=argminw,bl(X,y,w,b)\mathbf{w}^*,b^*=arg\,\min_{\mathbf{w},b}\,l(\mathbf{X},\mathbf{y},\mathbf{w},b) w∗,b∗=argw,bminl(X,y,w,b)显示解
值得注意的是,线性模型是有显示解的,也是课程里唯一有显示解、最优解的模型。
我们可以将偏差加入权重向量,具体做法是在输入矩阵末尾加入全1行向量,在权重向量末尾添加
b
,道理比较浅显。 在此前提下,损失函数对权重向量求导,由于损失函数是个凸函数,最优解在导函数为0是取得。
基础优化算法
梯度下降
挑选初始值 $w_0 $
对
t
迭代
wt=wt−1−ηδlδwt−1\mathbf{w}_t=\mathbf{w}_{t-1}-\eta\frac{\delta l}{\delta \mathbf{w}_{t-1}} wt=wt−1−ηδwt−1δl- 沿梯度方向增加损失函数值 自然沿反方向会减少值
- 学习率:步长 是一个超参数
事实上,每一个黄色箭头相当于迭代一次,沿梯度下降最快的方向前进一个步长。
注意:选择学习率不能太小(计算代价太大,容易陷入局部最优解)
也不能太大(容易发生震荡现象)
小批量随机梯度下降
由于在整个训练集上算梯度太贵
我们选择随机采样
b
个样本 i1,i2,…,ibi_1,i_2,\ldots,i_bi1,i2,…,ib 来近似损失
1b∑i∈Ibl(Xi,yi,w)\frac{1}{b}\sum_{i\in I_b}l(\mathbf{X}_i,y_i,\mathbf{w}) b1i∈Ib∑l(Xi,yi,w)b
为批量大小,是另一个重要的超参数
小规模随机梯度下降的优点是采用样本近似,在一定程度上会降低内存消耗
需要注意的是批量大小的选择同样要适中,后续会有对其选择的讲解
代码实现(不调包版)
导入包
%matplotlib inline # 在作图时plot的结果嵌入到notebook里面 import random # 随机梯度下降的随机数 import torch from d2l import torch as d2l # 一些简单的函数
构造数据集
(w与b可以构造用于检测结果)(\mathbf{w}与b可以构造 用于检测结果)(w与b可以构造用于检测结果)我们的任务是使用这个有限样本的数据集来恢复这个模型的参数。 我们将使用低维数据,这样可以很容易地将其可视化。 在下面的代码中,我们生成一个包含1000个样本的数据集, 每个样本包含从标准正态分布中采样的2个特征。 我们的合成数据集是一个矩阵
学习沐神课程 自用深度学习笔记05 线性回归基础优化算法相关推荐
- 沐神-动手学深度学习-环境的配置
在本次学习中,我使用Anaconda3进行环境的配置,使用Jupyter Notebook进行编程. 软件的安装我是在网上搜了个教程装的,结果很好可以使用.我着重对环境配置以及库函数的安装过程进行记录 ...
- 沐神-动手学深度学习-引言
2022年暑假,本科毕业,准研究生的我准备在漫长的假期中学习些自己感兴趣的知识,恰好看到了B站中沐神的动手学深度学习系列视频,之后便开始跟着教程开始学习.在之后的学习过程中,渐渐发现自己的学习效率开始 ...
- 08 线性回归 + 基础优化算法【动手学深度学习v2】
线性回归 输出层不当成一层 输入层和权重层放一起 x和y是列向量 因为loss=1/2(y-y_hat)^2 又因为y_hat的平均值=1/n(xi*w+b)=1/n(Xw+b) 唯一一个有显示解的模 ...
- 重磅!李沐「动手学深度学习」中文课程笔记来了!
点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 机器之心报道 markdown笔记与原课程视频一一对应,Jupyter代码均有详细中文注释,这份学习笔记值得收藏. 亚马逊资深首席科 ...
- 李沐「动手学深度学习」中文课程笔记来了!代码还有详细中文注释
关注公众号,发现CV技术之美 本文转自机器之心,编辑张倩. markdown笔记与原课程视频一一对应,Jupyter代码均有详细中文注释,这份学习笔记值得收藏. 去年年初,机器之心知识站上线了亚马逊资 ...
- 李沐《动手学深度学习》第二版 pytorch笔记1 环境搭建
李沐<动手学深度学习>第二版pytorch笔记1 搭建环境 文章目录 李沐<动手学深度学习>第二版pytorch笔记1 搭建环境 此时尚有耐心 虚拟环境搭建 创建虚拟环境 查看 ...
- 深度学习笔记(10) 优化算法(二)
深度学习笔记(10) 优化算法(二) 1. Adam 优化算法 2. 学习率衰减 3. 局部最优的问题 1. Adam 优化算法 Adam代表的是 Adaptive Moment Estimation ...
- 深度学习笔记(9) 优化算法(一)
深度学习笔记(9) 优化算法(一) 1. Mini-batch 梯度下降 2. 指数加权平均数 3. 动量梯度下降法 4. 均方根反向传播 1. Mini-batch 梯度下降 把训练样本放大巨大的矩 ...
- 李沐《动手学深度学习》第二版比赛2-Classify Leaves
李沐<动手学深度学习>第二版比赛2-Classify Leaves 我的偶像,李沐大神主讲的<动手学深度学习>(使用Pytorch框架,第一版使用的是MXNet框架)目前已经进 ...
最新文章
- matlab内存管理
- mysql中如何设置过滤器_mysql – 使用计数器实现过滤器
- react 引入html文件_javascript – React:如何加载和呈现外部html文件?
- c++fabs函数_二次函数背景下的菱形存在性问题
- KBMMW 4.80.00 发布
- osgi学习之---扩展点理解
- php百度人脸识别做登陆,php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能...
- 分配的访问权限的展台应用:最佳做法
- 我们学过 飞鸽传书 的应该知道
- html京东下拉菜单设置,div css下拉导航菜单(图+演示)
- uniapp中qrcode生成二维码后传的参数不见了_二维码扫描登录,你必须知道的 3 件事...
- android4.0以上,利用耳机接听键实现自动接听,部分手机失败原因+解决方法(比如华为P7)
- 绪论-第1章-《数据结构习题集》答案解析-严蔚敏吴伟民版
- 计算机专业自我简介50字,2021年个人简历自我评价50字
- qq飞车鸿蒙车队,qq飞车鸿蒙版
- 龙架构(LoongArch)赋能众享链网,相关产品已完成适配
- Liquibase中利用changelog增加表字段
- 翻译考试用计算机作答,2019年CATTI考试改为机考,官方首次披露真题
- CSS精灵图、字体图标
- 机器语言-汇编语言-高级语言各自优缺点
热门文章
- 沐神-动手学深度学习-环境的配置