G検定 練習問題 #0353・活性化関数

ソフトマックスとシグモイドの関係

ディープラーニングの概要 › 活性化関数 単一選択 難易度 応用

ある保険会社が、契約者が翌年に保険金を請求するかどうかを予測する2値分類のネットワークを作った。出力層は2ユニットで、ソフトマックス関数への入力は「請求する」がz1 = 3、「請求しない」がz2 = 1であった。これを1ユニットでシグモイド関数を使う出力層に置き換え、「請求する」の確率をまったく同じ値にしたい。シグモイド関数に入力すべき値として、最も適切なものを1つ選べ。

正解と解説を見る

解説

正解 A

この問題の論点:ソフトマックスとシグモイドの関係

ポイント

2クラスのソフトマックス関数の出力は、2つの入力の差を入れたシグモイド関数の値と同じです。そのため2値分類は1ユニットのシグモイド関数で表せます。

選択肢ごとの解説

  1. A

    適切 正解

    「請求する」の確率は、eの3乗 ÷(eの3乗 + eの1乗)です。分母と分子をeの3乗で割ると、1 ÷(1 + eの−2乗)となります。これは入力2のシグモイド関数の値(約0.88)と一致します。

  2. B

    不適切

    入力−2のシグモイド関数の値は約0.12で、「請求しない」の確率に当たります。差をとる向きが逆です。「請求する」の入力から「請求しない」の入力を引く必要があります。

  3. C

    不適切

    z1だけを入れると約0.95となり、元の約0.88と一致しません。ソフトマックス関数の出力は、そのクラスの入力の大きさそのものではなく、ほかのクラスの入力との差で決まります。

  4. D

    不適切

    z1とz2の和を入れると約0.98となり、一致しません。ソフトマックス関数は、すべての入力に同じ値を足しても出力が変わらない関数です。意味を持つのは和ではなく差です。

補足

シグモイド関数はσ(x) = 1 ÷(1 + eの−x乗)です。2クラスのソフトマックス関数で1つ目の出力を求め、分母と分子をeのz1乗で割ると、1 ÷(1 + eの−(z1 − z2)乗)となります。これはσ(z1 − z2)そのものです。たとえばz1 = 103、z2 = 101でも差は2なので、確率は同じ約0.88になります。

試験での狙われ方

ソフトマックス関数の出力が入力の差だけで決まる性質を、具体的な値で計算させる形や、2値分類の出力層の設計と結びつけて問う形が考えられます。

参考

表示設定

テーマ
文字の大きさ
問題演習