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

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

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

ディープラーニングの論理:: シャープネスと外延化

以前の記事「ベイズ確率論、ジェイコブス達の新しい風」で、バート・ジェイコブス達によるチャンネル・アプローチ〈the channel approach〉を紹介しました。

数日前の記事に登場したディープラーニングid:bonotake〈たけを | 今井健男〉さんが、チャンネル・アプローチを“ディープラーニングの論理”として使う気になっているようです(たぶん)。

なのでこの機会に、「ベイズ確率論、ジェイコブス達の新しい風」への補遺を少し述べます。

内容:

準備

基本的な参考文献は、Jacobs-Zanasi-2018です。

この論文の解説は「ベイズ確率論、ジェイコブス達の新しい風」にあります。

用語法・記号法は、原則的にJacobs-Zanasi-2018にしたがいます。

  1. 集合はラテン文字大文字 A, B, C などで表す。
  2. 状態(確率分布)は、ギリシャ文字小文字 ω, τ, α などで表す。
  3. 述語は、ラテン文字小文字 p, q, r などで表す。
  4. チャンネルは、ラテン文字小文字 c, d, f, g などで表す。

僕の好みとモノグサ癖から、ジェイコブス達と違う書き方をしているのは:

  1. チャンネルを表す矢印は →* (ジェイコブス達は  \mbox{-} \circ\hspace{-0.4em}\rightarrow という特殊な矢印、書くのがめんどい)。
  2. チャンネルの結合(合成)は、図式順結合記号セミコロンを使って c;d と書く(ジェイコブス達は  d\odot c、反図式順)。今回は出てこない。
  3. チャンネルcによる状態ωの前送りは ω>>c と書く(ジェイコブス達は c>>ω)。今回は出てこない。

有限集合と写像の圏をFinとします。有限集合とチャンネルの圏をChanとします。ただし:

  • ホムセット Fin(A, B) を Map(A, B) と書く。f∈Map(A, B) ⇔ f:A → B in Fin (集合が有限集合でない場合も Map は使います。)
  • ホムセット Chan(A, B) を Chan(A, B) (太字じゃない)と書く。c∈Chan(A, B) ⇔ c:A →* B in Chan

太字の 0, 1, 2 は次のように定義されます*1

a∈A に対して、δa はA上の状態(確率分布)で、一点aに集中したディラック分布〈ディラック測度〉です。「ベイズ確率論、ジェイコブス達の新しい風」で述べた粒子の位置の例えを使えば、δaは粒子の位置が確実にaであり、他の位置に居る可能性はゼロな分布です。

シャープネス

集合A上の述語〈predicate〉は、Aの要素aに対して真偽値を返す関数です。0か1しか返さない述語をシャープ述語sharp predicate〉といい、実数区間 [0, 1] の値を返す述語をファジー述語〈fuzzy predicate〉と呼びます。シャープ述語はファジー述語の特別なものと考え、単に述語と言えばファジー述語のことだとします。

「シャープである」という性質は、述語だけではなく、状態(確率分布)に対してもチャンネルに対しても考えることができます。

集合A上の状態〈state〉とは、A上の確率分布でした。有限集合しか考えてないので、確率の議論に測度論は不要で、確率分布も、Aの要素=根本事象の確率を与える関数として定義できます。つまり、ωがA上の状態だとは:

  • ω:A→[0, 1] という関数
  •  \sum_{x\in A} \omega(x) = 1
  • 事象 X⊆A の確率は、 \sum_{x\in X} \omega(x) で計算される。

A上の状態ωがシャープであるとは、a∈A があって、ω = δa と書けることです。確率分布として一点に集中している、広がってない分布がシャープなのです。

次に、チャンネルのシャープさを定義しましょう。そのために、関手 J:FinChan を定義します。Finの対象、つまり有限集合Aに対して J(A) = A です。もともと、FinChanは対象(有限集合)を共有しているので、対象には何もしないでそのまま使います。

f:A → B in Fin (f∈Map(A, B))に対して、

  • J(f):A →* B つまり、J(f)はAの要素にB上の状態を対応させる関数
  • J(f)(x) := δf(x)

J(f)とは、通常の関数fを、チャンネルだとみなしたものです。チャンネルは確率的非決定性(不確実性)を許す関数ですが、J(f)は非決定性を持ちません。

一般に、チャンネル c:A →* B in Chanシャープだとは、f:A → B in Fin があって、c = J(f) と書けることです。シャープなチャンネル=決定性のチャンネル ですね*2

