什么是 Epoch?一文讲懂!
原创在人工智能、机器学习这些热门领域,我们经常听到一个词:epoch。
不少小伙伴一听就头大:“这到底是啥?听起来好高大上。”
其实,epoch一点也不复杂,我今天用最简单的话给你讲明白!
简单理解:Epoch 就是“全班刷一遍”
想象你是一个老师,有一本《五年级数学练习册》。
你要教一群小朋友学好数学。
怎么办?当然是拿着练习册一页页讲解、让大家做题。
把整本练习册完整讲解一遍,就可以理解为一个 epoch!
在机器学习里,这本“练习册”就是我们的训练数据。
模型(就像小朋友)要通过一遍又一遍地学习,慢慢变聪明。
所以,epoch 其实就是 模型把所有训练数据完整看一遍的过程。
为什么要多个 Epoch?
还记得小时候,做一遍练习题,很多不会做的题还是不会,对吧?
学一遍肯定不够,需要多复习几次,才能真正掌握。
同样,模型也是一样的。
一遍学习(一个 epoch)后,模型学得还不够好, 所以要让它再刷一遍,再刷一遍……
通常,我们会设置模型学习几十次、几百次,甚至几千次!
每刷一遍(一个 epoch),模型就能学到更多规律,变得越来越聪明。
Epoch 和其它词有什么关系?
在训练模型时,除了 epoch,还有一些常见词汇,它们的关系大概是这样的:
Batch(批次):
每次学习不是直接把全本练习册扔给小朋友,而是拿几页练。
比如一本练习册有 1000 题,每次拿 100 题出来练,就是一个 batch。Iteration(迭代):
每学完一批(batch)叫一次 iteration。
所以,如果 1000 道题分成每批 100 题,那完整刷一遍就有 10 次 iteration。
总结成一张简单的关系图:
一次 epoch = 多次 iteration(每次 iteration 学一个 batch)
举个例子(秒懂版)
假设:
你的数据集有 1000 张猫猫图片
你设置 batch size = 100
你想训练 5 个 epoch
那么:
每个 epoch,要分 10 次 iteration(因为 1000/100 = 10)
5 个 epoch,总共要训练 50 次 iteration
模型每看到一遍 1000张图片,就算一个 epoch,
5个 epoch 就是让模型把这些猫猫图片完整学习了5遍!
小结
Epoch【一代】 = 把全部数据完整学习一遍,叫训练【一代】。
通常要训练很多个 epoch,才能让模型学得好。
每个 epoch 包含多次 iteration【迭代】(每次iteration【迭代】处理 一个batch【一批数据】 )。
学会了这几个词,别人聊训练模型你就能听懂啦!


版权声明
如有错误或侵权,请联系我删除,QQ123242726。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。