CNTK-Microsoft Researchのニューラルネットワークツールキット

2015年は、ニューラルネットワークテクノロジーと機械学習に関連するイベントが非常に豊富でした。 コンピュータビジョンと音声認識の分野の問題を解決するのに適した畳み込みネットワークとリカレントネットワークは、特に顕著な進歩を示しています。 多くの大企業が開発をGithubに公開し、GoogleはTensorFlow 、Baidu- warp-ctcをリリースしました 。 また、Microsoft Researchの科学者グループは、 Computational Network Toolkitを開始することでこのイニシアチブに参加することを決定しました。ComputationalNetwork Toolkitは、パターン認識、音声理解、テキスト分析などに使用できるさまざまなタイプのネットワークを設計およびトレーニングするためのツールセットです。 興味深いことに、 このネットワークは ImageNet LSVR 2015 コンテストで優勝し、 既存の競合他社の中で最速です。







CNTKの非常に簡単な紹介





Computational Network Toolkitは、さまざまなニューラルネットワークを構築するための基本的なアプローチを体系化し、一般化し、科学者やエンジニアに多数の機能セットを装備し、多くのルーチン操作を簡素化する試みです。 CNTKを使用すると、ディープラーニングネットワーク( DNN )、畳み込みネットワーク( CNN )、リカレントネットワークおよびメモリネットワーク( RNNLSTM )を作成できます。 CNTKの基礎は、Theanoなど、他の多くの決定で採用された一連の計算ステップを通じてニューラルネットワークを簡潔に記述する方法です。 1つの隠れ層を持つ最も単純なネットワークは、次のように表すことができます。







ステップ2では、Xの値の入力ベクトル(言い換えれば、数値のセット)に重みベクトルW1を乗算し、変位ベクトルB1に加算し、結果の重み値をシグマ励起関数に転送します。 次に、計算されたベクトルS1に、隠れ層の重みW2が乗算され、オフセットB2が追加され、ネットワーク応答であるsoftmax関数が計算されます。

同じアルゴリズムは、次のようにグラフィック形式で表すことができます(計算は下から順に行われます)。







このタイプのネットワークは、CNTK構成構文を使用して説明できます。シンプルな場合は次のとおりです。







ネットワークトレーニング、つまり係数W [N]の選択は、確率的勾配降下( SGD )を使用して実行され、構成ファイルに記述され、学習速度、エポック数、およびモーメントのパラメーターを設定します。







CNTKは、インフラストラクチャの問題を解決するのに役立ちます。特に、さまざまなソースからデータを読み取るためのサブシステムが既にあります。 テキストおよびバイナリファイル、画像、音声を使用できます。

CNTKの機能の詳細については、「 計算ネットワークの概要」および「計算ネットワークツールキット」を参照してください。



CNTKの例





[Examples]フォルダーの CNTK機能をすばやく学習するために、ニューラルネットワークに適用可能な問題を解決するための最も一般的なアプローチを示すいくつかの例があります。



簡単な分類の例




Matlabスクリプトによって生成された人工データに基づいて、バイナリ分類問題を解決するネットワークが作成されます-ポイントは青または赤のクラスターに属しますか?



実際、ニューラルネットワークは、このデータが生成された関数label = 0.25 * sin (2 * pi * 0.5 * x )> yを復元しようとしています。 この例は、ニューラルネットワークの完全な強度とパワーを示しています。普遍近似定理のおかげで、 任意の関数選択できることが数学的に証明されているためです。



画像解析




畳み込みネットワークを使用して画像を分類する方法の技術は、通常、 MNISTデータセットを使用して示されます。





この例から画像データが畳み込みネットワーク(CNN)に到達する方法を理解できます。 私たちは秘密を作らず、すべてが本当にシンプルです。 画像のすべてのピクセル値(この例では28x28の正方形)はネットワーク入力に送られ、ネットワーク応答はフィールド化された画像が特定のクラスに属する確率です。 したがって、ネットワークには784個の入力と10個の出力があります。

さらに、CNTKには、 CIFAR-10およびImageNet (AlexNetおよびVGG形式)である、ディープコンボリューションニューラルネットワークに従事している科学者の間で最も人気のある古典的な画像セットの使用例が含まれています。

CNTKを作成するためにMSR科学者が行った努力は、非常に高速な分類器の作成に希望を与えることができます。 いくつかのテスト(著者が理解している限り、CNNの世界サイズ224x224ピクセルの「クラシック」で)によれば、認識速度は毎秒400フレームを超えることがあり、これは非常に高い結果です。 さらに興味深いのは、最新のCNNネットワークがすでにパターン認識の人間の能力をすでに上回っているという事実です。 これについての詳細は、出版物 『 Delving Deep into Rectifiers:Surpassing Human Level Performance on ImageNet Classification』から学ぶことができます。





音声および自然言語の分析




自然言語での音声とテキストの認識は、難しい分野の1つです。 再発ネットワークのアイデアの出現により、この科学的障壁が克服されることが期待されていました。 リカレントネットワーク(RNN)を使用すると以前の状態を記憶できるため、ネットワーク入力に供給されるデータ量が削減されます。 ニューラルネットワークの「ループ」および「メモリの所有」の必要性は、音声またはテキストデータを完全にネットワーク入力に供給することができず、それらが時間的に離れた部分で発生するためです。







このコンテキストでは、LSTMネットワークは密接です。特定の値に基づいて興奮状態に移行し、 非アクティブ化ベクトルが入力に到達するまで変化しない特別なタイプのニューロンが開発されています。 LSTMネットワークは、シーケンスを、ある言語が別の言語に翻訳されるときに発生するシーケンスに変換する問題の解決にも役立ちます。 RNNおよびLSTMネットワークの機能は非常に高いため、場合によっては、短いフレーズや手書き文字を認識する点ですでに優れています。

CNTKには、 AN4データセットカルディプロジェクトTIMIT 、および書記素から音素への変換のためのシーケンスからシーケンスへのニューラルネットモデルの科学的研究に基づく翻訳プロジェクトに基づく音声分析のいくつかの例が含まれています。 テキスト分析は、コメント、ニュース、および話し言葉(話し言葉の理解、SLU)を分析するためのいくつかのプロジェクトによって提示されます。あなたは、 SHOKEN LANGUAGE UNDERSTANDING USING LONG SHORT-TERM MEMORY NEURAL NETWORKSの科学的研究の最新技術の詳細に慣れることができます。



あなたがビジネスでCNTKを試したいなら





CNTKカーネルはC ++で構築されていますが、開発者は将来PythonバインディングとC#インターフェイスを作成することを約束します。

WindowsまたはLinux用のCNTKを自分でビルドできます。最初のケースでは、 Visual Studio 2013と、 CUDACUBCuDNNBoostACML (またはMKL )およびMS-MPIのライブラリセットが必要になります。 オプションで、OpenKVサポートを使用してCNTKをコンパイルできます。 詳細はCNTK Wikiにあります。

https://github.com/Microsoft/CNTK/wiki/CNTK-Binary-Download-and-Configurationで公開されているGPUサポートの有無にかかわらず、既製のバイナリアセンブリを使用できます。

NIPS 2015でのMSR科学者によるCNTKの簡単な紹介は、 http: //research.microsoft.com/pubs/226641/CNTK-Tutorial-NIPS2015.pdfで公開されました



All Articles