• 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。

  • 相关阅读:
    cookie会话技术
    Vue实现任务列表效果
    Vue实现选项卡效果
    数组API(2)
    数组常用API(1)
    sticky,粘性定位
    了解HTTP协议和TCP协议
    快速排序
    冒泡排序
    【译】x86程序员手册21-6.3.5为操作系统保留的指令
  • 原文地址:https://www.cnblogs.com/oareii/p/10554995.html
Copyright © 2020-2023  润新知