Kurs
Daha derin sinir ağlarının daha iyi performans göstermesi gerekir. Ancak pratikte, bu her zaman böyle olmaz.
Belirli bir derinlikten sonra, doğruluk aslında düşmeye başlayabilir. Bunun nedeni modelin aşırı uyum sağlaması değildir—eğitimin kendisi bozulur. Gradyanlar erken katmanlara ulaşmadan önce sönümlenme eğilimindedir ve bu katmanlar öğrenmeyi bırakır. Daha fazla katman eklemenin bunu düzelteceğini düşünebilirsiniz ama çoğu zaman daha da kötüleştirir.
ResNet bunu atlama bağlantıları fikriyle çözdü. Her katmanı sıfırdan öğrenmeye zorlamak yerine, ağın katmanları atlamasına ve girdiyi doğrudan çıktıya eklemesine izin verir.
Bu yazıda ResNet'in nasıl çalıştığını, mimarisinin nasıl göründüğünü ve neden modern derin öğrenmede hâlâ başvurulan bir algoritma olduğunu ele alacağım.
ResNet'i uygulamada görmek ister misiniz? ResNet ile Görüntü Sınıflandırma alıştırmasını şu kursun bir parçası olarak çözün: PyTorch ile Görüntüler için Derin Öğrenme.
ResNet Mimarisi Nedir?
ResNet—Residual Network (Artık Ağ) kısaltması—derin ağların eğitimini pratik hale getirmek için tasarlanmış bir sinir ağı mimarisidir.
Fikir 2015'te Microsoft Research tarafından ortaya kondu. Algoritma, o dönem derin ağları sınırlayan eğitim sorunlarını aşmak için artık bağlantıları kullanır. Fikir basitti, ancak keşiften sonra ilk kez 50, 101 hatta 152 katmanlı ağları güvenilir biçimde eğitebilir oldunuz—performansın düşüşünü izlemeden.
ResNet'ten önce, bu kadar derine inmek pek mümkün değildi.
Derin Ağların Eğitimi Neden Zordur
Daha fazla katman, ağın öğrenmesi için daha fazla fırsat anlamına gelmelidir. Pratikte, belli bir derinlikten sonra işler bozulmaya başlar.
Burada iki sorun rol oynar.
İlki sönümlenen gradyan problemidir. Sinir ağları hatayı ağ üzerinden geriye doğru göndererek öğrenir—bu sürece geri yayılım denir. Her katman bu sinyale göre ağırlıklarını ayarlar. Ancak sinyal çok sayıda katmandan geri geçerken defalarca küçük sayılarla çarpılır ve küçülür. Erken katmanlara ulaştığında neredeyse hiçbir şey kalmaz. Bu katmanlar güncellenmeyi bırakır, dolayısıyla öğrenmeyi de.
İkincisi ise bozulma problemidir. Bu sezgiye aykırıdır. 56 katmanlı bir ağın en az 20 katmanlı olan kadar iyi performans göstermesini beklersiniz—sonuçta daha fazla kapasiteye sahiptir. Ancak araştırmacılar bunun tersini buldu. Daha derin ağ, eğitim verisi üzerinde bile daha kötü performans gösterdi. Bu, nedeni olarak aşırı uyumu dışlar. Model çok fazla ezberlemiyor. Bunun yerine, optimize etmekte zorlanıyor.
Kilit ayrım bu. Bunlar bırakma (dropout) veya düzenlileştirme ile düzeltebileceğiniz genelleme sorunları değil. Bunlar optimizasyon sorunları—ağ, en başta iyi ağırlıkları bulamıyor.
ResNet'ler bu iki sorunu çözmek için tasarlandı. Nasıl olduğuna bakalım.
Çekirdek Fikir: Artık Öğrenme
Geleneksel sinir ağları, girdiden çıktıya doğrudan bir eşleme öğrenmeye çalışır. Her katman, geleni inceler ve ne çıkması gerektiğini anlamaya çalışır. Bu sığ ağlarda işe yarar. Ancak derinleştikçe, az önce bahsedilen iki sorunla karşılaşırsınız.
ResNet ile, her bloğun tam eşlemeyi öğrenmesini istemek yerine daha basit bir soru sorulur: doğru çıktıyı elde etmek için girdiye neyi eklemem gerekiyor?
Bu fark, artık olarak adlandırılır.
Yani şu eşlemeyi öğrenmek yerine:

