この記事を読んで分かること
- ReLU関数とは何か
- ReLU関数の実装方法
- ReLU関数の微分
ReLU関数とは
ReLU関数とは、
で表される関数です。
グラフで表すとこのような形になります。
ReLU関数はディープラーニングの活性化関数の一つです。
ReLU関数の特徴
グラフを見ると、ReLU関数では0以上の場合ではそのまま出力され、0未満の場合では0を出力されます。
ReLU関数では単純な計算のため、処理が早いです。
また、0以上の範囲で入力を減衰させずにそのまま出力されるので、勾配の値は消失しない関数となっています。
ReLU関数の用途
ReLU関数は、勾配消失の少ない単純な関数なのでディープラーニングの至るところに用いられます。
ReLU関数の微分
ReLU関数の微分は
と表されます。
ステップ関数と同様の関数となります。
微分後の関数をグラフで表すとこのような形になります。
0以上の範囲で出力が1なので、勾配が小さくならず勾配消失が防がれています。
ReLU関数をpythonで実装
ReLU関数をpythonで実装していきます。
class Relu:
def __init__(self):
self.mask = None
def forward(self, x):
self.mask = (x <= 0)
out = x.copy()
out[self.mask] = 0
return out
def backward(self, dout):
dout[self.mask] = 0
dx = dout
return dx
単純な関数なので、シンプルに表すことができました。
まとめ
ReLU関数とは、
$$f(x)=\begin{cases}x\qquad (x > 0)\\
0\qquad (x\leq 0)\end{cases}$$
で表される関数です。
ReLU関数は、単純な関数なのでディープラーニングのあらゆる活性化関数としてよく使われます。
ReLU関数の微分0以上の範囲で出力が1なので、勾配が小さくならず勾配消失が防がれています。
コメント