zoukankan      html  css  js  c++  java
  • 梯度下降简介

    Outline

    • What's Gradient

    • What does it mean

    • How to Search

    • AutoGrad

    What's Gradient

    • 导数,derivative,抽象表达

    • 偏微分,partial derivative,沿着某个具体的轴运动

    • 梯度,gradient,向量

    f=(fx1;fx2;;fxn)

    19-梯度下降简介-梯度图.jpg

    What does it mean?

    • 箭头的方向表示梯度的方向
    • 箭头模的大小表示梯度增大的速率

    19-梯度下降简介-梯度是什么.jpg

    How to search

    • 沿着梯度下降的反方向搜索

    19-梯度下降简介-2梯度搜索.jpg

    For instance

    θt+1=θtαtf(θt)

    19-梯度下降简介-二维梯度下降1.gif

    19-梯度下降简介-二维梯度下降2.gif

    AutoGrad

    • With Tf.GradientTape() as tape:

      • Build computation graph
      • loss=fθ(x)
    • [w_grad] = tape.gradient(loss,[w])

    import tensorflow as tf
    
    w = tf.constant(1.)
    x = tf.constant(2.)
    y = x * w
    
    with tf.GradientTape() as tape:
        tape.watch([w])
        y2 = x * w
    
    grad1 = tape.gradient(y, [w])
    grad1
    
    [None]
    
    with tf.GradientTape() as tape:
        tape.watch([w])
        y2 = x * w
    
    grad2 = tape.gradient(y2, [w])
    grad2
    
    [<tf.Tensor: id=30, shape=(), dtype=float32, numpy=2.0>]
    
    try:
        grad2 = tape.gradient(y2, [w])
    except Exception as e:
        print(e)
    
    GradientTape.gradient can only be called once on non-persistent tapes.
    
    • 永久保存grad
    with tf.GradientTape(persistent=True) as tape:
        tape.watch([w])
        y2 = x * w
    
    grad2 = tape.gradient(y2, [w])
    grad2
    
    [<tf.Tensor: id=35, shape=(), dtype=float32, numpy=2.0>]
    
    grad2 = tape.gradient(y2, [w])
    grad2
    
    [<tf.Tensor: id=39, shape=(), dtype=float32, numpy=2.0>]
    

    2nd-order

    • y = xw + b

    • yw=x

    • 2yw2=yw=Xw=None

    with tf.GradientTape() as t1:
        with tf.GradientTape() as t2:
            y = x * w + b
        dy_dw, dy_db = t2.gradient(y, [w, b])
    

    d2y_dw2 = t1.gradient(dy_dw, w)

  • 相关阅读:
    1074. Reversing Linked List (25)
    1056. Mice and Rice (25)
    1051. Pop Sequence (25)
    1001. A+B Format (20)
    1048. 数字加密(20)
    1073. Scientific Notation (20)
    1061. Dating (20)
    1009. 说反话 (20)
    MyBatis学习总结(8)——Mybatis3.x与Spring4.x整合
    MyBatis学习总结(8)——Mybatis3.x与Spring4.x整合
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14123288.html
Copyright © 2011-2022 走看看