10年ぶりのプログラム「引退したプログラマーがPythonでAIプログラミングに挑戦する」-19:おわりに

今回の一連の投稿はこれで終わりです。
最後までおつきあいいただきまして、ありがとうございました。

実際に手を動かしてプログラムをされた方にとっては、
「プログラミング技術そのもののハードルは低い」
ということが実感いただけたのではないか?と思います。

「技術的なハードルが低い」ということは、決してAI理論が「低グレード」ということを指しているのではありません。むしろその逆です。AI理論によって、このような簡単なコーディングにまで落とし込んでくれた、ということです。これがAI理論の凄さだと思います。

「高度な理論を簡単な技術だけで実装したプログラム」これがこの「二人零和有限完全情報ゲーム」のAI理論です。

プログラミング経験がない人には、それでも難しいものと映ると思います。しかし経験者ならば、たとえ10年以上のブランクがある人でも、簡単に組むことができます。ぜひ挑戦してくみてください。

今回はPythonを使いましたが、同じことを他の言語でも実装できます。
Python独自のライブラリーも、画面用のPygameしか使っていません。たとえばJavascriptであれば、HTML&CSSをつかって、市松模様を作ることも可能でしょうし、クリックした場所を認識することもできるでしょう。


ここで用いた理論は、とても古い理論です。
ではすでに、「この理論に代わる最新の理論があるか?」というと、ないと思っています。なぜならば、この理論ですでにほぼ「飽和」していると思うからです。
今後何か発展があったとしても微々たるものです。もう大きな改善はないはずです。

しかもアルファゼロ(GoogleによるAIチェスプログラム)の開発も、最早やっていないということなので、ここが1つのゴールなのでしょう。ただ現場での工夫といいますか、マイナーチェンジやマイナーアップデートはあるのだろうと思っています。


しかしこの理論以上に重要なことは、局面評価です。ここには、Machine LearningやDeep Learningを組み込んでいくのだろうと思っています。
そのLearingで得た結論(学習成果)をDBに保存し、局面評価のときに呼び出して一致する手の中で最大値/最小値のものを利用するのだろうと思っています。
今回はここには触れませんが、いずれこの部分を自分なりに研究してから、投稿することになると思います。

また局面評価として、StockFishを使うこともアリだと思います。
今回は外部サービスは使いたくなかったので触れていませんが、それを呼び出すことも可能です。FENというファイルを作れば連携できるようです。これについても、時間があれば実装してみようと思います。投稿するかどうかは微妙です。StockFishのリンクはこちらになります。
https://stockfishchess.org


元プログラマーとしてどこまでAIができるのか?ということをテーマに始めたのですが、目的は達成できたと思っています。

難しいことを簡単な言葉で説明するためには、話者の高い能力が必要です。今回AI理論に対して感じたことは、まさにこの言葉につきます。

今回はチェスといいますか、「二人零和有限完全情報ゲーム」に関するAIでしたが、他のAIもおそらく同様なのではないかと思っています。

AIはITという土俵に対しては常に地に足がついた理論を提供している、と私は想像します。そして「地に足がついた」とは、コーディングが容易ということです。

たとえば、音声をテキストに落とすPythonプログラムも作れますが、単にライブラリーを呼んでいるだけでは、元プログラマーにとっては知的好奇心を掻き立てるものではありません。しかし、その奥にある理論を調べれば、おそらく今回と同様に、コーディングが容易にできるような理論が存在しているのだろうと推察します。これについても、いずれ試してみたいと思っています。


今回はこれで終わります。

最後まで読んでいただいたみなさん、どうもありがとうございました。

この記事が気に入ったらサポートをしてみませんか?