hello大家好,很高兴在新年的第一天成为CSDN的一员,虽然是一名专注于智能制造领域的hr,突然发现自己对于这一领域需要学习的地方还有好多好多,很高兴和大家分享我的学习过程~

这是最近学到的一个词儿——自动化机器学习

随着机器学习的普及,近年来自动化机器学习(Automated machine learning, AutoML)框架开始出现在炼丹师们的视野之中。AutoML的目的是尽可能将特征工程、参数配置、模型选择以及上线部署过程自动化,使整个机器学习项目变得更加高效。

调参和部署的负担减轻之后,炼丹师们就可以花更多时间来关注机器学习模型本身,尝试不同的架构,设计并优化新的算法。

自动机器学习包括下面内容:

自动化特征工程

自动化模型选择和超参数调整

自动选择神经网络架构

自动部署机器学习模型

原来由手工完成的各个机器学习环节都可以通过自动化机器学习框架进行。

自动化模型选择和超参数调整

对数据特征进行预处理后,就到了机器学习算法的寻找和选择的环节。机器学习算法的目的是根据数据特征来训练机器模型,以预测新数据的标签值。

典型机器学习模型包括:

聚类模型

分类模型

回归模型

基于神经网络的模型

基于关联规则的模型等

每种算法都适合于特定类型的问题。通过自动化模型选择工具,可以针对手头的特定任务,遍历所有合适的模型,并选择产生最高准确性或最低误差的模型。

当然,没有一种机器学习算法在所有数据集上都能有最佳表现,而且超参数调整过程也必不可少。实际上,在模型选择过程中,调包侠们会尝试使用不同的变量,不同的系数或不同的超参数。这个过程极大的考验他们的经验、技巧和耐心。

因此,下列自动选择模型和超参数调整的AutoML框架将可能会是调包侠们的救星:

  • 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

Azure Automated ML

  • Google Cloud AutoML则在此领域进行了创新。在Cloud AutoML中,从用户那里获取已贴好标签的数据后,就可以直接训练计算机视觉,自然语言处理和翻译的模型,并自动调试参数,优化算法。链接:https://cloud.google.com/automl/

Google Cloud 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

自动部署

一般来说,调包侠和炼丹师们会把机器学习项目的焦点集中在算法的开发和参数的调试上,而模型的部署和在产品中的运行则很少被提及。不过,其中也存在诸多的挑战。

因此,也有些公司和开源项目正在尝试自动部署的自动化,对于并不了解DevOps的调包侠和炼丹师们来说,这些工具其实大有用途:

  • 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

好了,上面把从数据收集特征工程、模型选择、参数调试,到生产部署过程中的自动化机器学习框架和当前可用的AutoML工具几乎全都撸了一遍,如果你颇有兴趣,可以参照我在每一个工具后面附注的资料链接进行深入的学习!最后,祝各位调包侠和炼丹师项目实战成功。

