AI資格ドリル
資格を選ぶ↓

ディープラーニングの学習

G検定の活性化関数

G検定のシラバスには、活性化関数として、シグモイド関数、tanh関数、ReLU関数、ソフトマックス関数が並んでいます。覚えるのは、出力の範囲と、隠れ層と出力層のどちらに置くかです。

このページは、同じ入力を3つの関数に通した計算と、ソフトマックスの計算で、違いを数字で確かめます。

公式情報の確認

試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-10-02。

試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。

結論

  1. シグモイド = 1/(1+exp(−x))、出力は0〜1
  2. tanh = 出力は−1〜1で、入力0のとき0
  3. ReLU = max(x, 0)、負の入力は0、正の入力はそのまま
  4. ソフトマックス = exp(x)/Σexp(x)、出力は0〜1で合計が1
  5. 隠れ層はReLU、出力層は課題に合わせる(2クラスはシグモイド、3クラス以上はソフトマックス)

活性化関数が必要な理由

ニューラルネットワークの各層は、入力に重みを掛けて足し合わせる線形変換です。線形変換を何枚重ねても、全体は1つの線形変換と同じ表現力しか持ちません。Kerasは、何も変えずに入力を返す「linear」を、恒等関数の活性化として用意しています。

各層の出力に非線形の関数を通すから、層を重ねると複雑な形を表せます。微分が小さくなって学習が進まなくなる現象は勾配消失問題のページで、層の数と掛け算で計算しています。用語は活性化関数の用語集にあります。

同じ入力での出力の比較

Kerasの定義式に、入力−2、0、1、2を代入した結果です。

入力xシグモイドtanhReLU
−2約0.119約−0.9640
00.500
1約0.731約0.7621
2約0.881約0.9642

シグモイドは常に0〜1、tanhは−1〜1、ReLUは0以上で上限がありません。入力0のときの出力(0.5、0、0)も、選択肢を絞るときの手がかりになります。Kerasは、シグモイドの入力が−5より小さいと出力は0に近く、5より大きいと1に近いとも述べています。 2つの関数の違いだけを詳しく見るなら、シグモイドとReLUの違いのページもあります。

ソフトマックスの計算

Kerasは、ソフトマックスを、値のベクトルを確率分布に変換する関数と説明しています。出力は0〜1で合計が1、各要素はexp(x)を全要素のexpの和で割った値です。3クラスの出力が(2, 1, 0)のとき、expの和は7.389+2.718+1≒11.107です。

クラスの値expをとる確率
2e²≒7.3897.389÷11.107≒0.665
1e¹≒2.7182.718÷11.107≒0.245
0e⁰=11÷11.107≒0.090

3つの確率を足すと約1になり、値が大きいクラスほど確率が大きくなります。Kerasは、シグモイドは2要素のソフトマックスで2番目の要素を0とみなしたものと同じとも説明しています。2つの比較はソフトマックスとシグモイドの違いのページに、用語はソフトマックス関数の用語集にあります。

置く場所の対応表

活性化関数は、層の場所で選びます。次の表はこのページでの整理で、一般的な使い分けです。

置く場所使う関数理由
隠れ層ReLU(または改良版のLeaky ReLU)計算が単純で、正の入力では微分が1
出力層(2クラス分類)シグモイド出力が0〜1で、確率として読める
出力層(3クラス以上の分類)ソフトマックス全クラスの合計が1の確率分布になる
出力層(回帰)恒等関数(活性化なし)出力を0〜1などの範囲に押し込まない

確率として読みたい出力層はシグモイドかソフトマックス、途中の層はReLU、と覚えます。ReLUの負の側に傾きを持たせたLeaky ReLUは、Kerasでは傾きの既定値が0.2です。

間違えやすい点

取り違えを、このページの例で4つ挙げます。

  • tanhの出力を0〜1とする: 入力−2の出力は約−0.964で、負の値になります。
  • ReLUの出力に上限があるとする: 入力2なら2、入力100なら100で、上限はありません。
  • ソフトマックスの合計を1より大きいとする: (2,1,0)の確率の合計は約1です。
  • シグモイドとソフトマックスを同じ場面で使う: 2クラスは1つの確率、3クラス以上は全クラスの確率分布が必要です。

「確率の合計が1」はソフトマックス、「負の値も出る」はtanhと、語から関数を引けるようにします。

問題文から読み取る

問題文の言い回しから、関数を選べます。このページの整理から導いた読み方で、出題を予想するものではありません。

  • 「出力が0から1の間で、2値分類の確率に使う」とあれば、シグモイド
  • 「出力が−1から1で、0を中心とする」とあれば、tanh
  • 「max(x, 0)」「負の入力で0」とあれば、ReLU
  • 「多クラス分類の出力層で、合計が1の確率にする」とあれば、ソフトマックス
  • 「層を重ねても線形のままになるのを避ける」とあれば、非線形の活性化関数の役割

よくある質問

活性化関数がないと、ニューラルネットワークはどうなりますか?

層を何枚重ねても、全体が1つの線形変換と同じになります。線形変換を重ねても線形変換のままだからです(この説明は、定義からのこのページでの整理です)。活性化関数の非線形性があるから、層を重ねる意味が出ます。

シグモイドとソフトマックスは、どう違いますか?

Kerasの公式ドキュメントは、シグモイドを「2要素のソフトマックスで、2番目の要素を0とみなしたもの」と説明しています。シグモイドは1つの値を0〜1にし、ソフトマックスはベクトル全体を、合計が1の確率分布にします。

ReLUは負の入力で出力が0になりますが、問題はないのですか?

負の入力では出力も微分も0になり、その入力に対しては重みの更新が止まります。Kerasは、負の側に傾きを持たせるLeaky ReLU(既定の傾き0.2)も提供しています。傾きを与えて、負の入力でも出力を0にしない工夫です。

tanhはシグモイドと何が違いますか?

出力範囲です。Kerasの定義式 tanh(x)=(exp(x)−exp(−x))/(exp(x)+exp(−x)) から、出力は−1〜1で、入力0のとき0になります。シグモイドは0〜1で、入力0のとき0.5です。

次に読むと効率的なページ

執筆: ミナト編集部(運営者情報を見る)