• gradient descent


    梯度下降的两种参数更新方式

    1.Batch gradient descent 批梯度下降 遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数就要把数据集里面的所有样本都看一遍,计算量开销大,计算速度慢。

    2.Stochastic gradient descent 随机梯度下降 每看一个数据就算一下损失函数,然后求梯度更新参数。速度快,但是收敛性不太好,可能在最优点晃来晃去,不能hit最优点。两次参数的更新也有可能互相抵消掉,造成目标函数振荡剧烈。

    为了克服缺点,现在一般采用的是折中手段,mini-batch gradient descent 小批梯度下降,这种方法把数据分为若干批batch,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。

    【现在用的优化器SGD是stochastic gradient descent的缩写,但不代表是一个样本更新一回,还是基于mini-batch的。】

    term:

    1.batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个训练样本

    2.iteration:一个iteration等于使用batchsize个样本训练一次

    3.epoch:1个epoch等于使用训练集中的全部样本训练一次,即epoch的值就是整个数据集被轮几次。【i.e. 训练集有500样本,batchsize=10,那么训练完整个样本集,iteration=50,epoch=1】

    batchsize最大是样本总数N,此时就是Full batch learning;最小是1,即每次只训练一个样本,这就是在线学习(Online Learning)。当我们分批学习时,每次使用过全部训练数据完成一次Forword运算以及一次BP运算,成为完成了一次epoch。

  • 相关阅读:
    如何用vue-cli4.0构建多页面模板脚手架!?本文实战教你
    最新ES6+中数组的拓展总结,面试必备
    2020最新Vue项目性能优化实战,80%的人都不会
    vue 运行环境安装与配置
    css 文本缩进+间距+溢出
    vue 生成二维码+截图
    vue 缓存界面
    webpack 4 入坑及爬坑记录
    移动端页面使用单位的问题:关于px、百分比、em、rem开发中逐渐转换的问题记录
    基于vuejs和element-ui的表单验证——循环表单和循环表格验证
  • 原文地址:https://www.cnblogs.com/oareii/p/10554995.html
Copyright © 2020-2023  润新知