これならわかる深層学習入門 (機械学習スタートアップシリーズ)読書メモ

機械学習技術 自然言語技術 人工知能技術 デジタルトランスフォーメーション技術 画像処理技術 強化学習技術 確率的生成モデル 深層学習技術 本ブログのナビ
これならわかる深層学習入門 (機械学習スタートアップシリーズ)読書メモ

深層学習の入門書である「これならわかる深層学習入門 機械学習スタートアップシリーズ」より。読書メモを記載する。

1 はじめに

2 機械学習と深層学習

2.1 なぜ深層学習か?
ノーフリーンチ定理
コンピューターによる認識のためのアルゴリズムをいくら工夫しても、 認識対象の異なる無数のタスク全てについて性能を平均すると、 結局どのアルゴリズムの能力も変わらない
アルゴリズムをいくら工夫しても、問題全体に対して他より飛び抜けた性質を発揮する認識アルゴリズムは作れない
無数のタスクではなく限定すれば良い
2.2 機械学習とは何か
はじめに
機械学習とは
あるタスクTについて、 Pで測られたタスクの実行能力が Eを通じて向上していくこと
汎化能力
Eには現れなかった未知のデータに対して、経験後にどれだけよくタスクをこなせるようになるか
普遍的な経験値の獲得をコンピュータープログラムに推奨する
2.2.1 代表的なタスク
(1)クラス分類
デーをいくつかのカテゴリにわける
(2)回帰
データから、それに対応する実数値を並べたベクトルを予測する
2.2.2 さまざまなデータセット
(1)MNIST
Mixed National Institute of Standard and Technology database
(2)ImageNet
2.3 統計入門
はじめに
機械学習とは、データ(経験)を元にしてプログラムがいろいろなタスクをこなせるようにしたもの
統計学とは、データを科学的に分析する手法
2.3.1 標本と推定
統計的なデータの生成
2.3.2 点推定
統計的推定:データがある未知の分布から生成していると考え、この確率分布のパラメータを決定する
点推定:手持ちの有限要素のデータ集合からパラメータの最もらしい値を計算する
推定量に推奨される性質(バイアスが小さい、分散が小さい、一致性)
様々な生成分布(ガウス分布、ベルヌーイ分布)
2.3.3 最尤推定
複雑な分布の推定を行う方法
尤度関数を最大にするパラメータを求めること
最尤法の実際(ガウス分(布尤度、関数最大値)、ベルヌーイ分布(尤度関数、最大値))
2.4 機械学習の基礎
2.4.1 教師あり学習
目標変数(質的変数(カテゴリ、離散値)、量的変数)
2.4.2 最小二乗法による線形回帰
誤差関数を最小化する
2.4.3 線形回帰の確率的アプローチ
確率変数の関数で表される誤差関数
期待値
平均二乗誤差をパフォーマンスとした場合、yの予測値として最も良いものは生成分布に対する期待値
データを予測する2つのアプローチ
(1)生成モデル(データの背後にある生成メカニズムを直接、 同時分布p(x,y)としてモデル化する。モデル化した分布P(x,y)をデータから推定したのち、 事後分布P(x)=∑P(x,y)とベイズの公式を用いて条件付き分布P(y|x)を計算する。上記の結果を用いて、期待値を計算する。間接的に答えを求める)
(2)識別モデル(条件付き分布P(y|x)を直接モデル化し、データからこの値を推定する)
2.4.4 最小二乗法と最尤法
最小二乗誤差の確率論的な由来
出発点(データが関数的に規則性fとノイズの寄与により与えられている)
Εが平均0,分散σ2のガウス分布から与えられていると仮定(Y自身が推定値y(x;w)を平均とするガウス分布からサンプルされる)
このモデルをデータを生成する分布に近づけるために最尤法を使う(対数尤度)
2.4.5 過適合と汎化
データの線形回帰の例(特徴ベクトルの大きさを大きくするとか適合する)
2.4.6 正則化
過適合を避けるために自由度に制限をかける
重み減衰(weight decay)
2.4.7 クラス分類
2値分類
多クラス分類(One-hot表現、クロネッカーデルタ関数を使った表現)
2.4.8 クラス分類へのアプローチ
離散的な目標変数に対するアプローチ
(1)関数モデル(2値を取る目標変数)
(2)生成モデル(データを確率的に表す)
(3)識別モデル(直接条件付き確率を表す)
2.4.9 ロジスティック回帰
クラス分類での識別モデルの説明
2クラス分類
確率分布はP(C1|x)+P(C2|x)=1
ロジスティックシグモイド関数 (logistic sigmoid function)
あるいはシグモイド関数
条件付き分布は上式のように シグモイド関数から書ける
Uは対数オッズ と呼ばれる因子
オッズ 比
C1である確率とそうでない確率の比を表す
対数オッズ が1を超えるとC1である可能性がC2である可能性を上回る
多くのクラス分類では、 対数オッズuが入力に関する線形関数 であることを仮定したモデルが用いられる
wはモデルのパラメータをまとめて表したベクトル
左式はロジスティック回帰と呼ばれる
訓練データとのフィッティングには最尤法を使う
P(y|x)はベルヌーイ分布なので、一般的には上式と書ける
最尤法は上式の尤度関数を最大化すれば良い
負の対数尤度で誤差関数を定義する
データの経験分布とモデル分布の間の交差エントロピーと呼ばれる
2.4.10 ソフトマックス回帰
多クラス分類の識別モデル
ロジスティック回帰の一般化
ベルヌーイ分布の多値変換への自然な拡張
カテゴリカル分布の方が一般的
前式の分布の書き換え
対数オッズ を多クラスに拡張したもの
分布を記述するためのパラメータ
対数オッズ の定義から上式となる
右辺の和をとると
よって
以上よりソフトマックス関数を使って上式が導出できる
ソフトマックス関数
式の書き換え
変数のうちl番目が 他よりもはるかに大きな値をとる場合は上式になる
カテゴリカル分布は対数オッズ を引数とするソフトマックス関数で書き表せる
線形の対数オッズを用いた識別モデル
最尤法
交差エントロピー(上式)を最小化してパラメータを最適化
2.5 表現学習と深層学習の発展
2.5.1 表現学習
データの本質をうまく取り出してくれるような特徴量をデザインすること
複雑なデータを使う場合は甘く適用できない
目的に応じた特徴量を、学習を通じて自発的に獲得する
データは特徴量の抽出と回帰の2つに用いられる
2.5.2 深層学習の登場
2006年
G.Hinton
ボルツマンマシンの深層化の困難を克服
その後よりシンプルなニューラルネットに適用される
2012年
ヒントンら
猫の画像の抽出

3 ニューラルネット

