Alterna · 学习资料

03.6 变革贯穿链条

如果一个动作取决于另一个动作的结果,效果会沿着链条传来,反应链会乘以倍数,不同方式会合并。

本节学习内容

内容与核心概念

在上一页,斜坡本身是如何变化的。
如果一个动作取决于另一个动作的结果,效果会沿着链条传来,反应链会乘以倍数,不同方式会合并。
首先u=2x+1,然后L=u2; x=2。
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
本地衍生物由计算结构连接
Le 让我们
u
=
g
(
x
)
,
z
=
h
(
u
)
.
u=g(x),\qquad z=h(u).
u
=
g
(
x
)
,
z
=
h
(
u
)
.
小规模的改变首先经过。
g
g
g
然后经过
h
h
h
:
d
u
≈
g
′
(
x
)
d
x
,
d
z
≈
h
′
(
u
)
d
u
.
du\approx g'(x)dx,
\qquad dz\approx h'(u)du.
d
u
≈
g
′
(
x
)
d
x
,
d
z
≈
h
′
(
u
)
d
u
.
设置赋予链条规则 :
d
z
d
x
=
d
z
d
u
d
u
d
x
.
\frac{dz}{dx}=\frac{dz}{du}\frac{du}{dx}.
d
x
d
z
​
=
d
u
d
z
​
d
x
d
u
​
.
用于
u
=
2
x
+
1
u=2x+1
u
=
2
x
+
1
,
z
=
u
2
z=u^2
z
=
u
2
至
x
=
2
x=2
x
=
2
:
u
=
5
,
z
=
25
,
d
u
d
x
=
2
,
d
z
d
u
=
2
u
=
10
,
u=5,\qquad z=25,
\qquad \frac{du}{dx}=2,
\qquad \frac{dz}{du}=2u=10,
u
=
5
,
z
=
25
,
d
x
d
u
​
=
2
,
d
u
d
z
​
=
2
u
=
10
,
d
z
d
x
=
10
⋅
2
=
20.
\frac{dz}{dx}=10\cdot2=20.
d
x
d
z
​
=
10
⋅
2
=
20.
第二个当地乘数是
2
u
2u
2
u
,而不是
2
x
2x
2
x
:每个节点的衍生值均根据其输入状态计算。
逆向模式带来一种上游反应。
我们从天梯出口开始,所以...
z
ˉ
=
∂
z
/
∂
z
=
1
\bar z=\partial z/\partial z=1
z
ˉ
=
∂
z
/
∂
z
=
1
然后
u
ˉ
=
z
ˉ
∂
z
∂
u
=
10
,
x
ˉ
=
u
ˉ
∂
u
∂
x
=
20.
\bar u=\bar z\frac{\partial z}{\partial u}=10,
\qquad
\bar x=\bar u\frac{\partial u}{\partial x}=20.
u
ˉ
=
z
ˉ
∂
u
∂
z
​
=
10
,
x
ˉ
=
u
ˉ
∂
x
∂
u
​
=
20.
远期出入证仓库
x
,
u
,
z
x,u,z
x
,
u
,
z
; 向后在反向表层顺序中应用本地规则。 后印在当前图表中计算衍生物。 它不改变参数: 额外日期执行一个单独的优化器。
沿途有乘数,在轨道之间有乘积
嗯,哦。
z
=
x
2
+
x
z=x^2+x
z
=
x
2
+
x
平方分支的输入等于平方分支机构的输入
2
x
2x
2
x
直线分支 1 :
d
z
d
x
=
2
x
+
1.
\frac{dz}{dx}=2x+1.
d
x
d
z
​
=
2
x
+
1.
这些存款加起来是因为差价数额等于差价之和。
2
x
⋅
1
2x\cdot1
2
x
⋅
1
将平行路径相继连接将是错误的。
如果
u
=
x
2
u=x^2
u
=
x
2
, a ,a
z
=
u
+
u
z=u+u
z
=
u
+
u
一个中间节点使用两次。
x
=
3
x=3
x
=
3
:
u
ˉ
=
1
+
1
=
2
,
x
ˉ
=
u
ˉ
⋅
2
x
=
12.
\bar u=1+1=2,
\qquad \bar x=\bar u\cdot2x=12.
u
ˉ
=
1
+
1
=
2
,
x
ˉ
=
u
ˉ
⋅
2
x
=
12.
自动升级必须积累一个渐变共同节点。 首先重写第二个贡献, 或者反之则会丢失图中的一部分 。
数字检查检查点,而不是检查输出。
用于
z
(
x
)
=
(
2
x
+
1
)
2
z(x)=(2x+1)^2
z
(
x
)
=
(
2
x
+
1
)
2
中央差异
x
=
2
x=2
x
=
2
,
h
=
10
−
5
h=10^{-5}
h
=
1
0
−
5
大约20块
z
(
x
+
h
)
−
z
(
x
−
h
)
2
h
≈
20.
\frac{z(x+h)-z(x-h)}{2h}\approx20.
2
h
z
(
x
+
h
)
−
z
(
x
−
h
)
​
≈
20.
巧合是有用的 作为回归检查本地向后。 它并不能证明对每个人来说是象征性的公式。
x
x
x
可能错失补偿错误,需要合理的浮动点容忍度。
对于矢量节点,通过Jacobian产品记录同样的规则。反向模式并不一定能构建完整的Jacocoban层:它通过当地的矢量-Jacobian产品传播上游矢量。因此,成本取决于图表和操作,而不是取决于所有衍生品的物理储存。
x = 2
u = 2*x + 1
z = u*u
dz_du = 2*u
du_dx = 2
dz_dx = dz_du*du_dx
h = 1e-5
numeric = (((2*(x+h)+1)**2) - ((2*(x-h)+1)**2)) / (2*h)
assert (u, z, dz_dx) == (5, 25, 20)
assert abs(numeric - dz_dx) < 1e-8
代码重复了刚刚处理的操作
完全检查了 Python 示例章节
可用一个单独的文件; 显示的短片不会取代其执行 。
我们不必猜到整个公式的影响: 它由个别行动的影响组成。
您如何将预报的确定性转化为误差的数值估计?
第03章Python实例
学术基础

教材目录导航