说明:记录日常学习中遇到的专业名词,代码参数。既是自己的学习笔记,也供大伙交流学习。
epoch:当一个完整的数据集中的所有训练样本在神经网络中都进行了一次正向传播和一次反向传播,这个过程称为一次epoch。即一个epoch就是将所有训练样本训练一次的过程。通常训练中需要多个epoch,具体个数得参考数据集的大小以及特征的维度等,个数太少会导致欠拟合,个数太多又会导致过拟合。所谓的调参,也就在这里体现了。
banch:通常,一个epoch的样本(即所有的训练样本)数量对计算机来说都是过于庞大的,这时就需要把它切分成多个小块,也就是分成多个batch来进行训练。
batch(批 / 一批样本):将整个训练样本(即一个epoch)分成若干个batch。batch_size(批大小):每批样本的大小。iteration(一次迭代):训练一个batch就是一次iteration。
训练集(train set),验证集(validation set)和测试集(test set):
训练集就不做多解释了,不过要清楚这3个数据集是没有交集的,主要介绍验证集和测试集的区别。
先了解一下我们一般训练的模型有两种参数:普通参数(训练过程中模型自动更新的,如:权重w,偏置值b等)和超参数(人工设置的,如隐藏层层数,学习率等)。但是对于超参数的设置在一开始我们没办法选择到比较好的,只能在训练的过程中去调整,如果通过测试集来调整的话,后面再用测试集来评估模型的性能就会有比较大的误差了,因为它(测试集)实质上已经参与了训练的过程,所以这时候就需要划分一个数据集专门用于调整超参数,这个数据集就是验证集。