梯度下降伪代码

梯度下降

一般我们不特指的话,梯度下降就是指的是Batch Gradient descent。

Batch Gradient descent

一般来说,Batch Gradient descent 的伪代码如下:

// A code block
for i in range ( epochs ):   #epoch中文名字叫训练周期,epoch每增加1,就代表训练集上的所有数据被使用一次
	params_grad = evaluate_gradient ( loss_function , training_data , params )#表示使用batchsize个数据来更新参数。这里Batch恰好等于训练集上的所有数据
	params = params - learning_rate * params_grad 
	#完成一个Batch训练,相当于参数迭代(iteration/updata)一次

Stochastic Gradient descent

一般来说,Stochastic Gradient descent 的伪代码如下:

for i in range ( nb_epochs ): #epoch中文名字叫训练周期,epoch每增加1,就代表训练集上的所有数据被使用一次
	np. random . shuffle (training_data)
	for example in training_data :
		params_grad = evaluate_gradient ( loss_function , example , params )#表示使用单个样例来进行参数更新/迭代,这里的batchsize=1。每个Batch恰好等于单个样例
		params = params - learning_rate * params_grad
		##完成一个Batch训练,相当于参数迭代(iteration/updata)一次

Min Batch Gradient descent

一般来说,Stochastic Gradient descent 的伪代码如下:


for i in range ( nb_epochs ):#epoch每增加1,就代表训练集上的所有数据被使用一次
	np. random . shuffle ( training_data  )#打乱训练集上的数据
	for batch in get_batches (training_data , batch_size =50):#每次从训练集上拿50个样例,直到拿完为止。
		params_grad = evaluate_gradient ( loss_function , batch , params )#一次参数更新/迭代(iteration/updata)需要用到batchsize个样例,这里的batchsize=50。每个Batch恰好等于50个样例
		params = params - learning_rate * params_grad
		#每个 Epoch 具有的 Iteration 个数: training_data/batchsize(完成一个Batch训练,相当于参数迭代一次)

参考文献链接: link.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值