随机梯度下降法(SGD)
发布时间
阅读量:
阅读量
随机梯度下降(Stochastic Gradient Descent,SGD)作为一种优化算法,其主要功能是用于降低目标函数的值,在处理大规模数据集时表现出较强的适用性。相较于批量梯度下降(Batch Gradient Descent),SGD在每次迭代过程中仅采用单一样本进行梯度计算。这种方式不仅有效降低了计算资源的消耗,还加快了优化进程,同时由于引入了随机因素,有助于模型避免陷入局部最优解。
以下为利用Python语言在实现线性回归任务时所采用的随机梯度下降法的一个基础代码示例:
import numpy as np
def sgd(X, y, learning_rate, max_iter, batch_size=1, tol=1e-6):
num_samples, num_features = X.shape
theta = np.random.randn(num_features)
for _ in range(max_iter):
idx = np.random.randint(0, num_samples, batch_size)
X_batch, y_batch = X[idx], y[idx]
gradient = (X_batch.T
全部评论 (0)
还没有任何评论哟~
