SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
CV勉強会
   「コンピュータビジョン最先端ガイド2」 読書会
  第3章 カーネル情報処理入門 ~非線形の魅惑~

           6. 構造化データに対するカーネル法

                      Twitter: @wk77




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 1
構造化データに対するカーネル法
• SVMやカーネルPCAは、入力データがベクトルデータ
• 構造化データに対するカーネル法では、
  文字列、木構造、グラフなどの構造化データを扱う
• 二つのベクトルの類似度が内積で表現できるように、
  構造化データ間の類似度を広義の内積で表現する
• この内積計算を定義するためにカーネル法を利用する
   -   自然言語処理、バイオインフォマティクスなどの分野で
       利用されている
   -   今後、より抽象化されたデータを扱うようになると
       予想されるCVの分野でも、重要性が増すと考えられる



CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 2
オブジェクトと、その構成要素からなる有限集合
• オブジェクト x の例として、次の有向グラフを考える
                                a           x


                        b               c


   -   x の構成要素 (x' と記述する) は、
       3 つのノード、2 種類の部分グラフ、x それ自身 となる
• x の構成要素からなる有限集合を S(x) と記述する
                            a       a               a   S(x)

         a    b     c

                            b       c           b       c


CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法              p. 3
畳み込みカーネル (convolution kernel) (1)
• オブジェクト x, y の「畳み込みカーネル」
  k(x, y) を、次式で定義する



   -   S(x), S(y) はオブジェクトの構成要素からなる有限集合
   -   x', y' は x, y の構成要素
• ks(x', y') は x', y' の類似度を表す関数
   -   ks(x', y') が半正定値ならば k(x, y) も半正定値
• つまり畳み込みカーネル k(x, y) の定義は
   -   x の全ての部分要素 x'∈S(x) と、
       y の全ての部分要素 y'∈S(y) との組合せを考え、
       全てについて類似度 ks(x', y')を計算し、総和をとったもの
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 4
畳み込みカーネル (convolution kernel) (2)
• 類似度の計算式 ks(x', y') を、次式で定義する



   -   この定義による k(x, y) は、二つのオブジェクト x, y を、
       構成要素とその組からなる部分集合 S(x), S(y) に分解し、
       両者間で共通する組の延べ数を数え上げることに相当する
   -   後述の「全部分文字列カーネル」とは別の物として考える
• 例)x: a→b→c          y: a→b→d
   -   S(x): a, b, c, a→b, b→c, a→b→c
   -   S(y): a, b, d, a→b, b→d, a→b→d
   -   共通する組: a, b, a→b
   -   畳み込みカーネル k(x, y) の値: 3

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 5
畳み込みカーネルによる評価における任意性
• 前述の k(x, y) で与えられる畳み込みカーネルには、
  部分集合 S(x), S(y) の作り方と、
  類似度 ks(x', y') の定義の仕方に、任意性がある
   -   様々な種類のオブジェクトに対して適用できるが、
       逆にこの二つを具体的に与えなければならない
   -   構成要素に分解すれば類似性が見えてくることがあり、
       それによって一見抽象的に見えるオブジェクト同士の、
       類似性を評価できる可能性があるという考え方




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 6
文字列カーネル
• 畳み込みカーネルは、実際に、
  文字列、木構造、グラフなどの
  様々な構造化データに適用されている
   -   木やグラフの形で情報が表現される自然文(NLP)
   -   遺伝子の塩基配列や、アミノ酸配列(Bioinformatics)
• 構造化データの代表例として、文字列を取り上げる
• 文字列カーネルには
  様々なバリエーションが提案されている
• ここでは、最も標準的かついろいろなタイプのものを
  包含した形になっている、全部分文字列カーネル
  (all string subsequence kernel) を取り上げる

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 7
全部分文字列カーネルの定義と例 (1)
• Σ : 文字(アルファベットなど)の集合
   -   A, B, ..., Z
• Σ* : Σ から生成される全ての有限長文字列の集合
   -   A, B, ..., Z, AA, AB, ..., AZ, BA, BB, ..., BZ, ..., AAA, ...
• u : Σ* の要素である文字列
• S, T : Σ から生成される長さ |S|, |T| の文字列
   -   例として S = ABC, T= ABAC を考える
• uS, uT : S, T の部分文字列
   -   uS ∈ {A,B,C,AB,AC,BC,ABC}
   -   uT ∈ {A,B,C,AA,AB,AC,BA,BC,ABA,AAC,ABC,BAC,ABAC}

• si, tj : 文字列 S の i 番目の文字、T の j 番目の文字
   -   s は小文字で i は太字でないことに注意。S, si, S[i], Si を区別する
   -   i 番目の位置にある文字と、その文字の値とを区別する。ここでは前者
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                      p. 8
全部分文字列カーネルの定義と例 (2)
• 定義の前に例を記述)S=ABC, T=ABAC として
   -   i = (1,3) なら S[i]=AC, T[i]=AA
   -   j = (2,3,4) なら S[j]は定義できず、T[j]=BAC
• i, j : 部分文字列の、元の文字列内でのインデクス値列
   -   何番目の文字なのかを並べた数列。定義から重複無しで昇順
   -   i = (i1, ..., i|u|) (1≦i1<…<ik<ik+1<…<i|u|≦|S|)
        •   ik と ik+1 との大小関係には、等号を含まないことに注意
   -   j = (j1, ..., j|u|) (1≦j1<…<jk<jk+1<…<j|u|≦|T|)
• S[i] : 文字列 S から、インデクス i の各要素が
  表す位置にある文字を抜き出して、順に並べたもの
