机器学习优化算法

创建时间 2021-12-12
更新时间 2021-12-12

这个文章来自于 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()

png

随机梯度下降法 Stochastic Gradient Descent(SGD)

动量梯度下降法

w_t = w_t-\eta \cdot g_w

参考文献

  1. https://www.bilibili.com/video/BV1X34y197mF