Som algorithms in artificial neural networks

1,095 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,095
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Som algorithms in artificial neural networks

  1. 1. T.C. ÇANAKKALE ONSEKİZ MART ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜSOM ALGORİTMASI İLE FİLM UYGULAMASI Esranur ÖĞRETMEN Proje Danışmanı Yard.Doç.Dr Mahmut SİNECEN
  2. 2. Yapay Sinir Ağı Nedir? Yapay sinir ağı insan beyninden esinlenerek geliştirilmiş, ağırlıklı bağlantılararacılığıyla birbirine bağlanan işlem elemanlarından oluşan paralel bilgi işleme yapılarıdır.1980’li yılların ortalarından itibaren bilim adamları yapay sinir ağlarıyla ilgilenmeyebaşlamışlardır. White 1989 yılında istatistiksel yöntemlerindeki matematiksel modeller ileyapay sinir ağlarında kullanılan öğrenme algoritmalarının birbirlerine benzediğiniispatlamıştır. Sarle 1994’te yaptığı araştırmalarda da bu iki alanda uygunluk olduğunubelirtmiştir. Gizli katmansız ileri beslemeli ağlar lineer modellere, bir gizli katmanlı ileribeslemeli ağlar lineer olmayan regresyon modellerine, Hebbian öğrenme temel bileşenleranalizine ve Kohonen SOM ağları kümeleme analizine karşılık gelmektedir. İstatistikselyöntemlerin çoğunda verilerle ilgili dağılım varsayımı ve değişkenlerle ilgili varyasyon vekorelasyon varsayımları vardır.[1](arastimax1829pp47 68) YSA’nın ElemanlarıGirdiler: Yapay sinir ağlarına dış dünyada veya diğer bir hücreden gelen bilgilerdir.Ağırlıklar: Hücreler arasında bağlantıların sayısal değerini ifade etmektedir. Bir hücreyegelen bilginin değerini ve hücre üzerindeki etkisini gösterir.Toplama Fonksiyonu:Hücreye gelen girdilerin net girdi değerini hesaplar.Aktivasyon Fonksiyonu: Hücreye gelen net girdiyi kullanarak çıktı değerini hesaplanmasınısağlar.Çıktılar: Aktivasyon fonksiyonu ile elde edilen değerdir. Üretilen çıktı dış dünya veya başkabir hücreye girdi olarak gönderilebilir.
  3. 3. YSA’nın Yapısı Giriş Katmanı, Ara(gizli) Katmanı ve Çıkış Katmanı olmak üzere üçe ayırabiliriz.Giriş Katmanı: Dış dünyadan yapay sinir ağına gelen girdilerin bulunduğu katmandır. Girdisayısı kadar hücre bulunmakta, girdilerin üzerinde işlem yapılmadan gizli katmanailetilmektedir.Ara(gizli) Katman: Giriş katmanından aldığı bilgiler üzerinde işlem yaparak bir sonrakikatmana iletir. Buradaki hücre sayısı değişkendir, girdi ve çıktı katmanlarındaki hücresayısına bağlı değildir.Çıkış Katmanı: Ara katmandan gelen değerleri işleyerek çıktı üretilir ve dış dünyaya verilir.Çıkış katmanındaki her bir hücre bir önceki katmandaki bütün hücrelere bağlıdır. YSA’nın Avantaj ve DezavantajıAvantajı: Yapay sinir ağı yaklaşımının istatistiksel yöntemlere göre avantajı, verilerin dağılımvarsayımları ve değişken varsayımlara ihtiyaç duymamasıdır. Adaptasyon yeteneği, bilgininağın tamamında saklanması, istisnai ve anormal veri sayısı çok olan konularda iyi sonuçvermesi avantajları arasındadır. Yapay sinir ağları, değişkenlere ait veri eksiklerini de tolereetme özelliğine de sahiptir.Dezavantaj Yapay sinir ağının eğitimi için çok sayıda veri gerekmesi, ağın parametre değerlerininbelirlenmesinde ve eğitim örneklerinde belli bir kural olmaması, ağın eğitiminin ne zamanbitirilmesi gerektiği, öğrenilecek problemin ağa gösterimi önemi problemlerdir.Yapay Sinir Ağlarının Temel İşlevi1-Öngörü veya Tahminleme: İleriki satışlar, hava tahminleri, at yarışları.2-Sınıflandırma ve Kümeleme: Müşteri profilleri, tıbbı teşhis, ses ve şekil tanıma.3-Kontrol: Erken uyarı için uçaklarda ses ve titreşim düzeyleri.
  4. 4. YSA’ nın SınıflandırılmasıA.Yapılarına Göre1-İleri Beslemeli: Hücreler girişten çıkışa doğru düzenli katmanlar şeklindedir. Ağa gelenbilgiler giriş katmanına daha sonra gizli katman ve çıkış katmanından işlenir ve dış dünyayaverilir.2-Geri Beslemeli: Hücrenin çıktısı kendiden önceki katmanda veya kendi katmanına girdiolarak verilebilir.B.Öğrenme Algoritmalarına Göre1-Danışmanlı Öğrenme: Ağ kullanılmaya başlanmadan önce eğitilir. Hem girdi değerlerihem de çıktı değerlerinin istenen çıktı değerleri sisteme verilir. İstenen çıktı ile ağın ürettiğiçıktı karşılaştırılarak hata oranı hesaplanır, ağırlıklar güncellenir.2-Danışmansız Öğrenme: Sisteme sadece girdiler verilerek sistemin kendi kendineöğrenmesi beklenir.3-Pekiştirmeli Öğrenme: Giriş verileri ağda işlenir ve sonucun değerlendirilmesi danışmantarafından yapılır. Ödül ve ceza ile ağ ağırlıkları güncellenir. ÖĞRENME ALGORİTMALARI  Geri Yayılım Algoritması  Esnek Yayılım Algoritması  Delta Bar Delta Algoritması  Geliştirilmiş Delta Bar Delta Algoritması  Hızlı Yayılım Algoritması  Levenberg-Marquardt Metodu  Eşleştirilmeli Eğim Algoritması Yapay sinir ağlarının istatistiksel alanlardaki uygulamalarında genellikle SOM(Self-Organizing Maps) ve geri yayılım öğrenme algoritmalarının kullanılır.
  5. 5. SOM(SELF ORGANIZING MAPS) 1982 yılında Teuvo Kohonen tarafından geliştirilmiştir. İlişkisel bellek temelinikullanan ve denetimsiz öğrenen bir YSA modelidir. İlişkisel bellek, iki nesne arasındaki bağınkuvvetliliği ölçüsünde ilişkilendirdiğimiz öğrenme biçimi anlamına gelmektedir. Martinetz,Berkovich ve Schulten 1993’te SOM algoritmasına alternatif olarak Neural-Gas algoritmasınıöne sürmüşlerdir. Neural-Gas aloritması, SOM algoritması ile K-ortalama metodunu birliktekullanır. SOM veri setindeki elemanları hem kümelendirir hem de haritalandırır. Bu sebeple,bu ağlar son yıllarda oldukça popüler olmuştur. SOM ağları tek katmanlı bir ağdır. Bu ağın eğitiminde kullanılacak veriler bağımlıdeğişken içermez. Bu sebeple, kümeleme analizi ilgili problemlerin çözümü için idealdir.Ancak, elde edilen sonuçların doğruluğunu denetlemek için konuyla ilgili uzman görüşünebaşvurmak gerekebilir. SOM ağları, hem verilerin kümelenmesi hem de görselleştirilmesiaçısından tercih edilmektedir. Bu ağlar çok boyutlu bir veriyi iki boyutlu bir haritayaindirgemektedir. Her bir küme için oluşturulan referans vektörleri bir araya geldiğinde birharitayı meydana getirmektedir. SOM un LVQ dan en önemli farkı, LVQ nun denetimliolması ve topolojik komşuluk içermemesidir. SOM ağları, tek katmanlı bir ağ olup giriş ve çıkış nöronlarından oluşur. Girişnöronlarının sayısını veri setindeki değişken sayısı belirler. Çıkış nöronlarının her biri birkümeyi temsil eder. Diğer yapay sinir ağlarından farklı olarak, çıkış katmanındaki nöronlarındizilimi çok önemlidir. Bu dizilim doğrusal, dikdörtgensel, altıgen veya küp şeklinde olabilir.En çok dikdörtgensel ve altıgen şeklindeki dizilimler tercih edilmektedir. Pratikte, çoğu kezdikdörtgensel dizilim karesel dizilim olarak uygulanır. Buradaki dizilim topolojik komşulukaçısından önemlidir. Aslında, çıkış nöronları arasında doğrudan bir bağlantı yoktur. Girişnöronları ile her bir çıkış nöronu arasındaki bağlantıyı referans vektörleri gösterir. Buvektörler bir katsayılar matrisinin sütunları olarak da düşünülebilir. SOM sinir ağlarıeğitilirken bu topolojik komşuluk referans vektörlerinin yenilenmesinde kullanılır.
  6. 6. SOM AĞININ YAPISISOM ağlarının çeşitleri;  Kohonen  Kangas  LaaksonenSOM UN BİLEŞENLERİ 1. İlklendirme: Bağlantı ağırlıklarının tümü rastgele olarak küçük sayılarla ilklendirilirler. 2. Rekabet: Hücreler her girdi için bir fonksiyon aracılığı ile yarışırlar. Burada kullanılan fonksiyon; Dj(x) = ∑ (xi-wji)2 Fonsiyondan elde edilen değere bakılarak, hangi sinir hücresinin ağırlık vektörü girdi vektörüne yakın ise o hücre winner olarak belirlenir. Sinir hücrelerinin rekabeti sayesinde, girdi uzayı ve kesikli çıktı uzayı eşleşmiş olur. 3. İşbirliği: Uyarılacak hücrelerin topolojik komşuluğunun konumu belirlenerek hücreler arası işbirliği yapılır.
  7. 7. 4. Uyum: Fonksiyondan elde edilen değer azaltılarak bağlantı ağırlıklarının azaltılması işlemi uygulanır. Kazanan hücre ile birlikte komşuları da girdi vektörüne yaklaştırılarak ağırlıklar düzenlenir. Böylece topolojik düzen sağlanmış olur. SOM ALGORİTMASININ ÇALIŞMASI SOM Modelinde Kümelemeyi Etkileyen Faktörler Başarılı bir kümeleme çalışması gerçekleştirebilmek için bazı faktörlere dikkat etmekgerekir. Çoğu kez deneme yanılma yoluyla bu faktörler için en iyi değerler bulunur.Giriş vektörüyle referans vektörleri arasındaki fark hata olarak kabul edilirse, en küçükmutlak hata ortalamasına sahip model en iyidir denilebilir. Bu faktörler şunlardır: 1) Çıkış katmanındaki nöron sayısı: Çıkış katmanındaki nöron sayısı, elde edilebilecek maksimum küme sayısını belirtir. Genellikle, veri setindeki eleman sayısının %10’u civarında çıkış nöronu tercih edilir. 2) Verilerin normalleştirilmesi: Veri setindeki değişken değerleri arasında büyük farklar varsa değerler normalleştirilmelidir. Böylece, tüm değişkenlere eşit şans verilmiş olur. Sütun bazında yapılan normalleştirme üç şekilde yapılabilir:
  8. 8. a) Her bir sütundaki değerler sütun standart sapmasına bölünür. b) Her bir sütundaki değerlerden sütun ortalaması çıkartılıp çıkan sonuç sütun standart sapmasına bölünür. Böylece, ortalaması 0 standart sapması 1 olan standart dağılım elde edilir. c) Her bir sütundaki değer, sütun vektör uzunluğuna bölünür.3) Referans vektörlerine ilk değer atanması:Referans vektörlerine ilk değer atanması, SOM modelinde çok kritik bir yere sahiptir. Builk değerler atanırken veri setindeki giriş vektör değerleri göz önünde bulundurulmalıdır.Pratikte, referans vektörlerine rasgele değerler atamak bazen sakıncalı olabilir. Tümvektörlere 0’dan çok az büyük bir değer atanırsa öğrenme katsayısı 1’e yakın bir değerlebaşlatılmalı ve belli bir döngü boyunca (1000 döngü gibi) azaltılmamalıdır. Ayrıca,komşuluk değişkeni büyük bir değerle başlatılmalı ve öğrenme katsayısının değişmediğiperiyotta sabit kalmalıdır. Böylece, referans vektörleri giriş vektörlerine uygun bir formakavuşurlar. Referans vektörlerine, giriş vektörlerinin dağılımına uygun bir ilk atamayapıldığında öğrenme katsayısı ve komşuluk değişkeni daha küçük bir değerlebaşlatılabilir. Bu da algoritmanın öğrenme hızını artırır.4) Uzaklık ölçüsü:SOM algoritmasında giriş vektörleriyle referans vektörleri arasındaki uzaklık, ökliduzaklığının karesi ile ifade edilmektedir. Ancak, öklid uzaklığı yerine başka uzaklıkölçüleri de kullanılabilir: Minkowski ölçüsü, city-block uzaklığı gibi. Bazı çalışmalardauzaklık ölçüsü yerine vektör çarpımı kullanılmıştır. Vektör çarpımı kullanıldığında, enbüyük çarpım değerine sahip olan nöron, kazanan nörondur.Bununla ilgili SOM algoritmasında değişiklik yapmak gerekir.5) Öğrenme katsayısı ve Komşuluk değişkeni:Öğrenme katsayısı 0 ile 1 arasında bir değerle başlamalı ve döngü arttıkça 0’ayaklaşmalıdır. Komşuluk değişkeni, çıkış katmanındaki dizilime uygun büyük bir değerlebaşlamalı ve döngü ilerledikçe azaltılmalıdır.
  9. 9. SOM AĞININ KULLANIM ALANLARI1. Verilerin kümelenmesi ve görselleştirilmesi açısından önemlidir.2. Çok boyutlu veriler iki boyutlu haritaya indirgenir.3. Görüntüleme alanında kullanılmaktadırlar. Başlıca kullanım alanları;  SınıflandırmaProblemleri(örnek:http://www.cis.hut.fi/research/somresearch/worl dmap.html)  Görüntü Tanıma  Örüntü Tanıma  Ses Tanıma(örnek:http://research.ics.aalto.fi/ica/cocktail/cocktail_en.cgi)  Veri Sıkıştırma  Çevre ModellemesiPROJE AŞAMALARIProjeye ilk etapta 500 tane film verisinin yıl bilgisine, puan bilgisine, yönetmen bilgisine,başrol oyuncusunu kadın erkek olma özelliklerine göre som algoritması kullanarak ağeğitimine başladık. Ağ eğitimi sonucunda film türlerine göre kümeleme yapmasını amaçladık.Ve film türleri çıktılarının doğru oranda kümelenmesini amaçladık. Fakat proje kapsamındabazı zorluklarla karşılaşıldı bunlardan en önemlisi veri kümesini doğru verilerden seçmekti.Film verilerini ilk etapta doğru seçmediğimizden dolayı 1 haftalık eğitim sonuç vermedidanışman hocamızın desteğiyle veri kümesini nasıl oluşturacağımız konusunda daha netbilgiye ulaştık ve veri kümemizi 1040 film verisinden oluşturduk. Bu veri kümesinde 7 farklıfilm türüne yer verdik ve ağımızı som algoritmasıyla eğitmeye başladık.
  10. 10. Ağımızın eğitiminde 4 özellik yani (ülke , renk bilgisi,yönetmen ve tarih bilgisi) ile ağıneğitimini gerçekleştirdik ve amacımız test verilerinden doğru kümeleme elde etmek ve bunusom algoritmasıyla gerçekleştirmek.Yapılan çalışmalar;Som algoritmasında ağ eğitimi için 4 topoloji bulunmaktadır ;Hextop, Gridtop, Randtop, Tritop topolojileridir.Biz projemizde ağ eğitiminde başarı doğru oranının daha iyi bir sonuç vermesi için sık sıkdenemelerimizde bu topolojileri kullanarak her eğitim sonuçlara bu topolojilerin nasıl etkiettiğini gözlemledik ve bunları raporumuzda sunmaya çalıştık ayrıca ağ eğitiminde sadecetopolojileri değiştirmekte kimi zaman sonuç vermedi bunun içinde sık sık test verilerimizi veağ eğitimi için farklı değerler kullanarak daha iyi sonuca ulaşmak için denemelerde bulunduk. 1) Xls dosyamızdan 2 ile 1040 arasındaki verileri ağın eğitimi için kullandık ve hextop topolojisini kullandığımızda daha iyi kümele yaptı ve burada ağ eğitimi için selforgmap ağ eğitim fonksiyonu kullandık. 2) Xls dosyası içerisindeki verilerden 2-40 verilerini test verisi ve 41-1040 arası verilerimizi de ağ eğitimi için kullandık selforgmap ağ eğitim fonksiyonunda 1x10 grid topolojisi ile 1. Sonucumuza göre kümeleme daha başarılı bir sonuç elde ettik. Aşağıdaki adımlarda 4 özellik alınarak yapılan eğitim sonucunda elde edilen sonuçlar; 3) 1x2 lük hextop topolojisi kullanarak kümeleme başarımız önceki sonucumuza oranla düştü. 4) 1x3 lük hextop topolojisi için kümeleme başarısı bir öncekine göre daha başarılı 5) 1x4 lük hextop topolojisi için kümeleme başarısı 4. değere göre daha iyi kümeledi ve renk tonları daha iyi sonuca yansıdı 6) 3x4 lük hextop topolojisi ile kümele önceki sonuclara göre daha kötü sonuc verdi 7) 3x4 lük grid topolojisi ile kümeleme hextop topolojine göre daha kötü kümeleme sonucu vermiştir. Ağ eğitimi için özellik sayısını 5 e çıkardığımızda ve 1x4 lük hextop topolojisini kullandığımızda elde ettiğimiz başarı oranı kümeleme belirgin olarak daha iyi sonuç verdiği gözlemlenmiştir.özellik sayısı 5 ve 1x15 lik hextop topolojisi ile kümeleme 1x4 topolojiye göre daha kötü kümeleme yaptığı görülmüştür.
  11. 11. 8) 100-1000 arasındaki verileri eğitim için kullandık ve 1020 ile 1040 arasındaki verileri de test verileri olarak aldıgımızda ve 1x7 lik hextop topolojini kullanarak kümeleme daha başarılı oldu 1x15 lik hextop topolojisine göre.Bu sonuçlar göstermiştir ki; som algoritmasıyla sınıflandırma işleminde elde edilen neticeleregöre kümeleme işleminde hextop topolojisi diğer topolojilere göre daha iyi sonuçlarvermektedir ve ayrıca kümeleme işleminde eğitim aşamasında verilerin seçimi önemli birkonudur ve tüm ağı etkilemektedir.Türü siyah-beyaz (bw) olan filmlerin gruplamasını yaptık ilk 120 veri için 1x5 lik hextoptopolojisi kullanarak elde edilen sonuçlar
  12. 12. Türü siyah-beyaz (bw) ve renkli türdeki veriler olan filmlerin gruplamasını yaptık ilk 1000veri için 1x5 lik hextop topolojisi kullandık ve 1000-1025 arsındaki verileri de test verisiolarak kullandık ve aşağıdaki sonuçları elde ettikŞekil-1 deki resimde siyah-beyaz türünde girilen drama verilerinde input2 için siyah verilerindaha yoğun olduğu görülmekte bu veri kümesini genişletip ve ayrıca renkli film tür bilgisinegöre de gruplama yaptığımızda şekil-2 de karşılaştığımız sonuç siyah bölgenin azaldığınıgöstermektedir.
  13. 13. Amerika’da çekilmiş filmlerin yıllara göre dağılımı üzerine bir kümeleme işlemi yapıcaz.Fransa’da çekilmiş filmlerin yıllara göre dağılımı üzerine bir kümeleme işlemi yapıcaz.Buradaki kümelemede 1930 dan önce fransada çekilen filmler amerika’da çekilen filmlerdendaha az olduğu görülmektedir.Burda filmlerin yıl ağırlıkları baz alarak kümeleme yapılmıştır.
  14. 14. Amerika’ da çekilen filmlerin yıllara göre kümeleme işlemiFransa’ da çekilen filmlerin yıllara göre kümeleme işlemiSonuç olarak grafiğe bakarak amerika’da ve Fransa arasındaki filmlerin kümelenmesinigörüyoruz.
  15. 15. Girilen tüm verilerin yıl türüne göre filmlerin kümelenmesiGirilen tüm verilerin yıl türüne göre filmlerin kümelenmesi
  16. 16. %som algoritmasıyla film analizi kodclear allclc%excel dosyasındaki verilerin okunması%içerik değerleri num, her bir hücre%değeri txt ve her ikisinin birleşimi%raw değişkeninde tutulmaktadır.[num,txt,raw] = xlsread(ersinvahap.xls);%Verilerin rastgele karıştırılması%için kullanılan özelliki = randi(size(num,1),size(num,1),1);%cell formatındaki değişkenin%double türe dönüştürülmesi%Giriş ve çıkışların oluşturulmasıTarget = num(i,1); % birinci sütun hedefFeature = num(i,2:5); % ikinci ve besinci sütunlar özellik yani inputlar%giriş ve çıkış eğitim ve test vektörlerinin oluşturulmasıtraininput = Feature(100:1000,:);targetinput = Target(100:1000,:);
  17. 17. testinput = Feature(1020:1040,:);testoutput = Target(1020:1040,:);sayac=1;%Ağın oluşturulmasufor v=1:3; for e=1:3; pos = randtop(v,e);net = selforgmap([v e],topologyFcn,hextop);%net = newsom(traininput,[v e],randtop);%[net,tr] = train(net,traininput);plotsomplanes(net) % grafikte ağın eğitiliş eğrisi gösterimi%plotsomtop(net); % grafikte ağın eğitiliş eğrisi gösterimisayi=int2str(sayac);mat=.mat;savefile=strcat(sayi,mat);save(savefile, net)%load(71.mat,net)%Ağın test verilerine göre çıkış üretmesi%out = vec2ind(net(traininput));
  18. 18. %Test giriş değerlerine göre eğitilen ağdan elde edilen çıkış değerlerinin%karşılaştırılması%sonuc = out - targetinput;%Doğru bulunanların toplam değeri%dogru = 0;%for k =1:size(sonuc,2) % if(sonuc(k) == 0)% eğer sonuc sıfır cıkarsa dogru sonuc % dogru = dogru + 1;% end%end%Doğru ve yanlış olanların yüzdesel değerleri%basaridogru(v,e) = dogru*100 / size(sonuc,2);%basariyanlis(v,e) = (size(sonuc,2)-dogru)*100 / size(sonuc,2); sayac=sayac+1; endend
  19. 19. aşağıdaki bilgiler excel’e girmiş olduğumuz bilgilerin sayısallaştırılmasısıra yönetmen1 aldrich robert2 bergman ingmer3 allen woody4 godard jean luc5 steven spielberg6 lang fritz7 lubitsh ernst8 lumet sidney9 minnelli vicente10 ozu yasujiro11 preminger otto12 ray nicholas13 ray satyajit14 renoir jean15 resnais alain16 rivette socques17 rahmer eric18 rossellini roberto19 russel ken20 scorsese martin21 sidney george22 siodmak robert23 sokurov aleksandr24 steven spielberg25 stone oliver26 tavernier bertnard27 tourneur jacques28 trauffaut françois29 tsui hark30 vidor king31 visconti luchino32 von stenberg33 wajda andrzej34 walsh raoul35 warhol andy36 weir peter37 wellman william38 wenders wim39 wilder billy40 wise robert41 wiseman frederick42 wyler william43 zemeckis robert
  20. 20. 44 zinneman fred45 almador pedro46 altman robert47 antonioni michelangelo48 boorman john49 borzage frank50 brokhage stan51 bresson robert52 bunuel luis53 copra frank54 chabrol claude55 chaplin charles56 clair rene57 coppola francis58 corman rager59 cronenberg david60 cukor george61 curtiz michael ülke tür renklilik1 1 war 1 bw2 us 2 adventure 2 col3 france 3 comedy 3 bw-col4 canada 4 crime 45 germany 5 drama6 ıtaly 6 thriller7 7 romance8 uk9 denmark10 honkong11 australia12 belgiue13 chile14 india15 ireland16 japan17 mexico18 netherland19 poland20 russia21 spain22 sweden23 switzerland24 turkey25 ussr

×