栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

梯度下降法

博主的理解: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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号