Autoencoder vs. CNN: Görüntü Tabanlı Anomali Tespitinde Hangisi?
Blog'a Dön

Autoencoder vs. CNN: Görüntü Tabanlı Anomali Tespitinde Hangisi?

Buğra Şıkel

Endüstriyel otomasyon, kalite kontrol ve güvenlik sistemleri gibi birçok alanda görüntü tabanlı anomali tespiti kritik bir rol oynamaktadır. Ancak bu karmaşık problemi bir web uygulamasına entegre ederken, doğru derin öğrenme (deep learning anomaly detection) mimarisini seçmek, sistemin performansı, ölçeklenebilirliği ve maliyet etkinliği açısından hayati önem taşır. Bu makalede, iki popüler derin öğrenme yaklaşımı olan Autoencoder’lar ve Evrişimsel Sinir Ağları (CNN’ler) arasındaki farkları, bir yapay zeka mühendisinin bakış açısıyla, somut uygulama senaryoları ve sistem kısıtları üzerinden ele alacağız. Özellikle bir backend ve inference servisi içeren bir web uygulaması için hangi mimarinin neden tercih edilmesi gerektiğini teknik detaylarıyla irdeleyeceğiz.

İçerik Tablosu

Görüntü Tabanlı Anomali Tespiti Problemi ve Gerçek Dünya Kısıtları

Görüntü tabanlı anomali tespiti, bir görüntüdeki “normal” olandan sapan paternleri veya objeleri belirleme sürecidir. Bu problem genellikle tek sınıflı sınıflandırma (one-class classification) olarak ele alınır, çünkü çoğu zaman anomali örnekleri son derece nadir veya tamamen bilinmeyen tiptedir. Gerçek dünya uygulamalarında karşılaşılan temel kısıtlar şunlardır:

  • Dengesiz Veri Kümeleri: Anomali verisi genellikle çok azdır, hatta hiç yoktur. Normal örnekler ise bolca bulunur.
  • Anomali Çeşitliliği: Anomalilerin türü, boyutu ve şekli çok değişken olabilir, hatta eğitim sırasında görülmemiş yeni anomali tipleri ortaya çıkabilir.
  • Gerçek Zamanlı İhtiyaç: Birçok endüstriyel senaryoda (örn. üretim hattı kontrolü), anomalilerin anında tespit edilmesi gereklidir. Bu da düşük inference süresi gerektirir.
  • Sınırlı Hesaplama Kaynakları: Dağıtılmış sistemlerde veya kenar cihazlarda (edge devices) çalışırken CPU/GPU kaynakları kısıtlı olabilir.
  • Etiketleme Maliyeti: Anomali örneklerinin manuel olarak etiketlenmesi zaman alıcı ve pahalı bir süreçtir.

Autoencoder Yaklaşımı: Çalışma Mantığı, Güçlü ve Zayıf Yönleri

Çalışma Mantığı

Autoencoder’lar, denetimsiz öğrenme (unsupervised learning) tabanlı yapay sinir ağlarıdır. Temel amacı, giriş verisini düşük boyutlu bir gösterime (latent space) kodlamak ve ardından bu gösterimi kullanarak orijinal veriyi mümkün olduğunca doğru bir şekilde yeniden yapılandırmaktır. Eğitim süreci, sadece “normal” kabul edilen görüntülerle yapılır. Bir görüntü sisteme verildiğinde, model o görüntüyü yeniden yapılandırmaya çalışır. Eğer görüntü normal ise, yeniden yapılandırma hatası (reconstruction error) düşük olacaktır. Ancak bir anomali içeriyorsa, model bu anormal deseni doğru bir şekilde yeniden yapılandıramayacak ve dolayısıyla yüksek bir yeniden yapılandırma hatası üretecektir. Bu hata, anomalinin bir göstergesi olarak kullanılır.

Yaygın olarak pytorch anomaly detection uygulamalarında Autoencoder mimarileri tercih edilir, çünkü PyTorch esnek ve dinamik bir yapıya sahiptir.

