2009年7月12日日曜日

【AIMAメモ】数理論理学の三階層 (または論理という言葉の曖昧さについて)

論理(logic)という言葉が、一般的にも、論理学においてもかなり曖昧に運用されていることが理解できてきた。

これから書くことはAIMAに書かれていることではなく、AIMAに書かれていることを起点にして自分なりに考えたことだ。

まず数理論理学とはどんなものなのか多少探ってみよう。

  • 論理学と数理論理学との関係はどうなのだろう。
  • 考えてみると、そしていくつか調べてみると、大体次のようなイメージでよいのではないか。
  • 論理学の方が広い概念である。
  • 数理論理学は論理学の一分野である。
  • 数理論理学では、記号を用いる。別名、記号論理学とも呼ばれる。
  • 記号は、音、物理形状、文字などいろいろな形を取りえるが、記号論理学で扱うのは文字と考えてよいだろう。
  • これは、計算理論における情報の定義に関わるが、あらゆる情報は文字で表現できる、もしくは文字で表現できることが情報の定義である、ということを背景としている。

さて、次にもともと論理学とは何だったのだろう。


  • もともとでいうと自然言語と知性に関する知的探求である。
  • 自然言語をつかってわれわれは情報を伝達したり、考えたり、意見を戦わせたりするのだが、どうやらそこには何か法則性というか何か構造があるようだ。
  • 自然言語の文について、その何か構造がありそうに思える部分に着目しよう。逆に言うと、それ以外の部分を除去して考えていこう。
  • その何か構造と思えるものを論理(logic)と呼ぼう。
  • 論理と名前つけたものは、どうやら人間における事実の言明や仮定や推論などの知的活動や知的能力の重要な部分ではあるまいか。
  • 言葉という「外部表現」から、人間の思考という「内部表現+推論」を探っていこう。

というようなものが論理学の原始的モチベーションなのではないか。もちろん学問分野の定義は曖昧なので、進めば進む程、定義や対象領域も変化していくのですが。

で、数理論理学というのは、次のとおり。

  • 別に自然言語に限らなくてもいいじゃん。
  • ひとつには自然言語って難しいよ。論理としておぼろげながら捉えられた構造の研究に集中したい。
  • 自然言語じゃなくて、論理研究用のミニ言語みたいなのをつくっちゃうのがいいじゃん。(形式言語)
  • その言語は文法(=統語論)もきっちり決めちゃおう。


ここまでは前置きです。で、数理論理学というのは、ある意味、どうやら概念として次の三階層をとっているように思えてきたというお話です。


  • 1. 数理論理学自体の枠組み
    2の数理論理フレームワークを俯瞰してみたときに共通していると考えられる概念。逆にいうと2のフレームワークを新しく考えるときに満たさなければいけない条件や、使わないければいけない語彙。
  • 2. 数理論理フレームワーク
    3の具体的な論理を作る際のフレームワーク。いろいろなものがあり、問題領域に対してどれを使って論理をつくろうか選択したりする。
  • 3. 具体的な問題解決のための数理論理
    例えば、算数(小学校で習う形態は数理論理フレームワークを使っていないが)であったりWumpus Worldのエージェントを構成する論理(命題論理という数理論理フレームワークを使用)だったり。


