1. odds0128

    No comment

    odds0128
Changes in body
Source | HTML | Preview
@@ -1,90 +1,90 @@
##はじめに
マルチエージェントシステム( MAS: Multi-Agent System ) とは
「多数の」「知能を持った主体の」「系」 です.
それじゃわからんて? そらそうだ.
本記事は,私の研究について説明してもわかってもらえないことが多く,理解してもらえるように試行錯誤した集大成です.
何となくわかった気になってもらえれば幸いです.
※ここでは何となくわかった気になる,を目的としています.「エージェントとは何か」みたいなお堅い定義の説明などは他の記事に譲りますので悪しからず.
## 応用先の具体例
まずはどこに応用できるかを知っていただいて,何となくイメージを持ってもらえればいいなと思います.
- エレベーター <br>
皆さんエレベーターに長く待たされてイライラした経験ありませんか? <br>
そしてそのエレベーターが激しく込んでいて見送る羽目になったことは? <br>
MASはこれを解決します.一台一台のエレベータに知能を載せて最適なルーティングをしてくれます.
<br><br>
- お掃除ロボット <br>
広いお部屋にたくさん設置して勝手に最適な巡回ルートを学んでくれたら便利じゃないですか?<br>
マルチエージェントシステムでは,お掃除ロボットに学習をさせて勝手に分業を学んでもらいます.<br>
勝手に充電もしてくれます.唯一困るのは仕事のなくなった掃除の業者さんです.
<br><br>
- 自動車 ... 自動運転,話題になっていますね.自動車が知能を持てばあら不思議.最短ルートを導いてくれます.
お掃除ロボットはすでに人工知能を積んであるし勝手に充電するじゃないか,とか,エレベーターくらいなら集中制御でいいじゃないか,とかあると思いますが,重要なのは「勝手に」「協調関係」を学んでくれるところです.
例えば,建物1棟のエレベーターならともかく大学内全ての建物の制御だったらどうでしょう.
集中制御だと大変なことでもエレベータ一台一台が知能を持っていれば関係ありません.
また,故障した場合や新たに建物を増やした場合でも中身を改修する必要はありません.
エレベーター1台が動くアルゴリズムを書き換えるのにおよそ何万円必要か知っていますか?
私も詳しくは知らないのですが[この記事](https://diamond.jp/articles/-/197985?page=3)によると数百万単位になることも珍しくなさそうです.
それが必要ないのですからえらいもんです.
そして最後に大事なのは,上記の例はあくまでも例に過ぎないということです.
例えばエレベーターのアルゴリズムは昔から盛んに研究されてきましたが,これはもともとハードディスク内のヘッドの動きを制御するスケジューリングアルゴリズムのためです.
このように,適応できそうなところならどこでもいいのです.最近ならIoTやエッジコンピューティングがホットですね.
私もたまに何の研究をしているのかわからなくなる時がありますが,自分の研究がKubernetesなどのオーケストレーションシステムの負荷分散アルゴリズムに使えるのでは?ということに気づいてワクワクしております.
では,具体例でイメージを掴んだところでちょこっとお堅い話をしていきたいと思います.
(掴めてない? ごめんなさいとしか言いようがないです😞精進します.)
## 背景(何を解決したいか)
この分野は下記を解決するために発展してきました.
-- 人間の社会や集団行動はどう成り立っているんだろう?
-- 互いに協力し柔軟に変化に対応するシステムはどのように実現できるのだろう
+- 人間社会はどのように成り立っているのか?
+- 協力や変化・環境への適応と言うものはどのように生まれるのか
人工知能と言って一般的に連想されるのは例えば「アルファ碁」や上記でも触れた「お掃除ロボット」ですね.
-しかしこれらは"1人で超強い"を突き詰めて作られた人工知能です.複数体での協調は考えておりません.
+しかしこれらは"1人で超強い"を突き詰めて作られた人工知能です.複数体での協調は考えておりません.また,変化に弱いです.
そこで,「知能がたくさん集まったときに何が起こるんだろう?」「たくさん知能がせめぎ合う中で最適な戦略はなんだろう?」を解決するのがマルチエージェントシステムの生まれた背景です.
-マルチエージェントシステムでは,"複数の知能"が織りなす協調がどうできているか,どうすれば"全体として"最も効率よく利益が得られるか,を突き詰め現実のフィードバックを得てそれを現実に還元することを目的とします.
+マルチエージェントシステムでは,"複数の知能"が織りなす協調がどうできているか,どうすれば"全体として"最も効率よく利益が得られるか,を突き詰め現実からのフィードバックを得てそれを現実に還元することを目的とします.
ここは自動運転がわかりやすいですね. みなさん自動運転のどこがマルチなんだと思われるでしょう.
自分の最短経路を学習して交通ルールとかを学習するだけじゃないかと.でもよく考えてみてください.
みんながみんな最短経路を行ったらどうなりますか? 「お父さんが帰ってくる.駅に迎えに行かなきゃ.」
仕事が終わる時間は必然的に偏ります.こうして同じところに同時にたくさんの自動車が向かったら?
渋滞になりますよね.その場合むしろ遠回りするのが時間的には最短だったりします.
急がば回れとはよく言ったものです. このように,自動運転はもはや一台で完結する問題ではないのです.
「たくさんの」自動運転技術特化の人工知能の相互関係に注目しなければ解決できないわけですね.
## 何をしているか
要は現実のある課題をプログラム上で模倣できる程度にモデル化し,シミュレーションし,解決するにはどうすればいいか考える,あるいは解決できるような新たなモデルを提案する,ということです.
例えば,充電器が1個しかないけど6室ある部屋を4台のお掃除ロボットで掃除したいとしましょう.このとき従来のシステムであれば,掃除する領域が被って効率がよくなかったり,他のお掃除ロボットの充電容量なんか知ったこっちゃありませんから充電器を使いたいときに使えず途中で力尽きたりすることが考えられます. これを解決するにはどんな戦略で掃除し充電に行くのがいいかを学習させるのがマルチエージェントです. 実際の先輩の研究を参考にすると,MASを用いればお掃除ロボットたちが担当する領域が勝手に綺麗に分かれ,充電に行くタイミングも見事にばらけるように学習するようになります.
極端な話,世間では消費増税で揉めに揉めていますが,マルチエージェントシステムの考え方を使って日本国民と小売店舗などをモデル化しシミュレーションすればあら不思議.10%が適切かどうかはもちろん,本当に最適な税率までわかっちゃいます.
本当に極端な例ですが,何とも夢がありますね.
## もう一個具体例
先ほどは応用先の具体例でしたが, もう一つ自然界のマルチエージェントシステムを紹介します.
知っている人は知っている,「働きアリの原則」についてです.
働きアリの原則とは, 蟻の群れを10としたときに2はよく働き6はそこそこ働くが残りの2はサボっているというもので,どんな組織にもサボる奴はいる,みたいな教訓としてよく聞く気がします.
しかし実際は奴らもサボってはいないのです.
サボっている蟻は疲労している蟻であり,働いているのは元気な蟻です.そのうち元気な蟻が疲れれば下の2割になり,回復した蟻は8割の一員として働きます.
このように,サボっている2割は全体のバッファとして機能しているのです. 有事の際に備えているとも言えます.
ここで注目して欲しいのが,蟻本人からすれば「疲れた,休みたい」「元気になったから働こう」と言うとても単純なルールでしか動いていないということです.
蟻自体は全体のためなんて一切考えていません.そもそもそんな脳は持ちません.
ところが人間の目線で見ると,全体としてうまく組織を回すようなアルゴリズムがあるように見えます.
説明されればなるほどなぁと言う感じですが,蟻はそんなこと知りません.気づいたら全体のためになっていたのです.
このように,ミクロな視点(蟻)での行動原理と,マクロな視点(人間)での現象理解の関係性を分析することで,現象がどのように創発されるかを解析するのがマルチエージェントシステムです.
分析して,実世界に応用した例が最初にあげた具体例になるわけですね.
なお,働きアリの原則のような例を「群知能」といい,この他にも渡り鳥の移動やイワシの群れなど自然界でもまま見られます.
興味がおありでしたら調べてみてはいかがでしょうか.
## 最後に
ざっくりマルチエージェントシステムとは,を説明しましたがいかがでしょうか.ちょっと冗長かなぁと思わなくもないですが自分では削るところがわかりません泣. 
明確に間違っている部分などあれば是非ご指摘ください. 私が取り返しのつかない赤っ恥を晒す前に.
その他にもコメントいただければ嬉しいです.内容は問いませんが私のメンタルが豆腐であることにご留意くだされば幸いです.