• Sonuç bulunamadı

Örnek Adım 2: En İyi Uyuşan Hücrenin Belirlenmesi ve ARB Oluşumu

3. DOĞAL VE YAPAY BAĞIŞIKLIK SİSTEMLERİ

3.4 AIRS Algoritmasının Detaylı Açıklanması

3.4.10 Örnek: AIRS Algoritmasının Kusur Kestirim Veri Kümesinde Açıklanması

3.4.10.2 Örnek Adım 2: En İyi Uyuşan Hücrenin Belirlenmesi ve ARB Oluşumu

Bu adım, Bölüm 3.4.6’da teorik olarak açıklanmıştı. Veri kümesinin ilk satırından başlanarak, her veri noktası antijen olarak değerlendirilip, algoritmanın ikinci, üçüncü ve dördüncü adımları gerçekleştirilmektedir. Bu nedenle, algoritmanın bu adımı için normalize veri kümesinin ilk satırı olan vektör [0.013605,0.007924,0,0,1] antijen olarak seçilir. Bu vektöre, current ismini verelim. Bu antijen ve bellek hücre havuzundaki antikor arasında bir afinite mevcut olacaktır ancak dikkat edilirse bu 2 vektörün sınıf etiketleri farklıdır. Bellek hücre havuzundaki antikorun sınıfı {evet} etiketli iken current antijenin sınıf etiketi {hayir} olduğundan, en iyi bellek hücresinin belirlenmesini sağlayan fonksiyon null değeri döndürecek ve bestMatch değişkeni null değer alacak, current antijen bellek havuzuna eklenecektir. Daha farklı bir ifadeyle; bellek hücre havuzu içerisinde, havuza tanıtılan antijenin sınıf etiketi ile aynı bir antikor bulunmadığından, mevcut antijen, bellek hücre havuzuna eklenmiş, sonraki aşamalar için böyle bir durumla karşılaşılmaması sağlanmıştır. Programda kullanılan fonksiyon, antijen ve antikor arasındaki uyarılma değerini hesaplamış olsa bile, sınıf etiketi farklılığından null değer döndürmüştür. Bellek hücre havuzunun yeni görüntüsü Şekil 3.36’daki gibi olacaktır.

1,1,1,0.974359,0

0.013605,0.007924,0,0,1

Şekil 3.36 Bellek hücre havuzunun yeni durumu

mutant klonlar oluşturulamadığı için, normalize veri kümesinden sıradaki antijen ile aynı aşama (bellek hücre havuzuna antijenin tanıtılması) tekrar gerçekleştirilecektir. Sınıf etiketi farklılığından null değer döndüren fonksiyon, bu işlemi sıradaki antijenle yapacak olan fonksiyona dönmektedir. Bu nedenle; yeni current antijen vektörü, veri kümesinin ikinci vektörü olan [0.034014,0,0.039216,0.008547,1] vektörü olarak belirlenir. Bu antijen ve bellek hücre havuzundaki antikorlar arasındaki uyarılmalar hesaplanarak, en yüksek uyarılmaya sahip olan antikor belirlenir. Öklid uzaklığı ile afinite hesabı yapılıp, bu değer 1’den çıkarılarak uyarılma değerleri belirlenir. Bellek hücre havuzunun en üst sırasında gösterilen; [1,1,1,0.974359,0] antikoru ile [0.034014,0,0.039216,0.008547,1] antijeni arasındaki uyarılma değeri 0.1295 olarak belirlenir. Bellek hücre havuzunun ikinci sırasındaki antikoruyla [0.013605,0.007924,0,0,1] yine [0.034014,0,0.039216,0.008547,1] antijeni arasındaki uyarılma değeri 0.9795 olarak hesaplanır. İkinci hesaplanan uyarılma değeri, ilk hesaplanan değerden yüksek olduğundan ve bu antikorun sınıf etiketi (hayir) antijenin sınıf etiketi ile aynı olduğundan, bu en yüksek uyarılmaya sahip hücre, en iyi uyuşan hücre olarak seçilir. Bu sayede, mcmatch = [0.013605,0.007924,0,0,1] şeklinde saptanmış

oldu. Bu hücrenin uyarılma değeri 1’e eşit olsaydı, maksimum uyarılma söz konusu olacağından, ARB içine kopyalama amaçlı hiçbir işlem yapılmazdı. O durumda, doğrudan bu hücre, bellek hücre havuzuna eklenerek ilgili antijeni veya daha farklı bir ifadeyle sunulan eğitim verisini en iyi tanıyan hücre olarak belirlenmiş olurdu. Bu noktada hesaplanmış olan uyarılma değeri (0.975) 1’e eşit olmadığından, bu hücreden klonlar oluşturularak, mutasyona tabi tutulup ARB havuzuna bu hücreler eklenir.

Bu noktada, ilk olarak az önce hesaplanan en iyi uyuşan hücre (mcmatch) ARB havuzuna

