ElitesAI·动手学深度学习PyTorch版Task01

ElitesAI·动手学深度学习PyTorch版

Task01

线性回归¶

主要内容包括:
线性回归的基本要素
线性回归模型从零开始的实现
线性回归模型使用pytorch的简洁实现

线性回归假设输出与各个输入之间是线性关系:

price=warea⋅area+wage⋅age+b

优化函数 - 随机梯度下降

总结一下,优化函数的有以下两个步骤:

(i)初始化模型参数,一般来说使用随机初始化;
(ii)我们在数据上迭代多次,通过在负梯度方向移动参数来更新每个参数
课后作业:

1、假如你正在实现一个全连接层,全连接层的输入形状是7 \times 87×8,输出形状是7 \times 17×1,其中7是批量大小,则权重参数ww和偏置参数bb的形状分别是__81__和__11__

解析:设输入批量为X \in \mathbb{R}^{7 \times 8}X∈R
7×8
,对应的输出为Y \in \mathbb{R}^{7 \times 1}Y∈R
7×1
,令权重参数为w \in \mathbb{R}^{8 \times 1}w∈R
8×1
,则Xw \in \mathbb{R}^{7 \times 1}Xw∈R
7×1
,然后我们给XwXw中的每个元素加上的偏置是一样的,所以偏置参数b \in \mathbb{R} ^{1 \times 1}b∈R
1×1
,基于加法的广播机制,可以完成得到输出Y = Xw + bY=Xw+b。参数的形状与批量大小没有关系,也正是因为如此,对同一个模型,我们可以选择不同的批量大小。

2、课程中的损失函数定义为:

def squared_loss(y_hat, y):
	return (y_hat - y.view(y_hat.size())) ** 2 / 2

将返回结果替换为下面的哪一个会导致会导致模型无法训练:(阅读材料:https://pytorch.org/docs/stable/notes/broadcasting.html)
选B
A:(y_hat.view(-1) - y) ** 2 / 2
B: (y_hat - y.view(-1)) ** 2 / 2
C:(y_hat - y.view(y_hat.shape)) ** 2 / 2
D:(y_hat - y.view(-1, 1)) ** 2 / 2

解析:y_hat的形状是[n, 1],而y的形状是[n],两者相减得到的结果的形状是[n, n],相当于用y_hat的每一个元素分别减去y的所有元素,所以无法得到正确的损失值。对于第一个选项,y_hat.view(-1)的形状是[n],与y一致,可以相减;对于第二个选项,y.view(-1)的形状仍是[n],所以没有解决问题;对于第三个选项和第四个选项,y.view(y_hat.shape)和y.view(-1, 1)的形状都是[n, 1],与y_hat一致,可以相减。以下是一段示例代码:

填空题:
在这里插入图片描述
解析:
在这里插入图片描述

Softmax与分类模型

softmax回归的基本概念
如何获取Fashion-MNIST数据集和读取数据
softmax回归模型的从零开始实现,实现一个对Fashion-MNIST训练集中的图像数据进行分类的模型
使用pytorch重新实现softmax回归模型
在这里插入图片描述
在这里插入图片描述

多层感知机

多层感知机的基本知识
使用多层感知机图像分类的从零开始的实现
使用pytorch的简洁实现

课后习题
在这里插入图片描述
在这里插入图片描述

深度神经网络训练的时候,采用的是反向传播方式,该方式背后其实是链式求导,计算每层梯度的时候会涉及一些连乘操作,因此如果网络过深,那么如果连乘的因子大部分小于1,最后乘积的结果可能趋于0,也就是梯度消失,后面的网络层的参数不发生变化,后面的层学不到东西,那么如果连乘的因子大部分大于1,最后乘积可能趋于无穷,这就是梯度爆炸
https://blog.csdn.net/y12345678904/article/details/79581550
4、梯度裁剪
梯度裁剪主要是为了解决梯度爆炸问题而提出的,其核心思想是:如果梯度的范数大于某个阈值,则在应用SGD更新之前将其缩小。

应用梯度裁剪前后的对比图:
在这里插入图片描述
这显示的是一个简单RNN的损失曲面(隐藏状态是标量而非矢量),“悬崖”很危险,因为它有陡峭的坡度,在左侧,由于陡峭的坡度,梯度下降需要两个非常大的步骤,导致攀登悬崖然后向右陡升(两个不好的更新)在右侧,梯度剪裁减小了这些步骤的大小,因此效果不那么剧烈。

作者:Evermemo
链接:https://www.jianshu.com/p/604a29582d8e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值