Yolo 深圳
深セン
今すぐ参加
用語集

Leaky ReLU

AIとMLにおけるLeaky ReLU活性化関数のパワーをご覧ください。ReLUの消失問題を解決し、CV、NLP、GANなどのモデル性能を向上させます。

Leaky Rectified Linear Unit(リーキー・リニア・ユニット、リーキーReLU)は、主に次のような特殊な活性化関数である。 活性化関数である。 ニューラルネットワーク(NN)で使用される特殊な活性化関数である。 モデルで使用される特殊な活性化関数である。標準的な 整流線形ユニット(ReLU)の強化版として機能する。 瀕死のReLU」問題(ニューロンが不活性になり、完全に学習しなくなるシナリオ)を軽減するために特別に設計された。 を軽減するために特別に設計された。リーキーReLUは、負の入力に対して小さな、ゼロでない勾配を許容することで、次のような場合にネットワークに情報が流れ続けることを保証する。 バックプロパゲーションの間 バックプロパゲーションの間、ネットワークに情報が流れ続け、よりロバストで安定した モデル学習につながる。この小さな修正により、Leaky ReLUは 多くの最新の ディープラーニング(DL)アーキテクチャ、特に 特に深いネットワークや複雑なネットワークを学習する際に重要な要素となる。

死にゆくニューロン問題への取り組み

Leaky ReLUの主な革新性は、負の値の取り扱いにある。従来の 従来のReLU関数では、負の入力 はゼロを出力する。不適切なウェイトの初期化や ウェイトの初期化や積極的なデータシフトによって、ニューロンが常に負の入力を受 けた場合、そのニューロンは事実上「死ぬ」。 勾配がゼロになるため、事実上「死ぬ」。勾配がゼロになるということは 最適化アルゴリズムが 勾配がゼロになるということは、最適化アルゴリズムがそのニューロンの重みを更新できないことを意味し、残りの学習プロセスでは役に立たないことになる。

Leaky ReLUは、負の入力に対する単純な線形方程式を実装することでこれを解決する: f(x) = alpha * x, ここで alpha は小さな定数(通常0.01)である。この "リーク "によって、ユニッ が作動していないときでも、小さな、ゼロでない勾配が通過する。この継続的な勾配の流れは、勾配がゼロになるのを防ぎます。 消失グラデーション 局所的なスケールでの問題 これにより、モデルは効果的に重みを回復し、調整することができる。この挙動は で正式に分析されている。 畳み込みネットワークにおける整流活性化の経験的評価標準的な整流方法よりも優れていることを強調した。

AIの実世界での応用

Leaky ReLUは勾配の流れを維持する能力があるため、トレーニングの安定性が最も重要なタスクで広く採用されている。 最も重要である。

  • 生成的逆説的ネットワーク(GAN):Leaky ReLUの最も顕著な用途の1つは、GANの識別器ネットワークである。 識別ネットワーク Generative Adversarial Networks (GANs)である。GANの学習は不安定なことで知られており、しばしば勾配の消失に悩まされる。 実データと合成データを区別する学習が 学習することができない。負の値でも勾配が流れるようにすることで Leaky ReLUは、負の値でも勾配が流れるようにすることで、ジェネレーターと識別器間の健全な競争を維持するのに役立ちます、 その結果、より忠実な出力が得られる。
  • コンピュータビジョンのアーキテクチャ:多くの コンピュータビジョン(CV)モデル、特に の特徴抽出を改善するために、Leaky ReLUを活用している。 畳み込みニューラルネットワーク(CNN)の特徴抽出を改善する。のような最先端のモデルもあるが Ultralytics YOLO11のような最先端のモデルは、SiLU SiLUのような滑らかな関数に移行しているが、Leaky ReLUはカスタム エッジデバイス上で動作する軽量モデル エッジデバイス上で実行される軽量モデルのための計算効率の高い代替手段である。

PyTorchLeaky ReLUを実装する

Leaky ReLUの実装は、次のような一般的なフレームワークで簡単にできる。 PyTorch そして TensorFlow.以下の例では PyTorch nn モジュールである。

import torch
import torch.nn as nn

# Define a neural network layer with Leaky ReLU
# negative_slope=0.01 sets the leak factor for negative inputs
model = nn.Sequential(
    nn.Linear(in_features=10, out_features=5),
    nn.LeakyReLU(negative_slope=0.01),
    nn.Linear(in_features=5, out_features=2),
)

# Create a sample input tensor
input_data = torch.randn(1, 10)

# Perform a forward pass (inference)
output = model(input_data)

print(f"Model output: {output}")

関連する活性化関数との比較

Leaky ReLUを他の活性化関数と区別することは、あなたのアーキテクチャに適したコンポーネントを選択するために重要です。 アーキテクチャに適したコンポーネントを選択するために重要です。

  • ReLU対リーキーReLU:標準的な 標準的なReLUは、すべての負 を出力し、真のスパース性を提供するが、ニューロン死のリスクがある。Leaky ReLUは、完全なスパース性を犠牲にして 勾配フローを保証する。
  • PReLU(Parametric ReLU):Leaky ReLUが負の勾配に固定定数(例えば0.01)を使用するのに対して、PReLUはこの勾配を学習可能なパラメータとして扱う。 PReLUはこの傾きを学習可能なパラメータとして扱います。これにより、ネットワークは学習中に を最適化することができる。 わずかな計算オーバーヘッドを犠牲にして精度を向上させることができる。
  • SiLUとGELU:最新の関数 SiLU(シグモイド線形ユニット)と GELU (ガウス誤差線形ユニット) のような最新の関数は、ReLUの滑らかで確率的な近似を提供します。これらは トランスフォーマーや最新の ディープ・ネットワークでの優れた性能から、TransformersやYOLO モデルで好まれている。 リークReLUの方が計算速度は速い。

適切な活性化関数を選択するには、多くの場合 ハイパーパラメータのチューニングと 標準的なコンピュータ・ビジョンのデータセットで性能を検証する必要がある。リークReLU は、標準的なReLUが失敗した場合や、ディープネットワークでトレーニングの不安定性が観察された場合に、優れたデフォルトの選択肢となる。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加