Artık öğrenme (1)
Ağ şunu öğrenir:

Artık öğrenme (2)
Burada F(input) artık terimidir—ağın yapması gereken küçük düzeltme. Katmanın hiçbir şeyi değiştirmesi gerekmiyorsa, F(input) değerini sıfıra doğru itebilir ve girdiyi olduğu gibi geçirebilir.
Küçük bir değişiklik gibi gelebilir. Ancak ağın öğrenmesi gereken şeyi değiştirir. Küçük bir düzeltmeyi öğrenmek, sıfırdan tam bir dönüşüm öğrenmekten çok daha kolay bir optimizasyon problemidir ve bu, daha derin ağların eğitilebilir olmasını sağlar.
ResNet'te Atlama Bağlantıları Nedir?
Atlama bağlantısı adından da anlaşılacağı gibi—bir veya daha fazla katmanı atlayarak girdiyi ağın daha ileri bir noktasına doğrudan besleyen bir yoldur.
Geleneksel bir ağda veriler katmanlar boyunca sırayla akar. Her katman girdiyi dönüştürür ve sonucu bir sonrakine aktarır. Atlama bağlantıları, özgün girdiyi alır ve blokta daha aşağıdaki bir katmanın çıktısına doğrudan ekler.
Bunu şöyle hayal edebilirsiniz:

Atlama bağlantısı grafik örneği
Girdi x aynı anda iki yoldan ilerler. Yollardan biri, artığı F(x) öğrenen evrişim katmanlarından geçer. Diğer yol bu katmanları atlar ve toplama adımına bağlanır. Nihai çıktı F(x) + x olur.
Bu kısayol eğitim için önemli bir şey yapar. Geri yayılım sırasında gradyanlar, ara katmanlardan geçmeden atlama bağlantısı üzerinden geri akabilir. Bu, erken katmanlara daha temiz ve daha güçlü bir sinyal verir—ResNet öncesi derin ağlarda eksik olan tam olarak buydu.
Bir ResNet Bloğunun Yapısı
Artık blok, bir ResNet'i oluşturan tekrar eden birimdir. Bir bloğu anlarsanız, tüm ağı anlarsınız.
Tek bir bloğun içinde olanlar şunlardır:
-
Girdi
xbloğa girer ve iki yola ayrılır -
Yollardan biri, her birinin ardından katman normlaştırma (batch normalization) ve ReLU aktivasyonu gelen iki evrişim katmanından geçer
-
Diğer yol bu katmanları atlar—bu atlama bağlantısıdır
-
İki yol bir toplama adımında buluşur; özgün girdi, evrişim katmanlarının çıktısına eklenir
-
Sonuç üzerine son bir ReLU aktivasyonu uygulanır
Veya diyagram olarak:

ResNet blok diyagramı
Buradaki atlama bağlantısına özdeşlik eşlemesi denir—girdi değişmeden geçer ve öğrenilen çıktıya doğrudan eklenir. Dönüşümsüz ve fazladan parametresiz, mümkün olan en basit kısayoldur.
Ancak toplamanın çalışması için iki yolun da aynı biçimde tensörler üretmesi gerekir. Evrişim katmanları uzamsal boyutları veya kanal sayısını değiştirirse, girdi x eklenemez. Bu durumlarda ResNet bir izdüşüm kısayolu uygular—atlama yolunda x'i eşleştirmek için 1×1 evrişim kullanır.
ResNet'teki blokların çoğu özdeşlik kısayolları kullanır. İzdüşüm kısayolları yalnızca boyutlar değiştiğinde, genellikle ağ aşamalar arasında geçiş yaparken ortaya çıkar.
ResNet Mimarisi Türleri
ResNet, her biri toplam katman sayısına göre adlandırılan birkaç standart varyantla gelir. Doğru seçim, hız, doğruluk veya ikisinin dengesi gibi neyi optimize ettiğinize bağlıdır.

