連載
» 2020年07月07日 05時00分 公開

AI・機械学習のツール&ライブラリ:Neural Network Console概説: GUIで直感的にディープラーニングしよう!

Sonyが自社製品でも活用する信頼性の高いディープラーニングツール「NNC:Neural Network Console」の概要と特徴を筆者なりに分析して紹介。どんな人がどんな用途で使うべきかの指針も提案する。

[一色政彦,デジタルアドバンテージ]

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

「AI・機械学習のツール&ライブラリ」のインデックス

連載目次

 ディープラーニングが行えるツールやライブラリはいくつもあるが、日本国産で、あのSony(ソニー)が提供しているのが、

である。NNCとはどのようなものなのか? 本稿では、その概要と特徴を示す。また、誰にどんな用途でお勧めできるかという筆者なりの考えも示す。

 本稿の目的は、NNCの全体像をより多くの人に知ってもらい、本当に必要な人に利用してもらうことである。NNC自体の使い方は解説しない(公式ドキュメント公式動画チュートリアルが充実しているので、そちらを参照してほしい)。

Neural Network Consoleとは?

 NNCを端的に説明すると、GUIの操作でディープラーニングができるツールである(図1)。

図1 GUIツールであるNeural Network Console(Windowsアプリ版) 図1 GUIツールであるNeural Network Console(Windowsアプリ版)

 一般的なTensorFlowやPyTorchといったディープラーニング用ライブラリでは、Pythonなどのプログラミング言語を用いてコードを書く必要がある。NNCは、WindowsアプリやWebサイトを操作するのと同じように、マウスのクリックやドラッグなどで操作し、テキスト入力欄にテキストや数値を入力/編集/削除して使う。そのため、操作に関しては直感的で、PCに慣れているほとんどの人は何も教えられなくても使えるだろう。

2種類の提供形態

 NNCは、下記2種類の提供形態がある。

  • Windowsアプリ版(無料。前掲の図1)
  • クラウド版(有料だが安価、10時間の無料枠あり。図2)

 まず、Windowsアプリ版を使うメリットは、無料でどれだけ使ってもお金がかからないことだ。よって安心して使える。デメリットは、ダウンロードしたりするのに時間がかかることだ。また、Windows以外では使えないことも欠点である。

 一方、クラウド版はすぐに利用可能で、準備に時間がかからないのがメリットである。デメリットは、有料であることだ(作用スペースが10GBを超す場合にも料金がかかる)。とはいっても、10時間も無料枠があるので、サンプルを試すぐらいであれば無料のまま使用できるはずだ。ちなみに、NNCクラウド版を大規模に活用する法人向けに「法人版」も用意されている。

図2 WebアプリであるNeural Network Console(クラウド版) 図2 WebアプリであるNeural Network Console(クラウド版)

GPUの対応について

 ディープラーニングというと、GPU活用が作業効率を高めるうえで大切である。NNCでは、クラウド版、Windowsアプリ版ともに、GPUに対応している。

図3 GPU対応(Windowsアプリ版&クラウド版) 図3 GPU対応(Windowsアプリ版&クラウド版)

 特にクラウド版では、実行時間で課金されるため、CPUよりもGPUを使った方が安価になる。

 筆者が、上記のページを確認した2020年7月3日時点の例では、CPUが約21円なのに対し、GPUが6円となっており、圧倒的にGPUを使う方がお得である(ただし、クラウド版の無料枠では、GPUを選択できない)。

Neural Network Consoleの特徴

 NNCの特徴として、筆者が感じた長所と短所をまとめておこう。

長所(Pros) 1: 直感的なので操作の学習は不要

 既に述べたようにGUIで直感的に使えるので、特にプログラミングに慣れていない人にとっては、扱いやすいツールとなっている。また、ほとんどの人は、コードを書くよりも、大半の作業をマウス操作で済ませて、必要な箇所のみにキーボードでテキスト入力する方が、楽で効率が良いのではないだろうか。そういった人にとっては、ディープラーニングを実施する効率が高まるというメリットがある。

 その長所が認められたためだと思うが、高校で学ぶ「情報II」の一部の演習にNNCが採用されているようである。図4は、その情報IIの教員研修用教材(文部科学省が作成)の「第3章 情報とデータサイエンス 後半」のPDFをスクリーンキャプチャーして引用したものである。図4から分かるように、高校生はNNCを使ってニューラルネットワークの演習を体験する場面もあるようである。なお、情報IIとは、高校の普通科が履修する「情報の科学」のうち、2022年から実施される新学習指導要領における選択科目となっている教科である(よって、必ずしも全ての高校生がニューラルネットワークやNNCを学ぶというわけではない)。

図4 「高等学校情報科「情報II」教員研修用教材 第3章後半(22ページ目)」を引用 図4 「高等学校情報科「情報II」教員研修用教材 第3章後半(22ページ目)」を引用

