ニューラルネットワークにおける活性化関数の種類
ニューラルネットワークの活性化関数の種類
ニューラルネットワークの活性化関数は、ディープラーニングの重要な部分であり、トレーニングモデルの精度と効率を決定します。大規模なニューラルネットワークの作成や分割に使用されるモデルとディープラーニングモデルの出力を決定します。活性化関数は、関連するデータに焦点を当てながら、他のデータを破棄するため、ニューラルネットワークにとって貴重なツールです。他の関数と同様に、活性化関数(転送関数)は入力を受け取り、その入力に比例する出力を返します。ニューラルネットワークのノードの活性化関数は、特定の入力または入力グループに対するノードの出力を指定します。
意図した結果を達成するために、どのニューロンを活性化または非活性化するか効果的に選択します。入力も非線形に変換され、高度なニューラルネットワークでのパフォーマンスが向上します。1から-1までの情報は、活性化関数で出力を正規化することができます。ニューラルネットワークは通常、何百万ものデータポイントでトレーニングされるため、活性化関数が高速であり、結果を計算するために必要な時間を最小限に抑えることが重要です。
さて、ニューラルネットワークの構造を確認し、ニューラルネットワークアーキテクチャがどのように組み立てられ、ニューラルネットワークにどの要素が存在するかを見てみましょう。
- 機械学習とは何か?メリットとトップMLaaSプラットフォーム
- より速い治療:Insilico Medicineが生成型AIを使用して薬剤開発を加速する方法
- NVIDIA H100 GPUがMLPerfベンチマークのデビューで生成型AIの標準を設定
人工ニューラルネットワークは、多くのリンクされた個々のニューロンを含んでいます。各ニューロンの活性化関数、バイアス、および重みが指定されます。
- 入力層 – ドメインの生データが入力層に送られます。この層は計算が行われる最も低いレベルです。これらのノードが行う唯一のことは、データを次の隠れ層に中継することです。
- 隠れ層 – 入力層から特徴を受け取った後、隠れ層はさまざまな計算を行い、結果を出力層に渡します。レイヤー2のノードは表示されず、基礎となるニューラルネットワークの抽象化レイヤーを提供します。
- 出力層 – ネットワークの隠れ層の出力がこの層でまとめられ、ネットワークの最終的な値が提供されます。
活性化関数の重要性
線形方程式は1次の多項式であるため、活性化関数を持たないニューラルネットワークは単なる線形回帰モデルです。解くのは簡単ですが、複雑な問題や高次の多項式に対処する能力は制限されています。
活性化関数は、ニューラルネットワークに非線形性を提供するために使用されます。活性化関数の計算は、順伝播の各層で追加のステップを行いますが、その手間は十分に報われます。
活性化関数がない場合、各ニューロンは重みとバイアスを使用して入力に対する線形変換を行います。2つの線形関数の合成は、それ自体が線形関数です。したがって、ニューラルネットワークの隠れ層の総数はその動作に影響を与えません。
活性化関数の種類
ニューラルネットワークは、異なる活性化関数が使用される3つの主要な部分に分類されます。
- バイナリステップ関数
- 線形関数
- 非線形活性化関数
バイナリステップニューラルネットワークの活性化関数
- バイナリステップ関数
この活性化関数は非常にシンプルであり、特定の閾値値を設定して、特定のニューロンの出力がアクティブ化されるかどうかを決定する閾値ベースの分類器として主に機能します。活性化関数への入力値が一定の閾値よりも大きい場合、ニューロンがアクティブ化され、その出力が次の隠れ層に渡されます。それ以外の場合、ニューロンは非アクティブ化されます。
制限事項:
- 複数の値を必要とする多クラス分類などの問題には適していません。
- ステップ関数には勾配がないため、バックプロパゲーションが困難です。
線形ニューラルネットワークアクティブ化関数
- 線形関数
出力が入力と等しい場合、線形活性化関数と呼ばれます。この関数は「非活性化」または「恒等関数」(x1.0)とも呼ばれます。関数は入力の重み付き合計を取り、値を変更せずに値を出力します。つまり、関数はニューロンまたは入力の合計に比例しています。したがって、直線の活性化関数を持っています。広範な活性化を生成するには、線形活性化関数を使用する方が効率的です。正の傾きを持つ直線は、入力率の増加に応じて発火率を増加させることができます。
制約事項:
- 入力xに対して関数の導関数が定数であり、入力xに影響を与えないため、バックプロパゲーションは使用できません。
- ニューラルネットワークの最後の層は常に最初の層の線形関数です。線形活性化関数は、ニューラルネットワークを最も単純な形に簡約します。線形活性化関数がニューラルネットワークに適用されると、すべての層が効果的に1つのスーパーレイヤーに統合されます。
非線形ニューラルネットワーク活性化関数
- シグモイド活性化関数
この関数は実数を入力とし、0から1の間の整数を返します。出力値は、入力が大きく(より正の)なるほど1.0に近くなり、入力が小さく(より負の)なるほど0.0に近くなります。そのため、出力が確率予測を必要とするモデルで最も一般的に使用されます。確率はすべて0から1の間にあるため、シグモイド分布が適しています。また、ロジスティック関数とも呼ばれます。
制約事項:
- ロジスティック関数はゼロ付近で対称的な結果を生成しません。これにより、すべてのニューロンの出力が同じ符号を共有します。これにより、ニューラルネットワークの訓練が本質的に不安定になります。
2. ReLU(Rectified Linear Unit)活性化関数
現在、ReLUは最も人気のある活性化関数です。これは、ディープラーニングや畳み込みニューラルネットワークシステムの重要なコンポーネントです。関数の0から無限大の範囲はいくつかの課題を提供しますが、負の値が0に高速に変換されるという事実は、データに正しくマッピングまたはフィットしないことを意味します。重要な問題は、ReLU関数がすべてのニューロンを同時に活性化しないことです。線形変換が0未満の値を生成すると、ニューロンはオフになります。ReLUは線形で飽和しないため、勾配降下法が損失関数のグローバル最小値にアプローチする速度を高めます。
制約事項:
- 学習率が高い場合、重みが負の値になる可能性があるため、出力項も有害になるかもしれません。同じ問題に対する1つの解決策は、学習率を減らすことです。
- すべての負の入力値がすぐにゼロに設定されるため、モデルはデータを適切にフィットまたは学習する能力が低下します。
3. Tanh関数
Tanh関数はハイパーボリック関数とも呼ばれます。tanhはロジスティックシグモイドの改良版です。tanh関数の範囲は(-1から1)です。tanhもシグモイド関数です(s字型)。負の入力は強く負にマッピングされ、ゼロの入力はゼロ付近にマッピングされます。tanhグラフをプロットする際には利点があります。関数自体は単調ですが、その導関数は単調ではありません。
制約事項:
- シグモイド活性化関数と同様に、勾配が消失する問題に悩まされます。また、tanh関数の勾配はシグモイド関数の勾配よりもはるかに急峻です。
4. リーキーReLU関数
リーキーReLUは、ReLU関数の問題であるDying ReLU問題を回避するために使用できる改良版です。したがって、ノードはオフにならず、負の値が0に変換されないため、ReLUの問題であるノードの消滅問題は回避されます。
制約事項:
- 勾配が負の値に対して最小限である場合、学習モデルパラメータの調整が面倒です。
5. パラメトリックReLU関数
P-ReLUまたはParametric ReLUは、ReLUの負の半分を傾きのある直線で置き換えることを目指すLeaky ReLUの変種です。負の値は0に到達しないため、ノードはオフにならず、ReLUの問題であるノードの消滅問題も発生しません。
制約事項:
- 傾きパラメータの値によって、さまざまな問題に対して異なる結果が得られる可能性があります。
6. 指数型線形ユニット関数
ELU活性化関数は別の選択肢であり、高速な収束と高品質の出力で知られています。負の端子には変更された指数関数が代わりに使用されます。残念ながら、計算上のオーバーヘッドが増えますが、少なくともReLUの問題は終わりません。負の入力値に対して「log」曲線を提供することで、「死んだ」ReLUの問題の発生確率を減らします。これにより、ネットワークは適切にバイアスと重みを調整するのに役立ちます。
制限事項:
- 指数関数の含まれる演算は処理時間の増加を引き起こします。
- 変数 ‘a’ の値はどのように取得されることもなく、勾配爆発の問題が主な制限の一つです。
7. スケーリング指数線形ユニット関数
内部正規化はSELUによって処理され、各層の平均値と分散が維持されるようになります。平均値と分散を修正することにより、SELUはこの正規化を可能にします。ReLU活性化関数は負の値を生成することができないため、SELUは以前は不可能だった方法で平均値を移動することができます。分散は勾配を使用して修正することができます。
SELU活性化関数を増幅させるには、勾配が1より大きい領域が必要です。内部正規化が外部正規化よりも多く使用される場合、ネットワークの収束がより速く発生します。
8. ガウシアン誤差線形ユニット関数
BERT、ROBERTa、ALBERTなど、最も人気のあるNLPモデルの多くは、GELU活性化関数と互換性があります。ドロップアウト、ゾーンアウト、ReLUの特性を組み合わせてこの活性化関数がインスピレーションを受けています。GELU非線形性は、ReLUおよびELU活性化関数よりもコンピュータビジョン、NLP、音声認識のすべてのタスクでパフォーマンスを向上させます。
9. ソフトマックス活性化関数
シグモイド活性化と同様に、ソフトマックスは各入力変数に重みに基づいて値を割り当てますが、これらの重みの総和に基づいて最終的に1になります。これがソフトマックスが通常出力層で使用される理由です。これは、意思決定に使用される最終層です。
結論
より複雑なタスクを理解し、実行するために、入力はしばしば非線形変換を受け、これらのような活性化関数がこのプロセスで重要な役割を果たします。ニューラルネットワークの隠れ層には通常、同じ活性化関数があります。ネットワークのパラメータはバックプロパゲーションによって学習できるため、この活性化関数は微分可能である必要があります。最も一般的な活性化関数、それらの制限(あれば)および使用方法について説明しました。
「活性化関数」については広く知られていますが、その効果について考えるのはほとんどの人が好きではありません。なぜそれらが使用されるのか、どのように貢献するのか、何を言わなければならないのかなど。問題は単純に見えるかもしれませんが、根底にあるダイナミクスはかなり複雑な場合があります。
参考文献:
- https://www.analyticssteps.com/blogs/7-types-activation-functions-neural-network
- https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6
- https://thehackweekly.com/8-most-popular-types-of-activation-functions-in-neural-networks/
- https://www.v7labs.com/blog/neural-networks-activation-functions
この記事はニューラルネットワークの活性化関数の種類についてのものであり、MarkTechPostで最初に掲載されました。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles