人工知能/AIライブラリ紹介vol.5 機械学習の分野で活用される「Toolkit」
22 January,2019

人工知能/AIライブラリ紹介vol.5 機械学習の分野で活用される「Toolkit」

 

目次

1.Microsoft Cognitive Toolkit(旧CNTK)とは?
2.Microsoft Cognitive Toolkit(旧CNTK)の歴史は?
3.Microsoft Cognitive Toolkit(旧CNTK)の強み

 

1.Microsoft Cognitive Toolkit(旧CNTK)とは?

Microsoft Cognitive Toolkit(コグニティブツールキット:旧CNTK)とは、オープンソフトウェアライブラリの一つで、ニューラルネットワークの計算および学習を行うための深層学習(ディープラーニング)分野で主に活用されているディープラーニングフレームワークです。
※以下Toolkitと呼ぶ

Toolkitが以下のような用途での利用が可能です。

●音声認識
●自然言語理解
●機械翻訳
●検索適合性評価

 
Toolkitは、有向グラフを利用してニューラルネットワークを一連の演算的ステップとして記述するディープラーニングツールキットです。この有向グラフでは、葉ノードは入力値またはネットワークパラメータを表し、他のノードはそれらの入力に対する行列演算を表現します。
Toolkitを利用することで、フィードフォワードDNN、畳み込みニューラルネットワーク(CNN)※1、リカレントネットワーク(RNN / LSTM)※2などの一般的なモデルタイプを簡単に実現して組み合わせることができます。
複数のGPUおよびサーバー間での自動差別化を持つ確率的勾配降下法(SGD、エラーバックプロパゲーション)学習を実装しています。Toolkitの利点は、いったん計算ネットワークが記述されると、ネットワークパラメータを学習するのに必要なすべての計算が自動的に行われます。重みを計算したり、バックプロパゲーションのために変数間の相互作用をコーディングしたりする必要がありません。
 
Toolkitは、Linux(C ++、Python、およびJava)、Windows(C ++、Python、C#/ .NET、およびJava)の開発言語で利用可能です。

 
※1 畳み込みニューラルネットワーク(CNN)
畳み込みニューラルネットワークはCNN(Convolutional Neural Network)またはConvNetとも呼ばれ、ディープニューラルネットワークの分野の主力となっています。CNNとは、ディープラーニング技術の1つで、通常のNeural Networkに畳み込み(convolution)を追加したものです。CNNは画像を複数のカテゴリに分類するように学習しており、その分類能力は人間を上回ることもあるそうです。

※2リカレントネットワーク(RNN / LSTM)
リカレントネットワーク、乱数による確率的な動作を導入した人工ニューラルネットワークモデルです。
動画の分析や、自然言語処理・音声認識などの言語モデル、さらには強化学習によるロボットの行動制御などに利用されています。このモデルの特徴として、他のネットワークではできない中間層への自己フィードバックができる点が最大のメリットで、応用範囲が広いです。最近では、Long Short-Term Memory(LSTM)と呼ばれるRNNモデルが、シンプルで学習も簡単にできるため、人気があります。

 

2.Microsoft Cognitive Toolkit(旧CNTK)の歴史は?

ToolkitはもともとMicrosoftが自社のために大規模なデータセットを最速でトレーニングするために開発されました。
Microsoftの重要なサービスは、Toolkitで訓練されたモデル上で動作しており、とても優れた結果を出していました。
2015年4月に、MicrosoftはMicrosoft Computational Network ToolkitプロジェクトをMITのオープンソースライセンスで公開しました
 
2016年10月に、大幅なバージョンアップを経て、旧称「CNTK(Microsoft Computational Network Toolkit)」から「Microsoft Cognitive Toolkit」へ改名しました。Microsoft Cognitive Toolkitは音声認識/画像認識/検索適合性評価などのタスク支援を目的とするツールキットになります。
ディープラーニングを容易に利用するためのライブラリであり、GPUやネットワークの利用による並列処理により実行効率を向上させる機能が実装されており、手軽にスケールできる環境が構築できます。

 

3.Microsoft Cognitive Toolkit(旧CNTK)の強み

1.スピードとスケーラビリティ
2.商用グレードの品質
3.柔軟性の高さ
が挙げられます。詳しくは下記でご紹介します。

1.スピードとスケーラビリティ
Toolkitは、他のディープラーニング開発ツールよりも簡単に素早くディープラーニングのトレーニングと評価ができます。学習の正確さを維持しながら、CPUからGPU、複数のマシンまで、幅広い環境で効率的に拡張することができます。

2.商用グレードの品質
Toolkitは、洗練されたアルゴリズムによって構築されているため、大規模なデータセットでも確実に機能する信頼できる製品を構築できます。現在、SkypeやCortana、Bing、Xbox、そしてデータサイエンティストに利用されています。

3.柔軟性の高さ
Toolkitは、カスタマイズ性が高く、簡単に利用できるように構築されています。馴染みの深いC++やPython言語と多数のネットワークモデルを連携することができ、学習のカスタマイズも容易です。

●FFN、CNN、RNN / LSTM、バッチ正規化、シーケンス間の注意など
●強化学習、敵対的生成ネットワーク、教師あり学習、教師なし学習などができる
●Python、C ++、C#、BrainScriptを使ってモデルを評価することができる
●Python向け数学演算ライブラリNumPyとの連携ができる
●使いやすさと柔軟性のために高レベルと低レベルのAPIを提供

などがあります。上記の内容は公式サイトより抜粋しております。https://www.microsoft.com/en-us/cognitive-toolkit/

同様の機能を持つライブラリとして、「TensorFlow」、「Chainer」、「DSSTNE」、「Caffe」などがあります。

※当サイトに掲載されている一部画像、スクリ-ンショット、文章に置いては著作権侵害を目的に利用しておらず、第三十二条で定められる引用の範囲で使用しています。万が一問題があればお問い合わせからご連絡ください。即刻削除いたします。
本ブログは業務の研究開発のためのものとなり、一部、弊社に関連性が無いものも掲載しております。

mieru