このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

アブダクションと確率的推論

「AならばB」であっても、それだけでは「BならばA」だとは断言できません。この事実を「逆、必ずしも真ならず」と言ったりします。しかし我々は、「AならばB」から「BならばA」を導くことがあります。そして、それが“全く不合理な判断だ”とも言えないのです。

古典論理では認められていなくても一理ある推論(のいくつかの形式)をアブダクションと言います。「AならばB」から「BならばA」を導くのもアブダクションの一種です。このアブダクションを確率的推論の立場から分析してみます。

内容:

一理ありそうな推論

古典論理や直観論理から見て認められない推論でも、なんか一理ありそうな推論があります。一方、どう考えてもおかしい、まったくデタラメな推論もあります。僕は一理ありそうな推論に興味を持っています。そして、一理ありそうな推論とまったくデタラメな推論を区別すべきだと思います。この区別をしないと次の危険があります。

  • 一理ある推論を擁護する議論が、まったくデタラメな推論まで擁護すると誤解される。
  • まったくデタラメな推論を批判する議論が、一理ある推論まで批判すると誤解される。

一理ありそうな推論として過去記事で扱った例は、発言者により命題の真偽を判断するとか、少数の事例から一般法則を主張するとかです。

ニセ科学に関連して、「デタラメ=真性ニセ科学」と「クレイジー=異端の科学理論」を区別すべきだと主張したこともあります。

今回話題にするのは、条件付き命題(conditional proposition)の仮定と結論を入れ替えてしまう推論です。'→'を「ならば」の意味として図示すれば:

   A→B
 --------[よって]
   B→A

もちろん、古典論理でこのような推論は許されません。しかし、日常的にこのタイプの推論はしているし、状況によっては(いつもではない!)それが間違いとは思えないのです。一理ありそうなんです。

黒いはカラス

事例として、「カラスは黒い」が真であることから「黒いはカラス」を導く例を考えます。

「カラスは黒い」を論理式て表すと次のようになります。

  • ∀x∈鳥.(カラスである(x)→黒い(x))

これは、「任意の鳥xに対して、xがカラスである ならば xは黒い」と読みます。日本語だと本文と紛らわしいので英語っぽく書くと:

  • ∀x∈Birds.(crow(x)→black(x))

Birdsは鳥全体の集合、crow(x)は「xはカラスである」、black(x)は「xは黒い」の意味です。仮定と結論を入れ替えた形は:

  • ∀x∈Birds.(black(x)→crow(x))

「カラスは黒い」から「黒いはカラス」を導く推論は:

   ∀x∈Birds.(crow(x)→black(x))
 ---------------------------------[よって]
   ∀x∈Birds.(black(x)→crow(x))

この推論がどのように「一理ある」かを考えてみます。

「『カラスは黒い』が本当だ」とはどういうこと?

「カラスは黒い」(論理式なら ∀x∈Birds.(crow(x)→black(x)))は真であるとします。このとき「真である」とは何でしょうか? 論理における「真である」には、構文論的な真と意味論的な真があります。構文論的な真(証明論的な真)は証明による真で、意味論的な真(モデル論的な真)は事実との照合による真です。「カラスは黒い」という命題が論理的に証明されたとは考えにくいので、事実との照合によって真であると考えましょう。

事実とは、鳥の集合Birdsの全ての要素を観測したら、カラスである要素はことごとく実際に黒かった、ということです。このことを次の記号で書くことにします。

  • x∈Birds |= crow(x)→black(x)

記号'|='はダブルターンスタイルと呼ばれます。ダブルターンスタイルはメタな記号で、'|='の左に事実や実体を書き、その事実/実体と照合した結果として左側の命題(論理式)が真であることを示します。

「∀x∈Birds.(crow(x)→black(x)) が意味的に真である」という主張は、「x∈Birds |= crow(x)→black(x)」と同じことなので、ダブルターンスタイルを使った後者の形式を使うことにします。後者の形式、つまり「〈事実/実体〉|= 〈命題〉」の形は妥当性判断(validity judgment)と呼びます。

ここでやっていることは、全称束縛された一階述語論理の論理式を、モデル論的な妥当性判断に置き換えて扱おうということです。対象レベルの論理式 ∀x∈X.p(x) の真偽を、メタレベルの妥当性判断 x∈X |= p(x) の真偽によって与えます。

このようにして真偽値を与えることは、全称の標準的な解釈です。ただし多くの場合、論理式p(x)のなかに含まれる定数や関数記号に意味を付けるために、Xは単なる集合ではなくて構造であることを要求します。

さて、crow(x)とblack(x)を入れ替えた「x∈Birds |= black(x)→crow(x)」の意味は、鳥の集合Birdsの全ての要素を観測したら、黒い要素はことごとくカラスだった、ということです。実際に鳥を調べてみると、キュウカンチョウは黒いですがカラスではありません。したがって、「x∈Birds |= black(x)→crow(x)」、あるいは同じことですが「∀x∈Birds.(black(x)→crow(x))」が真だとは言えません。

以上が、古典論理の命題の意味的/モデル論的解釈です。この解釈では、次のアブダクションは正当化されません。

   x∈Birds |= crow(x)→black(x)
 ---------------------------------[よって]
   x∈Birds |= black(x)→crow(x)