• l(i) : si1 から si|u| までの文字列の長さ i|u| - i1 + 1
   -   i = (2,3,7,8) なら、l(i) は 8-2+1=7。
   -   部分文字列同士の一致について先頭文字と終端文字を見る関数とわかる
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法        p. 9
全部分文字列カーネルの定義と例 (3)
• 全部分文字列カーネル kSK は、
  減衰係数 λ (0<λ≦1) を用いて、次式で定義される



   -   u=S[i] を満たす u がなければ、λl(i) は 0 と定義する
   -   ∑u∈∑* : u∈us∩uT である u についての総和を表している
• S=ABC, T=ABAC → u∈{A,B,C,AB,AC,BC,ABC}
   -   例として u=AC についての値を計算する
       • S[i]=AC, T[j]=AC を満たす i, j は、i=(1,3), j=(1,4), (3,4)
       • ∑i λ =λ          =λ3, ∑j λl(j)=(λ(4-1+1)+λ(4-3+1))=λ4+λ2=λ2+λ4
             l(i) (3-1+1)


       •   u=AC についての ∑i∑j λl(i)・λl(j)=λ3(λ2+λ4)=λ5+λ7
   -   他の u (∈us∧uT) についても計算し、総和をとると kSK

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                         p. 10
全部分文字列カーネルの計算例
• S=ABC, T=ABAC → kSK(S,T)=4λ2+λ4+2λ5+2λ7




                                     i, j の表記について、
                                     () の代わりに {} の記号を
                                     使用していることに注意




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 11
全部分文字列カーネルのカーネルとしての性質
• ここで




  と定義すると、


• 全ての u∈∑* について φu(S) を求めて並べたものが
  S から作られる特徴ベクトル Φ(S) とみなせる
• 全部分文字列カーネルが、特徴ベクトルの内積の形
     kSK(S, T) = Φ(S)t Φ(T)
  となり、カーネル関数の性質を満たすことがわかる
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 12
全部分文字列カーネルの効率的な計算
• 全部分文字列カーネルは、動的計画法に似た
  漸化式を用いて、効率的な計算を行うことができる
   -   Si を S の先頭文字から i 番目の文字までの文字列、
       Tj を T の先頭文字から j 番目の文字までの文字列とする
   -   i と j を元の長さ |S|, |T| まで伸ばす帰納的定義を考える
• Km(Si, Tj) を新たに定義する
   -   Si と Tj の共通部分文字列のうち、終端文字が si と tj で、
       長さが m である全ての文字列 u についてのカーネル関数
        •   i, j を増分しつつ重複しないよう、末端が i, j となる i, j で計算
   -   S=ABC, T=ABAC, m=2, i=3, j=4 のときを考える
        •   s3=t4=C, 長さ m=2 の条件を満たす共通の u は {AC,BC}
        • u=AC→i=(1,3), j=(1,4),(3,4) u=BC→i=(2,3), j=(2,4)
        • K2(S3, T4) = λ3・(λ4+λ2) + λ2・λ3 = 2λ5+λ7 となる
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法        p. 13
Km(Si, Tj) の計算例 (S=ABC, T=ABAC)




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 14
Km(Si, Tj) の計算例 (S=AB, T=ABAB)




• (si の値) = (tj の値) のとき u が定義され、Km ≠ 0 となる
• ”末尾=si” の記述は、末尾文字のインデクスが i という意味
   -   i, j の計算は、末尾はインデクスの一致、それ以外は文字値の一致
   -   K2(S2,T4) の計算で j に{1,2}が含まれず、K2(S2,T2)と重複しない
   -   l(i), l(j) の計算において先頭文字と終端文字だけを見る利点?
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法     p. 15
全部分文字列カーネルの効率的な計算手順 (1)
• Km(Si, Tj) は、
  Km-1(Si', Tj') (1≦i'≦i-1, 1≦j'≦j-1) を用いて次式で表せる
  (1) si ≠ tj のとき
            Km(Si, Tj) = 0
   -   si と tj が等しくなければ共通の u が存在しない(前項)
  (2) si = tj のとき
            Km(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j') Km-1(Si', Tj')
   -   ある m, i'≦i-1, j'≦j-1 についての共通文字列の集合 u に、
       共通の終端文字を加えると m+1, i, j における u になる
        •   u(m=1, i≦2, j≦3)={A,B} → u(m=2, i=3, j=4)={AC,BC}
• m = 1 では、si ≠ tj のとき Km = 0, si = tj のとき Km = λ2

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                     p. 16
全部分文字列カーネルの効率的な計算手順 (2)
• 前項の Km の m に関する漸化式
       Km(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j') Km-1(Si', Tj')
  を効率的に計算するために、
   Km(Si, Tj) = λ2K'm-1(Si, Tj)
  となる K' を新たに導入する
   -   式(150)をそのまま式(151)に置き換えて展開する
   -   i 列 j 行 (横 i, 縦 j) 表記に注意。以下テキストとやや異なる解説を行う

• K'm を、同じ m についての Km の式で表す
       λ2K'm-1(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j') Km-1(Si', Tj')
       K'm-1(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km-1(Si', Tj')
  ∴ K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj')

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                      p. 17
全部分文字列カーネルの効率的な計算手順 (3)
• K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') を確認
   -   si = tj のとき Km=1 = λ2. 各マス左上が K, 下が K'




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                     p. 18
全部分文字列カーネルの効率的な計算手順 (4)
• K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj')
  の右辺の総和を、4つの領域の部分和に分解する
   -   2回足された両斜線部の総和の値を引いている




 K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (灰色部分)
            = ∑1≦i'≦i-1 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (右下がり斜線部)
            + ∑1≦i'≦i-2 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (左下がり斜線部)
            - ∑1≦i'≦i-2 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (両斜線部)
            + ∑i'=i-1 ∑j'=j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (斜線なしの灰色部分)
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                       p. 19
全部分文字列カーネルの効率的な計算手順 (5)
• K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') であるので、
  K'm(Si, Tj-1) = ∑1≦i'≦i-1 ∑1≦j'≦(j-1)-1 λ(i-i'+(j-1)-j'-2) Km(Si', Tj')
  K'm(Si-1, Tj) = ∑1≦i'≦(i-1)-1 ∑1≦j'≦j-1 λ((i-1)-i'+j-j'-2) Km(Si', Tj')
  K'm(Si-1, Tj-1) = ∑1≦i'≦(i-1)-1 ∑1≦j'≦(j-1)-1 λ((i-1)-i'+(j-1)-j'-2) Km(Si', Tj')
• また、∑i'=i-1 ∑j'=j-1 λ(i-i'+j-j'-2) Km(Si', Tj') = Km(Si-1, Tj-1)
• したがって、K'm(Si, Tj)
   = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (灰色部分)
   = ∑1≦i'≦i-1 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (右下がり斜線部)
      + ∑1≦i'≦i-2 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (左下がり斜線部)
      - ∑1≦i'≦i-2 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (両斜線部)
      + ∑i'=i-1 ∑j'=j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (斜線なしの灰色部分)
   = λK'm(Si, Tj-1) + λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1)
• si = tj のとき K1 = λ2. また Km = λ2K'm-1 なので K'0(Si, Tj) = 1
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                                 p. 20
全部分文字列カーネルの効率的な計算手順 (6)
• K'm(Si, Tj) =
   λK'm(Si, Tj-1) + λK'm(Si-1, Tj)
   - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1)
  のまま計算するとデメリットが多い
   -   再帰呼出しで計算する場合、メモ化(一度計算した K'm(Si, Tj) の値を
       KDash[m][i][j] などに記録しておくこと)で再計算を避けるのは前提
   -   K'm(Si, Tj-1) と K'm(Si-1, Tj) の式には +λK'm(Si-1, Tj-1) が含まれ、
       K'm(Si, Tj) の式には -λ2K'm(Si-1, Tj-1) が含まれているので、
       K'm(Si-1, Tj-1) への参照が最大 3 回重なるという無駄がある
   -   帰納的定義で、小さな i, j から順に繰返し計算して表を埋めるとして、
       上下左右のマス間に依存があるので、並列化がしづらい形と言える?
