ある保険会社が、契約者が翌年に保険金を請求するかどうかを予測する2値分類のネットワークを作った。出力層は2ユニットで、ソフトマックス関数への入力は「請求する」がz1 = 3、「請求しない」がz2 = 1であった。これを1ユニットでシグモイド関数を使う出力層に置き換え、「請求する」の確率をまったく同じ値にしたい。シグモイド関数に入力すべき値として、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 A
この問題の論点:ソフトマックスとシグモイドの関係
ポイント
2クラスのソフトマックス関数の出力は、2つの入力の差を入れたシグモイド関数の値と同じです。そのため2値分類は1ユニットのシグモイド関数で表せます。
選択肢ごとの解説
- A
適切 正解
「請求する」の確率は、eの3乗 ÷(eの3乗 + eの1乗)です。分母と分子をeの3乗で割ると、1 ÷(1 + eの−2乗)となります。これは入力2のシグモイド関数の値(約0.88)と一致します。
- B
不適切
入力−2のシグモイド関数の値は約0.12で、「請求しない」の確率に当たります。差をとる向きが逆です。「請求する」の入力から「請求しない」の入力を引く必要があります。
- C
不適切
z1だけを入れると約0.95となり、元の約0.88と一致しません。ソフトマックス関数の出力は、そのクラスの入力の大きさそのものではなく、ほかのクラスの入力との差で決まります。
- 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値分類の出力層の設計と結びつけて問う形が考えられます。
参考
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目12 活性化関数)
- Goodfellow, Bengio, Courville, Deep Learning (2016) (6.2.2.3 Softmax Units for Multinoulli Output Distributions)