Julia言語で実装された深層学習フレームワークMerlin

Recurrent Neural Networksなどの深層学習に基づく手法が近年の自然言語研究を席巻していて、画像認識のような圧倒的な性能差ではないですが、伝統的な構文解析のタスクでもベンチマーク精度を叩き出していたりします:
Recurrent Neural Network Grammars

公開されている深層学習のフレームワークはまさに百花繚乱の状態で、多数のマシンに分散して計算が可能なGoogleTensorFlowや、TensorFlowやTheanoをベースにして直観的にプログラミングができるKeras、日本のPreferred NetworksのChainer、高性能なアンサンブル機械学習ライブラリXGBoostでも有名なdmlc (Distributed (Deep) Machine Learning Community)MXNetなど枚挙にいとまがありません。その中でもMerlinJulia言語で実装された異色のフレームワークです。

Julia言語のウェブページには、Pythonのような書きやすさでありながらCやFortranに迫る実行速度を示す衝撃的なベンチマーク結果が載っています。しかし例えばPythonの場合でも、NumpyやCythonなどを使ってさらに高速化していくことはできます。Juliaの良い点は、あまり速度面を気にしなくてもそこそこ高速なプログラムが書けて、さらに変数に型情報を与えたり配列のメモリ割当を減らすなど言語仕様の枠内のことをすることで比較的簡単に性能改善できる余地があることだと思います。このときマニュアルにあるような点に気をつけることが必要で、FAQにあるように、配列の演算処理で余計なメモリ割当が起きてしまうことがあるので、原始的なループ処理で記述した方が高速になることがあります。

Juliaは2012年に公開されてからまだ日が浅く、言語仕様もまだまだ未成熟で、RやPythonMATLABなどと比べてライブラリが十分ではないなどの欠点はありますが、魅力的な特徴が色々ある言語なので、広まっていってほしいと切に願います。