• 新たに K'' を導入して式を展開する
   -   必要な記憶領域は増えるが、行と列が分離された形となり並列化が容易

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法              p. 21
全部分文字列カーネルの効率的な計算手順 (7)
• K''m を定義して、K'm(Si, Tj) の一部を置き換える
     K'm(Si, Tj) = λK'm(Si, Tj-1) + λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1)
     K''m(Si, Tj-1) :=               λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1)

    ∴ K'm(Si, Tj) = λK'm(Si, Tj-1) + K''m(Si, Tj-1)
    この K'm(Si, Tj) について i ⇐ i-1, j ⇐ j+1 とすると
     K'm(Si-1, Tj+1) = λK'm(Si-1, Tj) + K''m(Si-1, Tj)
•   K''m の定義
     K''m(Si, Tj-1) = λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1)
    において、j ⇐ j+1 とすると
     K''m(Si, Tj) = λK'm(Si-1, Tj+1) - λ2K'm(Si-1, Tj) + Km(Si-1, Tj)
•   K'm(Si-1, Tj+1) = λK'm(Si-1, Tj) + K''m(Si-1, Tj) を λ 倍して K''m の式に代入し、
     K''m(Si, Tj) = λ2K'm(Si-1, Tj) + λK''m(Si-1, Tj) - λ2K'm(Si-1, Tj) + Km(Si-1, Tj)
                 = λK''m(Si-1, Tj) + Km(Si-1, Tj)

    ∴ K''m(Si, Tj) = λK''m(Si-1, Tj) + Km(Si-1, Tj)
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法                                        p. 22
全部分文字列カーネルの効率的な計算手順 (8)
• 以上の結果をまとめると、下記の通りとなる
   -   再帰的定義。再帰呼び出しによる計算はこれでできる




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 23
全部分文字列カーネルの効率的な計算手順 (9)
• S=ABC, T=ABAC についての K, K', K'' の計算結果
   -   帰納的定義による計算で確認する
   -   m = 1 の K について si = tj のマスを λ2 で埋める
   -   K''m(Si+1, Tj) = λK''m(Si, Tj) + Km(Si, Tj)
   -   K'm(Si, Tj+1) = λK'm(Si, Tj) + K''m(Si, Tj)
   -   Km+1(Si, Tj) = λ2K'm(Si, Tj) (si = tj のマスを計算)




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法      p. 24
全部分文字列カーネルの効率的な計算手順 (10)
• 各マスの左上 Km(Si, Tj) の総和をとって kSK(S, T) を求める




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 25
全部分文字列カーネルを正規化する
• 文字列 S, T の長さに依存して、
  kSK(S, T) のとる値も大きくなる傾向がある
• したがって一般に、S と T の類似度 kSim(S, T) を、
  S, T の長さで正規化した次式で定義する



• kSim(S, T) は 0 から 1 の間の値をとり、
  S=T のときに限り kSim(S, T)=1 となる




CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 26
階層的有向非循環グラフ(HDAG)カーネル
• 自然文の解析や処理を行うために、様々な解析処理により、
  木構造やグラフ構造などの構造化データに変換する
   -   形態素解析、固有表現解析、意味情報付加、文節解析、係受け解析、…
• 自然文を、これらの解析結果の統合表現として考える
   -   例)ラベルつきの、階層化された有向非循環グラフ(HDAG)




   -   文の構造に加え、単語の種類・意味などの付加情報によるラベルづけ
• HDAG の類似性を評価する HDAG カーネルという方法がある
   -   文構造が同じでも、ラベルが異なれば類似度が低いといった評価の表現
