Pytorch实践之梯度下降法

文章目录

  • 基本概念
  • 算法
  • 代码实践

基本概念

凸函数:在函数上任取两点,两点的线段均在这个函数的平面上。


Pytorch实践之梯度下降法_第1张图片


分治法:找到最近的,不断进行小方格划分,直到找到最优点。


Pytorch实践之梯度下降法_第2张图片


以上为优化问题,求最小值,N代表总数len(XS)。

算法

α代表学习率,取得小一点,保持收敛,每次都选择梯度下降的最快的方向,这就类比是算法中的贪心算法,只看眼前最好的选择,不一定得到最优的结果(全局),只能得到局部最优。


Pytorch实践之梯度下降法_第3张图片


打个比方,如上图,从高点下落,此时梯度下降最快,但是爬升时梯度是正的,切非最快,所以就要往低点行进,最终回落到局部最小点,但是此时的局部最小点不是全局最小点。此函数称为非凸函数,即取两个点,连成直线,不能保证线的所有点都在函数上方。


Pytorch实践之梯度下降法_第4张图片


鞍点处梯度不变。

Cost(w)就相当于纵坐标y,W就相当于横坐标x。
Pytorch实践之梯度下降法_第5张图片

计算MSE的目标函数
Pytorch实践之梯度下降法_第6张图片

套公式( )

Pytorch实践之梯度下降法_第7张图片

epoch进行100轮的训练

Pytorch实践之梯度下降法_第8张图片

损失函数不断衰减,趋于收敛稳定

Pytorch实践之梯度下降法_第9张图片

此图像为训练发散了,学习率取的太大

Pytorch实践之梯度下降法_第10张图片

梯度下降:用整个成本均值的平均损失作为梯度下降的依据

Pytorch实践之梯度下降法_第11张图片

随机梯度下降:指的是,N个数据从中随机选一个数据,所以公式就是单个样本的损失函数对权重求导

Pytorch实践之梯度下降法_第12张图片

eg:

梯度下降是所有样本的,这样陷入到鞍点,就动不了

但是随机梯度下降:因为取的是随机样本,又因为带有噪声,所以会推动行进

单个样本以上


Pytorch实践之梯度下降法_第13张图片

拿一个样本进行更新

更新:每一个样本对梯度进行更新
随机 梯度下降:拿单个样本的损失函数对权重求导,然后进行更新

综上:
批量梯度,批量随机梯度

Pytorch实践之梯度下降法_第14张图片

深度学习就是要看epoch轮数与损失之间的图像

代码实践

Pytorch实践之梯度下降法_第15张图片

随机梯度下降,定义函数无需遍历所有。

函数也是向着收敛方向。

梯度下降需要遍历所有的点。

结果是收敛的。
Pytorch实践之梯度下降法_第16张图片

你可能感兴趣的:(Pytorch,pytorch,python,机器学习,人工智能,深度学习)