Middle
Rezidüel blok nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Rezidüel blok, ResNet'e tanıtılan ve çok derin ağların eğitiminde gradyanların kaybolması sorunuyla mücadeleye yardımcı olan bir yapısal unsurdur.
Rezidüel bloğun fikri, doğrudan ( H(x) ) haritalama fonksiyonunu öğrenmek yerine, blokun ( F(x) = H(x) - x ) düzeltmesini öğrenmesidir, yani kalan (residual). Sonuçta, bloğun çıkışı şu şekilde hesaplanır:
[ \text{çıktı} = F(x) + x ]
burada:
- ( x ) bloğun girişidir,
- ( F(x) ) birkaç katmanın (örneğin, konvolüsyon, aktivasyonlar) sonucudur.
Bu, gradyanın katmanlar arasında daha kolay geçmesine olanak tanır ve derin modellerin eğitimini iyileştirir.
Basit bir rezidüel blok örneği (sözde kod):
import torch
import torch.nn as nn
class ResidualBlock(nn.Module):
def __init__(self, channels):
super().__init__()
self.conv1 = nn.Conv2d(channels, channels, kernel_size=3, padding=1)
self.bn1 = nn.BatchNorm2d(channels)
self.relu = nn.ReLU()
self.conv2 = nn.Conv2d(channels, channels, kernel_size=3, padding=1)
self.bn2 = nn.BatchNorm2d(channels)
def forward(self, x):
residual = x
out = self.conv1(x)
out = self.bn1(out)
out = self.relu(out)
out = self.conv2(out)
out = self.bn2(out)
out += residual # giriş ekleniyor (atlama bağlantısı)
out = self.relu(out)
return out
Bu şekilde, rezidüel bloklar çok derin sinir ağlarının eğitim kalitesini düşürmeden inşa edilmesine olanak tanır.