この記事は、「新人クリエーションセレモニー」イベントに参加し、一緒にゴールドクリエーションの道を歩み始めました。
前回の記事の最後に、活性化関数の簡単な紹介をしました。この記事では、活性化関数の重要な説明をします。活性化関数は、次のネットワークでよく使用されますが、その役割を過小評価しないでください。
1.シグモイド関数
数学は次のように定義されています
xの値の範囲は負の無限大と正の無限大の間にあり、yの値の範囲は(0,1)です。関数は間隔内で連続値を取り、ゆっくりと変化します。以下に示すように
前のブログで例として使用された線形関数y=wx + bは、ここでも説明のための例として使用されています。ニューロンが活性化関数としてシグモイド関数を使用すると仮定すると、s(wx + b)関数が上記の式に組み込まれて計算され、wx + bが正の無限大に近い場合、関数全体が1になる傾向があります。逆に、関数全体が0に近づくと、シグモイド関数が連続的であるため、このニューロンの入力から得られる出力も連続的に変化しますが、非常にゆっくりと変化します。
2.tanh関数
数学は次のように定義されています
関数の数式から計算するのは難しくありません。tanhの値の範囲は(-1、1)であり、その変動範囲はシグモイドのそれよりも比較的大きいです。ここでは関連する理論のみが含まれていますが、そうでない場合もあります。実際のネットワークに反映されると、違いは大きく異なります。以下のブログ投稿でゆっくりと説明します。これで、各機能の形式と価値を理解し、印象を残すだけで済みます。関数を変更する式は次のとおりです。
3.ReLu関数
数学は次のように定義されています
f(x)= max(0、x)
関数の定義は非常に簡潔で明確です。x>0の部分では、f(x)= xが最も単純な線形関数です。x<0の部分では、f(x)=0.relu関数の出現です。シグモイドを解くためのものです。関数によって引き起こされる問題にはいくつかの非常に明白な影響がありますが、勾配爆発の新しい問題ももたらします。これについては後で詳しく説明します。関数の画像は次のとおりです
4.LeakyReLu関数
ReLUによる勾配爆発の問題を解決するために、LeakyReLUが提案され、その数学的定義は次のとおりです。
ReLUと比較すると、ゼロ未満の部分では直接0に割り当てられていませんが、ゆっくりと変化する係数が追加されているため、常に0とは限りません。関数のイメージを以下に示します。
要約する
4つの活性化関数は以前に導入されたので、活性化関数の機能とアプリケーションの場所は何ですか、このブログ投稿はそれを明確にする必要があります。まず、勾配降下アルゴリズムでは、シグモイドまたはReLUのどちらを使用する場合でも、アルゴリズムが継続的な学習を通じてエラーを徐々に減らすのは遅いプロセスです。活性化関数が使用する位置はニューロンの後部にあり、次の図から活性化関数の位置を直感的に確認できます。