Day 19 : 深度学习(神经网络)自动建模术 - AutoMLs

  • 随着 ML/DL 模型研究屡有突破,现今模型训练成果已经相当具有水准,但如果需要藉由手动选择最佳的模型确实较花时间,因此已经出现取多自动化机械学习 AutoMLs 方案,云端平台 Azure 、AWS、GCP 也提供许多 AutoMLs 服务,并主打轻松解决 ML 复杂的自动建构机械学习与预测服务。
  • 不过对於 AutoMLs 应有个基本认知,AutoMLs 会遴选多种较通用的模型取得最佳成绩,但如果您有特别的模型需求,AutoMLs不见得可以提供最适切的效果,在自动建模的搜寻过程中,多采较泛用的模型进行选择,您可以期待得到与人类水平相近似的成绩,但要追求顶尖成果您可以接手自行尝试。
  • AutoMLs 中讨论自动化神经网络搜寻的子集称之为 Neural Architecture Search (NAS) ,是实现以自动化搜寻神经网路最佳解决方案的技术。
  • 也因为 AutoMLs 的出现, 追求自动的 MLOps 解决方案以因应持续训练 Continuous Training (CT) 成为可能。以下分别介绍基於云端平台的 AutoMLs 工具,以及开源的 Auto Keras。

基於云端平台的 AutoMLs 工具

  • 采取公有云的方案最大好处是「用多少算多少」,省下大量购置/闲置/折旧成本开销,当然量一多烧钱也很可观。

Amazon SageMaker Autopilot

  • Amazon SageMaker Autopilot 能依据资料来自动建置、训练和调整最佳 ML 模型,仅需提供表格式资料集并选取目标直栏即可进行预测,它可以是数值 (例如:房价,称为回归),或类别 (例如:垃圾邮件/非垃圾邮件,称为分类)。

Microsoft Azure Automated Machine Learning

Google Cloud AutoML

  • Google Cloud AutoML 说明即使您对於机器学习领域并没有充足的专业知识,也能轻松训练出品质优异的自订机器学习模型,在许多解决方案中,Vertex AI 将 AutoML 和 AI Platform 整合到一个统一的 API、客户端库和用户界面中。

开源的解决方案 AutoKeras

  • AutoKeras:基於 Keras 的 AutoML 系统。它由德克萨斯农工大学的 DATA 实验室开发。AutoKeras 的目标是让每个人都可以使用机器学习。

  • AutoKeras 的社群相当活跃,您可以找到许多解决方案。

  • AutoKeras 目前支持的 Auto MLs 包含:

    • 图像分类ImageClassifier
    • 图像回归ImageRegressor
    • 文本分类TextClassifier
    • 文本回归TextRegressor
    • 结构化资料分类StructuredDataClassifier
    • 结构化资料回归StructuredDataRegressor
    • 时间序列预测TimeseriesForecaster
    • 多模式任务
  • 上述官方范例文件及对应可执行的 Colab ,另外文件也指出,如果需要更加进阶、客制自动搜寻模型,可以用AutoModel以及其参数实现,欢迎您尝试。

使用介绍

以下以可以发现与一般训练流程差不多,以下以官方范例Image Classification 说明, 官方 Colab 范例 供参考,但提醒您会跑超过半小时,您要测试时建议减少 epochs 等参数。

  • 安装 autokeras 模组。

    !pip install autokeras
    
  • 训练模型(摘述),与 tf.keras 训练方式类似。

    import autokeras as ak
    
    # 初始化实例
    clf = ak.ImageClassifier(overwrite=True, max_trials=1)
    
    # 训练模型,会比较花时间,跑着跑着最佳模型与参数就出来了。
    clf.fit(x_train, y_train, epochs=10)
    
    
  • 最终结果

  • 您可以注意到,最佳模型结果已经储存在./image_classifier/best_model/ 之中,包含save_model.pbkeras_metadata.pb 中继资料。

小结

  • AutoMLs 自动搜寻最佳模型解决方案,可以省下人工调参及选择模型的时间,时间就是金钱。
  • 主流云端服务厂商皆有提供 AutoMLs 的整合服务,开源的 Auta Keras 也很活跃可以运用。

参考


<<:  Day4:进入新手村前先让我复习一下QQ-CSS3-Flexbox-基本用途

>>:  【Day 04】- Python 条件判断与回圈

Day10 HTML表单元素

表单是什麽? 表单是用来收集使用者输入的资料,而这些输入的资料通常会被送到网页服务器来处理或储存,...

[10] 撰写自己的 console.log

现在开始建立介面前有一个重要的事情要做 就是单纯的 console.log 到画面上少了很多科技感 ...

DAY 25 制作表格-添加中文字体

添加中文字体 在安装matplotlib後,因为我们的资料内含有中文字,而matplotlib内建并...

Day 4:认识HTML+HTML架构

建立HTML档案 打开VSCode > 档案 > 另存新档为html档+命名 > ...

[Day12] 团队系统设计 - 估点系统 (下)

上一篇文章分析了 Scrum 团队在估点活动的遭遇的困难,以及滞碍难行之处。今天来分享我时常采用的变...