#はじめに(まえがき)
こんにちは、お久しぶりです。
また以前と同じようなテーマの記事になってしまい大変恐縮です。
やはり思い付きで「コレは」と思い立ったので(懲りずに)記事を書きました。
よかったら最後まで読んでみてください。どうぞ、よろしくお願いします。
今回は以前書いた記事(エージェント指向等)に関連する記事ということで、
マルチエージェントとAIの関連性について勉強のまとめに書いてみました。
#本題(本文)
マルチエージェントシステムとは、簡単に言えば、あるコンピューターシステムの中で、多数のエージェントが競争あるいは協力をすることで、そのシステムの目的を達成するものです。たとえば、この記事では、イラストを作成するアプリケーションを例にとって簡単に説明してみます。
ここで、アプリケーションのユーザーは、人物・動物であったり、あるいは機械・建物などの絵を描きたいと思います。ここで、人物・動物であったり、あるいは機械・建物を自動的あるいは自律的に描くプログラムが用意されているとします。これがエージェントです。エージェントは複数あって、個々のエージェントが様々に対象物を描きます。つまりイラストを作成するアプリケーションに、複数のエージェントがバインドされている(いうなれば、一つのアプリケーションにエージェント達がぶらさがっている)のです。※実際は、同じ対象物を描くにしても、複数の同じ目的を持った(同じ対象物を描くことのできる)エージェントがシステム(この場合イラストを作成するためのアプリケーション)の内部で競争あるいは協力をすることにより、ユーザーの目的を達成するべく作業を補助してくれます。
つまり、ユーザーが描きたいものに合ったエージェントがアプリケーションから呼び出される格好で実行され、ユーザーの目的を達成するべく作業を補助してくれるということです。ここで、イラストを作成するアプリケーションは、ユーザーから明確になにを描きたいかという指示や要求を受けて目的に合ったエージェントを呼び出すこともできれば、ユーザーが思い立って描きはじめたものを自動的に分析することで、ユーザーがなにを描こうとしているのかを推量や推定をしてエージェントを呼び出すこともできることとします。これにより、ユーザーは煩雑な作業の効率を改善できたり、人間が本来持っている創造性をかきたてることなど新たなエクスペリエンスを提供できます。
最後に、マルチエージェントシステムの内部で動作する個々のエージェントは、仕組みとしてはAIで実現されています。AIといっても各種様々なものが世の中にはありますが、私個人が想定しているものは「強化学習」もしくは「深層強化学習」です。これは、エージェントが外部の環境あるいは自身の置かれている状況を認識する仕組みと、エージェント自身の取る行動を評価する仕組みを併せたもののことですが、おおまかにいってこの二つがAIというものを実現してくれます(AIを実現する技術には、他にも様々な多くのものがありますので、誤解のないよう)。
つまり、エージェントは、私の言っている「サブジェクト」から状況の通知を受けて、その上で自身の得る報酬が最大になる行動を常に選択し続けるということによって、ユーザーの目的達成に寄与するということです。
#おわりに(あとがき)
今回もうまく記事としてまとまっていればよいのですが、なにぶん私個人は大変に勉強が不足しており、なおかつ記事の編集能力が乏しいものですから、記事としての高いクオリティは実現できていないとは思いますが「こんな記事もあるんだ」程度に、この記事を読んで、その存在を知っていただけたら幸いです。それではまた。