随机平均梯度下降(Stochastic Average Gradient Descent,SAG)是一种随机优化算法,用于求解大规模数据集的最优解。SAG的主要思想是将历史梯度的平均值作为梯度的估计。它结合了随机梯度下降(SGD)的计算效率和批量梯度下降(BGD)的收敛性。通过使用历史梯度的平均值,SAG能够在每次迭代时减小梯度估计的方差,从而加速收敛。
以下是使用Python实现线性回归中的随机平均梯度下降法的简单示例代码:
import numpy as np
def sag(X, y, learning_rate, max_iter, tol=1e-6):
num_samples, num_features = X.shape
theta = np.random.randn(num_features)
gradients = np.zeros