文章目录

    • 概要
    • 集合关系
    • 总结

概要

        深度学习(Deep Learning,DL)是机器学习的一个重要分支,它以数据的原始形态(raw data)作为算法的输入,由算法将原始数据逐层抽象为自身任务所需要的最终特征表示,最后以特征到任务目标的映射作为结束。核心是通过模拟人类大脑中 “神经元连接” 的结构(即 “神经网络”),让计算机从数据中自主学习规律,最终实现 “识别、预测、决策” 等智能任务。

     深度学习的数据驱动特性决定了其对数据的依赖、模型的 “能力” 依赖数据来 “激活”,可见数据对与深度学习来说就像“老师”。在深度学习中,数据又可分为训练集、验证集、测试集,这三个集合之间有什么异同,对于深度学习新手来说我们可能很难弄明白其中之间的关系,尤其是验证集与测试集,现在我们就来讲一讲这三种集合之间的关系。

集合间关系

训练集(Training Set)

        顾名思义就是用来训练模型的集合,例如在卷积神经网络中,数据输入模型后,卷积层会提取数据的特征,模型通过学习这些特征与标签的关联规律,借助损失函数和反向传播不断更新包括卷积层在内的各层参数。由于模型就是在训练集中学习,就像在“抄作业”一样,模型很容易得到很好的表现(因为模型可能对训练数据 “过拟合”,即过度记住训练样本细节而非通用规律),所有训练集无法作为评价模型好坏的标准。

验证集(Validation Set)

        上面讲到训练集无法作为评价模型训练是否成功的依据,那么我们怎么初步评价模型好坏呢,验证集就充当这个角色。模型训练的典型流程是:模型在训练集上多轮学习并更新参数,每轮(或特定间隔)用验证集评估表现(通过准确率、均方根误差等指标),据此选择最优参数并保存模型。

测试集(Test Set)

     测试集充当的角色是模型的“最终考官”,用于模拟模型在实际应用中的表现,检验其“泛化能力” (对从未见过的数据的预测能力)。  

验证集与测试集关系与区别:

        总的来说,验证集直接参与了模型的训练过程,如参与 “调优决策”(如早停、超参数选择),测试集未参与模型的训练过程,仅仅作为评价模型训练结果好坏的依据。但是无论验证集还是测试集均是模型从来没有见过的数据,这就是为什么容易混淆验证集和测试集的原因,如果验证集还是模型见过的数据,那么将失去评价模型好坏的说服力(因为模型在训练集中已经有验证集的数据那么模型是可以学习到验证集数据特征的,再用验证集是评价是不合理的)

总结:

        区别:训练集 “教模型学”,验证集 “帮模型优”,测试集 “验模型好”;

        联系:同源数据、分布一致

三者的分工就像 “学生学习”:训练集是 “课本”(用于学习知识),验证集是 “模拟考”(用于发现弱点、调整学习方法),测试集是 “高考”(最终检验真实水平)。

        

        

        

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