2016-09-18 (Sun.)
パターン解析 はデータからパターンを自動的に獲得することを目指す. これはデータを生成するブラックボックスに関する振る舞いを自動的に学習することである.
パターン と呼ぶものを具体的に定義する.
パターン解析アルゴリズム とは、有限個のデータから general statistical pattern \(f\) を発見する (或いはそのような \(f\) が無いことを言う) アルゴリズムのこと.
アルゴリズムには次のような性質が求められるだろう:
統計的安定性についてはいわゆる汎化性能 (the quality of the generalization) と関連が大きい. というかたぶんニュアンスは違うけど同じ現象のことを言っている. 統計的安定性は生成モデルの文脈で言っていて、 汎化性能は予測モデルの予測性能の文脈で言っているだけ. どちらも、似たデータからは似た予測がなされるべき、と言ってるだけ.
データの偏りに引き摺られ、成立する確率が小さなパターンを発見してしまうことがありえる. このことを仮説検証の概念でテストする必要がある. 即ち、十分に小さな確率 \(p\) を以って、誤る確率が \(p\)
データが少く、またそのデータの分布に関する仮定が少なすぎる場合、 そのデータ上でのみ良く成り立ち (misfit) 新しいデータに関してはほぼ成り立たないようなパターンを発見することがあり得る. これを 過学習 という. データが生成される過程に関して何かしらの仮定を入れることは過学習防ぐのに多いに役立つ. よく使われるのは、正規分布を仮定することである. もちろん正規分布に従わないものを正規分布と仮定したところで良いパターンは得られない. この逆の現象を過汎化 (underfit) という.
データ \(x\) に関してラベル \(y\) が関連づいてるときに \(x\) から \(y\) を予測するようなタスクを考える. このタスクにおける general statistical pattern は次のように記述できる:
\[f(x, y) = \mathcal{L}(y, g(x))\]
関数 \(g\) は予測モデルであり、\(x\) からラベル \(y\) を予測する. \(\mathcal{L}\) は損失関数と呼ばれ、\(y\) と \(g(x)\) との近さを非負実数で測る. \(g\) による予測が正しい時に限り \(\mathcal{L}(y, g(x))\) はゼロを示す.
対応するラベルがついてるデータと、ついていないデータ両方を用いる方法のこと. 大抵、目的は教師アリと同様にラベルの予測. ラベルのついていないデータなら大量に手に入るのでデータの事前分布を推定することで汎化性能を上げることが期待できる.
データには全てラベルがついていない場合のタスクを教師ナシという. この状況下でのタスクの一つにクラスタリングがある. データ \(x\) のみを比較することで同質なグループに分けるタスクである. 異常検出 (Anomaly, novely-detection) も教師ナシタスクの一つである. これは与えられるデータはほとんど全てが同質であると仮定してそこから大きく外れたデータを検出するタスクである. 例えばある一つの機械の動作を監視し続け、異常を検知する、という適用が考えられる.
他に次元圧縮がある. データが乗る空間 \(X\) のその部分空間 \(V\) に押しやる射影関数 \(P_V: X \rightarrow V (\subseteq X)\) によって \[f(x) = | P_V(x) - x |^2\] をパターンとして発見する. PCA (主成分分析; principal components analysis) はこれである. CCS (canonical correlation analysis) はこれと似ているが、データ \(x_1, x_2\) のペアをデータ \(x = (x_1, x_2)\) として、 2つの関係のみを調べる: \[f(x) = f(x_1, x_2) = | P_V^1(x_1) - P_V^2(x_2) |^2\]