ResNet mimarisi karşılaştırması
ResNet-18 ve ResNet-34, standart temel bloğu kullanır—atlama bağlantılı iki adet 3×3 evrişim katmanı. Hızlıdırlar ve çalıştırması ucuzdur; prototipleme yaparken veya sınırlı donanımla çalışırken iyi bir başlangıç noktasıdırlar.
ResNet-50 ve üstü, iki yerine üç katman kullanan şişe boynu (bottleneck) bloğu adlı farklı bir tasarıma geçer. Bu değişiklik, hesaplama maliyetinde orantılı bir artış olmadan daha derin ağların eğitilmesini kolaylaştırır. Bunun nasıl çalıştığını sonraki bölümde daha ayrıntılı okuyacaksınız.
ResNet-101 ve ResNet-152 bir adım daha ileri gider, ancak daha uzun eğitim süreleri ve daha yüksek bellek kullanımı pahasına. Doğruluğun hızdan daha önemli olduğu araştırmalarda ve üretim sistemlerinde yaygındırlar.
Çoğu pratik çalışma için varsayılan başlangıç noktası ResNet-50'dir. Derinlik ve maliyet arasında iyi bir dengeye sahiptir ve tüm büyük derin öğrenme çerçevelerinde iyi desteklenir.
ResNet Şişe Boynu Mimarisi
Daha derin ResNet'ler, sığ olanlarla aynı blok tasarımını kullanmaz. ResNet-50'den itibaren mimari, derinlik arttıkça hesaplamayı yönetilebilir tutan üç katmanlı bir tasarım olan şişe boynu bloğuna geçer.
Blok sırayla üç evrişim kullanır:
- 1×1 evrişim—kanal sayısını azaltır, girdiyi küçültür
- 3×3 evrişim—o daha küçük gösterim üzerinde asıl özellik öğrenmeyi yapar
- 1×1 evrişim—kanalları yeniden özgün boyuta genişletir
İlk ve son 1×1 evrişimler bir şişe boynu görevi görür—adını buradan alır. Daha pahalı 3×3 evrişim çalışmadan önce veriyi sıkıştırır, ardından geri yükler.
Yüksek kanallı bir girdi üzerinde 3×3 evrişim hesaplama açısından ağırdır. Önce kanalları azaltarak, şişe boynu bloğu 3×3 katmanının işini çok daha küçük bir girdi üzerinde yapmasına olanak tanır. Sonuç, hesaplama maliyetinde orantılı bir sıçrama olmadan daha derinleşen bir bloktur.
Atlama bağlantısı temel bloktakiyle aynı şekilde çalışır—girdi, son aktivasyondan önce çıktıya eklenir. Tek fark, kanal boyutları blok içinde değiştiğinden burada neredeyse her zaman bir izdüşüm kısayoluna ihtiyaç duyulmasıdır.
ResNet Sönümlenen Gradyan Problemini Nasıl Çözer
Sönümlenen gradyan problemi mesafe ile ilgilidir. Gradyanın ağda kat etmesi gereken yol ne kadar uzunsa o kadar küçülür—erken katmanlara ulaştığında, öğrenilecek pek bir şey kalmaz.
Atlama bağlantıları, gradyanlara daha kısa bir yol sunarak bu sorunun etrafından dolaşır.
Geri yayılım sırasında gradyanların sırayla her katmandan geçmesi gerekmez. Doğrudan atlama bağlantısından geri akabilir, evrişim katmanlarını tamamen atlayabilir. Bu kısayol, gradyanı erken katmanları gerçekten güncelleyecek kadar büyük tutar.
Bu aynı zamanda her bloğun öğrenmesi gereken şeyi de değiştirir. Sıfırdan tam bir dönüşüm bulmak yerine, ağ yalnızca girdinin üzerine küçük bir düzeltme öğrenir. Bu çok daha kolay bir optimizasyon problemidir ve ağın, eğitim kararsız hale gelmeden derinleşebilmesi anlamına gelir.
Özetle, daha önce güvenilir şekilde eğitilemeyecek kadar derin olan ağlar eğitilebilir hale gelir.
ResNet ve Geleneksel CNN Mimarileri
Geleneksel CNN'ler ve ResNet'ler her ikisi de görüntülerden özellikler öğrenir, ancak bunu farklı yollarla yaparlar.
Geleneksel bir CNN'de veriler katmanlar boyunca düz bir hatta akar. Her katman, bir öncekinden gelen çıktıyı alır, bir dönüşüm uygular ve sonucu ileriye aktarır. Bu belli bir noktaya kadar iyi çalışır. Belirli bir derinlikten sonra, sıralı yapı geri yayılım sırasında güvenilmez hale gelir—gradyanlar küçülür, erken katmanlar öğrenmeyi bırakır ve doğruluk düşmeye başlar.
ResNet düz bir hat üzerinde ilerlemez. Atlama bağlantıları, girdinin bir veya daha fazla katmanı atlamasına ve blokta daha aşağıdaki çıktıya doğrudan eklenmesine olanak tanır. Ağ hâlâ dönüşümler öğrenir, ancak hem verilerin hem de gradyanların içinden geçebileceği doğrudan bir yola da sahiptir.
İki yaklaşım şöyle karşılaştırılabilir:

