zoukankan      html  css  js  c++  java
  • Introduction Of Gradient Descent

    • 不是一个机器学习算法
    • 是一种基于搜索的优化方法
    • 作用:最小化一个损失函数
    • 梯度上升法:最大化一个效用函数
    import matplotlib.pyplot as plt
    import numpy as np
    plot_x = np.linspace(-1, 6, 141)
    # 损失函数
    plot_y = (plot_x - 2.5) ** 2 - 1
    plt.plot(plot_x, plot_y)
    plt.scatter(plot_x[:70:10], plot_y[: 大专栏  Introduction Of Gradient Descent70:10])
    plt.xlabel("param theta")
    plt.ylabel("loss func J")
    plt.show()
    

    png

    • 在直线和曲线方程中,导数代表切线的斜率
    • 导数代表theta单位变化时,J相应的变化
    • 导数可以代表方向,对应J增大的方向

    我们将θ向导数小的方向移动,来获得极值,如下式

    • η被称为学习率(learning rate)
    • η的取值影响获得最优解的速度
    • η取值不合适,设置得不到最优解
    • η是梯度下降法的一个超参数

    η取值影响

    • 过小,收敛速度慢
    • 过大,可能导致不收敛

    注意

    • 并不是所有函数都有唯一的极值点(可能会找到局部最优解,并不是全局最优解)
    • 多次运行,随机化初始点
    • 梯度下降法的初始点也是一个超参数
  • 相关阅读:
    面向对象的设计模式2
    数据结构
    算法题目1
    5.7(1) 反射
    hashMap原理(java8)
    6.1 接口
    18.1 线程
    13.2 具体的集合
    scrapy(2)——scrapy爬取新浪微博(单机版)
    5.1 类、超类和子类
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12286183.html
Copyright © 2011-2022 走看看