@FubiraiHan

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ReLUについて

Q&A

Closed

機械学習を勉強していて、活性化関数は非線形性をモデルに持たせることができ、活性化関数にReLUを使うと層は以下の様に表せるとわかりました。

max(x_i * w_i + b_i , 0) = y_i

ここで思ったのですが、もし層での計算結果

x_i * w_i + b_i

がすべて0より大きかった場合モデルは線形的になってしまう気がします。こうなってしまうと活性化関数を入れる意味がなくなる気がするのですが、なぜReLUが使われるのでしょうか。
計算結果がすべて0より大きくなる場合なんてねえよという前提に立っているということでしょうか

0 likes

2Answer

がすべて0より大きかった場合モデルは線形的になってしまう気がします。こうなってしまうと活性化関数を入れる意味がなくなる気がする

入力値が0以下のときに0になる方が欠点として見られると思います。そのため派生としてLeaky ReLU等がありますね。

重みの初期値を適切に設定することが重要となります。
参考:ReLUと初期値 〜ディープラーニングにおける活性化関数のふるまいと工夫〜

0Like

深層学習の中身の理論化はまだ研究途上のであり、活性化関数もあれこれ試したらこれがよかった、と発表されている状態ですね。

すべて0より大きかった場合モデルは線形的になってしまう

重みも正負ランダムになりますし、入力が全て正には通常はならない。
本当に正になるならば、それはそのデータ構造が線形なので、正しい。
ただReLUが常に絶対良いわけではなく、入力が負の時に差をつけないのが弱みと考えれば1つ前の方の回答の通り、Leaky ReLUがある。

みたいなところですかね。

こういうところは理論で追うのも良いですし、簡単なデータとモデルで活性化関数を色々変えてご自身で試してみられるのも理解が深まるきっかけになるかと思います。

0Like

Your answer might help someone💌