文末送书调参太费力?自动化机器学习来帮你!
Posted 我爱计算机视觉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文末送书调参太费力?自动化机器学习来帮你!相关的知识,希望对你有一定的参考价值。
问题定义,即抓准机器学习应用场景
数据准备和特征工程
模型(算法)的选择
机器学习(训练机器的过程),确定参数和超参数
评估和性能优化
自动化特征工程
自动化模型选择和超参数调整
自动选择神经网络架构
自动部署机器学习模型
自动化特征工程
机器学习算法的性能很大程度上取决于数据特征的质量。对于数据科学家来说,特征工程是一项劳动密集型的工作,涉及大量的试验,深厚的领域知识。自动化特征工程的目的是通过不断迭代、调整,自动创建出新的特征集,直到模型达到令人满意的准确性为止。
下面就列出并简要描述一些自动特征功能工程的框架,这些框架可以用于结构化的事务和关系数据集。
DataRobot使用“模型蓝图”来实现自动化特征工程,该模型将不同的预处理步骤堆叠在机器学习过程中。它对数据应用的标准预处理技术包括one-hot编码,插补,类别计数,文本的n-gram token等等。链接:https://www.datarobot.com/blog/automated-feature-engineering/
H2O的Driverless AI 是一个自动化机器学习的平台,包含自动化特征工程,模型验证,模型调整,模型选择和模型部署。其中的特征工程自动化工具包括:日期转换器,从分类到数字编码的交叉验证,文本转换器(使用TF-IDF或count),one-hot编码,Ewma Lags转换器,文本簇间距转换器等等。链接:https://www.h2o.ai/products/h2o-driverless-ai/
tsfresh是一个Python库,用于计算和提取时间序列数据中的特征,例如中值,均值,样本熵,分位数,偏度,方差,值计数,峰数等。它主要用于时间序列数据,对于其它类型数据,可以与上述其他工具结合使用。链接:https://tsfresh.readthedocs.io/en/latest/text/introduction.html
不过,自动化特征工程仍是一项艰巨的任务。而且,有一些数据科学家并不赞成特征工程的自动化,认为有可能产生不正确的结果,或会生成错误的标签以非透明的方式对数据进行分类。因此,应谨慎使用自动化特征工程工具,并抽查自动特征工程结果是否有意义。
自动化模型选择和超参数调整
聚类模型
分类模型
回归模型
基于神经网络的模型
基于关联规则的模型等
Auto-sklearn是Mathias Feurer,Aaron Klein等人创建的Python库。Sklearn作为非常常见的机器学习算法框架尽人皆知,而Auto-sklearn解决了机器学习中的两个核心过程:从大量分类和回归算法列表中选择算法以及超参数优化。Auto-sklearn可以从决策树,高斯朴素贝叶斯,梯度提升,kNN,LDA,SVM,随机森林和线性分类器(SGD)中进行自动选择。链接:https://automl.github.io/auto-sklearn/master/
R语言的auto.arima软件包对于时间序列数据处理很有妙用,该软件包使用AIC作为优化指标。链接:https://www.rdocumentation.org/packages/forecast/versions/8.4/topics/auto.arima
R语言的 caret包则可以在超参数空间中执行搜索,找到给定模型的最佳参数配置。例如,它可以寻找神经网络中最佳的隐藏层数,随机森林中的最合适的树木个数和随机变量数等。链接:https://cran.r-project.org/web/packages/caret/
H2O的Driverless AI 可以通过h2o.automl包同时自动训练多种算法。例如同时训练GLM,Xgboost,随机森林,深度学习,集成模型等不同模型来进行结果比较。链接:http://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html
DataRobot也可以同时自动训练多种算法,并选择一种算法来获得最高的准确性。再这个过程中,它允许数据科学家手动干预和调整模型。链接:https://www.datarobot.com/blog/automated-feature-engineering/
微软Azure中,包含Automated ML工具包,它利用协同过滤和贝叶斯优化来自动化机器学习过程中特征工程,算法选择和超参数配置。链接:https://docs.microsoft.com/en-us/azure/machine-learning/tutorial-auto-train-models
Google Cloud AutoML则在此领域进行了创新。在Cloud AutoML中,从用户那里获取已贴好标签的数据后,就可以直接训练计算机视觉,自然语言处理和翻译的模型,并自动调试参数,优化算法。链接:https://cloud.google.com/automl/
TPOT是用于自动机器学习的Python库,它利用遗传算法来优化机器学习,包括数据清洗,特征选择,特征预处理,特征构造,模型选择和参数优化等。TPOT库会基于scikit-learn中的机器学习库进行模型的自动选择。链接:http://epistasislab.github.io/tpot/
亚马逊的云服务Amazon Sage Maker则提供了用于模型构建,培训和部署的功能。它可以通过贝叶斯优化自动调整算法。链接:https://aws.amazon.com/sagemaker/features/
HyperDrive也是Microsoft的产品,通过随机搜索,网格搜索或贝叶斯优化来搜索超参数空间并进行参数优化。在HyperDrive中可以调度程序,通过优化质量和成本等选项提前终止参数搜索。链接:https://www.microsoft.com/en-us/research/publication/hyperdrive-exploring-hyperparameters-pop-scheduling/
自动化神经网络架构选择
在深度学习时代,设计和构建神经网络架构是机器学习世界中最繁琐的任务之一。针对各种不同的场景,炼丹师们总是要尝试遍历各种不同神经网络架构,以优化手头任务的目标函数。这是非常耗时并且经常容易出错的工作。有时以及调好的网络会因为数据的一点点变化而突然神秘的变得不再好用……
Google最近提出了采用进化算法和强化学习来实现神经网络搜索的想法,以找到最佳的神经网络体系结构。从本质上讲,这是在训练过程中创建一个个的层,然后堆叠这些层以创建出适宜的深度神经网络体系结构。
最近,该领域的研究引起了很多关注,值得一提的著名研究论文包括:
NASNet —— 学习可扩展的体系结构以实现可伸缩的图像识别。链接:https://arxiv.org/abs/1707.07012
AmoebaNet—— 图像分类器体系结构搜索的正则化进化。链接:https://arxiv.org/abs/1802.01548
ENAS —— 高效的神经体系结构搜索。链接:https://arxiv.org/pdf/1802.03268.pdf
自动部署
Seldon提供了以R,Python,Java和NodeJS构建的模型,并自动将其部署到Kubernetes集群,并可以与kubeflow,IBM深度学习框架,NVIDIA TensorRT和DL Inference Server,Tensorflow Serving进行集成。链接:https://github.com/SeldonIO/seldon-core
Redis-ML 是Redis数据库中的一个模块,可将机器学习模型部署到生产系统中,它目前仅支持随机森林(分类和回归),线性回归和逻辑回归算法。链接:https://github.com/RedisLabsModules/redisml
Microsoft Machine Learning Service可将机器学习模型部署为可扩展的Kubernetes集群的Web服务。链接:https://docs.microsoft.com/en-gb/azure/machine-learning/tutorial-deploy-models-with-aml
Amazon SageMaker可将机器学习模型部署到的HTTPS终端节点,用于为应用程序推断/预测新数据的值。链接:https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html
Google Cloud ML也可以实现类似的Web部署功能,通过对托管机器学习模型的Web服务的HTTP调用来进行数据推断。链接:https://cloud.google.com/ai-platform/prediction/docs/online-predict
H2O.ai通过Java MOJO(模型对象优化)的概念来部署机器学习模型。MOJO支持AutoML,深度学习,DRF,GBM,GLM,GLRM,K-Means,堆叠集成,SVM,Word2vec和XGBoost模型。它与Java类型环境高度集成。对于非Java模型(例如R或Python),可以将模型另存为序列化对象并加载。链接:http://docs.h2o.ai/h2o/latest-stable/h2o-docs/productionizing.html
TensorFlow Serving可将Tensorflow机器学习模型部署到生产系统中。只需要几行代码,就可以通过Tensorflow模型生成API。链接:https://www.tensorflow.org/tfx/guide/serving
福利时间
以上是关于文末送书调参太费力?自动化机器学习来帮你!的主要内容,如果未能解决你的问题,请参考以下文章