3. Projenin Amacı
❖ Alışveriş yapan kullanıcılar çevrim içi olarak hareket ettikçe, fotoğraflarda ürünlerin
otomatik olarak sınıflandırılması bir hayal haline dönüştü.
❖ Bu veriler doğrultusun da seçilen hedef alışveriş alanı, çeşitliliğin bol olduğu ve
kullanıcıların kararsız kaldığı mobilya reklamları seçildi.
❖ Amaç görüntü sınıflandırması sayesinde kullanıcının istediği detayda ürünlerin
müşteriye gösterilmesidir.
4. Projenin Amacı
● Projede 128 labelden oluşan datalar mevcut
-TV,BUZDOLABI ,SANDALYE vs.
❖ Eğitilmiş model sayesin de verilen fotoğrafın hangi kategoride olduğunu ayırt ediyor
❖ En çok yaklaştığı iki kategoriyi sonuç olarak kullanıcıya geri dönüyor
6. Python
Python, Guido Van rossum adlı hollandalı bir programcı tarafından yazılmış bir programlama dilidir.
Geliştirilmesine 1990 yılında başlayan Python; C ve C++ gibi programlama dillerine kıyaslarsak şöyle
sonuçlar elde edebiliriz.
❖ Daha kolay öğrenilir.
❖ Program geliştirme sürecini kısaltır yani hızlı yazılır.
❖ Yukaridaki verilen programlama dillerine aksine ayrı bir derleyici ihtiyaci duymaz.
❖ Hem daha okunaklı, hem daha temiz kodsal söz dizimine sahiptir.
7. Open Cv
❖ OpenCV (Open Source Computer Vision) açık kaynak kodlu görüntü işleme
kütüphanesidir.
❖ Open source yani açık kaynak kodlu bir kütüphanedir ve BSD lisansı ile altında
geliştirilmektedir. BSD lisansına sahip olması bu kütüphaneyi istediğiniz projede
ücretsiz olarak kullanabileceğiniz anlamına gelmektedir.
❖ OpenCV platform bağımsız bir kütüphanedir, bu sayede Windows, Linux, FreeBSD,
Android, Mac OS ve iOS platformlarında çalışabilmektedir.
❖ C++, C, Python, Java, Matlab, EmguCV kütüphanesi aracılığıyla da Visual Basic.Net,
C# ve Visual C++ dilleri ile topluluklar tarafından geliştirilen farklı wrapperlar aracılığıyla
Perl ve Ruby programlama dilleri ile kolaylıkla OpenCV uygulamaları geliştirilebilir
8. Numpy kütüphanesi
❖ NumPy, Python’ da bilimsel hesaplamalarda kullanılan temel pakettir.
❖ Çok boyutlu diziler (array), çeşitli türetilmiş nesneler (maskelenmiş diziler ve matrisler
gibi) ve bir sürü matematiksel , mantıksal, şekil manipülasyonu, sıralama, seçme, ayrık
Fourier de dahil olmak üzere diziler üzerinde hızlı işlemler yapmamızı sağlayan Python
kütüphanesidir. NumPy kullanılarak istatistik işlemleri ve simülasyonlarda yapılabilir.
9. Derin Öğrenme (Deep Learning) Nedir?
❖ Derin öğrenme, 2010’lu yıllarda kullanılmaya başlanmış, büyük veri denizi ile tek bir
katmanda değil, birçok katmanda makine öğreniminde kullanılan hesapları tek bir
seferde yapan, makine öğreniminde tanımlamanız gereken parametreleri bile kendisi
keşfeden, belki de daha iyi parametreler ile değerlendirmelerde bulunabilen bir
sistemdir.
❖ Derin öğrenme yapay sinir ağları beynin yapısına ve şekline benzer fonksiyonlarından
yararlanarak oluşturulmuş algoritmalardır.
10. Neural Network
❖ Günümüzde bir çok makine öğrenmesi modeli mevcuttur. Neural Network bunlardan
sadece bir tanesidir. İnsan beyni ve sinir sisteminden esinlenerek keşfedilmiş bir
modelidir.
❖ İlk katman giriş, son katman çıkış olarak adlandırılır. Orta kısımda bulunan katmanlar
‘Hidden Layers’ yani gizli katmanlar olarak adlandırılmaktadır.
11. Neural Network
❖ Her katman belli sayıda ‘Neuron’ içerir. Bu neuronlar birbirine ‘Synapse’lar ile bağlıdır.
Synapselar bir katsayı barındırır. Bu katsayılar bağlı oldukları neurondaki bilginin ne
kadar önemli olduğunu söylemektedir.
12.
13. Convolutional Neural Network(CNN)
❖ CNN biyoloji ve bilgisayar bilimlerinin garip bir karışımı gibi görünse de, bu, resim
tanıma için kullanılan çok etkili bir mekanizmadır
❖ Bir uçak resmine baktığımızda, iki kanat, motor, pencere gibi özellikleri birbirinden
ayırarak uçağı tanımlayabiliriz. Cnn de aynı şeyi yapar, ancak daha önce eğriler ve
kenarlar gibi alt düzey özellikleri tespit ederler ve daha soyut kavramlara kadar bunları
oluştururlar.
14. Convolutional Neural Network(CNN)
❖ Convolutional Layer:Bu katman CNN’nin ana yapı taşıdır. Resmin özelliklerini
algılamaktan sorumludur. Bu katman, görüntüdeki düşük ve yüksek seviyeli özellikleri
çıkarmak için resme bazı fitreler uygular. Örneğin, bu filtre kenarları algılayacak bir filtre
olabilir.
❖ (5x5x3) 5 matrisin yükseklik ve genişliğini, 3 matrisin derinliğini temsil eder.
15. Non-linearity
❖ Tüm Convolutional katmanlarından sonra genellikle Non-Linearity(doğrusal olmayan)
katmanı gellir.
❖ Bu katman aktivasyon katmanı (Activation Layer) olarak adlandırılır çünkü aktivasyon
fonksiyonlarından birini kullanılır.
❖ ReLu Fonksiyonu= – f (x) = max (0, x)
❖ ReLu fonksiyonunun Feature Map’a uygulandığında aşağıdaki gibi bir sonuç üretilir.
● Feature Map’taki siyah değerler negatiftir. Relu fonksiyonu uygulandıktan sonra siyah
değerler kaldırılır onun yerine 0 konur.
16. Flattening Layer
❖ Bu katmanın görevi basitçe, son ve en önemli katman olan Fully Connected Layer’ın
girişindeki verileri hazırlamaktır. Genel olarak, sinir ağları, giriş verilerini tek boyutlu bir
diziden alır. Bu sinir ağındaki veriler ise Convolutional ve Pooling katmanından gelen
matrixlerin tek boyutlu diziye çevrilmiş halidir.
17. Fully-Connected Layer
❖ Bu katman ConvNet’in son ve en önemli katmanıdır. Verileri Flattening işleminden alır
ve Sinir ağı yoluyla öğrenme işlemini geçekleştirir.
❖ VGGNet – Bu ağ, ağ derinliğinin Sinir ağları için ne kadar önemli plduğunu
kanıtlamıştır. 16 tane Convolutional katman bulunur.
18. Keras
❖ Keras, Theano veya Tensorflow’u backend olarak kullanan bir wrapper. Python dilini
kullanıyor. Modellerı tanımlamayı ve eğitmeyi çok kolay hale getiriyor.
❖ GPU yada CPU üzerinde çalışmasını bu temel kütüphaneler üzerinden sağlar.
❖ Daha üst düzey bir kütüphane olduğundan Theano yada Tensorflow a göre daha kolay
uygulama geliştirebilirsiniz
❖ Keras da iki ana API yapısı vardır.Kurcağınız modelleri bu iki yapıdan birini kullanarak
tasarlayabiliyoruz.
➢ Sequential yapıda modellerimiz katmanlar şekilde tasarlamak zorundayız. Fakat Kullanımı daha
sade ve anlaşılır bir yapıdır.
➢ Functional yapıda ise fonksiyonlar şeklinde tasarlanıyor. Çok daha esnek ve gelişkin modeller
tasarlamamıza imkan sağlıyor.
19. Sequential API
❖ Dense layer : girdideki her bir düğüm çıkıştaki her bir düğüm ile bağlıdır.
❖ Activation layer : ReLu,tanh,sigmoid gibi aktivasyon fonksiyonları içerir, çıktı değerini
aktivasyon fonksiyonuna göre belirler.
❖ Dropout layer : Eğitim aşamasında overfitting i azaltmak için kullanılır. (ayrıntılı bilgi
için)
❖ Flatten layer : Matris formundaki veriyi düzleştirmek için kullanılır.
20. Proje aşamaları
1.Aşama:Keras kütüphanesi kuruldu.Çeşitli denemeler yapıldı. “https://www.kaggle.com”
sitesinden data setler indirildi.
2.Aşama:Modeller ve öğrenme fonksiyonları yazıldı.
3.Aşama:Öğrendikten sonra sınıflandırılmamalar yapıldı.