ResNet ve geleneksel CNN karşılaştırması
Atlama bağlantıları hem gradyanlara yardımcı olur hem de optimizasyonu pürüzsüzleştirir; bu da ağın iyi ağırlıkları daha hızlı ve daha güvenilir şekilde bulması anlamına gelir.
ResNet Mimarisi Uygulamaları
ResNet mimarisi, gerçek dünyadaki çok geniş bir görev yelpazesinde karşımıza çıkar.
Görüntü sınıflandırma ResNet'in başladığı yerdir. 2015'te ImageNet Büyük Ölçekli Görsel Tanıma Yarışması'nı kazandı ve tıbbi taramalar, uydu görüntüleri veya ürün fotoğrafları olsun, görüntüleri kategorilere ayırmak için hâlâ başvurulan bir seçenektir.
Nesne tespiti iş akışları sıklıkla ResNet kullanır. Faster R-CNN ve Mask R-CNN gibi çerçeveler, ResNet'i bir görüntüdeki nesneleri tanımlayan ve konumlandıran bir tespit başlığıyla birleştirir. Özellik çıkarımını ResNet yapar, geri kalanını tespit başlığı üstlenir.
Transfer öğrenmesi çoğu veri bilimci için ResNet'in gerçekten faydalı olduğu yerdir. Sıfırdan eğitmek—ki günler sürer ve çok veri ister—yerine, ImageNet üzerinde önceden eğitilmiş bir ResNet'i yükler ve kendi veri kümeniz üzerinde ince ayar yaparsınız. Önceden eğitilmiş ağırlıklar, kenarlar, dokular ve şekiller gibi faydalı düşük seviyeli özellikleri zaten kodlar; yani çok daha iyi bir yerden başlarsınız.
Özellik çıkarımı benzer bir yaklaşım benimser. Görüntülerinizi önceden eğitilmiş bir ResNet'ten geçirir ve çıktıyı daha sonraki katmanlardan birinden çekersiniz. Bu çıktılar, daha basit bir sınıflandırıcıya veya kümeleme algoritmasına besleyebileceğiniz yoğun ve anlamlı temsilcilerdir.
Bu kullanım durumlarının tümünde ResNet, önceden eğitilmiş bir başlangıç noktası olarak çalışır. Çoğu derin öğrenme çerçevesi, kutudan çıktığı gibi önceden eğitilmiş ResNet ağırlıklarıyla gelir; bu da onu başlaması en kolay mimarilerden biri yapar.
ResNet'in Avantajları ve Sınırlamaları
ResNet derin öğrenmede gerçek bir adımdı—ancak her mimari gibi, bazı ödünler içerir. Birkaç avantaj ve dezavantaja değineyim.
Avantajlar
En barizi derinliktir. Atlama bağlantıları, veri bilimcilerin 50, 100 hatta 150+ katmanlı ağları bozulma problemine takılmadan eğitmesine olanak tanır. Bu, ResNet'ten önce güvenilir şekilde mümkün değildi.
Eğitim ayrıca daha kararlıdır. Kısayol yolları, gradyanlara ağ üzerinden geri dönüş için temiz bir rota verir; bu da daha az ayar, daha az çöküş ve farklı görevler ile veri kümeleri arasında daha öngörülebilir sonuçlar anlamına gelir.
Ve performans da bir avantajdır. ResNet varyantları görüntü kıyaslamalarında sürekli olarak iyi sıralanır ve önceden eğitilmiş ResNet modelleri yeni alanlara iyi aktarılır; bu nedenle hâlâ pek çok bilgisayarla görme projesi için varsayılan başlangıç noktasıdırlar.
Sınırlamalar
ResNet hesaplama açısından ağırdır. ResNet-101 ve ResNet-152 gibi daha derin varyantlar çokça bellek ve işlem gücü ister; bu da sınırlı donanımla çalışırken veya hızlı çıkarım gerektiğinde bir kısıt olabilir.
Ayrıca her görev için en iyi uyum değildir. Daha küçük veri kümeleri veya daha basit problemler için, daha hafif bir mimari çoğu zaman maliyetin çok küçük bir kısmıyla benzer performans gösterir. Varsayılan olarak ResNet-50 seçmek her zaman doğru değildir.
Ve bazı alanlarda ResNet'in yerini alanlar oldu. EfficientNet gibi mimariler görüntü görevlerinde parametre başına daha iyi doğruluk sağlar; diğerlerinde ise dönüştürücüler (transformer) öne geçmiştir. ResNet hâlâ yaygın olarak kullanılır, ancak artık tek ciddi seçenek değildir.
Modern Derin Öğrenmede ResNet
Tanıtılmasının üzerinden on bir yıl geçmesine rağmen ResNet mimarisi hâlâ dimdik ayakta. Bu, derin öğrenmede yaygın değildir.
Çoğu uygulayıcı, bir bilgisayarla görme görevi için güvenilir bir temel gerektiğinde hâlâ ResNet'e yönelir. İyi anlaşılmıştır, tüm büyük çerçevelerde iyi desteklenir ve her büyük kütüphanede önceden eğitilmiş ağırlıklar mevcuttur. Yani fazla deneme yapmadan işe yarayan bir şeye ihtiyacınız olduğunda, genellikle ilk denediğiniz seçenek ResNet olur.
Ancak etkisi kendi varyantlarının ötesine geçer.
ResNet'in çekirdek fikri—bilgi ve gradyan akışına yardımcı olmak için katmanların etrafına bir kısayol ekleyebilme—genel olarak faydalı olduğu ortaya çıktı. DenseNet bu fikri, yalnızca bir veya iki katmanı atlamak yerine her katmanı diğeriyle bağlayarak geliştirdi. Ve dönüştürücülerin mimarisi farklı olsa da, her dönüştürücü bloğundaki artık bağlantılar ResNet'in ortaya koyduğu aynı ilkeyi izler.
EfficientNet, ConvNeXt ve görsel dönüştürücüler gibi daha yeni mimariler belirli alanlarda performansı daha da ileri taşıdı. Ancak ResNet'i yerinden etmekten çok, onun ortaya koyduğunun üzerine inşa ettiler.
Sonuç
ResNet mimarisi tek bir şeyle ilgilidir: atlama bağlantıları. Bu tek fikir, derin ağları geri tutan iki sorunu—sönümlenen gradyanlar ve bozulma problemini—çözdü ve daha önce mümkün olmayan bir derinlikte ağları eğitmeyi pratik hale getirdi.
Katmanlar arasında kısayollar ekleme fikri, artık DenseNet, dönüştürücüler ve 2015'ten sonra inşa edilen çoğu mimaride görülen modern derin öğrenmede standart bir yapı taşıdır.
Bugün bir bilgisayarla görme problemi üzerinde çalışıyorsanız, ResNet hâlâ sağlam bir başlangıç noktasıdır. En yeni seçenek değildir, ancak en güvenilir olanlardan biridir. Onu bir temel olarak ele alın—2026'da hâlâ rakiplerini geride bırakabildiğine şaşıracaksınız.
Derin öğrenmede yeniyseniz ama Python'un temellerini biliyorsanız, Python ile TensorFlow'a Giriş kursumuzu keşfedin—ResNet gibi konulara bir hafta sonunda başlamanızı sağlar.
SSS
ResNet nedir ve neden önemliydi?
ResNet, Residual Network'ün kısaltmasıdır ve 2015'te Microsoft Research tarafından tanıtılmış bir derin öğrenme mimarisidir. Derin ağların eğitimini zorlaştıran iki sorunu çözdü: sönümlenen gradyanlar ve bozulma problemi. Atlama bağlantıları mekanizması, ilk kez 50, 100 hatta 150+ katmanlı ağların güvenilir şekilde eğitilmesini mümkün kıldı.
Sinir ağında atlama bağlantıları nedir?
Atlama bağlantısı, bir veya daha fazla katmanı atlayıp girdiyi doğrudan daha sonraki bir katmanın çıktısına ekleyen doğrudan bir yoldur. Bu, hem verilere hem de gradyanlara ağ içinde bir kısayol verir; böylece eğitim sırasında gradyan sinyali, erken katmanları güncelleyecek kadar güçlü kalır.
Sönümlenen gradyan problemi nedir?
Sönümlenen gradyan problemi, gradyanların derin bir ağda geriye doğru ilerlerken küçülmesiyle ortaya çıkar. Sinyal erken katmanlara ulaştığında, onları güncellemek için fazla küçüktür—bu da o katmanların öğrenmeyi bırakması anlamına gelir. ResNet, gradyanların aradaki katmanları atlayıp atlama bağlantıları üzerinden geri akmasına izin vererek bunu ele alır.
ResNet'in temel bloğu ile şişe boynu bloğu arasındaki fark nedir?
Temel blok, iki adet 3×3 evrişim katmanı kullanır ve ResNet-18 ile ResNet-34 gibi daha sığ varyantlarda bulunur. Şişe boynu blok ise ResNet-50 ve daha derinlerinde kullanılır; 1×1 - 3×3 - 1×1 evrişim dizisini kullanarak, maliyetli 3×3 evrimden önce kanalları sıkıştırmak suretiyle hesaplamayı azaltır.
Projem için doğru ResNet varyantını nasıl seçerim?
Çoğu pratik çalışma için ResNet-50 iyi bir varsayılandır—derinlik, doğruluk ve hesaplama maliyeti arasında iyi bir denge kurar. Donanım sınırlı olduğunda ResNet-18 ve ResNet-34 daha hızlı seçeneklerdir; doğruluğun öncelikli olduğu ve hesaplama kısıtı olmayan durumlarda ise ResNet-101 ve ResNet-152 mantıklıdır.

