Bölüm 2: Deep Learning Training GUI — Yeni Özellikler
Merhabalar arkadaşlar, geliştirmekte olduğum “Deep Learning Training GUI” uygulamasına yeni özellikler ekledim. Hep birlikte neler eklediğime bakmadan önce yazının 1. bölümüne, uygulamanın ne işe yaradığını ve nasıl kullanabileceğinizi anlattığım yazıya, buradan ulaşabilirsiniz.
En son güncellemeyle gelenler:
- Eğitimden önce CPU veya GPU seçme özelliği aktif.
- Uygulamada tek sınıf eğitiminde sorun vardı, düzeltildi.
- Tek sınıf(kedi / kedi_değil) seçmeniz durumunda aktivasyon fonksiyonunuzu kendiniz belirleyebileceksiniz. (Sigmoid ya da ReLu)
- Basit bir CNN modeli eklendi, eğer 2 sınıf eğitecekseniz bu modeli tercih edebilirsiniz (Veri setinizde en az 2000 fotoğraf olursa iyi sonuç alabilirsiniz.)
- Yeni örnek veri seti ekledim (2 sınıf, dandelion ve daisy).
- Kolay bir şekilde veri arttırma yöntemlerini kod yazmadan kullanabilirsiniz (Çevirme, yakınlaştırma, döndürme).
- Birçok hata çözüldü.
- Modelinizi Fine-Tuning edebileceksiniz. Bu sayede modelin başarı oranını kolay bir şekilde arttırabilirsiniz.
- Eğittiğiniz modelin görüntü sınıflandırma yaparken hangi kısımlara odaklandığını görebileceksiniz (Sınıf aktivasyon haritası, ısı haritası — heatmap)
Veri Arttırma
Derin öğrenme modeli eğitirken bazen çok veriye sahip olamıyoruz. Eğiteceğimiz modeller de çok veriye ihtiyaç duyduğundan sahip olduğumuz verileri arttırmanın birçok yolu var. Geliştirdiğim uygulamaya bunu ilk başta da eklemeyi planlıyordum ancak mimari yapısı çok basit olan bir kütüphane arıyordum.
İnternette yaptığım araştırma sonucunda Augmentor [1] (Görsel 1) kütüphanesini kullanmaya karar verdim. Bu, platformdan ve çerçeveden bağımsız, büyütme üzerinde daha ince taneli kontrol sağlayan ve en gerçek dünyayla ilgili büyütme tekniklerini uygulayan bağımsız bir kütüphanedir. Basit olmasından dolayı da geliştirdiğim mimari yapıya eklemem kolay oldu. Siz de istediğiniz veri arttırma yöntemini kullanarak verilerinizi çoğaltabilirsiniz, hem de çok kolay bir şekilde (Görsel 2).
İnce Ayar (Fine-Tuning)
İnce ayar, önceden öğrenilmiş bir modeli alır, mimariyi uyarlar ve önceden öğrenilmiş model ağırlıklarından eğitime devam eder. Bu sayede veri sayımız çok olmasa da başarılı bir eğitim gerçekleştirilebiliriz. Şu anda ince ayar yöntemi sadece MobileNetV2 için mümkün olacak fakat ilerleyen versiyonlarda uygulamada olan tüm modellere ekleyeceğim, geri bildirim için tek modelde tutuyorum. [2]
Sınıf Aktivasyon Haritaları
Sınıf aktivasyon haritaları, bir görüntüdeki belirli bir sınıfı tanımlamak için kullanılan ayırıcı görüntü bölgelerini elde etmek için kullanılan basit bir tekniktir. Başka bir deyişle, eğittiğiniz modelin görüntüyü sınıflandırma yaparken hangi kısımlara odaklandığını görebileceksiniz (Görsel 4). Şu an için sadece MobileNetV2'de çalışır durumda olacak. Geri bildirim durumunda diğer modellere de ekleyeceğim.
Bu uygulamaya destek vermek, katkıda bulunmak ya da geri bildirimde bulunmak isteyen arkadaşların olmasını mutlaka isterim. Daha eklenecek çok özellik var, gözden kaçırdığım hatalar olabilir.
GitHub: github.com/mustafamerttunali/Deep-Learning-Training-GUI
Linkedln: Mustafa Mert Tunalı
Twitter: @mmerttunali
Kaynakça 📚
- Marcus D Bloice, Peter M Roth, Andreas Holzinger, Biomedical image augmentation using Augmentor, Bioinformatics, https://doi.org/10.1093/bioinformatics/btz259 [1]
- Google — TensorFlow Transfer Learning [2]