1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

なぜReLUみたいな非線形関数が必要なのか?

Posted at
  • この記事は,PyTorch公式チュートリアル,"DEEP LEARNING WITH PYTORCH"の"Non-Linearities"から抜粋して要約したもの.

なぜReLUみたいな非線形関数が必要なのか?

  • 次の2つのアフィン変換があったとする

\begin{align}
f(x) &= Ax + b \\
g(x) &= Cx + d 
\end{align}

  • これらの合成,$f(g(x))$を計算するとどうなるか?

\begin{align}
f(g(x)) &= A(Cx + d) + b \\
& = ACx + (Ad +b)
\end{align}

  • ここで,$AC$は行列.$Ad+b$はベクトル
    • つまり,アフィン変換の合成が1つのアフィン変換で書けたことになる
      • ニューラルネットを作るときに大量のアフィン変換の合成を行うわけだが,このやり方だと,それらの操作は1つのアフィン変換と同じ効果しかもたらさない
        • 非線形関数をアフィンレイヤの間に導入すれば,このようなことは起きない

なぜReLUを使うのか

  • よく使われる非線形関数に,$tanh(x)$, $\sigma(x)$, $ReLU(x)$がある
    • 非線形関数はこの他にいくらでもあるが,これらを使う理由は勾配の計算が簡単だから
      • シグモイドの微分:
        • $\frac{d\sigma}{dx} = \sigma(x)(1-\sigma(x))$
  • ReLUがよく使われる理由の一つが,$\sigma(x)$は引数xの絶対値が大きくなると勾配が急速に消失するから
    • 勾配が消失すると学習が困難になる
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?