Sunum

1,838 views

Published on

evrimsel algoritmayla müzik

Published in: Spiritual, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Sunum

  1. 1. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Mehmet Melih Karcı<br />Ali Çağatay Yüksel<br />
  2. 2. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Problem: Müzik Besteleme<br />
  3. 3. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Müzik<br /><ul><li>Sanatın sesler ile uygulanan bir dalı
  4. 4. Seslerin belli aralık ve sürelerde ardı ardına tekrar etmesiyle oluşur</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Müzik<br /><ul><li> Nota
  5. 5. Oktav
  6. 6. Vuruş
  7. 7. Tempo</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Müzik Besteleme<br /><ul><li> Müzik yaratma
  8. 8. Sınırı yok
  9. 9. Belli bir algoritması yok
  10. 10. Kulağa hoş gelmeli</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yazılımla Müzik Besteleme<br /><ul><li> Yazılımın güzel müziği ayırt etmesi zor
  11. 11. İnsanlar tarafından beğenilmiş müzikler üzerinden besteleme çözüm olabilir</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yazılımla Müzik Besteleme<br /> Belli bir sanatçının şarkılarının giriş olarak verildiği, bu şarkılar üzerinden müzik besteleyen program<br />
  12. 12. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yazılımla Müzik Besteleme<br /><ul><li> Evrimsel Algoritma
  13. 13. Genetik Algoritma
  14. 14. Uygunluk fonksiyonu için Yapay Sinir Ağları</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Evrimsel Algoritma<br /><ul><li> Charles Darwin’in önerdiği biyolojik evrimsel modele dayanır
  15. 15. Mutasyon, üreme, rekombinasyon, seçilim gibi biyolojik evrim mekanizmalarından esinlenilmiştir
  16. 16. Uygulama türleri: genetik algoritma, evrimsel programlama, evrimsel strateji, genetik programalama.</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br /><ul><li> Bir tür evrimsel algoritma
  17. 17. Doğadaki evrimi taklit eder
  18. 18. Sürekli olarak tekrar eden bir seçilim süreciyle probleme uygun çözüm arar</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br /><ul><li> Adaylar probleme uygun yaratılmış uygunluk fonksiyonuna sokulur
  19. 19. Uygunlukları düşük olanlar seçilim sırasında elenir
  20. 20. Elde kalan adaylar üzerinde mutasyon ve çaprazlama işlemleri uygulanır
  21. 21. Yeni adayların uygunluk değerleri okunup döngü baştan başlatılır </li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Uygunluk Fonksiyonu<br /><ul><li> Nüfus içindeki bireylerin çözüm için uygun olup olmadığına karar verir
  22. 22. Seçilimde elenecek adayları belirler
  23. 23. Problemin yapısına ve istenen çözüme uygun tasarlanmalıdır</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Uygunluk Fonksiyonu<br /><ul><li> Yaratılan şarkıların müzikal bir düzene sahip olup olmadığını belirlemesi lazım
  24. 24. Kulağa güzel gelecek müziği belirlemesi lazım</li></ul>Çözüm: Yapay sinir ağları kullanarak başka bir sanatçının müziğiyle karşılaştırma<br />
  25. 25. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yapay Sinir Ağları<br /><ul><li> İnsan beynine benzer çalışırlar
  26. 26. Deneyimle öğrenirler
  27. 27. Karmaşık hesaplar gerektiren sorunlara çözüm getirirler
  28. 28. Kullanım alanları arasında desen ve düzen tanıma vardır</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yapay Sinir Ağları<br /><ul><li> Uygunluk fonksiyonunda yaratılan müziğin değerlendirilmesi için kullanılıyor
  29. 29. Yinelenen sinir ağları kullanıldı</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yazılım<br /><ul><li>Python 2.6 programlama dili kullanıldı
  30. 30. PyBrainkütüphanesi
  31. 31. Minguskütüphenesi
  32. 32. SQLite
  33. 33. EclipseHelios (PyDev ile birlikte) ve Vim ortamında yaratıldı
  34. 34. Versiyon takibi için Git kullanıldı</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yazılım<br /><ul><li> Platformdan bağımsız
  35. 35. Veri tabanı tek bir dosya, lokal çalışıyor
  36. 36. Başka uygulamalara adaptasyonu kolay, kütüphane olarak kullanılabilir</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni<br />Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  37. 37. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni<br />Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  38. 38. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Uygunluk Fonksiyonu<br /><ul><li> Yapay sinir ağları kullanıldı
  39. 39. Eğitilen ağ veri tabanında tutulup daha sonra tekrar kullanılabiliyor
  40. 40. Eğitilirken giriş olarak RTTL formatındaki şarkıları alıyor</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Uygunluk FonksiyonuYapay Sinir Ağı<br />No<br />N i<br />So<br />S i<br />N i +1<br />S i + 1<br />Hedef Çıkış: <br />
  41. 41. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Uygunluk FonksiyonuYapay Sinir Ağı<br /><ul><li> Sinir ağını eğitmek için Beatles grubunun şarkıları kullanıldı </li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />RTTL<br /><ul><li> Nokia tarafından cep telefonu melodisi transfer etmek için kullanılan bir format</li></ul>“letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6,8e6,e6,8d6,8d6,8c6,2c6,e6,8e6,f6,8e6,8e6,d.6,8e6,8d6,2c6”<br />
  42. 42. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />RTTL<br /><ul><li> Nokia tarafından cep telefonu melodisi transfer etmek için kullanılan bir format</li></ul>“letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6,8e6,e6,8d6,8d6,8c6,2c6,e6,8e6,f6,8e6,8e6,d.6,8e6,8d6,2c6”<br />
  43. 43. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />RTTL<br /><ul><li> Nokia tarafından cep telefonu melodisi transfer etmek için kullanılan bir format</li></ul>“letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6,8e6,e6,8d6,8d6,8c6,2c6,e6,8e6,f6,8e6,8e6,d.6,8e6,8d6,2c6”<br />
  44. 44. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />RTTL<br /><ul><li> Nokia tarafından cep telefonu melodisi transfer etmek için kullanılan bir format</li></ul>“letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6,8e6,e6,8d6,8d6,8c6,2c6,e6,8e6,f6,8e6,8e6,d.6,8e6,8d6,2c6”<br />
  45. 45. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />RTTL<br /><ul><li> Nokia tarafından cep telefonu melodisi transfer etmek için kullanılan bir format</li></ul>“letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6,8e6,e6,8d6,8d6,8c6,2c6,e6,8e6,f6,8e6,8e6,d.6,8e6,8d6,2c6”<br />
  46. 46. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />RTTL<br /><ul><li> Nokia tarafından cep telefonu melodisi transfer etmek için kullanılan bir format</li></ul>“letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6,8e6,e6,8d6,8d6,8c6,2c6,e6,8e6,f6,8e6,8e6,d.6,8e6,8d6,2c6”<br />
  47. 47. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Neden RTTL?<br /><ul><li> Şarkıları yazılımda kullanabileceğimiz hale getirmemiz kolay
  48. 48. İnternette kolayca ulaşılabilen büyük arşivler
  49. 49. Genelde şarkıların en akılda kalan, belirgin kısımları kullanılmış</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Uygunluk FonksiyonuYapay Sinir Ağı<br /><ul><li> Eğitmek için kullandığımız şarkılar RTTL formatında
  50. 50. Backpropogation yöntemiyle eğitildi
  51. 51. Nota ve süre değerleri yapay sinir ağının girişine ölçeklendi</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni<br />Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  52. 52. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni<br />Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  53. 53. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni Evrim<br /><ul><li> Programın çalışması için gerekli parametrelerin girilmesi
  54. 54. Uygunluk fonksiyonu için yapay sinir ağının seçilmesi</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni<br />Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  55. 55. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  56. 56. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6<br />
  57. 57. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6<br /> Nota Oktav Süre<br />8 C 6<br />
  58. 58. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6<br /> Nota Oktav Süre<br />8 C 6<br />
  59. 59. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6<br /> Nota Oktav Süre<br />8 C 6<br />
  60. 60. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6<br /> Nota OktavSüre<br />8 C 6<br />
  61. 61. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />letitbe:d=4,o=5,b=112:16g.,8g,g,8g,a,8e,8g,g.,8c6,d.6,e6<br /> Nota Oktav Süre<br />g.<br />
  62. 62. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Başlangıç Durumuna Getirme (initialize)<br /><ul><li> Kullanıcının girdiği sayıda aday yaratılır
  63. 63. Kromozomlar rastgele yaratılmıştır
  64. 64. Başlangıç durumuna getirilen nüfus evrime hazırdır
  65. 65. Sonraki aşamada uygunluk fonksiyonuna sokulur</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Seçilim (selection)<br /><ul><li> Uygunluk fonksiyonundan aldıkları puana göre çözüme ne kadar yakın oldukları belirlenir
  66. 66. Adaylar puanlarına göre sıralanır ve düşük puanlılar elenir.
  67. 67. Elenenlerin sayısı toplam adayların yarısıdır.</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Çoğaltma (reproduction)<br /><ul><li> Kalan başarılı adaylar üzerinde çoğaltma işlemi yapılır
  68. 68. Adaylar üzerinde yapılan operasyonlar;
  69. 69. Çaprazlama
  70. 70. Mutasyon</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Çaprazlama<br /><ul><li> Anne ve babadan alınan farklı genomların farklı yöntemlerle birleştirilmesiyle oluşur.
  71. 71. 3 çeşit çaprazlama tekniği kullanıldı;
  72. 72. Tek noktalı ( singlepoint )
  73. 73. İki noktalı ( doublepoint )
  74. 74. Tekbiçim ( uniform )</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Çaprazlama<br />Tek Noktalı<br /><ul><li> Çocuk kromozomlar anne ve babanın tek bir genomunun yer değiştirilmesiyle oluşturulur</li></ul>Anne<br />Baba<br />Çocuklar<br />
  75. 75. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Çaprazlama<br />İki Noktalı<br /><ul><li> Anne ve baba kromozomlar iki noktadan ayrılıp üçe bölünür. Sonuç olarak çocuk kromozomlar iki anneden bir babadan veya tam tersi şekilde genomlar alıp oluşturulur.</li></ul>Anne<br />Baba<br />Çocuklar<br />
  76. 76. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Çaprazlama<br />Tekbiçim<br /><ul><li> Anne ve baba üzerinde ilerlerken rastgele noktalardan kesilip alınan genomlar çocukta birleştirilir.</li></ul>Anne<br />Baba<br />Çocuklar<br />
  77. 77. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Mutasyon<br /><ul><li> Mutasyon işlemi elimizde bulunan kromozomlar üzerinde rastgele değişiklik yapma üzerine kuruludur.
  78. 78. 4 çeşit çaprazlama tekniği kullanıldı;
  79. 79. Takas (swap)
  80. 80. Değiştirme (replace)
  81. 81. Karıştırma (scramble)
  82. 82. Tersine Döndürme (inversion)</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Mutasyon<br />Takas<br /><ul><li> Rastgele iki noktadaki genlerin yerleri değiştirilir.</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Mutasyon<br />Değiştirme<br /><ul><li> Rastgele bir noktadaki gen rastgele başka bir genle yer değiştirir</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Mutasyon<br />Karıştırma<br /><ul><li> Kromozomdaki belli bir genom içindeki gen sırası değiştirilir</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Mutasyon<br />Tersine Döndürme<br /><ul><li> Kromozomdaki belli bir genom içindeki gen sırası tersine çevrilir</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Uygunluk sırasına göre dizilim<br />1 2 3 4 5 6 7 8<br />
  83. 83. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Uygun olmayan yarısı elenir<br />1 2 3 4 5 6 7 8<br />
  84. 84. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Adaylar ikişer ikişer seçilir ve çaprazlanır<br />
  85. 85. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Üzerinde çalıştığımız bu 4 aday mutasyona uğrar<br />
  86. 86. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Üzerinde çalıştığımız bu 4 aday mutasyona uğrar<br />
  87. 87. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br />Nüfus ilk değerine geri dönene kadar bu işlem tekrar edilir<br />
  88. 88. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Genetik Algoritma<br /><ul><li> Yeniden yaratılan adaylar tekrar uygunluk fonksiyonuna sokulur ve döngü baştan başlar
  89. 89. Bu aşamalar veri tabanına kaydedilir</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Veri Tabanı<br /><ul><li>SQLite
  90. 90. Platform bağımsız
  91. 91. Sunucu gerektirmiyor
  92. 92. Konfigürasyon kolaylığı
  93. 93. Tek dosya üstünden çalışıyor</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Veri Tabanı<br /><ul><li> Tablolar
  94. 94. neural_networks
  95. 95. evoltions
  96. 96. genomes</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni<br />Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  97. 97. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Yeni<br />Evrim<br />Genetik Algoritma<br />Kullanıcı <br />Uygunluk Fonksiyonu<br />Sonuç<br />
  98. 98. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Program Çıktısı<br /><ul><li> Programın evrim döngüsünde çalışırken veri tabanına kaydettiği sonuçlar ara yüzden erişilebilir.
  99. 99. Program çıkışı olarak bu sonuçlardan yeterli görülen alınabilir</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Program Çıktısı<br /><ul><li> Veri tabanında kayıtlı olan RTTL tipindeki adaylar, Mingus kütüphanesi kullanılarak MIDI formatına çevrilir
  100. 100. Midi formatındaki çıkışlar dinlenebilir haldedir</li></ul>RTTL<br />.midi<br />
  101. 101. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />DEMO<br />
  102. 102. Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Sonuçlar<br /><ul><li>Nüfus büyüklüğünün etkisi
  103. 103. Genetik operatörlerinin kullanımının etkisi
  104. 104. Genel sonuçlar</li></li></ul><li>Evrimsel Algoritmayla Müzik|Bitirme Ödevi<br />Teşekkürler<br />

×