eklenir. Bellek hücre havuzu ve ARB havuzu, gerçeklemede bağlantılı liste şeklinde tanımlanmıştır. En iyi uyuşan hücreden oluşturulacak klon sayısı, uyarılma değeri ile doğru orantılıdır ve Math.round(uyarılma_değeri * klonlama_oranı * hipermutasyon_oranı) şeklinde hesaplanır. Klonlama oranı için varsayılan değer 10, hipermutasyon oranı için varsayılan değer 2’dir ve bu program çalıştırılmadan önce, bu varsayılan değerler kullanılmıştır. Dolayısı ile en iyi uyuşan hücreden maksimum oluşturulabilecek klon sayısı (1 * 10 * 2 = 20) olarak ifade edilebilir. Bu örnekteki sayısal değerleri kullanırsak, Math.round(0.975 * 10 * 2) = 20 adet klon oluşturulması gerektiğini söyleyebiliriz. Bu klonların mutasyona tabi tutulması için [0, 1] arasında rastgele bir değer oluşturularak, mutationRate parametresinden küçük olup olmama durumu kontrol edilmektedir. mutationRate, kullanıcı tarafından program başlatılmadan seçilen ve varsayılan değeri 0.1

olan bir değerdir. İlgili klon için; rand fonksiyonu ile oluşturulan [0, 1] arasındaki bu rastgele değer, mutationRate parametresinden küçükse, ilgili özelliğin (feature) değerine, yeniden rand ile oluşturulacak olan ve [0, 1] arasında olan bir değer atanır. mutationRate parametresinden küçük değilse, diğer özelliğe (feature) geçilerek o özellik üzerinde mutasyon işlemi gerçekleştirilmeye çalışılır. Dolayısı ile en iyi uyuşan hücrenin her klonu için, bu klonların özelliklerinin hangisinde mutasyon yapılacağı ve mutasyon sonucunda o özelliğe atanacak değerler, o anki rastgele belirlenen değerlere göre yapılmaktadır. Bu gerçeklemede, sınıf etiketi bile mutasyona tabi tutulabilmektedir ve sınıf sayısına bağlı olarak bu özelliğe de tamsayı bir değer rastgele atanabilmektedir. Örneğin; tesadüfi şekilde klonun sınıf etiketinde mutasyon oluşsun ancak bu sınıf etiketi için dönen rastgele değer yine sınıf etiketinin sahip olduğu değer olan 1 olsun. Bu oluşan klon, en iyi uyuşan hücrenin mutasyona uğramış hali olmasına rağmen, vektörlerinin tüm değerleri aynı olacaktır. AIRS gerçeklemesi adım adım çalıştırılırken, bu durumla karşılaşıldığından örnek olarak burada açıklanmıştır. Bu sayede, oluşan klon, en iyi uyuşan hücre ile bire bir aynı olacaktır. Bu mutanta mutant1 ismini verirsek, daha sonra mutant1, ARB havuzuna eklenecektir. ARB havuzunun yeni görüntüsü Şekil 3.37’deki gibi olacaktır.

0.013605,0.007924,0,0,1 0.013605,0.007924,0,0,1 0.013605,0.007924,0,0,1

Şekil 3.37 ARB havuzunun mutant1 eklendikten sonraki durumu

Şekil 3.37’deki en üstteki satır; ilklendirme aşamasında belirlenen hücreye ilişkindir. Bir alt satırındaki veri noktası, en iyi uyuşan hücreyi göstermektedir. Son sırada gösterilen veri noktası ise mutant1’dir. En iyi uyuşan hücreden, 20 adet klon oluşturulup mutasyona tabi tutulduktan sonra ARB havuzuna tüm mutant hücreler eklenmiş olacaktır. Bu sayede, AIRS algoritmasının ikinci adımı sonunda ARB havuzunda 22 adet ARB yer alacaktır. Şekil 3.37’de tesadüfi şekilde 3 adet aynı bilgi içeren veri noktası yer almaktadır. Farklı değerlerin oluştuğunu göstermek için, mutant2’nin de burada gösterilmesi faydalı olacaktır. Programın adım adım çalıştırılması sırasında; ikinci klonun mutasyon işleminin, ilk özellikte gerçekleştiği ve rastgele değer döndüren fonksiyondan 0.7617 değeri döndüğü gözlemlenmiştir. Bu nedenle, mutant2 vektörü mutant2 = [0.7617,0.007924,0,0,1] şeklinde temsil edilir. Bu oluşan mutant2 de, ARB havuzuna mutant1 gibi eklenecektir. Bu mutasyon işlemi, 20 klon için de gerçekleştirilerek AIRS’in bu adımı tamamlanır. Şekil

3.38’de; mutant2 eklendikten sonra ARB havuzunun içeriği gösterilmiştir. 0.013605,0.007924,0,0,1 0.013605,0.007924,0,0,1 0.013605,0.007924,0,0,1 0.7617,0.007924,0,0,1 ...

Şekil 3.38 ARB havuzunun mutant2 eklendikten sonraki durumu