ニューラルネットワークの学習は、簡単に言ってしまうと行列演算であり、ニューロンの定義(活性化関数とその導関数と入力数)やニューロンの接続構成(ネットワーク)が定義されると、演算処理自体は自動実行できる。こうしたことから、あらかじめディープラーニングに必要なプログラムを組み合わせて、外部から定義や一定形式の学習データを与えることで、ニューラルネットワークを動かすことが可能だ。このために作られた一群のソフトウエアは「ディープラーニングフレームワーク」(Deep learning Framework)と呼ばれる。

図1●ディープラーニングフレームワークとは、ニューラルネットワークをモデルとして定義、学習データの形式などを定め、各種のユーティリティ機能などを組みあわせたもの
図1●ディープラーニングフレームワークとは、ニューラルネットワークをモデルとして定義、学習データの形式などを定め、各種のユーティリティ機能などを組みあわせたもの
[画像のクリックで拡大表示]

 ディープラーニングフレームワークでは、ニューラルネットワークの定義を「モデル」などと呼ぶ。「モデル」では、ニューロンの定義やその接続だけでなく、一群のニューロンをまとめた「層」などを定義でき、簡単にニューラルネットワークを定義できる。また多くの場合、モデルと学習済みのニューラルネットワークを組み合わせて配布可能にしたり、動作中の状態や各種パラメーターなどをグラフ化したりするツールなどが組み込まれている。

 学習を自動化する場合、学習データのデータ構造や正解情報の与え方を一定の「学習データ形式」とし、世間に流通しているさまざまな汎用データ形式(画像や音声、テキストなど)を自身の学習データ形式に変換するツールなどを含むこともある。

 また最近は、複数のディープラーニングフレームワークがあり、その中には他のフレームワークが保存、出力できるデータを取り込めるような機能を持つものもある。

 現時点では、複数のディープラーニングフレームワークが登場している(表1)。ほとんどがオープンソースとして提供されており、インターネット経由で入手可能だ。