tensorflow2笔记:激活函数对应的初始化(梯度消失与梯度爆炸)

本文探讨了深度学习中初始化和激活函数的选择,特别强调了SELU激活函数在自归一化网络中的应用。当使用SELU时,网络权重应采用LeCun初始化,以保持层间输出的平均值为0,标准差为1,防止梯度消失或爆炸。此外,还介绍了LeakyReLU作为替代激活函数,并提到了梯度裁剪的两种方式。

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

初始化和激活函数对照表

初始化激活函数
glorot_uniform,glorot_normalNone,tanh,sigmoid,softmax
he_uniform,he_normalrelu,ELU,Leaky RELU,PRELU
lecun_normalselu

由SELU激活函数构造的特殊网络

简介:如果构建一个仅由密集层堆叠的神经网络,并且所有隐藏层都使用SELU激活函数,则该网络是自归一化的:每层的输出倾向于在输出过程中保留平均值0和标准差1
从而解决了梯度消失/梯度爆炸的问题。

条件

  • 输入特征必须标准化(平均值为0,标准差为1)
  • 每个隐藏层权重初始化必须使用LeCun初始化,即kernel_initializer=‘lecun_normal’,激活函数为SELU
  • 如果使用Dropout,应该使用AlphaDropout

应该使用哪个激活函数:

通常激活函数SELU>ELU>leaky ReLU(及其变体)>ReLU>tanh>sigmoid

LeakyReLU激活函数

LeakyReLU:tf.keras.layers.LeakyReLU(alpha=0.2)
alpha:越小,负轴越接近x轴

梯度裁剪

梯度裁剪 在创建优化器时设置clipvalue,clipnorm参数

  • clipvalue=1:将所有的偏导数限制在-1.0到1.0之间,可能改变梯度向量的方向
  • clipnorm=1:将不改变梯度方向,但是如果向量某分量过大,将会导致某些分量几乎消除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

起名大废废

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值