数据集与机器学习
深度学习领域最难解决的问题之一和神经网络本身没有关系:这个问题就是如何获取格式恰当的合适数据。
深度学习和其他类型的机器学习都需要优质的定型数据集才能正常运作。定型数据集是大量已知数据的集合,它的收集和建立需要时间, 也需要特定领域的专业知识——要懂得从何处、以何种方式来收集有意义的信息。定型数据集在深度学习网络的定型过程中起到基准的作用。 网络先要学习重构定型集中的数据,然后才能去处理从未遇到过的数据。
在定型阶段,具备相关知识的人类需要找到合适的原始数据并将其转换为深度学习算法所能理解的数值表示形式,即向量。 建立定型数据集的过程可以算是“预预定型”。
需要大量时间或专业知识的定型数据集可以成为数据科学和问题解决领域中的特有竞争优势,而这种专业知识的本质主要就是通过选择定型数据集中的内容来告诉算法应该重视什么东西。
您需要用最初选择的数据来讲述一个故事,引导深度学习网络推测出重要的特征——不仅是定型集的重要特征,也是网络所要实际学习的原始数据的重要特征。
要创建一个有效的定型数据集,您就必须充分理解手头需要解决的问题,亦即您想要让深度学习网络关注什么。
两种数据集
机器学习通常要用到三种数据集:定型集、开发集和测试集。这三种数据集都应当从规模更大的数据集合中采样。
- 定型集
首先用到的是定型集,也是三种数据集中最大的。神经网络在处理定型集的数据时,将学会如何判断不同特征应有的权重,根据使结果误差最小化的可能性来为特征指定系数。
这些系数也被称为元数据,它们包含在向量中,神经网络的每一层都有一个这样的向量。它们是神经网络定型所产生的最重要的结果。
- 测试集
第二种数据集是测试集。它的作用就相当于是一枚许可图章,不到最后不会使用。数据定型和优化完毕后,就用最后这组随机样本来测试神经网络。测试集产生的结果应当能验证网络可以准确地识别图像,或者至少能识别百分之[x]
的图像。
如果没有得到准确的预测结果,您就需要回到定型集,检查用于调试网络的超参数,以及数据的质量和预处理的方式。
自定义数据集
深度学习网络的一切输入,无论是文字、图像或其他数据,都必须转换为数值组成的向量,这一过程称为向量化。向量就是一个行数不限的单列矩阵。
DataVec
DataVec 是采用Apache 2.0许可协议的开源工具,用于机器学习中的ETL(提取、转换、加载)操作。DataVec的任务是将原始数据转换为各类机器学习工具均可使用的向量格式。
DataVec提供将图像转换为向量的工具,还可以根据目录名称和结构来标记图像。DataVec也提供读取CSV数据并将字段转换为数值格式的工具
开放数据集
本页为您整理汇总了各类可供机器学习研究使用的高质量数据集。还可以在维基百科等其他地方找到类似的数据集一览表。