活性化関数と勾配消失
活性化関数の形と微分 f'(x) を見て、深い層で微分の積が掛かると勾配が 0 に近づく「勾配消失」を体感します。
活性化関数を選ぶ
3.0
6
f(x)
—
f'(x)(微分)
—
勾配の積 ≈ f'(x)^L
—
関数 f(x)(青)と 導関数 f'(x)(緑)
層を 1 段ずつ通すごとの勾配の大きさ ≈ |f'(x)|^層
活性化関数は、各ニューロンの出力に非線形性を加える関数です。これがないと、何層重ねても全体はただの1 次関数になってしまいます。
学習では誤差を出力側から入力側へ伝える「誤差逆伝播」を行い、各層で活性化関数の微分 f'(x) が掛け合わされていきます。
sigmoid や tanh は
学習では誤差を出力側から入力側へ伝える「誤差逆伝播」を行い、各層で活性化関数の微分 f'(x) が掛け合わされていきます。
sigmoid や tanh は
|x| が大きいと微分がほぼ 0 になるため、深い層では微分の積 f'(x)^L が急速に 0 へ近づきます。これが勾配消失です。関数・入力 x・層数 L を変えて確かめましょう。
いま何が起きている?
ここがポイント
- sigmoid / tanh ──
|x|が大きいと微分 ≈ 0。深いと微分の積が消えて勾配消失が起きる。 - ReLU ── 正の領域では微分が 1 なので勾配が消えにくい(ただし負の領域では微分 0 で「死ぬ」)。
- 活性化関数 = 非線形性 ── ネットワークに非線形性を与え、複雑な関数を表現できるようにする。
- 勾配は層をまたいで微分の積で伝わる ── だから 1 層の微分の大きさが深さで増幅・減衰する。