先日2019年9月14日(土)に参加したセミナで学んだことを、復習した・少し理解が進んだ、というお話。以下が前回の投稿。
Google Colabでスクリプトを全部手打ちしてみる
今の時代ではもはや原始的な方法かも…と思いつつ、セミナ中に配布されたコードを自分のGoogle Colabのページにスクラッチ。実際に手を動かしたほうが理解が進む。
とはいえ、とんがった部分もあるので100%は理解してないものの、「あ、この部分はセミナで講師が言ってたこの部分か」、「この部分はこう指定するのか」と復習しながらコーディングできたので楽しかった。
精度の向上にトライ。結果、91%までUP。
演算は「アヤメの品種を分類する」というもので、自分たちでハイパーパラメータをいじって、より精度の高いディープラーニングを行う、というもの。結果、91%ぐらいまで高めることができた。
いじったパラメータは、以下のとおり。
- 中間層のノードを100
- epochを30
- iterationを5
epochを増やせばそれだけ訓練データで学習するという理解なので、精度が高まるかと思いきや、多くしても精度が下がってしまったのが意外だった。
中間層ノードを増やしたことが一番効いているのかも?(試したのは、10→5→15→100)だが、内部でどういう計算をされているのかは理解できておらず…。この部分はぜひ理解して、仮説を立てられるようになる。
ちなみに、ネットワークは4入力>100ノード>3出力という、超シンプルな構成。訓練データ数が少ないので、何となく、ネットワークもシンプルな方が良いのかも、と思ってシンプルにしてみた。
ちなみに中間層を増やしてみたりしたが、精度が高まる場合もあれば、下がる場合もあって、「多けりゃいい」というものでもないということが分かった。ん〜、おもしろい。
座学の丁寧さがありがたい、と再認識。ハードルが下がることは学習の助けになる。
セミナに参加したのと参加してないのでは、学習スピードが異なったと思う。それは、座学を丁寧に進めてくれたおかげだと痛感。
上記のとおり、まだまだ理解できていない部分もあるが、理解スピードはきっと速いし、何が分かって何が分かってないかをはっきりできているだけでも、かなり嬉しい。
定期的に実施されているようなので、興味のある人は、ぜひ。