第二讲-神经网络优化_指数衰减学习率&激活函数

3指数衰减学习率

先用较大的学习率,快速得到较优解,然后逐步减小学习率,使模型在训练后期稳定。

       指数衰减学习率 = 初始学习率*学习率衰减率^(当前轮数/多少轮衰减一次

示例:主要代码为 ****1-4

import tensorflow as tf
w = tf.Variable(tf.constant(5, dtype=tf.float32))
epoch = 40
LR_BASE = 0.2  # 最初学习率   ****1
LR_DECAY = 0.99  # 学习率衰减率  ****2
LR_STEP = 1  # 喂入多少轮BATCH_SIZE后,更新一次学习率  ****3

for epoch in range(epoch):  # for epoch 定义顶层循环,表示对数据集循环epoch次,此例数据集数据仅有1个w,初始化时候constant赋值为5,循环100次迭代。
    lr = LR_BASE * LR_DECAY ** (epoch / LR_STEP)    ****4
    with tf.GradientTape() as tape:  # with结构到grads框起了梯度的计算过程。
        loss = tf.square(w + 1)
    grads = tape.gradient(loss, w)  # .gradient函数告知谁对谁求导
    w.assign_sub(lr * grads)  # .assign_sub 对变量做自减 即:w -= lr*grads 即 w = w - lr*grads
    print("After %s epoch,w is %f,loss is %f,lr is %f" % (epoch, w.numpy(), loss, lr))

运行结果:
After 0 epoch,w is 2.600000, loss is 36.000000,lr is 0.200000
After 1 epoch,w is 1.174400, loss is 12.959999,lr is 0.198000
After 2 epoch,w is 0.321948, loss is 4.728015,lr is 0.196020
After 3 epoch,w is -0.191126, loss is 1.747547,lr is 0.194060
After 4 epoch,w is -0.501926, loss is 0.654277,lr is 0.192119
After 5 epoch,w is -0.691392, loss is 0.248077,lr is 0.190198
。。。
After 38 epoch,w is -0.999999, loss is 0.000000,lr is 0.136511
After 39 epoch,w is -0.999999, loss is 0.000000,lr is 0.135146

4、激活函数

激活函数是用来加入非线性因素的,因为线性模型的表达力不够。引入非线性激活函数,可使深层神经网络的表达力更加强大。

  • 优秀的激活函数:
  1. 非线性:激活函数非线性时,多层神经网络可逼近所有函数
  2. 可微性: 优化器大多用梯度下降更新参数
  3. 单调性: 当激活函数是单调的,能保证单层网络的损失函数是凸函数
  4. 近似恒等性: f(x) 近似等于x,当参数初始化为随机小值时,神经网络更稳定

 

  • 激活函数输出值的范围
  1. 激活函数输出为 有限值 时,基于梯度的优化方法更稳定
  2. 激活函数输出为 无限值 时,建议调小学习率

 

  • 常见激活函数有:

Sigmoid函数、tanh函数、relu函数、leaky relu函数、softmax、softsign、softplus等

 

  • 对初学者的建议

① 首选relu激活函数

② 学习率设置较小值

③ 输入特征标准化,即让输入特征满足以0为均值,1为标准差的正态分布

④ 初始参数中心化,即让随机生成的参数满足以0为均值,sqrt(2/当前层输入特征个数)为标准差的正态分布

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值