2種類の画像認識「秋田犬」「ダックスフント」

Neural Network Consoleで「秋田犬」と「ダックスフント」の画像認識を試してみます。

①google画像認識で、「秋田犬」と「ダックスフント」の画像をダウンロードします。ダウンロードしたファイル名が「ダウンロード」となっている場合は、「images 」などに直します。次に名前はなんでもいいのですが、ここではフォルダ「DogdataOrg」の中のフォルダ「akita」に「秋田犬」の画像108個を、フォルダ「Dachshund」に「ダックスフント」の画像113個を入れました。

②Neural Network Consoleを立ち上げ、左の「DATESET」をクリックします。

③「+Creat Dateset」をクリックします。「Source Dir」に「DogdataOrg」を指定します。「DogdataOrg」には「akita」と「Dachshund」が入っています。空のフォルダ「Dog2_dataset」を作っておき、「Output Dir」に指定します。「Shaping Mode」はどれかを選びます。「Output Color Ch:」は「3 (RBG)」、「Output Width」「Output Height」は適当に128にします。画像総数が221個と少ないのでトレーニング用「Output File 1」は80%、チェック用「Output File 2」は20%にしました。

④「+New Project」をクリックします。

⑤EDITタブ左のComponentsにて、Input、Affine、Sigmoid、BinaryCrossEntropyを順にダブルクリックしNetwork Graphにレイヤーを追加します。

⑥Inputレイヤーをクリックして選択し、Layer PropertyのSize(クリックして入力)に変数x(入力データ)のサイズである3,128,128を入力します。(「3 (RBG)」,「Output Width 128」,「Output Height 128」)

⑦Affineレイヤーをクリックして選択し、Layer PropertyのOutShapeに出力層のノード数(今回の場合変数y(出力データ)のサイズである1)を指定します。

⑧すると、Sigmoid、BinaryCrossEntropyの横の値も勝手に1になります。学習実行ボタン(ショートカット:F5)を押します。プロジェクトが保存されていない場合、保存を促すメッセージが表示されます。ファイル名を入力してプロジェクトを保存すると学習がスタートします。

⑨エラーが3つ出ました。Dataset”Training”、Dataset”Validation”が空だそうです。

⑩「DATASET」をクリックして、その下の「Open dataset」もクリックして「Training」に「Train.csv」をセット。

⑪「Validation」に「test.csv」をセット。

⑫まだ1つエラーがあります。「Validation」のバッチサイズが大きすぎるようです。

⑬test.csvを開いてみます。データが45個しかありません。

⑭「CONFIG」で「Batch Size」を45にします。そして「Structure Search:」を「Enable」にします。Structure SearchをEnableにした状態で学習を実行すると、自動的にネットワーク構造を様々に変化させながら、より精度が高く演算量の少ないネットワーク構造を探す最適化が行われます。

⑮学習実行ボタン(ショートカット:F5)を押します。連続して学習がスタートします。何回か繰り返し実行したら、□ボタンでストップします。学習結果を一つづつ「Evaluation」ボタンをクリックして、評価します。

⑯一回目の結果です。Output Resultをチェックして表示しています。

チェックデータtest.csvの一番初めのデータy:labelは0でダックスフントなのですがy’すなわち判定は2.5473617e-0.5と表示されています。他にもy’がこんな表示のデータがあります。

⑰一回目の結果です。Confusion Matrix:をチェックして表示しています。

表ではylabel=0を0だと判定した数20、1だと判定した数2、ylabel=1を0だと判定した数2、1だと判定した数21で合計45です。チェックデータtest.csvのデータ数が45なので、判定2.5473617e-0.5も、ともかくカウントされています。Accuracyすなわち精度は、0.9111でした。

⑱六回目の結果です。Output Resultをチェックして表示しています。九回連続学習してこれが一番でした。

Inputの次にMaxPooling Shape:2 2が加わっています。横は3.64.64となっています。画像をそれぞれの次元で半分にしているようです。一番初めのデータのy’判定表示が0.018476415になっています。すべての判定が0.0~1.0の間に収まっています。

⑲六回目の結果です。Confusion Matrix:をチェックして表示しています。九回連続学習してこれが一番でした。

Accuracyすなわち精度が、0.9333まであがりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です