Chainer(チェイナー)。日本製の深層学習フレームワークです。ニューラルネットワークをPythonで柔軟に記述し、学習させることができます。

オープンソースのAI・人工知能/Chainerとは

Chainer(チェイナー)。日本製の深層学習フレームワークです。ニューラルネットワークをPythonで柔軟に記述し、学習させることができます。

■関連する比較ページ

「​Chainer」基本情報

■概要

Chainer(チェイナー)とは、日本製の深層学習フレームワークです。ニューラルネットワークをPythonで柔軟に記述し、学習させることができます。

■基本説明

Chainerは、ニューラルネットワークを誤差伝播で学習するライブラリです。「Preffered Networks」が開発しています。

Chainerの特徴として「Flexible(柔軟性)」「Intuitive(直感的)」「Powerful(高機能)」の3つを掲げています。

実行にはCUDAが使われるため、Nvidia製GPUが必要です。

■経緯

2015年6月に公開されました。

■オフィシャルサイト情報

オフィシャルサイト

→​Chainer(Chainer: A flexible framework for neural networks)

ライセンス情報

​Chainerのライセンスは「MIT License」です。

詳細について、こちらを参照ください。
→GitHub →chainer/chainer →LICENSE

ダウンロード

「Ubuntu」「CentOS」「Windows」「OS X」などに対応しています。

→​Chainer →QUICK START

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「TensorFlow」「Caffe」「Theano」など。

「​Chainer」の主な特徴

■さまざまなネットワークアーキテクチャをサポート

​Chainerは、「高度で複雑なディープラーニング」だけではなく、「シンプルなネットワーク」にも対応できるライブラリです。

シンプルなネットワークの場合、他のディープラーニングライブラリではオーバースペックすぎて使いづらい面がありますが、​Chainerは柔軟にカバーできます。

対応できるネットワークには以下のようなものがあります。
・畳み込みニューラルネットワーク
・フィードフォワードニューラルネットワーク
・リカレントニューラルネットワーク
・再帰型ニューラルネットワーク など

■Pythonライブラリ

Chainerは、Pythonのライブラリとして提供されています。Python 2.7以上が必要です。

■シンプルで直観的なPython記法

Chainerはネットワーク構成をPython記法で直観的に記述できます。

制御構造は、すべてPythonで記述できます。Pythonのコードを用いて、入力配列に何の処理が適用されたのかのみを記憶しておき、それを誤差逆伝播の実行に使います。

2つの抽象的基本要素(データ「Variable」と関数「Function」)を定義します。「Variable」と「Function」間の計算/条件分岐としてPythonの制御構文をそのまま使用できます。新たな構文などを覚える必要がないため、プログラマはネットワーク構成を直感的に記述できます。設定ファイル/固定データセットは必要ありません。

「各層をつなぐネットワーク関数」「活性化関数」「誤差関数」などの関数がデフォルトで用意されています。

「CUDA計算」「複数GPU対応」などの処理はわずかなコードで実装できます。Caffeで2000行以上のコードを、​Chainerでは200行未満で実装できた例もあります。

■「Define-by-Run」方式

​Chainerは「ネットワーク構築」と「学習」を同時に行う方式です。処理フェーズとして「Define」と「Run」に分かれていません。

本来なら別に分けることが難しい計算グラフの生成/学習を同時に記述できます。

Forward計算時に、入力から出力に到達するまでの経路を記録することにより、初めて暗黙的に計算グラフが得られます。

■Flexibility(柔軟性)

畳み込み/リカレントなど、さまざまなタイプのニューラルネットワークをシンプルに実装できる柔軟性があります。

本来切り分けることが難しい計算グラフの生成/学習を同時に記述できます。このことにより、幅広い種類のニューラルネットワークに柔軟に対応できます。

■Intuitive(直感的)

Chainerは、データを表す「Variable」と関数を表す「Function」という二つの抽象的な基本要素だけを定義します。それらの間の計算/条件分岐はPython制御構文をそのまま使用できるため、プログラマにとって、ネットワーク構成を動的/直感的に記述できます。複数GPUを使用する場合も直感的な記述が可能です。設定ファイル/固定データセットは必要ありません。

記法が直観的かつシンプルであるため、「単純なネットワーク領域」から「複雑なディープラーニング領域」まで幅広くカバーできます。

同様なフレームワークである「Caffe」において2000行程度のコードを、「​Chainer」では200行未満で表現できたという話もあります。

■Powerful(高性能)

並列コンピューティングアーキテクチャ「CUDA」をサポートし、GPUを利用した高速な計算が可能です。

GPUを利用した高速な計算が可能で、事前にコンパイルを行う「Caffe」や「Theano」ベースのライブラリとほぼ互角の性能が得られるとされています。

多くの手間をかけずに複数GPU動作に対応できます。

■インストールが容易

一般的に、ディープラーニングフレームワークは、多くのツール/ライブラリのインストールが必要であるため、インストールには手間がかかります。しかし、​Chainerは依存ライブラリが少ないため、インストール負荷は少なめです。

公式Dockerイメージが用意されているので、それを利用すれば、即座にインストールできます。

また、「pip install chainer」コマンド実行のみでインストールできます。

Chainer最新TOPICS

【OSS】Preferred Networks、Microsoftとディープラーニング分野での戦略的協業を発表---AzureとChainerの技術協力、ディープラーニング分野の人材育成、マーケティング協力(2017年05月30日 11:03)

Preferred Networks(PFN)は、5月23日、 「Microsoftとディープラーニング分野で戦略的協業をする」と発表した。 【​Chainerとは】 日本製の深層学習フレームワーク https://www.ossnews.jp/oss_info/Chainer 【ポイント】 ・ディープラーニングフレームワーク「Chainer」や「Deep Intelligen...

Chainer最新CLOSEUPコラム

  • 勉強会
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter