Şubat 8, 2018

Evrişimli Sinir Ağları İle Kıyafet Tespiti Nasıl Yapılır?

Öncelikle merhabalar, uzun bir ara oldu fakat paylaşacağım gönderilerin sıklığı genellikle böyle olacak. İlk gönderiden itibaren neler oldu derseniz, Deep Learning Türkiye‘ye katıldım, üniversitemizde yönetim ekibinde olduğum Bilim ve Teknoloji kulübünde Yapay Zeka ekibimizi kurduk vesaire vesaire. Daha fazla uzatmadan asıl konumuza geri dönelim.

Fashion-MNIST nedir?

Fashion-MNIST veri seti, Zalondo Tech firmasının standart MNIST veri setine duyulan ilginin farkına varmasıyla standart MNIST veri setine ek olarak her biri 28×28 piksel ve 10 farklı sınıf içeren 60.000’i eğitim ve 10.000’i test seti olarak ayrılmış adından da anlaşılabildiği gibi kıyafetler, ayakkabılar, çantalara ait fotoğraflardan oluşturulan bir veri setidir.

Nasıl sınıflandırılmış?

EtiketAçıklama
0Tişört
1Pantolon
2Kazak
3Elbise
4Ceket
5Sandalet
6Gömlek
7Spor Ayakkabı
8Çanta
9Çizme / Bot

Hadi kodlayalım!

Öncelikle kullanacağımız kütüphaneler içeri aktarıyoruz.


Eğitim ve test verilerini oluşturduğumuz değişkenlerin içine aktarıyoruz.

İçine verileri aktardığımız        değişkenlerden inp_train ve inp_test değişkenlerinin boyutlarını düzenliyoruz.

Boyutunu düzenlediğimiz değişkenleri ondalık (float) hale çeviriyoruz.

Modelimizin daha optimize çalışması için değerlerimizi 0 ile 1 arasına indirgiyoruz (normalize ediyoruz).

out_train ve out_test olarak tanımladığımız değişkenleri to_categorical fonksiyonunu kullanarak one-hot-encoding haline çevireceğiz. Böylelikle sınıf sayımız kadar array oluşturulacak ve verilen girdi hangi sınıftaysa o sınıfın array içerisindeki değeri 1 rakamına geriye kalan sınıflar ise 0 rakamına eşit olmuş olacak.

Verilerimizle ilgili işlemler bitti, şimdi modelimizi oluşturmaya başlıyoruz.

Modelimize iki adet 3×3’lük 32 adet filtre içeren ve reLU aktivasyon fonksiyonu eklenmiş Conv2D katmanı oluşturuyoruz. Aktivasyon fonksiyonunu birinci katmanda veya ikinci katmanda olduğu gibi eklememizin hiçbir farkı yok, ikisini de görmenizi istedim.

2×2’lik çerçeveli MaxPooling2D işlemini gerçekleştirip Flatten fonksiyonu ile Fully Connected Layerimize bağlıyoruz.

Fully Connected yapımızın ilk katmanını oluşturalım.

Fully Connected Layer içerisine gizli katman (hidden layer) eklemeye gerek duymadığım için direkt olarak son katmanı Softmax fonksiyonu ile oluşturalım. Burada nöron sayımızı 10 yaptık çünkü veri setimizin 10 farklı sınıfı var.

Model yapımızı kurduğumuza göre derleme işlemine geçebiliriz. Optimizasyon için RMSprop, yitim fonksiyonu için ise categorical_crossentropy kullanacağız.

Her şey hazır olduğuna göre artık modelimizi eğitme işlemine geçebiliriz. X ve Y değerleri olarak oluşturduğumuz değişkenlerin train (eğitim) hallerini kullanacağız. Epoch (tekrar sayısı) 15 olarak belirledim fakat siz kendiniz düzenleyip farkını görebilirsiniz. Validation_split ise eğitim işlemi gerçekleşirken yüzde kaçını eğitim verisine yüzde kaçını test verisine kullanacağını belirlediğimiz parametremiz. Bunda ise 0.2 yani %20 yeterli olacaktır. Son olarak verbose değerini 1 yaparak eğitim işlemini canlı olarak takip edeceğiz.

Tebrikler! Artık sizin yapay zekanız kıyafetleri ayırt edebiliyor. Hadi şimdi son olarak başarı seviyesini ölçelim.

Sonuç %91.2 başarı

Share

Can Umay

Can UMAY, 19 yaşında. Ankara Yıldırım Beyazıt Üniversitesinde Bilgisayar Mühendisliği öğrencisi ve Gais Siber Güvenlik Teknolojileri şirketinde Yapay Zeka geliştiricisi olarak çalışmakta. Deep Learning Türkiye tarafından kurulan Yapay Zeka ve İnsansız Sistemler Öğrenci Birliğinin ilk üyesi olan Biltek Yapay Zeka ekibinin kuruculuğunu ve başkanlığını üstlenen UMAY şuanda şirket bünyesinde Peyk projesinin ekip yöneticiliğini yürütmektedir.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir