Küçük yamadan büyük taramaya
Projenin ilk hedefi, mikroskop görüntüsünden alınan küçük bir doku parçasında tümör dokusu bulunup bulunmadığını sınıflandırmaktı. Kullandığım PCam veri setinde her örnek 96×96 piksel ve etiket, görüntünün merkezindeki bölgede tümör dokusu olup olmadığını belirtiyor.
Asıl problem yalnızca tek bir yamayı sınıflandırmak değildi. Gerçek boyutlu bir doku taraması çok daha büyük olduğu için modeli görüntünün tamamında sistematik biçimde çalıştıracak ikinci bir katman gerekiyordu.
Bu çalışma eğitim ve araştırma amaçlı bir prototiptir; klinik tanı aracı değildir. Demo görüntüsündeki başarılı sonuç, gerçek hasta verisinde tıbbi doğruluk veya güvenlik kanıtı oluşturmaz.
Veriyi belleğe sığdırmak
Yüz binlerce görüntüyü aynı anda belleğe almak pratik değildi. Bu yüzden dosya yollarını tutan ve yalnızca ihtiyaç duyulan örneği diskten okuyan bir veri yükleme yapısı kurdum. Eğitim sırasında her batch için gerekli yamalar okunuyor, dönüştürülüyor ve modelden geçiriliyor.
Mikroskop dokusunun sabit bir yukarı-aşağı yönü olmadığı için rastgele döndürme ve aynalama kullandım. Bu veri artırma adımları modelin belirli bir konumu ezberlemek yerine doku örüntülerine odaklanmasına yardımcı oldu.
DenseNet121 ile transfer learning
Sıfırdan bir sinir ağı tasarlamak yerine ImageNet üzerinde önceden eğitilmiş DenseNet121 kullandım. Ağın daha önce öğrendiği kenar, doku ve şekil temsillerini koruyup son sınıflandırma katmanını ikili çıktı üretecek şekilde değiştirdim.
Kayıp fonksiyonu olarak BCELoss, optimizasyon için Adam kullandım. Doğrulama başarımı iyileşmediğinde eğitimi durduran early stopping ekleyerek modelin eğitim örneklerini ezberlemesini sınırlamaya çalıştım.
Sliding window taraması
Eğitilen model 96×96 piksellik giriş bekliyor. Büyük görüntüyü aynı boyutta bir pencereyle, belirli adımlarla soldan sağa ve yukarıdan aşağıya taradım. Her konumda modelin ürettiği kanser olasılığını kaydettim.
Bir satırdaki pencere sayısı, görüntü genişliğinden pencere genişliğinin çıkarılıp adım aralığına bölünmesi ve bire bir eklenmesiyle bulunuyor. Örneğin 1024 piksellik görüntü, 96 piksellik pencere ve 32 piksellik adım kullanıldığında yaklaşık 30 konum taranıyor.
Kutular ve olasılık ısı haritası
Eşik üstündeki pencereleri orijinal görüntü üzerinde kırmızı kutularla gösterdim. Aynı olasılık değerlerini iki boyutlu bir matriste biriktirip renk skalasına dönüştürünce, modelin hangi bölgelerde daha güçlü sinyal gördüğü tek bakışta okunabilir hâle geldi.
Gerçek dünya sınırları
Kontrollü demo görüntüsünde hedef bölgeler görünür biçimde yakalandı; ancak bu sonuç klinik performansı ölçmüyor. Gerçek kullanım için farklı laboratuvar boyaları, tarayıcılar ve hasta grupları üzerinde dış doğrulama, hasta bazlı veri ayrımı, duyarlılık ve özgüllük analizi ile uzman değerlendirmesi gerekir.
Bu projede öğrendiğim en önemli şey, modeli eğitmenin çözümün yalnızca ilk yarısı olduğuydu. Küçük yama sınıflandırıcısını büyük bir görüntüde verimli ve anlaşılır biçimde kullanmak, sliding window ve ısı haritası katmanlarını tasarlamayı gerektirdi.
Sonraki adımlar
Bir sonraki sürümde örtüşen pencereleri daha akıcı bir haritada birleştirmek, taramayı batch hâlinde hızlandırmak ve sonuçları gerçek etiketli bütün slayt görüntülerinde ölçmek istiyorum. Böylece görsel bir demodan tekrarlanabilir bir araştırma değerlendirmesine geçebilirim.
SONRAKİ YAZIİki kişilik canlı cevap oyununun oda mimarisi