E資格受験前なので復習がてら学んだことをざっくり振り返る ~ 深層学習前編 ~
前回は応用数学や機械学習につてい振り返ったので、今回は深層学習について振り返ります。おそらく長くなりそうなので2分割しようと思います。 まずは**全結合型ニューラルネットワーク(Fully Connected Neural Network, FCNN)**についてです。 入力層、隠れ層、出力層から構成され各層の全てのノードが前の層の全てのノードに重み付きの接続をしている。 前向き伝播 (Forward Propagation):各ニューロンの出力は、前層の出力、重み、バイアスに基づいて計算され、活性化関数を通過する。活性化関数については後述します。 誤差逆伝播 (Backpropagation):出力層の予測値と実際の値との差を計算し、その差を用いて重みを更新する。連鎖律を用いて各重みに対する誤差の勾配を計算し、勾配降下法等を使用して重みを更新する。 問題点と解決策 過剰適合:機械学習と同様、正則化(L1、L2正則化)やドロップアウトを使用する。 勾配消失/勾配爆発:層を深くしたことで勾配が急速に減少または増加する問題。解決策には重みの初期化方法の工夫(He初期化など)、バッチ正規化、残差接続(ResNet)などがあります 次は損失関数の最尤推定による条件付き分布の学習についてですが、前回の機械学習でも触れたので軽く触れる程度にします。 回帰問題:ガウス分布の尤度を最大化することは、平均二乗誤差を最小化することと同等。損失関数はL(θ) = 1 / nΣ(y - f(x, θ))^2、yは実測値、f(x, θ)は予測値 分類問題:多クラス分類では、カテゴリカル分布の尤度を最大化することが、クロスエントロピー損失の最小化と同等。損失関数はL(θ) = -ΣnΣCylogf(x, θ)、yはi番目のデータがcに属するかを示す指標変数、f(x, θ)はモデルによるクラスcへの所属確立への予測。 次は活性化関数についてです。主に隠れ層と出力層で使われます。 シグモイド関数:σ(x) = 1 / (1 + e^-x) 出力が0から1、二値分類問題の出力層でよく使用されるが、勾配消失問題のため隠れ層ではあまり使用されない。 Softmax関数:Softmax(x) = e^x / Σe^x 出力層の多クラス分類で使用、出力値の合計が1になるようクラスに属する確率を計算する ReLU関数:ReLU(x) = max(0, x) 出力が-1から1、原点に対して対象なので隠れ層でよく使われる。 Leaky ReLU関数:LeakyReLU(x) = max(αx, x)、αは小さな正の定数 ReLUの改良版でx < 0で微小な勾配をすることで、ニューロンが不活性になり,任意の入力に対して出力0だけになる問題を緩和。 双曲線正接関数(ハイパボリックタンジェント):tanh(x) = (e^x - e^-x) / (e^x + e^-x) 計算が効率的で勾配消失問題も緩和するので隠れ層でよく使用される。 次に誤差逆伝播法についてです。前述で述べた個所は省略します。 計算グラフ:この項目については割愛しますが、調べると表は出てきますので、誤差逆伝播法の計算がどのようなものかがよくわかります。 ...