Güçlü Yönleri

  • Etiketleme Maliyeti Düşük: Sadece normal verilere ihtiyaç duyar. Anomali etiketlemesine gerek kalmaz. Bu, özellikle anomali verisinin nadir olduğu veya hiç olmadığı durumlarda büyük bir avantajdır.
  • Genelleme Yeteneği: Eğitimde hiç görülmemiş anomali tiplerini bile, normal olandan farklılık gösterdiği sürece potansiyel olarak tespit edebilir.
  • Esneklik: Farklı Autoencoder mimarileri (VAE, Denoising Autoencoder, Convolutional Autoencoder) farklı senaryolara uyarlanabilir.

Zayıf Yönleri

  • Anomali Tanımı Zorluğu: Yüksek yeniden yapılandırma hatasının ne zaman anomali sayılacağına karar vermek için bir eşik (threshold) belirlemek genellikle deneysel bir süreçtir ve kritik öneme sahiptir. Yanlış eşik seçimi, yüksek yanlış pozitif veya yanlış negatif oranlarına yol açabilir.
  • Normal Varyasyonlara Duyarlılık: Normal verideki çok geniş varyasyonları öğrenmekte zorlanabilir, bu da modelin her şeyi “normal” kabul etmesine veya aşırı hassas olmasına neden olabilir.
  • Optimizasyon Odağı: Modelin amacı yeniden yapılandırma hatasını minimize etmektir, doğrudan anomali sınıflandırmasını optimize etmek değildir. Bu, anomali tespiti performansı için optimal olmayabilir.

CNN Tabanlı Yaklaşım: Çalışma Mantığı

CNN’ler, görüntü işleme görevlerinde devrim yaratmış, evrişim katmanları sayesinde görüntülerdeki hiyerarşik özellikleri etkili bir şekilde öğrenen mimarilerdir. Görüntü tabanlı anomali tespitinde CNN’ler genellikle denetimli (supervised) bir yaklaşımla kullanılır:

  • Sınıflandırma (Classification): Görüntüleri “normal” veya “anomali” olarak etiketlenmiş sınıflara ayırmak için eğitilir. Bu durumda, her iki sınıftan da yeterli sayıda etiketli örnek gereklidir.
  • Nesne Tespiti (Object Detection): Özellikle görüntünün belirli bir bölgesindeki anomaliyi tespit etmek ve konumunu belirlemek istendiğinde kullanılır. Anomali bölgeleri sınırlayıcı kutular (bounding boxes) ile etiketlenmelidir.

Her iki senaryoda da, bir CNN modeli, evrişim katmanları aracılığıyla görüntüden yüksek seviyeli özellikler çıkarır ve bu özellikleri kullanarak son katmanda bir tahmin (sınıf veya kutu koordinatları) yapar.

Veri İhtiyacı ve Etiketleme Maliyeti Karşılaştırması

Bu, autoencoder vs cnn karşılaştırmasındaki en temel farklardan biridir:

  • Autoencoder: Temel olarak sadece “normal” olarak etiketlenmiş görüntülere ihtiyaç duyar. Normal veri toplamak ve etiketlemek (tümünün normal olduğunu onaylamak) genellikle daha kolay ve daha az maliyetlidir. Eğitim verisinde hiç anomali olmaması tercih edilir.
  • CNN (Denetimli): Hem “normal” hem de “anomali” olarak etiketlenmiş görüntülere ihtiyaç duyar. Anomali verisinin toplanması ve doğru bir şekilde etiketlenmesi (anomalinin türünü veya konumunu belirleme) genellikle çok daha zaman alıcı, karmaşık ve pahalıdır. Özellikle anomali örnekleri doğada nadir olduğunda, bu büyük bir darboğaz oluşturur.

Eğer projenizde sınırlı etiketleme bütçesi veya anomali verisi kıtlığı varsa, Autoencoder yaklaşımı bariz bir avantaj sunar.

Performans Kriterleri: Doğruluk, Yanlış Pozitif, Genelleme

