Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan derin öğrenme ve görüntü sınıflandırması konusunda kapsamlı bir eğitim içeriğidir. Eğitmen, makine öğrenmesi kavramlarından başlayarak derin öğrenme modellerinin yapısını ve eğitimi detaylı şekilde anlatmaktadır.
- Video, makine öğrenmesi temel kavramlarından başlayarak (confusion matrix, precision, recall, F-score) derin öğrenme modellerinin yapısını (CNN, VGG16, ResNet, MobileNet, EfficientNet), eğitimi ve performans değerlendirmesini adım adım göstermektedir. İçerik, modelin kodlanması, optimizasyon teknikleri, veri artırımı yöntemleri ve transfer öğrenme gibi konuları kapsamaktadır.
- Eğitim sürecinde kedi-köpek sınıflandırma modeli üzerinden pratik uygulamalar yapılmakta ve model performansını değerlendirme için loss ve accuracy grafikleri, confusion matrix ve classification report gibi araçlar kullanılmaktadır. Ayrıca, veri azlığı sorununa çözüm olarak veri artırımı teknikleri (resim döndürme, zoom yapma, yansıtma) ve ImageNet yarışması sonuçlarında eğitilmiş modellerin transfer öğrenmesi de anlatılmaktadır.
- Confusion Matrix ve Performans Değerleri
- Planlamalar yapmak için grafikler üzerinden confusion matrix'ler verilir ve bunlardan sonra precision, recall ve F-score değerleri sunulur.
- Confusion matrix'i yorumlarken hangi sınıfların birbirine karıştırıldığı ve bu karışıklığın sebebi incelenir.
- Precision ve recall değerleri hangi sınıfların daha başarılı şekilde ayırt edildiğini gösterir.
- 01:39Vize Çalışması İçin Planlama
- Vize tarihi 25 Mayıs 2022 olarak belirlenmiş ve önümüzdeki iki hafta vize haftası olacak.
- Öğrencilerin 25 Mayıs'a kadar data setlerini belirlemiş ve analizlerini yapmış olmaları bekleniyor.
- Vize için makalenin giriş, literatür, materyal, metod, araştırma bulguları kısımlarının taslağı tamamlanmış olmalı.
- 03:24Vize Çalışmasının İçeriği
- Çalışmada hangi probleme odaklandığınız, araştırma sorunuzun ne olduğu ve literatürde yapılan çalışmaların belirtilmesi gerekiyor.
- Materyal ve metod kısmında kullanılan veri setinin özellikleri, veri setinin hangi datalardan oluştuğu ve hangi yöntemlerin kullanıldığı belirtilmelidir.
- Araştırma bulguları kısmında kaç epok çalıştırıldığı, grafikler, confusion matrix ve elde edilen bulgular paylaşılmalıdır.
- 04:40Makale Hazırlama Süreci
- Öğrenciler birlikte çalışarak makalelerini oluşturacak ve nihai haline getirecekler.
- Örnekler paylaşılacak ve bunları revize ederek kurgular oluşturulabilir.
- Makalelerde önemli olan, elde edilen sonuçları literatüre dayandırarak yorumlamak ve satmak.
- 05:55Ders Programı
- Ders ayın yirmibeşinde devam edecek, önümüzdeki hafta ders yok.
- Sorular için mail, WhatsApp veya grup üzerinden iletişim kurulabilir.
- Ders kaydı sonlandırılıyor.
- 44:55Derin Öğrenme Modeli Yapısı
- İki boyutlu görsel üzerinde çalışılan modelde 32 tane 3x3 filtreli convolution katmanı bulunuyor.
- İlk katmanda 224x224x3 boyutunda giriş görüntüsü belirtiliyor.
- İkinci blokta 128, 64 filtreli convolution katmanları, pooling ve dropout işlemleri yer alıyor.
- 46:39Model Kurgusu ve Parametreler
- Filtre sayısı, convolution katman sayısı gibi parametreler hiper parametreler olarak adlandırılıyor.
- Bu parametreler modelin mimarisini belirleyen kurgusal bir süreçtir ve her duruma özel olarak ayarlanabilir.
- VGG16, ResNet, DenseNet gibi hazır modeller de kullanılabilir.
- 47:27Özellik Çıkarımı ve Sınıflandırma Katmanları
- Convolution, pooling ve dropout işlemlerinden sonra flatten işlemi uygulanarak özellik matrisleri tek bir sütuna dönüştürülüyor.
- Flatten işleminden sonra yoğunluklu (dense) katmanlar gelir ve burada sınıflandırma işlemi gerçekleşir.
- İlk yoğunluklu katmanda 128 nöron, ikinci ve üçüncü katmanlarda 512 nöron bulunuyor.
- 49:23Çıkış Katmanı ve Aktivasyon Fonksiyonları
- Çıkış katmanında sınıf sayısı kadar nöron bulunur ve aktivasyon fonksiyonu olarak softmax kullanılır.
- Softmax fonksiyonu, birden fazla sınıfa ait olasılıkları hesaplar.
- İki sınıflandırma için sigmoid fonksiyonu kullanılır ve tek bir nöron ile 0 veya 1 sonucu verilir.
- 52:41Model Özetleme
- Model özetleme fonksiyonu, hangi katmanların olduğu ve katmanlardaki parametre sayılarını gösterir.
- Convolution katmanlarında ağırlık değerleri (parametreler) bulunurken, pooling ve dropout katmanlarında ağırlık yoktur.
- Toplam 26 milyon 22.914 parametre bulunuyor ve bunların çoğu sınıflandırma kısmında yer alıyor.
- 53:45Grafik Çizimi ve Optimizasyon
- Paydat kütüphanesi kullanılarak model grafik olarak çizdirilebilir, ancak bu kutu şeklinde düşey olarak çizilir ve makaleye yatay olarak koymak gerekebilir.
- Öğrenme sürecinde hata fonksiyonu (maliyet fonksiyonu) hesaplanır ve ağdaki parametreler optimize edilir.
- Türev alınan değer öğrenme katsayısı ile çarpılarak ağdaki ağırlıklar güncellenir, bu sayede hatayı kademeli olarak düşürme yoluna gidilir.
- 55:33Öğrenme Katsayısı Optimizasyonu
- Öğrenme katsayısı sabit kalırsa minimum noktayı geçip negatif hataya doğru ilerlenmesi mümkündür, bu nedenle türev sıfıra yaklaştıkça öğrenme katsayısı azaltılmalıdır.
- Adam optim gibi optimizasyon algoritmaları, öğrenme katsayısını otomatik olarak düzenler.
- Reduce learning rate on plateau gibi mekanizmalar, doğruluk değeri değişmediğinde veya istenen şekilde ilerlemiyorsa öğrenme katsayısını kökten değiştirmeyi sağlar.
- 58:31Model Eğitimi ve Parametreler
- Model compile edilirken optimizasyon fonksiyonu, hata fonksiyonu (kategorik cross entropi) ve doğruluk metriği belirlenir.
- Epok sayısı (iterasyon sayısı) ve batch size (görüntü grupları) gibi hiperparametreler tanımlanır.
- Batch'ler halinde görüntüler verildiğinde işlem daha hızlı olur ancak tek tek vermek daha hassas sonuç verebilir.
- 1:00:03Eğitimin Gerçekleştirilmesi
- Model.fit fonksiyonu ile eğitim başlatılır ve x ve y değerleri (eğitim verileri) kullanılır.
- Eğitim süreci sırasında loss ve doğruluk değerleri raporlanır, CPU'da yavaş ilerlerken GPU'da daha hızlı çalışır.
- Beş epok eğitim sonrası doğruluk değeri 50-54% arasında dalgalanır ve learning rate on plateau mekanizması uygulanır.
- 1:03:25Eğitim Sonuçlarının Görselleştirilmesi
- Eğitim sürecindeki raporlar history değişkenine aktarılır ve bu değişken üzerinden loss, doğruluk, validation loss ve validation doğruluk değerleri elde edilebilir.
- Matplotlib kütüphanesi kullanılarak eğitim ve validasyon doğruluk değerleri grafikleştirilir.
- İdeal olarak hata düşerken doğruluğun yükselmesi beklenir ve bu değerler tek bir grafikte gösterilebilir.
- 1:05:21Confusion Matrix ve Model Değerlendirme
- Confusion matrix çizdirirken train ve validation verileri kullanılmış, ancak hiç görmediği test verileri üzerinde tahminler yapılmış.
- Test verilerinin gerçek değerleri (y_true) ile modelin tahmin ettiği değerler karşılaştırılarak confusion matrix çizdirilmiş.
- Confusion matrix üzerinden true negative, true positive, false negative ve false positive değerleri elde edilmiş, ayrıca classification report ile her sınıf için precision, recall ve F-score değerleri gösterilmiş.
- 1:08:10Model Kaydetme ve Veri Artırımı
- Model ideal sonuçlar elde edildiğinde kaydedilebilir ve daha sonra test amaçlı kullanılabilir.
- Kaydedilen model TensorFlow.js veya Java gibi farklı platformlarda kullanılabilir.
- Görüntü sayısı az ve gerçek görüntüye ulaşamıyorsanız, model başarısı düşer ve veri artırımı uygulanabilir.
- 1:09:52Veri Artırımı Teknikleri
- Veri artırımı, görüntüyü çeşitli şekillerde dönme, zoom yapma, yansıtma gibi işlemlerle mevcut veriden yeni veriler üretme yöntemidir.
- Veri artırımı, aynı objenin farklı açılardan çekilmiş görüntüleriyle daha zengin bir öngörü elde etmeyi sağlar.
- Özellikle sağlık alanında gerçek veriye ulaşmak zor olduğunda veri arttırma uygulanması gerekir.
- 1:11:36Veri Artırımı Uygulaması
- Veri artırımında data generator tanımlanabilir ve üretilen görüntüler gösterilebilir.
- Veri arttırımı için "fit_generator" metodu kullanılır, bu metot hem yeni görüntüler üretir hem de network eğitim işlemini gerçekleştirir.
- Modeli sıfırlamak için "compile" işlemi tekrar edilmelidir, aksi takdirde model kaldığı yerden optimizasyona devam eder.
- 1:14:33Model Performansı ve Keras Modelleri
- Model fit edildikten sonra history üzerinden değerler çizdirilip, confusion matrix'e bakılması gerekiyor.
- Az sayıda görüntü ve az epok sayısına rağmen %67 doğruluk oranı kötü değil, ancak eğitim daha devam etmeli.
- Keras içerisinde hazır olarak önceden eğitilmiş modeller (pre-training models) bulunuyor: VGG16, VGG19, ResNet50, ResNet101, DenseNet, MobileNet, EfficientNet gibi.
- 1:17:00Keras Modellerinin Kullanımı
- Keras'taki modelleri import ederek kendi modelinize yerleştirebilirsiniz.
- Base model olarak VGG16 kullanıp, ardından sınıflandırma katmanı ekleyebilirsiniz.
- Layer trainable=false ile imagenet yarışmasında eğitilmiş modelin ağırlıklarını kullanabilir ve tekrar eğitmek yerine transfer learning yapabilirsiniz.
- 1:18:52Model Performansı Karşılaştırması
- VGG16 modeli ile eğitim %57-60 seviyelerinden başlayıp, az görüntü olsa da %85'lere çıktı.
- Beş epokta imagenet yarışması görüntüleriyle eğitim yapıldığında %95 doğruluk elde edildi.
- Farklı modeller (ResNet, DenseNet) kullanıldığında sonuçlar farklı olabilir.
- 1:20:56Raporlama ve Model Değerlendirme
- Çalışmalarda confusion matrix, loss grafikleri ve doğruluk grafikleri rapor olarak verilir.
- Doğruluk eğrisi bir müddet sonra düzleşme trendine girmeli, aksi halde model yetersiz eğitilmiş olabilir.
- Hata eğrisi de düzleşme trendine girmeli, aksi halde optimizasyon sıkıntısı olabilir.
- 1:23:22Model Performansı Yorumlanması
- Grafikler verildikten sonra salınımın sebebi ve yorumlanması gerekir.
- Farklı modeller karşılaştırıldığında, belirli bir noktada daha hızlı yükseliş sergileyen model daha performanslı olabilir.
- Salınımın az olması ve düzleşme trendine daha çabuk girmesi modelin daha iyi optimizasyonu gösterir.