識別関数とは何か?
📂機械学習識別関数とは何か?
定義
すべてのy∈Rnとθ∈R、そしてあるμ∈M(In)に対して
∫Inσ(yTx+θ)dμ(x)=0⟹μ=0
を満たす関数σ:R→Rを識別関数discriminatory functionと呼ぶ。
- In:=[0,1]nは、n次元の単位立方体であり、n個の閉区間[0,1]のデカルト積である。
- M(In)は、In:=[0,1]n上で定義される符号 有限 正則 ボレル測度の集合である。
- yTはyの転置行列であり、yTxはxとyの内積⟨x,y⟩と等しい。
定義についての説明
数式で識別関数を理解するには、対偶から始めるのが良い。
μ=0⟹∫Inσ(yTx+θ)dμ(x)=0
簡単に言うと、測度μが実際にすべての値を0に送るほど酷くなければ、σに何を入れてもルベーグ積分したときにInの部分空間の中で0でないと正しく測定される場所があるべきだということだ。測度論のほとんど至る所の概念を考えれば、単に関数の値が0でないだけでは不十分であることが理解できるだろう。
もっと簡単に言うと、σは、すべてのy∈Rn、θ∈Rに対して上記の性質を満たすことによって、「はい、いいえ」を区別することができる実際の関数の役割を果たす。“識別的"という言葉には多少否定的なニュアンスがあるが、科学技術分野では単に区別するという程度で理解すればよい。
識別関数は、人工ニューラルネットワークなどの分野を理論的に支える**普遍近似定理**に登場し、当然最近流行しているディープラーニングとも関係がある。式で見ると、x∈Inは入力データ、y∈Rnは重み、θ∈Rはバイアスと見ることができる。その場合、σは、他ならぬ活性化関数と見ることができるだろう。活性化関数のアイデア自体がしきい値の模倣であることを考えると、信号が伝わるか伝わらないかの「識別」は、正確に識別関数の概念と一致する。
定理
σが連続な識別関数である場合、
S:={G(x)=k=1∑Nαkσ(ykTx+θk):yk∈Rn∧αk,θk∈R∧N∈N}
はC(In)で一様に稠密である。別の言い方をすると、すべてのf∈C(In)とε>0に対して、次を満たすG∈Sが存在する。
∥G−f∥<ε
定理についての説明
上記の定理を簡単な言葉で説明すると、私たちが望む任意のfを適切な重みとバイアスを見つけて識別関数の有限な線形結合で近似できるということである。機械学習の文脈では、fは私たちが真に見つけたい関数、つまり、私たちが望む作業をする関数である。その関数は、写真を入力として受け取り、それが犬か猫かを判断したり、韓国語の文字列を受け取り英語に変換したり、もっと複雑で興味深い関数であるかもしれない。
問題は、識別関数の定義から明らかなように、実際に識別関数がどのような関数であるかを知ることが難しいということである。このポストで紹介された定義だけを見て説明を読まずにいると、あるいは読んだとしても測度論の知識がなければ、つかみどころのない話に見えるかもしれない。幸いなことに、よく知られている形のいくつかの関数は、識別関数であることが証明され、それによって人工ニューラルネットワークが機能することが数学的に保証される。
証明
ハーン・バナッハの定理の系2:XがC-ベクトル空間であり、Y⊂Sの両方がXの部分空間であるとする。もしs∈Sがd(s,Y)=δ>0と等しければ、次を満たすx∗∈X∗が存在する:
∥x∗∥≤1
y∗(s)=x∗(y)=y∗(s)=δ,s∈(S∖Y)y∗(y)=0,y∈Y
S=C(In)であることを示せばよい。S⊊C(In)と仮定すると、閉包Sが全体空間でないため、ハーン・バナッハの定理により、
L(C(In))=L(S)={0}
であるL=0有界線形汎関数L∈(C(In))∗が存在する。リースの表現定理により、Lは、あるμ∈M(In)とすべてのh∈C(In)に対して、
L(h)=∫Inh(x)dμ(x)
として表すことができる。特にその中で、h(x)=σ(yTx+θ)はすべてのy,θに対してSに属するので、Lの性質により、
L(h)=∫Inσ(yTx+θ)dμ(x)=0
である。前提ではσは識別的であるので、μ=0であるが、その場合、Lのリースの表現により、L=0でなければならず、0=Lと矛盾する。したがって、S=C(In)が成立しなければならない。
■