ホーム » AutoKeras » AutoKeras 1.0 : Tutorials : 多様性データとマルチタスク

AutoKeras 1.0 : Tutorials : 多様性データとマルチタスク

AutoKeras 1.0 : Tutorials : 多様性データとマルチタスク (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/22/2020

* 本ページは、AutoKeras の以下のページを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

Tutorials : 多様性データとマルチタスク

このチュートリアルでは多様性データとマルチタスクをどのように扱うかを示すために AutoModel API を利用しています。

 

多様性とは何でしょう?

多様性データは各データインスタンスが情報の複数の形式を持つことを意味します。例えば、写真は画像としてセーブできます。画像に加えて、それはまたいつどこでそれが撮られたかを属性として持つかもしれません、これは構造化データとして表わされることができます。

 

マルチタスクとは何でしょう?

ここで言及するマルチタスクは同じ入力特徴で複数のターゲットを予測することを望みます。例えば、画像をその内容に従って分類することを望むだけでなく、その質も 0 と 1 の間の浮動小数点数として回帰することも望みます。次の図は多様性 (データ) とマルチタスク・ニューラルネットワーク・モデルのサンプルを示します。

それは 2 つの入力 – 画像と構造化データを持ちます。各画像は構造化データの属性のセットと関連します。これらのデータから、分類ラベルと回帰値を同時に予測することを試みています。

 

データ準備

私達のアイデアを示すため、多様性データとして幾つかのランダム画像と構造化データを生成します。

num_instances = 100
# Generate image data.
image_data = np.random.rand(num_instances, 32, 32, 3).astype(np.float32)
# Generate structured data.
structured_data = np.random.rand(num_instances, 20).astype(np.float32)

分類と回帰のための幾つかのマルチタスク・ターゲットも生成します。

# Generate regression targets.
regression_target = np.random.rand(num_instances, 1).astype(np.float32)
# Generate classification labels of five classes.
classification_target = np.random.randint(5, size=num_instances)

 

モデルを構築して訓練する

それから AutoModel で多様なマルチタスク・モデルを初期化します。

import autokeras as ak
# Initialize the multi with multiple inputs and outputs.
model = ak.AutoModel(
    inputs=[ak.ImageInput(), ak.StructuredDataInput()],
    outputs=[
        ak.RegressionHead(metrics=['mae']),
        ak.ClassificationHead(loss='categorical_crossentropy', metrics=['accuracy'])
    ],
    max_trials=10)
# Fit the model with prepared data.
model.fit(
    [image_data, structured_data],
    [regression_target, classification_target],
    epochs=10)

 

検証データ

デフォルトでは、AutoKeras は検証データとして訓練データの最後の 20% を使用します。下のサンプルで示されるように、パーセンテージを指定するために validation_split を使用できます。

model.fit(
    [image_data, structured_data],
    [regression_target, classification_target],
    # Split the training data and use the last 15% as validation data.
    validation_split=0.15)

validation_deta で訓練データからそれを分割する代わりに貴方自身の検証セットを使用することもできます。

split = 20

image_val = image_data[split:]
structured_val = structured_data[split:]
regression_val = regression_target[split:]
classification_val = classification_target[split:]

image_data = image_data[:split]
structured_data = structured_data[:split]
regression_target = regression_target[:split]
classification_target = classification_target[:split]

model.fit(x_train,
          y_train,
          # Use your own validation set.
          validation_data=(x_val, y_val))

 

カスタマイズされた探索空間

探索空間をカスタマイズできます。次の図は定義することを望む探索空間を示します。

import autokeras as ak

input_node1 = ak.ImageInput()
output_node = ak.Normalization()(input_node1)
output_node = ak.ImageAugmentation()(output_node)
output_node1 = ak.ConvBlock()(output_node)
output_node2 = ak.ResNetBlock(version='v2')(output_node)
output_node1 = ak.Merge()([output_node1, output_node2])

input_node2 = ak.StructuredDataInput()
output_node = ak.CategoricalToNumerical()(input_node2)
output_node2 = ak.DenseBlock()(output_node)

output_node = ak.Merge()([output_node1, output_node2])
output_node1 = ak.ClassificationHead()(output_node)
output_node2 = ak.RegressionHead()(output_node)

auto_model = ak.AutoModel(
    inputs=[input_node1, input_node2], 
    outputs=[]output_node1, output_node2],
    max_trials=10)

 

データ形式

データの異なるタイプの形式について、ImageInput, StructuredDataInput, TextInput, RegressionHead, ClassificationHead のドキュメントを参照できます。

 

以上






AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com