• 基本的な考え方や計算方法は、全部分文字列カーネルと同じ
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 27
畳み込みカーネルの一般的定義 (1)
• 畳み込みカーネルは、より抽象的な形で定義できる
   -   m は正の整数、χ1, ..., χm, χ はそれぞれ空でない有限集合
   -   χ1, ..., χm, χ の直積


       の部分集合を、「関係」(relation) と呼ぶ
   -   「x1∈χ1, ..., xm∈χm が x∈χ の部品である」
       という関係を、直積 χ1 × … × χm × χ 上の関係 R で表す
   -   x1, ..., xm が x の部品であるときに限り、
       R(x1, ..., xm, x) は真であるとする
   -   x = x1, ..., xm として、R(x, x) が真となる x を
       R-1(x)(={x: R(x, x)}) と表す


CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 28
畳み込みカーネルの一般的定義 (2)
• このとき畳み込みカーネル k(x, y) は、
  二つのオブジェクト x, y(∈χ) 間の類似度を表し、
  次式で定義される



   -   ki(xi, yi) は xi, yi の類似度を表す関数
   -   x = x1,...,xm は x の部品、y = y1,...,ym は y の部品
   -   全ての部品の組み合わせについて、
       i 番目の要素間の ki (xi, yi) の積を求め、総和をとっている
• この定義は集合 χ1, ..., χm, χ の選び方、
  関数 R(x, x) が真となる条件の決め方に任意性がある

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法    p. 29
畳み込みカーネルの一般的定義 (3)
• 畳み込みカーネルの一般的定義、式 (166)



  において、
   -   m=1、χ をオブジェクトの集合、χ1 は χ に属する
       オブジェクトの構成要素の、全ての部分集合からなる集合
   -   R(x1, x) は x1(∈χ1) が x(∈χ) の構成要素であるときに真
  とすると、式 (129) の畳み込みカーネルとなる



• 式 (166) の畳み込みカーネルの一般的定義は、
  対象のオブジェクトを、構造化データに限定しない
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 30
§ 3.7 - § 3.8
• § 3.7 まとめと数学的補足
   -   '95 年に現在の形の SVM が完成. その後10年で膨大な成果
         • 実データを用いて有効性と強力さが実証された
         • カーネル法の、数学的、理論的な背景が明らかになった
   -   カーネル関数、特にガウスカーネルの式との類似
         • 1960 年代、E.Parzen が考案した Parzen window 法
         • 旧ソ連の Aizerman が考案したポテンシャル関数法
   -   統計的機械学習技術との関連が明らかになりつつある
         • ガウス過程、再生核ヒルベルト空間、正則化など
   -   カーネルの系統だった選択と設計は未解決な課題
         • 無限に用意された特徴から必要なものを選ぶフィルタ

• § 3.8 より深い理解のために
   -   参考文献多数につき、詳細はテキスト参照のこと
CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法   p. 31
テキストの誤植と思われる箇所など
• p. 122: 式 (137)、式 (144) の「u=S[j]」→「u=T[j]」
   -  「(137)の |u| に関する総和」→「(137) の u∈∑* に関する総和」
• p. 123:「λ(i-i')+(j-j') 倍して」→「λ(i-i'+j-j'-2) 倍して」
• p. 124: 図 3.17(c) の m=1, i=3, j=1 の K''m の λ の乗数は 3
   -   「Km(Si-1, Tj-1) は、灰色部分」→「K'm(Si-1, Tj-1) は、灰色部分」
       (ダッシュが抜けている)
   -   右下がり斜線部と左下がり斜線部の記述と、項との対応関係が逆
   -   右下がり斜線部は j'≦j-2, 左下がり斜線部は i'≦i-2
   -   「Km(Si', Tj') の総和」→「λ(i-i'+j-j'-2) Km(Si', Tj') の総和」
   -   式 (152) は「同じものを足して引く」というよりも、
       同じ m, i, j の K'm について、λ 倍して足すのと -λ2 して引くことで、
      重複して参照される無駄があるというほうが正確と思われる
• p. 125: 式 (161) とその2行上の Km(S, T) は kSK(S, T) が正しい
• p. 126: DAG の和訳は非循環有向グラフより有向非循環グラフが一般的?
• p. 127: B. Bishop → C. M. Bishop

CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法             p. 32

Mais conteúdo relacionado

Mais procurados

研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節
Koji Matsuda
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
irrrrr
 

Mais procurados (20)

SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来
 
Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法
 
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
 
第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)
 
200604material ozaki
200604material ozaki200604material ozaki
200604material ozaki
 
Learning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data ManifoldLearning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data Manifold
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
 
研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節
 
K shapes zemiyomi
K shapes zemiyomiK shapes zemiyomi
K shapes zemiyomi
 
Seminar on Quantum Computation & Quantum Information part19
Seminar on Quantum Computation & Quantum Information part19Seminar on Quantum Computation & Quantum Information part19
Seminar on Quantum Computation & Quantum Information part19
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
 
CMSI計算科学技術特論B(8) オーダーN法1
 CMSI計算科学技術特論B(8) オーダーN法1 CMSI計算科学技術特論B(8) オーダーN法1
CMSI計算科学技術特論B(8) オーダーN法1
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)
 
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape AnalysisFeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
 
CMSI計算科学技術特論A (2015) 第12回 古典分子動力学法の高速化
CMSI計算科学技術特論A (2015) 第12回 古典分子動力学法の高速化CMSI計算科学技術特論A (2015) 第12回 古典分子動力学法の高速化
CMSI計算科学技術特論A (2015) 第12回 古典分子動力学法の高速化
 
El text.tokuron a(2019).yamamoto190620
El text.tokuron a(2019).yamamoto190620El text.tokuron a(2019).yamamoto190620
El text.tokuron a(2019).yamamoto190620
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
画像からの倍率色収差の自動推定補正
画像からの倍率色収差の自動推定補正画像からの倍率色収差の自動推定補正
画像からの倍率色収差の自動推定補正
 

