E資格の勉強内容まとめDay3「活性化関数」



こんにちは、ぽめた (@pometa0507) です。社会人エンジニアとして働く傍ら、AI資格の「E資格」取得に向けてディープラーニングの勉強をしています。

この連載は、E資格の勉強中に学んだ内容を記事としてまとめるものです。 E資格を受験される方のおさらいや、E資格に興味のある方の参考となれば幸いです。

前回(第2回目)は、ニューラルネットワークの基本要素となるパーセプトロンについて取り上げました。第3回目の今回は、隠れユニットの代表的な活性化関数についてのまとめです。

第1回目の記事:E資格の勉強内容まとめDay1「ディープラーニングの概要」
第2回目の記事:E資格の勉強内容まとめDay2「パーセプトロン」

ニューラルネットワーク

まずは、ニューラルネットワークの構造とアフィン変換についておさらいしておきます。

ニューラルネットワークを図で表すと次のようになります。

この画像には alt 属性が指定されておらず、ファイル名は image-24-600x347.png です
ニューラルネットワークの構成

〇で表したものをノード(ニューロン)といい、ノードの列をといいます。また、一番左の層を入力層、一番右の層を出力層、そして間の層を中間層隠れ層)と呼びます。ニューラルネットワークに入力されたデータは、左の層から右の層へ伝搬されます。この処理を順伝播といいます。

ニューラルネットワークにおいてデータが次の層へ伝搬されるとき、隣接する層のノード間すべてが結合している層を「全結合層」と呼ばれます。この全結合層では、前の層のデータをアフィン変換という計算をすることで次の層へと伝えます。

全結合層の例を示します。

この画像には alt 属性が指定されておらず、ファイル名は image-12.png です
全結合層

全結合層での出力\( \mathbf{y} \)は入力\( \mathbf{x} \)と重み\( \mathbf{W} \)の行列の積とバイアス\( \mathbf{b} \)の和によって計算されます(この処理をアフィン変換といいます)。

数式で次のように表します。

$$ \Large  \pmatrix{ y_1 & y_2 & y_3} = \pmatrix{ x_1 & x_2 } \pmatrix{ w_{11} & w_{12} & w_{13} \cr w_{21} & w_{22} & w_{23} } + \pmatrix{ b_1 & b_2 &b_3 } $$

$$ \Large  \mathbf{y} = \mathbf{x W} + \mathbf{b} $$

ちなみに、上の式では、\( \mathbf{x, y} \) を行ベクトルとして扱った表記です。

\( \mathbf{x, y} \) を列ベクトルで扱うと次の式で表されます。

$$ \Large  \pmatrix{ y_1 \cr y_2 \cr y_3} = \pmatrix{ w_{11} & w_{21} \cr w_{12} & w_{22} \cr w_{13} & w_{23} } \pmatrix{ x_1 \cr x_2 } + \pmatrix{ b_1 \cr b_2 \cr b_3 } $$

$$ \Large  \mathbf{y} = \mathbf{W^T x} + \mathbf{b} $$

行ベクトルで扱うか列ベクトルで扱うかの違いだけで式の表現は異なりますが、計算していることは同じです(E資格ではこちらの表記で問われることも多いようです)。

これで全結合層の処理を構成できました。しかし、ここでひとつ問題があります。

一般的にディープラーニングでは、ニューラルネットワークの中間層を深くすることで表現力を増やすことができます。(表現力が増えることで複雑なタスクをこなせるようになります!)

それでは、上記の全結合層をたくさん繋げば、ニューラルネットワークは表現力が増えるのでしょうか? その答えはNoです。

アフィン変換は何回繰り返しても、結局は一度のアフィン変換を行っているものと変わりません(アフィン変換は線形変換であり、線形変換の線形変換は線形変換です)。つまり、単純にアフィン変換を繰り返すだけでは、ネットワークの表現力は変わらないのです。

そこで登場するのが、非線形な変換を行う活性化関数です。

活性化関数

このコンテンツを閲覧するには無料会員ログインが必要です。会員の方はログインして下さい。
新規無料会員登録はこちら

業界から探す

PAGE TOP