Skip to content

edakass/siniflandirma_classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SINIFLANDIRMA

Sınıflandırma isimli bir klasör oluşturdum.

image



image



Test klasörü :

image



Kolye :
image



Roman :



image



Train Klasörü:

Kolye:

image



Roman:

image



Anaconda da Environments kısmında keras ve opencv yüklü gelmediği için ayrıyetten cmd kısmından yüklemem gerekti.O yüzden bir çok sitedeki durumları denedim.
Mesela Opencv kütüphanesi için şu adımları gerçekleştirdim:
conda install -c conda-forge opencv
Python
import cv2
cv2.version
(İlk seferde yüklediğim de bu şekilde geldi en son sefer de ise bu adımlardan önce

Pythonın kendi idesi için.
pip install opencv-python

Kaynak:https://medium.com/aattk/opencv-kurulumu-windows-python-ffe807b0e827

Bu kısmıda yükleyip en baştaki kodları denedim opencv kütüphanesini tanıyor ama diğer kısımları bir hata var yazıp inmiyordu.
Keras Kütüphanesi için:
conda install -c conda-forge keras
Enter dedikten sonra,indirme işlemi bittiğinde.Bir soru karşımıza çıkıyor:
y/n
Bu soruya y dedikten sonra indirme işlemim gerçekleşti.
Tenserflow için ise :
conda install -c conda-forge tensorflow
Yine y/n sorusu
y cevabı.
Ve indirme işlemlerimin tamamını gerçekleştirdim.

image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



İlk kısımlarda gerekli olan kodları kullanıp yazdıktan sonra ki kısımda Transfer Öğrenmeyi kullandım.
image



Transfer Öğrenme/Aktarımı-Transfer Learning

Günlük hayatımızda bir durumda öğrendiğimiz bir bilgiyi sık sık başka bir durumda kullanarak o bilgiyi başka bir konu üzerine aktarırız. Karşılaştığımız durumların benzer olması bizim o bilgiyi aktarmamıza kolaylık sağlar. Örneğin bisiklet kullanabilen birinin araba kullanmayı öğrenmesi bisiklet kullanamayan birine göre daha kolay ve hızlı olabilir. Birbirine benzer olan bu olaylarda kişi bisiklet sürmeyi öğrendiği sırada kazandığı araç kontrol etme becerisini araba sürerken kullanmakta ve farkında olmadan öğrenme aktarımı yapmaktadır.
Öğrenme aktarımı (Transfer learning) makine öğrenmesi yöntemlerinin de aynı bizim gibi bir problemi çözerken elde ettiği bilgiyi saklayıp, başka bir problem ile karşılaştığında o bilgiyi kullanmasıdır. Öğrenme aktarımı ile önceki bilgiler kullanılarak daha az eğitim verisi ile daha yüksek başarı gösteren ve daha hızlı öğrenen modeller elde edilir.
image



Normalde makine öğrenmesinde her bir görev için ayrı bir ‘sıfırdan öğrenme’ gerçekleştirilir. Ancak bazı görevlerden öğrenilen bir takım bilgileri başka görevlerde de kullanmak mümkün ve avantajlı olacağından kaynak görevlerden elde edilen bilgi hedef görevin çözümü için kullanılmaktadır. Öğrenme aktarımı ile daha önceden eğitilmiş modellerden elde edilen özellikler, ağırlıklar vb. yeni bir görev için kullanılmaktadır. Bu yöntemin işe yaraması için aktarılacak bilgilerin genel bilgiler olması gerekir, yani kaynak göreve özgü olmak yerine hem kaynak hem de hedef görevler için uygun olan bilgiler aktarılır.
Örneğin, bilgisayarla görme alanında kedi ile köpeği ayırt edebilen bir modelde elde ettiğimiz bilgileri 2 farklı hedef görevde kullanmayı düşünelim. Birincisi motosiklet, bisiklet vb. araç tanıma için ikincisi aslan, kaplan, at vb. diğer hayvanları tanıma olsun. Birinci görev için aktarılacak bilgi tahmin edileceği üzere ikinci görev için aktarılacak bilgi ile aynı olamaz. Birinci görev için öğrenme aktarımı yapıldığında aktarılan bilgi hemen hemen her görüntü üzerinde aynı olan düşük seviyeli özellikler, kenarlar, köşeler, şekillerdir. İkinci görev için öğrenme aktarımı yapıldığında ise kedi köpek tanımada keşfedilen göz, burun, kulak gibi karmaşık şekillerin de bilgisinin aktarılması gerekir.
image



Öğrenme aktarımı sürecinde aşağıda verilen 3 soru sorulur:
image



*Öğrenme aktarımında kaynak görevi isteğimiz bilgileri öğrenecek şekilde kendimiz geliştirebiliriz veya hazır bir model kullanabiliriz. Uygulamada daha çok tercih edilen yöntem ikincisidir. Bu tarz uygulamaların en güzel örneklerinden biri ImageNet yarışmasıdır. Bu yarışmada 1000 sınıflı fotoğrafları sınıflandırma gibi büyük ve zorlu bir görüntü sınıflandırma görevi vardır. Bu yarışma için modeller geliştiren araştırma kuruluşları genellikle son modellerinin bir lisans kapsamında yeniden kullanılmasına izin vermektedir. Bu modellerin modern donanımlar ile eğitilmesinin günler veya haftalar alabildiği düşünüldüğünde önceki yıl eğitilmiş en iyi modelin bir sonraki yılda öğrenme aktarımı ile kullanılması oldukça mantıklı ve yaygın bir uygulamadır.

Neden öğrenme aktarımını kullanalım?

*Daha hızlı eğitim süresi: Önceden eğitilmiş modellerdeki ağırlıklar birçok bilgiyi barındırmaktadır. Dolayısıyla bu bilgileri kullanıp ince ayar(fine-tuning) yapılarak yeni model daha hızlı eğitilir. Hatta bazı problemler için öğrenme aktarımı kullanılarak 2–4 epochta bile yüksek başarı elde edilebilmektedir.

*Daha az veri: Sıfırdan oluşturulan modellerin en büyük dezavantajı eğitim için büyük ölçekli bir veri kümesinin gerekmesidir. Bu veri kümelerinin oluşturulması için ciddi bir zaman gerekir. Bunun yerine önceden eğitilmiş modellere ince ayar yapılması daha az veri kullanarak yüksek performanslar elde edilmesini sağlar.

*Daha iyi performans: Önceden eğitilmiş modellere yeni tam bağlantılı katman(lar) eklenerek yapılan basit bir işlemin başarıyı iyileştirdiği görülmektedir.

Yöntemler Öğrenme aktarımı kaynak/hedef öğrenme görev ve verilerine göre üç grupta ifade edilir.
image



Bilgisayarla Görme
Bilgisayarla görme alanında öğrenme aktarımına örnek olarak ImageNet yarışması verilebilir.Doğal dil işleme uygulamalarında olduğu gibi bu alanda da büyük görüntü veri kümeleri ile önceden eğitilmiş hazır modeller bulunur. Bunlar indirilebilir ve doğrudan görüntü verilerinin girdi olarak verilebileceği yeni modellere dahil edilebilir. Burada tabi ki önceden de bahsetmiş olduğumuz gibi görev benzerliğine göre hangi katmana kadarki bilgilerin aktarılacağına dikkatli bir şekilde karar vermek gerekiyor. Derin öğrenme mimarileri: *Oxford VGG Model *Google Inception Model *Microsoft ResNet Model *Caffe Model Zoo

VGG

VGG (Visual Geometry Group) Oxford Üniversitesinde kurulan bir araştırma grubu olan (Visual Geometry Group) kısaltılmış halidir.Vgg bu isimden gelmektedir. Vgg 16 başarısı İmageNet yarışmasında %92.7 lik başarısıyla ispatlamıştı. 16 ve 19 katman sayılarını temsil ediyor. Vgg genel olarak bir Convolution sinir ağının başarımın arttırmak için daha da derinleşmesi tekniğine dayanır.
VGG-16

*Basit bir ağ modeli olup öncesindeki modellerden en önemli farkı evrişim katmalarının 2’li ya da 3’li kullanılmasıdır. Tam bağlantı (FC) katmanında 7x7x512=4096 nöronlu bir öznitelik vektörüne dönüştürülür. İki FC katmanı çıkışında 1000 sınıflı softmax başarımı hesaplanır. Yaklaşık 138 milyon parametre hesabı yapılmaktadır. Diğer modellerde olduğu gibi girişten çıkışa doğru matrislerin yükseklik ve genişlik boyutları azalırken derinlik değeri (kanal sayısı) artmaktadır.
image



image



image



image



image

Giriş katmanında 224'e 224 boyutunda görseller kullanılır.
Fotğrafalrımız renkli o yüzden Rgb olarak 3 katmandan oluşuyor.
image



image



image



*Modelin her evrişim katmanı çıkışında farklı ağırlıklara sahip filtreler hesaplanır ve katman sayısı artıkça filtrelerde oluşan öznitelikler görüntünün ‘derinliklerini’ simgelemektedir.
image



image



image
Şimdi ise Anaconda'da kullandığım kısımları göstereceğim.
image



image
Bir çok kitabı seçip onlar için sonuçlar:
image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image



image

Genel anlamda hep book_jacket=kitap kapağı sonucunu verdi.Bu sonucu veren kitaplar:
book_jacket (34.64%)->Roman_22,24,25,26,28,29,30,32,35,43,45,47
Diğer sayfada ki hepsi Bookjacket
Kitaplarda daha çok doğruluk payı var kolyeye göre
Roman12->birdhouse (28.56%),Roman2->menu (68.56%),
Roman4->envelope (20.85%),Roman8->jersey (14.40%)
image


Şimdi ise kolye deki sonuçlara:

image


image


image


image


image


image


image


Kolye2->necklace (88.90%),
Kolye4->necklace (64.09%),
Kolye21->Christmas_stocking (19.99%),
Kolye3->necklace (19.80%),
Kolye43->mousetrap (96.79%),
Kolye9->necklace (26.76%),
Kolye46->bottlecap (38.42%),
Kolye11->chain (18.55%),
Kolye50->necklace (49.38%),
Kolye13->necklace (34.20%),
Kolye60->necklace (88.93%),
Kolye16->necklace (50.40%),
Kolye25->necklace (99.78%),
Kolye18->necklace (66.85%),
Kolye19->necklace (26.65%),
Kolye24->necklace (59.11%),
Kolye25->necklace (99.78%),
Kolye26->swing (29.33%),
Kolye28->necklace (94.87%),
Kolye29->necklace (68.25%),
Kolye35->necklace (11.07%),
Kolye37->necklace (84.67%),
Kolye39->safety_pin (25.51%),
Kolye48->chime (13.93%),
Kolye53->necklace (33.63%),
Kolye62->hook (38.43%),
Kolye67->necklace (14.01%),
Kolye70->necklace (13.51%),
Kolye72->crane (52.64%),
Kolye73->bow (43.87%),
Kolye74->lacewing (6.35%),
Kolye79->necklace (34.06%),
Kolye88->necklace (97.52%),
Kolye89->gong (20.13%),
Kolye91->necklace (69.83%)

Kaynakça:
https://www.slideshare.net/YusufKurt/derin-renme-nedir-akademik-biliim-2016-sunumu
https://www.researchgate.net/publication/335653174_Derin_ogrenme_yontemleri_kullanarak_ekin_ile_yabanci_otlarin_birbirinden_ayirt_edilmesi
https://www.youtube.com/watch?v=tezYIXeo4c4&list=LLcL288xeuXnGSx1QFw4Wuwg&index=2&t=0s
https://devhunteryz.wordpress.com/2018/07/28/transfer-ogrenimi-transfer-learning/
https://medium.com/novaresearchlab/%C3%B6%C4%9Frenme-aktar%C4%B1m%C4%B1-transfer-learning-c0b8126965c4
https://medium.com/@ayyucekizrak/deri%CC%87ne-daha-deri%CC%87ne-evri%C5%9Fimli-sinir-a%C4%9Flar%C4%B1-2813a2c8b2a9

Releases

No releases published

Packages

 
 
 

Contributors