Anomali tespit sistemleri için performans değerlendirmesi, geleneksel sınıflandırma problemlerinden biraz farklıdır:

  • Doğruluk (Accuracy): Genel doğru tahmin oranı. Ancak dengesiz veri setlerinde yanıltıcı olabilir.
  • Yanlış Pozitif (False Positive – Type I Error): Normal bir görüntünün anomali olarak yanlış sınıflandırılması. Bir web uygulamasında, yüksek yanlış pozitif oranı kullanıcı deneyimini olumsuz etkileyebilir ve manuel kontrol maliyetlerini artırabilir. Genellikle sistem tasarımında minimize edilmesi gereken kritik bir metriktir.
  • Yanlış Negatif (False Negative – Type II Error): Anomali bir görüntünün normal olarak yanlış sınıflandırılması. Güvenlik veya kalite kontrol gibi kritik uygulamalarda kabul edilemez sonuçlara yol açabilir. Minimize edilmesi gerekir.
  • Genelleme (Generalization): Modelin eğitimde görmediği yeni anomali tiplerini ne kadar iyi tespit edebildiği. Autoencoder’lar bu konuda CNN’lere göre teorik olarak daha iyi performans gösterebilir, çünkü normal dağılımı öğrenmeye odaklanırlar. Denetimli CNN’ler, eğitildiği anomali türlerini iyi tespit ederken, yeni anomali türlerinde zorlanabilir.

Web Uygulaması Açısından Farklar

Bir web uygulamasına entegre edilecek bir modelin yalnızca tespit performansı değil, operasyonel gereksinimleri de göz önünde bulundurulmalıdır.

Inference Süresi

  • Autoencoder: Genellikle modelin boyutu (parametre sayısı) ve mimarisine bağlıdır. Yeniden yapılandırma işlemi için hem encoder hem de decoder’ın çalıştırılması gerekir.
  • CNN: Sınıflandırma veya tespit için tek bir ileri geçiş (forward pass) yeterlidir. Genellikle karmaşık CNN modelleri daha fazla hesaplama gerektirir, ancak iyi optimize edilmiş (örn. MobileNet, EfficientNet gibi hafif modeller) veya uygun donanım (GPU) ile çok hızlı olabilirler.

CPU/GPU İhtiyacı

  • Autoencoder: Hem encoder hem decoder’ın derinliği ve karmaşıklığına bağlı olarak GPU’dan faydalanabilir. Daha basit modeller CPU’da da makul sürelerde çalışabilir.
  • CNN: Özellikle yüksek çözünürlüklü görüntülerde veya derin ağlarda GPU kullanımı genellikle zorunludur. CPU’da inference yapmak, gecikmeyi önemli ölçüde artırabilir. Modern web servisleri genellikle GPU destekli inference sunucularını kullanır.

Ölçeklenebilirlik

  • Her iki yaklaşım da iyi tasarlanmış bir mikroservis mimarisinde yatay olarak ölçeklenebilir (birden fazla inference servisi çalıştırarak). Ancak CPU/GPU ihtiyacı, donanım maliyetini ve dolayısıyla ölçeklenmenin maliyetini doğrudan etkiler. Daha hafif modellerin kullanılması veya model niceleme (quantization) gibi optimizasyonlar, daha az kaynakla daha fazla isteği karşılamayı sağlayarak ölçeklenebilirliği artırabilir.

Bakım ve Yeniden Eğitim Maliyeti

  • Autoencoder: Normal veri dağılımında bir değişiklik olduğunda (örneğin, ürün tasarımında küçük bir revizyon), modelin yeniden eğitilmesi gerekebilir. Bu durumda sadece yeni normal veriye ihtiyaç duyulur.
  • CNN (Denetimli): Normal veya anomali veri dağılımında bir değişiklik olduğunda yeniden eğitim gereklidir. Ayrıca, yeni anomali tipleri ortaya çıktığında, bu yeni tipler için etiketli veri toplama ve modeli yeniden eğitme maliyeti yüksektir. Bu durum, sürekli anomali tipi değişiminin olduğu ortamlarda büyük bir dezavantajdır.

Küçük Veri vs. Büyük Veri Senaryoları

  • Küçük Veri (özellikle anomali için): Anomali örneklerinin çok nadir olduğu veya hiç bulunmadığı senaryolarda Autoencoder tartışmasız daha uygun bir seçimdir. Model, mevcut normal veri üzerinden normal dağılımı öğrenerek anomaliyi tespit edebilir.
  • Büyük Veri (hem normal hem anomali için): Hem normal hem de çeşitli anomali tipleri için bol ve dengeli etiketli veriye sahipseniz, CNN tabanlı bir sınıflandırma veya nesne tespit modeli genellikle daha yüksek doğruluk ve kesinlik sunabilir. Ancak, gelecekte ortaya çıkabilecek yeni anomali türleri için genelleme yeteneğini göz önünde bulundurmak önemlidir.

