orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

ディープラーニングを経験してみていろんな気づきをまとめてみる

f:id:orangeitems:20190906232709j:plain

 

ディープラーニングを経験してみて

最近の私はディープラーニングを盛んに挑戦していて、自宅のパソコンなりクラウドの仮想マシンなりをゴリゴリ動かしています。

そのうちドスパラで2080TiのGPUを買いたいなとうずうずしているわけですが、まあこのディープラーニングというのは時間がかかります。取り組んだら必ず成功するというわけではなく、長い時間を費やしたら予想外の結果となり、あああの時間返せーみたいなことを体験できます。

ディープラーニング自体の仕組みは私自身よくわかっていません。その中身は数学をマスターする必要があり、ハードルは低くはないのですが、ただ使うだけならたくさんライブラリが公開されているしサンプルも豊富です。

勉強するより手を動かして見てみたい派なので、そうやって動かしているわけですがそれでもたくさんの気づきがありました。

 

気づき

 

1)データの正確さと種類が大事だということ

データが悪ければいくら学習させても悪い結果しか返らないモデルが出来上がるということです。人間も、教材が理解不能であったり間違っていたりすれば、それに基づいて勉強しても身につくどころか悪いことすら覚えてしまいます。教育にはまず環境が大事ということに似ています。

データが的確でバラエティーに富んでいれば、実はたくさんの件数のデータが必要なわけではなく、短時間で良い学習ができます。これって人と同じですよね。ですから、実は教育とは「勉強すること」も大事ですが、教材と環境がすごく大事だということに気がつかされました。

ディープラーニングも、学習に入る前にデータをきちんと揃えることが非常に大事です。データがぐちゃぐちゃで正確性がないなら、できるモデルもちゃらんぽらんなものになります。たくさんの時間をかけて学習させても、無駄になってしまいます。

 

2)ハードウェアの性能がモノを言うがソフトウェアの改善も大切

人間の場合でも個人差で学習能力は違いますが、ディープラーニングでも同様です。スペックの低い機械と高い機械を比べると、数倍の学習効率の違いがあります。人間の個人差が努力によって埋められるかはまた別の議論ですが、機械の場合は差が歴然です。

ただハードウェアの上で動くソフトウェアのチューニングによって、効率がカバーできる可能性は残されていて、この辺も人間とよくにているなあと感心するところです。

人より取り立てて暗記力があるわけではないけれど、勉強の方法の工夫が優れていて結果を出せる。ディープラーニングの世界でも考え方は同様でした。

 

3)学習にかける時間が不十分だと、間違えが多くなる

ディープラーニングにおけるトレーニング(学習)は、時間がかかるのが定番ですが、どれぐらい学習させれば十分かという定義はありません。結果のサンプルを見て、正答率が高そうだと思ったら終了させモデルが完成となります。

トレーニングのためにはパソコンのリソースを占有する必要があり、早く学習が終わってくれたほうがいいので、ある程度正答率が高いなと思った時点で学習を止めるのですが、早く止めすぎて私はいつも失望しています。

人間も同じですね。先生の立場から言うと「もうこの子はこれで十分!合格!」と思えた方が都合はいいのですが、子供の学習が不十分だと本番のテストでミスをしがちです。

どの程度をもって学習終了とするか。教育の課題が可視化できて面白いなと思っています。

 

4)サンプリングして正答率が高いのと、実用に耐えうるかは違う問題である

トレーニングをやめたいなー、と思ってもなかなか踏ん切りがつかない時、いくつかサンプルとしていくつか投入し正答を返してくれるか確認します。よしこれなら大丈夫と思っても、実際に使ってみるとがっかりな結果であることが多いです。

実用時には継続して正しいことを返し続けないと、連続して確認したときに「チラチラ」してしまいます。チラチラとは何かというと、正答・正答・失敗・正答・失敗・・・をアニメーションのように重ねた時、連続的に正答が続かないので一連の動きが見えにくくなるのです。

人間も、いくら教育して社会に出しても、いきなり即戦力になるわけでもないので、人間ぽいなあと思った次第です。

 

5)不気味の谷

AIっぽいことをディープラーニングでできるのですが、完全に人間ぽいところに行く前の不完全な状態を見ると、「不気味」です。一見人間ぽいけど絶対に人間とは違う。これは不気味です。

不気味の谷を経験できるところまで行くと今のところ成功に近いです。ほとんどはそこさえ近づくのも難しいです。そもそもデータが不十分でモデルが非人間的な結果しか返さないことの方が多いです。

非人間的から人間に向かうまでに、不気味という感情を感じるように人間の認知が出てきるのが面白いなと思いました。不気味と考える機構が人間になければ、もっとAIはうまく人間をだませるんでしょうが。

 

6)将来はもっと優秀なAIが出てくるのがわかる

ディープラーニングを司るハードウェアにしろソフトウェアにしろ、日々進化していて、これに付き合っていると、昨日まで時速100キロまでしか出なかった自動車が、200キロできるようになって、刺激的な状況です。

このままいくと、今私が体験している苦労(例えば学習に24時間以上かかるなど)は、来年には1時間になっているかもしれないしもしかすると1分で完結できるかもしれないという状況です。日々進化の状況を体験できるのが楽しくて、数学の理屈もわからずいろいろと試しています。

今までのシステムが条件分岐と繰り返しの積み重ねだったのからすると、AIが複雑な情報処理を瞬時に行ってくれるようになります。ここで業界に革命が起こるのは必至ですが、まだハードウェアやソフトウェアが追いついていない。進化がひと段落するまで待つのも手ですが、技術的興味と面白さから言えば、今から参加するのは非常に楽しい世界です。

 

参加するなら

以前、入門記事を書きました。

 

www.orangeitems.com

 

www.orangeitems.com

 

www.orangeitems.com

 

上記から入っても構いませんし、とりあえず本屋に行ってみてディープラーニングの本を手にとってもいいかもしれません。

何しろ、こんな日々進化する分野は他にはありません。退屈しのぎにぜひ。