其他分享
首页 > 其他分享> > 梯度下降简介

梯度下降简介

作者:互联网

目录


Outline

What's Gradient


\[\nabla{f} = (\frac{\partial{f}}{\partial{x_1}};\frac{\partial{f}}{{\partial{x_2}}};\cdots;\frac{\partial{f}}{{\partial{x_n}}}) \]


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

What does it mean?

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

How to search

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

For instance


\[\theta_{t+1}=\theta_t-\alpha_t\nabla{f(\theta_t)} \]


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

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

AutoGrad

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.
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>]

\(2^{nd}\)-order

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)

标签:partial,gradient,梯度,下降,tape,简介,tf,y2,GradientTape
来源: https://blog.51cto.com/u_13804357/2709139