LoginSignup
91
86

More than 5 years have passed since last update.

MicrosoftのDeep Learningライブラリ「CNTK」チュートリアル

Last updated at Posted at 2016-12-10

CNTKってご存知でしょうか?CNTKは、Microsoftが主導して開発しているオープンソースのDeep Learningライブラリです。正直なところ僕も最近使い始めたのですが、このCNTK、良い意味でMicrosoftらしくなく、なかなかイケているんじゃないかと思っています。今回は、まずCNTKの特徴をざっと紹介し、後半でコード例をJupyter Notebookを使って見ていきます

チュートリアルはこちら

cntk.png

"Microsoft"にこだわらない、オープンな開発方針

Open Source

GitHub上で開発が進んでいます。社内版はありません。

公式wiki

Python と C++ API

.Net APIは(まだ)ありません。Brainscriptもサポートされています。

LinuxとWindowsで利用可能

"Both Linux and Windows are first citizens of CNTK" と開発チームは言っていました。多少の時間差は出るかもしれませんが、両プラットフォームで同じ機能がサポートされるようです。Linux向けにはDockerも用意されているので、もしかしたらLinuxの方が利用しやすいかもしれません。

ms_loves_linux.png

高速&スケール

複数のGPUでスケールする

Therano、 TensorFlow、 Torch 7、 Caffeと性能を比較した図です。Fully connectedな4層ニューラルネットワークを、一秒あたり何フレーム処理できるかが比較したものです(minibatchサイズは8192)。青とオレンジの設定は、それぞれGPU(Nvidia K40)が1つまたは4つのLinuxマシン、緑は2台のLinuxマシン(2 x 4 GPU)のクラスタです。GPUが1つの場合は各ライブラリでほとんど変わらない速度 (TensorFlowよりはCNTKが速い?)ですが、複数のGPUを効率的に活用できているのはCNTKだけです。4 GPUの時に、CNTKはほぼ4倍にスケールしていますが、Torch 7とCaffeは2倍程度に収まっています。TensorFlowはほとんど変わりません。

speed-comparison.PNG
Microsoft Research ブログ

2016年10月: CNTKによって、音声認識精度が人間レベルに到達

2016年10月の実験で、Microsoftのチームが開発した音声認識エンジンがエラー率 (word error rate) 5.9%を記録しました。これは同じ音声ファイルをプロの文字起こしサービスに依頼した場合と同等でした。しかも、今回の文字起こしサービスでは、二段階処理をしており、一人目が1から文字起こしをし、二人目が修正を加えています。

手法の詳しい部分は論文が出ていますが、非常にレイヤー数が多いニューラルネットワークを使っています。ここでもCNTKがパワーを発揮していて、CNTKの高速な処理が不可欠だったと論文でも述べられています。

speech-graphic.jpg
- Historic Achievement: Microsoft researchers reach human parity in conversational speech recognition

- Microsoft researchers achieve speech recognition milestone

PythonでCNTKを使ってみる

CNTK入門 (Python)

同僚が良いチュートリアルを作っていたので、翻訳させてもらいました。Jupyter Notebookになっているので、環境整備することなくその場でコードを編集・実行できます。順次、追加していく予定です。

Jupyter Notebook (Azure Notebook)

Microsoftアカウントでログインすると、ノートをクローンして、編集・実行できるようになります。
azure_notebook.png

その場でコードを変更して実行できるのはとても便利なので、是非チュートリアル上のコードを変更して遊んでみてください。

jupyter_run_cell.png

参考

91
86
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
91
86