Endüstriyel ve Üretim Ortamı Örnekleri

  • Üretim Hattında Kusur Tespiti (Autoencoder için ideal): Bir fabrikada üretilen bir parçanın (örn. anakart, metal parça) yüzeyindeki küçük çizikler, çatlaklar veya yanlış monte edilmiş bileşenler gibi kusurları tespit etmek. Genellikle kusurlu ürünler, normal ürünlere göre çok daha azdır ve kusurların çeşitliliği öngörülemeyebilir. Autoencoder, normal, kusursuz ürünleri öğrenerek sapmaları yakalayabilir.
  • Yüzey Anomali Tespiti (Autoencoder için ideal): Kumaş, kağıt veya metal levha gibi malzemelerin yüzeyindeki deformasyon, leke veya yırtıkları tespit etmek. Yine, anormal durumlar nadirdir ve çeşitlilik gösterebilir.
  • Güvenlik Kamerası Görüntülerinde Şüpheli Davranış Tespiti (CNN için ideal, ancak karmaşık): Bir bölgede şüpheli obje bırakma, yetkisiz alana girme gibi spesifik davranışları tespit etmek. Bu tür senaryolarda, belirli “şüpheli” davranışların etiketlenmiş örneklerine sahip olunabilir ve CNN’ler bu spesifik paternleri tanımakta çok başarılıdır. Ancak “şüpheli” tanımı genişse veya yeni davranışlar ortaya çıkarsa genelleme zorlaşır.

Hangi Senaryoda Autoencoder, Hangi Senaryoda CNN Daha Mantıklı?

Nihai karar, projenizin spesifik gereksinimlerine ve veri durumuna bağlıdır:

  • Autoencoder’ı Seçin Eğer:
    • Anomali verisi çok az veya hiç yoksa: Bu en belirleyici faktördür.
    • Anomalilerin türleri veya şekilleri öngörülemez ve çeşitlilik gösteriyorsa.
    • Sadece “normal” olanı öğrenmek ve “normal olmayan” her şeyi anomali olarak kabul etmek istiyorsanız.
    • Etiketleme bütçesi veya zaman kısıtlıysa.
    • Yanlış pozitifler, yanlış negatiflere göre bir miktar daha kabul edilebilir durumdaysa (eşik ayarı ile oynanabilir).
  • CNN’i Seçin Eğer:
    • Bol ve etiketli anomali veriniz varsa: Her anomali sınıfı için yeterli sayıda etiketli örneğiniz mevcutsa.
    • Tespit etmek istediğiniz anomali türleri iyi tanımlanmış ve sınırlıysa.
    • Anomalinin tipini veya tam konumunu (nesne tespiti) belirlemeniz gerekiyorsa.
    • En yüksek doğruluk ve en düşük yanlış negatif oranları kritik öneme sahipse.
    • Yeni anomali tiplerinin ortaya çıkma olasılığı düşükse veya ortaya çıktığında manuel etiketleme ve yeniden eğitim için kaynaklarınız varsa.

Özetle, çoğu image anomaly detection senaryosunda anomali verisinin kıtlığı nedeniyle Autoencoder yaklaşımı daha pratik ve uygulanabilir bir başlangıç noktası sunar. Ancak, eğer çok iyi etiketlenmiş ve çeşitli anomali veriniz varsa, bir CNN daha spesifik ve yüksek performanslı bir çözüm sunabilir.

Sıkça Sorulan Sorular (SSS)

1. Autoencoder tabanlı anomali tespitinde eşik nasıl belirlenir?

Eşik belirleme genellikle normal verinin yeniden yapılandırma hatası dağılımını analiz ederek yapılır. Genellikle normal verinin yeniden yapılandırma hatalarının ortalaması ve standart sapması kullanılır, veya F1 skoru, ROC eğrisi gibi metriklerle optimize edilir. Deneysel çalışmalar ve işin uzmanı kişilerle yapılan değerlendirmeler kritik öneme sahiptir.

