Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü. Şekil Tanıma Final Projesi. Selçuk BAŞAK 08501008



Benzer belgeler
T.C. KIRIKKALE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ YAPAY SİNİR AĞLARI. Doç.Dr. Necaattin BARIŞÇI FİNAL PROJESİ

Zeki Optimizasyon Teknikleri

Yapay Sinir Ağları ve Yüksek Enerji Fiziği Uygulamaları

İlk Yapay Sinir Ağları. Dr. Hidayet Takçı

Çok Katmanlı Algılayıcı (Multilayer Perceptron) DOÇ. DR. ERSAN KABALCI

Yapay Sinir Ağlarına Giriş. Dr. Hidayet Takçı

YAPAY SİNİR AĞLARI. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ

BAŞKENT ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BENZER SÜREÇLERDE ÜRETİLEN ÜRÜNLER İÇİN YAPAY ZEKA İLE ZAMAN TAHMİNİ SONER ŞÜKRÜ ALTIN

Naive Bayes Yöntemi ile Spam Mail Teşhisi Kübra KURNAZ

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI

Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü. Bilgisayarla Görme. Final

Yapay Sinir Ağları. (Artificial Neural Networks) DOÇ. DR. ERSAN KABALCI

Web Madenciliği (Web Mining)

Web Madenciliği (Web Mining)

Büyük Veri İçin İstatistiksel Öğrenme (Statistical Learning for Big Data)

BIL684 Nöron Ağları Dönem Projesi

127 - Twoing Algoritması ile Sınıflandırma Kalp Hastalığı Uygulaması MEHMET AKİF ERSOY ÜNİVERSİTESİ İLHAN UYSAL MEHMET BİLEN SAMİ ULUKUŞ

Çok katmanlı ileri sürümlü YSA da standart geri yayıyım ve momentum geri yayılım algoritmalarının karşılaştırılması. (Eğitim/Hata geri yayılım)

Yapay Sinir Ağları. (Artificial Neural Networks) DOÇ. DR. ERSAN KABALCI E S N E K H E S A P L A M A Y Ö N T E M L E R İ - II

ĐŞARET ĐŞLEME (SIGNAL PROCESSING)

YAPAY ZEKA VE DERİN ÖĞRENMENİN GÜNÜMÜZDEKİ UYGULAMA ALANLARI

Yapay Sinir Ağları (Artificial Neural Networks)

ÇİMENTO BASMA DAYANIMI TAHMİNİ İÇİN YAPAY SİNİR AĞI MODELİ

YAPAY SĠNĠR AĞLARININ EKONOMĠK TAHMĠNLERDE KULLANILMASI

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

BİTİRME RAPORU. Ömer Furkan ARI Yıldız Teknik Üniversitesi

bitık MOBİL TİCARET UYGULAMASI ABDULLAH ÇİÇEKCİ

Geriye Yayılım ve Levenberg Marquardt Algoritmalarının YSA Eğitimlerindeki Başarımlarının Dinamik Sistemler Üzerindeki Başarımı. Mehmet Ali Çavuşlu

ÇATI DÖŞEMESİNDE MEYDANA GELEN YOĞUŞMA VE BUHARLAŞMA KÜTLELERİNİN YAPAY SİNİR AĞLARI İLE TAHMİN EDİLMESİ

MEH535 Örüntü Tanıma

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

Makine Öğrenmesi İle Duygu Analizinde Veri Seti Performansı

Projenin Amacı: Rasyonel terimi her hangi bir 3x3 matrisin tersi bulunurken çözüm basamaklarının da gösterildiği yeni bir yöntem geliştirmek.

Çok Katmanlı Algılayıcılar. Dr. Hidayet Takçı

Test İstatistikleri. Test İstatistikleri Madde İstatistikleri Madde Güçlük İndeksi. Madde Ayırt Edicilik İndeksi Madde Varyansı Madde Güvenirliği

