LoginSignup
1
1

More than 3 years have passed since last update.

ニューラルネットワーク活性化関数SigmoidとReLUの関係

Last updated at Posted at 2019-05-19

目的

ニューラルネットワークの活性化関数にSigmoid関数とReLU関数がある。
個人的には、その2つの関係を長らく勘違いしていたので手短にその内容を示す。

Sigmoid関数とReLU関数

Sigmoid関数

h(x) = \frac{1}{1+exp(-x)}

  
ReLU関数

h(x) = \left\{
\begin{array}{ll}
x & (x \gt 0) \\
0 & (x \leq 0)
\end{array}
\right.

勘違い

上記の関数の内容をみると、Sigmoid関数のほうが高度な、一般的な意味で、レベルの高い関数にみえる。
個人的には、Sigmoid関数のexp()含む計算の処理時間を短縮するために、ReLU関数というのが、新たに、導入されたと考えていた。

Sigmoid関数とReLU関数の位置づけ

ただしくは、以下に引用するとおりの状況だと思う。

「ゼロから作るDeep Learning -- Pythonで学ぶディープラーニングの理論と実装」(発行所 株式会社オライリー・ジャパン)

p53引用

シグモイド関数は、ニューラルネットワークの歴史において、古くから利用されてきましたが、最近ではReLU(Rectified Linear Unit)という関数が主に用いられます。

wiki

ReLUについて
(出典:https://ja.wikipedia.org/wiki/活性化関数)

Yann LeCunやジェフリー・ヒントンらが雑誌ネイチャーに書いた論文では、2015年5月現在これが最善であるとしている。

(出典:https://en.wikipedia.org/wiki/Rectifier_(neural_networks))

It has been demonstrated for the first time in 2011 to enable better training of deeper networks, compared to the widely-used activation functions prior to 2011, e.g., the logistic sigmoid (which is inspired by probability theory; see logistic regression) and its more practical counterpart, the hyperbolic tangent. The rectifier is, as of 2017, the most popular activation function for deep neural networks.

まとめ

ReLUを使うのが一般的、かつ、良い。
実際に、SigmoidとReLUの両方を使って性能比較されている報告も沢山ありますが、どう使うという条件を合わせるのが難しいと思うので、それらの情報、参考程度かとも思います。実際に、よい性能を出しているモデルがどちらを使っているのかで、判断するのが妥当だと思います。それは、今は、Sigmoidではないという結論だと思います。

コメントなどあれば、お願いします。:candy:

関連(本人)

良書「ゼロから作るDeep Learning -- Pythonで学ぶディープラーニングの理論と実装」を読む

1
1
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
1