当前位置: 首页 > 科技观察

拖放式机器学习的爱与恨

时间:2023-03-20 18:45:37 科技观察

拖放式机器学习是我思考了很久的东西。1.过去和现在的拖放式机器学习是指人们通过在界面上拖放来创建机器学习过程。拖放式机器学习系统通常有丰富的组件,包括数据清洗、特征选择、训练、预测和效果评估。人们以类似于“积木”的方式,将学习组件综合成一个完整的机器学习过程。拖放式机器学习的雏形已经存在了很长时间。Weka是新西兰怀卡托大学开发的数据挖掘软件。除了提供JavaAPI,Weka还提供了WekaExplorer图形界面。人们可以在WekaExplorer界面上通过鼠标操作轻松加载数据、观察数据特征、训练、预测和评估效果。除了Weka免费软件外,商业软件Matlab和SASS也提供了图形界面。我个人觉得这些软件将自己定位为软件而不是工具包或系统。但这些软件确实是第一个具有图形界面的机器学习系统。随着近几年机器学习的凸显,“人人都能使用机器学习”成为了很多人的愿景。在他们的想象中,数据准备、不同算法的训练、不同算法的预测和效果评估都被封装在组件中,人们只需要用鼠标点击和拖动组件就可以流畅地使用机器学习。秉承这一理念,人们开发了许多拖放式机器学习系统。比较有名的有微软的AzureMachineLearningStudio和阿里的大数据计算服务MaxComput。除了大公司,还有开发拖放式机器学习系统的初创公司。下图是aetros基于theano搭建的深度学习平台。用户只需拖拽即可完成一个基本包含ConvNet和fcNet的结构。2、爱拖拽式机器学习,从编程到组件拖拽、配置文件编写,降低了使用机器学习的门槛。机器学习利用难度来实现质的下降。但我一直怀疑这个优势。在金融公司、外贸公司、银行甚至互联网公司等组织中,非技术人员真的有使用机器学习的需求和知识储备吗?我对此表示怀疑。即使拖放式机器学习无法实现“人人都可以使用机器学习”的初衷,但它可以极大地方便工程师执行机器学习任务。工程师在界面上整理资助的机器学习任务,可以对自己的机器学习任务有一个直观的了解:自己的机器学习任务经历了哪一步;比如我们从上图可以直观的看出,如果归一化错误,会影响拆分任务和后续任务。3、讨厌说拖放式机器学习的好,说说拖放式机器学习的坏处。在拖放式机器学习中,组件加配置取代了编程,成为人们使用机器学习的方式。然而,组件加配置并不能完全处理像编程这样的机器学习使用的复杂性。除了对机器学习算法的理解,机器学习最复杂的部分有两部分:调优特征和调优参数。调整特征的内容包括:使用哪些特征,丢弃哪些特征,使用哪些特征预处理方法(如缩放)。调整参数与具体算法有关。例如,逻辑回归主要有两个参数:学习率和正则化因子。组件加配置的方法可以配置一组特征工程方案和一组参数,但是很难快速验证哪一组特征工程方案和参数效果最好。在编程模式下,我们可以循环遍历不同的特征工程方案和参数,得到相应的效果指标。但是在拖拽式机器学习组件加配置方式中,我们只能在文档中记录不同的特征工程方案和参数,选择其中一个配置给拖拽式机器学习系统,运行一段时间数小时获取评价指标,将评价指标记录到文档中;然后选择下一组,重复上述步骤,直到遍历完所有的特征工程方案和参数。我们程序员的目标是使用代码将不同的任务串在一起并使它们自动化。但现在拖放式机器学习已经大致割裂了这条自动化链条。那么直接使用组件加配置来实现自动化呢?如果要做到这一点,拖拽式机器学习必须提供条件判断组件和循环组件,还需要定义一套特征工程方案和参数变化标准。这就像制定一种新的编程语言。这又绕回来了。4.拖放式机器学习总结我并不看好“人人都能用上机器学习”的初衷。对于工程师来说,拖放式机器学习同样充满爱恨情仇。【本文为专栏作家“李莉”原创稿件,转载请联系授权】点此查看该作者更多好文