ディープラーニングとは何か。
目次
誤差関数
「誤差関数」とは、予測誤差を関数で表したものです。
この予測誤差を最小化するにはどのようなアプローチを取ればよいのか。
平均二乗誤差関数
- 予測性能の評価に用いられた平均二乗誤差を関数にしたもの
- 予測値はモデルのパラメータの値によって決まっているため、誤差関数をそれぞれのパラメータで微分(偏微分)してゼロになるような値を求めればよいということになる
- 誤差関数の最小化のために微分してゼロになるような値を求める
- 「分類問題」では別の誤差関数が用いられることも多く、「回帰問題」の誤差関数として用いられることが大半
交差エントロピー誤差関数
- 「交差エントロピー」→2つの確率分布がどれくらい異なるかを定式化したもの
- 「交差エントロピー誤差関数」→交差エントロピーを誤差関数として利用したもの
- 正解値と予測値をそれぞれ確率分布として捉えると、2つの分布が一致するときに最小値を取る関数も、予測誤差を適切に表す関数であるといえる
- 「分類問題」でよく用いられる
- 分類問題でよく用いられる理由
→交差エントロピーが、分類問題における活性化関数としてのシグモイド関数やソフトマックス関数に含まれる指数計算と相性がよい - 今は機械が代わりに微分計算してくれるが、以前は自分で微分式を計算してその数式をコードに書き換える必要があった
その他の誤差関数
深層学習
- 「距離学習」→データ間の距離を測るためのアプローチ(顔認証、類似データ検索など)
- 「深層距離学習」→距離学習をディープラーニングに応用した手法
- 「Siamese Network」→Contrastive Loss(誤差関数)
- 「Triplet Network」→Triplet Loss(誤差関数)
生成モデルの誤差への対応
- 今観測できているデータは何らかの確率分布に基づいて生成されているはずだという考えに基づき、データを生成している確率分布をモデル化しようと試みている
- データ分布になるべく近いモデル分布を求めることが目的になる
- 「ズレ」を誤差関数として定義する
- 「カルバック・ライブラー情報量(KLダイバージェンス)」
※深層生成モデルのひとつである「VAE(変分オートエンコーダ)」でベースとなっている誤差関数(目的関数)であり、最適化計算に用いられる - 「イェンゼン・シャノン情報量(JSダイバージェンス)」
正則化
誤差関数にペナルティ項を課す
- 表現しなくてもよい訓練データに含まれるノイズまで表現するよう学習してしまう→「過学習」
- 「過学習」への対策→「正則化」
- 訓練データへの過剰な当てはまりを抑制しつつ、より単純なモデルが当てはまるようにすることが求められる
- 正則化の手法→「誤差関数にペナルティ項を課す」
- 「L1正則化」(L1ノルムは、重みなどモデルパラメーターの各成分の絶対値の和)
→一部のパラメータの値をゼロにすることで、不要なパラメータを削減できる
→「ラッソ回帰」 - 「L2正則化」(L2ノルムは、各成分の2乗和の平方根)
→パラメータの大きさに応じてゼロに近づけることで、汎化された滑らかなモデルを得ることができる
→「リッジ回帰」
※「ラッソ回帰」と「リッジ回帰」を組み合わせた手法→「Elastic Net」
※「L0正則化(ゼロでないパラメータ数で正則化するもの)」もあるが、計算コストが非常に大きくなる場合も多く一般的に用いられることはない
ドロップアウト
- ランダムにニューロンを除外する
(ネットワークから学習のエポックごとに除外するニューロンを変えることで、毎回形の異なるネットワークで学習を行う) - 内部的にアンサンブル学習を行っていることになる