Semelhante a Cvim tutorial2 03_06_wk77_110220-0546

0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
MasanoriSuganuma
 
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
Tomoharu ASAMI
 
Ibisml2011 06-20
Ibisml2011 06-20Ibisml2011 06-20
Ibisml2011 06-20
Yasuo Tabei
 

Semelhante a Cvim tutorial2 03_06_wk77_110220-0546 (20)

文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
 
[FE]配列へのデータ格納について.pdf
[FE]配列へのデータ格納について.pdf[FE]配列へのデータ格納について.pdf
[FE]配列へのデータ格納について.pdf
 
第9回スキル養成講座講義資料
第9回スキル養成講座講義資料第9回スキル養成講座講義資料
第9回スキル養成講座講義資料
 
主成分分析
主成分分析主成分分析
主成分分析
 
Simulation_Report1
Simulation_Report1Simulation_Report1
Simulation_Report1
 
はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半
 
RMQ クエリ処理
RMQ クエリ処理RMQ クエリ処理
RMQ クエリ処理
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
 
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
 
文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition
 
210603 yamamoto
210603 yamamoto210603 yamamoto
210603 yamamoto
 
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
クラシックな機械学習の入門  6. 最適化と学習アルゴリズムクラシックな機械学習の入門  6. 最適化と学習アルゴリズム
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
 
Sec15 dynamic programming
Sec15 dynamic programmingSec15 dynamic programming
Sec15 dynamic programming
 
20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部
 
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
 
【やってみた】リーマン多様体へのグラフ描画アルゴリズムの実装【実装してみた】
【やってみた】リーマン多様体へのグラフ描画アルゴリズムの実装【実装してみた】【やってみた】リーマン多様体へのグラフ描画アルゴリズムの実装【実装してみた】
【やってみた】リーマン多様体へのグラフ描画アルゴリズムの実装【実装してみた】
 
Ibisml2011 06-20
Ibisml2011 06-20Ibisml2011 06-20
Ibisml2011 06-20
 
Casual learning machine learning with_excel_no5
Casual learning machine learning with_excel_no5Casual learning machine learning with_excel_no5
Casual learning machine learning with_excel_no5
 

