CNTK 2.2 Python API 入門 (5) – Autoencoder 基本実装

CNTK ( Microsoft Cognitive Toolkit ) 2.2 Python API 入門の第5弾です。
今回の記事で CNTK 2.2 Tutorials の 100 番台 (初級) を概ねカバーしたことになります。

今回はオートエンコーダ (= Autoencoder) を CNTK で実装します。
オートエンコーダは次元削減とノイズ除去 (= denoising) の領域で威力を発揮します。
基本的な概念を単相のオートエンコーダで学習した後、より本格的な深層オートエンコーダを CNTK で実装します。

前回までの記事 (CNTK 2.2 Python API 入門 (1) 基本, (2) 2 クラス分類, (3) MNIST, (4) LSTM) で
CNTK 2.2 について次のような点がお分かり頂けたかと思います :

  • CNTK Python API を利用して Python プログラムで深層学習モデルが構築できます。
  • CNTK はデータとしてテンソルとシークエンスを扱います。
  • 深層学習フレームワークでお馴染みのビルディング・ブロックも多数用意されています。
  • コンピュータビジョンのための畳み込みネットワークや時系列予測のための LSTM モデルも CNTK で簡単に実装できます。
  • ネットワーク定義は Python 関数オブジェクトとして実装され、For ループや lambda 記法も利用できる Python ライクな記法で簡潔に定義可能です。
  • Trainer クラスでカプセル化したトレーニングの実装も分かりやすく簡潔です。
  • CTF フォーマットの利用で CNTK データ・リーダー (= Reader) が簡単に構成できます。

次回からは、CNTK 2.2 Tutorials (中級~) への橋渡しとなるような CNTK 2.2 Python API の記事を作成していきます。
※ 今回までの入門編では、Python と機械学習の基本的な知識を持つ読者を想定しています。
※ 他の深層学習フレームワークの経験があれば問題なく読み通せます。

詳細 : CNTK 2.2 Python API 入門 (5) – Autoencoder 基本実装