在线性回归中使用梯度下降法每次都要更新都需要遍历所有数据,当数据量大的时候耗时非常大。
于是提出了随机梯度下降法,通过一个随机选取的数据来获取“梯度”,进行更新。
与传统梯度下降法的不同在于,随机梯度的步长变化方向不是固定的,如下图所示,不一定沿着最小方向前进。
在这种情况中eta,即学习率,不能是一个固定值。因为当随机梯度接近最小值没到最小值时,固定的eta可能会使最小值没有更小反而更大了,所以eta要随着随机梯度下降法迭代次数的增加而 减小。
实现过程如下:
#自定义虚拟数据集
import numpy as np
import matplotlib.pyplot as plt
m=100000 #m个样本
x=np.random.normal(size=m)
X=x.reshape(-1,1)
y=4.*x+3.