ディープラーニングの概要

11.ニューラルネットワークとディープラーニング

◆ニューラルネットワークの基礎的な知識を理解する

◆ニューラルネットワークとディープラーニングの関係を説明できる

◆ディープラーニングの学習に必要なデータ量や計算リソースについて理解し、

 ディープラーニングが適用可能な場面を挙げることができる

◆CPU・GPU・TPUの特徴をそれぞれ説明できる

◆GPUやTPUがディープラーニングの学習・推論に適する理由を説明できる

 

キーワード

【】:【】:【】:【】:【】:【】:【】:【】:【】:【】:

 

 表現学習

 

単純パーセプトロン

ニューラルネットワークは、人間の神経回路を模した数理モデル。 

1958年 単純パーセプトロン 入力層と出力層からなる。 

複数の特徴量(入力)を受け取り、1つの値を出力する。

出力値を0か1とすることで二値分類ができる。

また0~1の値を出力する場合は、シグモイド関数を用いる

他のニューロンから信号を受け取り、一定の信号を受け取ると次のニューロンに信号を送る

 

入力値の重要度・貢献度を数値化したものを重みという。W1,W2,W3

正しい予測ができるように重みを調整することを学習という。

 

   

 

モデルの自由度を挙げるためにバイアスを使用する b

意図的に偏りを作ることで求める結果を出力しやすくする。

 

次の層に受け渡すときの調整役が活性化関数

 

 

多層パーセプトロン

多層パーセプトロン は、入力層・隠れ層・出力層にわかれている。

非線形分類が可能になった。

層が増えることで重みも増える。

誤差逆伝播法:出力層から入力層にかけて重みを調整していく手法

 

モデルの学習

【パラメータ】:正しく予測するために最適化すべき値(重みetc)

        学習とはパラメータを最適化手法によって求めること

【ハイパーパラメータ】:最適化計算で求めることができないパラメータ

 

ニューラルネットワークのアプローチ:

 モデルの予測値と実際の値を一致させる(誤差関数を最小化する)

 

【誤差関数】:予測誤差 最小化する 損失関数ともいう

 

ディープラーニングの基本

ディープラーニングは、ニューラルネットワークを応用した手法で

人工知能の研究分野(機械学習と同様)

モデル自体は。ディープニューラルネットワークと呼ぶ

 

ハードウェアの制約の進歩

【CPU】:Central Processing Unit

【GPU】:Graphics Processing Unit 特にディープラーニングに貢献 

     映像や3DCGなどの並列演算処理に特化したデバイス

【GPGPU】:General-Purpose computing on GPU 画像以外の目的での使用に最適化されたGPU

【TPU】:Tensor Processing Unit テンソル計算処置に最適化 機械学習に特化したデバイス

 

ディープラーニングのデータ量

データ量の目安となる経験則

バーニーおじさんのルール:モデルのパラメータ数の10倍のデータが必要

 

12.活性化関数

活性化関数(シグモイド関数)の微分が勾配消失問題を発生させる原因となる。

シグモイド関数の微分は、最大値が0.25と小さいため、

隠れ層を遡るたびに誤差は小さくなり、勾配消失問題を生じさせる。

適切な活性化関数を選ぶ必要がある。

 

出力層ではシグモイド関数またはソフトマックス関数を使う必要があるが、

隠れ層では非線形に変換することができる関数であれば問題ない。

 

現在では、活性化関数にシグモイド関数以外を用いることで勾配消失問題を防いでいる。

 

 <活性化関数の種類>

 ・シグモイド関数 :0~1に変換されるたえ最終的に確率を出力する際に有効

           2値分類で使用される(迷惑メールかどうか等)

 ・ソフトマックス関数:多クラス分類で使われる モデルの出力の総和は1になる

 ・恒等関数 :回帰問題

 ・tanh関数(ハイパボリックタンジェント関数):-1~1の値を出力

               微分の最大値が1なので勾配消失問題が発生しにくい

               シグモイド関数を線形変換した関数

               購買消失問題を緩和することができる

 ・ReLU関数 :入力値が0以下の時は0 

        入力値が0を超える場合は微分値が常に1となるため勾配が消失しにくい

        入力値が0を超える場合は入力値をそのまま出力する関数

 ・Leaky ReLU関数 :入力値が0より小さい場合、入力値をα倍した値を出力

           入力値が0を超える場合は入力値をそのまま出力する関数

 

 ※どの関数を選ぶかでモデルの性能が異なる。

 

