美文网首页
【梯度下降】求解y=cos(x)的最优值

【梯度下降】求解y=cos(x)的最优值

作者: 唯师默蓝 | 来源:发表于2019-04-12 10:08 被阅读0次
    import numpy as np
    # 设置学习率
    eta = 0.1
    # 设置 x 的初始值
    theta = 0.1
    # 设置阈值
    pre = 0.00000000001
    
    # 方程 f(x) = cos(x)
    def Fun(x):
        return np.cos(x)
    # 对 x 求偏导
    def PxFun(x):
        return -np.sin(x)
    # 更新参数x : x - eta * PxFun(x),eta为学习率
    def RefreshX(x):
        return x - eta * PxFun(x)
    
    # 1、初始化 x 为任意参数
    # 2、求解梯度(函数的导数)
    # 3、更新参数theta : theta = theta - gradient*eta,eta为学习率
    # 4、达到指定迭代次数时训练结束
    while True:
        if (abs(eta*PxFun(theta)) < pre):
            break
        last_theta=RefreshX(theta)
        theta = last_theta
        print("x:",theta)
    print("最优解 :" ,theta)
    

    相关文章

      网友评论

          本文标题:【梯度下降】求解y=cos(x)的最优值

          本文链接:https://www.haomeiwen.com/subject/rzyqwqtx.html