博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TensorFlow 深度学习笔记 Stochastic Optimization
阅读量:4583 次
发布时间:2019-06-09

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

Stochastic Optimization

转载请注明作者:

Github工程地址:
欢迎star,有问题可以到讨论
官方教程
/下载

  • 实践中大量机器学习都是通过梯度算子来求优化的
  • 但有一些问题,最大的问题就是,梯度很难计算
  • 我们要计算train loss,这需要基于整个数据集的数据做一个计算
  • 而计算使 train loss 下降最快的调整方向需要的时间是计算train loss本身的三倍

780612-20160521192009810-189691968.png

  • 因此有了SGD:Stochastic Gradient Descent
    • 计算train loss时,只随机取一小部分数据集做为输入
    • 调整W和b时,调整的大小step需要比较小,因为数据集小,我们找到的不一定是对的方向
    • 这样也就增加了调整的次数
    • 但可观地减小了计算量

780612-20160521192026232-670249367.png

SGD的优化

实际上SGD会使得每次寻找的方向都不是很准,因此有了这些优化

  • 随机的初始值

780612-20160521192039091-142554384.png

  • Momentum

考虑以前的平均调整方向来决定每一步的调整方向

780612-20160521192120685-1400575130.jpg

780612-20160521192130263-1804087017.jpg

  • Learning Rate Decay
    • 训练越靠近目标,步长应该越小
  • Parameter Hyperspace
    • Learning Rate(即调整的step)不是越大越好,可能有瓶颈
    • SGD有许多参数可以调整,所以被称为黑魔法

    780612-20160521192149263-47051988.png

    • AdaGurad
      • 自动执行momentum和learning rate decay
      • 使得SGD对参数不像原来那样敏感
      • 自动调整效果不如原来的好,但仍然是一个option

觉得得我的文章对您有帮助的话,就给个吧~

转载于:https://www.cnblogs.com/hellocwh/p/5515400.html

你可能感兴趣的文章
python之建完model之后操作admin
查看>>
Java 类加载机制 ClassLoader Class.forName 内存管理 垃圾回收GC
查看>>
shell 脚本后台运行知识
查看>>
php设置cookie,在js中如何获取
查看>>
实验三+099+吴丹丹
查看>>
[bzoj3036]绿豆蛙的归宿
查看>>
[洛谷P5057][CQOI2006]简单题
查看>>
多线程同步的几种方法
查看>>
数据结构-冒泡排序
查看>>
关于程序状态字寄存器PSW(Program Status Word)与多核多线程
查看>>
mybatis的缓存
查看>>
java 缓冲流 Buffer
查看>>
7月23号=》261页-265页
查看>>
软考知识点梳理--综合布线
查看>>
Mysql5.6主从热备配置
查看>>
VS2010DebugView捕捉
查看>>
mfix中更改time dependent VTK filename的最大时间步数的容量
查看>>
Windows7安装 docker-compose的过程
查看>>
关于nodeJS多线程的支持,目前看来无法实现,讲解v8的一些东西
查看>>
php递归创建文件夹的两种方法
查看>>