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) = naolduğ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ı