使用机器学习进行应用程序开发时,通常遵循以下步骤。 1 建立数学模型 建模不是一件容易的事情,需要使用多种方法和手段收集数据,并且在得到数据后,需要对数据进行录入和一定的数据预处理,并保存成适当的数据格式,以便进行数据文件的使用。 2 选择算法 机器学习算法繁多,同一个问题可以使用多种算法来解决,而且新算法还在不断地涌现。但针对某一问题,不同的算法可能有不同的效果或效率,因此,适当选择机器学习算法来解决当前的具体问题显得尤为重要。 3 确立优化目标 可以说,所有的机器学习问题最终都转化为一个最优化问题,比如最小化均方误差,或者最大化似然函数等。 4 学习迭代 运用机器学习算法调用第 1 步生成的数据文件进行自学习,从而生成学习机模型。在这一步通常是采用某种优化算法 (比如梯度下降法) 去反复迭代以更新模型的参数,从而逐步逼近目标函数的最优解。 5 效果评估 回归实际问题,测试算法的工作效果。如果对算法的输出结果不满意,则可以回到第 4 步,进一步改进算法并进行重新测试。当问题与数据收集准备相关时,还需要回到第 1 步,重新考虑数据的筛选和预处理。 6 使用算法 将机器学习算法转换为应用程序,以便检验算法在实际工作中能否正常完成工作任务。
实事求是的说,机器学习的发展主要是算法的发展,当前主流的机器学习算法的梳理和总结详见教材 1.3 节。一般来说,在确立优化目标这一步,对于概率问题通常使用极大化对数似然函数作为优化目标;对于回归问题,一般采用平方误差作为损失函数,然后极小化这个损失函数作为目标;而对于分类问题则多用交叉熵作为损失函数。无论是极大化对数似然函数还是极小化损失函数,都有很多种优化方法可供选择,我们会在后续章节中进行专门的介绍。
值得注意的是,模型的评估和目标函数的设立可以是两回事,也可以是一回事。模型评估旨在从实际问题出发,而目标函数的设立除了要解决实际问题外,还需兼顾问题的可解性。比如对于分类问题,通常采用交叉熵作为目标函数,但模型评估采用的是AUC (Area Under Curve) 曲线指标。当然也可以采用AUC 指标作为目标函数去训练模型,但那样做的代价是使得优化算法变得十分复杂,这显然是得不偿失的。
|