werran 发表于 2023-3-2 21:09:08

神经网络训练三个概念(Epoch,Batch,Iteration)和图片数量选择

本帖最后由 werran 于 2023-3-2 21:12 编辑

在保证同等质量的情况下,图片越多越好,图片少非常容易出现过拟合的情况,尤其是lora模型高权重的情况下。而且可用的角度很少。


比如同样训练的总次数,20张图片训练50次,肯定没有50张图片训练20次好。

网传的40-100张图片,只是能用,想要达到像(高权重),角度多,高质量图片数量一定要多。
其实这个和AI换脸的图库是一个道理,重复大量的图片用处不大,其实就等于lora把少量图片训练很多次。

在我的实验中,同样训练的总次数,100张图训练的效果比500张图差的很多。




总结下训练神经网络中最最基础的三个概念:Epoch(训练多少轮), Batch(每次输入网络样本的个数), Iteration(迭代次数)。
1.名词解释
名词定义
Epoch使用训练集的全部数据,对模型进行一次完整训练,称之为“一代训练”
Batch使用训练集中的一小部分样本,对模型权重进行一次反向传播的参数更新,这一小部分样本被称为“一批数据”
Iteration使用一个Batch数据,对模型进行一次参数更新的过程,称之为“一次训练”


[*]epoch:训练时,所有训练数据集都训练过一次。
[*]batch_size:在训练集中选择一组样本用来更新权值。1个batch包含的样本的数目,通常设为2的n次幂,常用的包括64,128,256。 网络较小时选用256,较大时选用64。
[*]iteration​:训练时,1个batch训练图像通过网络训练一次​(一次前向传播+一次后向传播),每迭代一次权重更新一次;测试时,1个batch测试图像通过网络一次​(一次前向传播)。所谓iterations就是完成一次epoch所需的batch个数
2.换算关系Number of batches = Training setsize​ / Batchsize






梯度下降方式Training set sizeBatch sizeNumber of batches
BGDNN1
SGDN1N
Mini-Batch SGDNBN/B+1


实际上,梯度下降的几种方式的根本区别就在于上面公式中的 Batch Size不同。*注:上表中 Mini-Batch 的 Batch 个数为 N / B + 1 是针对未整除的情况。整除则是 N / B。3.示例CIFAR10 数据集有 50000 张训练图片,10000 张测试图片。现在选择 Batch Size = 256 对模型进行训练。每个 Epoch 要训练的图片数量:50000
训练集具有的 Batch 个数:50000 / 256 = 195 + 1 = 196
每个 Epoch 需要完成的 Batch 个数:196
每个 Epoch 具有的 Iteration 个数:196
每个 Epoch 中发生模型权重更新的次数:196
训练 10 代后,模型权重更新的次数:196 * 10 = 1960不同代的训练,其实用的是同一个训练集的数据。第 1 代和第 10 代虽然用的都是训练集的五万张图片,但是对模型的权重更新值却是完全不同的。因为不同代的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。


抹茶味牛子 发表于 2023-3-3 10:23:36

总结的很棒!差别不大的素材确实意义不大,最好找有差距的素材

xiaoheilix 发表于 2023-3-10 12:26:25

刚好不太懂,来学习下

manlyboy2 发表于 2023-3-10 13:04:08

就需要学习这种技术贴,谢谢分享

jack147852 发表于 2023-4-27 10:17:29

角度全的情况下,几十张素材也可以,如果是相似的图片多了反而容易过拟合.数据集不够的情况下可以通过增加正则化规则,适当提高alpha值,降低unet学习率,用adamw的优化器或者调整调度器以及调度器的参数来解决过拟合的问题.所以数据集数量的多少与过拟合并不是非常强关联的关系.

successlf 发表于 2023-5-9 08:02:51

一张图片一个人是不是就是最好的?

william001 发表于 2023-8-25 16:14:41

为什么图片少,会导致模型过拟合;理论上数据量越少,不是导致欠拟合嘛。

少年丶行 发表于 2023-9-1 16:05:08

前来学习一下
页: [1]
查看完整版本: 神经网络训练三个概念(Epoch,Batch,Iteration)和图片数量选择