跳到主要内容

梯度

梯度
a. 向量
b.学习(参数更新)的方向
梯度下降
a. 算出梯度
b. 常见的导数的计算

反向传播
a. 计算图
i.把数据和操作通过图来表示
b. 反向传播
从后往前,计算每一层的梯度

pytorch完成线性回归
a.tensor(data,requird_qrad=True)
i. 该tensor后续会被计算梯度
i.tensor所有的操作都会被记录在grad_fn
b. with torch.no arad():
i.其中的操作不会被追踪
c. 反向传播:output.backward()
d. 获取梯度:x.grad,累加梯度
i所以:每次反向传描之前需要先把梯度置为0之后

tensor.data:获取tensor中的数据,
required_grad=True的时候,获取数据内容,不带grad等属性

tensor.detach().numpy()能够实现对tensor中的数据
的深拷贝,转化为ndarray类型

常见优化算法
1. 梯度下降:全局最优
2. 随机梯度下降:隨机的从样本中抽出一个样本进行梯度的
更新
3.小批显梯度下降:找一波数据计算梯度,使用均值更新参

4. 动量法:对梯度进行平滑处理,防止振幅过大
5. adaGrad:自适应学习率
6. RMSProp:对学习率进行加权
Adam:动量法+RMSprop,学习率能够自适应,梯度的
振幅不会过大