Último

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Cvim tutorial2 03_06_wk77_110220-0546

  • 1. CV勉強会 「コンピュータビジョン最先端ガイド2」 読書会 第3章 カーネル情報処理入門 ~非線形の魅惑~ 6. 構造化データに対するカーネル法 Twitter: @wk77 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 1
  • 2. 構造化データに対するカーネル法 • SVMやカーネルPCAは、入力データがベクトルデータ • 構造化データに対するカーネル法では、 文字列、木構造、グラフなどの構造化データを扱う • 二つのベクトルの類似度が内積で表現できるように、 構造化データ間の類似度を広義の内積で表現する • この内積計算を定義するためにカーネル法を利用する - 自然言語処理、バイオインフォマティクスなどの分野で 利用されている - 今後、より抽象化されたデータを扱うようになると 予想されるCVの分野でも、重要性が増すと考えられる CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 2
  • 3. オブジェクトと、その構成要素からなる有限集合 • オブジェクト x の例として、次の有向グラフを考える a x b c - x の構成要素 (x' と記述する) は、 3 つのノード、2 種類の部分グラフ、x それ自身 となる • x の構成要素からなる有限集合を S(x) と記述する a a a S(x) a b c b c b c CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 3
  • 4. 畳み込みカーネル (convolution kernel) (1) • オブジェクト x, y の「畳み込みカーネル」 k(x, y) を、次式で定義する - S(x), S(y) はオブジェクトの構成要素からなる有限集合 - x', y' は x, y の構成要素 • ks(x', y') は x', y' の類似度を表す関数 - ks(x', y') が半正定値ならば k(x, y) も半正定値 • つまり畳み込みカーネル k(x, y) の定義は - x の全ての部分要素 x'∈S(x) と、 y の全ての部分要素 y'∈S(y) との組合せを考え、 全てについて類似度 ks(x', y')を計算し、総和をとったもの CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 4
  • 5. 畳み込みカーネル (convolution kernel) (2) • 類似度の計算式 ks(x', y') を、次式で定義する - この定義による k(x, y) は、二つのオブジェクト x, y を、 構成要素とその組からなる部分集合 S(x), S(y) に分解し、 両者間で共通する組の延べ数を数え上げることに相当する - 後述の「全部分文字列カーネル」とは別の物として考える • 例)x: a→b→c y: a→b→d - S(x): a, b, c, a→b, b→c, a→b→c - S(y): a, b, d, a→b, b→d, a→b→d - 共通する組: a, b, a→b - 畳み込みカーネル k(x, y) の値: 3 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 5
  • 6. 畳み込みカーネルによる評価における任意性 • 前述の k(x, y) で与えられる畳み込みカーネルには、 部分集合 S(x), S(y) の作り方と、 類似度 ks(x', y') の定義の仕方に、任意性がある - 様々な種類のオブジェクトに対して適用できるが、 逆にこの二つを具体的に与えなければならない - 構成要素に分解すれば類似性が見えてくることがあり、 それによって一見抽象的に見えるオブジェクト同士の、 類似性を評価できる可能性があるという考え方 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 6
  • 7. 文字列カーネル • 畳み込みカーネルは、実際に、 文字列、木構造、グラフなどの 様々な構造化データに適用されている - 木やグラフの形で情報が表現される自然文(NLP) - 遺伝子の塩基配列や、アミノ酸配列(Bioinformatics) • 構造化データの代表例として、文字列を取り上げる • 文字列カーネルには 様々なバリエーションが提案されている • ここでは、最も標準的かついろいろなタイプのものを 包含した形になっている、全部分文字列カーネル (all string subsequence kernel) を取り上げる CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 7
  • 8. 全部分文字列カーネルの定義と例 (1) • Σ : 文字(アルファベットなど)の集合 - A, B, ..., Z • Σ* : Σ から生成される全ての有限長文字列の集合 - A, B, ..., Z, AA, AB, ..., AZ, BA, BB, ..., BZ, ..., AAA, ... • u : Σ* の要素である文字列 • S, T : Σ から生成される長さ |S|, |T| の文字列 - 例として S = ABC, T= ABAC を考える • uS, uT : S, T の部分文字列 - uS ∈ {A,B,C,AB,AC,BC,ABC} - uT ∈ {A,B,C,AA,AB,AC,BA,BC,ABA,AAC,ABC,BAC,ABAC} • si, tj : 文字列 S の i 番目の文字、T の j 番目の文字 - s は小文字で i は太字でないことに注意。S, si, S[i], Si を区別する - i 番目の位置にある文字と、その文字の値とを区別する。ここでは前者 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 8
  • 9. 全部分文字列カーネルの定義と例 (2) • 定義の前に例を記述)S=ABC, T=ABAC として - i = (1,3) なら S[i]=AC, T[i]=AA - j = (2,3,4) なら S[j]は定義できず、T[j]=BAC • i, j : 部分文字列の、元の文字列内でのインデクス値列 - 何番目の文字なのかを並べた数列。定義から重複無しで昇順 - i = (i1, ..., i|u|) (1≦i1<…<ik<ik+1<…<i|u|≦|S|) • ik と ik+1 との大小関係には、等号を含まないことに注意 - j = (j1, ..., j|u|) (1≦j1<…<jk<jk+1<…<j|u|≦|T|) • S[i] : 文字列 S から、インデクス i の各要素が 表す位置にある文字を抜き出して、順に並べたもの • l(i) : si1 から si|u| までの文字列の長さ i|u| - i1 + 1 - i = (2,3,7,8) なら、l(i) は 8-2+1=7。 - 部分文字列同士の一致について先頭文字と終端文字を見る関数とわかる CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 9
  • 10. 全部分文字列カーネルの定義と例 (3) • 全部分文字列カーネル kSK は、 減衰係数 λ (0<λ≦1) を用いて、次式で定義される - u=S[i] を満たす u がなければ、λl(i) は 0 と定義する - ∑u∈∑* : u∈us∩uT である u についての総和を表している • S=ABC, T=ABAC → u∈{A,B,C,AB,AC,BC,ABC} - 例として u=AC についての値を計算する • S[i]=AC, T[j]=AC を満たす i, j は、i=(1,3), j=(1,4), (3,4) • ∑i λ =λ =λ3, ∑j λl(j)=(λ(4-1+1)+λ(4-3+1))=λ4+λ2=λ2+λ4 l(i) (3-1+1) • u=AC についての ∑i∑j λl(i)・λl(j)=λ3(λ2+λ4)=λ5+λ7 - 他の u (∈us∧uT) についても計算し、総和をとると kSK CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 10
  • 11. 全部分文字列カーネルの計算例 • S=ABC, T=ABAC → kSK(S,T)=4λ2+λ4+2λ5+2λ7 i, j の表記について、 () の代わりに {} の記号を 使用していることに注意 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 11
  • 12. 全部分文字列カーネルのカーネルとしての性質 • ここで と定義すると、 • 全ての u∈∑* について φu(S) を求めて並べたものが S から作られる特徴ベクトル Φ(S) とみなせる • 全部分文字列カーネルが、特徴ベクトルの内積の形 kSK(S, T) = Φ(S)t Φ(T) となり、カーネル関数の性質を満たすことがわかる CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 12
  • 13. 全部分文字列カーネルの効率的な計算 • 全部分文字列カーネルは、動的計画法に似た 漸化式を用いて、効率的な計算を行うことができる - Si を S の先頭文字から i 番目の文字までの文字列、 Tj を T の先頭文字から j 番目の文字までの文字列とする - i と j を元の長さ |S|, |T| まで伸ばす帰納的定義を考える • Km(Si, Tj) を新たに定義する - Si と Tj の共通部分文字列のうち、終端文字が si と tj で、 長さが m である全ての文字列 u についてのカーネル関数 • i, j を増分しつつ重複しないよう、末端が i, j となる i, j で計算 - S=ABC, T=ABAC, m=2, i=3, j=4 のときを考える • s3=t4=C, 長さ m=2 の条件を満たす共通の u は {AC,BC} • u=AC→i=(1,3), j=(1,4),(3,4) u=BC→i=(2,3), j=(2,4) • K2(S3, T4) = λ3・(λ4+λ2) + λ2・λ3 = 2λ5+λ7 となる CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 13
  • 14. Km(Si, Tj) の計算例 (S=ABC, T=ABAC) CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 14
  • 15. Km(Si, Tj) の計算例 (S=AB, T=ABAB) • (si の値) = (tj の値) のとき u が定義され、Km ≠ 0 となる • ”末尾=si” の記述は、末尾文字のインデクスが i という意味 - i, j の計算は、末尾はインデクスの一致、それ以外は文字値の一致 - K2(S2,T4) の計算で j に{1,2}が含まれず、K2(S2,T2)と重複しない - l(i), l(j) の計算において先頭文字と終端文字だけを見る利点? CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 15
  • 16. 全部分文字列カーネルの効率的な計算手順 (1) • Km(Si, Tj) は、 Km-1(Si', Tj') (1≦i'≦i-1, 1≦j'≦j-1) を用いて次式で表せる (1) si ≠ tj のとき Km(Si, Tj) = 0 - si と tj が等しくなければ共通の u が存在しない(前項) (2) si = tj のとき Km(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j') Km-1(Si', Tj') - ある m, i'≦i-1, j'≦j-1 についての共通文字列の集合 u に、 共通の終端文字を加えると m+1, i, j における u になる • u(m=1, i≦2, j≦3)={A,B} → u(m=2, i=3, j=4)={AC,BC} • m = 1 では、si ≠ tj のとき Km = 0, si = tj のとき Km = λ2 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 16
  • 17. 全部分文字列カーネルの効率的な計算手順 (2) • 前項の Km の m に関する漸化式 Km(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j') Km-1(Si', Tj') を効率的に計算するために、 Km(Si, Tj) = λ2K'm-1(Si, Tj) となる K' を新たに導入する - 式(150)をそのまま式(151)に置き換えて展開する - i 列 j 行 (横 i, 縦 j) 表記に注意。以下テキストとやや異なる解説を行う • K'm を、同じ m についての Km の式で表す λ2K'm-1(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j') Km-1(Si', Tj') K'm-1(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km-1(Si', Tj') ∴ K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 17
  • 18. 全部分文字列カーネルの効率的な計算手順 (3) • K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') を確認 - si = tj のとき Km=1 = λ2. 各マス左上が K, 下が K' CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 18
  • 19. 全部分文字列カーネルの効率的な計算手順 (4) • K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') の右辺の総和を、4つの領域の部分和に分解する - 2回足された両斜線部の総和の値を引いている K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (灰色部分) = ∑1≦i'≦i-1 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (右下がり斜線部) + ∑1≦i'≦i-2 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (左下がり斜線部) - ∑1≦i'≦i-2 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (両斜線部) + ∑i'=i-1 ∑j'=j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (斜線なしの灰色部分) CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 19
  • 20. 全部分文字列カーネルの効率的な計算手順 (5) • K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') であるので、 K'm(Si, Tj-1) = ∑1≦i'≦i-1 ∑1≦j'≦(j-1)-1 λ(i-i'+(j-1)-j'-2) Km(Si', Tj') K'm(Si-1, Tj) = ∑1≦i'≦(i-1)-1 ∑1≦j'≦j-1 λ((i-1)-i'+j-j'-2) Km(Si', Tj') K'm(Si-1, Tj-1) = ∑1≦i'≦(i-1)-1 ∑1≦j'≦(j-1)-1 λ((i-1)-i'+(j-1)-j'-2) Km(Si', Tj') • また、∑i'=i-1 ∑j'=j-1 λ(i-i'+j-j'-2) Km(Si', Tj') = Km(Si-1, Tj-1) • したがって、K'm(Si, Tj) = ∑1≦i'≦i-1 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (灰色部分) = ∑1≦i'≦i-1 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (右下がり斜線部) + ∑1≦i'≦i-2 ∑1≦j'≦j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (左下がり斜線部) - ∑1≦i'≦i-2 ∑1≦j'≦j-2 λ(i-i'+j-j'-2) Km(Si', Tj') (両斜線部) + ∑i'=i-1 ∑j'=j-1 λ(i-i'+j-j'-2) Km(Si', Tj') (斜線なしの灰色部分) = λK'm(Si, Tj-1) + λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1) • si = tj のとき K1 = λ2. また Km = λ2K'm-1 なので K'0(Si, Tj) = 1 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 20
  • 21. 全部分文字列カーネルの効率的な計算手順 (6) • K'm(Si, Tj) = λK'm(Si, Tj-1) + λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1) のまま計算するとデメリットが多い - 再帰呼出しで計算する場合、メモ化(一度計算した K'm(Si, Tj) の値を KDash[m][i][j] などに記録しておくこと)で再計算を避けるのは前提 - K'm(Si, Tj-1) と K'm(Si-1, Tj) の式には +λK'm(Si-1, Tj-1) が含まれ、 K'm(Si, Tj) の式には -λ2K'm(Si-1, Tj-1) が含まれているので、 K'm(Si-1, Tj-1) への参照が最大 3 回重なるという無駄がある - 帰納的定義で、小さな i, j から順に繰返し計算して表を埋めるとして、 上下左右のマス間に依存があるので、並列化がしづらい形と言える? • 新たに K'' を導入して式を展開する - 必要な記憶領域は増えるが、行と列が分離された形となり並列化が容易 CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 21
  • 22. 全部分文字列カーネルの効率的な計算手順 (7) • K''m を定義して、K'm(Si, Tj) の一部を置き換える K'm(Si, Tj) = λK'm(Si, Tj-1) + λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1) K''m(Si, Tj-1) := λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1) ∴ K'm(Si, Tj) = λK'm(Si, Tj-1) + K''m(Si, Tj-1) この K'm(Si, Tj) について i ⇐ i-1, j ⇐ j+1 とすると K'm(Si-1, Tj+1) = λK'm(Si-1, Tj) + K''m(Si-1, Tj) • K''m の定義 K''m(Si, Tj-1) = λK'm(Si-1, Tj) - λ2K'm(Si-1, Tj-1) + Km(Si-1, Tj-1) において、j ⇐ j+1 とすると K''m(Si, Tj) = λK'm(Si-1, Tj+1) - λ2K'm(Si-1, Tj) + Km(Si-1, Tj) • K'm(Si-1, Tj+1) = λK'm(Si-1, Tj) + K''m(Si-1, Tj) を λ 倍して K''m の式に代入し、 K''m(Si, Tj) = λ2K'm(Si-1, Tj) + λK''m(Si-1, Tj) - λ2K'm(Si-1, Tj) + Km(Si-1, Tj) = λK''m(Si-1, Tj) + Km(Si-1, Tj) ∴ K''m(Si, Tj) = λK''m(Si-1, Tj) + Km(Si-1, Tj) CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 22
  • 23. 全部分文字列カーネルの効率的な計算手順 (8) • 以上の結果をまとめると、下記の通りとなる - 再帰的定義。再帰呼び出しによる計算はこれでできる CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 23
  • 24. 全部分文字列カーネルの効率的な計算手順 (9) • S=ABC, T=ABAC についての K, K', K'' の計算結果 - 帰納的定義による計算で確認する - m = 1 の K について si = tj のマスを λ2 で埋める - K''m(Si+1, Tj) = λK''m(Si, Tj) + Km(Si, Tj) - K'm(Si, Tj+1) = λK'm(Si, Tj) + K''m(Si, Tj) - Km+1(Si, Tj) = λ2K'm(Si, Tj) (si = tj のマスを計算) CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 24
  • 25. 全部分文字列カーネルの効率的な計算手順 (10) • 各マスの左上 Km(Si, Tj) の総和をとって kSK(S, T) を求める CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 25
  • 26. 全部分文字列カーネルを正規化する • 文字列 S, T の長さに依存して、 kSK(S, T) のとる値も大きくなる傾向がある • したがって一般に、S と T の類似度 kSim(S, T) を、 S, T の長さで正規化した次式で定義する • kSim(S, T) は 0 から 1 の間の値をとり、 S=T のときに限り kSim(S, T)=1 となる CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 26
  • 27. 階層的有向非循環グラフ(HDAG)カーネル • 自然文の解析や処理を行うために、様々な解析処理により、 木構造やグラフ構造などの構造化データに変換する - 形態素解析、固有表現解析、意味情報付加、文節解析、係受け解析、… • 自然文を、これらの解析結果の統合表現として考える - 例)ラベルつきの、階層化された有向非循環グラフ(HDAG) - 文の構造に加え、単語の種類・意味などの付加情報によるラベルづけ • HDAG の類似性を評価する HDAG カーネルという方法がある - 文構造が同じでも、ラベルが異なれば類似度が低いといった評価の表現 • 基本的な考え方や計算方法は、全部分文字列カーネルと同じ CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 27
  • 28. 畳み込みカーネルの一般的定義 (1) • 畳み込みカーネルは、より抽象的な形で定義できる - m は正の整数、χ1, ..., χm, χ はそれぞれ空でない有限集合 - χ1, ..., χm, χ の直積 の部分集合を、「関係」(relation) と呼ぶ - 「x1∈χ1, ..., xm∈χm が x∈χ の部品である」 という関係を、直積 χ1 × … × χm × χ 上の関係 R で表す - x1, ..., xm が x の部品であるときに限り、 R(x1, ..., xm, x) は真であるとする - x = x1, ..., xm として、R(x, x) が真となる x を R-1(x)(={x: R(x, x)}) と表す CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 28
  • 29. 畳み込みカーネルの一般的定義 (2) • このとき畳み込みカーネル k(x, y) は、 二つのオブジェクト x, y(∈χ) 間の類似度を表し、 次式で定義される - ki(xi, yi) は xi, yi の類似度を表す関数 - x = x1,...,xm は x の部品、y = y1,...,ym は y の部品 - 全ての部品の組み合わせについて、 i 番目の要素間の ki (xi, yi) の積を求め、総和をとっている • この定義は集合 χ1, ..., χm, χ の選び方、 関数 R(x, x) が真となる条件の決め方に任意性がある CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 29
  • 30. 畳み込みカーネルの一般的定義 (3) • 畳み込みカーネルの一般的定義、式 (166) において、 - m=1、χ をオブジェクトの集合、χ1 は χ に属する オブジェクトの構成要素の、全ての部分集合からなる集合 - R(x1, x) は x1(∈χ1) が x(∈χ) の構成要素であるときに真 とすると、式 (129) の畳み込みカーネルとなる • 式 (166) の畳み込みカーネルの一般的定義は、 対象のオブジェクトを、構造化データに限定しない CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 30
  • 31. § 3.7 - § 3.8 • § 3.7 まとめと数学的補足 - '95 年に現在の形の SVM が完成. その後10年で膨大な成果 • 実データを用いて有効性と強力さが実証された • カーネル法の、数学的、理論的な背景が明らかになった - カーネル関数、特にガウスカーネルの式との類似 • 1960 年代、E.Parzen が考案した Parzen window 法 • 旧ソ連の Aizerman が考案したポテンシャル関数法 - 統計的機械学習技術との関連が明らかになりつつある • ガウス過程、再生核ヒルベルト空間、正則化など - カーネルの系統だった選択と設計は未解決な課題 • 無限に用意された特徴から必要なものを選ぶフィルタ • § 3.8 より深い理解のために - 参考文献多数につき、詳細はテキスト参照のこと CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 31
  • 32. テキストの誤植と思われる箇所など • p. 122: 式 (137)、式 (144) の「u=S[j]」→「u=T[j]」 - 「(137)の |u| に関する総和」→「(137) の u∈∑* に関する総和」 • p. 123:「λ(i-i')+(j-j') 倍して」→「λ(i-i'+j-j'-2) 倍して」 • p. 124: 図 3.17(c) の m=1, i=3, j=1 の K''m の λ の乗数は 3 - 「Km(Si-1, Tj-1) は、灰色部分」→「K'm(Si-1, Tj-1) は、灰色部分」 (ダッシュが抜けている) - 右下がり斜線部と左下がり斜線部の記述と、項との対応関係が逆 - 右下がり斜線部は j'≦j-2, 左下がり斜線部は i'≦i-2 - 「Km(Si', Tj') の総和」→「λ(i-i'+j-j'-2) Km(Si', Tj') の総和」 - 式 (152) は「同じものを足して引く」というよりも、 同じ m, i, j の K'm について、λ 倍して足すのと -λ2 して引くことで、 重複して参照される無駄があるというほうが正確と思われる • p. 125: 式 (161) とその2行上の Km(S, T) は kSK(S, T) が正しい • p. 126: DAG の和訳は非循環有向グラフより有向非循環グラフが一般的? • p. 127: B. Bishop → C. M. Bishop CV勉強会「コンピュータビジョン最先端ガイド2」読書会 第3章6節 構造化データに対するカーネル法 p. 32