Hamming Yapay Sinir Ağı

Preview:

DESCRIPTION

Sabit ağırlıklı ve yarışmacı bir sinir ağı(Doktora ders ödevi)

Citation preview

Hamming Ağı ve Öğrenmesi

Murat Özalp

Bilecik Şeyh Edebali Üniversitesi

Yapay Sinir Ağları (doktora) ders ödevi

2015, Bilecik

1915 - 1998

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

21.12.2015 Murat Özalp 2/17

İçindekiler

● Giriş

● Hamming Mesafesi

● Hamming Ağı

● Örnek Hamming Ağı

● Hamming Ağı'nın Karakteristik Özelikleri

● Yapay Sinir Ağları Sınıflandırması

● Matematiksel İlişkiler

● Ağırlıkların Hesaplanması

● Örnek Uygulama

21.12.2015 Murat Özalp 3/17

Giriş

● Richard Hamming, 1915-1998 yılları arasında yaşadı.

● 1940'lı yıllarda delikli kartlarla çalışırken, veri iletişiminde hata düzeltme üzerine çalışmaya başladı.

● Hata düzeltme üzerine çalışırken; iki vektörün (dize'nin, metnin) birbirine benzerliğini ifade etmek için, 1950 yılında Hamming Mesafesi kavramını ortaya koydu.

● Literatürde kaba bir araştırma sonucunda; yapay sinir ağları konusunda “Hamming mesafesi” ifadesinin bulabildiğim en eski kullanımı, Hopfield tarafından 1982 yılında yayınlanan “Neural networks and physical systems with emergent collective computational abilities” isimli makale oldu. (referans)

● Hamming ağları tanımı ise ilk kez 1987'de Lippmann tarafından, “An Introduction to Computing with Neural Nets” isimli çalışmada ifade edilmiştir. (referans)

21.12.2015 Murat Özalp 4/17

Hamming Mesafesi

● İki vektörün birbirine uzaklığını bulmak için kullanılan bir çok yöntemden birisi Hamming mesafesidir. En yaygın yöntemlerden birisi olan Öklid mesafesi ve benzerleri, sayısal verilerle işlem yaparlar.

● Hamming mesafesi ise iki ifade arasında kaç tane farklı sembol olduğuna bakarak mesafe ölçümü yapar.

Örnekler:

11110000 10110001 Mesafe: 2

abc123 abc120 Mesafe: 1

Antakya Antalya Mesafe: 1

21.12.2015 Murat Özalp 5/17

Hamming Ağı

Desen eşleştirme (pattern matching) ve sınıflandırma (classification) gibi amaçlarla kullanılmaktadır. Ağın girişinde vektör biçiminde verilen bir desenin, eldeki bilinen desenlerden en çok hangisine benzediğini söyleyebilir.

x1 x2 x3x4

B

y1y2

B

21.12.2015 Murat Özalp 6/17

Örnek Hamming Ağı

x1 x2 x3x4

B

y1y2

B

Çıkışlar, 0-9 arası rakamları temsil eder

0-9 arası rakamları tanıyan ağın temsili gösterimi

10 tane çıkışolmalıdır.

5x3=15 tanegiriş olmalıdır.

21.12.2015 Murat Özalp 7/17

Hamming Ağı'nın Karakteristik Özelikleri

● Sabit ağırlıklı yarışmacı ağlardandır (fixed weight competitive nets). Bu kategorideki diğer ağ türleri ise MaxNet ve Meksika Şapkası'dır.

● Bir giriş vektörü verildiğinde; önceden ağa verilmiş olan örnek (exemplar ~ prototip, sınıf, class) vektörler ile karşılaştırılarak, girişin hangi örneğe en yakın olduğuna bakılır. Bu şekilde sınıflandırma yapılmaktadır.

● Vektörlerde; genellikle {-1,1} şeklinde iki sembollü alfabe kullanılır.

● “En yakın komşu sınıflandırması”nın Hamming mesafesi kullanılan özel bir türüdür.

● Hamming ağı, tek katmandan oluşur. Bu tek katmanın görevi; giriş vektörlerinin, örnek vektörlerden hangisine daha çok benzediğine karar vermektir. Hamming ağına genellikle, en yüksek girişi bulan bir MaxNet ağı ilave edilir.

● Hamming ağının yaptığı iş; “desen eşleştirme” (pattern matching, inner product) şeklinde de ifade edilmektedir.

Eğiticisiz Yarışmacı Ağlar● MaxNet● Hamming Net● Mexican Hat Net● Self-Organizing Map (SOM)● Adaptive Resonance Theory (ART)

Eğiticili Yarışmacı Ağlar● Learning Vector Quantization (LVQ)● Counterpropagation

21.12.2015 Murat Özalp 8/17

Yapay Sinir Ağları Sınıflandırması

Hamming, MaxNet, Mexican Hat

21.12.2015 Murat Özalp 9/17

Matematiksel İlişkiler

● a ve b, iki farklı vektör olsun. Bu vektörler için;

– Birbirleri ile aynı olan eleman sayısı: A(a,b) şeklinde (A: Agree) gösterilir.

– Farklı olan elemanların sayısı ise H(a,b) şeklinde (A: Hamming) gösterilir.

● Bu ili vektörün skaler çarpımları (dot product); aynı elaman sayısının, farklı eleman sayısından farkına eşittir. Yani;

a .b=A (a ,b)−H (a ,b)

Örnek:

a vektörü = [1, ­1, ­1, ­1]b vektörü = [1,  1, ­1, ­1] olsun.

A(a,b) = 3 ve H(a,b)=1 olacaktır.A(a,b) - H(a,b) = 3-1 = 2 olur.

a.b skaler çarpımı da = (1*1) + (-1*1) + (-1*-1) + (-1*-1) = 1-1+1+1 = 2 olur.

21.12.2015 Murat Özalp 10/17

Matematiksel İlişkiler

● Hamming ağlarında; A(a,b) değeri kullanılmaktadır.

● Ağa önceden belirli sayıda örnek vektör verilmektedir. Bu vektörleri c(1), c(2), … c(M) şeklinde (c: class ~ sınıf) M tane olacak şekilde ifade edebiliriz.

● Giriş vektörü (örneğin x), c(j) vektörleri ile karşılaştırılmakta ve en yakın olan vektör belirlenmektedir.

Matris ilişkileri:x vektörü [……….]

1xN biçimindedir.

c(j) vektörleri de = [……….]1xN

biçimindedir.

Bu durumda; c(j) vektörleri, Hamming ağının ağırlık matrisini oluşturmak için, sütun vektörü haline getirilip, NxM boyutunda bir matris elde edilir.

Örnek vektörler: [c11 c12 ⋯ c1 N

c21 c2 N

⋮ ⋮cN 1 cN 2 ⋯ cNM

]NxM

c(1) c(2) c(M)

21.12.2015 Murat Özalp 11/17

Matematiksel İlişkiler

a .b=A (a ,b)−H (a ,b)

n: vektördeki sembol sayısıa: karşılaştırılan iki vektörde aynı olan sembol sayısı olmak üzere;

H(x,c) = n­aolduğunu bir kez daha hatırlayalım ve sonra benzerliği ifade etmek üzere ifadeyi yeniden düzenleyelim:

Skaler çarpım ifadesini biraz düzenleyelim. Vektörlerden birisi x giriş vektörü olsun. Diğeri de e örnek vektörü olsun.

veya

Üstteki ifadede her iki tarafı ikiye bölüp biraz düzenleyelim:

x .c=A (x , c)−H (x , c)

12

xT .c=n2−H (x , c)

a=12

xT .c+n2

21.12.2015 Murat Özalp 12/17

Ağırlıkların Hesaplanması

Önceki eşitliklerden yararlanarak, yukarıdaki formüldeki ağırlık (w) veeşik (b) değerlerini belirtelim:

B

net j=xT .w j+b j j=1,2,. .. ,M

w j=[w j1 w j 2 ...w jn]T

b j=n2

ve w j=12

c j , j=1,2,. .. , M

W=12 [

c11 c12 ⋯ c1 N

c21 c2 N

⋮ ⋮cN 1 cN 2 ⋯ cNM

]NxM

w ji=12c ji , i=1,2,. .. ,n ; j=1,2,. .. ,M

Ağırlık Matrisi

x=[x1

x2

⋮xn

]nx1

21.12.2015 Murat Özalp 13/17

Örnek Uygulama(2002, Bow, Pattern Recognition and Image Preprocessing, Sayfa: 240)

3x3 piksel ile ifade edilen C, H ve L harflerini tanıyan(sınıflandıran) bir Hamming ağı olsun. Harflerin şekliyanda gösterilmiştir.

Bu harflerin vektör ile ifadesi şöyledir:c1=(1  1  1;  1 ­1 ­1;  1  1  1) C harfic2=(1 ­1  1;  1  1  1;  1 ­1  1) H harfic3=(1 ­1 ­1;  1 ­1 ­1;  1  1  1) L harfi

x=(1 1 1; 1 ­1 ­1; 1 1 1) girişinin, bu ağa göre sınıfını bulmaya çalışalım.

Ağın 9 tane girişi (n=9) ve 3 tane çıkışı (3 sınıf için: net1, net

2, net

3) olacaktır.

Ağırlık matrisini (w) ve eşik (b) değerini hesaplayalım:

W=12 [

1 1 1 1 −1 −1 1 1 11 −1 1 1 1 1 1 −1 11 −1 −1 1 −1 −1 1 1 1] ve b1=b2=b3=

n2=

92

net 1=b1+∑i

xi w1i , i=1,2,. .. ,9

=92+1(0,5)+1(0,5)+1(0,5)+1(0,5)+1(−0,5)+(−1)(−0,5)+1(0,5)+1(0,5)+1(0,5)

=8

21.12.2015 Murat Özalp 14/17

Örnek Uygulama(2002, Bow, Pattern Recognition and Image Preprocessing, Sayfa: 240)

3x3 piksel ile ifade edilen C, H ve L harflerini tanıyan(sınıflandıran) bir Hamming ağı olsun. Harflerin şekliyanda gösterilmiştir.

Bu harflerin vektör ile ifadesi şöyledir:c1=(1  1  1;  1 ­1 ­1;  1  1  1) C harfic2=(1 ­1  1;  1  1  1;  1 ­1  1) H harfic3=(1 ­1 ­1;  1 ­1 ­1;  1  1  1) L harfi

x=(1 1 1; 1 ­1 ­1; 1 1 1) girişinin, bu ağa göre sınıfını bulmaya çalışalım.

Ağın 9 tane girişi (n=9) ve 3 tane çıkışı (3 sınıf için: net1, net

2, net

3) olacaktır.

Ağırlık matrisini (w) ve eşik (b) değerini hesaplayalım:

W=12 [

1 1 1 1 −1 −1 1 1 11 −1 1 1 1 1 1 −1 11 −1 −1 1 −1 −1 1 1 1] ve b1=b2=b3=

n2=

92

net 1=b1+∑i

xi w1i , i=1,2,. .. ,9

=92+1(0,5)+1(−0,5)+1(0,5)+1(0,5)+(−1 )(0,5)+(−1)(0,5)+1(0,5)+1(−0,5)+1(0,5)

=6

21.12.2015 Murat Özalp 15/17

Örnek Uygulama(2002, Bow, Pattern Recognition and Image Preprocessing, Sayfa: 240)

3x3 piksel ile ifade edilen C, H ve L harflerini tanıyan(sınıflandıran) bir Hamming ağı olsun. Harflerin şekliyanda gösterilmiştir.

Bu harflerin vektör ile ifadesi şöyledir:c1=(1  1  1;  1 ­1 ­1;  1  1  1) C harfic2=(1 ­1  1;  1  1  1;  1 ­1  1) H harfic3=(1 ­1 ­1;  1 ­1 ­1;  1  1  1) L harfi

x=(1 1 1; 1 ­1 ­1; 1 1 1) girişinin, bu ağa göre sınıfını bulmaya çalışalım.

Ağın 9 tane girişi (n=9) ve 3 tane çıkışı (3 sınıf için: net1, net

2, net

3) olacaktır.

Ağırlık matrisini (w) ve eşik (b) değerini hesaplayalım:

W=12 [

1 1 1 1 −1 −1 1 1 11 −1 1 1 1 1 1 −1 11 −1 −1 1 −1 −1 1 1 1] ve b1=b2=b3=

n2=

92

net 1=b1+∑i

xi w1i , i=1,2,. .. ,9

=92+1(0,5)+1(−0,5)+1(−0,5)+1(0,5)+(−1 )(−0,5)+(−1)(−0,5)+1(0,5)+1(0,5)+1(0,5)

=6

21.12.2015 Murat Özalp 16/17

Örnek Uygulama(2002, Bow, Pattern Recognition and Image Preprocessing, Sayfa: 240)

3x3 piksel ile ifade edilen C, H ve L harflerini tanıyan(sınıflandıran) bir Hamming ağı olsun. Harflerin şekliyanda gösterilmiştir.

Bu harflerin vektör ile ifadesi şöyledir:c1=(1  1  1;  1 ­1 ­1;  1  1  1) C harfic2=(1 ­1  1;  1  1  1;  1 ­1  1) H harfic3=(1 ­1 ­1;  1 ­1 ­1;  1  1  1) L harfi

x1=(1 1 1; 1 ­1 ­1; 1 1 1) girişinin, bu ağa göre sınıfını bulmaya çalışalım.

Ağın 9 tane girişi (n=9) ve 3 tane çıkışı (3 sınıf için: net1, net

2, net

3) olacaktır.

Ağırlık matrisini (w) ve eşik (b) değerini hesaplayalım:

W=12 [

1 1 1 1 −1 −1 1 1 11 −1 1 1 1 1 1 −1 11 −1 −1 1 −1 −1 1 1 1] ve b1=b2=b3=

n2=

92

net 1=b1+∑i

xi w1i , i=1,2,. .. ,9

=92+1(0,5)+1(−0,5)+1(−0,5)+1(0,5)+(−1 )(−0,5)+(−1)(−0,5)+1(0,5)+1(0,5)+1(0,5)

=6

Ağın çıkışları aşağıdaki gibi bulunmuştur.● Net1=8● Net2=6● Net3=6

Büyük olan değer, Hamming mesafesi açısından, x giriş vektörüne en yakın olan değerdir. Burada Hamming ağının görevi tamamlanmıştır.

21.12.2015 Murat Özalp 17/17

Kaynaklar

1) Pattern Recognition and Image Preprocessing,Sing-Tze Bow,2002, Marcel Dekker Yayınevi

2) Fixed Weight Competitive Nets, K. Ming Leung,2007, Polytechnic University ders notları

3) Neural Networks Based on Competition, M. Bennamoun,CS407 Neural Computation ders notları

Recommended