Backpropagation and computation graphs
数学基础
雅可比矩阵
存在函数有n个输入,有m个输出。
f
(
x
)
=
f
1
(
x
1
.
.
.
x
n
)
.
.
.
f
m
(
x
1
.
.
.
x
n
)
f(x)=f_1(x_1...x_n)...f_m(x_1...x_n)
f(x)=f1(x1...xn)...fm(x1...xn)
那么该函数的雅可比矩阵是一个m*n的矩阵,有:
∂
f
∂
x
i
j
=
∂
f
i
∂
x
j
\frac{\partial f}{\partial x}_{ij}=\frac{\partial f_i}{\partial x_j}
∂x∂fij=∂xj∂fi
借助雅可比矩阵,可以求得矩阵求导的结果。
比如说在神经网络的例子中,有
z
=
W
x
+
b
z=Wx+b
z=Wx+b
那么 ∂ z ∂ x i j = ∂ z i ∂ x j = ∂ ( W x ) i ∂ x j = ∂ ∑ k W i k x k ∂ x j = W i j \frac{\partial z}{\partial x}_{ij}=\frac{\partial z_i}{\partial x_j}=\frac{\partial (Wx)_i}{\partial x_j}=\frac{\partial \sum_k W_{ik}x_k}{\partial x_j}=W_{ij} ∂x∂zij=∂xj∂zi=∂xj∂(Wx)i=∂xj∂∑kWikxk=Wij
即 ∂ z ∂ x = W \frac{\partial z}{\partial x}=W ∂x∂z=W
Note
- 当我们retraining单词向量的时候,需要根据训练集的大小来决定是否需要重新训练单词向量。
如果训练集比较小,那么比较稳妥的做法是使用现成的单词向量集并且不再更新。原因是如果训练集中不包含某个单词,那么在更新的时候会使得该单词向量没有更新,从而与其他单词向量的距离不能代表其实际含义。
如果训练集比较大,那么可以更新或者训练自己的单词向量集。