Real World Annotator

Machine Learning, Statistics, Finance, and Everyday Life.

機械学習概観 ~その② モデリング論編~

さて,機械学習概観第2回. 前回は機械学習の3要素のうち,主に学習フレームワーク論,すなわち,どのような問題設定があるのかについて紹介した. ランキングなどのあまりお目にかからない問題設定なども紹介し,機械学習という分野の守備範囲の広さについてお分かり頂けたと思う. なお,「機械学習の3要素?学習フレームワーク論?」という方は以下の記事をまず読んでいただきたい.

niltatsu.hatenablog.com

さて,第2回は主にモデリング論についての紹介となる.

モデリング

前回の教師有り学習での話を思い出していただきたい. 教師有り学習では,$f(\bm{x}) \simeq y$となるような$f$を求めることがゴールであると書いた. ところが写像$f$を見つけると言っても,$f$の自由度は非常に高く,あらゆる$f$を試すのは海の中にある針を一本見つけるのと同じくらい難しい.

そこで良く行われるのがモデリングで,$f$として,候補を絞ってしまうのである(この候補の集団をモデルと呼ぶ). そしてそのように候補を絞った場合に,どのような性質があるのかを研究するのがこのモデリング論である.

機械学習で良く使われるモデル

まずは機械学習でよく使用されるモデルに関して紹介する. ここで紹介するモデルはほんの一部で,さらに前回紹介した問題設定によっても使用されるモデルは様々. なのでより詳しいモデルなどについては各自調べると良い.

線形モデル (Linear Model)

以下では$\bm{x} \in \mathbb{R}^d$と,入力データは$d$次元のベクトルであると考える. 線形モデルは機械学習で最も使われているモデルの一つであり,以下のように定義される: $$ f_{\mathbf{\theta}} (\bm{x}) = \sum_{j=1}^b \theta_j \phi_j (\bm{x}). $$ ここで,$\theta_j$をパラメータと呼び,$\phi_j$のことを基底関数と呼ぶ. 基底関数については以下のような例($d=1$の場合)がある:

  • 多項式基底: $1, x, x^2, \ldots, x^{b-1}$
  • 三角多項式基底: $1, \sin x, \cos x, \ldots, \sin kx, \cos kx$

また,$b=d$,$\phi_j (\bm{x}) = x_j$の場合は,$d$次元の実数空間内の超平面に対応し,SVMなどの手法では,この超平面から議論がスタートすることが多い.

カーネルモデル (Kernel Model)

今手元に訓練標本$\bm{x}_i \ (i = 1,2, \ldots, n)$がある場合,以下で定義されるモデルをカーネルモデルと呼ぶ: $$ f_{\bm{\theta}} (\bm{x}) = \sum_{i=1}^{n} \theta_i K(\bm{x}, \bm{x}_i). $$ カーネルモデルのパラメータ数は$n$であり,入力次元$d$に依存しない. また,パラメータに対して線形なので,カーネルモデルは線形モデルの特殊な場合として考えることができる. しかし,パラメータ数が訓練標本数に依存するため,通常の線形モデルとは数学的な性質が異なることに注意. カーネルモデルで最も良く使用されるのが以下のガウシアンカーネルである: $$ K(\bm{x}, \bm{c}) = \exp \left( \frac{|| \bm{x} - \bm{c} ||^2}{2h^2} \right). $$

ディープモデル (Deep Model)

ディープモデルとは,以下の図のようなモデルで,人間や動物の脳神経回路を基にしたモデルである. ざっくり言ってしまえば,「どんどん層やパラメータを増やした多層構造をもつモデル」と言える. 下図では中間層が1層のみしかないが,最近のディープモデルは何百層も何千層もあり,非常に複雑なものになっている.

f:id:niltatsu:20180702180121p:plain:w400

近年良く言われるディープラーニング(深層学習)というのは,このディープモデルを用いた学習方法全般を指す. つまり,ティープラーニング(深層学習)と呼ばれるものは,あくまでも機械学習の中でもモデルの話にすぎず,機械学習の中での一部にすぎないのである. ただしディープモデルはそのあまりもの柔軟さゆえ,まだ未知の部分が多く(実際数学的,理論的にも未知のことがほとんど),また最近の人気ぶりから,今やほとんどのモデルの研究に関する論文はディープモデルが対象である.

決定木モデル (Decision Tree Model)

決定木モデルとは,以下の図のような樹形のモデルである. 端的に言えば,段階的にデータを分割していき、木のような分析結果を出力するものと考えていただければ良い.

f:id:niltatsu:20180702215040p:plain

ディープモデルとは異なり,決定木モデルは解釈が容易で,また前処理も少なく済むので非常に人気のあるモデルであると言える.

モデル選択 (Model Selection)

モデルにはパラメータが存在し,そのパラメータの数をどのように決めるかは機械学習における重要な問題である. パラメータ数の決定,さらにはモデルそのものの選定に関する問題はモデル選択と呼ばれている. 一般的に,モデル選択,特にパラメータ数の決定に関して以下の事実が知られている:

  • パラメータ数は少ないと情報不足により予測精度は悪くなる
  • パラメータ数は多いと過学習が起こってしまい予測精度が悪くなる

