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

05 機械学習実践中級編

始める前にGGEは何を目指しているのかを少々書いておこうと思います。そもそも「NNCは最終的に何ができるか」が分かっていないので、どのように利用できるかも釈然としませんが、究極的の目標は、このサイトを立ち上げた際にお話ししました「究極のAIイワシ」を作成するためで、途中の段階として「AIとはなにか」をNNCを使ってみて探ろうとしているわけです。

前回今までのようにプログラマーがプログラムを作成し動作させるのでなく、人間の神経構造と同じようなニューラルネットワークを用いてパソコンが画像データからAKB48の柏木由紀を学習していく様を目の当たりにしました。ただ今の段階はNNCのサンプルプログラムや他のサイトさんが作成された例題の結果でしかなかったのですが、今回参考文献による段階としては画像分類をプロジェクトを新規作成し分類できるところまでを行います。

専門的に実施したり詳細なオプション等をお知りになりたい方は下記の参考文献を参照してください。
では、早速作成に入りましょう。


05.01 画像分類(中級)-1(MNIST)

① 新規プロジェクトを作成する
「PROJECT」→「New Project」をクリックします。






② データセットの選択
前回の2者択一の「2値分類」でしたが、今回は手書き数字0~9の「多値分類」を実施します。
まずは「DATASET」をクリックしDATASET画面を開き「Training」をクリックします。




DATASET」タブ下の「□↗」(Open dataset)をクリックすると登録されているデータセットの一覧が出てきます。その中から、 「mnist_training.csv」を選択します。すると下記のように中に登録された内容とともに画像が出てきます。次に「Trining」下の「Validation」をクリックして、同じように「」をクリックして一覧から「mnist_test.csv」を選択してください。





csvファイルの内容は下記となりますが、下記のように「X:image」はイメージが入っているパス付画像ファイル名、「y:label」は画像に表示されている数字の「正解」が入っています。MNISTからダウンロードした際にイメージファイル内にデータとして正解値が書かれているのと思っていましたが、どうやらフォルダー名ではじめから分類されているようですね。

しかし、上の「DATASET」のNo.1画像なにやら見たことがあるぞ!


以前Pythonで同じようなものを作成した際にMNISTサイトからデータを読んできた際に一番最初に出てくる画像で、何度も何度も失敗しながら見たので目に焼き付いております。さらに左の方「Training」下を見てください。

多分「Num Data」は登録されている個数を示していると思われますが、60000個と出ています。
ちなみに「Validation」は10000個となり、前回とはけた違いに多くなっています。




③ ネットワークの作成(コンポーネント配置)



今回リックテレコム 足立悠著
ソニー開発のNeural Network Console入門

による中級実習編は、最初CNNではないので、階層は、「入力層」「中間層」「出力層」の3つが使用されます。

基本的な構成は
入力層:画像データと同じ28x28=784ノード

中間層128ノード
 活性化関数は「ReLU関数」(HPでは取り上げなかった)

出力層:結果と同じ 10ノード
 誤差関数「交差エントロピー」

EDIT画面に「Main」にネットワークを作成します。
どうやってやるかというと、まず!

Components」の中にあるIO中の「Input」(入力層)をドラッグするかダブルクリックするかして下記のように配置します。
自分でやってみるとわかりますが、最初はドラッグしようとしてもアイコンが全く動かなくて、二回ドラッグしたら、急に二個現れたりしました(配置しても削除可能でした)  まあ!実際にやってみるのが一番です。

 「IO」 → 「Input」(入力層)




次に、同じような要領で中間層にいきます。

 「Basic」       → 「Affine」(全結合層)
 「Activation」→ 「ReLU」(ReLU関数)
 「Other」       → 「Dropout」(ドロップアウト)




今度は出力層を同じ要領で作成します。

 「Basic」       → 「Affine」(全結合層)
 「Activation」→ 「Softmax」(ソフトマックス関数)
 「Loss」        →  「CategoricalCrossEntropy」(交差エントロピー)




次に注意”!”マークがついている個所とその上の項目の間を「よぉーく」見ると半分の”●”がちょっとだけ頭を出しています。そのちょっとだけ出ている部分を摘まんで下の”●”まで持ってくると、下記のようにすべての項目が線でつながります。




次に中間層の3つ、出力層の3つがばらばらですので、”R”とか”S”の部分を摘まんで、先ほどつなぎ合わせた”●-●”になっている”●”を重ね合わせるように移動してみてください。すると線が消えて”●”となり整えることができます。





ここまで出来ましたら、本日はここまで!!





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

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

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