神经网络训练中的训练集、验证集以及测试集合

来源:互联网 发布:java linux服务器 下载 编辑:程序博客网 时间:2024/05/16 10:45

1:在NN训练中我们很常用的是训练集合以及测试集合,在训练集合上训练模型(我个人认为模型就是训练的方法以及对应的参数值,更偏重于参数值吧),训练好之后拿到测试集合上验证模型的泛华(就是该模型可以拿去实战的效果)的能力。


2:但是对于上述情况,举个例子,比如是在训练一个多层网络,我们用类似minFUNC的方法来训练,那么这个优化包会直接根据我们的输入直接迭代出来一个很好地结果了,此时模型就训练好了。但是如果运用SGD这些方法去训练的话,到底迭代多少次算好?有时候可能也不收敛,只是中间过程中的一个参数值是效果最好的,那我们如何知道这个参数值?


3:个人认为有了验证集,真的很适合来使用SGD来训练,在训练过程中,比如训练了一个epoch,那么来把训练好的参数用于验证集上,然后保存在验证集合上的精度,只要改精度满足一定条件,那么训练就可以终止。


4:关于训练集、验证集以及测试集合的选择,这个网上资料很多,不在这里说了。


补充一个伪代码:

for each epoch    for each training data instance        propagate error through the network        adjust the weights        calculate the accuracy over training data    for each validation data instance        calculate the accuracy over the validation data    if the threshold validation accuracy is met        exit training    else        continue training

0 0
原创粉丝点击