线性回归 & Softmax与分类模型 & 多层感知机

本文深入浅出地介绍了深度学习中的核心概念,包括线性回归、Softmax与分类模型及多层感知机。通过实践操作,讲解了如何使用Pytorch进行模型训练,并探讨了激活函数的选择与应用。

目录

一、线性回归

1 线性回归

2 动手实践

2.1 尽量使用矢量/矩阵运算,提高计算效率

2.2  Pytorch 梯度累积机制

二 Softmax与分类模型

1 Softmax

2 分类模型

3 动手实践

(1)广播机制

(2)关于softmax函数

3 测验题

三 多层感知机

1 多层感知机

2 激活函数


一、线性回归

大学的时候,统计学专业,线性回归这个内容足足有一本书,包含了很多内容。《动手学深度学习》这本书,书如其名,侧重于实践。

1 线性回归

统计学习方法=模型+策略+算法,下面就从这三部分对线性回归进行描述。

待更新

 

2 动手实践

实现一个模型的pipeline包括以下几个部分:

1 准备数据集

2 数据读取

3 定义模型

4 定义损失函数

5 定义优化器/优化函数

6 参数初始化

参数初始化方法有很多,什么?你想要初始化为一个常数?你摊上大事了!!!

如果初始化后同一层神经元的参数都相同,那么在模型训练时,该层中每个神经元将根据相同输入计算出相同的输出,反向传播时梯度都一样,这种情况下,无论该层神经元有多少,本质上只有1个神经元在发挥作用。
 

7 模型训练

8 模型预测

这里不详细写每一步的具体实现,只总结一些编程中的二三事:

2.1 尽量使用矢量/矩阵运算,提高计算效率

为了提高计算效率,尽量避免用for循环,应尽可能的使用矢量运算。这是因为for循环是串行的,而工具库封装的向量运算、矩阵运算等是做了优化的,比如并行实现,所以效率会更高。

2.2  Pytorch 梯度累积机制

对于求解数值解,都需要用到梯度计算与梯度更新(对各个参数同时进行更新),若使用Pytorch,要格外注意一件事情,那就是每轮迭代要记得梯度清零,因为Pytorch中实现的梯度计算是累积梯度。若使用tensorflow就不需要梯度清0了,因为它计算的就是当前batch中的梯度。

l = loss(output, y.view(-1, 1))
optimizer.zero_grad() # reset gradient
l.backward()  # compute gradient
optimizer.step() # update gradient

也许你要问了,既然还要显式梯度清零这么麻烦,为什么pytorch还要这么设计呢?因为有时候我们会用到梯度累加。当你GPU显存较少时,你又想要调大batch-size,此时你就可以利用梯度累加来进行backward,在每次反向传播后,先不进行优化器的迭代,多累积几个batch的梯度后,再进行优化器迭代、梯度清零的操作。这样做可以达到用时间换效果的目的。

二 Softmax与分类模型

Softmax常用于多分类模型

1 Softmax

待更新

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值