ゆえに,なるべく必要十分な数の変数で予測した方が良いということであり,その「本当に必要な変数」を探すための学問がモデル選択だと言える. 以下では代表的なモデル選択方法について紹介する.

検定によるモデル選択

検定によるモデル選択では,ある変数が入っているモデルAとその変数が入っていないモデルBとを比較する.

  • 当てはまりの差が「誤差の範囲内」であるならば,変数が少ない方のモデルBを採択
  • 誤差の範囲内とは言えないのならば,変数が多い方のモデルAを採択

というようなモデル選択方法である.

情報量規準によるモデル選択

実用上は,検定よりも情報量規準によるモデル選択方法が多く使われる. 情報量規準とは,統計モデルの良さを評価するための指標であり,一般的に情報量規準が小さいものが最良のモデルとして選ばれる. 代表的な情報量規準としては以下のようなものがある:

  • 赤池情報量規準(AIC): $- 2\log p(x^n; \hat{\theta}(x^n), k) + 2k$
  • ベイズ情報量規準(BIC): $- \log p(x^n; \hat{\theta}(x^n), k) + \frac{k}{2} \log N$
  • 最小記述長規準(MDL): $- \log p(x^n; \hat{\theta}(x^n), k) + \log \sum_{x^n} p(x^n; \hat{\theta}(x^n), k)$

バイアスとバリアンス (Bias and Variance)

モデリング周りの話で切り離せないのがバイアス(Bias)とバリアンス(Variance)の話である. まずバイアスとは「モデル精度の悪さ」もしくは「現在のモデルと真のモデルとのズレ」を意味する. 一方バリアンスとは「モデル作製の不安定さ」もしくは「再現性の悪さ」を意味する. このバイアスとバリアンスにはトレードオフの関係がある:

  • モデルが単純(線形モデルなど)
    • 性能は良くないが、教師データに対して安定
    • 高バイアス・低バリアンス
  • モデルが複雑(ディープモデルなど)
    • 性能は良いが、教師データに対して不安定(過学習など)
    • 低バイアス・高バリアンス

これを表しているのが以下の図である.

f:id:niltatsu:20180704231827p:plain:w400

よくバイアス・バリアンストレードオフでは,二乗損失が例として使用される. これは,二乗損失を使用した場合は解析的に非常に綺麗な形でバイアスとバリアンスのトレードオフが見えるからである. 実はあまり知られていないが,分類問題で使用される0-1損失でもこのバイアス・バリアンストレードオフを見ることができる*1

このバイアス・バリアンスの和を最小にするようにモデルを選択する必要がある(下図参照).これをコントロールするために導入されたのが以下に説明する正則化である.

f:id:niltatsu:20180704232611p:plain

正則化 (Regularization)

正則化の話をこのモデリング論の部分ですべきか否かは賛否両論だろうが,筆者は正則化モデリングの部分と切って離せない関係だと考えているので,ここで紹介したいと思う.

一般的に,経験損失のみを最小化して得られる学習器は過学習のため汎化誤差は小さくならない. そこであえて平滑化を行う罰則項と経験損失の和を最小化することで汎化誤差を小さくさせる. 以上のような処理のことを正則化と呼び,罰則項$\lambda \Omega(\bm{\theta})$のことを正則化項と呼ぶ. $\Omega(\cdot)$の関数形によって様々な正則化が存在する:

  • L2正則化(リッジ正則化):
    • $\Omega(\bm{\theta}) = || \bm{\theta} ||_2^2$
    • 最も普遍的に使用されている正則化
  • L1正則化(LASSO):
    • $\Omega(\bm{\theta}) = || \bm{\theta} ||_1$
    • 学習結果を疎にする.特徴量選択の際にも使われる
  • L0正則化:
    • $\Omega(\bm{\theta}) = || \bm{\theta} ||_0$
    • 学習結果を疎にする.特徴量選択の際にも使われるが計算コスト大
  • Elastic Net:
    • $\Omega(\bm{\theta}) = \alpha || \bm{\theta} ||_1 + (1-\alpha) || \bm{\theta} ||_2^2$
    • L1正則化とL2正則化の良いとこ取り

またディープモデルでは,以上の正則化の他に,ディープモデルならではの正則化が使用される.

  • ドロップアウト: 活性化関数の出力を一定の割合で$0$にする手法.情報の伝達をあえて断ち切り、少数の情報だけで学習することで過学習を防ぐ
  • バッチ正規化: 各層ごとに標準化を行う手法
  • ノイズ混入: ニューラルネットを学習させる際に,わざと入力データにランダムにノイズを混入させる手法

まとめ

今回は機械学習の3要素の内,主にモデリング論についての概要を与えた. ディープモデルの研究は今や機械学習研究の花形であり,またモデル選択や正則化なども機械学習の中で非常に重要な役割を果たしている.

次回は主に数値計算論に関して説明する.

niltatsu

*1:Domingos, Pedro. "A unified bias-variance decomposition." Proceedings of 17th International Conference on Machine Learning. 2000.