人工生命とエージェント技術について
近年の哲学の議論では、知能が発現するキッカケとなるものの一つが生命であり、意図(生きていく方向性)から、関係性に意味が生じてくるというものがある。(xx意味論)その観点からも、何らかの生命の働きを機械(コンピューター)で代替させ、それを人工知能システムにフィードバックさせることは妥当なアプローチとなる。
本ブログではそれらの声明に対する以下の情報を記載する。
技術トピック
アルゴリズム思考(Algorithmic Thinking)は、問題解決やタスクの実行において、論理的な手順やアプローチを考える能力やプロセスを指す。アルゴリズム思考を持つことは、さまざまな複雑な課題に対処する際に役立つ重要なスキルとなっている。アルゴリズム思考における「問題の分割」は、大きな問題を複数の小さな部分問題に分けるプロセスであり、このアプローチにより、複雑な問題を扱いやすい単位に分割して、大きな課題がより理解しやすく、それぞれの部分問題を個別に効率的に解決できるようになるものとなる。「問題の分割」は、一般的な問題解決のステップにおける”最初の一歩”とも言える。
生成系AIは、テキスト、画像、音声、動画などの新しいコンテンツを生成する人工知能技術を指す。生成系AI(例えば、画像生成AIやテキスト生成AI)は与えられた指示(プロンプト)に基づいて新しいコンテンツを生成するため、プロンプトの質や適切さがAIのパフォーマンスを最大限に引き出すカギとなる。
グラフニューラルネットワーク(GNN)を使用したマルチエージェントシステムは、複数のエージェントがグラフ構造で相互作用し、エージェント間の関係性や依存関係をモデル化する場合に適したアプローチとなる。
深層強化学習(DRL)によるマルチエージェントシステムの実装にはいくつかの方法がある。以下に一般的な手法について述べる。
Unityは、Unity Technologiesによって開発され、広く使用されているゲーム開発やアプリケーション開発のための統合開発環境(IDE)となる。Unityはゲーム、VR、AR、シミュレーション等様々な領域で利用されている。ここでは、このUnityとCMS、chatbot、ES、機械学習、自然言語処理等の人工知能システムとの連携について述べている。
シミュレーションは、現実世界のシステムやプロセスをモデル化し、それをコンピュータ上で仮想的に実行するものとなる。シミュレーションは、物理的な現象、経済モデル、交通フロー、気候パターンなど、さまざまな領域で使用され、モデルの定義、初期条件の設定、パラメータの変更、実行、結果の解析などのステップで構築することができる。シミュレーションと機械学習は、異なるアプローチとなるが、目的や役割によって様々な相互作用をすることがある。
ここではこのシミュレーションと機械学習の組み合わせの適応事例と各種実装について述べている。
強化学習の概要とシンプルなMDPモデルのpythonでの実装について述べる。
前回述べた迷路の環境をベースに計画を立てる手法について述べる。計画を立てるには「価値評価」と「戦略」の学習が必要となる。そのためにはまず「価値」を実体に即した形で定義し直す必要がある。
ここでは動的計画法(Dynamic Programming)を用いたアプローチについて述べる。この手法は迷路の環境のような遷移関数と報酬関数が明らかな場合に利用でき。このように遷移関数・報酬関数をベースに学習する手法を「モデルベース」の学習法と呼ぶ。ここでの「モデル」とは環境のことで、環境の動作を決定する遷移関数・報酬関数がその実態となる。
有限状態マシン (Finite State Machine, FSM) は、入力シーケンスに対して状態を遷移させる計算機の一種となる。FSMは、入力として与えられたシーケンスを読み込み、ある状態から別の状態へと移動する有限状態遷移図を用いて表現される。FSMは、状態遷移図を使って、入力を受け取ると現在の状態を変更し、適切な出力を生成することができる。
オートマトン理論は、計算理論の分野の1つであり、コンピュータ科学において重要な理論の1つとなる。オートマトン理論は、有限状態機械(FSM)やプッシュダウンオートマトン、チューリングマシンなどの抽象的な計算機モデルを研究することによって、形式言語、形式文法、計算能力、計算可能性、自然言語処理などの問題を解決するために応用される。ここでは、このオートマトン理論の概要とアルゴリズムおよび様々な適用事例と実装について述べている。
- 哲学の観点からの生命
- 数学による生命モデル
- 人工知能シミュレーションとセルオートマトン
- PyhtonによるMAS(マルチエージェントシミュレーションシステム)外部リンク
コロナの影響から、感染症の拡大に関する様々な研究を目にする機会が増えた。その中でマルチエージェントシミュレーションという手法を利用して感染症拡大の様子を再現しているものがある。一般的な予測分析の場合、マクロデータをダイレクトに予測する。その一方でマルチエージェントベースの予測の場合、ミクロデータの相互作用からマクロデータを表す。現在は交通分野や防災分野での活用が進んでいるが、ビジネスサイドにおける活用も今後期待できそうな手法となる。
NetLogoは自然現象や社会現象をシミュレーションするためのプログラム可能なモデリング環境です。1999年にUri Wilenskyが作成し、それ以来Center for Connected Learning and Computer-Based Modelingにおいて継続して開発されています。
NetLogoは時間発展する複雑システムをモデリングするのにとても適しています。モデル作成者は独立して動作する数百数千の”エージェント”に指示を与えることができます。これによって、ミクロレベルの個体の行動と、それらの相互作用によって創発されるマクロレベルのパターンとの間の相互関係を探求することができます。
NetLogoを用いることで、学習者はシミュレーションを始めることができ、”遊んで”みることができ、様々な条件下でのモデルの挙動を観察することができます。NetLogoは、学習者や指導者、カリキュラム開発者が自分自身でモデルを作成することを可能にするオーサリング環境でもあります。Netlogoは、学習者や指導者にとって十分にシンプルであると同時に、さまざまな分野の研究者にとってもパワフルなツールとなる先進性を兼ね備えています。
「人と機械」のインタラクションの知能化はゲームの世界で昔から行われている。今回はそれらを考えるためのベースとしてまずその歴史を「デジタルゲームの教科書 知っておくべきゲーム業界最新トレンド」からピックアップしてまとめてみた。
最後の世代(00年度以降)には、AIのアーキテクチャ化が多く行われた。まず80年代から90年代にかけて次第に形成されてきたものとして「エージェント(Agent)」アーキテクチャがある。これは何かの役目を与えて目的を果たすAIのことで、ゲームの世界ではキャラクタと同義になる。
この中で「自律型エージェント」とは、エージェント自身が、周囲の環境と状況を判断しながら、目的を推敲する能力をもったもので、さらにこれらエージェントを複数連携させて小さな目標の推敲を重ねて大きな目標を達成するものをマルチエージェント(Multi-Agent)と呼ぶ。
デジタルゲームキャラクタAIのクオリティは「そのAIが時間と空間をどれだけ支配しながら活動できるか」によって決まる。これはどれくらい周囲の環境を認識し、どれくらいの時間幅と時間スケールの中で行動を組み立てることができるかということでもある。このそれぞれについて対応する技術を述べる。
まず空間とモノの認識について。デジタルゲームのフィールドは囲碁や将棋と比べて飛翔に複雑となる。一般的にはこのような空間を表現する為に場所の指標となるポイントを敷き詰めるか(ウェイポイント(WayPoint))、三角形(凸角形)を敷き詰める(ナビゲーションメッシュ(Navigation Mesh))という手法を用い、これら要素を繋いでネットワークグラフとして処理を行う。
今回は時間軸の認識技術について。デジタルゲームにおいてAIを時間から眺めることは非常に重要なポイントとなる。このAIに時間軸の認識を与えるには、まずAIに過去(記憶)を与える必要がある。AIに記憶を与えるには、記憶領域(メモリ)の確保と、その記憶の形式を決定することが必要で、記憶の形式がそのAIの知的基盤を決定する。
たとえばF.E.A.R.というゲームでは、そのステージのオブジェクトや的について「AIから見た場所、方向、刺激、欲求、情報取得時刻、情報信頼度」という共通の知識フォーマットで記憶の形成を行う。この記憶を利用して、AIは情報を抽出して意思決定に利用する。Dumcanでは、おなじオブジェクトについて、タイムスタンプ付きの記憶を保持している。この時系列記憶によって、壁の後ろにみうしなった球が、いつ壁の後ろから現れるかを予測する。
次にAIに未来の感覚を与える手段については様々なアプローチがある。それらの中で最もよく利用されているのが「ゴール指向プランニング(Goal-oriented(Goal-based) Planning)」となる。ゴール指向とは、AIの行動原理であり、第一に目標(ゴール)を決定し、それを達成するように行動を設計する。反射型のAIが現在の環境に反応するのに対して、ゴール指向AIは、まず未来に目標を設計してから行動する。このゴールが複数ある時は、意思決定アルゴリズムでどのゴールを遂行するのかを決めた上で行動する。
AlphaGo(アルファ碁)は、Google DeepMindによって開発されたコンピュータ囲碁プログラムで、2015年10月に、人間のプロ囲碁棋士を互先(ハンディキャップなし)で破った初のコンピュータ囲碁プログラムとなる。コンピュータが人間に打ち勝つことが最も難しいと考えられてきた分野である囲碁において、人工知能が勝利を収めたことは世界に衝撃をもたらし、AlphaGoの登場は単なる一競技の勝敗を越え、人工知能の有用性を広く知らしめるものとなり、世界的AIブームを呼び起こすきっかけともなっていった。今回は、碁を含めたボードゲームとAIとの関連をテーマに述べ、図書「アルファ碁はなぜ人間に勝てたのか」の読書メモと「最強囲碁AI アルファ碁解体新書 深層学習、モンテカルロ木、強化学習から見たその仕組み」の読書メモも併記する。
Behavior Tree(動作ツリー)は、ゲームAIにも登場する複雑なAI行動を構築するためのフレームワークとなる。これはは元々ロボット工学を目的として開発されたものが、FPS等のゲームの中のノンプレイヤーキャラクター(NPC)のAIを設計する為の階層ステートマシーンの改良として用いられるようになったもので、利点として、設計と実装が容易で再利用性と移植性が高い為、大きく複雑なロジックに対応可能としたものにある。
ゲームAIの中では元来スーテトマシンが用いられてきた、ステートマシンは「有限個の状態と遷移と動作の組み合わせからなる数学的に抽象化されたふるまいのモデル」と定義されるもので、ある程度の規模のロジックを表現しようとすると、状態と遷移の組み合わせ爆発が起き、かつ再利用性が低いという課題を持つ。
これに対してBehavior Treeは、状態を相互にネストしてツリーのような構造を形成し、遷移をこれらのネストされた状態のみに制限することでモジュール性を高めている。
マルチエージェントシステムは、エージェントと呼ばれる複数の相互作用するコンピューティングエレメントで構成されるシステムである。エージェントは、2つの重要な能力を持つコンピュータシステムである。第一に、エージェントは少なくともある程度自律的に行動できる。つまり、設計目標を満たすために何をすべきかを自ら決定できる。第二に、他のエージェントと相互作用することができる。単にデータを交換するだけでなく、協力、調整、交渉など、私たちが日常的に行っている社会活動の類似行為に関与することができる
セマンティックウェブの基本的な目的は、既存のウェブ上に、ウェブコンテンツの高度な自動処理を可能にする層を作り、人間とソフトウェアの両方によるデータの共有と処理をさらに可能にすることである。セマンティックウェブサービスは、特定のタスクを実行するために使用できる、自己充足的で再利用可能なソフトウェアコンポーネントとして定義することができる。
ここでは、主にエージェントベースのセマンティックウェブサービスコンポジションに注目する。マルチエージェントベースのセマンティックWebサービス構成は,マルチエージェントシステムをサービス構成システムとみなすことができるという議論に基づいており,そこでは,異なる関与するエージェントが異なる個々のサービスを表現している.サービスは、自己充足的なソフトウェアコンポーネントとして実装されたインテリジェントなエージェント能力とみなされる。
- エージェントシステムにおけるフレーム問題
エージェントシステムにおけるフレーム問題とは、エージェントが新しい情報を取得する際に、環境の状態や変化を適切に把握し、判断を下すことの難しさを指す。これは具体的には以下のようなケースにあたる。
- 人工知能とテレビドラマ
- FSM(finite state machine:有限状態機械)
- マルチエージェント・プランニングのための行動理論
- ロボットの空間学習におけるロバストな定性的手法
- 位置確率格子を用いた移動ロボットの絶対位置の推定
- 行動の協調性を学ぶ
- 反応的推論と計画
- 対話型ミュージアムツアーガイドロボット
- Learning ROS for Robotics programming
マイクロサービスとマルチエージェントシステム
マイクロサービスとは、一つのアプリケーションを複数のサービスに機能的に分割するためのアーキテクチャスタイルとなる。アーキテクチャスタイルとは、建築”様式”のことで、構造設計(アーキテクチャ)だけでなく、開発・運用手法、組織体制や運営等、構造物の開発・運用に対する一切合切をまとめたものが”アーキテクチャスタイル”となる。
本ブログでは以下のページにて、このマイクロサービスに関して、アーキテクチャと開発スタイル、テスト、保守等のがいうよについて述べ、さらにClojureを使った具体的な実装について述べる。
コメント
[…] 人工知能技術 機械学習技術 人工生命 推論技術 知識工学 […]
[…] 生命の振る舞いをコンピューターで再現し、知能を発現する | Deus Ex Machina より: 2022年1月2日 9:39 AM […]
[…] 人工知能技術 機械学習技術 人工生命 推論技術 知識工学 […]
[…] 人工知能技術 機械学習技術 人工生命 推論技術 知識工学 […]
[…] 人工知能技術 機械学習技術 人工生命 推論技術 知識工学 […]
[…] life tips & 雑記 禅と人工知能/機械学習とライフティップ 人工生命とエージェント […]
[…] 人工知能技術 機械学習技術 人工生命 推論技術 知識工学 […]
[…] tips & 雑記 禅と人工知能 人工生命とエージェント […]
[…] 人工知能アルゴリズム ICT技術 デジタルトランスフォーメーション 人工生命 推論技術 知識工学 本ブログのナビ […]
[…] 人工知能アルゴリズム ICT技術 デジタルトランスフォーメーション 人工生命 推論技術 知識工学 […]
[…] 人工知能アルゴリズム ICT技術 デジタルトランスフォーメーション 人工生命 推論技術 知識工学 オートマトンと自動計画 […]
[…] tips & 雑記 禅と人工知能 人工生命とエージェント […]
[…] 人工知能技術 機械学習技術 人工生命 推論技術 知識工学 […]
[…] エージェント技術に全般に関しては”人工生命とエージェント技術“、”マルチエージェントシステム入門“、またシミュレーションへの適用に関しては”PyhtonによるMAS( […]
[…] 人工知能アルゴリズム ICT技術 デジタルトランスフォーメーション 人工生命 推論技術 知識工学 本ブログのナビ […]
[…] 人工知能アルゴリズム ICT技術 デジタルトランスフォーメーション 人工生命 推論技術 知識工学 オートマトンと自動計画 […]