Deep Neural Networks with Pytorch(2)

目录

2.1 Linear Regression in 1D prediction

1.linear regression

2.pytorch中:Linear类,如何通过nn.module自定义层

2.2 Linear Regression Training

1.训练Training

2.损失Loss

①梯度下降是什么

②学习率learning rate选择的问题

③何时停止梯度下降

④Cost


2.1 Linear Regression in 1D prediction

1.linear regression

2.pytorch中:Linear类,如何通过nn.module自定义层

!!Pytorch中同时处理多个输入,认为每一行是一个样本

  1. Linear Regression

线性回归:拟合特征和值之间的线性关系

在pytorch中可以一次输入多个样本,只要其中每一行表示一个样本就行

2     Linear Class

Deep Neural Networks with Pytorch(2)

图2.1-1  Linear模块

其中,in_features是每个输入样本的维度(输入的列数),out_features输出的维度。

model.parameters()方法查看模型中的参数,注意在前向传播的时候不需要显式调用forward函数,只需要用括号代理就会自动调用forward。

3     自定义Modules

表2.1-1  创建自定义modules

  • Import torch.nn as nn
  • 继承nn.Module类
  • __init__(in_features,out_features)函数初始化父类构造器,传入输入输出维度参数,定义网络层
  • forward方法中进行前向传播的计算过程,返回计算结果

可以使用  [model].state_dict()[‘key’].data[idx]  来修改模型中的参数(图2.1-2

Deep Neural Networks with Pytorch(2)

图2.1-2  用state_dict()方法修改模型参数

[model].state_dict()返回一个python字典,可以用keys()获得其键,用values()获得值(图2.1-3)

Deep Neural Networks with Pytorch(2) 

图2.1-3  用state_dict()方法的keys()和values()方法


2.2 Linear Regression Training

1.训练Training

2.损失Loss

1.训练Training

对于Linear Regression,对于噪声的假设是Gassian分布的(图2.2-1),当Gassian分布的标准差越大,数据分布越分散,样本的偏离程度就越大

Deep Neural Networks with Pytorch(2)

图2.2-1  左图中的横轴表示偏移直线的量,纵轴表示添加该噪声的概率

Linear Regression训练的过程就是找拟合数据点的最好的直线参数的过程,通过最小化均方误差和(MSE)来实现:(图2.2-2)

Deep Neural Networks with Pytorch(2)

图2.2-2  MSE公式

  1. 损失Loss

Loss就是一个关于参数的函数,其值取决于参数的取值,提供了评判当前参数值好坏的标准

1.Gradient Descent

梯度下降是找函数最小值的方法。

①梯度下降是什么

②学习率learning rate选择的问题

③何时停止梯度下降

④Cost

1.梯度下降是什么

 Deep Neural Networks with Pytorch(2)

Deep Neural Networks with Pytorch(2)

图2.3-1  梯度下降

为了找寻最小值,需要将参数向梯度导数的负数方向移动一小段距离。

2.学习率learning rate选择的问题

学习率太大会跳过最小值,学习率太小导致训练次数增加。

3.何时停止梯度下降

设置迭代次数;看loss是否停止下降

4.Cost

一个batch上损失函数(loss)的总和或者平均叫代价函数(cost)。

2.Pytorch Slope

一个epoch在整个数据集上迭代一次的过程,因此GD算法一次迭代就是一个epoch。而SGD则是多次迭代一个epoch。

Deep Neural Networks with Pytorch(2)

图2.4-1  手动更新参数值

1.Pytorch Linear Regression Training Slope and Bias

Deep Neural Networks with Pytorch(2) 

图2.5-1  损失函数/w,b曲面—等高线图

Deep Neural Networks with Pytorch(2)

 

图2.5-2  梯度方向垂直于等高线,指向最小值方向p

注:本文所有截图来自Coursera同名课程,感谢Coursera提供的学习资源~

上一篇:震惊!std::string operator + 的复杂度居然是……


下一篇:html(10)