【自学宝典】自动化课程 / 西门子、三菱、欧姆龙PLC电气设计与编程相关推荐

  1. 如何实现欧姆龙PLC的在线编程和远程上下载

    欧姆龙PLC是一款功能丰富多样的PLC设备,可以为不同行业不同工艺提供多样化的控制功能,因此企业对于PLC的编程维护十分看重,是工程师的必修课之一. 通过5G/4G.WIFI.以太网等方式提供给物通博 ...

  2. 三菱fx2n plc用什么编程软件

    1.早期的FXGP软件2.后期面向欧洲用户的GX IEC Developer3.现在的GX Developer4.GX IEC的改进版本GX Works三菱官网提供GX Developer和GX Wo ...

  3. 三菱PLC与第三方设备TCP通讯_不用在PLC内编程,快速实现西门子与欧姆龙、三菱等品牌的PLC之间实时通讯...

    项目中需要西门子S7-1513和欧姆龙的CJ2M之间通讯,为了快速实现完成项目,先采用一个智能网关模块来完成PLC之间的通讯任务.相关软件和手册下载 PLC与数据库双向通讯 西门子PLC从欧姆龙PLC ...

  4. adguard没有核心 core no_新媒体自学宝典(No.24)| 如何借力自媒体平台放大粉丝流量?...

    图丨Pexels 2020年第50次碎碎念 Hello~各位朋友们好~小余老师又和大家见面啦.武汉迎来了2020年第一场春雪,刚刚上了微博热搜...本周同时也迎来降温模式,开心兴奋的同时,各位朋友注意 ...

  5. 欧姆龙变频器MX2参数_第442期丨【源程序】基于三菱西门子欧姆龙松下PLC实现喷水池控制系统;欧姆龙PLC编程软件更新步骤...

    论坛周刊 1 Dec 2019 本期论坛周刊精彩内容: 1.[源程序]基于三菱\西门子\欧姆龙\松下PLC实现喷水池控制系统 2.欧姆龙PLC编程软件更新步骤 3.RSLinx Classic Ent ...

  6. 部件库,欧姆龙Plc触摸屏,三菱FX,A,Q全系列,台达,松下,西门子PLC,变频器,施耐徳按钮

    部件库,欧姆龙Plc触摸屏,三菱FX,A,Q全系列,台达,松下,西门子PLC,变频器,施耐徳按钮,接触器,断路器,德力西低压电器,正泰低压电器⋯变压器,ABB变频器,三菱变频器,力士乐变频,台达变频器 ...

  7. labview串口,网口,DSC可用OPC通讯链接三菱欧姆龙西门子等PLC

    labview串口,网口,DSC可用OPC通讯链接三菱欧姆龙西门子等PLC. 通过NI-OPC控制三菱,欧姆龙西门子等各种型号PLC 编号:7450645066968702听雪无声.

  8. labview DSC模块 opc服务器,支 持三菱,西门子,欧姆龙等PLC的通讯

    labview DSC模块 opc服务器,支 持三菱,西门子,欧姆龙等PLC的通讯 ID:6935619837015919

  9. 电脑入门完全自学手册_电气自动化自学宝典——看过人人都是工程师

    原标题:电气自动化自学宝典--看过人人都是工程师 怎样快速成为一名电气自动化工程师呢? 对于一些对电气技术一无所知或略有一点基础的人来说,要想成为一名电气自动化工程师或达到相同的技术程度,有什么速成的 ...

最新文章

  1. 业界首个实时多目标跟踪系统开源
  2. C++ 测量程序运行时间 任务管理看内存
  3. POJ 1724 二维费用最短路
  4. ./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell
  5. 你必须掌握的20个python代码,短小精悍,用处无穷
  6. android cmd里查看systemapp剩余空间不足,解决emui系统内部存储空间不足的办法
  7. php的4种常用运行方式
  8. 关于System.FormatException异常
  9. 微信小程序蓝牙连接TSPL打印机打印图片思路
  10. 微信小程序 audio 音频 组件
  11. 人再囧途之泰囧bd高清版
  12. SEO网站收录情况分析查询方法(小技巧Tips)
  13. mysql error 1236_【MySQL】Got fatal error 1236原因和解决方法
  14. 数据挖掘招聘关键字分析
  15. Android——给button添加图片
  16. Allegro不规则带通孔焊盘的制作
  17. 时间戳转换年月日——记一次字节面试题(C++实现)
  18. 机器学习:Leaning without Forgetting -- 增量学习中的抑制遗忘
  19. C#时间显示格式(12小时制VS24小时制)
  20. 关于Sigmoid函数

热门文章

  1. MAC M1安装docker并拉取mysql镜像
  2. qt程序在Linux下字体乱了,QT5程序字体渲染的问题
  3. ROOT后RE管理器上无法更改权限,因为文件系统只读
  4. 权利是人赋而非天赋的
  5. inet_aton、inet_addr和inet_ntoa
  6. 软件版本号详解,Alpha、Beta、RC、Stable、Release、GA、RTM、RTL、OEM、
  7. 抖音跳转微信/QQ/网页H5源码程序-附搭建教程
  8. Bqq服务器的缓存文件放什么目录,如何清除Android应用程序缓存?
  9. Linux 系统安全加固篇之安全加固脚本
  10. 深入CORS:历史,工作原理和最好的例子