Yapay Sinir Ağı ile AND Kapısı (PIC Assembly)

Bu çalışmada, bir mikrodenetleyiciye yapay sinir ağını gerçekleyebilmesini sağlayacak bir program yazılması amaçlanmıştır. Hazırlanan yapay sinir ağı, program içerisine 48. satırda bulunan hsonuc (Hedef Sonuç) isimli değişkene göre eğitilir ve program kodunun 44 ve 46. satırlarından alınan giriş verilerini kullanarak çıkış üretir. Çalışmada, öğrenme metodu için geri yayılım metodu, aktivasyon fonksiyonu için basamak fonksiyonu, ağırlık güncellemeleri için Hebbian Kuralı kullanılmıştır. Geliştirilen uygulama, PIC Assembly dili ile PIC16F84 mikrodenetleyicisi için kodlanmıştır. Uygulama, öğrenme işlemini başarı ile gerçekleştirerek, denenen tüm giriş verileri için doğru sonuçlar üretmiştir.

Çalışmada yapay sinir ağı, 1 giriş, 1 ara ve 1 çıkış katmanlarından oluşur. Giriş katmanı ise 2 nöron ve 1 bias olmak üzere 3 giriş, 3 ara nöron ve 1 çıkış nöronundan oluşur. Giriş nöronu dışındaki nöronlar için bir aktivasyon fonksiyonu vardır. Her nörondan diğer nörona giden bir bağlantı bulunur ve bu bağlantının bir ağırlığı vardır. Her bir giriş ile ona ait ağırlık değeri çarpımlarının toplanmasına toplama işlevi denir. Nöronların değerleri aktivasyon fonksiyonu ile belirlenir. Çıkış nöronunda elde edilen değer ile hedef değer farklı ise geri yayılımlı olarak ağırlıklar tekrar hesaplanır ve öğrenme gerçekleştirilir. Öğrenme işlemi için çalışmada Hebbian Kuralı uygulanmıştır. Böylece her bağlantıdaki ağırlık güncellenerek baştan hesaplanır ve işlem hedef sonuca ulaşana kadar devam eder.

Okumaya devam et “Yapay Sinir Ağı ile AND Kapısı (PIC Assembly)”

Destek Vektör Makineleri ve Çok Katmanlı Algılayıcılar ile Göğüs Kanseri Teşhisi

Projenin Kodları

Raporu indir

1. Çalışmanın Özeti

Bu çalışmada, göğüs kanseri öznitelik vektörlerinin, destek vektör makineleri ve yapay sinir ağları(çok katmanlı algılayıcı) ile sınıflandırılmasına dayalı bir gögüs kanseri teşhisi yapılmaktadır. Teşhis için kullanılan yapay sinir ağları çok katmanlı algılayıcılar(Multi Layer Perceptron)’dır. Destek vektör makinaları(Support Vector Machine ) SVM-Lineer, SVM-Polinomsal ve SVM-Radyal Tabanlı modellerdir. Sınıflandırma işleminde kullanılacak olan gögüs kanseri verileri Wisconsin Diagnostic Breast Cancer (WDBC)  datasetidir. Oluşturulan veri formatı WEKA paket programında uygulanmıştır. Çalışmada doğru teşhis başarısı, MLP’de %97.90, SVM-Lineer‘de %95.44  SVM-Polinomsal’da %72.24 ve  SVM-Radyal Tabanlı’da %62.75 olarak ölçülerek en yüksek başarı %97.90 ile MLP(Çok Katmanlı Algılayıcılar) öğrenme yöntemi ile ölçülmüştür. Bu yöntemin ROC eğrisi altında kalan alan değeri 0.9931 olarak hesaplanmıştır.

2. Uygulama

2.1.Veri ve Kütüphanelerin Hazırlanışı

2.1.1. Veri Seti

