今日も8時間睡眠
888文字のブログです

機械学習は何を学習しているか

🎃

機械学習について、僕が現時点で理解してる内容をもとに書いてみます。

AIがオセロやチェス、囲碁や将棋の世界で人間に勝ったというニュースを、よく耳にするようになりました。それに伴い、これからいろんな分野で人間がAIに負けるんじゃないか、仕事がAIにとられるんじゃないか、という声も出ています。

コンピュータが将棋などのゲームを行うには、プログラマーは大きく3つのことをしなければいけません。

1つ目は、ゲームのルールをコンピュータに教えることです。これは、条件分岐やループなど、基本的なプログラミングの知識があれば作ることができます。コマやルールの多さによって、実装の難易度は上がります。

2つ目は、手の推測です。自分の行動の選択肢を挙げて、それぞれに対して相手の行動を推測し、またそれぞれに対して再び自分の行動の選択肢を考える。このような手の推測は、手の種類に応じて計算量が発散していきます。効率的に探索をするためのプログラミング技術とコンピュータの性能が、解決に大きく貢献します。

そして、3つ目が、手の評価です。ゲームのルールが分かって、自分と相手の手の選択肢を挙げることができても、自分の手や相手の手が評価できなければ、決断できません。手の評価とは、例えば、オセロの場合、かどをとったほうがいいよねとか、かどのとなりはとらないほうがいいよね、といったものです。実際には、これらを数値化し、勝利する確率が高い手を、逐一採用していくことになります。

機械学習で学習しているものは、3つ目の「評価」です。今までこれは人間がやっていました。何を評価するか、それがどうなっていたら評価できるか、というのを、人間が設定していました。機械学習では、この評価方法を自動で学習します。人間が「法則」や「定石」や「コツ」と呼んでいるものを、コンピュータも計算によって別の角度から学習しているのです。

AIに対して極端な不安を示す人もいますが、冷静に考えてみれば、AIにだって得意不得意があります。人間が妄想していることを、何でも実現できるわけじゃありません。よくわからずに不安がるのは、よくないでしょう。

(888文字)