权重初始化的方法
发布日期:2021-06-29 11:45:59 浏览次数:3 分类:技术文章

本文共 583 字,大约阅读时间需要 1 分钟。

在以往的文章里面,全连接层的权重我是给初始化成0的,但卷积层是初始化成正态分布。其实,权重初始化成0是一件很糟糕的事情。

权重初始化全部为0就会造成网络对称问题,把这个结论推导到卷积层,自然结果也是一样,所以,把权重初始化为0是一件很笨的事情。为了克服这种现象,我们一般选择随机正态分布初始化权重,但是随机正态分布初始化的缺点就是初始化可能权重很小也可能很大。

1.自编码器中的一种参数初始化方法 Xavier initialization,它是一种很有效的神经网络初始化方法,方法来源于2010年的一篇论文

如果深度学习模型权重初始化太小,那么信号将在每层间传递是逐渐缩小而难以产生作用,但如果权重初始化太大,那信号将在每层间传递时逐渐放大并导致发散和失效。而Xaiver初始化器就是让权重被初始化得不大不小,正好合适。从数学得角度分析,Xavier就是让权重满足:均值为0,方差为\frac{2}{n_{in}+n_{out}},分布可以用均匀分布或者高斯分布。

如果是均匀分布,分布在(-a,a),那么该均匀分布得均值,方差分别为:

E=\frac{(-a)+(a)}{2}=0,V=\frac{[(-a)-(a)]^2}{12},令E=Xavier的均值,V=Xavier的方差,那么得到a=\sqrt{\frac{6}{n_{in}+n_{out}}}

那么只需要将权重初始化在上述的标准分布里面,就得到了Xavier初始化。注意,其中接受的两个参数是输入的维度和输出的维度。

2.其初始化方式,在pytorch中请查看torch.nn.init.normal_()

转载地址:https://blog.csdn.net/zz2230633069/article/details/94720148 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:关于PGGAN
下一篇:激活函数记录

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月15日 10时32分22秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章