Theano(テアノ)とは、Python用数値計算ライブラリです。多次元配列を効率的に使用する数式について定義/最適化/評価でき、ディープラーニング計算処理によく利用されます。
Theanoは、ディープラーニングを実装したライブラリではなく、Python用数値計算ライブラリです。「コンピュータ代数システム」と「最適化コンパイラ」の機能を有しています。
数学的表現(多次元配列など)を持つ数式に対して定義/最適化/評価を行います。PythonでTheanoの式を構築するプログラムを記述します。
Pythonにおける標準的数値計算ライブラリ「Numpy」では「計算手続き」を記述するのに対して、「Theano」では「数式そのもの」を記述します。そのため、計算対象となる行列などのプログラム内での処理に手間をかける必要がありません。
Theanoは、モントリオール大学のBengio教授の研究室で開発されています。
この研究室はディープラーニングを研究対象としているため、ディープラーニング分野への応用を強く意識した設計になっています。
Theanoのライセンスは「3条項BSDライセンス」です。
詳細について、こちらを参照ください。
→Theano →Docs →LICENSE
→Theano →Docs →Installing Theano
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Numpy」「Pylearn2」「PyML」「PyBrain」など。
Theanoは、実行時に「動的C++コード生成」と「コンパイル」を行います。
この処理により、Pythonコードよりも遥かに高速なC++コードに匹敵する処理速度を実現します。
最適化コンパイルは、特に大規模で複雑な数学的表現に有用です。
Theanoコンパイラは、さまざまな最適化を適用します。次のような処理を行います。
・GPU使用対応
・定数折り畳み
・類似部分グラフのマージ(冗長な計算を避ける)
・算術簡素化
・効率的な行列/ベクトル関数群操作
・メモリエイリアシング
・要素単位部分式のループ融合
・数値的安定性の改善 など
ベンチマークにおいて「TheanoはNumpyより1.8倍高速」「TheanoはMatlabより1.6倍高速」「Theano(GPU)はNumpy(CPU)より11倍高速」などの結果も出ています。
TheanoはGPU能力を使用することで、CPU上での処理に比べて遥かに高速化できます。少しのコード変更でGPUに対応できます。
GPUの使用のために、CUDA(Compute Unified Device Architecture)を利用します。
Theanoの解析的微分サポート機能で「数式そのものを記述することにより微分計算を解析的に実行できる」という点が大きな特徴です。
ディープラーニング処理では微分を多用するため、「微分の結果を自分で解く必要がない」のは大きなメリットです。また、「勾配法(関数の勾配に関する情報を解の探索に用いるアルゴリズム)」「非線形関数」などに対しても有用です。
煩わしい計算処理から解放されるため、スピーディーに自分が思い描く多層ニューラルネットワークを構築できます。
ディープラーニングでよく使用される関数がサポートされています。
エラーの多くの種類を検出し診断できます。
OSS×Cloud ACCESS RANKING