『DeepLearning BOX』ではじめるディープラーニング①Windows 10で「TensorFlow」と「CNTK」を使ってみる

PR

多くの対応フレームワーク

ディープラーニングをはじめるには、まず基盤となるフレームワークの選択から始まる。
「DeepLearning BOX」は、主要なフレームワークに対応しているため、さまざまな選択肢から好みのフレームワークを利用することができる。
また、多くのディープラーニングフレームワークの推奨環境に合わせた機器構成となっているため、ライブラリとの相性も非常にいい。
初学者にとっては、フレームワークを利用する際のトラブルも少なくなる上、ライブラリの性能を充分に発揮することができる。
このように、入り口のハードルが大きく下ることは、大きなアドバンテージと言えるだろう。

DeepLearning BOX 対応フレームワーク

  • Caffe
  • Chainer
  • TensorFlow
  • Cognitive Toolkit(CNTK)
  • Torch
  • Theano
  • BIDMach
  • Cxxnet
  •  

    ここで紹介した以外にも、多くのライブラリが利用できる。

    MNISTを使ったディープラーニング

    ここからはフレームワークを使って、実際にディープラーニングを体験してみることにする。

    今回は、多くのフレームワークのチュートリアルで使われている「MNIST」を使った文字認識を行なう。

    「MNIST」は、手書きの数字画像に正解ラベルが与えられているデータセットで、以下のような60,000枚の手書き数字画像と10,000枚のテスト画像で構成されている。

    『DeepLearning BOX』ではじめるディープラーニング①Windows 10で「TensorFlow」と「CNTK」を使ってみる
    MNIST

    各文字の画像は28×28ピクセルで、データサイズもそれほど大きなものではないので、手軽に入手できる。そのため、ディープラーニングのチュートリアルなどでは頻繁に利用されるデータセットだ。

    機械学習における文字認識とは

    今回、「MNIST」のデータセットを使用して文字認識させるディープラーニングを行なうが、機械学習では文字認識どのように進められるか、簡単に説明しておこう。

    機械学習には、気温や株価など時系列に変化するようなデータなどから未来を予測する「回帰」やスパムメール判定や画像認識などの「分類」、画像認識で使用されるようなデータにラベルがついてはいないが「この地域にいる生物はこのような傾向がある」といったデータから傾向や特徴を分類する「クラスタリング」などがある。前者の「回帰」「分類」のように「気温」「この画像は何である」などのラベルが付与されたデータから推論するような学習を「教師あり学習」とよび、「クラスタリング」のようにデータにラベルがついていない学習を「教師なし学習」と呼ぶ。ここで行なうのは「教師あり学習」となる。

    「MNIST」の画像は、それぞれ「この文字は1」「この文字は2」といった「正解ラベル」が与えられているデータであり、これらの情報を「ニューラルネットワークモデル」と呼ばれるアルゴリズム・計算式の階層に入力し、計算式に含まれるの重み付けなどのパラメータによって文字を識別する精度を上げていく。

    つまり、対象が複雑であればあるほど、この計算式やパラメータは複雑なものとなり、これらの精度を上げるためには、何層もの階層をもつニューラルネットワークによって、多数のデータを使ってパラメータ調整を繰り返す必要がある。
    そのため、高度な演算を並列で可能な「DeepLearning BOX」は、手元で手軽に深層学習を試せる環境として、ありがたい存在と言える。