什麽是AutoML

什麽是AutoML

根据 Microsoft的说法节录如下:
自动化机器学习 (亦称为自动化 ML 或 AutoML) 是使机器学习模型开发中耗时的反覆工作自动化的流程。 其可让资料科学家、分析师和开发人员以高扩充性、效率和生产力来建置 ML 模型,同时维持模型品质。

来自 https://docs.microsoft.com/zh-tw/azure/machine-learning/concept-automated-ml

<<白话文>>
以MNIST为例(判断手写数字)。首先,我们拿到一堆资料。经过前处理後,先直觉的选个神经网路模型(CNN)来判断数字。Pytorch MNIST要设定一些参数,先用预设值,然後丢到两个网站试跑一次。(因为local机器设备简陋,而且要省电吹冷气!)

Google CoLab:耗时 10 min 14 sec。
DeepNote:耗时 26.2 min。(虽然这里编写程序很舒服,但免费资源限制多,只好说再见!)

仅预设值就得耗掉 CoLab 10 min 14 sec!也就是说,调一次参数再去炸CoLab(一次experiment) ,又得再花10 min 14 sec!而且,重点是自己还得纯手工,无聊地改参数,再回炸。这些参数,NNI(Neural Network Intelligence)称作Hyper-parameters(超参 = Model参数+环境参数),放参数的地方叫做search space。让我们随便找几个参数来组合看看。

searchSpace:
  batch_size:
    _type: choice
    _value: [16, 32, 64, 128]
  hidden_size:
    _type: choice
    _value: [128, 256, 512, 1024]
  lr:
    _type: choice
    _value: [0.0001, 0.001, 0.01, 0.1]
  momentum:
    _type: uniform
    _value: [0, 1]

这里有几个参数(先别管是甚麽用途):batch_size,hidden_size,lr(learn rate),momentum。依照里面的数字之个数来做组合,4x4x4x2,纯手工要改这麽多次,而且每次要苦等11 mins,这未免太无聊了!所以,丢给NNI(Neural Network Intelligence)去处理吧!!

AutoML能得到的好处

传统机器学习模型的开发会耗用大量资源,需要大量的领域知识和时间来产生和比较数十种模型。 透过自动化机器学习,您将可以更轻松、更高效率地缩短取得生产就绪 ML 模型所需的时间。

来自 https://docs.microsoft.com/zh-tw/azure/machine-learning/concept-automated-ml

那NNI(Neural Network Intelligence)好处及特性为何呢?请看下次分解。

<<注>>NNI是目前开源软件里面,排名第一的AutoML工具。


<<:  Day9 重叠条件配对池 Overlapping MatchProfiles

>>:  【在 iOS 开发路上的大小事-Day05】透过闭包 (Closure) 来传值

Day 4 基本 flask 函式 (1)

前言 昨天提到了一些 flask 的例子,而今天会继续深入讨论他提供的一些函式,可以让写出来的网页有...

[JS] You Don't Know JavaScript [Scope & Closures] - Using Closures?

前言 目前为止我们都专注在解释辞法范围,以及他会对程序中的变量与使用产生什麽影响,本章节会将角度转移...

tkinter 实现台湾类股抽签程序

# -*- coding: utf-8 -*- import tkinter as tk impor...

NestJs 延伸篇 - Federation 实作

上一篇我们建立了 gateway ,也把 Task Service 安装了 federation 的...

[Day-28] cin深入练习(二)

上次复习了基本的cin语法的应用 这次要来延伸cin的其他语法 如果纯粹只使用cin的话 在某些时候...