Ankara Üniversitesi
Nallıhan Meslek Yüksekokulu
Çoklu sinir ağları kullanan büyük örüntü tanıma sistemi
NB P23 4 ÖR ÜNT Ü T ANIMA
ÖĞR . GÖR . DR . UFUK T ANYE R I
Çoklu sinir ağları kullanan büyük örüntü tanıma sistemi
Bu dersimiz codeproject’de yer alan örnek bir örüntü tanıma uygulamasını inceleme üzerinedir.
Uygulamanın kaynak kodlarına, videosuna ve diğer dosyalarına açık ders sisteminden erişebilirsiniz.
https://
www.codeproject.com/Articles/376798/Large-pattern-recognition-system-using-multi-neura
Günümüzde yapay sinir ağı, insan yaşamının birçok alanında popüler bir şekilde
uygulanmaktadır. Bununla birlikte, el yazısı tanıma sistemleri gibi büyük bir sınıflandırıcı için
verimli bir ağ oluşturmak, bilim adamları için hala büyük bir zorluktur. Söz konusu uygulama
genel olarak büyük örüntülerin sınıflandırılması ve özellikle el yazısı tanıma için bir çözüm
niteliğindedir [1].
Uygulamanın ekran görüntüsü
Tanıma sistemi için sinir ağı
Geleneksel örüntü tanıma modelinde, elle tasarlanmış bir özellik çıkarıcı, ilgili bilgileri girdilerden toplar ve alakasız değişkenlikleri ortadan kaldırır. Bir eğitici sınıflandırıcı (normal olarak, standart, tam bağlantılı bir çok katmanlı sinir ağı sınıflandırıcı olarak kullanılabilir) daha sonra elde edilen özellik vektörlerini sınıflara ayırır. Bununla birlikte, tanıma sonuçlarına etki etmesi gereken bazı problemler olabilir. Evrişim sinir ağı (CNN), desen tanıma görevinde en iyi performansı elde etmek için geleneksel olanın bu eksikliğini çözer.
CNN'ler çok katmanlı sinir ağının özel bir şeklidir. Diğer ağlar gibi CNN'ler de geri yayılma
algoritmaları ile eğitilir. Fark mimarilerinin içindedir. Evrişim ağı, bir dereceye kadar kayma, ölçek ve bozulma değişmezliği sağlamak için üç mimari fikri birleştirir: yerel alıcı alan, paylaşılan ağırlıklar (veya ağırlık replikasyonu) uzamsal veya zamansal alt örnekleme. Özellikle minimum ön işleme
operasyonları ile doğrudan dijital görüntülerden desenleri tanımak için tasarlanmıştır. CNN'in mimari
detayları Dr. Yahn LeCun ve Dr. Patrice Simard'ın makalelerinde kapsamlı bir şekilde tanımlanmıştır.
Deney
Demo program bir tanıma sisteminin tüm aşamalarını göstermek amacıyla oluşturulmuştur: bir bileşen ağı oluşturmak, bir ağı eğitmek, UNIPEN veri kümesinde ağları test etmek ve bir fare çizim kontrolünde ağları test etmek.
Bu uygulama, herkesin bir tanıma sistemini anlamasında yardımcı olabilecek bir öğreticidir. Tüm işlevler program GUI'sinden uygulanabilir. Böylece, herhangi bir kod değiştirmeden veya
programı yeniden başlatmadan ağınızı çalışma zamanında oluşturabilir, eğitebilir ve test edebilirsiniz.
Yeni sinir ağı oluşturmak tamamen GUI'ye dayanmaktadır. Ağ oluşturmak, giriş modeli
boyutuna, katman sayısına, veri kümesine… bağlıdır. Çıkış katmanında, ağa ek bir bilinmeyen
çıkış oluşturmak için bilinmeyen çıkış onay kutusunu seçebilir veya normal bir ağ oluşturmak
için yok sayabiliriz.
Bir Sinir Ağı oluşturmak
Ağ eğitimi
"Ağ oluştur" işlevini kullanarak bir sinir ağı oluşturduktan sonra, ağ UNIPEN veritabanı kullanılarak eğitilecektir.
Ağ boyutuna bağlı olarak UNIPEN data klasöründe eğitim seti 1a, 1b veya 1c'dir. Eğitim sürecinin istatistiği, aşağıdakiler gibi birçok yararlı bilgiyi
gösterebilir: Dönem sayısı, MSE, dönem başına
eğitim süresi, başarı oranı…
UNIPEN veri tarayıcısı ve tanıma testi
Demo programındaki UNIPEN veri tarayıcı kontrolü, tüm UNIPEN veri dosyalarını
gösterebilir. Ayrıca
eğitimli ağ parametreleri dosyalarını yükleyerek bu dosyalardaki eğitimli
sinir ağını test edebiliriz.
Fare Çizim testi
Fare çizim kontrolü Alex Fr.'nin mükemmel
"DrawTools" makalesine dayanmaktadır.
Görüntüdeki el yazısı metni, linkteki algoritma ile çizgi, kelime ve
yalıtılmış karaktere bölünür: