「NVIDIA Deep Learning Institute 2017」では、NVIDIAのディープラーニング用システムである「DIGITS」を用いたハンズオントレーニング(実習)「DIGITSで始めるディープラーニング画像分類」が行われた。講師はNVIDIAのディープラーニング部に所属する森野慎也シニアCUDAエンジニアである。

ディープラーニングの実習の説明を行うNVIDIAの森野氏

この実習の目的は、ディープラーニングのイントロダクションとしてニューラルネットワークのトレーニング(学習)を行い、トレーニングの結果を理解することである。そのためのハンズオンとしてCaffeとDIGITSを使用して画像分類を行う。

この実習の目的 (本連載第4回から第6回の図は、講師のNVIDIAの森野氏の発表スライドのコピーや発表スライドを筆者が撮影したもの。また、筆者のPCの画面の撮影も含んでいる)

一方、この実習ではディープラーニングの基本的な説明は行わないし、ニューラルネットワークの正確な定式化やCaffeやDIGITSなどの詳しい機能の説明も行わない。当然であるが、この実習をやったからと言って、最先端のディープラーニング企業になれるというような過大な期待を抱いてはいけない。

この実習が意図していないこと

この実習を行うに当たってはディープラーニングの知識は、午前中の村上氏の導入程度の知識があれば十分で、それ以外にはWebブラウザの操作ができれば良いとのことである。

受講には、ディープラーニングのバックグラウンドは不要。Webブラウザが使えればよい

そして、この実習を受けると、ディープラーニングのワークフローが理解でき、CNN(Convolutional Neural Network)のセットアップやトレーニングができるようになる。また、本当のエキスパートになるための最初のステップになるとのことである。

受講により期待される効果。ディープラーニングのワークフローを理解し、CNNのセットアップ、トレーニングができる

この実習で使用するCaffeはカリフォルニア大学バークレイ校BVLC(Berkeley Vision and Learning Center)で開発されたディープラーニング用のフレームワークシステムで、コマンドライン、Python、MATLABから使うことができ、リファレンスモデルやサンプルも入っているというものである。

現在では、数多くのフレームワークが使用可能になっているが、Caffeは老舗で広く利用されているフレームワークである。

Caffeはカリフォルニア大バークレイ校で開発されたディープラーニング用のフレームワークで、リファレンスモデルやサンプルも含まれている

Caffeは次の図に書かれた各種のフォーマットのデータを扱うことができ、各種のプリプロセスツールやデータ変換の機能を備えている。

Caffeはニューラルネットワークの記述だけでなく、データの管理やプリプロセスの機能も持っている

そして、NVIDIAのDIGITSはデータの準備、DNN(Deep Neural Network、ここではCNNと同義)の設定、トレーニングの進行のモニタなどを行うことができ、結果の可視化などを行うことができるNVIDIAのツールである。

NVIDIAのDIGITSはGPUを使うインタラクティブなディープラーニング用のシステムで、データの準備、DNNの設定、トレーニングの進行モニタ、可視化まで行える

この実習ではディープラーニングのワークフローを学ぶことが目的で、そのために手書き文字の認識を体験し、さらに、複数の異なる手法を試して結果を改善するということを行う。

実習のゴールは手書き文字の認識を行い、複数の手法を試して結果を改善するという作業を通じてディープラーニングのワークフローを学ぶことである

今回は、MNISTという手書き文字のデータベースを使って手書き文字認識を行った。このデータベースはニューヨーク大学のYann LeCun教授が、手書きの郵便番号の認識システムを開発する際に作成したものである。

それぞれの文字データは28×28ピクセルのグレースケール画像で、ピクセルの値は0~255、トレーニングデータ画像は6万枚、テスト用データ画像は1万枚である。なお。右側の図は0~9までの手書き数字の画像の一部を示したものである。

MNISTデータセットの諸元と一部の画像の例

そして、この実習で使うのはLeCun教授が開発した次の図のようなニューラルネットワークである。このニューラルネットワークは開発者の名前をとって「LeNet」と呼ばれている。

LeNetは、28×28ピクセルの画像を入力として2~5層で特徴を抽出し、それ以降の全対全層でどの特徴を併せ持つかで0~9までの10個の最終結果を出力している。

LeCun教授が郵便番号読み取りのために開発したニューラルネットワーク。現在ではLeNetと呼ばれている

このネットワークを細かく見ると、1層目の5×5の領域を入力とし、この領域を1ピクセルずつ移動することにより、2層目への出力は24×24となる。そして異なる特徴を抽出するため20個のフィルタが並んでいる。第2層から第3層の接続では2×2の領域の最大値を取るMax poolingによりマップのサイズを12×12に減少させている。

入力に続く層は畳み込み層で、複数の特徴マップを生成する

そして、3層目は12×12のフィルタが20枚並んでいる。4層目は、3層目の5×5の領域を入力とするので、サイズは8×8に減少するが、ここではフィルタを50枚に増やしている。5層目は、4層の2×2の領域のMax poolingを取るのでサイズは4×4となる。5層目も50枚のフィルタが並んでいる。

最後の3層は全対全で接続して、5層目で抽出した特徴の組み合わせで最終出力をつくる。ReLUとSoftmaxは図に書かれた式のようになっており、非線形性を入れる活性化関数である。

特徴マップの出力の組み合わせで最終結果を出す全結合層

次回は3月10日に掲載予定です。