ディープラーニングモデルを自動構築するAutoML OSS「AutoKeras」AutoML OSS入門(7)(1/3 ページ)

AutoML OSSを紹介する本連載第7回は、KerasベースのAutoML OSSである「AutoKeras」を解説します。AutoKerasは、ENAS(Efficient Neural Architecture Search)によりニューラルネットワークの構造設計とハイパーパラメーターチューニングを自動で行うツールです。

» 2021年12月13日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

本記事で紹介したノートブックはGitHubにて公開しています。すぐに実行できますので、ぜひご利用ください。

 本連載第6回では、最小限のPythonコードでAutoMLを実現するローコード機械学習ライブラリ「PyCaret」を紹介しました。今回はディープラーニングモデルを自動構築する「AutoKeras」を紹介します。

AutoKerasとは

 AutoKerasは、TensorFlowまたはMicrosoft Cognitive Toolkit(CNTK)などの高レベルAPIであるKeras(現在はtf.keras〈※〉)をベースとしたAutoMLシステムで、テキサスA&M大学のData Labで開発されました。

 AutoKerasの目標は、公式サイトで“The goal of AutoKeras is to make machine learning accessible to everyone.”と書かれているように、機械学習を誰もが近づきやすいものにすることです。

※現在KerasはTensorFlowに取り込まれ、以前のKerasと区別するためにtf.kerasと呼ばれることがあります。

開発元 テキサスA&M大学 Data Lab
GitHub公開日 2017年11月
リポジトリ https://github.com/keras-team/autokeras
実装言語 Python
ライセンス Apache-2.0 License
公式サイト https://autokeras.com/
表1 AutoKerasの基本情報

 AutoKerasは以下のような識別器クラスを備えており、画像をはじめテキストやテーブルデータなどを扱うことができます。

識別器 機能
ImageClassifier 画像の分類
ImageRegressor 画像による回帰
TextClassifer テキストの分類
TextRegressor テキストによる回帰
StructuredDataClassifier 構造化データの分類
StructuredDataRegressor 構造化データによる回帰
TimeSeriesForecaster 時系列予測
表2 AutoKerasの識別器

 そして、各識別器クラスは、以下のようなメソッドを備えています。

メソッド 機能
fit() 学習
predict() 予測
evaluate() 評価
export_model() モデルのエクスポート
表3 識別器クラスのメソッド一覧

 具体例は次の章で説明しますが、AutoKerasの基本的な使い方は非常に簡単で、以下のような短いコードで学習や予測ができます。

  1. import autokeras as ak
  2. clf = ak.ImageClassifier()
  3. # 学習
  4. clf.fit(X_train, y_train)
  5. # 予測
  6. predictions = clf.predict(X_test)

主な特徴

 AutoKerasは、AutoMLができる他のOSS(オープンソースソフトウェア)と比較して次のような特徴があります。

  • Efficitent Neural Architecture Search(ENAS)によるニューラルネットワークの構造設計
  • マルチモーダル&マルチタスクにも対応

ENASによるニューラルネットワークの構造設計

 AutoKerasはENASと呼ばれる効率的な最新のNeural Architecture Searchを実現しており、最適なニューラルネットワーク構造を自動で見つけてくれます。

 AutoKerasのシステムアーキテクチャを図1に示します。API呼出し後の処理フローは次のようになっています。

  1. Searcherのベイジアンオプティマイザーは、CPUを使って新しいニューラルアーキテクチャを生成する
  2. Graphモジュールは、生成されたニューラルアーキテクチャからRAM上にパラメーターを持つ実際のニューラルネットワークを構築する
  3. Model Trainerは、構築されたニューラルネットワークをGPUにコピーし、学習する
  4. 学習済みのニューラルネットワークはストレージに保存される
図1 AutoKerasのシステム概要 図1 AutoKerasのシステム概要(出典:Auto-Keras: An Efficient Neural Architecture Search System

マルチモーダル&マルチタスクにも対応

 AutoKerasでは、図2に示すようなマルチモーダルおよびマルチタスクニューラルネットワークモデルによる予測もできます。

図2 マルチモーダル&マルチタスクニューラルネットワークモデルの例 図2 マルチモーダル&マルチタスクニューラルネットワークモデルの例(出典:公式チュートリアル

 マルチモーダルとは、さまざまな種類の情報(画像、テキスト、構造化データ)のことで、複数のデータソースからモデルを学習する仕組みをマルチモーダル学習といいます。例えば、写真を分類するために、画像に加えて、撮影日時や撮影場所(位置情報)などの構造化データも利用するような場合が考えられます。

 同じ入力特徴量から複数のターゲットを予測するマルチタスクにも対応しています。複数のターゲットを1つのモデルで学習することをマルチタスク学習といいます。例えば、写真に写っている人物の性別を判定するだけでなく、その年齢を予測することなどが考えられます。

 AutoModelクラスを使用して、マルチモーダルおよびマルチタスクニューラルネットワークを初期化し、学習するコードの例を示します。

  1. # モデルの初期化
  2. model = ak.AutoModel(
  3. inputs=[ak.ImageInput(), ak.StructuredDataInput()],
  4. outputs=[
  5. ak.RegressionHead(metrics=["mae"]),
  6. ak.ClassificationHead(loss="categorical_crossentropy", metrics=["accuracy"]),
  7. ],
  8. overwrite=True,
  9. max_trials=2
  10. )
  11. # モデルの学習
  12. model.fit(
  13. [image_data, structured_data],
  14. [regression_target, classification_target],
  15. epochs=3
  16. )
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

Smart & Social 髫ェ蛟�スコ荵斟帷ケ晢スウ郢ァ�ュ郢晢スウ郢ァ�ー

隴幢スャ隴鯉ス・隴帷」ッ菫」

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。