正交初始化(orthogonal initialize)

正交初始化用于防止深度网络中的梯度消失和梯度爆炸,特别是在RNN中常见。通过奇异值分解(SVD)实现,SVD能描述矩阵对向量的旋转和缩放效果,常用于降维、语义分析和推荐系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正交初始化:

用以解决深度网络下的梯度消失、梯度爆炸问题,在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个小矩阵描述了大矩阵重要的特性。

分解形式:A=U\Sigma V^T

其中若

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值