超参数,一般是在搭建神经网络前,声明的参数,超参数不能直接从所搭建模型的训练过程中学习,需要预先定义。一般包括LR,BATCH(或称之为BATCH SIZE),EPOCH,ITERATIONS(或称之为BATCH NUMBER)
LR 学习率,指的是神经网络在反向传播所用到的学习率,学习率设置过大,会导致loss震荡,学习难以收敛;设置过小,那么训练的过程将大大增加。学习率的调整是非常困难的,有的优化器(比如自己写的)具有自动调节学习率的功能,但是一般初始学习率还是需要通过超参数声明的。
BATCH(BATCH SIZE)指的是每次送入模型训练的一批数据的样本数。比如有100个数据,每次从100个数据中,随机抽取10个数据进行训练。BATCH的大小影响模型的优化程度和速度。同时其直接影响到GPU内存的使用情况,假如你GPU内存不大,该数值最好设置小一点。良好的BATCH使得单个epoch的迭代次数减少了,参数的调整也慢了,假如要达到相同的识别精度,需要更多的epoch。
EPOCH:一个epoch指代所有的数据送入网络中完成一次前向计算及反向传播的过程。EPOCH指的是有多少个epoch。当计算量很大时,将一个epoch分为多个batch。随着epoch数量的增加,神经网络中权重更新迭代的次数增多,曲线从最开始的欠拟合状态,慢慢进入优化拟合状态,最终进入过拟合。epoch大小与数据集的多样化程度有关,多样化程度越强,epoch应该越大。
Iterations:完成一次epoch所需的batch个数。也叫batch numbers。