Epoch(时期)、Batch size(批次)、Iteration(迭代)、Learning rate

  在研究类神经网路的程序时,发现会用到一些这概念,因此就来研究了一下。
  这四样东西,在机器学习时会很常用到,有时候需要调整这些参数来使机器学习过程更加顺利且精准。

Epoch(时期)

  Epoch这是指当所有资料都被用来训练类神经网路一次,就算1个Epoch。举例来说,今天有100笔资料,将它们全部丢进类神经网路中训练,就算是1个Epoch。

Batch size(批次)

  Batch size是把资料分成一堆堆,分别丢入类神经网路中训练,而非全部一起丢进去训练。举例来说,今天有100笔资料,我设定Batch size=10,也就是一次只输入10笔资料进类神经网路中,这动作进行10次之後,才会是1个Epoch。
  那麽究竟Batch size要设定比较大才好,还是小呢?我们来看看图(一)。
https://ithelp.ithome.com.tw/upload/images/20211008/20140722FtFnXhVqwm.png

  蓝色线条是将全部资料丢进去一起训练,最终训练的效果是最好的,可以收敛到一个点上,但是过程较慢,尤其越到後面进步速度越慢,因此要Epoch很多次才可以。
  绿色线条是将资料分批成很多份,每份数量都差不多(根据自己有的资料数来决定要分多少批),虽然在训练时很快就能到达一定的程度,但是却会因为每次训练资料数过少的关系,可能换其他组时,参数的变动就会很大,收敛不怎麽好。
  红色线条是每次都用随机资料数量,可能一下子会把所有资料丢进训练,也可能一次只丢入一笔。这样的情况反而更糟,很难收敛成功,但还是会比蓝色线条更快到最佳解的地方。

Iteration(迭代)

  刚开始接触程序时,学习到Recurtion(回圈),也会学到Iteration(迭代),前者是不断呼叫自身程序码得到结果,後者是用回圈去重复执行程序码得到结果。
  在机器学习上Iteration跟Batch size有关,因为如果有设定Batch size大小,就会有分批处理资料的情况,这时候就要用回圈不断把资料输入进类神经网路中进行训练。举例来说,有100笔资料,一次只训练其中10笔资料,就要10次回圈才算是1个Epoch,也就是在这例子的情况下,1个Epoch就要10次Iteration。
  因此概念上就是:原始资料大小=Iteration×Batch size=1 Epoch。
  如果有个工程师,在100笔资料的情况下,决定每次用20笔资料进行训练,全部资料都要训练3次,这样会Iteration几次呢?Iteration=(原始资料大小÷Batch size)×Epoch=(100÷20)×3=15次。
Learning rate
  Learning rate跟更新类神经网路的公式有关系,如图(二)。
https://ithelp.ithome.com.tw/upload/images/20211008/20140722wyIiiT8Dsx.png

  η就是Learning rate,在更新权重的时候,会由η乘上∇E(Gradient),来调整权重。但要注意,在梯度下降法篇中有提到,如果切线的斜率调整太大的话,就会没办法收敛,Learning rate就类似於调整切线斜率,要让机器学习进展更快,还是慢一点之类的。虽然欲速则不达,但是太慢的话又很浪费时间。

总结

  以上参数都没有一定的设定,也有可能这设定在某些领域不好,但在另外的领域会有不错的成效。而且有可能每个人设备不同,比如资料一次丢入,只要进行多次训练,还是能达到不错的成效,但如果设备不好的情况下,可能连第一次训练都无法成功完成。因此这些设定还是得亲自测试,一步步调整到适合自己想要的机器学习的参数,这样才比较适当。


<<:  [Android Studio 30天自我挑战] RecyclerView元件介绍

>>:  Day23 Android - RxJava+Post

[ Day 3 ] - 运算式与运算子

运算式与运算子 运算式 透过运算子进行运算而得到指定的结果值 运算子的介绍 这边会列出几个简单算是常...

Day 13 - 安装(三)副本调度设定

前面提到region会产生副本分散在每一个tikv store里,今天如果架设的机器是跨区的,跨机房...

.Net Core Web Api_笔记19_api结合ADO.NET资料库操作part7_新闻文章的编辑更新与删除

首先操作部分 删除及编辑页面回填By NewsId查询的Action 扩充 using Micro...

网页编排Grid-30天学会HTML+CSS,制作精美网站

Grid是什麽 Grid是砖墙式版面,使用二维的排版方式,与flexbox不同的地方是Grid一次可...

工作排程器--Windows的忠实程序秘书

今天要来介绍一个Windwos内建工具叫做工作排程器(Task Scheduler),他可以预先计划...