5
Hamming Yapay Sinir Ağı ve Öğrenmesi Murat ÖZALP Bilecik Şeyh Edebali Üniversitesi [email protected] 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

Hamming Yapay Sinir Ağı (Konu anlatımı)

Embed Size (px)

Citation preview

Page 1: Hamming Yapay Sinir Ağı (Konu anlatımı)

Hamming Yapay Sinir Ağı ve Öğrenmesi

Murat ÖZALP

Bilecik Şeyh Edebali Üniversitesi

[email protected]

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

Page 2: Hamming Yapay Sinir Ağı (Konu anlatımı)

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

Page 3: Hamming Yapay Sinir Ağı (Konu anlatımı)

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:

12

xT .c=n2−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) = n­a olduğunu bir kez daha hatırlayalım ve sonra benzerliği ifade etmek üzere ifadeyi yeniden düzenleyelim:

a=12

xT .c+n2

(4)

(4) ifadesi, YSA çıkışını belirtmektedir. Genelleştirilmiş bir YSA çıkışının şu şekilde olduğunu hatırlayalım:

y i=∑ x i .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=xT .w j+b j 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:

w j=[w j1w j2...w jn]T (7)

b j=n2ve w j=

12c j , j=1,2,. .. , M (8)

Ağırlıklar: W=12 [

c11 c12 ⋯ c1N

c21 c2N

⋮ ⋮

cN 1 cN 2 ⋯ cNM]NxM

olur.

w ji=12

c ji , 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.

Page 4: Hamming Yapay Sinir Ağı (Konu anlatımı)

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 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.

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=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 ]

b1=b2=b3=n2=

92

Buna göre net1 çıkışını hesaplayalım:

net1=b1+∑i

x iw1i , i=1,2,. .. ,9

net 1=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 )

net 1=8

bulunur. net2 ve net3 çıkışları da benzer şekilde hesaplandığında, aşağıdaki değerler elde edilir:

net 1=8net 2=6net 3=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

Page 5: Hamming Yapay Sinir Ağı (Konu anlatımı)

Hamming, MaxNet, Mexican Hat

http

://w

ww

.slid

esha

re.n

et/b

alve

ench

ugh/

neur

al-n

etw

orks

-121

0268

0/29