2. CNN tabanlı sistemlerde dengesiz veri problemi nasıl çözülür?

Aşırı örnekleme (oversampling), eksik örnekleme (undersampling), sentetik veri üretimi (GAN’ler ile), veri büyütme (data augmentation) ve özel kayıp fonksiyonları (focal loss gibi) dengesiz veri problemine karşı kullanılabilecek stratejilerdir.

3. Hangi PyTorch kütüphaneleri anomali tespiti için kullanılabilir?

PyTorch’un temel kütüphanesi (torch, torchvision) model oluşturmak için yeterlidir. Ayrıca torchmetrics performans metrikleri için, timm (PyTorch Image Models) önceden eğitilmiş CNN modelleri için kullanılabilir. Anomali tespitine özel doğrudan bir kütüphane olmasa da, mimarileri bu kütüphanelerle kolayca implemente edebilirsiniz.

4. Web uygulamalarında inference süresini düşürmek için ne gibi optimizasyonlar yapılabilir?

Model niceleme (quantization), model budama (pruning), model sıkıştırma (distillation), daha hafif mimariler kullanma (MobileNet, SqueezeNet), ONNX gibi formatlarla cross-platform optimizasyon ve TorchScript gibi yöntemlerle modelin deployment için optimize edilmesi etkili stratejilerdir.

Sonuç

Görüntü tabanlı anomali tespiti, karmaşık ve zorlu bir yapay zeka problemidir. Bir web uygulamasına entegrasyon için autoencoder vs cnn mimarileri arasında seçim yaparken, sadece teorik performans değil, gerçek dünya veri kısıtları, etiketleme maliyetleri, operasyonel ihtiyaçlar ve ölçeklenebilirlik gibi faktörler de göz önünde bulundurulmalıdır. Genel olarak, anomali verisinin kıt olduğu senaryolarda Autoencoder’lar daha pratik ve hızlı uygulanabilir çözümler sunarken, bol ve iyi etiketlenmiş anomali verisi mevcutsa CNN tabanlı denetimli yaklaşımlar daha yüksek kesinlik sağlayabilir. Bir yapay zeka mühendisi olarak, projenizin spesifik koşullarını dikkatlice analiz etmek ve buna göre bilinçli bir karar vermek, başarılı bir sistemin anahtarı olacaktır.

Unutmayın, deep learning anomaly detection projelerinde model seçimi, iterative bir süreçtir ve gerçek dünya verisiyle sürekli validasyon gerektirir.

Bunları da beğenebilirsiniz

PWA Nedir? PWA’nın Faydaları Nelerdir?
20 Ekim 2022

PWA Nedir? PWA’nın Faydaları Nelerdir?

Bu yazımızda PWA (Progressive Web App) nedir? Ne için kullanılır? Faydaları nelerdir? Bize neler kazandırır? Nasıl Yüklenir? Sorularına cevaplar vereceğiz. PWA (Progressive Web App) Nedir…

Devamını Oku
WebAssembly ile Tarayıcıda Yüksek Performans: Rust ve Go ile Güçlü Entegrasyon ve Uygulamalar
26 Ocak 2026

WebAssembly ile Tarayıcıda Yüksek Performans: Rust ve Go ile Güçlü Entegrasyon ve Uygulamalar

WebAssembly (Wasm) ile web uygulamalarınızda eşsiz bir performans artışı sağlayın. Bu rehberde, Rust ve Go dillerini kullanarak tarayıcıda yüksek performanslı işlemler geliştirmenin yollarını ve gerçek dünya kullanım senaryolarını keşfedin.

Devamını Oku
PHP ile TC Kimlik Numarası Doğrulama Fonksiyonu
14 Ağustos 2024

PHP ile TC Kimlik Numarası Doğrulama Fonksiyonu

Türkiye Cumhuriyeti Kimlik Numarası (TC Kimlik No), ülkemizde bireylerin kimliğini doğrulamak için kullanılan 11 haneli benzersiz bir sayısal koddur. Web uygulamaları geliştirenler için, bu numaranın…

Devamını Oku
AI Asistan