Learning to learn by gradient descent by gradient descent||元学习||自动学习优化器的设计

参考:Learning to learn by gradient descent by gradient descent - PyTorch实践

原始链接

而针对一个特定的优化问题,也许一个特定的优化器能够更好的优化它,我们是否可以不根据人工设计,而是让优化器本身根据模型与数据,自适应地调节,这就涉及到了meta-learning。

 

近200篇小样本学习领域/元学习领域论文集

Learning to learn by gradient descent by gradient descent||元学习||自动学习优化器的设计_第1张图片

 [email protected]申请

 

下载地址与参考

下载代码: learning_to_learn_by_pytorch.py

Github地址

参考:
1.Learning to learn by gradient descent by gradient descent
2. Learning to learn in Tensorflow by DeepMind
3.learning-to-learn-by-gradient-descent-by-gradient-descent-4da2273d64f2

目录

  • 引言
  • Learning to learn by gradient descent by gradient descent
  • 文章目录
  • 优化问题
    • 定义要优化的目标函数
    • 定义常用的优化器如SGD, RMSProp, Adam。
    • 接下来 构造优化算法
    • 对比不同优化器的优化效果
  • Meta-optimizer :从手工设计优化器迈步到自动设计优化器
    • 用一个可学习的梯度更新规则,替代手工设计的梯度更新规则
      • 构建LSTM优化器
      • 优化器本身的参数即LSTM的参数,代表了我们的更新策略
        • 好了,看一下我们使用刚刚初始化的LSTM优化器后的优化结果
        • 咦,为什么LSTM优化器那么差,根本没有优化效果?
      • 下面我们就来优化LSTM优化器的参数!
        • “下棋手 ”
        • 特点 : 2.考虑优化器优化过程的历史全局性信息 3.独立同分布地采样优化问题目标函数的参数
      • 通过梯度下降法来优化 优化器
        • 为什么loss值没有改变?为什么LSTM参数的梯度不存在的?
        • 问题出在哪里?
        • 计算图不再丢失了,LSTM的参数的梯度经过计算图的流动已经产生了!
      • 又出了什么幺蛾子?
        • 不同周期下输入LSTM的梯度幅值数量级不在一个等级上面
        • 用梯度的(归一化幅值,方向)二元组替代原梯度作为LSTM的输入
  • 以上是代码编写遇到的种种问题,下面就是最完整的有效代码了!!!
    • 我们先来看看随机初始化的LSTM优化器的效果
      * 随机初始化的LSTM优化器没有任何效果,loss发散了,因为还没训练优化器
      * 接下来看一下优化好的LSTM优化器模型和SGD,RMSProp,Adam的优化性能对比表现吧~
  • 实验结果分析与结论
    • 请注意:LSTM优化器最终优化策略是没有任何人工设计的经验
  • 实验条件:
  • 后叙
  • 下载地址与参考

 

你可能感兴趣的:(深度学习,元学习)