ある通信会社が、契約者の利用履歴から翌月に解約するかどうかを予測するニューラルネットワークを作った。出力層はシグモイド関数で解約の確率を出す。誤差関数に平均二乗誤差関数を使うと、出力が0や1の近くに張り付いたまま大きく外れているデータで、学習がほとんど進まなかった。交差エントロピーに切り替える理由として、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 A
この問題の論点:分類で交差エントロピーを使う理由
ポイント
シグモイド関数の出力には交差エントロピーを組み合わせます。勾配が予測値と正解の差になり、大きく外れたデータほど強く修正されます。
選択肢ごとの解説
- A
適切 正解
交差エントロピーでは、シグモイド関数の導関数の項が打ち消され、勾配が予測値と正解の差そのものになります。平均二乗誤差関数ではこの差に導関数y(1−y)が掛かるため、出力が張り付くと勾配が0に近づきます。
- B
不適切
交差エントロピーは、正解に付けた確率pを−log pで罰します。pが0に近いほど値は際限なく大きくなるため、自信をもって外した予測はむしろ強く罰せられます。
- C
不適切
平均二乗誤差関数は、どんな数値の組でも差を2乗して平均すれば計算できます。確率を出すモデルにも使えますが、シグモイド関数と組み合わせると勾配が小さくなりやすい点が問題です。
- D
不適切
交差エントロピーは、正解に付けた確率が1に近いほど0に近づき、外れるほど大きくなるので、学習では最小化します。最大化するのは、交差エントロピーの符号を反転させた対数尤度のほうです。
補足
正解をt(0か1)、シグモイド関数の出力をyとすると、2値分類の交差エントロピーは−{t log y + (1 − t) log(1 − y)}です。これを出力層の入力zで微分するとy − tになります。平均二乗誤差関数(y − t)² / 2では(y − t) × y(1 − y)となり、yが0や1に近いとy(1 − y)がほぼ0になります。たとえばt = 1でy = 0.01なら、交差エントロピーの勾配は約−0.99ですが、平均二乗誤差関数では約−0.0098しかありません。
試験での狙われ方
回帰には平均二乗誤差関数、分類には交差エントロピーという対応に加え、その理由を勾配の大きさから問う形が考えられます。
参考
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目13 誤差関数)
- Goodfellow, Bengio, Courville, Deep Learning (2016) (6.2.2.2 Sigmoid Units for Bernoulli Output Distributions)