2.6.2 梯度下降法

图片[1]-2.6.2 梯度下降法-大赛人网
图片[2]-2.6.2 梯度下降法-大赛人网
  • 梯度方向:函数变化增长最快的方向(变量沿此方向变化时函数增长最快)
  • 负梯度方向:函数变化减少最快的方向(变量沿此方向变化时函数减少最快)

因为损失函数是系数的函数,那么如果系数沿着损失函数的负梯度方向变化,此时损失函数减少最快,能够以最快速度下降到极小值。

图片[3]-2.6.2 梯度下降法-大赛人网
图片[4]-2.6.2 梯度下降法-大赛人网
图片[5]-2.6.2 梯度下降法-大赛人网

示例代码:

def J(x):
    """目标函数"""
    return (x**2 - 2) ** 2

def gradient(x):
    """梯度"""
    return 4 * x**3 - 8 * x

x = 1  # x的初始值
alpha = 0.1  # 学习率
while (j := J(x)) > 1e-30:  # 当目标函数的值小于10的-30次幂时停止计算
    print(f"x={x}\tJ={j}")
    grad = gradient(x)  # 求解梯度
    x = x - alpha * grad  # 更新参数
图片[6]-2.6.2 梯度下降法-大赛人网
图片[7]-2.6.2 梯度下降法-大赛人网
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容