梯度下降法的原理以及python伪代码

本文介绍了梯度下降法的基本原理,它用于优化模型参数以减小损失函数。损失函数衡量预测值与实际值的差距,梯度下降通过调整学习率寻找局部最小值。学习率的选择至关重要,过大可能导致震荡,过小则收敛缓慢。文章还探讨了局部最小值问题,并提供了一个简单的梯度下降法Python代码示例。
摘要由CSDN通过智能技术生成

梯度下降法

博主的理解:y = w x + b, 如果y和真实差距太大,说明w起作用太大了,这个时候我们利用梯度去控制一下。(浅显理解)

什么是损失函数

用于衡量模型对任何给定数据的性能。损失函数将预测值与期望值之间的误差进行量化,并以单个实数的形式表示出来。整个流程就是,对w进行初始化,然后计算预测值y,接着计算损失函数,为了让损失函数最小,利用梯度下降法对给定w进行参数修正。
在这里插入图片描述

那什么是梯度下降法呢

博主的理解:假如你在珠穆朗玛峰上,而你想下到山底,此时的下山的过程就是梯度下降法的流程,山坡的斜率为梯度,每一步的步伐为学习率。梯度下降法是一种求解函数局部极小值的迭代优化算法。
在这里插入图片描述
学习率的大小,需要我们谨慎选择:

  • lr太大,可能在谷底震荡
  • lr太小,收敛慢
    在这里插入图片描述
局部最小值

实际上现实生活中,我们遇到的绝大部分都是非凸问题,也就是存在许多极小值点,lr设置太小很容易陷在极小值点再也出不来了,这就是为什么需要优化器需要动量这个参数了!我们可以借助上一时刻的lr来帮助我们冲出当前极小值区域

梯度下降法python代码实现

def train(X, y, W, B, alpha, max_iters):
	
	dW = 0                      # 梯度
	db = 0
	m = X.shape[0]              # 训练样本第一个数据,这里是拉平的,第一个维度为批次
	for i in range(max_iters):
		dW = 0
		db = 0
		for j in range(m):   # 对每一个标量进行梯度下降法
			W = W - alpha * (dW / m)
			B = B - alpha * (dB / m)
	return W, B
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liiiiiiiiiiiiike

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值