🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

2回答

2486閲覧

機械学習でrelu関数を使うメリットについて

babbleman

総合スコア107

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2019/09/19 12:05

こんにちは。

活性化関数としてrelu関数を使うメリットってなんでしょうか?

微分した値を消したくないのなら、そのまま恒等関数を使えば良いのではないでしょうか?

0以下の値が出力されると、その部分のノードの値は更新されなくなりますし、メリットがイマイチわからないのですが。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

あまり詳しくは無いので、これ以上は答えられませんが、

微分した値を消したくないのなら、そのまま恒等関数を使えば良いのではないでしょうか?

線形関数の線形関数は、1つの線形関数で表すことが出来ます。
そのため、線形関数を何層重ねても、一層で表すことが出来てしまうので、複数層重ねる意味が無くなってしまいます。
こちらこちらを参考)
よって、恒等関数では駄目で、reluなどの活性化関数を使う必要が出てきます。

投稿2019/09/20 00:47

fiveHundred

総合スコア10152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

活性化関数の役割は次のレイアのノードに信号を引き渡すことで初期のニューラルネットワークは0または1をバイアスを境に出力するものでした。したがって、恒等関数はこの役割を充足していないので、活性化関数として意味を持ちません。
この初期の活性化関数は出力結果が0または1と単純なもののため、中間的な事象をうまく表現できません。そこで、計算結果に応じて0~1の実数を出力するsigmoid関数が導入されることになります。しかしながら、このsigmoid関数を使った場合、勾配消失という問題が生じることが確認され、これを回避できるものとしてrelu関数が考案されました。

以上を踏まえて質問に回答すると、以下になると思います。

1.恒等関数が使用されない理由
活性化関数の本来の機能を果たせない(特に論理演算。よって回帰の場合、恒等関数でも問題ないことがある)

2.reluを用いるメリット
勾配消失を回避する
実際に勾配消失が発生するようなケースは相当複雑なモデルなので、それほど多層でなければsigmoidやtanhでも充分でしょう。

投稿2019/09/25 13:32

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問