机器学习根据数据生成预测模型,模型生成包含以下几个主要步骤(图1.1)。
图1.1 机器学习主要步骤
第一步,准备工作:明确问题是进行机器学习的第一步,即将现实问题抽象成数学问题。在实际应用中我们得到的并非一个明确的机器学习任务,而是一个需要解决的问题。这时我们可以将该问题抽象成数学问题,通过数学模型的方式来解决。如明确在学习过程中可以获取到的数据类型,明确学习目标为分类问题(classification problem)还是回归问题(regression problem),明确模型中的参数的作用等。根据不同的问题目标,形成不同数学表达,为后续模型选择做好准备。
第二步,数据预处理:数据预处理包括两方面,一方面是获取数据,另一方面是特征预处理与特征选择(feature selection)。数据的质量决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。如在预测房屋价格时,需要通过人工获取数据,可以从和房屋相关的网站上获取数据、提取特征并进行标注。人工收集数据耗时较长且非常容易出错,只有在其他方法都无法实现时才会采用。因此,通常我们可以通过网络爬虫从相关网站收集数据,从传感器收集实测数据(如压力传感器的压力数据),从某些API(应用程序接口)获取数据(如交易所的交易数据),从App或Web端收集数据等。对于某些领域,也可直接采用业界的公开数据集,从而节省时间和精力。此外,数据要有代表性,否则必然会过拟合(overfitting)。而且对于分类问题,数据偏移不能过于严重,即不同类别的数据所占的比例尽可能均衡。通过数据采集得到的原始数据可能并不规范,需对数据进行清洗才能满足使用需求。如去掉数据集中的重复数据、噪声数据,修正错误数据等。最后将数据转换为需要的格式,以便后续处理。对数据分布进行评估,决定使用何种特征表达。特征预处理包括标准化、归一化、信号增强等特征转换处理。这在机器学习过程中是关键步骤之一,在很大程度上影响了任何后续统计或机器学习算法的效果。通过消除数据冗余性、去除噪声,提取具有代表性的部分来提高机器学习的效率。如何获取这些特征中较为重要的部分则是特征选择所要做的工作。特征选择是模式分类、机器学习中一个关键的环节,良好的特征设计能够减少对后续机器学习算法的依赖性。特征的好坏也直接制约着整个机器学习系统的性能。因此,特征的预处理和特征选择一直是机器学习领域的一个重要的研究方向。例如在计算机视觉领域的长期研究过程中,研究人员提出各种特征提取方法用于解决具体的分类问题。这些特征包括基本的图像颜色特征、纹理特征、局部特征以及全局特征等,在基本的图像分类(image classification)和识别任务上取得了较好的应用效果。然而,这些人工设计的特征主要存在两个方面的问题:一方面,随着视觉任务规模的增大以及复杂性的增强,使用简单的基本特征进行分类任务,往往效果不佳;另一方面,针对某一视觉问题,通常情况下我们需要非常强的先验知识或者通过不同的特征尝试或参数选择才能得到令人满意的特征,给整个分类问题带来了复杂性和不确定性。近年来,基于特定神经网络(neural network)结构自动发现图像中隐藏的模式以学习有效特征的特征学习模式被广泛使用。使用如卷积神经网络(convolutional neural networks,CNN)的方式自动发现数据中的特征,有助于对海量数据进行进一步的分类和识别。典型的方式有基于单层网络结构的特征学习和基于深度结构的特征学习,它们在图像分类和识别上均有成功应用的案例。
第三步,模型选择与调优:对于具有不同分布的数据,我们需要选择合适的模型。直到这一步才用到我们上面说的算法进行训练。现在很多算法都能够封装成黑盒供人使用。但是真正考验水平的是调整这些算法的(超)参数,使结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。(www.daowen.com)
第四步,模型测试与融合:如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。我们实际希望得到的是能够在新样本上表现很好的机器。在新样本上的误差,我们称为泛化误差。训练分类器的时候,分类器学习训练集“太好”,可能会导致分类器将训练集的一些特点当成所有样本的普遍规律,这样会导致泛化性能下降,这种现象在机器学习中被称为“过拟合”。相反,如果分类器学习训练集“太差”,甚至没有学习到训练集中的一般特性,这种现象称为“欠拟合”(underfitting)。过拟合、欠拟合判断是模型诊断中至关重要的一步。常见的判断方法如交叉验证、绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。我们将分类器的预测输出与样本的真实输出之间的差异称为误差,将预测正确的样本数占样本总数的比例称为准确率(accuracy),预测错误的样本数占样本总数的比例称为错误率(error rate)。但是准确率并不能有效说明机器学习性能,实际上达到准确率100%的分类器在大多数情况都不好。误差分析也是机器学习至关重要的步骤。通过观察误差样本,全面分析产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题……诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代、不断逼近的过程,需要不断地尝试,进而达到最优状态。
第五步,模型部署与维护:这一部分内容和工程实现的相关性比较大。工程是结果导向,模型在线上运行的效果直接决定模型的成败。对模型效果的评价不仅仅包含准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
这些工作流程主要是工程实践中总结出的一些经验,并不是每个项目都包含一个完整的流程。这里的部分只是一个指导性的说明,在具体的机器学习实践过程中,需要具体问题具体分析,经验的积累和理论的指导缺一不可。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。