Kitap taslağını bitirdikten ve düzenlemesi için arkdaşa teslim ettikten sonra geçtiğimiz ve bu hafta sonu kendime meşgale aradım.
Kitap için yazdığım son konu ML yapay öğrenme kısmıydı. Bu örneği biraz geliştirip bu camiada epey bir bilinen MNIST verisetine uygulamaya karar verdim.
MNIST El yazısı rakamlar toplanmış ve etiketlenmiş bir veri setidir. Her rakam görüntüsü 28x28 lik ebata getirilmiştir.
Yani verimiz 28x28= 784 piksel değeri ve birde etiket değeri
Veri setinin orjinal sitesi
http://yann.lecun.com/exdb/mnist/
Fakat Biz Kaggle da açılmış yarışma kısmına katıldık
www.kaggle.com/c/digit-recognizer
Bu sayfada veriler 2 tane csv dosyası olarak veriliyor.
Eğtim verisi için İlk satırda sütun başlıkları var ilk sutun etiket değeri sonraki 784 sutunda sırasıyla piksel değerlerini tutuyor.
Test verisinin tek farkı ilk sutun olan etiketlerin olmaması...
İlk etapta piksel değerlerinde bir ön işleme veya ekstra öznitelik çıkarım işlemleri yapmadan doğrudan kullanarak Yapay Öğrenme metodlarımızın performansını görelim dedik.
Eğitim verisinin yarısını eğitim ve geri kalanını test için kullandık. Sonuçlar %83 - %95 arasında değişti. En iyi sonucu KNN K = 5 ile ve bütün eğitim setini kullanarak elde ettim.
Birde boyumuzun ölçüsünü alalım dedik. Eğittimiz modellerle Yarışmanın test verileri - test.csv- için tahmin listesi oluşturup gönderdik. Burda sonuçlar daha aşağı değerlere düşüyor. Bizim şu andaki en iyi derecemiz.
0.92343
Başarı Sıra Listesi için bakınız
www.kaggle.com/c/digit-recognizer/leaderboard
Sıralamadaki yerimiz değişiyor. Daha iyi dereceye sahip tahminler geldikçe sırlamada aşağılara düşüyorsunuz.
Aldığımız boy ölçüsü oldukça kısa oldu. Sebeplerine gelirsek
1) Veriler üzerinde ekstra bir ön işleme ve öznitelik yapmamış olmamız. Verilerimizde piksel değerleri var ama Rakamın yazıldığı pikseller devamlı değişmektedir. Çünkü rakamın yazılış konumu büyüklüğü dönüklüğü keza tarzı değişiyor. Haliyle bunuları dikkate almadan bu verileri ham haliyle vermek sistemin performansınıaşağı çekiyor.
2) Her modelin eğitiminde performansı etkileyecek parametre ayarları vardır. Aynı metodu bile kullansanız bazı parametrelerdeki ince ayarlar sistemin performansını artırabilir. Biz ise bu tür ayarlarada kalkışmadık henüz.
3) DeepLearning etkisi: Yakın zamanların gözde kavramı dünyanın saygın üniversiteleri. En büyük şirketleri bu konuda araştırma gurupları kurdular. Hali hazırda pek çok kütüphanede oluşturuldu. Bu kütüphaneleri kullananlar. Listelerde üst sıralara oturuyorlar. Bu da sıralamda bizi daha aşağıda tutuyor.
Sıralama listesinde ilk 48 kişi %99 başarıya ulaşıyor. şimdi burda ufak bir itirazım var. Yukardaki resimler veritabanından seçilmiştir. Şahsi fikrim böyle bir başarı saçmadır....
Detaylı bilgiyi bu konu hakkında inşallah - vakit ayırabilirsem - yazacağım yazıya bırakalım.