机器学习工作流的迭代与复杂性
我们要让算法顺利从实验室落地到产品,除了算法还需要考虑很多东西。首先我们考虑到模型的部署、如何通过服务形式调用模型预测结果。其实不仅如此我们希望更多可控可视化的东西融入这个流程中去,包括提供对模型训练的控制的服务、以及监控模型训练的过程的可视化界面,这些一切一切都是需要我们考虑到的。
准备
-
数据收集与准备:因为平时我们在研究算法和学习模型时,用到一些数据集都是标准大型数据集,虽然在这些数据集跑我们模型所得都结果具有一定说服力。但是实际项目中数据集也是五花八门,多种多样。而且数据对机器学习重要性不言而喻,这个大家公所周知。所以我们大部分工作都是在分析和处理数据集。
其实对于图片打标签也是一个需要投入大量人力的工作。尤其现在语义分割的数据集,我们需要通过多边形描点的方式把目标的轮廓绘制出来。这需要大量人力物理,这也是我们需要面临问题。
构建
- 选择或构建一项 ML 算法,现在大家都想让更多人,那些不了解机器学习的人也能够享受到机器学习福利。所以根据一些实际问题对模型分类让大家拎包即住。
现在有很多可视化配置 autoML 工具或者说是应用,只要配置训练和验证数据集存储位置,以及指定训练模型参数保存位置,然后只要简单指定好你要做问题,是分类问题还是预测问题,训练后就可以得到想要的结果。这是多么好呀,这么好就值得我们思考了到底真的这么好吗,其实不然,如果要训练出产品级别的模型还需要对算法和模型有深入研究,才能调试出好的模型,如果真的这么容易,还需要那个高薪招聘 AI 工程师吗。
训练与调优
- 设置并管理训练环境
- 模型训练与调优
- 管理训练轮次
这一块也是很重工作,难度是如何根据实际项目实际情况调整既有的网络结构,而且一些超参数设置和训练的批次和迭代次设计也是值得深入研究的。
现在 AI 项目难度也是越来越大,单一模型或网络结构很难扛起这么难的任务,需要多个模型协作共同完成,如何协作也是我们需要今天考虑的问题。
同一问题有很多备选模型,每一个模型又有很多可调参数,可以通过反复尝试组合不同模型和参数来进行训练查看训练结果。
网友评论