普遍的汎用人工知能の定義

■「普遍的汎用人工知能」の定義

あらゆる問題を、できるだけ解くことができる人工知能。
(「できるだけ解く」「人工知能」についても、それぞれ定義すると、次になる)
あらゆる問題について、問題の解釈違いが無く、検証(正解/不正解)された回答の選択肢の数が時間と共に増加する、プログラムの不変部分(コード、定数)。

■「人工知能」の定義

問題を解くためのプログラムを、変動する部分(変数、入力された情報、知識)と変動しない部分(コード、定数)に分ける。
変動しない部分を「人工知能」と定義する。
人間と同等の問題解決能力を持つには、人間と同等の知識が必要だが、知識の優劣は、知能の優劣とは分けて考える。

■「問題」の定義

【出題者】
・出題者から回答者へ伝える
-・回答できる選択肢の範囲(例:Yes/No)。
-・各選択肢のついて、正解/不正解を判断する基準。
-・各選択肢の検証に必要な情報。
-・検証方法の制約(例:制限時間)。
上記で表すことができる内容は全て、「問題」と定義する。
【回答者】
・出題内容を解釈する。
・以下を使用して問題を解く
-・使用可能な計算機
-・出題者から与えられた情報
-・すでに持っている情報
・回答者から出題者へ伝える
-・回答

■「問題を解く」の定義

・例:ランダムに選択肢を選び、回答したものが偶然に正解であっても、問題は解けていない。
・例:ランダムに選択肢を選び、正解だと検証してから回答した場合、問題は解けている。
・例:最も確率が高いものを予想する問題では、正しく計算できていれば、予想が外れたとしても、問題は解けている。
・回答者が、正解/不正解の判断基準を正しく解釈した上で、ある選択肢が正解であると検証できた状態を「問題が解けた」と定義する。
・正解の選択肢を特定する方法は問わない(ランダムでもよい)。

■「問題が解けない理由」の分類

【解釈違い】
・回答できる選択肢の範囲の解釈違い
・各選択肢について、正解/不正解を判断する基準の解釈違い
・検証方法の制約条件の解釈違い
・出題者と回答者の間で矛盾した情報を持っている
・出題者から回答者への情報の見逃し
【能力不足】
・計算能力不足(例:計算時間、メモリー)
・情報不足(出題者からの情報だけでなく、元から持っている情報についても)

■「問題をできるだけ解く」の定義

解釈違いは、プログラムする段階で改善できる。
解釈違いがないことを、"できるだけ解く"の必要条件とする。
与えられた計算能力と情報は、効率良く使うことはできても、プログラムで増やすことはできない。
与えられた計算能力と情報を、最高の効率で使うことは、"できるだけ解く"の必要条件とはしない。
最高効率の必要はないが、最適解へ向けて、進捗しなければならない。
検証(正解/不正解)された回答の選択肢の数が時間と共に増加することを、"できるだけ解く"の必要条件とする。
「問題をできるだけ解く」の定義:問題の解釈違いが無く、検証(正解/不正解)された回答の選択肢の数が時間と共に増加する。

■普遍的汎用人工知能のレベルの定義

計算能力が無限なら最適解が得られるが、限られた能力での効率の良さはレベルとして表現する。
【レベル1.最適な正確性】
正しい選択肢しか選択しないが、必要な計算能力は考慮されていない。
無限の計算能力と限られた情報内で最良。
【レベル2.最適な計算順序】
限られた計算能力内で、効率よく選択肢を絞り込む。
計算可能。
【レベル3.最適な冗長性】
不要な計算をしない。
限られた計算能力で最良。

■普遍的汎用人工知能の要素の分類

レイヤーn以下が完成すれば、レベルnが完成するように、プログラムの要素を分類する。
【レイヤー1 正確性】
一貫性のある解釈をするための条件を決める。
考えられる全ての組み合わせを、力任せの方法で探索して良い。
【レイヤー2 計算順序】
効率の良い探索方法を決める(幅優先、深さ優先など)。
探索の打ち切り条件と、打ち切ったときの処理を決める。
【レイヤー3 冗長性】
必要なプログラムの比較・分岐回数を最小化する。