本日、Neural Network Console Windowsをアップデートいたしました。
本Blogでは主なバージョンアップ点についてご紹介します。
・データセットCSVファイルの作成を容易にする各種前処理プラグインの追加
・TensorFlow 2.0、saved_modelフォーマット、tfliteフォーマットでのexport機能の追加(beta)
・学習に要するGPUメモリの削減とGPUメモリに乗り切らない大きなモデル学習するアウトオブコア学習機能の追加
・SHAP、SHAP(batch)、TracInプラグインの追加(XAI)
・その他
1. 各種前処理プラグインの追加
各種前処理プラグインにより、Neural Network Consoleの扱うデータセットフォーマットであるデータセットCSVファイルをより簡単に作成可能になりました。各種前処理プラグインは起動後のスクリーンのデータセット、データセットの作成メニューから利用することができます。
今回新たに追加された前処理プラグインは以下の通りです。
Object Detection (Yolo v2 format) | 入力画像に含まれる画像の種類と位置を検出する物体検出用のデータセットCSVファイルの作成するためのユーティリティーです。 画像ファイルごとに用意されるテキストファイルに物体の種類と座標を記述した物体検出用のYolo v2フォーマットを、Neural Network ConsoleのデータセットCSVファイル形式に変換します。 |
Simple Text Classification | 入力された英語文章をカテゴリに分類する文章分類用のデータセットCSVファイルの作成をサポートします。 入力CSVファイルに含まれる文章を、単語Index系列と単語Index系列の長さに変換します。 |
Simple Japanese Text Classification | Simple Text Classificationの日本語版です。入力された日本語文章をカテゴリに分類する文章分類用のデータセットCSVファイルの作成をサポートします。 |
String Classification | Simple Text Classificationの文字版です。単語ではなく文字単位で文章を扱うため、あらゆる言語の分類タスクのために利用することができます。入力CSVファイルに含まれる文章を、文字Index系列と文字Index系列の長さに変換します。 |
Simple Tabular Dataset | 入力された構造化データのCSVファイルを、Neural Network ConsoleのデータセットCSVファイル形式に変換します。入力CSVファイルに含まれる説明変数のうちカテゴリ変数をOne Hotベクトル化、連続値変数を標準化することにより、Neural Networkで扱いやすい単一の多次元ベクトルに変換します。 |
各プラグインのより詳しい使い方については、今後動画やBlog記事にて解説していく予定です。
2. TensorFlow 2.0、saved_modelフォーマット、tfliteフォーマットでのexport機能の追加(beta)
Neural Network Consoleを用いて学習したモデルを、TensorFlow 2.0のsaved_modelフォーマット、およびtfliteフォーマットでExportすることが可能になりました。
Exportを実行するには、学習結果リストを右クリックして表示されるメニューからExport、saved_model (TensorFlow saved_model)もしくはtflite (TensorFlow lite)を選択します。
本機能により、Neural Network Consoleを用いて学習したモデルをさらに多くの環境で実行可能になりました。
3. 学習に要するGPUメモリの削減とGPUメモリに乗り切らない大きなモデル学習するアウトオブコア学習機能の追加
近年Deep Learningの扱うモデルのサイズは急速に大きくなりつつありますが、これまで学習できるモデルのサイズには使用するGPUの搭載メモリの制約がありました。
今回、GPUメモリの利用効率を改善したことにより、同じサイズのモデルを学習する際の必要GPUメモリ量が削減されています。これにより、最新のバージョンをお使いいただくだけで従来よりも大きいモデル、あるいはより大きいバッチサイズでの学習が可能になりました。
さらに新たに追加されたアウトオブコア学習機能を用いることにより、GPUメモリに乗り切らない演算結果をCPUメモリに一時退避させ、GPUメモリサイズの限界を超えたモデルの学習が可能になります。アウトオブコア学習を有効にするには、コンフィグタブ、Global Configのアウトオブコア学習、有効をチェックします。
4. SHAP、SHAP(batch)、TracInプラグインの追加(XAI)
学習済みモデルの解釈を助けるXAI関連の後処理プラグイン3種類が追加になりました。
SHAP | SHAP (※1)と呼ばれる手法を用い、画像分類を行うモデルにおいて、分類結果に影響を及ぼす入力画像の箇所を可視化します。 |
SHAP(batch) | SHAP処理を複数の画像に対してまとめて行います。 |
TracIn | TracIn (※2)と呼ばれる手法を用い、画像認識を行うモデルにおいて入力画像が学習結果(精度)へ与える影響をスコアとして算出します。 |
5. その他
中断した学習の再開機能
学習結果リストを右クリックして表示されるポップアップメニューから「中断した学習の再開」を選択することにより、途中停止した学習を再開することができるようになりました。
Unitを複数入力に対応
Unitとして用いるネットワーク内に複数のInputレイヤーを配置し、Orderプロパティでその入力順序を指定することで、複数のテンソルをUnitに受け渡すことが可能になりました。1つ目の入力はUnitレイヤーの入力として、2つ目以降の入力はUnitレイヤーのサイドコネクタから入力することができます。
レイヤーの追加
InstanceNormalization、GroupNormalization、LayerNormalization、Norm、NornNormalization、WeightStandardizationレイヤーが追加されました
Optimizerの追加
AdaBelief Optimizerが追加されました
サンプルプロジェクトの追加
今回新たに追加されたサンプルプロジェクトは以下の通りです。
Adult | Adultデータセット(※3)を用いた分類 |
wav_keyboard_sound | Keyboard sound datasetデータセット(※4)を用いた4クラス波形分類 |
binary_semantic_segmentation | Character extraction datasetデータセット(※5)を用いた2値セマンティックセグメンテーション |
20newsgroups_classification | 20NewsGroupsデータセット(※6)を用いた20クラス文章分類 |
20newsgroups_word_embedding | 20NewsGroupsデータセット(※6)を用いたWord Embedding(Word2vec)の学習 |
20newsgroups_lstm_language_model | 20NewsGroupsデータセット(※6)を用いたLSTM言語モデルの学習 |
20newsgroups_transformer_language_model | 20NewsGroupsデータセット(※6)を用いたTransformer言語モデルの学習 |
新たに追加された各機能の詳細については同梱のマニュアルも合わせてご参照ください。
Neural Network Consoleは今後も改善を継続していきます。
今後の適切な機能追加のため、引き続きユーザの皆さんからのご意見ご要望をお待ちしています!
Neural Network Console Windows
https://dl.sony.com/ja/app/
(※1) SHAP
A Unified Approach to Interpreting Model Predictions
Scott Lundberg, Su-In Lee
https://arxiv.org/abs/1705.07874
(※2) TracIn
Estimating Training Data Influence by Tracing Gradient Descent
Garima Pruthi, Frederick Liu, Mukund Sundararajan, Satyen Kale
https://arxiv.org/abs/2002.08484
(※3) Adult Data Set
https://archive.ics.uci.edu/ml/datasets/adult
(※4) Keyboard sound dataset
https://support.dl.sony.com/blogs-ja/dataset/keyboard-sound-dataset/
(※5) Character extraction dataset
(※6) 20 Newsgroups
http://qwone.com/~jason/20Newsgroups/