実は、チャンネルに対するシャープネス概念があれば、述語/状態のシャープネスはその特別な場合になっています。「ベイズ確率論、ジェイコブス達の新しい風」で説明した次の同型を念頭において考えます。

  • Chan(A, B) \stackrel{\sim}{=} Map(A, State(B)) (State(B)はもはや有限集合ではありません。)
  • Pred(A) = Chan(A, 2) \stackrel{\sim}{=} Map(A, State(2)) = Map(A, [0, 1])
  • State(A) = Chan(1, A) \stackrel{\sim}{=} Map(1, State(A)) \stackrel{\sim}{=} Convex(A) (Convex(A)は、Aの要素の凸結合の全体)

これらの同型から次が言えます。

  1. A上の述語とは、A →* 2 というチャンネル
  2. A上の状態とは、1 →* A というチャンネル

シャープな述語/状態は、

  1. A上のシャープ述語とは、A → 2 という写像
  2. A上のシャープ状態とは、1 → A という写像

言い方を換えると:

  1. A上のファジー述語とは、通常の述語 A → 2 を確率化した写像
  2. A上のファジー状態とは、通常の要素 1 → A を確率化した写像

「シャープな」という形容詞は、「決定性の」「二値的な」「古典的な」などに置き換えられます。そして、決定性/二値的/古典的であるシャープな世界Finは、そのままファジーな世界Chanに埋め込むことができるのです。この事実は、シャープな世界からファジーな世界への引っ越しの不安を緩和するものでしょう。

述語の外延化

pがA上のシャープな述語のとき、S = {x∈A | p} という集合が、述語pの外延〈extension〉として決まります。外延とは、述語pが表す性質を持つモノの全体の広がりのことです。集合Sからみたとき、述語pは、Sを定める内包〈intension〉だとも言います。

シャープ(決定性/二値的/古典的)な世界では、内包と外延は(ある意味で)1:1に対応しています。

  • 内包(述語) p ←→ 外延(集合) S

述語pをシャープとは限らないファジー述語にした場合、この対応はどうなるでしょうか?

  • ファジー内包(述語) p ←→ ファジー外延(集合) ?

ファジーな外延にハッキリした定義を与えるのは難しいので、「ファジー集合」は単に「ファジー述語」の同義語として扱うのが普通です。

ファジー外延の定義は無理だとしても、ファジー内包(ファジー述語)と、決定性/二値的/古典的な集合との対応関係があったほうが便利でしょう。ファジー述語に対する外延として、典型的な二つのケースがあります。

  • {|p}a := {x∈A | p(x) ≠ 0}
  • {|p}d := {x∈A | p(x) = 1}

pがシャープ述語の場合は、{|p}a = {|p}d なので、単に {|p} = {x∈A | p(x)} のように書きます。

右肩に付いている 'a', 'd' はそれぞれ "angelic", "demonic" の頭文字です。非決定性プログラムの実行成功の基準に関わる用語です。ここでは、天使的悪魔的と訳しておきます。

天使的外延は、述語に対する最も優しい(大目に見る)解釈で集合を確定しています。悪魔的外延は、述語に対する最も厳しい(意地悪な)解釈で集合を確定しています。決定性/二値的/古典的な状況では、天使と悪魔の差はなくなります -- 情(優しい/厳しい)が入る余地がないからです。

天使的と悪魔的は、外延を確定するルールの両極端で、その中間はいくらでもあります。例えば、

  • {x∈A | p(x) > 1/2}

中間のルールは、“人間的”とでも呼べるでしょうが、別な言い方をすれば“恣意的”、“無根拠”となります。

前節「シャープネス」で説明したように、シャープな世界をファジーな世界に埋め込むのは自然にできます。が、ファジーな世界からシャープな世界を構成するルールはいくらでもあり、その選択は“恣意的”、“無根拠”とならざるを得ません。

そもそも、外延化をする必要があるのか? という疑問もありますが、ファジーな世界をシャープに見ることは難しそうではあります。

*1:2はBooleanなのでBとも書きますが、ここではワン・ツー・スリーとしました。

*2:シャープなチャンネル、つまり確率的雑音がない決定性のチャンネルを「確率変数」と呼びます。非確率的な関数を「確率変数」と呼ぶという、冗談のようなネーミング。確率変数の曖昧さに関する解説は「「確率変数」の正体は米田埋め込み」を参照。