単純パーセプトロンは、数式上の表現はロジスティック回帰を全く同じ。

 

13.誤差関数

平均二乗誤差関数

予測値と正解値との誤差の二乗の平均を最小化することでモデルの予測性能を向上させる

回帰問題でよく用いられる。

 

交差エントロピー誤差関数

2つの確率分布がどれくらい異なるかを表す尺度

分類問題で最もよく使われる。精度が高いほど0に近くなる。

 

距離学習における誤差

距離学習はデータ間の類似度を推定するための手法。

顔認証や類似データの検索などに用いる。

特にディープラーニングに応用したものを深層距離学習という。

 Siamese Network や Triplet Network が有名

 

生成モデルにおける誤差

生成モデルが目指すのは、境界線を見つけることではなく、

与えられたデータがどのような確率分布に基づいているかを見つけること。

 

過学習

過学習への対策として、

「正則化」「ドロップアウト」「早期終了」「アンサンブル学習」

などがある。

 

14.正則化

◆正則化を導入する目的を説明できる

◆代表的な正則化手法の特徴を説明できる

◆獲得したいモデルの特性に応じて、適切な正則化手法を選択できる

 

【正則化】:過学習を防ぐ手法。訓練データへの過度な当てはまりを抑制

 

誤差関数にペナルティ項を課す手法 

  モデルのパラメータが取り得る範囲を制限する

 

【L0正則化】:ゼロではないパラメータの数で正則化。計算コストが高くほぼ用いない

【L1正則化(L1ノルム)】:重みなどのパラメータの絶対値の和

           一部のパラメータの値をゼロにすることで不要なパラメータを削減できる

【L2正則化(L2ノルム)】:各成分の2乗和の平方根

           パラメータの大きさに応じてゼロに近づけることで

           汎化された滑らかなモデルを得ることができる。

 

 

【ラッソ回帰】:線形回帰に対してL1正則化を適用した手法

【リッジ回帰】:L2正則化を適用した手法

【Elastic Net】:両方を組み合わせた手法

 

 

ドロップアウト

正則化の手法の1つで、学習するニューロンを除外(ドロップアウト)する。

 

学習エポックごとにランダムに除外するニューロンを変更することで、

過学習が抑制され、学習全体ではパラメータの値が調整される。

ドロップアウトは内部的にアンサンブル学習を行っていることになる。

 

15.誤差逆伝播法

◆誤差逆伝播法の概要を説明できる

◆誤差逆伝播法の適用時に生じる問題とその主たる原因について説明できる

 

勾配消失問題, 勾配爆発問題, 信用割当問題, 連鎖律

 

勾配降下法を用いてニューラルネットワークの学習をする際に

微分計算を効率よく行うため、誤差逆伝播法を用いる。

 

その層に伝播してきた値は、前の層のパラメータの値が含まれていることに着目し、

微分計算を再利用することで効率化する方法

※変数を中継できる

 

 

【連鎖律】:微分の公式の一種。合成関数の微分ともいう

 

 

誤差逆伝播法の副次的効果

どのニューロンが予測結果に寄与しているかが判別できる。

機械学習の問題点「信用割当問題」を解決できているともいえる

 

新たに出てきた問題もある。

【勾配消失問題】:勾配が無くなる

【勾配爆発問題】:勾配が大きくなりすぎる

 

16.最適化手法

◆勾配降下法の概要を理解する

◆勾配降下法の問題とそれを解決するための手法を列挙できる

◆勾配降下法の計算を効率化する方法を説明できる

◆ハイパーパラメータの概要と代表的な調整方法を列挙・説明できる

 

学習データの投入方法として3つある

  バッチ学習  オンライン学習  ミニバッチ学習

※ニューラルネットワークではミニバッチ学習がよく使われる

 

バッチ学習

訓練データ全体を投入する。そのため

・学習結果は安定しやすい

・計算負荷が大きい

・異常なデータが少し混じってもモデルへの影響がすくない

・訓練データが増えると1から計算しなおす必要がある

・リアルタイムでモデルを更新することは難しい

  (随時更新の株価予測などには向かない)

 

オンライン学習

ランダムに訓練データを1件ずつ投入して学習させる手法。そのため

・学習が安定しにくい

・リアルタイムでモデルを更新できる

・メモリの使用量が少ない

・異常値の影響を受けやすい

 

ミニバッチ学習

訓練データをいくつかのグループにわけて、グループごとにモデルを学習させる手法。