TOSHIBA C55-C- 11RSatellite Ci5-5200U 2.20GHz 8GB 1TB 2GB 930M 15.6" INTEL CI5-5200U 2,2GHZ

A NEW MODEL FOR DETERMINING THE THERMODYNAMIC PROPERTIES OF LiBr-H 2 O SOLUTION

DERİN ÖĞRENME SONGÜL TORANOĞLU

MY PANEL METER KULLANIM KILAVUZU

I-TEVKİFATA TABİ İŞLEMLERE AİT SATIŞ FATURASI LİSTESİ

UYGULAMA 2 TABLO YAPIMI

Derin Yapay Sinir Ağları ve Derin Öğrenme ye Kısa Bir Giriş

Ali Gülbağ et al / Elec Lett Sci Eng 1 (1) (2005) 07-12

Karaciğerde Oluşan Hastalıkların Tespitinde Makine Öğrenmesi Yöntemlerinin Kullanılması

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ


İç Basınç Altında İnce Cidarlı Kabukların Yapay Sinir Ağları ile Çözümü

İletişim Ağları Communication Networks

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Başkent Üniversitesi. Öğrenme ve İçerik Yönetim Sistemi (MOODLE) İleri Kullanım Klavuzu. Hazırlayan : Muhammet Yorulmaz.

Yapay Sinir Ağları. YZM 3226 Makine Öğrenmesi

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

Bazı Gömülü Sistemlerde OpenCV ile Performans Analizi

İŞ İSTASYONU SEÇİM REHBERİ

Özörgütlemeli Öğrenme (SOM) A. Cumhur KINACI

DÖNEM İÇİ NOT GİRİŞİ KULLANMA KILAVUZU

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

YAPISAL SORGULAMA DİLİ (SQL)

LINZ-SPROTT 1999 KAOTİK SİSTEMİNİN YAPAY SİNİR AĞLARI İLE MODELLENMESİNDE FARKLI EĞİTİM FONKSİYONLARININ MODELLEME PERFORMANSINA ETKİSİ

Arama metodlarında temel işlem anahtarları karşılaştırmaktır.

SQL Komutları (2) Uzm. Murat YAZICI

SPSS E GİRİŞ SPSS TE TEMEL İŞLEMLER. Abdullah Can

X-RAY CİHAZLARINDAKİ UYGULAMA SÜRELERİNİN YAPAY SİNİR AĞLAR YARDIMI İLE TAHMİNİ

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Zeki Optimizasyon Teknikleri

Masaüstü Bilgisayarlar ve İş İstasyonları

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Ağları I BIL


Erdem Işık Accepted: January ISSN : erdemis@firat.edu.tr Elazig-Turkey

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

Microsoft Excel. Çalışma Alanı. Hızlı Erişim Çubuğu Sekmeler Başlık Formül Çubuğu. Ad Kutusu. Sütunlar. Satırlar. Hücre. Kaydırma Çubukları

WEB SAYFALARINA İLİŞKİN YAPAY SİNİR AĞLARI İLE SINIFLANDIRMA YÖNTEMİ

DERSLER çalışma sayfası içerisinde yer alan başlık satırının tamamının biçimlerini METİN olarak değiştirilmesi,

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

Yrd. Doç. Dr. A. Burak İNNER

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUVARI LİNEER KRİPTANALİZ

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

K En Yakın Komşu Methodu (KNearest Neighborhood)

2) Lineer olmayan denklem çözümlerini bilir 1,2,4 1


Genel olarak test istatistikleri. Merkezi Eğilim (Yığılma) Ölçüleri Dağılım (Yayılma) Ölçüleri. olmak üzere 2 grupta incelenebilir.

Yapay Sinir Ağları İçin Net Platformunda Görsel Bir Eğitim Yazılımının Geliştirilmesi

İş Zekası. Hafta 6 Kestirimci Modelleme Teknikleri. Yrd. Doç. Dr. H. İbrahim CEBECİ

Instance Based Learning k-nn. YZM 3226 Makine Öğrenmesi

DESTEK DOKÜMANI. Tablolu Malzeme Sınıfları

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

