どうも、カタミチです。
さて、今日も「最短コースでわかる ディープラーニングの数学」のひとり読書会、やっていきたいと思います。
ラスボスのディープラーニングモデルも、いよいよ最終第4形態です。さぁ…いくぜ!
10-10. プログラム実装(その4)
さて、これまでで精度は既に95%近くまで来ていますが、この精度を上げる最後の一手は何かというと…
隠れ層の2層化です!
…まぁ、精度を上げるというより新しいモデルを作ってるという感じですが、層を増やすことで果たして精度が上がるのか?試してみたいと思います。
増やす層のノードの数は、1つ目の隠れ層と同じ128。活性化関数も1つ目と同じReLU関数です。10-6節で触れましたが、式の構成自体は1つ目と同じなのでコードを追加する感じで実装します。で、実行の繰り返し回数であるEpochを100→200に増やすようですね。
…ん?「Epochを増やした効果が大きかったら嫌だな」と思ったので、前回の隠れ層1層の時のコードのEpochを200にして実行してみたところ…精度は「95.67%」でした。やはり、Epoch100のときより若干上がりましたね。ただ、実行中の様子を眺めてると、途中から精度が上がったり下がったりしてたので、ちょっとやりすぎ感があるかもしれません。
さて、隠れ層2層のモデル実行してみましょう。エンターキーを打つ指を高く上げて、
ユナイテッド・ステイツ・オブ…
スマーーーーーッシュ!!!
…ゴゴ…
…ゴゴゴゴ…
…ゴゴゴゴゴゴ…
…
どかーん!
さすがに実行時間は長かったですね。6〜7分くらいかかりました。まぁ、隠れ層1層のときのやつも、Epoch200にしたら5分くらいはかかったので、ちょっと伸びたかなーくらいですかね。
さて、まずは損失関数のグラフです。
どん!
おー、だいぶいい、だいぶいいですね!(フィーリング)
さて、気になる精度を見てみましょう…
…
…
どどん!
かなり1.0に近い!
実際の最終数値は…
97.11%!!
ついにやりました。ラスボス…撃破だ〜!
ということで
いやー、とうとう実践編がおわりました〜。やりきったなー(感無量)。
しかしここまでは、あくまでもベーシックなディープラーニングモデルを使った話でしかないので、精度アップの手はまだまだあるんでしょうねー。俺たちの戦いはこれからだ!
さて、残るは「発展編」ですね。数学的な話はあまり出てこない章のようですが、これから歩いていく先を見に行きますかね〜。
ではまた。