Chapter 04

活性化関数(非線形)

ニューロンの出力を非線形にする関数。

チャプター別 ディープラーニング図

チャプターを進めるたびに、下の図が少しずつ埋まります。ここまでの構造です。

入力Xに応じて出力Yが非線形に変わる代表的な活性化関数です。(3段階量子化版)

Y = Sigmoid(X)00.51
Y = ReLU(X)0
Y = Tanh₃(X)-101

ノード値がReLUやσを通ると曲線的に変わります。最後の層Y1,Y2,Y3がその結果です。

ディープラーニングで見る活性化関数

活性化関数はニューロンの生の出力(重み付き和)を特定の範囲や形に変換する関数です。代表的なものは ReLU(負→0、正→そのまま)、Sigmoid(0〜1に圧縮)、Tanh(−1〜1に圧縮)です。

蛇口に例えると、水(信号)が入ってきたとき「一定以上だけ通す(ReLU)」や「強すぎれば弱める(Sigmoid・Tanh)」ように流量を調整します。この変換によって次の層に渡す出力が適切になります。

ReLUはシンプルで計算が速い(正ならそのまま、負なら0)ため最も人気です。Sigmoidは確率のような0〜1の出力が必要なとき、Tanhはゼロ中心の出力が欲しいときに使います。

掛けて足す(線形)操作をどれだけ重ねても、結果は掛けて足す一回と同じです。直線をつなげても直線にしかならないように、線形演算だけでは曲線や複雑なパターンは絶対に表現できません

活性化関数が曲がり(非線形性)を加えます。この曲がりがあるからこそ、層を重ねて曲線や複雑な境界を作り出し、画像・音声・テキストのパターンを学習できるのです。

活性化関数がなければ、ネットワークがどんなに深くても一本の直線でできることしかできません。活性化関数はディープラーニングを「ディープ」にするための不可欠な材料です。

画像認識: 各層で W·X + b を計算した後、ReLUが不要な特徴(負の値)をゼロにし、有用な特徴(正の値)だけを次の層に渡して「目」「耳」「車輪」などを段階的に抽出します。

チャットボット・翻訳: 隠れ層でReLUGELU(滑らかな改良版)を非線形に使い、最終層でSigmoid(はい/いいえ判定)やSoftmax(複数候補から選択)を使って答えを出します。

音声認識・自動運転: 音波やカメラ映像を数値に変換し、線形+活性化の層を何度も通して「この単語は何か」「この物体は何か」を判定します。活性化関数なしでは、このような複雑な判断は不可能です。

表でXの区間が分かればYが決まります。

関数規則
ReLU0以下なら0、正ならXのまま
Sigmoid小→0、中間→0.5、大→1
Tanh₃小→-1、中間→0、大→1
注意区間の境界は問題の表で確認
Y = ReLU(X)
X ~ Y
X
~
Y
-2
~
0
0
~
0
1.5
~
1.5
Y = Sigmoid(X)
X ~ Y
X
~
Y
-2
~
0
0
~
0.5
2
~
1
Y = Tanh₃(X)
X ~ Y
X
~
Y
-2
~
-1
0
~
0
2
~
1

問題

与えられた活性化関数(Sigmoid, ReLU, Tanh₃)に対し、X に対する Y を求め、空欄(?)を埋めなさい。

Y = ReLU(X)0
X ~ Y
X
~
Y
-3
~
0
-1
~
2
~
2
4
~
4
1 / 20