1. Hamming Yapay Sinir Ağı ve Öğrenmesi
Murat ÖZALP
Bilecik Şeyh Edebali Üniversitesi
murat.ozalp@bilecik.edu.tr
Abstract
This study was conducted as ANN homework. Hamming
network was researched and presented.
Özet
Bu çalışma, YSA ev ödevi olarak yapılmıştır. Ödev
kapsamında, Hamming ağının araştırılması ve sunumu
yapılmıştır.
1. Giriş
Ağın temel kullanım amaçları; desen eşleştirme
(pattern matching) ve sınıflandırma (classification) gibi
uygulamalardır. Aşağıda ağın temsili şeması verilmiştir.
Şekil 1. Hamming Ağı'nın şeması
Hamming ağı tek katmanlı bir ağdır. Girişler ve çıkışlar
arasında tam bağlantı bulunmaktadır. Bağlantı ağırlıkları
eğitim sırasında belirlenmekte ve iteratif olarak
değişmemektedir. Bu özelliklerinden dolayı; sabit ağırlıklı
ve tek katmanlı bir ağ olarak tanımlanmaktadır. Ağ
ağırlıkları hesaplanırken, Hamming mesafesi
kullanılmaktadır. Ağın ismi buradan gelmektedir.
2. Tarihçe
Richard Hamming, 1915-1998 yılları arasında yaşamış
bilim adamıdır. 1940'lı yıllarda delikli kart kullanan
bilgisayarlarla çalışırken, hata bulma/düzeltme
algoritmaları üzerine uzun süre çalışmıştır. Hata bulma
süresini kısaltmak üzere yaptığı çalışmalar sırasında,
sayısal olmayan ifadeler arasındaki benzerliği ifade
edebilmek için bir tanım yapmış vr buna Hamming
mesafesi ismini vermiştir.
Hamming mesafesini kullanan yapay sinir ağları ilk
kez 1987 yılında Lippmann tarafından “An Introduction
to Computing with Neural Nets” isimli çalışmada ifade
edilmiştir.
3. Hamming Mesafesi
İki vektörün birbirine uzaklığını bulmak için kullanılan
yöntemlerden birisi Hamming mesafesidir.
Öklid mesafesi ve benzerleri sayısal verilerle işlem
yaparken, Hamming mesafesi sayısal olmayan ifadelerle
işlem yapmaktadır.
Hamming mesafesi; özetle, iki vektör (ifade, katar)
arasında kaç tane sembolün farklı olduğuna bağlı olarak
benzerlik ifade eder. Vektörlerin arasındaki farklı sembol
sayısı, iki vektör arasındaki uzaklığı ifade eder. Aşağıda
bununla ilgili birkaç örnek verilmiştir:
1. Vektör 2. Vektör Mesafe
11110000 1011000 2
abc123 abc120 1
Antalya Antakya 1
Hamming mesafesinin ağ içerisinde kullanılma amacı,
girişten verilen vektörlerin, önceden öğretilmiş olan
örneklere (sınıflar ~ classes) ne kadar benzediğini
bulmaktır. Mesafenin (uzaklığın) tersi yakınlık (benzerlik)
olarak kullanılmaktadır. Örneğin; 8 sembollü iki ifade
arasındaki mesafe 2 ise, bu iki ifadenin benzerlik değeri 6
olarak hesaplanmaktadır. Hamming ağlarında, giriş
vekörü ile benzerlik değeri en fazla olan sınıf, çıkışta elde
edilmektedir.
21.12.2015 Sayfa: 1/4 Murat ÖZALP
2. 4. Ağın Temel Özellikleri
YSA algoritmaları sınıflandırmasında, “danışmansız
ağlar (unsupervised networks)” kategorisinde yer
almaktadır. Bazı kaynaklarda “danışmanlı ağlar”
kategorisine de dahil edildiği olmuştur. Bunun sebebi ağın
“sınıf” olarak kullanacağı örnek vektörlerin ağa önceden
veriliyor olmasıdır.
Sınıflandırma sırasında “giriş vektörüne en çok
benzeyen sınıf” arandığından, “yarışmacı ağlar
(competitive networks)” kategorisinde yer almaktadır.
Ağırlıkları baştan belirlendiği ve daha sonra
değişmediği için; “sabit ağırlıklı (fixed weights)”
ağlardandır.
Ağın ana karakterini ifade eden bu özellikleri şu şekilde
özetleyebiliriz:
• danışmansızdır
• yarışmacıdır
• tek katmanlıdır
• yarışmacıdır
“En yakın komşu (nearest neighboor)” tarzında
kümeleme veya sınıflandırma ağlarına da benzerlik
göstermektedir. kNN türü uygulamalarda, girişin her bir
elemanı, önceki elemanlardan en yakın k tanesinin
yoğunlukla dahil olduğu kümeye dahil olmaya çalışır. Bu
tarz uygulamalar genellikle sayısal veriler ile çalışmaktadır.
Ancak Hamming ağının bunlardan en önemli farkı, sayısal
olmayan veriler arasında yakınlık ifade edebilmesidir.
Hamming ağı ile benzer durumlarda kullanılan diğer
ağlar; MaxNET ve Meksika Şapkası'dır.
MaxNET ağları; klasik bir “kazanan hepsini alır
(winner takes all)” uygulamasıdır. Karşılaştırılan
değerlerden en büyük olanın çıkışı aktif, diğer tüm çıkışlar
pasif durumda olur. Bu durum çıkış katsayılarının 1 ve 0
şeklinde düzenlenmesi ile uygulanır. Hamming ağlarının
çıkışına ilave olarak genellikle bir MaxNET ağı eklenir.
Bunun sebebi; Hamming ağının çıkışındaki benzerlik
skaler değerlerinin en büyük olanının seçilmesidir.
Hamming ağının önemli bir özelliği de ikili girişlerle
(bipolar vectors) çalışmasıdır. Bu nedenle girişler ikili
ifadelerle verilmektedir.
5. Örnek Rakam Tanıma Sistemi
Rakam tanıma sisteminde, 0-9 arası rakamları ifade
eden 10 tane sınıf bulunmaktadır. Girişten verilen her bir
eleman, bu 10 sınıftan birisine dahil edilmelidir. Bunların
haricinde bir seçenek olamaz. Dolayısıyla, en çok hangi
rakama benzerse, o sınıfa dahil edilmesi düşünülebilir. İşte
bu benzerlik Hamming mesafesi ile ölçülmektedir. Aşağıda
bu örnek için şema gösterilmiştir:
Şekil 2. Rakam tanıma sistemi ağ şeması
Rakam tanıma sisteminde, girişten uygulanacak olan
her bir rakam 5x3 şeklinde matrislerle sayısallaştırılarak
verilmektedir. Her bir veri için; matrisin her bir
hücresinin dolu/boş olması durumu -1/+1 şeklinde
sayısallaştırılmaktadır. 15 hücrenin sisteme giriş olarak
verilebilmesi için, 15 tane giriş gerekmektedir. Girişler
Xi=[...]5x3 şeklinde sisteme verilmelidir.
Sistem çıkışında sınıflandırma yapılacaktır. Yani her
bir giriş verisi için, 0-9 rakamlarının hangisine tekabül
ettiğini sistem belirtebilmelidir. Bunu; üretim bandında
ürünlerin “sağlam” veya “arızalı” şeklinde iki ayrı sepete
ayrılması şeklinde düşünebiliriz. Rakam tanıma örneğinde
de benzer şekilde 10 ayrı sepet (sınıf) bulunmaktadır. Bu
10 ayrı sınıfı ifade edebilmek için, 10 tane ayrı çıkış
olması gerektiği açıktır. Çıkışlar, Yi=[.....]10x1 şeklinde
ifade edilmektedir.
6. Bağlantı Ağırlıkları ve Eşikler
Ağırlıklar ve eşik (bias) değerleri, sisteme tanıtılacak
olan örneklere (sınıflar) göre belirlenmektedir.
Örneğin; rakam tanıma örneği için, 10 tane 5x3 matris
verisi sisteme verilerek ağırlık ve eşiklerin oluşturulması
sağlanmaktadır. Bu aşamadan sonra bir daha ağırlık ve
eşik değerleri değiştirilmemektedir.
7. Ağın Oluşturulması
Sistemin tanıyacağı verilere göre örnek verilerin
(sınıflar) sisteme önceden yüklenmesi gerekmektedir.
Ağın oluşturulması bu şekilde sağlanmaktadır.
Hamming ağının temelinde Hamming mesafesinin
bulunduğun daha önce belirtilmişti. Aşağıda bunun
matematiksel ifadeleri verilmiştir.
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 (H: 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) (1)
21.12.2015 Sayfa: 2/4 Murat ÖZALP
3. 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.
Skaler çarpım ifadesini (1) düzenleyerek yeniden
yazalım. Vektörlerden birisi x giriş vektörü olsun. Diğeri de
e örnek vektörü olsun:
x.c= A(x, c)−H (x ,c) (2)
(2) ifadesinde, her iki tarafı ikiye bölüp biraz
düzenleyelim:
1
2
x
T
.c=
n
2
−H (x, c) (3)
Bu ifadelerde;
• 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) = na olduğunu bir kez daha
hatırlayalım ve sonra benzerliği ifade etmek üzere ifadeyi
yeniden düzenleyelim:
a=
1
2
x
T
.c+
n
2
(4)
(4) ifadesi, YSA çıkışını belirtmektedir.
Genelleştirilmiş bir YSA çıkışının şu şekilde olduğunu
hatırlayalım:
yi=∑ xi.wi+θ (5)
Bu durumda, (4) ve (5) ifadeleri benzer duruma
gelmiştir. YSA modelini oluşturmak için, ağ şemasını
yeniden hatırlayalım:
Şekil 3. Hamming Ağı
Şekilde gösterilmiş olan netj ifadesi, şu şekildedir:
net j=x
T
.wj+bj j=1,2,..., M (6)
(4) ve (5) eşitliklerinden yararlanarak, (6) eşitliğindeki
ağırlık (w) ve eşik (b) değerlerini belirtelim:
wj=[wj1 wj2... wjn]
T
(7)
bj=
n
2
ve wj=
1
2
cj , j=1,2,..., M (8)
Ağırlıklar: W=
1
2
[
c11 c12 ⋯ c1N
c21 c2N
⋮ ⋮
cN 1 cN 2 ⋯ cNM
]NxM
olur.
wji=
1
2
cji , i=1,2,...,n ; j=1,2,. ..,M
21.12.2015 Sayfa: 3/4 Murat ÖZALP
Ö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.
4. 8. Örnek Uygulama
8.1. Soru
3x3 piksel ile ifade edilen C, H ve L harflerini tanıyan
(sınıflandıran) bir Hamming ağı olsun. Harflerin şekli
aşağıda gösterilmiştir.
Şekil 4. Örnek soruda tanınan harfler
Bu harflerin vektör ile ifadesi şöyledir:
c1=(1 1 1; 1 1 1; 1 1 1) C harfi
c2=(1 1 1; 1 1 1; 1 1 1) H harfi
c3=(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.
8.2. Çözüm
Her bir harf 3x3 matris ile ifade edildiğinden, ağın
3x3=9 tane girişi olmalıdır.
Tasarlanacak olan ağ, 3 tane harfi tanıyacağı için üç
sınıf olmalıdır. Dolayısıyla 3 tane de çıkış olmalıdır. Buna
göre ağın şeması aşağıda gösterilmiştir:
Şekil 5. Örnek uygulamanın YSA şeması
Önce; ağırlık matrisini (w) ve eşik (b) değerini
hesaplayalım:
W=
1
2 [
1 1 1 1 −1 −1 1 1 1
1 −1 1 1 1 1 1 −1 1
1 −1 −1 1 −1 −1 1 1 1]
b1=b2=b3=
n
2
=
9
2
Buna göre net1 çıkışını hesaplayalım:
net1=b1+∑
i
xi w1i , i=1,2,...,9
net1=
9
2
+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)
net1=8
bulunur. net2 ve net3 çıkışları da benzer şekilde
hesaplandığında, aşağıdaki değerler elde edilir:
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.
Sorunun cevabı olarak; verilen x girişi sınıflandırılarak
net1 çıkışına tekabül ettiği görülmüştür. Bu çıkış, soruda
verilen C harfine ait olduğundan, girişte verilen veri ve
çıkışta gösterilen sınıf aşağıda verilmiştir:
--> Soruda verilen x vektörü
--> YSA kararı
Kaynaklar
Pattern Recognition and Image Preprocessing, Sing-
Tze Bow, 2002, Marcel Dekker Yayınevi
Fixed Weight Competitive Nets, K. Ming Leung, 2007,
Polytechnic University ders notları
Neural Networks Based on Competition, M.
Bennamoun, CS407 Neural Computation ders notları
21.12.2015 Sayfa: 4/4 Murat ÖZALP