Pytorch-常见函数的梯度

本篇介绍Pytorch中常见函数的梯度。

线性模型

$$
y=xw+b
$$

  • x:参数,理解为神经网络的输入。

  • w与b:神经网络的参数(两个自变量),作为优化的目标。

偏微分为:
$$
\frac{\partial y}{\partial w} = x
\quad , \quad
\frac{\partial y}{\partial b} = 1
\quad , \quad
\nabla_{(w,b)} = (x , 1)
$$
ps:这也是感知机的模型。

例如:
$$
f=[y-(xw+b)]^2
$$

偏微分:
$$
\frac{\partial f}{\partial w} = 2(y-(xw+b))*(-x)
\quad , \quad
\frac{\partial y}{\partial b} = 2(y-(xw+b))-1
$$

$$
\nabla_{(w,b)} = (2(y-(xw+b))*(-x), 2(y-(xw+b))-1)
$$

线性感知机的输出和真实label之间的均方差(loss)的导数

有了梯度公式后,对于一个点就能代入更新了。
$$
(w_0,b_0) \rightarrow (\nabla w_0, \nabla b_0)
$$

二次模型

$$
y=xw^2+b^2
$$

偏微分为:
$$
\frac{\partial y}{\partial w} = 2xw
\quad , \quad
\frac{\partial y}{\partial b} = 2b
\quad , \quad
\nabla_{(w,b)} = (2xw, 2b)
$$

指数模型

$$
y=xe^w+e^b
$$

偏微分为:
$$
\frac{\partial y}{\partial w} = xe^w
\quad , \quad
\frac{\partial y}{\partial b} = e^b
\quad , \quad
\nabla_{(w,b)} = (xe^w, e^b)
$$

对数模型

$$
f = y \log (xw+b)
$$
偏微分为:
$$
\frac{\partial f}{\partial w} = y \frac{x}{xw + b}
\quad , \quad
\frac{\partial f}{\partial b} = y \frac{1}{xw + b}
\quad , \quad
\nabla_{(w,b)} = (y \frac{x}{xw + b}, y \frac{1}{xw + b})
$$

-------------The End-------------

本文标题:Pytorch-常见函数的梯度

文章作者:Naqin

发布时间:2019年07月05日 - 00:07

最后更新:2019年11月07日 - 01:11

原始链接:https://chennq.top/Pytorch学习笔记/20190705-learning_PyTorch_10_gradient.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Naqin wechat
欢迎看官加我微信!
坚持原创技术分享,您的支持将鼓励我继续创作!
0%