pytorch学习笔记-梯度下降算法

Pytorch梯度下降与随机梯度下降解析

梯度下降

为什么需要梯度下降

线性模型 y = w * x 时,我们可以暴力枚举w,但是当维度变多时,暴力就行不通了
所以我们考虑使用分治来解决问题
假设现在有两个维度
在这里插入图片描述
我们随机取四个区域,计算出每个区域中最好的结果,再在选中的结果区域中再取四个区域… 以此类推,最后能找到一组参数
这种做法的问题
在这里插入图片描述
我们无法保证一定能取到最小值,所以有可能永远拿不到真正最好的参数
在这里插入图片描述
我们把找到模型最优的一组参数的过程就叫优化
在这里插入图片描述
cost函数也就是loss求和
梯度下降是贪心的思维
在这里插入图片描述

贪心算法的特征就是不一定能得到全局最好的结果,梯度下降也是同理,我们可能拿到的是局部最优,而不是全局最优

有一些资料有助于学习使用PyTorch实现梯度下降。“每天五分钟玩转深度学习框架PyTorch梯度下降学习率衰减”提及了在梯度下降学习率衰减的相关内容,当训练集的loss下降到一定程度后,可进行学习率的衰减,还介绍了Pytorch学习率调整的两种方法,能帮助学习者理解如何在梯度下降过程中优化学习率问题[^1]。 “Pytorch --梯度下降算法”详细阐述了梯度下降算法的优点,该算法相比于大规模数值矩阵求解效率更高,适用于多种类型函数,能结合不同优化器等技巧提高性能,在大规模数据集和复杂模型下表现良好,这些知识有助于学习者全面认识梯度下降算法PyTorch中的应用优势[^2]。 “【Pytorch梯度下降算法”对梯度下降算法进行了系统介绍,包括梯度概念、梯度下降与梯度上升、算法详解、具象解释、相关概念、算法缺点以及具体应用(如拟合直线和MNIST数据集训练),为学习者提供了从理论到实践的学习路径[^3]。 “PyTorch深度学习——梯度下降算法”展示了经过100次迭代后权重更新及预测值的变化情况,还提到使用加权均值后的cost_function更加平滑,能让学习者直观感受梯度下降在实际迭代中的效果[^4]。 “【深度学习PyTorch深度学习笔记03 - 梯度下降算法”对比了随机梯度下降梯度下降和mini - batch批量的随机梯度下降的特点,说明不同梯度下降方式的优缺点,帮助学习者根据实际情况选择合适的梯度下降方法[^5]。 ```python import torch # 示例:一个简单的梯度下降实现 # 定义一个简单的线性模型 x = torch.tensor([1.0], requires_grad=False) y = torch.tensor([2.0], requires_grad=False) w = torch.tensor([0.1], requires_grad=True) # 定义学习率和迭代次数 learning_rate = 0.01 epochs = 100 for epoch in range(epochs): # 前向传播 y_pred = w * x loss = (y_pred - y) ** 2 # 反向传播 loss.backward() # 更新权重 with torch.no_grad(): w -= learning_rate * w.grad w.grad.zero_() print(f"最终权重: {w.item()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值