機械学習実践初級編 画像分類-1(MNIST) HOME > 画像分類(初級)-1(MNIST) > 画像分類(初級)-2(MNIST)

04 機械学習実践初級編

お待たせいたしました!
ではインストールいたしましたNNCを起動して、実際に操作をしてみましょう。 ワクワク!

04.01 画像分類(初級)-1(MNIST)

① 要注意事項
実践初級編初回はPROJECTに最初から登録されている項目1を使用します。
これからNNCを起動となりますが、同時に勝手にダウンロードが開始されます。このため下記のような事象に同意できない場合は次の章からやることをお勧めいたします。

    ・ ネットが常時接続されているか、事前にネットの接続がなされていること。

    ・ NNCは操作者の意図とは無関係且つURLを明示せずに勝手にダウンロードを開始します。
         ウィルスチェックや通信規制されている方は解除が必要となります。
         (ウィルスチェッカーが規制している場合の全解除はお勧めできません)

    ・ ダウンロードデータは約1Gbほど必要とします。
       

ちなみに、ディープラーニングを勉強する際は殆どの場合、これと同じ課題に取り組むことになりますのでNGの場合は出来るだけNGだった個所を解決して一度は実施されることをお勧めします。ちなみにPyhonによる「ゼロから作るDeep Learning ――Pythonで学ぶディープラーニングの理論と実装」での自前作成プログラムでは規制がかかり、NNCでは規制がかかりませんでした。


②    作成済のプロジェクトを開く
NNCを起動してPROJECT画面を出してください(一番左の「DATASET」「PROJECT」の「PROJECT」をクリックします)。
右隣に項目がいろいろ登場しますが、これがプロジェクトです。その中から「01_logistic_regression.sdcproj」をクリックします。



初回だけ「Preparing MNIST dataset...」と書かれたウィンドウが登場し勝手にダウンロードが開始されます。(かなりの時間がかかりますのでしばらくお待ちください)



終了するとEDIT画面に作成済のニューラルネットワークが表示されます。





③ 使用するデータセットの確認
さて! NNCが何をダウンロードし、何をこれからしようとしているかをご説明します。
NNCが最初に学習するのは手書き数字です。最初は「9」の字を初めて覚え、それ以外の数字と区別しようとします。 NNCが接続後、ダウンロード開始した先は、下記のサイトです。

 URL http://yann.lecun.com/exdb/mnist/

GGEは、このサイトの存在にびっくりです!
このサイトはMNIST(Mixed National Institute of Standards and Technology database)といって、我々のようにディープラーニングを勉強する人用に、うろ覚えですが6万件からなる手書きの数字をデータベース化して蓄積し無料で提供しているのです。今回は一枚の画像が28x28ピクセルの白黒画像(2値化データ)を複数DATASETとしてダウンロードしてきます。ちなみにダンロードは初回のみで次回はおこないません。
 

サンプルプロジェクトでは既にDATASET画面にセットされているため、一番上の段「DATASET」をクリックし画面を開いてみてください。すると下記のような画面が出てきます。この画面の意味は、上から三段目中央に「index」「x:image」「y:9」が見えますが「index」は連番を表す変数、「x:image」が画像データ、「y:9」は画像内の数字が「9」の場合は「1」、それ以外は「0」が入っており、そのファイルは2つ上に書かれた「URL」に書かれたCSVファイル内に記載されています。 

\newral_network_console_100\samples\sample_datdaset\mnist\samall_mnist_4or9_training.csv



CSVファイルというのは、Comma Separated Valueの略で直訳通り「カンマで区切られた値」を指します。
このデータはエクセルでも通常のテキストエディタでも読むことができます。エクセルで内容を見ると下記のような内容となります。

x:image y:9
./training/4/2.png 0
./training/9/4.png 1
./training/4/9.png 0
./training/9/19.png 1
./training/4/20.png 0
./training/9/22.png 1
./training/4/26.png 0
./training/9/33.png 1
./training/9/43.png 1
./training/9/45.png 1
./training/9/48.png 1
./training/4/53.png 0
./training/9/54.png 1
./training/9/57.png 1
./training/4/58.png 0
./training/4/60.png 0
./training/4/61.png 0
./training/4/64.png 0

今までは「Training」の場合で、一番左欄「Evalidation」をクリックすると評価用データとなりますが、項目はすべて同じ内容です。


④作成済みネットワーク確認
NNCは面倒なことは既に済ませてあり、下記は二層のネットワーク構造を持ったものということになります。
余り詳細な内容説明はしませんでしたが、項目の日本語訳で前回の説明で何となくイメージは掴めると思いますが、次のような内容です。

<入力層>
    input        :    入力層(内訳は「Layer Property」に表示されています)

<出力層>
    Affine        :  全結合層
    Sigmoid   :    シグモイド活性化関数
    BinaryCrossEntropy    :: 誤差関数設定(2値分類に特化した交差エントロピー)






【参考文献】
リックテレコム 足立悠著
ソニー開発のNeural Network Console入門

オライリー・ジャパン 斎藤 康毅著
ゼロから作るDeep Learning ――Pythonで学ぶディープラーニングの理論と実装

HOME > 画像分類(初級)-1(MNIST) > 画像分類(初級)-2(MNIST)