正交初始化:
用以解决深度网络下的梯度消失、梯度爆炸问题,在RNN中经常使用的参数初始化方法。
https://blog.youkuaiyun.com/shenxiaolu1984/article/details/71508892
实现代码:
def orthogonal(shape):
flat_shape = (shape[0], np.prod(shape[1:]))
a = np.random.normal(0.0, 1.0, flat_shape)
u, _, v = np.linalg.svd(a, full_matrices=False)
q = u if u.shape == flat_shape else v
return q.reshape(shape)
SVD分解:
奇异值分解是一个适用于任意矩阵的分解方法,奇异值分解可以理解为将一个比较复杂的矩阵用更小更简单的3个子矩阵的相乘来表示,这3个小矩阵描述了大矩阵重要的特性。
分解形式:
其中若