wuvin
Always take risks!
Toggle navigation
wuvin
主页
实验室的搬砖生活
机器学习
公开的学术内容
公开的其他内容
About Me
归档
标签
友情链接
ZYQN
ihopenot
enigma_aw
hzwer
杨宗翰
炼丹杂事
2019-09-17 21:04:53
433
0
0
wuvin
# 深度学习权值初始化问题 一下主要参考自[聊一聊深度学习的weight initialization](https://zhuanlan.zhihu.com/p/25110150) * 至今才发现自己的权值初始化原来基本没学。 * 全初始化为0是肯定不对的,因为梯度多半也是0. * 随机初始化在深度网络下不靠谱,因为链式法则,前向传播权值到后面会是初始权值的一些连乘,导致后面几层权值几乎为0,BP时基本没有梯度。同样,比1大会导致另一个极端结果,也是无法接受的。 * Xavier initialization:基本思想是保持输入和输出的方差一致,解决上述问题。ReLU函数上会跪。 * He initialization: 在ReLU网络中,假定每一层有一半的神经元被激活,另一半为0,所以,要保持variance不变,只需要在Xavier的基础上再除以2。 * 使用Batch Normalization可以减少不靠谱的初始化带来的问题。 $$Z' = \gamma \times \frac{Z-\mu}{\sigma} + \beta$$ # Batch Normalization Batch Normalization 的作用: * 允许网络使用较高的 learning rate。 * 具有一定的 regularization 作用。 以下是pytorch自带的batchnorm 示例 ```python x = torch.randn(1, 16, 7, 7) # 1张16通道的7乘7的图像 # Batch Normalization层,因为输入是有高度H和宽度W的,所以这里用2d layer = nn.BatchNorm2d(16) # 传入通道数 out = layer(x) print(out.shape) print(layer.running_mean) # 全局的均值mu print(layer.running_var) # 全局的方差sigma^2 print(layer.weight) # weight也就是前面学的公式里的gamma print(layer.bias) # bias也就是前面学的公式里的beta ``` # 为什么L2损失函数会造成GAN生成的图像模糊 * 由于真实数据会是由多个不同类型的分布叠加而成,MSE会对这些分布取平均导致变模糊。 ![title](https://leanote.com/api/file/getImage?fileId=5d82108fab64417b54006634) * 而采用L1 Loss则等价于随机采一个分布保留。(大概和绝对值相关)不过问题就来了,这样很难解决无偏和方差之类的问题,不过看起来大家都没来解决这个问题。 ![title](https://leanote.com/api/file/getImage?fileId=5d82109fab64417956006545)
上一篇:
AlexNet框架及Pytorch源码
下一篇:
VGG及其pytorch实现
0
赞
433 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
提交评论
立即登录
, 发表评论.
没有帐号?
立即注册
0
条评论
More...
文档导航
没有帐号? 立即注册