Anadolu Üniversitesi Endüstri Mühendisliği Bölümü İST328 Yöneylem Araştırması 2 Dersi Bahar Dönemi. Hazırlayan: Doç. Dr.

Bahadır KARASULU, Aybars UĞUR Ege Üniversitesi, Bilgisayar Mühendisliği Bölümü

BİLGİSAYAR PROGRAMLAMA

YAPAY AÇIKLIKLI RADAR GÖRÜNTÜLERİNDE YAPAY SİNİR AĞLARI İLE HEDEF TANIMLAMA

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

T.V FÖYÜ. öğrenmek. Teori: Şekil 1. kullanılır.

MİKROİŞLEMCİ MİMARİLERİ

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Yapay Zeka Sistemleri BIL

Güç Transformatörü Uç Empedans Eğrisinin Yapay Sinir Ağları Yardımıyla Kestirimi

Excel de çalışma alanı satır ve sütunlardan oluşur. Satırları rakamlar, sütunları ise harfler temsil eder. Excel çalışma sayfası üzerinde toplam

Transkript:

Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü Şekil Tanıma Final Projesi Selçuk BAŞAK 08501008 Not: Ödevi hazırlamak için geliştirdiğim uygulama ve kaynak kodları ektedir.

Giriş: Bu Çalışmada, MNIST veritabanından alınmış el yazısı 0-9 arası sayılara ait örnekler Çok Katmanlı Yapay Nöron Ağlarının Back-Propagation (MLP) yöntemi ile sınıflandırılmıştır. Sayı örneklerine ait dosya http://yann.lecun.com/exdb/mnist/ adresindeki MNIST veritabanında bulunan el yazısı karakterlerden elde edilmiş 0-9 arası sayılardan oluşturulmuştur. Dosyadaki her satırdaki ilk 64 değer sayıya ait özellikleri(gri seviyesinde piksel değerleri), 65. değer ise sayının kaç olduğunu göstermektedir. Bu örneklerden her sayı için ilk 5 er örneği eğitim için geri kalan örnekleri ise test için kullanıldı. Eğitim örneklerini test için kullanılmadı. Eğitim için her rakam için 5 er tane olarak 50 örnek eğitim için kullanıldı. Geriye kalan 3773 örnek test için kullanılmıştır.

Yöntem Yapay Nöron Ağları-Çok Katlmanlı Perceptron(Multi Layer Perceptron-MLP) yöntemi, canlılardaki sinir hücrelerinden esinlerek oluşturulmuştur. Gerçek ve yapay sinir hücreleri aşağıda gösterilmiştir. x= ( ) + θ, y =Signum(x), y=tanh(x), y=sign(x) gibi aktivasyon fonksiyonları kullanılır.yukarıda gösterilen tek bir yapay sinir hücresi perceptron olarak adlandırılır. Perceptron öğrenmeyi girişindeki ağırlıkları çıkışta oluşan hataya göre güncelleyerek yapar. Tek katmalı bir yapay sinir ağı ile lineer olarak ayrılmış sınıflandırma yapılabilir. Ancak lineer olarak ayrılamayan sınıflandırma problemleri için çok katmalı ayapay sinir ağları- Multi Layer Perceptron kullanılmaktadır. Şekilde gösterildiği gibi çok MLP giriş katmanı gizli katmana, gizli katmanlarda en son olarak çıkış katmanına bağlıdır. MLP Bağlantılar girişten çıkışa doğru olduğundan öğrenmek için back propogation algoritması kullanılır. Back propogation ile çıkış katmanında hesaplanan hata gizli katmana bağlantılardaki ağırlıklar oranında dağıtılarak yapılır.