Çalışmanın gögüs kanseri verileri Wisconsin Diagnostic Breast Cancer (WDBC)  dataseti ile değerlendirilmiştir. Dataset(http://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)) adresinden indirilip Notepad++ programı yardımı ile datasette bulunan sütunlar ile öznitelik sayısı tespit edilmiştir. Her satırdaki verilerin ilk değeri incelediğinde toplam 2 sınıfın bulunduğu M ile ifade edilen sınıfın malignant yani kötü huylu, B ile ifade edilen sınıfında benign yani iyi huylu anlamına geldiği anlaşılıp, programla düzenlerek WEKA paket programında kullanılabilmesi için arff dosya tipine dönüştürülmüştür. Öznitelik sayısı 30 dir. Bu özniteliklerden bazıları; her bir hücre çekirdeği için, yarıçapı, doku, çevre, alan, düzgünlük, kompaktlık, konkavite, içbükey noktaları, simetri, fraktal boyutu gibi özniteliklerdir. Gögüs kanseri verisi 569 tanedir. Bu verilerden 212 tanesi sonuç olarak kötü huylu, 357 tanesi de iyi huylu olan kanser türüdür.

2.1.2.Kütüphanelerin Hazırlanışı

MLP(Çok Katmanlı Algılayıcılar) ögrenme yöntemi kütüphanesi WEKA paket programında hazır bulunmaktadır. SVM(Destek vektor makineleri) kütüphanesi (http://www.csie.ntu.edu.tw/~cjlin/libsvm/) adresinden indirilip WEKA’nın kurulu olduğu yere yerleştirilmiştir. Bu aşamadan sonra ortam değişkenlerine yeni bir sistem değişkeni olan CLASSPATH ve değişken değeri olarakta libsvm kütüphanesinin konumu yazılarak eklenmiştir. Böylece WEKA’da SVM-Lineer, SVM-Polinomsal ve SVM-Radyal Tabanlı modeller kullanılır hale getirilmiştir. Okumaya devam et “Destek Vektör Makineleri ve Çok Katmanlı Algılayıcılar ile Göğüs Kanseri Teşhisi”

Genetik Algoritma Parametreleri

Genetik algoritmanın performansını etkileyen önemli etmenlerden biri kontrol parametrelerinin belirlenmesidir. Kontrol parametrelerinin seçimi problem tiplerine göre farklılık göstermektedir. Farklı problem ve kodlama türlerine göre en uygun kontrol parametrelerin belirlenmesi için birçok çalışma yapılmıştır. Aşağıda GA kontrol parametreleri olan popülasyon büyüklüğü, çaprazlama olasılığı, mutasyon olasılığı, kuşak farkı, seçim yöntemi ve fonksiyon ölçeklemesi açıklanmaktadır.

1.Popülasyon Büyüklüğü

Genetik algoritmanın ilk adımı başlangıç popülasyonunun oluşturulmasıdır. Başlangıç popülasyonunu oluşturan bireylerin uygunluk değerleri GA performansını etkileyen unsurlardan biridir. Popülasyon oluşturan bireylerin sayısı küçük seçildiğinde iterasyonlar daha hızlı olacak ancak algoritmanın yerel optimuma takılma şansı artacaktır. Popülasyonun çok büyük seçilmesi çözüm kalitesini arttıracak ancak algoritmanın adımları daha uzun zaman alacaktır. Goldberg 1985’de, yalnızca kromozom uzunluğuna bağlı bir popülasyon büyüklüğü hesaplama yöntemi önermiştir. Golderg birçok araştırmacının popülasyon büyüklüğünü 30-200 aralığında seçtiğini belirtmiştir. Popülasyon büyüklüğünü kromozom uzunluklarını dikkate alarak belirlenmesinde seçilen yöntemlerden biri n kromozom uzunluğu olmak üzere popülasyon büyüklüğünün [n, 2n] arasında seçilmesidir. Popülasyon büyüklüğünün küçük bir değer olarak belirlenmeye çalışılmasının başlıca nedeni GA’nın diğer meta-sezgisel yöntemlerle çözüm süresi olarak rekabetçi olabilmesidir.

Okumaya devam et “Genetik Algoritma Parametreleri”

Genetik Algoritma Süreci

Çözülmek üzere tanımlı bir problem verilmesi ve aday çözümlerin birer bit dizisi ile temsil edilmesi halinde, GA şu şekilde çalışır:
1.  N adet kromozom (problem için aday çözümler) içeren rastgele oluşturulmuş bir topluluk ile başla.
2.  Topluluktaki her  x kromozomu için  f(x) uygunluk değerini hesapla.
3.  Aşağıdaki adımları birey  n (topluluk büyüklüğü) oluşturuluncaya kadar tekrarla.
a.  Güncel topluluktan, yüksek uygunluk değerinin seçilme ihtimalini arttırdığını göz önünde bulundurarak, iki ebeveyn kromozom seç. Seçilim, aynı kromozomun birden çok defa ebeveyn olarak seçilmesine olanak verecek şekilde yapılır.
b.  Pc olasılığı (“çaprazlama olasılığı” ya da “çaprazlama oranı”) ile seçilen çifti iki yeni birey
oluşturmak üzere rastgele belirlenen bir noktadan çaprazla. Eğer çaprazlama gerçekleşmezse
ebeveynlerinin birebir kopyası olan iki çocuk oluştur.
c.  Pm olasılığı (“mutasyon olasılığı” ya da “mutasyon oranı”) ile, oluşan iki çocuğu tüm veya bazı locuslarında
mutasyona uğrat.
d.  Sonuçta elde edilen kromozomları yeni topluluğa ekle.
4.  Önceki topluluğu yeni topluluk ile değiştir.
5.  Sonlandırma koşulu sağlandıysa mevcut topluluktaki en iyi çözümü döndür, sağlanmadıysa 2. adıma dön.

1.Kromozomların Kodlanması

Bir problemin çözümünde Genetik Algoritmalar kullanılacaksa çözümün ilk adımı kromozomların nasıl kodlanacağına karar vermektir. Kodlama yaklaşımı çözümün başarısına doğrudan etki eder ve problemin
türüne ve özelliklerine göre farklılık gösterir.

Okumaya devam et “Genetik Algoritma Süreci”

Genetik Algoritma Temel Kavramlar

Genetik Algoritmalar, daha iyi çözümlere yavaş yavaş bir yaklaşım sağlayan geniş bir problem uzayı boyunca yönlendirilmiş rastgele bir araştırmaya imkan sağlar. Temel avantajı optimize edilmeye çalışılan problemin doğasıyla ilgili herhangi bir bilgiye ihtiyaç göstermemeleridir.

Evrimsel Algoritmalar: Çözüm uzayı içerisinde belirli kurallar dahilinde rastsal arama yapan algoritmalardır. Evrimsel algoritmaların (EA) probleme özgü bilgilere ihtiyacı diğer yöntemlere göre daha azdır.

Kodlama: Probleme ait potansiyel çözümler parametreler kümesi olarak sembolize edilir. Gen olarak da bilinen bu parametreler değerler dizgisi biçimini oluşturacak şekilde birleştirilir. Holland bu dizgelerin en verimli şeklinin ikilik sistemde olduğunu belirtmiştir.

Kromozom: Bir bireyin tam ifadesidir.

Gen: Bir kromozom içerisindeki tek bir özelliktir. Dikkat edilmesi gereken husus bir çocuğun kromozomu genlerden oluşur ve bu genler rastlantı olarak ebeveynlerinden aktarılır. Okumaya devam et “Genetik Algoritma Temel Kavramlar”

Tek Nöronlu Yapay Sinir Ağı ve Proteus İsis Simülasyonu (16f84)

Bu slayt gösterisi için JavaScript gerekir.

Bu yazıda PIC assembly ile kodlanmış tek nörona sahip bir yapay sinir ağı oluşturulup, Proteus İsis programında simülasyonla gösterildi. Programda hedeflenen durum, giriş değeri 1 verilirse 0 sonucunu üreten, 0 verilirse 1 sonucunu üreten YSA oluşturmak. Tek nöronlu yapay sinir ağının özelliği, nörona giren giriş değerini belli bir ağırlık değeri ile çarpıp, eşik değere göre sonuç üretmektir. Örnek olarak giriş değeri olarak 0 değeri verilip ve bu değer 1 değerine sahip ağırlıkla çarpıldıktan sonra elde edilen sonuç olan sıfır değerini 0’a eşit ve küçük olan eşik değerle kıyaslansın. Sonuç olan 0 değeri ile eşik değerin kıyaslanması sonucunda true yani 1 değeri elde edilecektir. Çünkü sonuç 0 ve eşik değerde sıfıra eşit ve küçük olduğu için dönüş true olacaktır. Aynı durum için giriş değeri 1 olduğunda dönüş değeri 0 olacaktır. Böylece program için hedeflenen durum gerçekleşti.

Okumaya devam et “Tek Nöronlu Yapay Sinir Ağı ve Proteus İsis Simülasyonu (16f84)”

Naive Bayes ile Spor Metinleri Sınıflandırma

Projenin Kodları

Tüm projeyi İNDİR: Program Raporu ve Kodu

1. Çalışmanın Özeti

Bu çalışmada, spor metinlerine ait olan öznitelik vektörlerinin Naive Bayes ile sınıflandırılmasına dayalı bir spor metni tahmini yapılmaktadır. Çalışmada veri seti farklı kullanılarak sınıflandırmanın başarısı incelenmiştir. Farklı kullanımdan kasıt, veri setinin eğitim ve test amaçlı olarak kullanılan verilerin sayısının değiştirilmesidir. Çalışmada bulunan spor metinleri futbol, basketbol, tenis olmak üzere üç sınıf seçilmiştir. Elde edilen özellik vektörünün başarısı, Naive Bayes sınıflandırma yöntemi ile en yüksek %80 olarak alınmıştır.

Günümüzdeki gelişmeler veri birikiminin artmasına neden olmaktadır. Bu artışla istenilen verilere ulaşabilmek için metinlerin sınıflandırılması ihtiyacı doğurmuştur. Metin sınıflandırma, o metnin özelliklerine bakarak önceden belirlenmiş belli sayıda kategorilerden hangisine dahil olacağını belirlemektir. Metin sınıflandırma bilgi alma, bilgi çıkarma, döküman filtreleme, otomatik olarak metadata elde etme ve web sayfalarını hiyerarşik olarak düzenleme gibi pek çok alanda önemli rol oynamaktadır. Bu çalışmada içerisinde üç farklı kategoride 60 adet dökümandan oluşan bir veri seti kullanılmıştır.Makine öğrenmesi yöntemlerinden Naive Bayes kullanılarak bir metnin türünün belirlenmesi gerçekleştirilmiştir.

Okumaya devam et “Naive Bayes ile Spor Metinleri Sınıflandırma”