Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Leaky ReLU

Leaky ReLU, gradyanların akmaya devam etmesi ve ReLU nöronlarının ölmesi sorununun önlenmesi için negatif girdileri küçük bir eğimle, genellikle 0,01 ile geçirir.

Leaky ReLU (sızdıran doğrultulmuş doğrusal birim), girdi pozitif olduğunda girdiyi değiştirmeden döndüren, negatif olduğunda ise 0.01 gibi küçük ve sabit bir eğimle çarpan bir aktivasyon fonksiyonudur. Her negatif girdi için sıfır çıktı veren standart ReLU fonksiyonunu değiştirerek, negatif değerlerin küçük bir çıktı ve daha da önemlisi geri yayılım sırasında sıfırdan farklı bir gradyan üretmesini sağlar. Andrew Maas, Awni Hannun ve Andrew Ng, konuşma tanıma akustik modellerindeki doğrultucu aktivasyonlar üzerine 2013 tarihli bir çalışmada bu fonksiyonu 0.01 eğimle tanımladı. Üretici çekişmeli ağ ayırt edicilerinden eski YOLO nesne algılayıcılara ve parçalı doğrusal aktivasyonlarla niceleştirilmiş modeller çalıştıran sinir işlem birimlerine kadar, gradyan akışının önemli olduğu derin öğrenme modellerinde kullanılır.

Leaky ReLU Nasıl Çalışır#

Leaky ReLU, x > 0 için f(x) = x, x ≤ 0 içinse f(x) = αx hesaplar; burada negatif eğim olan α, 0 ile 1 arasında sabit bir hiperparametredir. Türevi pozitif girdiler için 1, negatif girdiler için α olur; böylece her girdi, kendisini üreten ağırlıklara bir miktar gradyan iletir. Alışılmış eğim, kaynağa ve çerçeveye göre değişir: PyTorch'un nn.LeakyReLU varsayılan olarak 0.01, TensorFlow'un tf.nn.leaky_relu değeri 0.2 ve Keras LeakyReLU katmanı 0.3 kullanır. Bu kod, negatif girdileri ReLU ve Leaky ReLU'dan geçirir ve her birinin gradyanını hesaplar:

import torch
from torch import nn

# Negative pre-activations, the inputs a ReLU unit turns into zeros
x = torch.tensor([-3.0, -1.0, -0.5], requires_grad=True)

for activation in (nn.ReLU(), nn.LeakyReLU(negative_slope=0.01)):
    y = activation(x)
    y.sum().backward()  # gradient that flows back toward the weights
    print(f"{activation}: output {y.detach().numpy()}, gradient {x.grad.numpy()}")
    x.grad = None

ReLU(): output [0. 0. 0.], gradient [0. 0. 0.] ve LeakyReLU(negative_slope=0.01): output [-0.03 -0.01 -0.005], gradient [0.01 0.01 0.01] değerlerini yazdırır. ReLU bu girdilerden geriye gradyan göndermez; bu nedenle gradyan inişi onları üreten ağırlıkları değiştiremez. Leaky ReLU ise önceki katmandan gelen gradyanın %1'ini geri gönderir.

ReLU Nöronunun Ölmesi Sorunu#

Bir ReLU nöronu, ağırlıkları ve yanlılık değeri eğitim verilerindeki her girdi için ön aktivasyon negatif kalacak kadar değiştiğinde ölür. Bu durumda çıktısı ve gradyanı her zaman sıfır olur, gelen ağırlıkları bir daha güncellenmez ve nöron sinir ağında kalıcı olarak kaybedilir. Yüksek bir öğrenme oranı veya büyük bir negatif yanlılık güncellemesi bu durumu daha olası kılar. Leaky ReLU negatif tarafta küçük bir gradyan korur; böylece negatif bölgeye kayan bir nöron hâlâ geri çekilebilir:

ReLU nöronunun ölmesi sorunu, kaybolan gradyan sorunundan farklıdır. Kaybolan gradyan sorununda gradyanlar, sigmoid veya tanh gibi doygunlaşan fonksiyonların çok sayıda katmandan geçmesiyle giderek küçülür.

  • ReLU: Negatif girdiler için tam sıfır çıktılar verir; bu, aktivasyonları seyrekleştirip hesaplamayı ucuzlatır ancak nöronların ölmesine yol açabilir. Leaky ReLU, her yerde gradyan elde etmek için tam seyrekliğe sahip olmaktan vazgeçer.
  • Parametrik ReLU (PReLU): Negatif eğimi sabitlemek yerine eğitim sırasında, genellikle kanal başına bir değer olarak öğrenir. Kaiming He ve çalışma arkadaşları eğimi 0.25 olarak başlattı; bu değer PyTorch'un nn.PReLU için de varsayılandır.
  • SiLU ve GELU: Negatif girdilerde sıfırın biraz altına inen ve sıfırda keskin bir köşesi olmayan düzgün eğrilerdir. SiLU, modern YOLO modellerinde varsayılandır; GELU ise Transformer'larda yaygındır. Her ikisi de değer başına üstel işlem gerektirirken Leaky ReLU yalnızca karşılaştırma ve çarpma gerektirir.

Leaky ReLU Nerelerde Kullanılır#

  • DCGAN ayırt edicileri: DCGAN mimarisi, her ayırt edici katmanında 0.2 eğimli Leaky ReLU kullandı; böylece ayırt edicinin reddettiği görüntülerde bile üretici yararlı gradyanlar alır. Daha sonraki birçok GAN de bu tercihi sürdürdü.
  • İlk dönem YOLO algılayıcıları: Özgün YOLO, son katman dışındaki tüm katmanlarında 0.1 eğimli Leaky ReLU kullandı; YOLOv2 ve YOLOv3 de aynı tercihi yaptı. YOLOv5 ise Ocak 2021'de yayımlanan v4.0 sürümü bunu SiLU ile değiştirene kadar Leaky ReLU kullandı.
  • Graf dikkat ağları: Bu grafik sinir ağları, her düğümün komşularına ne kadar dikkat etmesi gerektiğini puanlarken 0.2 eğimli Leaky ReLU uygular.
  • Uç yapay zekâ hızlandırıcıları: Niceleştirilmiş modeller çalıştıran tamsayı sinir işlem birimleri, parçalı doğrusal bir aktivasyonu önceki evrişim işlemine katlayabilir. AMD'nin Xilinx DPU'su bunu ReLU ve Leaky ReLU için yapar; sigmoid ve dolayısıyla SiLU işlemlerini ise ana makinenin CPU'sunda çalıştırır.

Ultralytics YOLO model YAML dosyaları, her standart evrişim bloğundaki varsayılan SiLU'yu değiştiren bir activation anahtarını kabul eder; böylece YOLO26, DPU'nun sabit 26/256 eğimine uyacak şekilde activation: nn.LeakyReLU(0.1015625) ile eğitilebilir.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla