G検定(ジェネラリスト検定) ディープラーニングの概要 練習問題 第37問: n 個の入力 z = (z_1, …, z_n) を受け取るソフトマックス関数 softmax(z)_i = exp(z_i) / Σ_j exp(z_j) の
n 個の入力 z = (z_1, …, z_n) を受け取るソフトマックス関数 softmax(z)_i = exp(z_i) / Σ_j exp(z_j) の性質として、最も不適切なものはどれか。
解答と解説を先に見る
先に見ると、この問題は今回は育ちません。
正解: 1. 各入力を一律に2倍しても、ソフトマックス関数が出す各クラスの値は変わらない。
肢1が不適切です。たとえば z = (0, ln 2) なら出力は (1/3, 2/3) ですが、2倍した (0, 2 ln 2) では (1/5, 4/5) となり、入力の差が広がって出力の偏りが大きくなります。
Deep Learning(Goodfellowら)の6.2.2.3節は、ソフトマックス関数の出力はすべての入力に同じ数を足しても変わらない(softmax(z) = softmax(z + c))と述べ(肢2)、これを使って最大値を引く softmax(z − max_i z_i) を数値的に安定な計算方法として示しています(肢3)。同節は、総和が1という制約から n − 1 個の値で足りるので入力の1つを0に固定でき、n − 1 個の場合と n 個の場合は同じ確率分布の集まりを表せるとも述べています(肢4)。
出力は入力の「差」で決まり、「倍率」では変わる点を押さえましょう。
関連キーワード: ソフトマックス関数・活性化関数・指数関数
模試 (145問)
本試験の規模にそろえて、8分野を通して解く
オンライン試験の案内(145問程度・100分)にそろえた145問・100分(1つあたり約41秒)で、技術分野から法律・倫理まで8分野を混ぜて解きます。JDLAは分野ごとの出題数と合格ラインを公表していないため、配分と70%の目安はぴよパスの設定です。100分を取れない日は、開始画面で41分の短縮演習も選べます。Premium (月980円)Premium (ご利用中)時間制限つきの実力チェック