そして、数理論理学の諸概念は、この3つの階層に分かれている。代表的なものを列記しよう。


  • 1. 数理論理学自体の枠組み
    数理論理学で扱う「論理」は必ずこれらの概念下で構築されている。

    • 数理論理学は形式言語を対象とする。
    • 形式言語では統語論と意味論が定義されている。
    • 統語論はconstantsとvariablesを含む。
    • モデル:ある文について、それが含むvariablesがそれぞれconstantsに特定化されたものをモデル(別名、可能世界)と呼ぶ。
    • 真理値:文は、個々のモデルについて真または偽となる値をもつ。その値を真理値と呼ぶ(ファジ論理はここでは除外する)。文αがモデルmで真となることを、mはαを充足する、とも言う。
    • 伴意:2つの文αとβについて、αの真理値が真であるあらゆるモデルにおいてβの真理値が真となるとき、文αから文βが伴意される、という。α |= β と書く。
    • 知識ベース:文の集まりを知識ベースと呼ぶ。KBと略記する。
    • 推論:あるKBと伴意関係にある文αは存在するかもしれないし存在しないかもしれない。そんなαを推論アルゴリズムiがKBをもとに見付けることができる場合、「αはiによってKBから導出された」と言い、KB |-i αと書く。
    • 推論規則:個々の数理論理フレームワークにおいて、その統語論と意味論とから発生する文から文への変換ルールを推論規則という。
    • 証明:ある導出をするための推論規則の適用系列を証明と呼ぶ。
    • 融合法:完全な探索アルゴリズムと単一の推論規則とによって完全な推論アルゴリズムを生み出す方法。
    • 健全性:ある推論アルゴリズムが、それが導き出す文はKBと必ず伴意関係があることが保証されている場合、その推論アルゴリズムは健全である、という。また、真理値を保存する、という言い方もある。
    • 完全性:ある推論アルゴリズムが、KBと伴意関係があるαを全て導出可能なことが保証されている場合、その推論アルゴリズムは完全である、と言う。
    • 論理的同値性:二つの文αとβについて、各々が真となるモデルの集合が一致するとき、αとβは論理的に同値であるという。α <=> βと書く。(伴意を用いた別の定義もある点に注意)
    • 妥当性:ある文がすべてのモデルに対して真となるとき、その文は妥当であると言う。妥当な文のことをトートロジと呼ぶ。
    • 充足可能性:文αが真となるモデルmが存在するとき、文αは充足可能であると言う。
    • 単調性:非形式的に言うと、センサにあやまりがないことが保証されている場合で新しい知識たる文βが得られたとしても、KB |= αならばKB^β |= αである。すなわち、βを知る前に導出されていた文αがβの出現によってくつがえされることはない、ということ。

    などなど。
  • 2. 数理論理フレームワーク
    1の各種概念を用いているが具体的な問題領域には適用してはいないフレームワーク。例えば、命題論理、一階述語論理、高階述語論理などがこれにあたる。基本的には、それぞれの「論理」にて統語論や意味論やそれらを表現する語彙は異なる。もちろんそれぞれ発展していったものなので、その関連性から同じような用語が現れることもあるが、それは上の1の意味で共通な用語ではないことが要注意である。以下は命題論理の場合の語彙を示す。

    • 統語論の語彙:原子文、命題記号、複合文、論理結合子、リテラル、選言、連言、含意文、前提、結論、双条件文、ホーン節
    • 意味論の語彙:真理値表
    • 推論の語彙:モーダスポーネンス(三段論法)、And除去、演繹定理、背理法、連言標準形、前向き推論、後ろ向き推論、Davis-Patnumアルゴリズム

    などなど。
    もちろん1の概念や性質や観点は、どの数理論理フレームワークでも有効であり、それに基づいて個々の数理論理フレームワークも研究されるし、相互の特性の比較も為される。
  • 3. 具体的な問題解決のための数理論理
    これは例えばwumbus worldのエージェントを「論理」によって判断させる場合にあたる。

    • どの数理論理フレームワークを採用するかをきめる。
    • その数理論理フレームワークにおいて、環境や知識をどのように表現するかをきめる。
    • あとは数理論理フレームワークにて研究済みであるツールを用いて実行する。すなわちKBを構築し、推論し、行動し、あたらしい情報を知覚し、KBにそれを投入し、また推論し、と繰り返す。

    wumbus world以外の例としては、例えば、自然言語で考えられ構築されてきた数学の集合論の知識を一階述語論理という数理論理フレームワークを用いて表現し推論するというものがある。


この3つの階層に概念がわかれており、数理論理学で何かを語るときに、この階層を縦横無尽に行き来するということを理解していなかったから、今まで数理論理学がもやもやしていたのだ。

また「論理」という言葉の定義がかなり曖昧であり、文脈によって特定される機会がかなり多いこともその原因だったと思う。

「論理」が何を指しているかを理解するには、文脈がどうであるかを理解する必要があり、個別の文章の文脈を理解するには、数理論理学が概念や対象の階層構造を成していることを理解する必要があったということ。

これも大きな気づきだ。

0 件のコメント: