Home » 社員日記 » 最適解に近づくには
2月
15

近頃AIがブームなので機械学習についてもう少し理解を深めようと思い、機械学習の初歩的なプログラムを個人的に作って色々と試しています。こういったプログラムは自分で作るものよりも、有名なライブラリの方が高性能なのですが、自分でプログラムを組むと勉強になります。プログラムに効果的に学習させる方法を調べていると、学習というものについて改めて考えさせられます。

機械学習の一つに強化学習という分野があります。強化学習では自分の行動によって周囲の状態が変わる様な状況で、試行錯誤しながら行動を最適化していく問題を扱います。プログラムに学習させる場合、取り組む課題の難易度が高すぎて報酬がほとんど得られない状況や、反対に、最適解が既にわかっている状況では学習効率が悪くなります。行動の違いによって正解と不正解が分かれる状況だと学習が進みます。

考えてみれば、我々が学習するときも同じようなことがあります。何か新しいことを学習するために参考書を読んでも、ちゃんと理解できているか自信が持てないことがあります。参考書には正しい方法は説明されていますが、何が間違いなのかに関しては載っていないことがよくあります。そのため参考書を読むだけでは何が間違いなのか良くわからず、理解が浅くなってしまいがちです。実践して失敗や成功を繰り返すことで初めてわかることもあります。

最適解を求めるということは、それ以外の行動が最適解ではないと確認することでもあるため、一度失敗した行動も何度か選択したり、未経験の行動を取ったりする必要があります。失敗からは深い理解が得られるので、失敗をうまく活用すべきだということがよく言われます。しかし、プログラムが学習する様子を観察すると、間違いを「活用する」だけでは不十分で、良い選択をするためには間違いは欠かせないものだという考えに変わってきました。ある科学者は「専門家とは、限られた分野において起こりうるすべての間違いを経験した人のことだ」と言ったそうです。

そうなると、間違うことができる環境を作り、試行錯誤を続ける状況をいかに作るかが重要になるのだと思います。

その上で、強化学習で言われる「探索と利用のトレードオフ」を考え、試行錯誤で最適解を探索することと、これまでに得た知識を利用して確実に報酬を獲得することのバランスをうまくとって行動したいものです。

HM