梯度下降伪代码

梯度下降伪代码

  • 梯度下降
    • Batch Gradient descent
    • Stochastic Gradient descent
    • Min Batch Gradient descent

梯度下降

一般我们不特指的话,梯度下降就是指的是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.

你可能感兴趣的:(深度学习,深度学习)