鳥に関する観測結果をテーブルで表す

古典論理は、神様のような超越的な能力を持つ全能者を想定して、その全能者の立場で考えます(「論理を身に付けるには」参照)。また、すべての命題に真か偽かで決着を付けようとします。これは、我々人間の日常とはちょっとかけ離れた論理です。

そこで、命題とその真偽判断をもっと人間的/日常的にします。まず、全ての鳥の集合Birdsをやめます。全ての鳥を調べるなんて出来ませんからね。MyBirdsを私(特定の誰か)が認識する鳥の集合とします。鳥に関する観測結果を次のテーブルに書き込むことにします。

カラスである カラスでない
黒い カラスであって黒い鳥の比率 カラスでなくて黒い鳥の比率
黒くない カラスであって黒くない鳥の比率 カラスでなくて黒くない鳥の比率

今まで見たすべてのカラスは黒かった、という事実は次のように書けます。

カラスである カラスでない
黒い 100% ?
黒くない 0% ?

疑問符のところはあまりハッキリわかりません。しかし、だいたいの主観でいいので書き込むとします。すると例えば:

カラスである カラスでない
黒い 100% 30%
黒くない 0% 70%

カラスでなくても黒い鳥はいるにはいるが3割くらいかな、ということですね。このテーブルを(確率論の言葉では)条件付き確率テーブル(conditional probability table)と呼びます。確率とはいっても、クジや賭け事をイメージする必要はありません。観測された事実における頻度(frequency)または比率(ratio, rate)のテーブルです。この条件付き確率テーブルが今後の判断の基礎を与えます。

同時確率テーブルと条件付き確率テーブルの転置

今まで見た鳥(集合MyBirds)のなかで、カラスとカラス以外の比率はどうでしょうか? カラスは他の鳥に比べてよく目にするので、「カラス:非カラス」は6:4くらいとします。この比率を先のテーブルに掛け算すると:

カラスである カラスでない
黒い 100%×60% 30%×40%
黒くない 0%×60% 70%×40%

結果は:

カラスである カラスでない
黒い 60% 12%
黒くない 0% 28%

このテーブルは同時確率(分布)のテーブル(joint probability table)と呼びます。同時確率テーブルの4つの欄を総和すると100%になります。これを、行ごとの和が100%(全体の和は200%)になるように調整します。1行目に100/72、2行目に100/28を掛ければOKですね。

カラスである カラスでない
黒い 60%×(100/72) 12%×(100/72)
黒くない 0%×(100/28) 28%×(100/28)

さらに、縦と横を入れ替えると次のテーブルが得られます。

黒い 黒くない
カラスである 83.3% 0%
カラスでない 16.7% 100%

このテーブルも条件付き確率テーブルですが、条件の部分が最初とは逆で、1列目(左)は「黒い鳥のなかでカラスとカラスでない鳥の比率」、2列目(右)は「黒くない鳥のなかでカラスとカラスでない鳥の比率」となっています。

今まで行った一連の操作により、与えられた条件付き確率テーブルの縦横が入れ替わります。この入れ替えの操作を転置(transpose)と呼ぶことにします。転置されたテーブルによれば、黒い鳥を見たとき、それを「カラスである」と判断しても8割がた当たることになります。「黒いはカラス」はまんざら間違いではないでしょう。

真である度合

命題(妥当性判断)の真偽値を左側のブラケットに入れて明記してみます。まず、古典論理ベースの場合:

  • x∈Birds |= crow(x)→black(x) [100% = true]
  • x∈Birds |= black(x)→crow(x) [(not 100%) = false]

条件付き確率テーブル(さまざまな比率)を考えて、それを転置した場合:

  • x∈Birds |= crow(x)→black(x) [100%]
  • x∈Birds |= black(x)→crow(x) [83.3%]

古典論理の場合は100%の確実性がない限り偽(false、間違い、嘘)と判断されます。しかし日常では、8割・9割当たりなら“ほぼ真”であって間違いや嘘とまでは言いません。

古典論理における記号「→」は含意と呼ばれ、black(x)→crow(x) は ¬black(x)∨crow(x) (xは黒くない または xはカラスである)と同じ意味です。一方、確率(比率)としての解釈では、黒い鳥に限定して(条件付けて)のカラスの確率(比率)です。含意と条件付き確率テーブルでは、「ならば」の意味が微妙に違っています。

前節の条件付き確率テーブルの転置操作では、カラスでない鳥の色とか鳥全体のなかでのカラスの比率とかの情報を使いました。古典論理ではそういう情報を使わない(使えない)ので、仮定と結論をひっくり返したときのリスクを見積もれないのです。間違いを犯すリスクをゼロにするには「危ないことは一切やらない」判断が正しいことになります。しかし現実の多くのケースでは、リスクが見積もれてそれが小さいケースもあるのでアブダクションも禁止しなくてもよいのでしょう。

今述べた「カラスかどうか」の確率的判断では、古典論理に比べてより多くの情報を活用しながら二値とは限らない“真である度合い”を評価していることになります。日常的判断において「黒いはカラス」が受け入れられるのは、こういう背景・メカニズムなのかも知れません。