Uygulama MLP yönteminin çalışması öğrenme katsayısı ve momentum değerleri sabit tutularak, gizli katmandaki düğüm sayısı değiştirilerek yapılmış ve aşağıdaki doru sınıflandırma başarısı aşağıda gösterilmiştir. Gizli Katman Nöron Sayısı Epoch Eğitim Süresi(ms) Tanıma Süresi (ms) Accuracy 16 19733 38.641 31 65,49 32 13569 56.641 62 63,32 48 4969 29.453 94 66,18 64 3384 24.844 125 66,6 80 2898 26.687 141 64,7 96 2562 28.079 172 66,21 112 2340 30.016 203 69,02 128 2453 35.937 235 69,47 144 1946 31.922 250 63,61 160 1481 26.781 281 67,59 176 1895 37.781 312 67,74 192 1719 37.578 359 69,23 208 1345 31.843 375 69,15 224 1269 32.437 407 69,07 240 1254 34.219 438 64,62 256 998 28.860 469 66,02 272 1010 31.078 485 66,29 288 997 32.547 516 71,96 304 799 34.610 641 66,92 320 753 36.328 875 62,97 336 663 30.969 687 65,52 352 1355 70.219 922 67,08 368 601 30.235 734 67,98 384 590 30.735 766 62,34 400 605 32.906 796 64,38 416 564 36.453 922 65,81 432 609 40.407 954 70,55 448 481 30.344 1.094 64,27 464 418 25.828 922 65,28 480 525 33.297 937 69,04 Genel başarı oranları nispeten düşük bunun temel nedeni eğitim için örnek sayısı çok az olmasıdır. Bunun yanında elde edilen sonuçlardan görüldüğü gibi başarı ile gizli katmandaki nörön sayısı arasında düzgün orantılı bir değişim yok. Ancak 10-15'den az az gizli katman nöronu kullanılması durumunda eğitim yapılmasında networkün hatası azalamamakta ve eğitim tamamlanamaktadır. Eğer çok fazla kullanımının da başarıyı arttırmadığı ancak genel olarak eğitim tekrar sayısı (Epoch) azalmaktadır. Gizli katman nörön sayısı arttıkça sınıflandırma süresi de uzamaktadır. Gizli katman nörön sayısı değişimi eğitim süresinde düzenli bir değişim oluşturmamıştır. Ekteki sonuç dosyalarında her bir gizli katman nöron sayısı için detaylı sonuçlar vardır. En uygun gizli katman nöron sayısını belirlemek için cross validation yararlanmak uygun olacaktır.

Actual Digits Yapılan değerlendirmede en yüksek başarının elde edildiği gizli katman nöron sayısı 320 için detaylı sonuçlar aşağıda gösterilmiştir. Training: Hidden Layer Node Count : 128 Learning Rate : 0,2 Momentum : 0,01 Min. Error : 0,0001 Training Epoch : 2453 Training Time : 35.937 ms. Train Set Performance: Correct Count : 50 Accuracy:%100 Incorrect Count : 0 Classification: Test Set Performance: Data Count : 3773 Correct Count : 2621 Incorrect Count: 1152 Mean Squared Error : 0,4581705471735 Accuracy : %69,47 Classification Time : 235 ms. Train Set Images Predicated Digits 0 1 2 3 4 5 6 7 8 9 Correct Incorrect Accuracy 0 365 0 0 2 2 0 1 0 1 0 365 6 98,38 1 0 265 47 3 51 3 3 10 2 0 265 119 69,01 2 15 0 340 5 0 0 0 13 2 0 340 35 90,67 3 0 6 5 358 0 4 0 3 0 8 358 26 93,23 4 14 44 9 9 167 4 77 50 4 4 167 215 43,72 5 28 1 13 29 2 269 7 2 5 15 269 102 72,51 6 2 20 2 0 1 0 345 1 0 1 345 27 92,74 7 2 3 6 15 3 0 0 345 0 8 345 37 90,31 8 4 31 60 62 23 1 18 23 114 39 114 261 30,40 9 6 2 13 188 33 33 7 9 33 53 53 324 14,06 Yukarıdaki tabloda her bir resim için elde edilen tanıma sonuçları gösterilmiştir. Bu sonuçları eğitim için kullanılan resimlerle beraber değerlendirmek gerekir. 0,3 2,6 ve 7 %90'nın üzerinde doğru tanıma başarısı sağlanmış. 1 ve 5 için yaklaşık %70 yani ortalama seviyede bir başarı sağlanmış. 4,8 ve 9 için çok düşük bir başarı elde edilmiş. Bu sonuçlara göre 0,3 2,6 ve 7 çok iyi ayırt edilebilir özelliklere sahip oldukları ve eğitim örneklerinin doğru seçilmiş olduğunu düşünebiliriz. 4 ile 9 eğitim örnekleri bir birlerine çok benzemektedir. Muhtemelen bu nedenle eğitim sonucunda iyi bir sınıflandırma sağlamamıştır. 8 ise şekli ile diğer tüm rakamlara en çok benzemesi nedeniyle köyü bir başarı elde etmiş olabilir. 0-8 arası rakamlar en çok kendisi olarak tanınırken 9 için en çok benzeme 3 çıktı. Bunun nedeni 3'ün daha baskın olması ve 9 ile 3'ün çok ortak şekil özelliği içermesi olabilir.

