プログラミング上達したい人が書くブログ

プログラミング上達したい人が書くブログ

主に、アニメやPython、C++、競技プログラミング(初心者)について書きたいです。また、1週間に一つの記事を心掛けています。学生です。備忘録と書かれたものは他人に見せることを考えて書いてないため見にくいです。

Neural Network Consoleを使ってみた Part3

はじめに

 前回のパートで書いた通り、今回も正確性を挙げるためにいろいろ試していきたいと思います。

 後、これから2週間忙しく投稿できなくなるため、二つ投稿しておきます。

 

やってみたこと その3

 落ち着いて考えた結果、なぜ前回Confusion Matrixが表示されなかったのかわかった気がします。それは、なぜか結果の総和が1になっていなかったからです。レイヤーリファレンスリファレンスにはSoftmax+CategoricalCrossEntropyと等価であり、Softmaxは総和が1になるよう出力値を調整していると書いてあるはずなのに、なぜこうなるのかよくわからないです。そこで、今回はその反省点を踏まえて変更しました。その設計図が以下のようになります。

f:id:sachishimei:20170906205034p:plain

そうです。これ、実質Softmaxの2枚掛けになります。そして、結果が以下のようになります。

f:id:sachishimei:20170906205242p:plain

出ました。やっぱり理由はその部分のようです。ただ、結果は誤認識が増えてしまい正確性が下がりました。もうこれどうすればいいんでしょうか。

 

やってみたこと その4

  Affineという基本レイヤ―を使うのではなく、畳み込み積分を用いたConvolusionという基本レイヤ―を使ってみました。設計図は以下のようになります。

f:id:sachishimei:20170908104749p:plain

 これで、トレーニングしようとしたのですができませんでした。エラーの内容は「ValueError: could not broadcast input array from shape (64,1) into shape (64,1,24,24)」となっていて、たぶんパラメータの設定が間違っているんだろうという予測はつくのですが、畳み込み積分そのものがよくわからないためわからないのが現状です。ちなみにパラメータは以下のようになります。

f:id:sachishimei:20170908105153p:plain

 

終わりに

 ちょっとできない理由が分からないため、畳み込み積分についてちょって勉強してみます。そして、エラーのとり方が分かったらまた記事を出したいと思います。つまり、それまでは、この画像認識についてはお休みになると思います。

 また、理由が分かる方は連絡くださると助かります。