バッチ学習とオンライン学習の中間的な手法。

ニューラルネットワークでよく使われる。

 

例)1000件のデータがある場合、100件ずつ学習させていく(バッチサイズ100)

 

 

イテレーションとエポック

学習とは最適なパラメータ(重み)を見つけるために

何度もパラメータ(重み)を更新することである。

 

【イテレーション】:パラメータ(重み)を更新した回数

【エポック】:全訓練データを繰り返し使った回数

  

勾配降下法

勾配に沿って降りていくことで解を探索する。微分した値を勾配という。

勾配が最小になるパラメータを探す

変数が多いためアルゴリズムを使用してパラメータを探す

そのアルゴリズムが勾配降下法

 

 

ニューラルネットワークでは、誤差を小さくするよう学習する

重みやバイアスなどのパラメータを更新して最適化する

 

平均二乗誤差関数

予測値と正解値との誤差の二乗の平均を最小化することでモデルの予測性能を向上させる

回帰問題でよく用いられる。

 

交差エントロピー誤差関数

2つの確率分布がどれくらい異なるかを定式化したもの

分類問題で最もよく使われる。

 

【学習率】:勾配に沿って一度にどれだけ降りていくか。パラメータを調整する値。

       

【イテレーション】:何回繰り返し計算したか 回数

 

【最急降下法】(バッチ勾配降下法):学習データの予測誤差総和を用いて更新する

        

【確率的勾配降下法 (SGD)】:学習データをランダムに選び、誤算を計算してパラメータを更新

              学習データごとに勾配を求めて修正量を出し、逐次更新する手法

              ミニバッチ学習、オンライン学習に相当

 

勾配降下法の問題点

勾配の最小値が見つからないこともある

局所最適解 と 大域最適解が異なることがあるため

学習率を大きくして山を飛び越える

 

【鞍点】:馬の鞍の座る位置。ある次元では極小、別次元から見たときは極大になっている点

     鞍点の近くは平たんになっていることが多く学習が進みにくい(プラトー

 

【モーメンタム法】:鞍点問題に対応する手法。慣性の考え方で学習の停滞を防ぐ。

          前回の更新量を現在の更新量に反映させる

      モーメンタム法を改良した手法 ⇒NAG

 

最適化アルゴリズムの一例

  AdaGrad : SGDを改良した手法。学習率を自動で調整。

         過去の勾配を蓄積し学習率を小さくしていく。

  RMSprop : AdaGradを改良した手法。新しいパラメータ更新の影響を大きくし

         学習率が意図せず小さくなることを防ぐ

 

  AdaDelta : AdaGradを改良した手法。過去の勾配を蓄積する範囲を制限する

 

  Adam : RMSpropを改良した手法。RMSpropにモーメンタム法を取り入れる。

 

  AdaBound : Adamを改良した手法。最初はAdamを使用して後半はSGDを使用する

 

  AMSBound :  AMSGradを改良した手法。最初はAMSGradを使用して後半はSGDを使用する

 

【ハイパーパラメータ】:機械学習モデルで人間があらかじめ設定するパラメータのこと

             (学習率、ニューラルネットワークの層の数など)

            学習の自動的に決定されないパラメータ。

            最適な値を自動的に設定しようとグリッドサーチ, ランダムサーチ

            ベイズ最適化などがある。

 

【グリッドサーチ】:ハイパーパラメータの値の候補を指定し、その候補のすべての組合せで

          学習を行い、最適な組合せを採用する。時間がかかる。

 

【ランダムサーチ】:指定された分布に従ってランダムにパラメータを抽出し最適値を探す

          指定した範囲内のハイパーパラメータを分布に従って指定回数だけ抽出

          最適解とは限らないが時間が短くて済む

【ベイズ最適化】:過去の試行結果からパフォーマンスの高いハイパーパラメータを中心に探索する

 

 

早期終了(early stopping)

過学習を防止するために、学習を早めに打ち切ること。

学習が進むにつれ誤差関数の値は右肩上がり。上がり始めが過学習の始まり。

汎化誤差が増加し始めたら学習をやめる。

どんなモデルにも適用できる(Beautiful FREE LUNCH)

 

【ノーフリーランチの定理】:あらゆる問題で性能のよい汎用最適化戦略は理論上不可能という意味

   どんな問題にも通用する学習プロセスは存在しないので問題に応じて試行錯誤する必要がある。

 

【二重降下現象】:一度テストデータに対する誤差が増えた後で、再び誤差が減っていくこと