zoukankan      html  css  js  c++  java
  • 深度学习 | 测试数据集(Test Set) 和验证数据集 (Validation Set) 之间的区别

    笔记来源

    我们在做模型的时候,通常会碰到两个数据集:测试数据集(Test Set) 和验证数据集 (Validation Set) 。那么他之间有何区别呢?下面有个简单的解释:

    训练数据集(Training Set):

    是一些我们已经知道输入和输出的数据集训练机器去学习,通过拟合去寻找模型的初始参数。例如在神经网络(Neural Networks)中, 我们用训练数据集和反向传播算法(Backpropagation)去每个神经元找到最优的比重(Weights)。

    验证数据集(Validation Set):

    也是一些我们已经知道输入和输出的数据集,通过让机器学习去优化调整模型的参数,在神经网络中, 我们用验证数据集去寻找最优的网络深度(number of hidden layers),或者决定反向传播算法的停止点;在普通的机器学习中常用的交叉验证(Cross Validation) 就是把训练数据集本身再细分成不同的验证数据集去训练模型。

    测试数据集(Test Set):

    用户测试模型表现的数据集,根据误差(一般为预测输出与实际输出的不同)来判断一个模型的好坏。

    为什么验证数据集和测试数据集两者都需要?

    因为验证数据集(Validation Set)用来调整模型参数从而选择最优模型,模型本身已经同时知道了输入和输出,所以从验证数据集上得出的误差(Error)会有偏差(Bias)。

    但是我们只用测试数据集(Test Set) 去评估模型的表现,并不会去调整优化模型。

    在传统的机器学习中,这三者一般的比例为training/validation/test = 50/25/25, 但是有些时候如果模型不需要很多调整只要拟合就可时,或者training本身就是training+validation (比如cross validation)时,也可以training/test =7/3.

    但是在深度学习中,由于数据量本身很大,而且训练神经网络需要的数据很多,可以把更多的数据分给training,而相应减少validation和test。

  • 相关阅读:
    从helloworld回顾程序的编译过程之二
    笔试题知识点记录
    jQuery面试题与答案
    hdu2586(How far away ?)
    解析PHP跳出循环的方法以及continue、break、exit的区别介绍
    如何查看任何一下网站的全部二级域名?
    urlencode()与urldecode()
    基于 LaravelAdmin 在十分钟内搭建起功能齐全的后台模板
    第一种方式:cookie的优化与购物车实例
    右键菜单的响应问题
  • 原文地址:https://www.cnblogs.com/cindycindy/p/13514966.html
Copyright © 2011-2022 走看看