長所(Pros) 2: 構造自動検索

 NNCでは、「構造自動検索」というオプション機能が搭載されている。構造自動検索とは、ニューラルネットワーク構造の一部(ニューロンの数や、途中のレイヤー、活性化関数などの、いわゆるハイパーパラメーターの一部)を自動的に変更しながら、Windowsアプリ版は明示的に停止されるまで、クラウド版は指定された時間や探索回数に達するまで、さまざまなネットワーク構造で繰り返し学習を行い、それらの結果を比較できる機能である。構造自動検索については、公式動画が分かりやすい(図5)。ちなみに最近では、Optunaなどのハイパーパラメーター自動最適化フレームワークも存在し、そちらの方が柔軟性もあると思うが、そこまでいかなくても簡易的なチューニングであればNNCで可能である。

図5 最適なネットワーク構造の自動検索(Windowsアプリ版の例)を公式動画からスクリーンキャプチャーして引用 図5 最適なネットワーク構造の自動検索(Windowsアプリ版の例)を公式動画からスクリーンキャプチャーして引用

長所(Pros) 3: ONNX対応

 Neural Network Consoleで学習したモデルは、Neural Network Libraries(以下、NNL)という独自ライブラリ(NNCの姉妹製品)を、運用先のOSプラットフォーム上に導入することで実行できる。NNLでも大きな問題はないのだが、PyTorchやTensorFlowといった他のライブラリ環境で動かしたい場合もあるだろう。

 そういった場合は、「ONNX」(「オニキス」と読む)というオープン互換フォーマットでエクスポートすることで実現できる(図6)。また、他のライブラリで作ったニューラルネットワークもONNX形式でエクスポートすれば、NNCにインポートしたりすることもできる。

図6 ONNX形式のエクスポートが可能(クラウド版の例) 図6 ONNX形式のエクスポートが可能(クラウド版の例)

短所(Cons) 1: ディープラーニングの知識はやはり必要

 前述の「長所(Pros) 1」の裏返しでもあるが、「操作が簡単だから、ディープラーニングの知識ゼロでも利用できる」というわけではない。ディープラーニングの、レイヤーの知識(例えばAffineレイヤー=Dense/Linearレイヤー)や、その重みの初期化方法、正則化、ドロップアウト、活性化関数、損失関数、最適化アルゴリズム、ミニバッチなどといった、ニューラルネットワークの基本的な知識は全て必要になる。それらを理解していないと、例えば前掲の図2を見ても「よく分からない」「何をドラッグ&ドロップして、何を設定すればいいか分からない」となるはずだ。

 「NNCは“ディープラーニングの初心者”でも使えます」という形で宣伝されているが、実際はそうではなく「NNCであればGUIなので、“プログラミングの初心者”でも簡単にディープラーニングできます」というのが正しい伝え方だと感じている。結局はNNCを使う場合でも、初心者はニューラルネットワークとディープラーニングを基礎から学ぶ必要があるからだ。ただし、その課題はNNC提供側も意識しているようで、

という再生リストが非常に充実しているので、実質的に“ディープラーニングの初心者”はここから学び始めることになるだろう。

短所(Cons) 2: 手軽な分、高度なカスタマイズは逆にしづらい

 用意されたレイヤーや活性化関数などであれば、ドラッグ&ドロップで簡単に使える。しかし、独自のものを用意しようとすると大変そうである(チュートリアルを検索しても、適切な資料がヒットしないので)。筆者が簡単に確認した限り、例えば以下のような手法(ネットワークアーキテクチャー)を使うのであれば、比較的手軽に実装できるだろう。これらの手法は、サンプルのモデル実装や言及が見つかった。

  • 線形回帰
  • DNN(ディープニューラルネットワーク)
  • CNN(畳み込みニューラルネットワーク)
  • GAN(敵対的生成ネットワーク)
  • DCGAN(Deep Convolutional GAN)
  • RNN(再帰型ニューラルネットワーク)
  • LSTM(Long short-term memory)
  • GRU(Gated Recurrent Unit)
  • Attention機構を持つRNN
  • オートエンコーダー(AutoEncoder:自己符号化)
  • VAE(Variational AutoEncoder)
  • CAE(Convolutional AutoEncoder)

 より高度なカスタマイズが必要な手法や極めて最新の手法であれば、そもそも実装サンプル自体がPyTorchやTensorFlowになっていることが多いと思うので、使われているライブラリそのものを利用した方が、結果的に効率的ではないかと思う。

 以上、NNCの概要と特徴を筆者なりにまとめた。より具体的には、NNC公式サイトを確認して、実際にサンプルを動かしてみて体験するのが一番である。本稿では最後に、筆者が考える「どのような用途でNNCを使うべきか」のお勧めを紹介しよう。

どのような用途でNNCを使うのがお勧めか?

 NNCの使いどころを考える前に、NNCの成り立ちを確認してみよう。NNCは元々、ソニーで2000年以前から行われてきた「機械学習の研究開発」がベースになっている。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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