CNN (Convolutional Neural Networks) Nedir? Görüntü İşleme ve Derin Öğrenme
CNN (Evrişimli Sinir Ağları) nedir, nasıl çalışır? ResNet, VGGNet, YOLO ve görüntü işlemede derin öğrenme rehberi. Transfer learning ve pratik uygulamalar.
CNN (Convolutional Neural Networks): Görüntü İşlemenin Devrimi
Yapay zeka denince akla ilk metin üreten ChatGPT gibi araçlar gelse de, aslında görüntü işleme alanında da muazzam gelişmeler var. Bu gelişmelerin arkasındaki teknoloji CNN, yani Convolutional Neural Networks. Yüz tanıma, otomatik araçlar, tıbbi görüntü analizi - hepsinin temelinde CNN var.
CNN Nedir?
Convolutional Neural Network, Türkçe karşılığıyla Evrişimli Sinir Ağları, özellikle görüntü ve video işleme için tasarlanmış özel bir yapay sinir ağı türü. Normal sinir ağlarından farkı, görüntülerdeki örüntüleri çok daha etkili şekilde öğrenebilmesi. Düşünün ki bir kedi fotoğrafı var. İnsan olarak biz "kulaklar, bıyıklar, kuyruk - bu bir kedi" diye düşünürüz. CNN de benzer şekilde çalışıyor. Önce kenarları buluyor, sonra şekilleri, sonra bu şekillerin kombinasyonlarını - ve sonunda "bu bir kedi" diyor. 2025 yılına geldiğimizde CNN teknolojisi olgun seviyeye ulaştı. Telefon kameranızın portre modu, Instagram filtreleri, Google Lens - hepsinde CNN var. O kadar yaygınlaştı ki farkında bile değiliz artık.
CNN'in Tarihi
Hikaye 1980'lere uzanıyor. Yann LeCun adında bir araştırmacı el yazısı rakamları tanımak için ilk CNN prototiplerini geliştirdi. 1989'da backpropagation ile eğitilmiş ilk başarılı CNN'i Bell Labs'ta yayınladı. O zamanlar devrim niteliğindeydi ama hesaplama gücü yetersiz olduğu için yaygınlaşamadı. Bu erken modeller yıllar içinde gelişti ve 1998'de LeNet-5 olarak bilinen daha olgun versiyon ortaya çıktı. El yazısı rakam tanıma konusunda mükemmel sonuçlar veriyordu. 2012 yılı dönüm noktası oldu. AlexNet adındaki bir CNN modeli ImageNet yarışmasını kazandı ve hata oranını yarıya indirdi. Herkes şok oldu. "CNN gerçekten işe yarıyor" dedi ve patlama başladı. Sonra VGGNet, ResNet, Inception gibi modeller geldi. Her biri bir öncekinden daha güçlü, daha akıllı. 2015'te ResNet, insan seviyesinde görüntü tanıma başarısına ulaştı. Yani artık bilgisayarlar fotoğraflarda insanlardan daha az hata yapıyordu. Bugün CNN'ler telefon uygulamalarından otonom araçlara, tıbbi teşhisten güvenlik sistemlerine kadar her yerde kullanılıyor.
CNN Nasıl Çalışır?
Teknik detaylara girmeden basitçe anlatayım. CNN üç ana katmandan oluşuyor: Convolutional (evrişim) katmanı, pooling (havuzlama) katmanı ve fully connected (tam bağlantılı) katman.
Convolutional Katman: Özellik Çıkarma
Bu katman görüntüde kenarları, köşeleri, dokuları buluyor. Küçük bir filtre (kernel deniyor) görüntünün üzerinde kayıyor ve matematiksel işlemler yapıyor. İlk katmanlarda basit şeyler buluyor: Dikey çizgiler, yatay çizgiler, renkler. Daha derin katmanlarda karmaşık şeyler öğreniyor: Gözler, burunlar, kulaklar. Bir yüz tanıma sistemini düşünün. İlk katman "burada bir kenar var" diyor. İkinci katman "bu kenarlar bir göz oluşturuyor" diyor. Üçüncü katman "iki göz, bir burun, bir ağız - bu bir yüz" diyor.
Pooling Katman: Boyut Küçültme
Görüntüler büyük olabiliyor. 1920x1080 piksel bir fotoğraf 2 milyondan fazla piksel demek. Bu çok fazla veri. Pooling katmanı bu veriyi küçültüyor. Max pooling en popüler yöntem. Görüntüyü küçük bölgelere ayırıyor ve her bölgeden en yüksek değeri alıyor. Böylece görüntü küçülüyor ama önemli bilgiler korunuyor. Düşünün ki bir kedi fotoğrafınız var. Kedinin tam olarak nerede durduğu çok önemli değil. Önemli olan fotoğrafta bir kedi olması. Pooling işte bunu sağlıyor - "kedi var ama tam olarak nerede önemli değil."
Fully Connected Katman: Karar Verme
Son aşamada bütün öğrenilen özellikler birleştiriliyor ve karar veriliyor. "Bu fotoğrafta %95 ihtimalle kedi var" gibi. Bu katman klasik sinir ağları gibi çalışıyor. Bütün öğrenilen özellikleri alıp bir sonuç üretiyor.
CNN'in Avantajları
CNN'i diğer yöntemlerden ayıran özellikler var.
Konumdan Bağımsızlık
Kedi fotoğrafın sol üst köşesinde mi sağ alt köşesinde mi - farketmez. CNN yine de kedi olduğunu anlayabiliyor. Buna "translational invariance" deniyor. Eski görüntü işleme yöntemleri bunu yapamıyordu. Nesne biraz kayarsa sistem şaşırıyordu. CNN'de bu problem yok.
Parametre Paylaşımı
Aynı filtreler görüntünün her yerinde kullanılıyor. Bu çok daha az parametre demek. Daha az parametre daha hızlı eğitim ve daha az kaynak kullanımı demek. Klasik sinir ağıyla görüntü işlemeye çalışsaydınız milyarlarca parametre gerekirdi. CNN'de bu sayı çok daha az.
Hiyerarşik Öğrenme
Basit özelliklerden karmaşık özelliklere doğru ilerliyor. İlk katmanlar basit çizgiler, son katmanlar yüzler, arabalar, binalar gibi karmaşık objeler. Bu bizim beynimizin çalışma şekline benziyor. Görsel korteksimiz de böyle katmanlı çalışıyor.
Popüler CNN Mimarileri
Yıllar içinde birçok farklı CNN mimarisi geliştirildi. Her birinin kendine özgü yenilikleri var.
LeNet: Öncü Model
1989'da Yann LeCun ilk başarılı CNN prototipini geliştirdi. 1998'de yayınlanan LeNet-5 ise olgun versiyonuydu. Posta kodlarını otomatik okumak için kullanıldı. Çok basit ama CNN'lerin temelini attı. 7 katmanlı bir model. Bugünün standartlarına göre çok küçük ama o zaman için devrimciydi.
AlexNet: Patlamayı Başlatan
2012'de Alex Krizhevsky ve ekibi tarafından geliştirildi. ImageNet yarışmasını kazandı ve CNN'lerin popülaritesini patlattı. 8 katmanlı, 60 milyon parametreli bir model. İlk kez GPU kullanılarak eğitildi. ReLU aktivasyon fonksiyonu ve dropout gibi teknikleri popülerleştirdi. Bir arkadaşım bilgisayar mühendisliği okuyor. "AlexNet çıkmadan önce profesörlerimiz CNN'i pek önemsemiyordu" diyor. "Sonra herkes CNN'e odaklandı."
VGGNet: Derinleşme
2014'te Oxford'dan bir ekip geliştirdi. En önemli yeniliği çok daha derin olmasıydı - 16-19 katman. Basit ama etkili bir mimari. 3x3 filtreler kullanarak çok başarılı sonuçlar aldı. Bugün bile transfer learning için sıkça kullanılıyor.
ResNet: Çok Derin Ağlar
2015'te Microsoft Research geliştirdi. 152 katman! Nasıl olur da bu kadar derin ağ eğitilebilir? Çözüm: Residual connections (artık bağlantılar). Katmanların atlanmasına izin veriyor. "Bu katman hiçbir şey öğrenmediyse atla" diyor. ResNet insan seviyesinde görüntü tanıma başarısına ulaştı. Tarihte bir dönüm noktası.
Inception (GoogLeNet): Verimlilik
Google'ın geliştirdiği mimari. "Inception modülü" adını verdikleri özel bir yapı kullanıyor. Aynı anda farklı boyutlarda filtreler kullanıyor. 1x1, 3x3, 5x5 - hepsi paralel çalışıyor ve sonuçlar birleştiriliyor. Daha az parametre ama daha iyi sonuç. Verimlilik açısından harika.
MobileNet: Mobil Cihazlar İçin
Telefonlarda çalışabilecek hafif CNN'ler. Depthwise separable convolution denen bir teknik kullanıyor. Instagram filtreleri, Snapchat lens'leri - bunlar MobileNet gibi hafif modeller kullanıyor. Aksi halde telefonunuz kızardı.
CNN'in Kullanım Alanları
CNN'ler sadece akademik değil, gerçek hayatta her yerde kullanılıyor.
Yüz Tanıma
Telefonunuzun kilit ekranı, Facebook'un otomatik etiketleme özelliği, güvenlik kameraları - hepsi CNN kullanıyor. Face ID nasıl çalışıyor sanıyorsunuz? CNN yüzünüzün özelliklerini çıkarıyor ve saklıyor. Her kilidi açmaya çalıştığınızda yeni bir özellik çıkarımı yapıyor ve karşılaştırıyor. Havaalanlarında pasaport kontrolü artık çoğu yerde otomatik. CNN yüzünüzü pasaport fotoğrafıyla karşılaştırıyor.
Otonom Araçlar
Tesla, Waymo, hepsi CNN kullanıyor. Yoldaki arabaları, yayaları, trafik işaretlerini CNN'ler tanıyor. Otonom araçların kameraları her saniye yüzlerce görüntü işliyor. CNN'ler "önde araba var, yavaşla" veya "yeşil ışık, devam et" gibi kararlar veriyor. Bir arkadaşım otomotiv sektöründe çalışıyor. "Otonom araçlarda en az 10 farklı CNN modeli çalışıyor" diyor. "Her biri farklı bir görevi yapıyor."
Tıbbi Görüntü Analizi
Röntgen, MRI, CT - bunların analizinde CNN devrim yarattı. Kanser tespiti, tümör analizi, kırık tespiti - hepsinde kullanılıyor. Bazı durumlarda CNN'ler radyologlardan daha başarılı. Özellikle erken evre kanser tespitinde çok iyi sonuçlar veriyor. Bir doktor arkadaşım "CNN artık benim asistanım gibi" diyor. "Şüpheli bölgeleri işaretliyor, ben kontrol ediyorum. İş yükümü çok azalttı."
E-Ticaret ve Moda
"Bu kıyafet bana yakışır mı?" Google Lens benzeri bir fotoğrafı gösterin, benzer ürünler bulsun - CNN sayesinde. ASOS, Zara gibi markalar sanal giyinme odaları yapıyor. CNN vücudunuzu tanıyor ve kıyafeti üzerinizde gösteriyor. Amazon'un kameralı süpermarketi var. Ürünü alıyorsunuz, çıkıyorsunuz - otomatik ödeme yapılıyor. CNN ürünleri ve müşterileri takip ediyor.
Tarım
Evet, tarımda bile! Drone'lar tarlayı uçuyor, CNN'ler hastalıklı bitkileri tespit ediyor. Hangi bölgede gübre lazım, hangi bölgede su - CNN analiz ediyor. Meyve toplama robotları var. CNN olgun meyveleri tanıyor, robotik kol onu topluyor. İnsan işçiye gerek kalmıyor.
Güvenlik ve Gözetim
Güvenlik kameraları artık sadece kayıt yapmıyor. CNN'ler şüpheli davranışları tespit edebiliyor. "İki kişi kavga ediyor" veya "birisi düştü" gibi durumları otomatik algılayıp alarm verebiliyor. Tabii bu gizlilik konusunda tartışmalara yol açıyor. Çin'de sosyal kredi sistemi var mesela - CNN'lerle insanlar sürekli izleniyor.
Sosyal Medya
Instagram'daki o harika filtreler? CNN. Snapchat'teki köpek kulakları? CNN. TikTok'taki efektler? CNN. Yüzünüzü gerçek zamanlı olarak tanıyıp üzerine efekt ekleyebiliyorlar. Bu kadar hızlı çalışmaları MobileNet gibi optimize edilmiş CNN'ler sayesinde.
Transfer Learning ve CNN
CNN eğitmek çok zaman ve kaynak gerektiriyor. Ama her seferinde sıfırdan eğitmek gerekmiyor.
Önceden Eğitilmiş Modeller
ImageNet'te eğitilmiş ResNet, VGGNet gibi modeller var. Bunlar 1000 farklı kategoriyi tanıyabiliyor. Siz bu modeli alıyorsunuz, son katmanı değiştiriyorsunuz ve kendi veri setinizle fine-tune ediyorsunuz. Çok daha az veri ve süre gerektiriyor.
Pratikte Nasıl Oluyor?
Diyelim ki köpek türlerini tanıyan bir uygulama yapıyorsunuz. Sıfırdan CNN eğitmek yerine ImageNet'te eğitilmiş bir model alıyorsunuz. Bu model zaten kenarları, dokuları, genel şekilleri öğrenmiş. Siz sadece "bu özellikler Golden Retriever, bu özellikler Alman Çoban Köpeği" gibi son ayrımı öğretiyorsunuz. Bir start-up'ta çalışan arkadaşım bitki tanıma uygulaması yapmış. "ResNet50'yi aldım, 5000 bitki fotoğrafıyla fine-tune ettim. İki günde hazırdı" diyor.
Data Augmentation: Veriyi Artırma
CNN eğitmek için çok veri lazım. Ama her zaman yeterli veri olmayabilir. Çözüm: Data augmentation.
Ne Demek?
Var olan fotoğrafları döndürüyor, çeviriyorsunuz, renkleri değiştiriyorsunuz, zoom yapıyorsunuz. Böylece bir fotoğraftan 10 farklı varyasyon elde ediyorsunuz. Kedi fotoğrafınızı sola 10 derece döndürseniz yine kedi. Sağa 15 derece döndürseniz yine kedi. Biraz bulanıklaştırsanız yine kedi. CNN bunların hepsinden öğreniyor.
Neden İşe Yarıyor?
CNN'in daha dayanıklı olmasını sağlıyor. Gerçek dünyada fotoğraflar mükemmel olmuyor. Işık koşulları değişiyor, açılar farklı oluyor. Data augmentation sayesinde model bu varyasyonlara hazırlıklı oluyor.
Batch Normalization
CNN eğitimini hızlandıran önemli bir teknik. 2015'te tanıtıldı ve büyük etki yarattı.
Problem Neydi?
Derin ağlarda eğitim sırasında değerler çok büyüyebiliyor veya çok küçülebiliyor. Bu "gradient explosion" veya "gradient vanishing" problemine yol açıyor. Batch normalization her katmanda değerleri normalize ediyor. Yani ortalamayı 0, standart sapmayı 1 yapıyor.
Sonuç?
Eğitim çok daha hızlı oluyor. Daha yüksek öğrenme oranları kullanabiliyorsunuz. Model daha stabil öğreniyor. ResNet gibi çok derin ağlar batch normalization olmadan eğitilemezdi.
Dropout: Aşırı Öğrenmeyi Önleme
CNN'lerde sık karşılaşılan bir problem: Overfitting, yani aşırı öğrenme.
Ne Demek?
Model eğitim verisini ezberliyor ama yeni veride başarısız oluyor. Sınava çalışırken soruları ezberleyen ama mantığını anlamayan öğrenci gibi.
Dropout Nasıl Çözüyor?
Eğitim sırasında rastgele nöronları kapatıyor. Mesela %50 dropout diyorsunuz, her iterasyonda rastgele yarısı kapanıyor. Bu modeli daha genel öğrenmeye zorluyor. Belirli nöronlara bağımlı olmuyor. Bir profesör arkadaşım şöyle açıklıyor: "Sınıfta rastgele öğrencileri dışarı çıkarsam, kalan öğrenciler daha çok çalışmak zorunda kalır. Dropout da bunu yapıyor."
CNN'lerin Sınırlamaları
Her teknoloji gibi CNN'in de sınırları var.
Veri Açlığı
CNN'ler çok veri istiyor. Binlerce, hatta milyonlarca etiketlenmiş görüntü. Bunu toplamak ve etiketlemek pahalı ve zaman alıcı. Transfer learning bu sorunu azaltıyor ama tamamen çözmüyor.
Hesaplama Maliyeti
Eğitim sırasında güçlü GPU'lara ihtiyaç var. ResNet gibi büyük modelleri eğitmek günler, hatta haftalar sürebiliyor. Mobil cihazlarda çalıştırmak da zor. MobileNet gibi özel mimariler gerekiyor.
Adversarial Örnekler
CNN'leri kandırmak mümkün. Bir kedi fotoğrafına özel gürültü eklerseniz CNN "bu bir köpek" diyebiliyor. İnsan gözüyle fark edilmeyen değişiklikler CNN'i şaşırtabiliyor. Bu güvenlik açısından ciddi problem. Otonom araçlar için tehlikeli olabilir.
Açıklanabilirlik
CNN neden bu kararı verdi? Bunu açıklamak zor. "Siyah kutu" gibi çalışıyor. Tıbbi teşhis gibi kritik alanlarda bu problem. Grad-CAM gibi görselleştirme teknikleri var ama tam değil.
Vision Transformers: CNN'in Rakibi
Son yıllarda Vision Transformer (ViT) denen yeni bir mimari ortaya çıktı. Transformer mimarisini görüntülere uyguluyor.
CNN vs ViT
CNN lokal özelliklere odaklanıyor. Küçük bir bölgeye bakıp özellik çıkarıyor. ViT global özelliklere bakabiliyor. Görüntünün tamamındaki ilişkileri görebiliyor.
Hangisi Daha İyi?
Çok veri varsa ViT daha iyi. Az veri varsa CNN daha iyi. Genelde ViT biraz daha yavaş ve daha fazla kaynak gerektiriyor. Pratik uygulamalarda hala CNN daha popüler. Ama ViT hızla gelişiyor.
Object Detection: Nesne Tespiti
Sadece "bu fotoğrafta kedi var" demek yeterli değil bazen. "Kediler nerede?" sorusu da önemli.
YOLO: You Only Look Once
Gerçek zamanlı nesne tespiti için en popüler algoritmalardan biri. Görüntüye bir kere bakıp hem nesneleri tanıyor hem konumlarını buluyor. Güvenlik kameraları, otonom araçlar YOLO kullanıyor. Hızlı ve etkili.
R-CNN Ailesi
Faster R-CNN, Mask R-CNN gibi varyantlar var. YOLO kadar hızlı değil ama daha doğru. Tıbbi görüntü analizinde R-CNN ailesi daha çok tercih ediliyor çünkü doğruluk kritik.
Semantic Segmentation: Anlamsal Bölütleme
Her pikselin ne olduğunu bulmak. "Bu piksel gökyüzü, bu piksel ağaç, bu piksel yol" gibi.
U-Net
Tıbbi görüntü segmentasyonu için en popüler mimari. Tümörlerin sınırlarını tespit etmek gibi görevlerde kullanılıyor. Encoder-decoder yapısı var. Önce görüntüyü küçültüyor (encoder), sonra tekrar büyütüyor (decoder). Ama atlama bağlantıları (skip connections) sayesinde detay kaybı olmuyor.
DeepLab
Google'ın geliştirdiği segmentasyon modeli. Atrous convolution denen özel bir teknik kullanıyor. Otonom araçlarda yol segmentasyonu için kullanılıyor.
Gerçek Zamanlı Uygulamalar
CNN'lerin anlık çalışması gereken durumlar var.
Video Analizi
Her frame'i ayrı ayrı analiz etmek yerine, zamansal ilişkileri de kullanmak. 3D CNN'ler ve LSTM kombinasyonları kullanılıyor. Aksiyon tanıma, spor analizi, güvenlik sistemleri - bunlarda kullanılıyor.
Edge Computing
Bulut yerine cihazda işlem. Telefonunuzda, kameranızda CNN çalıştırmak. Latency (gecikme) azalıyor, gizlilik artıyor. Ama sınırlı kaynak nedeniyle model küçük olmalı. TensorFlow Lite, PyTorch Mobile - bunlar mobil CNN'ler için framework'ler.
CNN Eğitmek: Pratik İpuçları
Kendi CNN modelinizi eğitmek istiyorsanız bazı ipuçları:
Küçük Başlayın
İlk denemede ResNet152 eğitmeye çalışmayın. Basit bir model ile başlayın, sonra karmaşıklaştırın.
Transfer Learning Kullanın
Önceden eğitilmiş modeller harika. ImageNet ağırlıkları ile başlayın.
Data Augmentation Uygulayın
Verilerinizi döndürün, çevirin, renk değiştirin. Modeli daha dayanıklı yapıyor.
Learning Rate Scheduling
Sabit öğrenme oranı kullanmayın. Başlangıçta yüksek, sonra azalan bir program kullanın.
Early Stopping
Validation kaybı artmaya başladığında durun. Overfitting'i önlüyor.
Ensembling
Birden fazla model eğitin, sonuçları ortalayın. Genelde daha iyi sonuç veriyor.
Araçlar ve Kütüphaneler
CNN ile çalışmak için hangi araçları kullanmalısınız?
TensorFlow/Keras
Google'ın geliştirdiği en popüler framework. Keras kullanıcı dostu bir API sunuyor. Çok fazla kaynak var, öğrenmesi kolay. Endüstride yaygın kullanılıyor.
PyTorch
Facebook (Meta) tarafından geliştiriliyor. Araştırmacılar arasında çok popüler. Daha Pythonic, daha esnek. Debugging kolay. Akademide daha çok tercih ediliyor.
FastAI
PyTorch üzerine kurulu, daha üst seviye bir kütüphane. Çok hızlı prototip yapmanızı sağlıyor. Birkaç satır kodla state-of-the-art modeller eğitebiliyorsunuz.
OpenCV
Görüntü işleme için. CNN'den önce ve sonra görüntüleri hazırlamak için kullanılıyor.
Geleceğe Bakış
CNN teknolojisi daha nereye gidecek?
Neural Architecture Search (NAS)
Yapay zeka kendi mimarisini tasarlıyor. İnsan müdahalesi olmadan en iyi CNN mimarisini bulabiliyor. Google'ın EfficientNet'i bu şekilde tasarlandı. İnsanların tasarladığından daha iyi.
Quantum CNN
Kuantum bilgisayarlar CNN'leri çok daha hızlı eğitebilir. Henüz erken aşamada ama umut verici.
Daha Verimli Modeller
Aynı performans, daha az kaynak. MobileNet, EfficientNet gibi modeller bu yönde. IoT cihazlarında, drone'larda çalışabilecek ultra hafif modeller.
Multimodal Öğrenme
Sadece görüntü değil, metin ve ses de birlikte. CLIP, DALL-E gibi modeller bu yönde ilerliyor.
Etik ve Toplumsal Etkiler
CNN'ler güçlü ama sorumlu kullanılmalı.
Önyargı
Eğitim verisinde önyargı varsa model de önyargılı oluyor. Yüz tanıma sistemlerinin bazıları beyaz insanları daha iyi tanıyor mesela.
Gizlilik
Kameralar her yerde, CNN'ler herkesi tanıyor. Orwell'in 1984'ü gerçek oluyor mu?
Deepfake
CNN'lerle çok gerçekçi sahte videolar yapılabiliyor. Bir politikacının hiç söylemediği şeyleri söylermiş gibi göstermek mümkün.
İş Kayıpları
Radyoloji, güvenlik, kalite kontrol - bu alanlarda işler değişiyor. İnsanlar yerine CNN'ler çalışıyor. Ama yeni işler de doğuyor. CNN eğiticileri, veri etiketleyiciler, AI etik uzmanları.
Sonuç
CNN'ler yapay zeka devriminin sessiz kahramanları. ChatGPT kadar ses getirmedi belki ama etkileri çok daha geniş. Telefonunuzdan arabanıza, hastanenizden süpermarketinize - her yerde CNN var. Farkında olmasak da hayatımızı kolaylaştırıyor. Teknoloji olgun seviyeye geldi ama durmadan gelişiyor. Daha hızlı, daha verimli, daha akıllı modeller geliyor. Öğrenmek istiyorsanız başlamak için harika bir zaman. Kaynaklar bol, topluluklar aktif. Bir proje yapın, deneyin, öğrenin. Ama eleştirel düşünmeyi unutmayın. Her teknoloji gibi CNN'ler de kötüye kullanılabilir. Sorumlu, etik kullanım hepimizin görevi.