机器学习优化算法
这个文章来自于 B 站视频 [1] 的总结
import numpy as np import matplotlib.pyplot as plt
梯度下降法
def f(x1, x2): return x1 ** 2 + 2 * x2 ** 2 + x1 def grad(x1, x2): return 2 * x1 + 1, 4 * x2
x1, x2 = 0.3, 0.3 # 2. 设定学习率 eta = 0.1 # 3. 开始迭代 values = [] for step in range(20): g1, g2 = grad(x1, x2) x1 -= eta * g1 x2 -= eta * g2 fn = f(x1, x2) # print((x1, x2), f(x1, x2)) values.append(fn) plt.plot(values) plt.show()
随机梯度下降法 Stochastic Gradient Descent(SGD)
动量梯度下降法
w_t = w_t-\eta \cdot g_w