MLP Back Propogation Algoritması 1. Set weights [-0.5, 0.5 ] randomly 2. iter=0 3. mean_sqr_err =0 4. For each item in trainset 4.1. get sample (inputs and desired outputs) 4.2. evaluate hidden layer outputs 4.3. evaluate output layer output 4.3. calculate error between desired output and output layer outputs 4.4. mean_sqr_err= mean_sqr_err+ (desired output - output ) 2 4.5. clear hidden layer error 4.6. calculate delta_weights of output layer 4.7. calculate hidden layer weighted error add to hidden layer error 4.8. calculate delta_weights of hidden layer 4.9 update weights with delta_weights. 5 if mean_sqr_err>0.05 and iter<maxiter then goto 3 Bu çalışmada rakam tanıma için 10 çıkışlı tek gizli katmalı MLP kullanıldı. Burada her bir çıkış aktif iken ilgili rakamı belirtmiştir. Bu yaklaşım yerine 2 n şeklide 4 çıkış içinde çalışma yapıldığında başarı fazla bir etkisi görülmedi. Ancak binary kodlama ile 0-15 arası sonuçlar elde edilebildiğinden 0-9 arası rakamlar için 10 ile 15 arasında sonuçlarda alınmaktaydı. Bu nedenle binary kodlama yerine 10 tane çıkıştan en yüksek sonucu veren ilgili rakamı gösterecek şekilde kullanıldı. Bu çalışma için çok büyük süre farkı olmadı ancak çıkış nöron sayısının artması işlem süresini uzatacağı göz önüne alınarak daha çok çıkış gerektiren durumlarda binary kodlama tercih edilebilir.

Sonuç Eğitim için kullanılan örneklerin çok az olması nedeniyle ortalama başarı düşük gözüktü. Eğer yeterli sayıda örnek ile eğitim yapılsaydı %90'lara yakın başarı elde edilebiliyor. Çok az eğitim örneği kullanılmasına rağmen sistemin başarısı oldukça etkileyici buldum. Rakamların yarısını %90'dan yüksek oranla tanıdı. Bir birine benzemeyen rakamları çok iyi ayırt ederken benzeyenlerde problem yaşanıldığı görüldü. Burada eğitim seti kısıtlı olduğundan çok sağlıklı yorum yapmak mümkün değil. Ancak şekil olarak bir birine benzeyen rakamlardaki düşük başarı oranı, şeklin piksel özelliklerinin momenti alınıp veya PCA ile en iyi ayrıt edici özellikler oluşturup, bu yeni özellikler üzerinden MLP uygulanması ile arttırılabilir. *İşlem zamanları Delphi 2006 ile geliştirilen native win32 uygulaması ile, Vista 64 bit ile Intel Q9550 2.83 GHz Quad Core işlemci ve 800MHz DDR2 hafızalı bilgisayar üzerinde hesaplanmıştır.