考察:「ロボット・アクション型プログラミング2」

by ご近所のきよきよ



 人間のように、学習によって解析手順やアクションを獲得したり、解析の途中結果から全体の状況を推定し、仮定の下に解析を続行し、知識を充実していく・・・そんなプログラミングについて、前に「ロボット・アクション型プログラミング」で議論しました。今回はそれを更に深く技術にしていきたく思います。


 基本的にデータ駆動型のプログラム構造にすることです。知識ベースの内容を文脈情報として、特定の文脈にマッチングして解析プログラムを実行させるのです。解析の途中経過はブラックボードとしてテンポラリデータとして、そのデータがこうならば、どういう結果になるかという、仮定と結果の一時的解析も行う。その一時的解析も文脈情報で起動することになります。

 文脈としては、データの種類(特定のモデル、特定時のコーパス、一般知識)を特定して、そのデータの特定の値と構造をもってマッチングすることになります。作業データの構造も文脈になります。そうした文脈のチェインを設計していくのは意志・評価システムということになるでしょう。この辺は、もやもやとしたつかみどころのないもののように感じるところですが、人工知能をどんどん前進していけば、明確な技術に結実していくものと思われます。

 この手法(プログラミング・スタイル)の特長は、無数のコンディションで起動されるアクションを合成したアクションを自律的に構築できることにあります。ノートパソコンの組み立てでは、内臓ハードディスクを埋め込むのに、ハードディスクドライブの向きとノートパソコンの本体の挿入口の向きが適切に合わされていなくてはなりませんが、掴むハンドの状況とか、いろいろのコンディション下にあっての判断にも影響されることになります。そんなものをハードコーディングしてプログラムを組むことは実際上不可能です。ある2項関係でのコンディション・アクションプロセスを複数発生させ、調停して最終アクションとして実現することになります。

例えば、手で机の上のボールを掴むという場合、手とボールの間の距離とか、手を移動する方向を認識し(計算し)、手を伸ばす処理をします。それと同時に、手と腕の関係を調整します。手の速さも決定し、制御していくことにもなります。そうしたこと全部を重畳していくことになります。繰り返しますが、それらをハードコーディングすることは不可能です。全て、プリミティブなプロセスだけを作りこみ、文脈を制御していくことで、それらをオーケストレーションして実現していくことになります。ロボット・アクション型プログラミングとしてプロセスを実現することは、遠回りなようですが、この方法を取らねば、柔軟なシステムは創生できないのです。

 ロボットアクション型プログラミングでは、プリミティブなプログラムは、コンディションと調停因子とアクションの定義として実現されるでしょう。調停因子とは、メインアクションを行わないけれども文脈を書き換えるアクションです。


 こうして、このようにロボット・アクション型プログラミングは、思考システム青葉の部分的システムとなります。若葉でロボット・アクション型プログラミングを実現しておくことは、青葉の構築にブースターとなることでもあるのです。


 ということで、今年のお仕事としてこのロボット・アクション型プログラミングの創生は重要な意味をもちます。若葉の基盤ができたらこのロボット・アクション型プログラミングで画像認識プロセスを創っていきたく思います。知識ベースシステムはできていますので、これを基盤に文脈定義情報を設定してプログラムを自律的に連鎖的に起動していくシステムを試行していくことになります。これが成功すれば、人工知能の基盤は成ったようなものでしょう。気張りたく思います。今年は年頭から頑張りたく思っています。去年は大分本を読んで勉強していましたが、今年は、物を作って、作って、作りまくることになります。はてさて、どこまで前進できるでしょうか。キーとなる技術は、文脈をどう制御していくかという問題でしょう。ばらばらな処理になりそうなところを、どう一つの目標に向かって収斂させていくか・・・ここが技術のキーポイントとなりそうです。

 
 
 

おわり