3.1 神経細胞のネットワーク
脳のニューロンとシナプス
活動電位とパルス
3.2 形式ニューロン
形式ニューロンと単純なニューロン回路
最終的な式
重みの式
3.3 パーセプトロン
3.3.1 形式ニューロンによるパーセプトロン
2層からなるパーセプトロンの例
3.3.2 パーセプトロンとミンスキー
ミンスキーは
入力層と出力層しか持たない単純なパーセプトロンが 線形分離不可能と呼ばれるクラスの問題を有限回数の計算では解けない ことを証明
パーセプトロンを2層にすると、瀬何系分離不可能でも解けることができる
3.4 順伝搬型ニューラルネットワークの構造
3.4.1 ユニットと順伝搬型ニューラルネットワーク
ユニット
ユニットの組み合わせによる 順伝搬型ニューラルネットワークの例
シグモイド関数
3.4.2 入力層
入力層は5つのユニットからなっている
入力層は入力ベクトルの次元だけユニットを持つ
各入力ユニットはニューラルネット全体への 入力ベクトルxT=(x1,x2,x3,x4,x5)の各成分を出力する
3.4.3 中間層
第I層のj番目のユニットを考える
第I-1層の各ユニットからの入力zi(l-1)を入力として受け付ける
活性は上式となる
wji(l)は第I-1層のユニットiと第I層のユニットjの間の結合の重み
ユニットの出力は、 活性uj(l)にユニット固有のバイアスbj(l)を加え、 さらに活性化関数f(l)を適用させたもの
活性化関数f(l)はユニットごとに定義しても良いが
今回は層ごとに共通とする
行列式表示
重み行列
活性化関数
活性化関数にバイアスが入っているものとした式
3.4.4 出力層
出力層はL-1層からの入力を受けてy=Z(L)を出力する
3.4.5 関数
最終的なモデル
3.5 ニューラルネットによる機械学習
はじめに
順伝搬型ニューラルネットは入力xを受け取ると上記の出力を出す
出力値は重みW(l)やバイアスb(l)の値を変えることで変化する
これらをまとめてwと書く
データに対してwをフィッティングする
訓練データxnを入れた際のニューラルネットの出力値y(xn;w)と、 目標値ynのズレができるだけ少なくなるように重みとバイアスを調整する
ズレをはかる誤差関数E(w)の選び方は、 考えるタスクと出力層の構造に依存する
誤差関数の最小化が学習に対応する
第L-1層と最後の層を切り分ける
L-1層までは入力xから層ごとに順次高次な表現を構成する役割を果たす
第L-1層からの出力は、入力xに対する深層表現h
出力層は上記の表現を使って回帰のような通常の機械学習を行う役割を担う
3.5.1 回帰
表現hについて線形回帰を行う
自明な活性化関数(単なる恒等写像)を用いる
線形ユニット
何らかの非自明な活性化関数
f(L)は問題に応じて設定する
出力をデータでフィッティングする
y(x;w)を用いたモデルの予測と 実際のデータynが できるだけ近くなるように最小二乗誤差を最小化する
3.5.2 2値分類
データを2つのクラスに分類する2値分類
ラベルは0か1
ニューラルネットでは 出力層が表現h=z(L-1)のロジスティック回帰を与えるようにする
訓練データD={xn,yn}の標的値ynは0か1
ロジスティック回帰では、2値変数そのものではなく、yが1であるかくりつy=P(y=1|x)を推定する
ロジスティック回帰を行うには、 出力層のユニットが1つで その出力ちがp(y=1|x)を推定するニューラルネットを考える
シグモイドユニット
シグモイドユニットの活性関数はシグモイド関数
ユニットへの挿入力が対数オッズ
上記のニューラルネットはどのように学習させれば良いのか?
最尤法を用いる
ベルヌーイ分布の推定
負の対数尤度を誤差関数にすれば良い
3.5.3 多クラス分類
クラスがK個ある場合
表現h=z(L-1)をソフトマックス回帰する出力層を作れば良い
出力層のk番目のユニットは上式の出力を持てば良い
出力層の活性化関数はソフトマックス関数
学習済みのニューラルネットへ分析したいデータさを入れて、 出力値ykが最大になるkを所属クラスとする
目標変数のベクトル表現
観測データもこのtに関して与えると
ニューラルネットワークのソボール出力に関する交差エントロピー
誤差関数
3.6 活性化関数
はじめに
中間層の活性化関数について
隠れ層の活性化関数を一意に決める一般的な判断基準はない
3.6.1 シグモイド関数とその仲間
活性化関数として微分可能な関数が用いられてきた
シグモイド関数
階段関数を滑らかにしたもの
関数の性質
微分係数は計算しなくてもσ(u)の値からわかる
双曲線正接関数
負の値も欲しい場合に対応
これを区分線形近似したも使われる
3.6.2 正規化線形関数
現在は階段関数、シグモイド関数、双曲線正接関数はそれほど使われない
学習をスムーズに進行させるには
活性化関数として正規化線形関数(redtified linear ftを使うのが良いことがわかっている
この活性化関数を持つユニット
ReLUとPReLU
これを滑らかにしたソフトプラス関数
あまり使われない
総入力が負の時、ReLUは出力を出さない
初期値を小さな正の値にする
正規化関数の一般化
リーキィReLU/ パラメトリックReLU
多くの場合はReLUで十分
3.6.3 マックスアウト
PReLUでは、タスクに適した傾きCが学習を通じて決まる
さらに一般化して、一般的な関数系を学習できる区分整形関数を導入する
近年よく使われているもの
マックスアウトの役割
例:k=3
凸関数を3本の区分線形近似している
Kの数を増やすと、いくらでも細かく任意の凸活性化関数を近似できる
区分線形関数の形は重みとバイアスで決まる
3.7 なぜ深層することが重要なのか
出力を複雑化したいときに、層を広げるよりも、総数を増やすことで効果が出る
多層にすると学習が成功しやすくなる
高度な表現学習が実現できている

4 勾配降下法による学習

4.1 勾配降下法
はじめに
ニューラルネットの学習は損失関数の最小化として定式化される
計算機上で数値的に近似解を求める
ニュートン・ラフソン法 (Newton-Raphson method)
最小値において全ての方向で微分係数が消える
テイラー展開により近似
ある点w0=[(w0)j]周りでテイラー展開すると
高次の項を無視して、さらに行列表示すると
H0はヘッシアン行列
左辺が0の時、ヘッシアン行列が正則だとすると
上式をtの順に順次用いてw(t)を決めていく更新操作をする
ヘッシアン逆行列の評価がコストがかかるため、深層学習ではほとんど使われない
4.1.1 勾配降下法
損失関数の1階微分の情報だけを用いる手法
誤差関数E(w)の最小点を見つける手法
誤差関数のグラフの形状をした凹みにおいて、 上の方からボールを転がり落として ボールが一番低いところに着くまで待つ方法
ボールを転がすとはグラフの勾配の逆方向に位置を動かす
時刻tで位置w(t)似合ったボールを 勾配の逆方向に動かす際のルールは上記となる
η:1ステップでの移動距離∆w(t)を決めるパラメータ
4.1.2 局所的最小値の問題
誤差関数が下に凸な関数であれば簡単な状況では任意の極小値は必ず最小値に一致する
複雑な非凸関数であれば、 大域的極小値(global minimun)以外にも、 膨大な数の局所的極小値(local minima)を持つ
ニューラルネットワークには高い対称性と極小値の重複がある
ユニットを複数入れ替えても結果が変わらない
入替の組み合わせの分だけ重複がフル
深層学習では、 誤差関数の良い極小値さえ見つけられれば 真の最小値を見つけずとも十分である
4.1.3 確率的勾配降下法
誤差関数の値があまりに大きい臨界点に嵌まり込むと使い物にならない
臨界点にトラップされることをできるだけ回避するために ランダムな要素を取り入れ、嵌まり込んだ位置から脱出させる
ランダムな効果を入れるための仕組み
前提条件
訓練データD={(xn,yn)}n=1…,Nが与えられた時
誤差関数は各訓練サンプル要素(xn,yn)で計算した誤差の和として表せる
例:平均二乗誤差ならば
例:Kクラス分類ならば交差エントロピー
通常の勾配降下法では全てのデータを利用
一部の訓練サンプルだけを用いる方法
時間tで用いる訓練サンプルの部分集合B(t)を用意する
時刻tにおけるミニバッチ上で平均した誤差関数(上式)を用いる
n∈B(t)はミニバッチに含まれる訓練サンプルのラベル
|B(t)|はミニバッチの中のサンプル要素の総数
これを用いてバッチ学習同様、パラメータを更新する
各時刻のミニバッチに一つの訓練サンプルしかない場合|B(t)|=1をオンライン学習(online learning)や確率的勾配降下法(stochastic gradient descent method,SGD)と呼ぶ
ミニバッチ方では望ましくない臨界点にはまり込むこともなく、並列計算もできる利点がある
4.1.4 ミニバッチの作り方
ミニバッチ学習では、学習時間をエポック(epoch)という単位ごとに分けて考える
はじめのエポックでは、データを適当なサイズのミニバッチたちへランダムに分割する
4.1.5 収束と学習率のスケジューリング
これまでの議論では学習率ηが時間を通じて一定であると仮定
いつまでも一定のままでは、収束したい点になかなか辿りつかない
ミニバッチ方では、本当の誤差関数E(w)の推定値をミニバッチ上での期待値として近似的に与える
いつまで経ってもランダムな効果は消えない
極小値に近づくにつれて学習率も小さくして、 勾配の統計的ゆらぎを小さくしていく必要がある
時間に依存する学習率の導入
別の学習率のとりかた
別のケース
4.2 改良された勾配降下法
4.2.1 勾配降下法の課題
局所最適解の問題以外の問題として、振動やプラトー、絶壁がある
振動対策として、物理における摩擦や慣性のような寄与を与えて運動を穏やかにする工夫
絶壁対策として閾値を超えた場合には パラメータ更新の大きさを常識で調整する 勾配クリップ(gradientclipping)がある
その他の問題として、鞍点(saddle point)の存在がある
勾配が0になる臨界点
ある方向にずれると斜面が上がり、別の方向だと斜面が下がる
4.2.2 モーメンタム法
勾配法の振動を抑制し、極小値への収束性を改善する手法
振動を防ぐために、前回のパラメータ更新の勾配を次の勾配に少し加える

初期値は0、μは1に近い0.99〜0.5をとる
モーメンタム法は振動を防ぐばかりか、普通の斜面では勾配法のパラメータ更新を加速する
4.2.3 ネステロフの加速勾配法
モーメンタム法の修正版
勾配の値を評価する位置が異なる
ネステロフの加速勾配法
4.2.4 AdaGrad
各パラメータ方向に応じて複数の学習率を導入できると、 学習を効率化できる
すでに大きな勾配値をとってきた方向に関しては学習率を抑え、勾配が小さかった方向へは学習率を大きくさせる
学習の初期に勾配が大きいとすぐ香辛料が小さくなる
4.2.5 RMSprop
ヒントンにより紹介された方法
十分過去の勾配の情報を指数的な減衰因子により消滅させる
AdaGrad
RMSprop
RMSpropの式
4.2.6 AdaDelta
RMSpropは全体の学習率ηの値に鋭敏であるという課題がある
次元のミスマッチが原因
次元を統一するために、ニュートンラフソン法の近似を利用する
4.2.7 Adam
上式の分母の勾配のRMSだけではなく、勾配自信も指数的な移動平均で置き換える
指数的減衰を含むモーメンタムを、RMSの勾配部分に適用
Adamによる勾配降下法
パラメータの推奨値
4.2.8 自然勾配法
重みパラメータの空間が正規直交座標系を持つ普通のユークリッド空間でない場合
曲がったリーマン多様体(Reimannian manifold)における微笑距離は、軽量テンソルで測られる
これを勾配として用いる勾配降下法が自然勾配法
重み空間における自然な距離
4.3 重みパラメータの初期値の取り方
はじめに
重みパラメータの初期値の取り方は勾配降下法による学習がうまくいくかどうかを大きく左右する
4.3.1 LeCumの初期化
上式のように重みの初期値を分散1/dの一様分布あるいはガウス分布からサンプリングすめ
4.3.2 Glorotの初期化
線形ユニットのみを持つニューラルネットワークの解析から提案されたもの
4.3.3 Heの初期化
ReLUを用いたニューラルネットワークの解析に由来する
4.4 訓練サンプルの前処理
はじめに
学習を加速して汎化に近づけるための、訓練データの下ごしらえ
訓練データの中から、タスクに関係のない情報や、データの統計的な偏りを除く
4.4.1 データの正規化
訓練サンプルの平均と分散を規格化する
4.4.2 データの白色化
共分散行列の規格化
4.4.3 画像データの局所コントラスト正規化
各画像に固有の明るさやコントラかとの強さを揃える

5 深層学習の正則化

はじめに
深層学習で用いられるニューラルネットは、 他の機械学習に比べて格段に多い重みパラメータが含まれる
安易に学習させると、すぐさま過学習が起こる
過学習を防ぐための手法が発見されている
正則化
5.1 汎化性能と正則化
5.1.1 汎化誤差と過学習
機械学習の目的は、モデルが導き出す予測を、 できる限りデータ生成分布の振る舞いと近づける事
データ生成分布上での期待値で得られる誤差関数、 汎化誤差(generalization error)を再消化する
例:二乗誤差を用いる場合
汎化誤差は上式となる
データ生成分布の情報が使えない代わりに、 手持ちの訓練データを統計的に利用する
訓練データD=[(xn,yn)]n=1,…,Nに現れる 各データ点の出現頻度を表す確率分布
データ生成分布のサンプル近似
データ生成分布の代用として 手持ちの経験分布を用いて汎化誤差を近似的に見積もったもの
汎化誤差と訓練誤差のミスマッチによって起きる問題
学習がうまくいっているかどうかを どうすれば判断できるか?
テスト誤差(test error)を考える事で汎化の目安にする
手持ちのデータを訓練ようのデータDとテストデータDtestに分ける
学習の各段階で、テストデータで測ったテスト誤差を計算する
学習中の各エポックでの訓練誤差とテスト誤差を 計算して学習曲線(learning curve)をプロットする
5.1.2 正則化
訓練誤差を最小化し続ける事で過学習が起きる原因
モデルの大きな自由度がデータに含まれる統計的ばらつきを学んでしまうため
正則化とは、学習アルゴリズムを修正する事で、 訓練誤差ではなく汎化ごさができるかぎり最小化されるようにする事
もともシンプルなアプローチは 誤差関数にペナルティ項R(w)を加える事
5.2 重み減衰
5.2.1 重み減衰の効果
最もシンプルな正則化は重み減衰
重みパラメータをできるだけ小さくする
具体的な例
誤差関数を2時間数で近似する
極小値はwi=wi0
実際には微分係数が消える点
正則化後の最小値の座標
αと比べてへシアン行列の成分が極めて小さいパラメータ方向に関しては
L1ノルムを用いた正則化
回帰に用いられた場合はLASSO回帰と呼ぶ
5.2.2 スパース正則化と不良条件問題
機械学習では、データよりもモデルパラメータの自由度が多くなってはいけない
実際の場合は情報が足りずに答えを求められない
W1x1+w2x2=yのw1,2を求めるのに一つのデータ(x1,x2,y)=(3,2,5)しかない場合
上式を解くことになる
解は無数にある
L1正則化項を加えた誤差関数の最小化に置き換える
誤差関数の勾配を計算すると
局値は軸上に限られる
誤差を再消化するのは(w1,w2)=(14/9,0)に限られる
L1正則化により無限の実数回から1個に絞られる
正則化を加えた後の解は もともとの問題の本当の解にはなっていない
5.3 早期終了
5.3.1 早期終了とは
別の観点での正則化
過学習の兆候はテスト誤差の増加現象
過去のエポックで更新した重みパラメータを計算機上に記憶
学習を続け、しばらくテスト誤差が増加し続ける傾向が見られた時点で学習を停止
5.3.2 早期終了と重み減衰の関係
早期終了はペナルティ項による正則化と深い関係がある
重み減衰での議論
誤差関数を極小値の周りのテイラー展開の2次までを採用してきんじ
勾配降下法での更新式は上式となる
この式を成分で書くと上式となる
時刻Tでの早期終了は上記の重みパラメータを解として与える
重み減衰があるときの最適パラメータ値は
両者が等しいとすると
被浮終了は、上式を用いた正則化パラメータを用いた重み減衰とみなせる
5.4 重み共有
重みパラメータがとるべき値に関して ある程度の前提知識がある場合に使える正則化
重み共有は、ニューラルネットの重みを全て独立とせず、それらの間に高速関係を課す
5.5 データ拡張とノイズの付加
5.5.1 データ拡張と汎化
教師あり学習ではアノテーション付きの訓練サンプルを用意する必要がある
手持ちのサンプルをもとに擬似的なデータを作成するアプローチ
画像認識で、画像の回転や並進を加えても写っている対象の本質は損なわれない
ロバスト性を上げるため、あえて手を加えた画像を訓練データに加えて水増しする
データ拡張の手法としてノイズ付加(noise injection)がある
ノイズの付加は重みに対しても行える
ミニバチ処理でパラメータを更新するたびに、ネットワークの重みをランダムに生成した小さなノイズを入れる
5.5.2 ノイズの付加とペナルティ項
訓練データにノイズを付与することは、ペナルティ項の導入と見直すこともできる
ノイズεをガウス分布N(0,ε2)からi.i.d.にサンプリングする
このノイズを加えたデータx+εに対しては上式がモデルの出力
このときの二乗誤差の変化は上式となる
分布P(x,y)N(ε)で期待値をとることで、 ノイズ付加により誤差関数が上式に変化する
最終的に上式が得られる
ノイズ付加はペナルティ項∇yT∇yとほぼ同じ効果を与える
ノイズを加えたものと同等な正則化
5.6 バギング
機械学習における学習後の動作の安定性を 向上させ予測性能を上げるための手法の一つ
訓練サンプル集合から各要素の重複を許してサンプリングを行い(復元抽出)
それぞれのブートストラップサンプルを用いて独立なモデルを複数学習させる
全てのモデルの予測値をもとにして最終的な予測値を求める
クラス分類の場合は全てのモデルの多数決
回帰木の場合は出力の平均値(モデル平均)
上記のアプローチで固有の誤差に由来するブレを持つモデルを 多数足し合わせることで、ゆらぎ(非システマチック誤差)が相殺
5.7 ドロップアウト
はじめに
モデル平均はニューラルネットにも適用できる
計算コストが嵩み現実的ではない
モデル平均を直接用いずに、 アンサンブル法を近似的に実現する手法
深層学習の重要技術の一つ
5.7.1 ドロップアウにおける学習
まず、部分ネットワーク・アンサンブルを考える
学習させたいニューラルネットの入力層と中間層から、 ランダムにユニットを取り除いてできるネットワーク
そのユニットを取り除くのは、 そのユニットの出力zjに外部から0をかける
可能な部分ネットワークの全ての集合
部分ネットワークを適当に一つ作る作業は
ベルヌーイ分布からランダムにサンプリングした 多数の2値数の集合μ{μj}∈{0,1}を ニューラルネットワークのユニット出力に掛け合わせる
μをマスクとよぶ
2つの任意のd次元ベクトルv=(vi),w=(wi)に対し、 上式でアマダール積を定義する
アマダール積
ドロップアウトは部分ネットワーク全てに対するモデル平均を計算するアンサンブル法
全てを計算すると計算コストが増大
近似法を使う
一つのミニバッチ学習で済む
ドロップアウトはバギングとは異なる手法であることに注意
5.7.2 ドロップアウトにおける推論
アンサンブル法では、学習後は各モデルの推論結果の多数決や算術平均を予測値に用いる
推論次に多数のモデルを走らせないといけない
相加平均ではなく、 相乗平均を用いると良いことが分かっている
確率的な意味を持つ
幾何平均Pens.はたった一つのニューラルネットで近似できる
ドロップアウトにおける推論
5.7.3 ドロップアウトの理論的正当性
5.8 深層表現のスパース性
重みの正則化ではなく、 ニューラルネットの誘導する深層表現を正則化する
深層学習に期待されているのは、 入力データの「良い」表現を学習すること
データの裏に隠された情報を明白にし、 それを問い形解析できるようにする
行いたいタスクにとって 不要な情報や邪魔なノイズが払い落とされ、 データに含まれる重要な情報だけをよく表している
実現する性質の一つ
スパース性(sparsity)
表現ベクトル成分のうち、 非ゼロの値を持つ成分が少なく、 情報が少数のシグナルだけで表現されているもの
高次元な空間のデータでもコンパクトな形でデータの本質を捉えられる
スパース性を実現するための手段
中間層の出力である表現hに対して拘束条件を課す
5.9 パッチ正規化
はじめに
ドロップアウトにとって代わって用いられるようになった強力な正則化手法
5.9.1 内部共変量シフト
訓練データをサンプリングしたときの生成分布と、 推論時に用いるデータの分布にズレが生じている状況
深層学習では多層構造由来の共変量シフトが起こる
学習時には訓練サンプルが 順次データ生成分布からサンプリングされて ネットワークに入力される
その入力を受けて各層は出力を出す
I層の出力z(I)も、とある分布PI(z(I))からサンプリングされているとみなせる
学習とは
データ生成分布から決まる中間層の生成分布PI(z(I))を
各層がフィッティングするように重みパラメータを調整する
各層でこの目的を同時に達成しようとすると
I層がPI(z(I))に近づくように学習できた時には
それより前の層のパラメータも更新されてしまう
I層の出力z(I)のパターンも変わってしまう
学習した時にはPI(z(I))が違う形になる
内部共変量シフト (internal covariate shift)
5.9.2 パッチ正則化
内部共変量シフトを防ぐには
各層の出力値が従う分布が 学習時に一定になるように調整する必要がある
中間層出力を正規化することで、 出力が常に平均0、分散1の分布に従うように強制する
バッチ正則化にはミニバッチ学習を使う
中間層の出力分布を調整するには、 正規化に用いる平均と分散の推定値が必要になる
バッチ学習で同じ順伝搬計算が並列に走っている時の、 ミニバッチ平均としての推定量
この平均と分散で出力を正規化(バッチ正規化)
正規化された出力を学習可能なパラメータγ、βで線形変換して、 バッチ正則化変換の最終結果とする
バッチ正則化を行えばドロップアウトをしなくても多層ネットワークの学習が成功することかぜ報告されている
ResNetやGANなどのアーキテクチャーで、バッチ正則化は成功している

6 誤差逆伝播法

はじめに
ニューラルネットの学習では、 誤差関数のグラフの坂を下るように勾配方向へパラメータを動かす
ニューラルネットにおいて勾配の計算は自明ではない
6.1 パーセプトロンの学習則とデルタ則
誤差逆伝搬法が生まれた背景
デルタ則
6.2 誤差逆伝播法
はじめに
デルタ則を多層のニューラルネットに拡張したもの
1986年にラメルハートらによって発表
再発見
6.2.1 パラメータ五分の複雑さとトイモデル
勾配降下法による学習について
勾配とは
誤差関数の微分係数
誤差関数Eは出力と訓練信号の間のズレを測る量
出力y(x;w)を通じてニューラルネットのパラメータに依存
例:二乗誤差関数
微分のチェインルールを使うと上式のように y(x;w)をパラメータwijで変ぞぶんする計算に帰着する
各層が一つのニューラルネット
赤い部分の変数で偏微分しようとすると大変になる
多数の写像の合成になる
誤差逆伝播法の理解
U(l)=W(l)Z(l-1)という関係に注目
w(l)の変動はまずはU(l)の値に直接影響を与える
チェインルールから上式と書き換えられる
上式の量がわかれば勾配が決まる
U(l+1)=W(l+1)f(U(l))であるので
このデルタが次の層のδ(l+1)と関係付く
これを漸化式として 出力側から入力がわに向けて順次解いていけば、 各層での勾配は決まる
誤差関数はある1サンプルnに対して計算された誤差En(w)の和で表される
ある訓練サンプルnが与える出力の誤差に焦点をしぼる
6.2.2 誤差関数の勾配計算
逆誤差伝搬法に至るためのアイデア
巨大な微雨性関数の微分を一挙に計算せず
困難を分割する
注目している重みwij(l)の変動が、 ネットワークの局所的な構造を通じて 周囲にどれくらい影響を与えるか
という観点から勾配を書き換える
結合の重みwji(l)の変動が、各層の入力に与える影響
重みwji(l)の変動は、 まずIのユニットjの総入力を変化させる
この総入力uj(l)の変動がネットワークを順次伝搬していき、 出力を変化させ、最終的に誤差関数の変動を与える
逆誤差伝搬の計算プロセス
これらを微分操作で表現すると、 誤差関数En(uj(l)(wij(l)))は 総入力uj(l)を通じて重みwji(l)に間接的に依存しているので上記とかける
右辺の一つ目の因子をデルタとよぶ
ユニットjからのシグナルが、 どれほど最終的に誤差に聞いているのかを測る量
右辺の2つ目の微分係数はただの出力値zi(l-1)
総入力の重み依存性(上式)は線形
ニューラルネットに訓練サンプルxnを入力し、 信号を伝搬させると自動的に決まる
デルタの値が決まれば勾配が決まる
ネットワークの局所的な構造を使って、勾配をデルタとユニット出力に分ける
次に、デルタを求めるアルゴリズム
デルタの満たす漸化式を見つける
デルタは誤差関数をユニットjへの総入力uj(l)で微分したもの
uj(l)の変動は、 次層のユニットたちの総入力uk(l+1)の 変化を通じて誤差関数を変動させる
微分係数は上式の性質を満たす
最終的に上式にまとめられる
デルタという量は上記倍の作用を受けてI+1層からI層へ逆向きに伝搬する
出力層で計算されたデルタの「初期値」の 情報を入力層に向けて順次伝搬させる
まず入力を出力層まで順伝搬させる
出力層での誤差を計算する
その結果をもとにデルタを逆伝搬させる
誤差逆伝搬法による購買の計算の仕組み
デルタによる勾配の計算
様々なニューラルネットワークのライプブラリにおいても、 自動ピザンにより誤差逆伝播法と本質的に同じアルゴリズムが実装されている
6.2.3 逆伝搬計算の初期値
逆伝搬法において 漸化式を解くための初期値にあたるものは、 出力層におけるデルタ
計算の方法
出力層の活性化関数をfとすると
最終出力はy=f(uj(L))
出力層のユニットjのデルタはEn(yj(uj(L)))をuj(L)で微分して
回帰問題では誤差関数としてEn=(y(x;w)-y)2/2
この場合のデルタの具体形は
誤差関数が交差エントロピーの場合は
ソフトマックス関数の微分はクロネッカーデルタ関数を用いると
6.2.4 勾配計算
勾配計算の目的はニューラルネットの勾配降下ほうによる学習
誤差逆伝搬だけでは終わらない
各訓練サンプルによって計算された勾配∂En/∂wji(l)を 学習に用いるミニバッチDで平均して 実際のパラメータの更新量を求めなければならない
その上で各時刻tでのパラメータ値で計算した∆wji(t,l)を使って 上記のように重みパラメータを更新する
6.2.5 デルタの意味
誤差逆伝搬法に現れたデルタ関数の意味
出力層におけるデルタは上式
訓練サンプルxを入力した際の最終出力yと、 訓練サンプルの目標信号yの差
勾配降下法はこの誤差をできるだけ打ち消すように、 出力層とその手前の層の重みパラメータwpq(L)を修正する
δ(L)は出力ノードにつながる重みが どの程度ごさに寄与しているかを測る量になる
中間層の場合
I層のノードに付随して局所的な誤差を測る量になる
6.3 誤差逆伝播法はなぜ早いか
6.4 勾配消失問題、パラメータ爆発とその対応策
はじめに
深層学習のその他の課題
勾配消失問題(vanishing gradient problem)
順伝搬は爆発したり、焼失したりしない
逆伝搬は、線形な変換なので急激に焼失したり、爆発する
勾配爆発問題(exploding gradient problem)
それらがあったため第二の冬の時代になっていた
それらが解決したため今の隆盛がある
6.4.1 事前学習
勾配消失を避けるためのアイデアの一つ
事前学習ではネットワークをズクには計算せずに、 まず重みパラメータの良い種基地を計算し、 その後で訓練データに合致するように微調整することで効率的な学習を行う
パラメータを勾配降下ほうで転がす際の良い初期値をはじめに用意するもの
現在では他の方法にとって変わられている
6.4.2 ReLU関数
現在、勾配消失問題を解決するための汎用的な方法
活性化関数を工夫する手法
ReLU関数を用いると勾配消失問題を解決できる

7 自己符号化器

はじめに
正解ラベルのついていないデータへのニューラルネットの適用(教師なし学習)
7.1 データ圧縮と主成分分析
データの次元を削減する一般的な手法について
様々な空間でのデータの偏り
ある特定の方向の軸では分散が少なくなる
上記のような解析を一般行う手法
前提条件
データ点をベクトルで表す
正規直行基底を上式で表す
一般のデータ点xnを求めたい部分空間に射影する
C0はデータの平均値に対応
データ点たちの分布の中心点
二乗誤差関数は上式となる
ここで最小値問題(上式)を解くことで、 実際にデータが広がっている方向ehが決まる
最適化問題の解
ラグランジュ未定係数法を用いる
未定数λhを用いて高速条件を課したラグランジュ関数を上式と定義
これをehとλhに関して最大化する
ラグランジュ未定係数λhは、 対応する方向の共分散行列の固有値
ばらつきの大きさを教えてくれる
データの分散の大きな方向のみが データの本質とみなせ、それ以外を削除する
7.2 自己符号化器
はじめに
主成分分析においては 入力ベクトルxの住んでいる入力空間の中で
データ点が実際に散布されている平坦な部分空間を探した
実際のケースでは複雑な幾何構造をした 部分空間の周囲に散在している
多様体上へデータを次元削減するアプローチ
いくつかの具体的アプローチがある
深層表現を用いた方法
入力データを表現に変換
良い表現を生成するニューラルネットが役立つを生成する
その表現の中でデータ点の分布がなす多様体を探す
7.2.1 砂時計型ニューラルネット
ニューラルネットでデータを圧縮するための ちょっと捻ったアイデアから解説
ニューラルネットでは目標出力がynであると教える「教師」が必要
入力だけからニューラルネットを 教師なし学習させられるのか?
入力データだけから入出力が同一の訓練データ{(xn,xn)}を作成
これを用いて出力が別の入力値を再現するようなニューラルネットを訓練する
前述のようなものを作って何になるのか?
左右対称な構造を持つ 2層砂時計型ニューラルネット (hourglass-type neural network)を考える
入力xを中間層でyに変換し、それを最終出力xに変換する
x→y
符号化器
y→x
復号化器
自己符号化器(auto encoder,AE)
7.2.2 再構成誤差による学習
訓練データ{(xn,xn)}を用いて自己符号化器を学習する
出力層のデザインに注意が必要
xの成分のxjの数値が取りうる範囲に応じて、 出力層の活性化関数fの領域を揃える必要がある
(1)実数値入力
xの成分が実数値をとる場合は、 出力層には線形ユニットを用いる
活性化関数は恒等演算
誤差関数は平均二乗誤差
(2)2値入力
x=(x1,..,xd)Tの成分が0か1の2値をとる場合は、 出力層にはシグモイドユニットを用いる
活性化関数はシグモイド関数
シグモイドユニットは複数ある
一つの場合はロジスティック回帰
シグモイドユニットがxの成分だけ存在する、 それぞれがxiの予測値(上式)を出力する
学習は、 各シグモイドユニットに付随した多数のベルヌーイ分布の積(上式) に対する対数尤度関数によって行われる
上式のような交差エントロピーの和を求める
7.2.3 符号化の役割
学習後の符号化器が何をしているのか
重み行列を行ベクトルwjTに分ける
自己符号化器の入力層がd1個、 中間層がd2個のユニットからできているとすると
Wはd2xd1行列
D1次元ベクトルwjはd2個存在する
任意の入力ベクトルが近似的にベクトルwjで展開できているとする
展開係数cjは、入力の中にどれだけwjの成分が含まれているかを測る
中間層の活性化と出力は上手になる
うまく学習できると任意の重み行ベクトル[wj]の各成分に分解できる
7.2.4 自己符号化器と主成分分析
活性化関数fが恒等写像の場合の入出力関係は
再構成誤差は平均二乗誤差であり上式となる
重みを作るベクトルは直交していると仮定
上式は主成分分析の式と同じになる
主成分分析を非線形なデータ分析まで拡張したものが自己符号化器のアプローチ
7.3 スパース自己符号化器
7.3.1 自己符号化器のスパース化
スパース正則化を用いるとd1≤d2の場合でも非自明なデータ圧縮を実現できる
中間層が膨らんでいる状態
そのままだと解が無限にある
中間層にスパース性の制約を入れることで解が一意に決まる
中間層をスパースにするということ
どのような入力が来ても 中間層の大半のユニットが0しか出力しない
スパース正則化
スパースな表現では活性化するユニットが少ないにもかかわらず、 大きな次元を間接的に利用することで豊かなデータ構造を表現する
7.3.2 スパース自己符号化器の誤差逆伝搬法
スパース自己符号化器の誤差逆伝搬法には技術的な注意が必要
スパース正則化された誤差逆伝搬法
7.4 積層自己符号化器と事前学習
7.4.1 積層自己符号化器
中間層が1層の砂時計型ニュラルネットは 浅いネットワークなので、勾配消失の害を被ることがない
浅い符号化器を用いて、多層の自己符号化器の学習に役立てる
複数の層からなる符号化器を使うと、 層をヘルごとにどんどんデータの圧縮を繰り返していく
多層の自己符号化器を2層符号化器の集まりとみなして、 それら2層の学習の反復により全体を学習させる
アルゴリズムの図示
(1)第1、2層だけ取り出し、これに入力層と同じユニット数の層を出力層に加える
これを訓練データによる自己符号化器として学習させて、学習後に加えた層を再び取り除いて符号化器にする
(2)第2,3層だけを取り出し、再び自己符号化器として学習させる
(3)この操作を上層に向かって繰り返す
(4)出力層まで学習が終わったら、各符号化器の学習済み重みパラメータを、多層符号化器の重みパラメータとする
層ごとの貪慾法(greedy layer-wise training)
貪慾法で学習させた自己符号化器
この手法は事前学習にも使われる
7.4.2 事前学習
勾配降下法の効率化のための有効なトリック
初期値の最適化
L層の深層ニューラルネットの学習を考える
出力層は回帰分析を行うので、深層表現をするのはその前層まで
1からL-1層をSAEとして貪慾法で学習させ、 その重みパラメータを深層ニューラルネットの重みの初期値として使う
L-1層とL層の間の重みはランダムに選ぶ
その後は通常の勾配降下法で計算
効率が大幅に改善
7.5 デノイジング自己符号化器
ニューラルネットは入力のノイズに対してロバストではなく、 自己符号化器の性能はそれほど良くならない
ノイズにより入力データを拡張した上で自己符号化器を学習
ガウスノイズを加味したもの
入力にノイズを加えて出力はノイズを加える前のものにする
欠陥ノイジング(masking noise)
ソルト&ペッパーズノイズ(salt-and-papper noise)
7.6 収縮自己符号化器
7.6.1 収縮自己符号化器と多様体学習
自己符号化器を用いてPCAを拡張するモチベーション
多様体学習を促進する正則化項を加えたもの
CAEのペナルティ
ヤコビアンのフロべニウスノルム
CAEはDAEと似ているが、 ある程度の散らばりを持って分布していた似たようなデータを、 符号の空間の中で1点に縮めようとする役割をはたす
CAEと富豪の空間における多様体学習の関係
7.6.2 他の自己符号化器との関係

8 畳み込みニューラルネット

はじめに
画像認識に特化して開発れ来てニューラルネットワークが畳み込みニューラルネット
このニューラルネットは特殊な構造をしたスパースな結合を持つ
この構造の開発するヒントは、実際の動物の視覚野の構造
8.1 一次視野と畳み込み
8.1.1 ヒューベル・ウィーゼルの階層仮説
人間には、視覚情報からパターンを認識する高い能力が備わっている
神経細胞のネットワークが持つ特別な構造に起因する
1958年、ヒューベルとウィーゼルは、 猫の視野に特定の傾きを持つ線分を見せたときにだけ 反応する細胞があることを発見
単純型細胞(simple cell)と複雑型細胞(complex cell)
模式図
局所的なパターンをまず単純型細胞で検知し、 その情報を統合することで位置のズレに対して安定的にパターン検出ができる
ヒューベルとウィーゼルの階層仮説がヒントになって誕生した
1979年の福島によるネオコグニトロン
1989年にニューラルネットに誤差逆伝搬法を適用して高い性能を出す
手書き文字認識
8.1.2 ニューラルネットと畳み込み
畳み込みニューラルネットワークは、主に2種類の層から出来ている
一つ目は単純細胞と複数のユニットからなる層
抽出すべきパターン認識では画像のどの位置に現れるかはあらかじめわからない
入力側の層を、局所的な受容野を持つ単純型細胞で覆う
どこの局所受容野と単純型細胞の結合も、全て同じ重みを持つ
重みのスパース化と重み共有
複雑型細胞は、多数の単純型細胞の出力を取りまとめる役割だけを果たす
プーリング数
模式図
8.2 畳み込みニューラルネット
8.2.1 画像データとチャネル
MNISTなどの比較的簡単な手書き文字認識では
2次元の画像データをベクトルとして1次元状に並べてモデルへ入力しても、学習の分類モデルはそこそこの性能を発揮する
自然画像等の分類などの本格的なパターン認識では、画像の2次元構造を利用する
画像サンプルは2次元状に配列した実数画素値xyとして表現する
サイズがWxWの画像では、画像の位置(i,j)を指定する添字は上式のようにする
実際の画像データは一つの位置(i,j)に対して、色成分の情報を付与する
Kチャネルであれば、K枚の画像でできているとみなす
8.2.2 畳み込み層
1チャネルの簡単な場合
畳み込み層(convolution layer)は 行列入力(zij(l-1))へフィルタ(filter)を作用させる役割を果たす
フィルタの役割とは
フィルタは入力よりも小さいサイズを持つHxH画像として定義できる
画素値をhpqと書く
フィルタ(hpq)の畳み込みとは、上式の演算を意味する
フィルタの畳み込みの模式図
画像からあるパターンを抽出
数字が飛び抜けて大きいものは、該当画像がある位置に対応
フィルタを畳み込むことで、画像から特定のパターンを抽出する
畳み込みとプーリングをそれぞれ2回行う素耳を学習させて得られたフィルタを示す
以上のフィルタリングをKチャネルで行う
畳み込み層1
畳み込み層の最終的な出力は、 この画像に活性化関数fを作用させたものになる
畳み込み層からの特徴マップと呼ぶ
活性化関数としては、最近ではLeRU関数がよく用いられる
8.2.3 1 x 1畳み込み
最近のCNNでは、サイズが1×1のフィルタによる畳み込みも用いられる
局所受容野が1ピクセルしかないので、 パターン抽出の観点からは何の役割も果たさないように見える
チャンネル方向には画素数を加算するので、非自明な作用をする
フィルタのチャンネル数を元画像よりも少なくしておくことは、変換後の画像のチャネル削減ができる
8.2.4 因子化した畳み込み
畳み込みにまつわる計算量を削減する技法
通常5×5フィルタの畳み込み層には5×5=25個のパラメータがある
5×5畳み込みとほとんど変わらない操作を、 少ないパラメータ数で実現できる
畳み込みの因子化の模式図
5×5の畳み込みを3×3の畳み込み2回でできるようになる
さらに非対称な3×1と1×3の畳み込みを使っても、3×3の畳み込みが代用できる
8.2.5 ストライド
フィルタを一目盛りづつ動かして、詳細にパターンを抽出
もう少し大雑把に画像の構造をちらえる
一目盛りづつ動かす必要はない
画素をS-1個余分に飛ばしてフィルタを動かす
ストライドありの畳み込み
8.2.6 バディング
畳み込みをすると必ず画像のサイズが小さくなる
フィルタを重ね合わせる際に、 元の画像からは見出せない制約に起因
畳み込み後のサイズをある程度大きくできる手法
元の画像の周りに厚さPの縁を加える操作
パディングの種類
増やした画像には全て画素値0を入れる
一切パディングせず、画像が縮小
画像のサイズが畳み込みの前後で変わらないようにする
畳み込み後の画像の幅がW+H-1となるように最大限パディング
パディングの例
8.2.7 プーリング層
複雑型細胞に対応するプーリング層(pooling layer)について議論する
畳み込み層で捉えた局所的なパターンを、 その位置がある程度移動しても捉えられるようにする
入力位置の平行移動に対してロバストにするために
各位置で局所パターンを抽出した 単純型細胞からの出力を合算すれば良い
プーリング(pooling)ではまず
WxWxK入力画像zi,j,k(l-1)の各チャネルに対し、
各画素位置(i,j)を中心としたHxHの大きさの領域Pyを考える
どの点に対しても、Pyの領域を考えられるようにしておく
Pij中の画素数から、その領域での代表的な画素値eij(l)を決定する
代表値を決める方法
領域内の最も大きな画素値を代表値として取り出す
最大値の代わりに、領域内の画素値の平均を用いる方法
2つのプーリング法を拡張した手法
確率的プーリング (stochastic pooling)
プーリング層の焼くよりは畳み込み層の出力を束ねるだけ
重みは学習しない
学習中もプーリングの式は一切変更されない
8.2.8 局所コントラスト正規化層
画像処理において 訓練サンプルの質を整える局所コントラスト正規化という手法がある
畳み込みニューラルネットワークの中間層において、 この正規化を実行する中間層がある
Kチャネル画像に対して局所コントラスト正規化は各チャネルごとに行われる
8.2.9 局所応答正規化層
2012年にILSVRCで優勝したモデルであるAlexNetでは、 LCNの代わりに局所応答正規化層(local response normalization layer, LRN layer)が用いられた
局所応答正規化層の定義
8.2.10 ネットワーク構造
畳み込みニューラルネットワークは畳み込み層とプーリング層を繰り返し積層して構成される
その上で、出力層側にいくつかの全結合を加え、最終的にたの出力層などを付加して画像分割などのタスクを行う
プーリング層の次に局所コントラスト正規化そうや局所応答正規化層を挿入する場合もある
典型的な例としてオックスフォード大学のVGGの例を示す
8.3 CNNの逆誤差伝搬法
8.3.1 畳み込み層
畳み込み層は順伝搬層にすぎないので、重み共有を考慮に入れることで順伝搬計算ができる
チェインルールから
畳み込み層でのデルタの逆伝搬則
8.3.2 プーリング層
プーリング層も通常の順伝搬層に書き換えることで逆伝搬できる
平均プーリング層は、上式の重みを持つ順伝搬層としてみなせる
最大プーリングでは、順伝搬で採用した最大値の画素位置を覚えておく必要がある
8.4 学習済みモデルと転移学習
ImageNetなどの大きなデータで学習したモデルは優秀な結果が得られる
ニューラルネットには高い汎化能力がある
深いネットワーク構造では中間層に様々な特徴量を獲得していると期待される
学習済みのモデルの出力層の層を取り除き
中間層からの出力を入力画像の表現として用いる
その表現をそのまま回帰やサポートベクトルマシンにかけることで、 入力画像をそのまま解析していては得られなかったパフォーマンスが期待できる
出力層だけを置き換えて他のタスクのために計算し直す
新たなタスクに対するよう初期値となる
8.5 CNNはどのようなパターンを捉えているのか
パターン抽出機としてのCNNはブラックボックスになっている
CNNの中を覗き見る技術はいくつか開発されている
学習済みVGGのある特定の畳み込み層に対応した画像
各フィルタに対応する入力パターンの画像化
低層から工事の層に行くにつれて、各フィルタがより複雑なパターンを捉えている
ノイズに対しては不自然な判断をする
8.6 脱畳み込みネットワーク
様々な畳み込みの逆操作がこれまでに研究されてきた
CNNが学習した内容を可視化するため
あるいは小さな画像から大きな画像を生成するために
CNN内部を視覚化するために ズィーラーらによって導入されたモデルに由来する
アンプーリング(unspooling, unsampling)と畳み込みの合成によって構成されたもの
8.7 インセプションモジュール
高い性能のCNNを実現するには、層を重ねて深いネットワークを作成すれば良い
むやみやたらに深層化すると、学習に困難が生じて計算量が増大する
ネットワークの深さと幅の両方を活用することを考える
GoogleNet
インセプションモデュール

9 再帰型ニューラルネット

はじめに
文章に代表される時系列データを学習するための手法として 再帰型ニューラルネットを紹介する
9.1 時系列データ
深層学習をうまく動かせるカギ
いかにデータに適したネットワーク構造をデザインできるか
CNNの場合は画像の特性に応じて、フィルタの畳み込みを実現するネットワークを考える
動画や文章、会話のような時系列データを扱うにはどうすれば良いか?
長さTの(時)系列データをx1,x2,…,xTと書く
時刻tに対応するデータがxt
時系列データとして会話文を考える
はじめに聞き取られた単語がx1で、 以後時間順に文が終わるまでx2,…,xTと単語が続く
各単語はベクトルとして表現
例:1-of-Kベクトル
対応する単語の成分だけが1で、その他は0
辞書中の単語数だけの次元を持つ
時系列データはサンプルにより長さTがまちまち
長さTについて汎化した結果が欲しい
9.2 再帰型ニューラルネットワーク
9.2.1 ループと再帰
順伝搬構造を持たない典型的なグラフ
このままではグラフに対して層という概念を定義できない
ユニットから出た矢印が自分自身に帰ってくる場合がある
上記のような構造を持ったニューラルネットは、 時系列データを扱う際に役立つ
時系列データをうまく取り扱うには、 過去の情報を保持しておく必要がある
順伝搬型ニューラルネットワークでは、 単語の系列が担う複雑な情報は捉えられない
白のユニットは入力層
白いユニットに入ってくる矢印はない
オレンジのユニットは出力層
灰色のユニットが隠れ層
層の形に書き直したグラフ
2層順伝搬型ニューラルネットに、 新しい帰還路を加えたもの
再帰型ニューラルネットワーク (Recurrent neural network, RNN)
順方向に関しては通常のニューラルネットと同じく即時に信号が伝搬する
帰還経路に対応するループに関しては、信号は1単位時間だけ遅れる
時間遅れループで過去の時間情報を保持する
式としての表現
前提条件
RNNへの時刻tにおける入力(時刻tでの入力層の出力)
中間層のユニット出力
出力層のユニット出力
入力層と中間層の重み
中間層と出力層の重み
中間層間の帰還経路の重み
出力層から中間層への帰還経路の重み
RNNの伝搬の式
出力層の式
9.2.2 実時間リカレント学習法
RNNは実時間リカレント学習(real time recurrent learning, RTRL)法を使うことで 逆誤差伝搬法なしで計算できる
RTRLを定義するために
まず時刻tでの誤差関数を上式とする
各時刻の誤差関数は、
回帰の場合であれば
ソフトマックス回帰ならば
勾配を計算する
前提条件
アルファベットの添字の定義
重みに関しては
一般の勾配はチェインルールにより
RNNの伝搬則に従うと
係数は上式となる
prsiの値は
よってPrsjは上式となる
得られたpを使い、各時刻で勾配降下法を使う
9.2.3 ネットワークの展開
ループの中の情報保持の様子を見やすくするための手法
展開を図解したもの
展開したネットワークにはループはなく、性質の良いグラフになる
9.2.4 通時的誤差逆伝搬法
RNNの展開を導入した後の、 順伝搬型の時と同様に誤差逆伝搬法を定式化する
BPTT法では時刻全体にわたる誤差(上式)を考える
この誤差の勾配を考える
中間ユニットと出力ユニットのデルタを上式とする
デルタの逆伝搬則を導くために、チェインルールを用いる
以上よりRNNの逆伝搬のデルタの式が得られる
次にデルタを用いて勾配を再構成する
展開されたRNNは重み共有されたニューラルネットとみなせるので
Winに関する勾配は上式となる
最終的なBPTT法の式として
正確にはエポックごとのBPTT(epockwise BPTT, EBPTT)法と呼ばれる
現時刻での誤差関数のみを考慮
9.3 機械翻訳への応用
RNNは自然言語処理への応用が多く検討されている
機械翻訳をRNNで実現するアイデア
入力文を文字の集まりx1,x2,..,xTのようにT個の単語に分ける
これをRNNに入力する
RNNの出力層は、 辞書中の単語数だけのユニット数がある ソフトマックス層だとする
出力値が最も大きくなるユニットから、最もらしい出力単語ytが予測できる
ループに与えられた過去の情報は、 RNNがytを選ぶ際に参考になるこれまでの 単語列x1,x2,..,xtの情報を教えてくれる
このような出力を各時刻で集めて作った列y1,y2,…,yTが翻訳文となる
アイデアはあくまでもトイモデル
入力文と出力文の単語数が同じ場合でしか扱えない
9.4 RNNへの問題点
帰還路が入っているために深いネットワークになる
ループを回るたびに同じ重みWが何度もかかるため
容易に信号や工事いが焼失したり爆発したりする
勾配クリップ等の工夫が必要になる
RNNの改良してLSTMがネットワーク構造の工夫で問題を抑えることに成功している
9.5 長・短期記憶
はじめに
RNNの目的は長期にわたる時系列情報の蓄積
9.5.1 メモリー・セル
RNNの中間層のユニットをメモリ・ユニットというものに置き換えたもの
メモリ・ユニットに情報の保持や忘却を可能にする仕組みを組み込む
メモリユニット自体は、セル、ゲート、ユニットから構成される複雑な回路
メモリ・セル(memory cell)
ループを用いて各時刻のセル(C)の出力sjiを次の時刻のセルへ受け渡す
図において波線が描かれてあるのは、ループの伝搬が1時刻遅れて行われることを意味する
ゲートは外部からの入力も受ける
各時刻tにおいて以下の入力を受ける
入力層からxit
前時刻の中間層からzjt-1
ゲートを考えない場合のセルの状態
9.5.2 ゲート
メモリユニットのもう一つの構成要素はゲート(gate)
外部からの入力を受けるゲート・ユニットは、まずゲート値gjtを出力する
やってきた信号にゲート値gjtを掛け合わせる
9.5.3 LSTM
メモリユニット全体の構造
外部からの入力xt,zt-1を取り入れる場所が4箇所ある
一つはセルへの入力用
残りはゲートへの入力
セルからの出力は外部に向かうだけではなく、 ゲートを制御するために、ゲート・ユニットへも流れる
それぞれの入力用ユニットは固有の重みを持つ
このようなメモリー・ユニットを集めて作った中間層が、LSTMやLSTMブロックと呼ばれる
9.5.4 LSTMの順伝搬
LSTMの順伝搬を細かく見ながら、 メモリユニットの構造を説明する
まず入力ユニット(I)から説明する
Iに入った外部入力は総入力ujtに合算された後、 活性化関数の作用を受けてzj0,tとして出力される
入力ユニットからの信号は、 セル(CNC)に入る前に入力ゲート(IG)からゲート値の積作用を受ける
メモリ・セル(C)のループには、ゲート(FG)の作用がある
忘却ゲート
以上からメモリセルの状態は上式のように時間変化する
セルからの出力はユニット(U)により活性化関数が作用され、 さらに出力ゲート(OG)からのゲート値がかけ合わさった上で最終出力となる
出力ゲートの式は上式となる
9.5.5 LSTMの逆伝搬
ゲートの存在に気をつければ、LSTMの逆伝搬法も通常のものと変わらない
まずユニット(U)のデルタ
LSTMから外部への入力、同時刻の出力層と、次の時刻の中間層へ入力する
上図の付近での順伝搬を書くと
ユニットUに対するデルタは上式となる
よってデルタの逆伝搬則は上式となる
ゲート(OG)に関するデルタも同様に
セルに対するデルタ
Cからは5個の矢印が出ているので、 セルの出力の変動はこの5つの矢印の行先である ユニットの活性を変化させる
Fについてのデルタは
Iについてのデルタは
入力ゲートに関しては
9.5.6 ゲート付き再帰的ユニット
LSTMと同様ゲートを用いつつ、 もっとシンプルな方法で長期記憶を備えるユニット
GRUの回路図
Xxx 式両略
GRUの振る舞い
リセットゲートにより不要な情報を忘却する
GRUはLSTMと同様に記憶具合を制御するゲート
9.6 再帰型ニューラルネットと自然言語処理
はじめに
統計的自然言語処理の分野で文を学習させる際には確率モデルを使う
文xx1,…,xTから文y1,…,yTへの機械翻訳を考える
入力文x1,…,xTから翻訳を生成するために、 元言語の文と翻訳先言語での文の間の条件付き確立を考える
前式の右辺の各確率分布をモデル化し、 訓練データを使って学習させる
確率が推定できれば
y1からyt-1までが既に訳出された状態で、
P(yt|y1,…,yt-1,xt,…,xT)を用いて、次の単語ytとしてどれを採用するか予測する
この作業をt=1,2…,Tと繰り返すことで
入力文x1,…,xTに対する翻訳文全体ができる
入力文と翻訳先の出力文の中さが異なる場合へのアプローチ
符号化器・複合化器のアイデア
RNNを用いて入力文全体x1,x2,…,xTをある表現Cへ変換する
RNNの中間層の状態
この作業を行うRNNを符号化器(encoder)ド・モアブル
複合化器(decoder)と呼ばれるRNNはコンテキストを受け取り、 訳文を決めるための確率分布を与える
RNNの出力層にソフトマックスなどを使い、 確率分布(上式)を出力として与える
9.6.1 Seq2Seq学習
前述の代表的なモデルについて説明する
Seq2Seq(sequence to sequence)の構造全体
RNNを用いてコンテキストを作り、 これから翻訳文の単語を一文字ずつ生成する
複号化器の中間層には前時刻の出力が入力される
複号化器の出力層はソフトマックス層なので、 まず確率分布P(yt-1|y1,..,yt-2)から最も確率が高くなる語yt-1をサンプルする
さらにその単語を次の時刻tの入力とする
Seq2Seqの複号化器は文末までくると最後に<EOF>を出力して翻訳を終える
構造全体の学習は最尤法で行われる
符号化器・複号化器全体の分布を考え
訓練データに関数上式の誤差関数を最小化する
符号化器と複号化器にはそれぞれ別のRNNを用いる
Seq2Seqの工夫
入力の反転で性能が向上
文をひっくり返して入力
9.6.2 ニューラル会話モデル
Seq2Seqの応用
ニューラル会話モデル(neural conversation model)
人と自然な会話ができるように学習されたSeq2Seq
対話コーパスではなく会話データを使ってSeq2Seqを訓令したもの
話しかけられた文を入力とし、その返答が出力となるように学習
映画の会話文を集めたOpenSubtitlesというデータセットを用いた訓練
モデルとして中間層に4096個のメモリ・ユニットからなるLSTMを2層もつSeq2Seqを用いる
論文53

10 ボルツマンマシン

はじめに
ニューラルネットと違い、 ボルツマンマシンは各ユニットが 確率的に振る舞うネットワークモデル
ボルツマンマシンは古典統計物理学におけるインジング模型そのもの
10.1 グラフィカルモデルと確率推論
はじめに
観測データを訓練データとしてニューラルネットワークでフィッティング
それをもとに推論を行うアプローチ
不確実性を伴う現象では、確率モデルを記述した方が自然
生成モデルという概念
不確実性を伴う現象があり、 その観測値としてN個のデータx(n)=(x1(n),x2(n),…)Tが得られたとする
この現象の原因や、それにまつわる因果関係を理解するために確率モデルを導入する
観測値を、ベクトル値にとる確率x=(x1,x2,…)Tの実現値であるとする
この観測値が、背後にある確率分布Pdata(x)から独立に生成しているものとする
生成分布はもし存在するものとしても、普通は直接知ることのできない分布
観測データからこの分布の形を推し量るためには
まず未知の分布を近似的に表す仮説を立てる必要がある
生成分布の近似であるモデル分布P(x|θ)
モデル分布の集まりを考える
このモデルの集まりの中で、 観測データを最もよく説明するモデル (一番適切なパラメータθ*)を特定するのが学習
モデル分布p(x|θ)をどのようにして選べば良いのか?
よく用いられるのがグラフィカルモデル
10.1.1 有向グラフィカルモデル
数学においてグラフという場合は
ユニット(ノード、頂点とも呼ばれる)を、エッジ(リンク)で繋いだ構造
有向グラフ模式図
有向グラフにたいするグラフィカルモデル
グラフにループのない非循環的な場合を考える
各ユニットに確率変数が付随している
確率変数の間の因果関係は、条件付き確率によりモデル化される
グラフから決まる因果関係を全て集めることで、グラフィカルモデルの同時確率分布を表現する
親ユニットの集合をNiとする
一般的な有向グラフにたいする確率分布は上記となる
ただし親ユニットのない変数に対しては上記を付与する
このような確率モデルを考える利点
確率変数同士は複雑に相関していて、独立ではない
確率変数達の一部は、条件付き独立性という構造を持つ
条件付き独立性をグラフの構造から視覚的にすぐ見て取れる
条件付き独立性とは
元々独立ではない変数たちが、 ある他の変数の実現値が確定した後では独立になるような状況
x3,x4,x5の3変数だけからなるグラフがあったとする
この部分グラフだけがあったとき、この3変数の同時分布は
この分布P(x3,x4,x5)の計算結果を見ると、 3つの変数は互いに独立になっていない
しかし、変数x3の値が観測されて、 ある確定した値をとると、残り2変数は独立になる
x4とx5の同時分布が分解している
変数x3を条件としてx4とx5は独立
グラフから見るとx3を取り除くとバラバラになる
条件付き独立を表現するもう一つの構造
X3,x4,x5,x6誰からなる部分グラフに注目
x3から伸びた矢印がx4とx5に向かい、それらからx6へと矢印が向かう
x4とx5を外すとx3とx6はバラバラになる
条件付き独立
確率分布を用いた推論について
推論は結果を基にしてその原因を探っていく作業
有向グラフィカルモデルでは矢印を逆に辿る作業
生成プロセスと推論プロセスについて
変数yが観測される変数
変数xは観測されない説明変数
左側の生成プロセス
xからyに向かう矢印で図示されている通り、 上記の同時分布によってxからyが生成されているプロセス
事前分布P(x)よりxが与えられ
それによりyの分布が決まる
観測されるのはy
右側の推論プロセス
観測値yを基にして、説明因子xがとっていたであろう値について推測する作業
波線のグラフを遡る操作
事後確率P(x|y)を決定する
既知の情報P(x),P(y|x)から右の条件付き確率を求める
分布P(y)は、同時分布の周辺化より求まる
10.1.2 無向グラフィカルモデル
有向グラフィカルモデルの矢印は、 どちらのユニットがどちらのユニットに 影響を与えているかという 因果関係を表現する
xのユニットからyへ矢印が伸びている構造には 確率分布P(y|x)が付随している
いつでも事前に確率変数の間の因果関係がわかるわけではない
無向グラフはエッジの向きを持たない
無向グラフにも条件付き独立性の概念を適用できる
無向グラフ上のモデルで、グラフィカルな独立性の条件を満たすもの
条件付き独立性
ある無向グラフに含まれる3つの部分グラフa,b,cを考える
これらは互いに重なり合いはないものとする
グラフからcノードたち(とそれにつながるエッジ)を取り除いた時
aとbが連結していない2つのグラフへ分離する
この時aとbはcを条件として独立であるとする
大域的マルコフ性(global Markov property)
2つの部分グラフへ分解させるノード集合cを見つけることで
条件付き独立性を同定
任意のノードiに対して、 その近傍のノードたちj∈Niの確率変数さえ固定してしまえば、 xiは残り全てのノードに対する確率変数と独立になる
エッジで直接結ばれていない任意の2つのノードは、 それ以外の確率変数を固定してしまえば互いに独立となる
全てのノードの対がエッジで結ばれているようなグラフ
無向グラフの部分グラフのうち、完全グラフとなっているもの
3つのノードがエッジで結ばれて三角形になっているもの
最小のクリーク
クリークのうち、グラフの他のノードを一つでも加えるともはやクリークでなくなってしまうもの
完全グラフの例と極大クリークたちの例
極大クリークの概念を使って確率モデルを定義
無向グラフの極大クリークcの集合をCと書く
この時、上記の確率分布モデルを考える
Xcは、クリークcの中のノードに対応する確率変数たち
Zは分配関数:Pが確率となるように正規化するために必要な係数
xにわたる和
因子Ψc(xc)はクリークポテンシャルと呼ばれる正の値をとる関数
このポテンシャルを、クリークエネルギー関数Φc(xc)を用いてかくと
分布P(x)は、統計力学におけるギブス・ボルツマン分布になる
後でボルツマンマシンと繋がる
クリークによるモデルの導入について
このモデルは、一般的なマルコフネットワークと深い関係がある
無向グラフィカルモデルでの条件付き独立性は
グラフの分離条件として定義される
任意の無向グラフにたいする確率分布P(x)が、このグラフにたいする局所マルコフ性を満たしていること
分布P(x)がこのグラフの極大クリークに対するギブス分布で与えられること
上述を保証する定理
分離条件として条件付き独立性が綺麗に実現されている確率分布モデルを作るには、 クリークポテンシャルの積の形をとる分布を考えれば良い
ハマスリー・クリフォードの定理が成り立つ大雑把な理由
ペアワイズマルコフ性を使うと
リンクで結ばれていない2変数xiとxjは、 これら以外の変数を全て与えると独立になる
リンクで直接結ばれていないノードたちは、 それら以外のノードの集合で分離されている
上図のモデルを考える
分布は上記の因子化の条件を満たす必要がある
[x2,x3,x4,x5]はどのペアも必ずリンクで結ばれている
よって4変数はΨ23435というこれ以上因数分解できない因子を持つ
[x1.x4.x5]も同様にある因子Ψ145を持たなければならない
以上より分布は上式の形を取らなければならなくなる
これはクリークポテンシャルで与えられる分布となる
調べるべきグラフが与えられるたびに 極大クリーク集合を決定して、これに対するポテンシャル関数を導入することは、 実用上の煩雑さを生む
統計力学的に解釈すると
多くの確率変数を巻き込むクリークポテンシャルを導入することは
ハミルトニアン中に高次の相互作用を入れることに対応する
あまり複雑な確率分布モデルが必要ない場合
マルコフネットワークを簡略化した ペアワイズマルコフネットワーク(pairwise Markov random filed)を用いた方が便利
このモデルでは極大クリークにたいするクリークポテンシャルΨc(xc)全てが 各クリーク中のエッジ(i,j)∈cに付随したポテンシャル関数の積(上記)で表される 特殊な状況のみを考える
ペアワイズマルコフネットワークは上式の席で表される
Εはグラフ中の全てのエッジの集合
ペアワイズマルコフネットワークは
一般性を失った代わりに構造が簡素化されている
そのシンプルさゆえに多くの応用がある
10.2 ボルツマンマシン
10.2.1 隠れ変数なしのボルツマンマシン
確率的な機械学習のモデルであるボルツマンマシンは
エッジが向きを持たない無向
ボルツマンマシンの一例
各ユニットi∈Nには0か1かの値をとる2値確率変数xiが割り振ってある
この確率変数をユニットの状態とよぶ
ボルツマンマシンはこのグラフ上の確率変数たちの同時確率分布を記述する
分布の具体形を書くために、 ユニットをつなぐエッジの意味を解説する
2つのユニットiとjがエッジで結ばれているとする
グラフのエッジすべての集合をεとかくと
(I,j)∈ε
ニューラルネット同様に、ボルツマンマシンにおいても各エッジに対して重みパラメータwijが与えてある
グラフが無向なので添字i,jの順番らは意味がない
このようなユニットに対応した変数と、 エッジに対応した重みによって決定される 上記のエネルギー関数を考える
biはユニットiに対するバイアス
最後の行はWijのなす対称行列Wを用いて行列表示する
bとxはベクトル
このエネルギーに基づく上記の確率分布モデルがボルツマンマシン
統計物理学の用語を借用して
このようにエネルギー関数で表される分布をギブス・ボルツマン分布(Gibbs Boltzman distribution)とよぶ
重みとバイアスを合わせた全パラメータをθと書いてある
Z(θ)は分配関数
Pが確立としての規格化を満たすための因子
ボルツマンマシンを用いた機械学習について議論する
前述の形の分布を用いて
与えられたデータ(観測データ)x(n)を最もうまく説明しそうなマシスンを決定する
ボルツマンマシンP(x|θ)がデータの生成分布Pdata(x)に最も近づくようにパラメータを調整する
ボルツマンマシンと物理
ボルツマンマシンはxjをスピン変数とみなしたときのカノニカル分布に他ならない
バイアスは磁場
重みはスピンの相互作用
通常の統計力学と違い
磁場と相互作用結合定数の値は、場所によって異なる値を持って良い
統計物理では
ハミルトニアン(エネルギー関数)が与えられたときに、 その分布をきめ、スピン変数などの物理量の期待値を計算する
ボルツマンマシンの機械学習では
まず系の様々な配置(様々な物理量のとる値やその平均値)が与えられ
この与えられたデータを最も実現しやすいようなハミルトニアンのパラメータを決める作業を行う
インジング模型とは逆向きのプロセス
実験物理の解析に似ている
10.2.2 隠れ変数ありのボルツマンマシン
前述では、ノードに対応した変数は全て観測データに対応していると仮定した
実際のケースでは以下の2種類がある
観測データに直接対応していない隠れ変数(hidden variable)や潜在変数(latent variable)
観測データに対応した可視変数(visible variable)
グラフのノードに付随した確率変数xを、 可視変数v=(v1 v2 …)Tと隠れ変数h=(h1 h2 …)Tへ分ける
隠れ変数ありのボルツマンマシンの一例
隠れ変数がある場合も前述と同様に
上記のエネルギー関数に対して
エネルギー関数は2種類の変数を含んでいるので詳細に書き直すと
モデル分布は上記で表せる
隠れ変数を導入する利用
データの欠損を考慮に入れる
隠れ変数を使うことでボルツマンマシンの性能を上げられる
用意した確率モデルが与えられた学習データを 説明するための良いモデルである保証はない
いくらパラメータを調整しても、生成分布の良い近似とはならない
仮定したモデル分布の集まりと学習データの間の埋められない溝が、 モデルの表現力の限界として現れる
状況を改善するにはモデルを複雑化してカバーできる範囲を広げる
複雑化ですぐできること
隠れ変数の導入は、見通しも性能も良いモデルの拡張を与える
学習に用いる周辺分布(上式)を、 可視変数のみの拡張されたボルツマンマシンとみなす
続き
この拡張されたモデルP(v|θ)のエネルギー関数は上記となる
右辺を展開すると可視変数に対して高い次数の項がいくらでも出てくる
複雑なエネルギー関数となる
複雑なエネルギー関数でねも独立なパラメータ数は有限
エネルギー関数の全ての項の係数は、元の隠れ変数でありボルツマンマシンのの少数のパラメータだけから決定される
分布かせ一般化されているにもかかわらず、うまくパラメータたちが重み共有されている
高い表現力にもかかわらず過学習が防がれており、性質の良いモデルとなっている
10.3 ボルツマンマシンの学習と計算量爆発
はじめに
ボルツマンマシンによる機械学習では
まず、考えたい問題に適していそうなグラフを用意する
人が頭を使って考える
その後学習へ移る
与えられた訓練データが未知の生成分布からi.i.d.に生成していると考えて
用意したグラフのボルツマンマシンP(x|θ)をこの生成分布に近づける
パラメータθを、与えられた訓練データに対して最適化する
手法
最尤推定
カルパスカリーヌライブラーダイバージェンスに基づく方法
以降は可視変数をvとおく
観測された値であるデータN個をn=1,2,…Nでラベル付けv(n)とする
xと書いたときは、可視変数と隠れ変数を合わせたものとする
10.3.1 隠れ変数のない場合
隠れ変数の無いボルツマンマシンの学習について考える
データを説明するのに元も良さそうなパセメータを選べば良いので最尤推定を利用する
尤度関数
これを最大化するパラメータは
ボルツマンマシンは
データ数が大きいと尤度はとても小さい数になる
対数尤度の最大化
重みもバイアスも合わせてθ=(θI)Tとすると
ボルツマンマシンの定義
これをバイアスで微分すると
右辺第一項
エネルギー関数の微分に由来する項
分配関数のパラメータ微分から得られた右辺第二項
考えているボルツマンマシンP(v|θ)によるモデル平均
同様に重みで微分
前述の微分係数にデータv=v(n)を代入した、 全てのデータに対して足し合わせたもの
ポジティブフェーズはデータ平均なので<vi>data,<vivj>dataとかく
結局勾配は上式となる
極限を与えると
ボルツマンマシンとデータの標本分布の間で、 期待値と2次モーメントという2つの統計量が 一致するようにパラメータを調整すれば良い
経験分布を用いて式を書き換える
経験分布q(v)に対する平均は、データの標本平均そのもの
学習方程式に現れるデータ平均
10.3.2 対数尤度関数の凸性
ボルツマンマシンの学習の理論的側面
学習は、ホルツマンマシンの対数尤度に対する勾配上昇法で実装される
ボルツマンマシンの対数尤度(上式)は凸性を満たす
極値はただ一つ
証明:割愛
ヘルダーの不等式の利用
10.3.3 勾配上昇法と計算量
近似的な数値解を求めるための手法
対数尤度関数の勾配方向にパラメータを更新していき、 収束した点としてその極大点を求める
パラメータの更新のたびに勾配の計算が必要
データ平均とモデル平均の差から求められる
データ平均は計算は容易
モデル平均は上式を計算する必要があり、計算困難
組み合わせ爆発が起こる
変数が100個の場合のクロック1GHzでの処理時間
近年、ボルツマンマシンの期待値を近似的に計算する効率的なモンテカルロ法(CD法やPCD法)の発見があった
10.3.4 ダイバージェンスによる学習
最尤推定ではなくダイバージェンスの観点から導出
2つの確率分布の間の「距離」(類似度や違い)を測る量
ダイバージェンスを最小化することで2つの分布を似せることができる
ボルツマンマシンを学習するには、 その分布を観測データの分布具合に近づければよい
データの経験分布qと ボルツマンマシンPの間のダイバージェンスを考える
これを最小化するパラメータθ*を最適値として採用する
そのためにダイバージェンスを変形する
第一項は経験分布のエントロピー
ボルツマンマシンのパラメータとは無関係なのでダイバージェンスの最小化には効かない
第二項を書き換えると
絶対ラウンディングで描ける
つまり対数尤度の最小化と全く同じになる
10.3.5 隠れ変数のある場合
観測にかからない確率変数hのある場合について
隠れ変数のあるボルツマンマシンは
全変数x=(v,h)の同時分布P(v,h|θ)を記述する
ギブス分布の形で与えられる
観測できるものは、可視変数vの値や、その経験分布
観測データをボルツマンマシンと比較する
同時分布を周辺化して可視変数のみの分布を考える
可視変数だけの周辺化分布P(v|θ)を、 経験分布q(v)に近づけるのが学習
対数尤度関数を最大化する
対数尤度関数を最大化するθ*は上記の方程式の解となる
重みとバイアスパラメータを θ=(θI)T=(bi,wij)Tと一つにまとめて上記と表現する
対数尤度を分布で具体的に書いて微分する
右辺に用いる可視変数の分布は、 隔れ変数ありの場合は上記
xは可視変数と隠れ変数をまとめて表記したもの
この分布をパラメータで微分すると
導入したfIは、 ギブス分布の指数の肩をパラメータ微分して得られる量 パラメータがバイアスの重みによって
この微分係数を対数尤度の微分係数に代入すると
右辺第一項がポジティブフェーズ、第二項がネガティブフェーズ
ネガティブフェーズを書き換えるために Z(θ)=∑xe-Φ(x,θ)から得られる上式を元いる
最終的に勾配は上式になる
学習方程式は上記となる
ネガティブフェーズに由来する学習方程式の右辺は、 ボルツマンマシンの状態和に関する組み合わせ爆発の問題を孕む
左辺は隠れ変数のある場合は単なる標本平均ではなく
モデル分布から得られる条件先分布も考慮に入れた P(h|v,θ)q(v)という確率のもとでの期待値になる
経験分布を与えられたデータの頻度の分布として表すと、 ポジティブフェーズの期待値は上記となる
可視変数がデータ値v(n)を実現した時の 条件先分布を用いて表される
各データごとに分布P(h|v(n),θ)の元てぜ期待値を計算し、 その結果を全てのデータに渡って足し合わせる必要がある
隠れ変数があるボルツマンマシンは組み合わせ爆発がさらに起きて計算が困難になる
各レーンすうを導入すると対数尤度の凸性が失われる
勾配上昇法の反復計算が最大値へ至る保証がなくなる
10.4 ギブスサンプリングとボルツマンマシン
はじめに
ボルツマンマシンの学習には困難が伴う
近似法を導入する必要がある
乱数による確率分布の数値的シミュレーション
乱数シミュレーション
調べたい分布から独立にランダムなサンプルを多数生成し
それらの標本平均により元の分布の期待値をき近似する
つまり
標本P(x)に対してf(x)の期待値を評価したいとき
まずP(x)から独立なサンプル(x1),x(2),…,x(N))を生成する
その標本平均(上記)を期待値の代用とする
大数の法則により、 サンプル数Nが無限大になる極値で、期待値に収束する
モンテカルロ法のサンプルを生成する手法
マルコフ連鎖モンテカルロ法
ギブスサンプリング
10.4.1 マルコフ連鎖
マルコフ連鎖モンテカルロ法 (Markov chain Monte Carlo method,MCMC)
マルコフ連鎖を用いて状態空間全体を広く探索して
サンプルをうまく生成する
マルコフ連鎖について説明
確率変数の時系列からなる確率過程 (stochastic process)
x(0)→x(2)→…→x(t)→x(t+1)→…
確率過程が以下を満たすとき
未来の状態が現在の状態のみで決まり過去の履歴には依らない
数学的な表現
tステップ目(時刻t)への遷移を表す条件付き確率が次の性質を満たす
確率過程の遷移要素がP(x(t)|x(t-1))という具合に、 1ステップ前の情報のみから決定される
分布P(x(t)|x(t-1))の形がtに依らず常に同じ分布であるもの
条件先確率P(x(t)|x(t-1))
マルコフ過程では各ステップ(各時刻)における確率分布P(x(t))は上記で遷移する
一般にp(x(t))は各ステップ数において異なる分布となるので
正確にはステップ数のラベルをつけてp(t)(x(t))と書くべき
以下では省略する
この遷移の式は、P(x(t))が周辺化から得られることと、マルコフ性から直ちに従う
マルコフ連鎖においては、 マルコフ性と連鎖率を繰り返すことで、 同時分布が上記の形になる
この最後の式は上手のような一直線に繋がった 線状グラフの有向グラフィカルモデルになる
10.4.2 Googleとマルコフ連鎖
GoogleのWEBページの検索順位システムであるページランク(PageRank)も、 マルコフ連鎖で設計されている
世界中のwebページがα=1,2,3,…,pという具合に自然数αによりラベル化されている
ある時刻tにとある訪問者(ランダムウェブサーファー)が webページαを訪問している確率P(x(t)=α)は
一時刻前t-1に様々なページを訪れていた確率P(t-1)=1,2,3..)と
様々なページβ=1,2,3,..からリンクを辿ってページαへランダムに飛ぶ遷移確率P(α|β)によって
上記のようにモデル化する
漠然とネットサーフィンをしているときは
あるページからあるページへ飛ぶときに
数分前にどこのページを見ていたかに関係なくリンクから行き先を選択する
このマルコフ連鎖の定常分布の値P(α)が、ページランクと呼ばれる各ページの重要性を点数化したものになる
ページランクについて
ランダムサーファーの遷移確率P(α|β)の決め方についてのモデル
ブリン(S.M.Brin)とページ(L.E.Page)のオリジナルの提唱を修正した、 メイヤー(C.D.Meyer)らのP(α|β)のモデル
もしページβがリンク先{α∈Aβ}を持っている場合では
サーファーは割合0≤d≤1でそのリンク先へ飛び
残り(1-d)の割合で全くランダムに(お気に入りブックマークから選んだり、 適当にアドレスを打ち込んでりして)任意のページへ飛ぶ
割合dでリンクを辿って別のページへ飛ぶ時は
いずれのリンク先ページα∈Aβへも等確率で遷移するものとする
このような遷移確率P(α|β)を改めてGαβと書くと
δ(α∈Aβ)はαがリンク先に入っている時は1、それ以外は0となる量
|Aβ|はβのリンク先の総数
もしページβが一つのリンクも持たない時(Aβ=Φの場合)は、
全てのページへ等確率でランダムにとぶ
世界中にページは全部でp個あるとすると、 確率Gαβは上式となる
G=(Gαβ)をグーグル行列(Googlr matrix)と呼ぶ
Google行列は一意に収束するマルコフ連鎖を定める
その収束先は定常分布P(∞)(α)
10.4.3 定常分布
確率変数がとりうる様々な状態を
整数α01,2,…でラベル付けする
時刻tでの各状態の実現確率たち P(x(t)=1),p(x(t)=2),p(x(t)=3),..を 集めて上記のベクトルを作れる
状態確率分布(state probability distribution)と呼ばれる
状態βから状態αへの遷移確率P(x(t)=α|x(t-1)=β)を、 α,β成分とする行列Tで表記する
遷移確率行列(tradition probability matrix)と呼ぶ
以上より、遷移を記述する式は、 遷移確率分布に対する線形な発展方程式となる
均一なマルコフ連鎖を考えているので、 行列Tはステップ数tに依らないため、結局
この推移行列(T)tがt→∞で、ある有限行列に収束したならば、 マルコフ連鎖の分布π(t)もある(平衡)分布へ収束すると期待できる
このような分布はもはやTの作用では変化しないはず
なぜなら収束値は平衡の条件π(∞)=Tπ(∞)を満たすはず
π(∞)の第α成分をP(∞)(α)と書くと、 この定常方程式は上記の条件式となる
もはや推移行列で変化しなくなったこの分布を
マルコフ連鎖は必ずも不変分布へ収束しない
以下の2つの条件が満たされている時 一意な不変分布へ収束する
どんな状態も、有限ステップで任意の状態へ遷移できる Tはより小さな部分行列へ帰着できない
連鎖が、状態推移のループに囚われてしまうことはない
詳細釣り合いの条件 (与えられた分布Pが不変分布であるための十分条件)
与えられた推移行列Tに対して詳細釣り合いを満たすPが得られれば
それが連鎖の収束先である不変分布ということになる
10.4.4 マルコフ連鎖モンテカルロ法
マルコフ連鎖モンテカルロ法(MCMC)について考える
ある分布P(x)からモンテカルロ法を使ってサンプルを生成する
P(x)自体は複雑なので、ここから直接乱数をサンプリングするのは楽ではないとする
この分布を定常分布にもつマルコフ連鎖が用意できたとする
P(x)自体ではなく、 そこへ収束するマルコフ連鎖P(t)(x)から サンプルを発生させるのがMCMC
連鎖をしばらく走らせた後のサンプルは、 ほぼ定常分布からのサンプルとみなせる
ここで用いらるマルコフ連鎖は、 一般には詳細釣り合い条件を活用してデザインされる
実際には収束の早い(高速混合の)マルコフ連鎖を設計する部分が一番難しい
MCMCの実現方法
メトロポリス・ヘイスティング法
スライスサンプリング法
ギブスサンプリング法
10.4.5 ギブスサンプリングとボルツマンマシン
ギブスサンプリング(Gibbs sampling)では、 簡易な方法で設計したマルコフ連鎖を用いる
サンプリングアルゴリズムもシンプルになる
ボルツマンマシンのような多変数の確率変数ẋ=(x1,x2,…,xM)に関する分布からのサンプリングを考える
同時分布P(x1,x2,…,xM)から ひとまとめに(x1,x2,..,xM)をサンプリングするのは大変
上記からIごとにxiを一つずつサンプリングする
サンプリングの順番(iによるラベル付け)は好きにして良い
(x1(t),x2(t),..,xM(t))を一気に連鎖するのではなく、 一つずつ順番に推移するギブス連鎖(Gibbs chain)を用いる
MCMCによる多変数分布からのサンプリング作業を 小さなブロックごとに分けたモンテカルロ法
このようなサンプリング作業は、 条件付き確率分布の形が特定できる場合に用いることができる
ボルツマンマシンの例での解説
ボルツマンマシンは局所マルコフ性(local Markov property)という性質を満たす
ボルツマンマシンのユニットi以外の変数の値をx-i=(x1,x2,…,xi-1,xi+1,…)Tとかく
条件付き確率の定義から、 ユニットI以外の実現値がx-iで与えられた時の xiの完全条件付き分布(fully conditional distribution)は
分母と分子に現れる因子e-Φは、 xiに依存する項exp(bixi+∑j∈Niwixixj)以外は訳文されてしまうので
結局確率は上記とコンパクトに書ける
簡単のために上記とした
この量はiの周辺のユニットの状態のみから局所的に決められる量
周辺の情報から補正を受けたバイアスのようなもの
本来はi以外の全ての状態x-iを知らなければ 決められないはずの条件付き確率が
実際にはP(xi|x-i,θ)=P(xi|xj∈Ni,θ)という具合に
周辺のユニットj∈Niの状態だけから決定できてしまう
変数間の相関は局所的なものに過ぎない
ボルツマンマシンの満たすこの性質が局所マルコフ性
局所マルコフ性のおかげで
Niの状態さえ決まってしまえば、xiはもはや他の変数とは独立
xiと{xj|j∉[Ni,i]}は{xj|j∈Ni}を条件として条件付き独立性を満たす
上記の確率はiのNiの情報だけから効率的に計算することができる
P(xi=1|x-i,θ)=σ(λi)からxiをサンプリングする方法の解説
区間[0,1]から一様な(擬)乱数を発生させる
この乱数の値がσ(λi)以下となった場合はxi=1, σ(λi)を上回った場合はxi=0がサンプリング値であるとする
この方法でサンプリングした値たちは分布P(xi|x-i,θ)に従っている
以上を元にギブスサンプリングのアルゴリズムを説明する
モデル分布の確率変数がx=(x1,x2,…,xM)Tと M個の1変数に分けられているとする
モデル分布から作った条件付き確率 P(xi|x-i,θ)によってギブス連鎖(上記)を作る
ギブスサンプリングのアルゴリズム
Iとtを動かしながらサンプリングを繰り返す
得られたサンプルの系列をマルコフの連鎖とみなすと上記のプロセスが得られる
MCMCの考え方に従うと、十分時間が経ったのちのx(T)は定常分布からのサンプルとして用いることができる
ギブス連鎖の定常分布が 実際に元の分布(ボルツマンマシン)P(x|θ)であることの証明
M=2のギブス連鎖
をマルコフ連鎖とみなすと、連続の構造からその推移確率は上式となる
もし、時刻tでx(t)がボルツマン分布P(x(t))に従っているとすると、 次の時刻の分布は上式となる
この式を変形すると
ギブス連鎖の不変分布がボルツマンマシンになっている
マルコフ連鎖が平衡に至り、 不変分布を与えていると みなせるようになるまで走らせること
時間がかかる
連鎖が初期状態の情報を喪失して平衡に至るまでにかかる時間
これらの時間を見積もる手段がない
2つのアプローチ
一本の連鎖から感覚をえいて次々とサンプルを生成する方法
ランダムな多数の初期値から独立に走らせた複数の連鎖から、独立に一つずつサンプルを採用
機械がくしゅうでは2つの中間(ミニバッチ法)が用いられる
10.5 平均場近似
モンテカルロ法は数値的な近似法
理論的な近似法
平均場近似(mean-field approximation)
ボルツマンマシンの期待値計算はなぜ難しいのか?
各ユニットに付随した確率変数たちが複雑に相関しているから
インジング模型として解釈すると、スピン間に相互作用があるために難しい多面状態となっている
このような相互作用を担っているのは、 エネルギー関数(ハミルトニアン)の中で 異なるユニット同士を混ぜ合わせる重みの項
重みが全て0であればボルツマンマシンの分布は上記となる
独立な一変数の分布の積に簡単化
平均場近似では、
期待値計算が飛躍的に簡単化するようにボルツマンマシンとは別に、 各変数が独立となっている分布のモデル(テスト分布)の集合をまず用意する
このテスト分布の中で最もボルツマンマシンと近いものを探し、 それをボルツマンマシンの近似として採用する
どのようにして答えを探すのか?
テスト分布は全変数が独立な分布なので、 一般にその分布の形は上記となる
Qi(xi)は、一変数に対する都ある確率分布
まだQi(xi)の具体的な形はわからない
Q(x)がボルツマンマシンに最も近くなるという条件から決定される
カルバックライブラーダイバージェンスを最小化する
テスト分布QとボルツマンマシンPのダイバージェンスは上記となる
DKL(Q||P)の最小値は、 Qが確率として満たすべき条件(上記)のもとで探す必要がある
高速条件付き最適化問題は、ラグランジュ未定係数法で解く
ラグランジュ関数Lを最小化する
Λ:ラグランジュ未定係数
ラグランジュ関数Lをこの未定係数Λiで変分すると、 得られるオイラーラグランジュ方程式は高速条件を再現する
LをQi(xi)で変分して得られるオイラーラグランジュ方程式は上記となる
この2つの方程式を解くと、探している分布が溶ける
分布の形を解くために、 右式の右カッコ内に出てくる第一項のうち、 k=iの部分を上記のように変形する
k≠iの部分では、 現れる確率変数全てについて期待値をとってしまうので、 最終的には確率変数によらない定数となる
ボルツマンマシンの具体形を代入すると
最後の行でxiに依存しない項は、Qj≠iの形などから決まる定数
ここでテスト分布に関する確率平均の平均値を導入
平均場(mean-field)
平均場近似の方程式は
この方程式の解として得られるテスト分布の形は
ラグランジュ未定係数Λiの自由度はもう一つの条件である規格化(上記)を 実現できるように比例定数を固定する
最終的に上記の分布が得られる
元のボルツマンマシンの条件付き分布
注目しているi以外の確率変数は その平均値で置き換えてしまっても構わない
以上より平均場近似を実現する分布の形は上記となる
xiに関する分布は、i以外のユニットの期待値μj(≠i)で与えられる
この期待値を計算する
xiの分布をユニットx(j≠i)で決める
x(j≠I)の分布をxiを含むユニットたちxk(≠j)の期待値で決める
上記の定義が矛盾しないためには
xiの期待値が、他のユニットの分布に現れる平均場μiと一致する必要がある
上記のもとでxiの期待値を計算したものがμiであるとすると
条件としては上記になる
自己無頓着方程式(平均場方程式)
シグモイド関数で表すと公式として
物理でのインジング模型では自己無頓着方程式に現れ寝る関数はtanh(・)
ボルツマンマシンの場合はシグモイド関数となる
xiが0か1をとる2値変数とした為
無頓着方程式は、全ての平均場の値μiを決定する方程式
これを解けば分布の具体的な値もわかる
非線形な連立方程式なので、解析的には解けない
逐次代入法で解く
期待値のランダムな初期値からスタート
t=1,2,3,..の順に代入計算を反復する
繰り返し計算が収束した結果の値μi(T≫1)を、 平均場方程式の数近いとする
上記の式で表される独立方程式をボルツマンマシンの代用として用いる近似
この近似てだは期待値の計算が著しく簡単化する
学習方程式に現れる期待値は単に上記と近似するだけ
全変数が独立な為、1変数の分布Qi(xi)のもとでの計算をするだけ
物理的な解釈だと
インジング模型の多体問題を一体問題の集まりとして近似する
単純化の代償として変数間の相関を失っている
あまり近似としては精度がよくない
独立性の要請を少し緩めたものが提唱されている
ベーテ近似
クラスター変分法
10.6 制限付きボルツマンマシン
はじめに
隠れ変数に由来する問題をマイルドにするような制限をバンディッドに課す
グラフ構造に強い制約がおかれた、隠れ変数を持つボルツマンマシン
構造図
可視変数は白、隠れ変数は灰色
RBMでは、可視変数同士、および隠れ変数同士の相互作用は禁止されている
この制約を課したエネルギー関数は上記となる
同時分布は
グラフ構造に強い制約を置いたにもかかわらず、 隠れ変数を多くしていけば任意の分布を望む精度で近似できる
RBMの著しい性質の一つ
グラフ構造に由来する条件付き独立性
隠れ変数を固定したときの可視変数の分布を計算する
乗法公式から上記となる
bTv+VTWhはviの一次関数なので、 右辺の分母は因数分解して解くことができる
その結果、条件付き分布は
隠れ変数の値を固体すると、もはや可視変数同士は独立な変数となる
同じ性質が隠れ変数に対しても成り立つ
シグモイドで与えられるベルヌーイ分布
ただし
RBMでは条件つき独立性により、 P(v|h,θ)とP(h|v,θ)が1変数ベルヌーイ分布の積で与えられる
条件付き独立性をかち要するとRBMのギブスサンプリングも共て簡単にできる
10.6.1 制限付きボルツマンマシンの学習
一般的なボルツマンマシンの尤度の勾配や 学習方程式を特殊化すればRBMに対する公式になる
バイアスbjの勾配はRBMにおいて
バイアスcj方向の勾配では
条件付き独立性を用いると上記のように簡素化できる
従って勾配は上記となる
重みに関する勾配は上記となる
勾配上昇法では更新量∆θ=η/Nx∂L(θ)/∂θでパラメータを極大値に近づけるので、更新式は
学習方程式は
10.6.2 ブロック化ギブスサンプリング
完全条件付き分布P(xi|x-i,θ)から一つ一つ変数をサンプリングしていくMCMC
サンプリングしようとしている変数以外の全ての状態-iが必要になる
局所マルコフ性がこの計算を軽くする
RBMの性質である条件付き独立性(上記)は、 一種の局所マルコフ性を表す
可視変数vは隠れ変数が固定された後では完全に独立である為
隠れ変数の実現値を全て与えた後では可視変数のサンプリングは、 独立な各成分viを単にそれぞれP(vi|h,θ)からサンプリングするだけ
隠れ変数に対しても同様
可視変数と隠れ変数を交互にギブスサンプリングすることで
相関がない簡単な分布からサンプリングを実現できる
ブロック化ギブスサンプリング (blocked Gibbs sampling)
ブロック化ギブスサンプリングの手順
各変数に対してランダムに2値[0,1]を選んで初期値v(0)を作る
この値から分布P(hj|v(0),θ)を計算する
そこからサンプリングしたhjの値をhj(0)∈[0,1]とする
これらを全てのjに対して集めたものを𝒉(0)と書く
次に分布p(vi|𝒉(0),θ)を計算する
そこからvi(1)∈[0,1]をサンプリングしてv(1)を作る
サンプリング作業の繰り返し
からサンプル例が作られる
十分にこの連鎖を走らせた後でのサンプル値(v(T),h(T))を複数採用して、 それらの標本平均によりモデル平均を近似する
計算資源を大幅に食う
コントラスティブ・ダイバージェンス法(CD法)で改善できる
10.7 コントラスティブダイバージェンス法とその理論
はじめに
ギブスサンプリングによる勾配上昇法を大幅に近似した高性能なパラメータ更新法
CD法はギブスサンプリングを微修正したもの
Tステップコントラスティブダイバージェンス法(CD-T法)
重みパラメータwijのアップデートは上記のように更新される
比例係数は学習率η
特に訓練サンプル一つv(n)のみからなる場合を考えた
複数のサンプルによるミニバッチ学習では
(ミニ)バッチ上でこのアップデートの訓練サンプル平均を取った値を用いる
右辺のポジティブフェーズでは、厳密な勾配計算の結果から変更点は一切ない
ネガティブフェーズはMCMCを念頭においたモデル平均の近似値
データの経験分布q(v)からのサンプリング (ランダムに選んだ訓練サンプルv(n)を 連鎖の初期値として、V(0)=v(n)を用いる
ギブスサンプリングによる勾配上昇方が CD法においてどのように修正・変更されているのか
第一の修正点
ギブス連鎖の初期値の取り方
ギブスサンプリングでは、 各成分にランダムに0か1の2値を割り振ったベクトルを初期値v(0)とする
CD法の連鎖の初期値は、 訓練データから選んだ一つのサンプルv(0)=v(n)とする
cD法での連鎖は上記となる
連鎖をTステップ走らせて採取したサンプル値v(T)を勾配更新に用いる
TステップCD法はサンプルが一つで良い
期待値を一つのサンプルで大胆に表す
重み以外についての、訓練サンプルv(n)を用いた場合のパラメータのアップデータ
サンプルv(ni)を用いて計算した∆θ(t)により、 パラメータをθ(t+1)←θ(t)+∆θ(にほひ)とアップデート
訓練サンプルv(ni+1)を新たに選び直して 同様に更新θ(t+2)←θ(t+1)+∆θ(t+1)を行、これを繰り返す
一種のオンライン学習となっている
xxx
CD法は単一連鎖でも十分だが、ミニバッチと組み合わせることもできる
せいぜい100サンプル程度
10.7.1 コントラスティブダイバージェンス法はなぜうまくいくのか
なぜうまくいくかの理論理論的な説明
対数尤度勾配の近似値として実際にコントラスティブダイバージェンスが得られることを説明
最尤法に対する本来の勾配上昇法では、 対数尤度の勾配(上記)によるパラメータ更新 wij←wij+η∂L/∂wを用いる
10.7.2 コントラスティブダイバージェンスの最小化
コントラスティブダイバージェンス法を、 特殊な目的関数の最適化という観点から解釈する
CD法は コントラスティブダイバージェンスという目的関数の 勾配上昇法を近似した学習法になっている
10.7.3 持続的コントラスティブダイバージェンス法(PCD法)
CD法によるオンライン学習では、
パラメータθを一度更新した後は 改めて一つの訓練サンプル(あるいはミニバッチ)を選び直して
これに関して更新量∆θを計算し、再びパラメータを更新する
上記の作業を繰り返すと、 更新の旅にマルコフ連鎖を新たな訓練サンプルで 毎回初期化して走らせる必要がある
そのために、平衡に至ることはなく、 長く連鎖を走らせるてもかかわらず 定常分布からのサンプリングとはならない
マルコフ連鎖を一度走らせたら 初期化せずに走らせ続けて勾配更新を繰り返す
CD法で用いたサンプル値v(0)をそのまま次のマルコフ連鎖の初期値に使う
PCD-T法でのt回目のパラメータの更新は上記になる
T回目に用いる(nt番目の)訓練サンプルv(ni)と、 この訓練サンプルとは関係なく走り続ける マルコフ連鎖からの(txTステップ目の)サンプルv(tT)によって CD法と類似の更新量は
PCD-T法のアイデア
学習率があまり大きくないとすると
パラメータの値もそれほど劇的に更新されない
モデル分布の値P(v,h|θ+∆θ)もさほど変わらない
前の更新ステップ時の分布から取ったサンプルも、 更新時の分布からのサンプルとさほど変わらない
前のステップでのサンプルによって初期化したギブス連鎖も、すぐ混合すると期待される
すでに定常状態に至っていた連鎖は、 パラメータ更新後もほぼ定常分布にと止まるので
良いサンプルが得られる
今まで走らせてきた連鎖をできるだけ活用しようとするのがPCD法
PCD法以外の、ギブス連鎖の混合を早める手法
高速持続的コントラスティブダイバージェンス(fast persistent contrastive divergence;FPCD法
レプリカ交換法(パラレルテンペリング)
10.8 ディープビリーフネットワーク
はじめに
機械学習の分野では長らく、目的関数のamazon が保証されたシンプルなモデルの研究が主流を占めてきた
局所的最適解の問題のために学習が極めて 困難とされてきた多層ニューラルネットなどは、 実用に供しない非現実的なものとされてきた
2006年のヒントンらによるディープなニューラルネット学習に成功する
これが深層学習につながる
深層化されたアーキテクチャ
一例
階層化された多層確率的モデル
一般にはL層h(1),h(2),…,h(l)を考える
各層のユニットが同じである必要はない
最上層を除いて、上から下への有向グラフになっていることが特徴
最上2層だけがボルツマンマシンのように無向グラフになっている
同じ層の間での結合はない
ベイジアンネット(シグモイドビリーフネット)と制約付きボルツマンマシンのハイブリッド
グラフィカルモデルの分布は上記となる
W(I)はI-1層とI層をつなぐ重みの行列
それらパラメータを全ての層についてまとめてθと書いている
簡単のためにバイアスは省いているが、バイアスを入れても良い
最下層である可視層は第0層目とカウントする
具体的な分布の形
最上段の2層(h(L-1),W(L)
2層からなる制限付きボルツマンマシンと同じ分布の形となる
中間層に対する条件付き確率
シグモイドで与えられるベルヌーイ分布
この分布は上層の変数値が与えられたとき
どれくらいの確率で下層の変数値が生成するかを表す
上層の変数h(l)は深い層における説明因子のようなもの
DBNは上層から下層へと向かう生成モデル
10.8.1 DBNの事前学習
DBNやDBMなどのディプなアーキテクチャの学習も、 原理的には最尤推定で行われる
可視変数の周辺分布(上式)
に対する(対数)尤度関数を最大にする
組み合わせ爆発による計算量の観点と、 局所的最適解へ陥る危険性の2つの点で問題
学習をスタートさせる際の 良い初期値を用意する戦略
学習のプロセス
1事前学習
パラメータの良質な初期値を探し、その値をセットする
2微調整
勾配法などでパラメータの微調整をする
まず、事前調整について解説
DBNの事前学習は、 層ごとの貪慾学習法(greedy layer-wise training)で行う
この方法は大雑把には、 多層モデルの各隣接2層のペアを独立したRBMとみなして
各ペアごとにRBMとしての学習を行いパラメータを更新する
このような操作を下層側から上層側へむけて順次行う
最終的に各ペアから得られたアップデータ後のパラメータを、事前学習の結果とする
近似的に分布がRBMとみなしてアップデートすることで、 本格的な学習のための良い初期値が得られる
ディープビリーフネットの事前学習
ビリーフネットでは弁明効果(explaining away effect)に由来する困難が伴う
推論プロセス(左の波線)と生成プロセス(右の実践)
h(l)の各成分変数が元々独立であったとしても、 h(l-1)を与えた後は 推論のための事後確率P(h(l)|h(l-1))は 条件付き確率とはならずに、複雑な分布になる
DBNでは上から下へ向かう条件付き分布が シグモイドで与えられ、簡単な形をしている
逆向きの条件付き確率は上記のような複雑な形となる
学習中は2層のペアをRBMとみなして 事後確率も上記のようにシグモイド確率で近似する
事前学習のアルゴリズム
事前学習前のパラメータの初期値は全て0にセットする
訓練データ{v(n)}を用いて、 重みパラメータを下層側からアップデートする
1. vとh(1)の2層
まず、(v,h(1))だけを取り出してこれをRBMとみなす
この2層の学習中は他の層は無視する
(v,h(1))をRBMとみなしているので 同時分布もRBMとして近似される
このRBMに、訓練データ{v(n)}を用いた学習を適用し
重みW(1)をアップデートする
2. h(1)とh(2)の2層
vとh(1)の2層の学習が終わったら、
次は(h(1),h(2))だけに注目する
これらをRBMとみなす
このRBMをCD法などで学習させて、重みW(2)をアップデートする
この学習のために「可視層」h(1)にセットするための訓練データはどのように準備するのか?
xxxx
3. h(l)とh(l+1)の2層
更に上層(h(l),h(l+1))も、l=2,3,4と同様の学習を繰り返す
RBMとみなした2層を
上記の式でサンプリングした 訓練データで学習させて重みW(l+1)を更新する
DBNをRBMに分けて学習させることで、 終的に全ての重みがアップデートとできる
DBN全体の学習をする際の良い初期値となる
10.8.2 BDNの微調整
事前学習で得られたパラメータ値を初期値として DBNを全層まとめて学習すること
事前学習により
パラメータには大まかに訓練データの情報が織り込まれる
更に前走での家具臭を行うことで
パラメータを微調整しパフォーマンスをあげる
微調整するための手法
DBNを順伝搬型ニューラルネットに転化する方法
事前学習後のDBNの近似的事後確率 P(h(I-1)|h(I),θ)≈Q(h(l-1)|h(l),W(l)に平均場近似を用いる
hjtの平均場μj(l)を与える自己無頓着方程式は
活性化関数がシグモイドである順伝搬型ニューラルネットの伝搬式そのもの
上図のように上から下の生成プロセスP(h(l-1)|h(l),W(l))もあるので 両方をニューラルネットとして展開して自己符号化器に置き換える
自己符号化器に転化したDBN
10.8.3 DBNからのサンプリング
機械学習におけるDBNは生成分布のモデル
学習の後には可視層の変数の実現値をこのモデルから生成させる
そのために層ごとにサンプリングを繰り返す
最上2層のRBMにおいて、 しばらくブロック化ギブス連鎖を走らせることでh(L-1)をサンプリングする
これより下層では、下層に向かう条件付き独立なシグモイド確率として与えられているので
それより最終的に可視層のサンプルvが得られる
伝承サンプリング(ancestral sampling)や、先祖からのサンプリングとよぶ
10.8.4 DBNでの推論
与えられた入力に対し、 グラフの矢印を逆に辿りながら、 上層の説明因子(隠れ変数)の値を計算する
下層から上層に向かう条件付き確率(事後確率)が必要
弁明効果のためにとても複雑
上層へ向かう条件付き分布をシグモイド確率で禁じてサンプリングを容易にする
10.9 ディープボルツマンマシン
はじめに
DBNは有向グラフと無向のRBMをつなぎ合わせた、 少し人為的な多層のアーキテクチャ
もっと自然なモデルとして、全てのリンクを無向とした、深層化されたRBM
ディープボルツマンマシン(deep Boltzman machine;DBM)
DBMのグラフ構造は、DBNのグラフから向きを取り除いただけ
特殊な結合パターンを持ったボルツマンマシンの一例
エネルギー関数
で与えられるギブス分布
DBMはRBMと同じように同一槽内の結合を持たない
隣接層間にしか結合は存在しない
各変数の完全条件付き分布は
中間層は上下の層と結合しているために、引数に2種類の項が現れる
10.9.1 DBMの事前学習
DBMの学習においてもDBNと同様に、 層ごとの貪慾学習法による事前学習が用いられる
使用する技術的な細部はDBNの場合と同じ
一つだけ相違点がある
事前学習の際には元のDBMのグラフをそのまま用いることはせずに、 拡張されたグラフを使ってパラメータを更新する
拡張法は上図のように、 可視層と最上層それぞれにコピーを加えて倍増させる
新しく増えたリンクのコピーはオリジナルのものと重みを共有させているため
独立なパラメータは増えない
コピーが導入されない中間層の重みは、その値を2倍にする
この新しいボルツマンマシンを 2層ごとにRBMとみなして 下層から上層へ学習させていく
その結果得られたアップデートされたパラメータの値を 事前学習後の(元のグラフに対応した)DBMのパラメータとする
事前作業の意味を各層について解説する
1. vとh(1)の2層
(v,h(1))に注目する
この2つの変数の完全条件付き分布は
赤い部分hj(1)がRBMに加えられた項
この項はW(2)やh(2)に依存する
つまりh(1)層は上からくる結合の効果を含んでくる
無理やりこの2層(v,h(1))だけを 切り出してRBMとみなすと、 上からの結合の効果が失われる
∑kwjk(2)hk(2)の効果を補うために、 (v,h(l))間の結合∑iwij(1)viによってそれを代用する
つまり、事前学習中は上記のモデルで近似する
これは可視層を2倍にしたRBMに他ならない

2. h(l)とh(l+1)の2層
次に中間層(h(l),h(l+1))に注目する
この2層の完全条件付き確率は上記となる
赤色で書いた余分な項を含む
同様にh(l)とh(l+1)の2層だけを取り出すとh(l-1)やh(l+2)との結合は失われる
学習中は上記のように補う
事前学習中は中間層の重みW(l+1)を2W(l+1)と2倍にすることに対応

3. h(L-1)とh(L)の2層
最後に最上層の(h(L-1),h(L))に注目する
これらの完全条件付き分布は上式となる
再び赤色を補うために、事前学習中は上式に修正する

10.9.2 DBMの微調整
パラメータの微調整についての解説
DBM全体をまとめて最尤推定で学習させる
計算量の問題から、最尤法を近似した学習法が必要
対数尤度の勾配に現れる2項に分けて、 それぞれ議論する
勾配のポジティブフェーズは、期待値(上式)の計算が必要
この期待値に現れる 組み合わせ爆発を解消するために、 平均場近似を用いる
可視層を訓練データv(n)に 固定した時の分布に平均場近似を適用する
平均場を
決める自己無頓着方程式は上式になる
これを逐次的に解けば良いが、 双方向性の結合が計算量を格段に増やしている
平均場の値が決まればポジティブフェーズはそれらの標本平均で近似できる
勾配のネガティブフェーズは、モデル分布の期待値
ギブスサンプリングで近似する
DBMの微調整では、 事前学習で得られたパラメータ値を、 勾配上昇法の初期値として用いる
ネガティブフェーズを評価するために、 まず初期値に対する分布(上記)から、 M個の独立なギブス連鎖を走らせる
各連鎖の初期値はそれぞれランダムに初期化した値を使う
バーンインの後、この多重連鎖をそれぞれから一つずつサンプルセットを生成させる
このmはどの連鎖からサンプリングされたのかをラベルする
このようにして得られたM個のサンプルのセットを 用いてネガティブフェーズを近似する
以上のネガティブフェーズとポジティブフェーズと 合わせてパラメータを更新する
xxx
10.9.3 順伝搬型ニューラルネットへの変換
学習後のDBMは、 順伝搬型ニューラルネットで置き換えることで 確定的なモデルとして使うことができる
DBN同様、 順伝搬型ニューラルネットへの置き換えを用いて、 誤差逆伝播法を用いたパラメータの調整もできる
DBMノバアイハグラフが無向であるため新しい要素が入ってくる
得られた順伝搬型ニューラルネットは分類器として使うことができる

11 深層強化学習

はじめに
正解ラベル付きの訓練データかせなくても、アルゴリズムがトライアンドエラーを通じて自発的に学習を進める
アルファ碁のアルゴリズムを理解することを目標として深層強化学習を学ぶ
11.1 強化学習
はじめに
GoogleのDeepMindによるアルファ碁
強化学習のセットアップでは学習対象が未知の環境の中で様々な行動をとる
未知の環境の中でのロボットの動作
コンピューターにゲームの好リュク法を学ばせる
11.1.1 マルコフ決定過程(マルコフ決定過程(MDP)の概要とアルゴリズム及び実装例について)強化学習の基本的セットアップ
強化学習ではゲームが始まって終わるまでの 一連の流れを一つのエピソード(episode)と呼ぶ
厘差時間t=0,1,2,…のモデルを考える
一連の流れ
時刻tに環境の状態s(t)を観測したエージェントは、 何らかの行動原理に従って行動a(t)を選択して実行する
行動を受けた環境は状態をs(t+1)へ変化させる
エージェントに報酬r(t+1)を返す
行動はどうして選ばれるのか
エージェントの持つ方策(policy)πという基準に従って選択すると仮定
方策は状態を観測したときにどのような行動を選ぶかを表現するもの
モデルが決定論的か確率論的かに従って上記の写像、 あるいは確率分布を与える
π(a|s)は条件付き確率
本書では方策は一定とする
環境から受け取る報酬を最適化(最大化)するπを学習する
実際に最大化するのは
即時的な報酬r(t)ではなく
ある方策を選び続けた時に得られるであろう報酬の総額
割引現在価格の総和(累積報酬)として求まる利得(利得)(上式)を考える
右式を最大化する
0<γ≤1は割引率(discount rate)
将来の予測せぬ変化を単純化して取り込んだり
将来の報酬にどれだけ重さを置くのかという態度を表現する
利得r(t)は確率変数としてモデル化される
最大化するのは期待値
強化学習のフレームワークでは、 環境の状態もエージェントの行動も報酬も全て確率変数として扱う
確率モデルに過程をおく
状態変化は遷移確率で記述可能
エージェントの行動は環境からの情報を得て決定
時刻tで状態s(t)=sにあった環境が、エージェントが選択した行動bh, (Pとqが)A2Cのbh, によって次の状態s(t+1)へ推移する確率
マルコフ過程の仮定
次の状態を決めるのは現時点の情報のみで、それより昔の履歴は一切関係しない
状態の遷移を表す確率は、 取りうるすべての確率を足し合わせることで
報酬r(t+1)は、行動により状態がs(t+1)=s’に遷移したことと同時にエージェントに渡される
以上より時刻t+1で得られる報酬の条件付き期待値は上式となる
さらにとりうる行動aや次の状態についても期待値をとると
11.1.2 ベルマン方程式と最適方策
歩きまった方策πをとり続けた場合に 将来にわたって得られる利得の期待値

条件付き期待値の性質を使ってこれを少し変形すると
さらに
利得の定義から漸化式が成り立つ
以上まとめると状態価値関数に対するベルマン方程式として上式になる
動的計画法などの基礎になる重要な方程式
さらに価値行動に対するベルマン方程式
価値関数とベルマン方程式は強化学習でどのように役立つのか?
良い方策を価値関数を用いて定義
2つの方策πとπ’があり
全ての可能な状態sに対して上式が満たされているとする
Πをπ’と同様か優れた方策であると定義
もっとも優れた方策

ある最適方策π*に対してベルマン方程式を適用すると
ここで
xxx
ベルマン最適方程式
動的計画法などの基礎になる重要な方程式
10.1.3 TD誤差学習
方策を固定した時の状態価値関数Vπ(s)を学習し、 将来に得られる利得を予測
学習を行うためには、 時刻tにおいて状態s(t)=sのもとで、 とある方策に従って行動し、 その結果得られた経験(報酬)を元にして 価値関数Vπ(s)のアップデートを行う
モンテカルロ法
はじめに状態s(t)=sが観測されたのち、 利得が確定するまで方策に従って状態の観測と行動を繰り返す
利得R(t)が算定された後で、上式のように価値関数の値を更新する
ηは学習率
価値関数の推定値のうちη割だけ、 あるエピソードで観測された利得R(t)によって置き換える
状態価値関数を、実際に観測された利得に近づけていく
モンテカルロ法ではR(t)の値が必要なため、 1回の更新をするためにエピソードの終わりまで待つ必要がある
コストがかかる
解決するために、見込み推定値で代用

TD誤差を埋めるような価値関数の更新
TD法
10.1.4 Q学習
TD法ではVπ(s)を学習することで方策πに対する利得を予測し最適な方策πを探る
次に行動価値関数Qπ(s,a)を学習することで、Qπを通じて最適な方策を見つける手法を考える
11.2 関数近似と深層Qネット
11.2.1 Q学習と関数近似
11.2.2 深層Q学習
11.3 アタリゲームとDQN
11.4 方策学習
11.4.1 勾配上昇法による方策学習
11.4.2 方策勾配定理の証明
11.5 アルファ碁
11.5.1 モンテカルロ器探索の考え方
11.5.2 SL方策ネットワークpa
11.5.3 ローカルアウト方策Pπ
11.5.4 LR方策ネットワークPp
11.5.5 価値ネットワークV
11.5.6 方策と価値ネットワークによるモンテカルロ木探索

付録A : 確率の基礎
A.1 確率変数と確率分布
A.2 連続確率変数と確率質量関数
A.3 期待値と分散
A.4 情報量とダイバージェンス
付録B : 変分法
B.1 汎関数
B.2 オイラー・ラグランジュ方程式

コメント

  1. […] これならわかる深層学習入門 (機械学習スタートアップシリーズ)読書メモ […]

タイトルとURLをコピーしました