Evrim kuramının sadece biyolojik bilimlerdeki düşünüşe değil, başka alanlardaki yaklaşımlara da ne kadar etkisi olduğunun en ilginç örneklerinden biri bilgisayar bilimlerinin bir parçası olan evrimsel programlama. Evrim kuramının bu alandaki uygulamalarının neler olduğunu, siz Evrim Çalışkanları dostlarının da en az bizim kadar merak edeceğinizi düşündük. Pardus geliştiricilerinden, biyonanoteknoloji ve bilgisayar bilimleri alanında doktora öğrencisi A. Murat Eren‘den rica ettik, bizler için yazdı:
İnsan algısının ve hayal gücünün daraldığı bir çok noktadan üç tanesinin temelinde şunların yattığını düşünüyorum:
-
- 1. Sınırlı paralel düşünme kabiliyeti (ve dolayısıyla paralel süreçlerin gücünü kestirmenin zorluğu).
- 2. Rasgeleliğin küçümsenmesi (ve dolayısıyla her makul sonucun arkasında bilincin aranması eğilimi).
- 3. Karmaşık tasarımların basit süreçlerin bir sonucu olamayacağı düşüncesi.
Tartışılabilecek onlarca dar boğazdan bu üç taneyi seçmemin sebebi üçünün de, evrim kuramının biyolojik çeşitliliği açıklamak için ortaya koyduğu mekanizmanın çok temel bileşenleri olması. Dolayısıyla bu üç algı pürüzü bir anlamda insanların evrim kuramının gücünü anlayabilmelerini de zorlaştırıyor.
Bu üç tanenin bir diğer ortak noktası ise bilgisayar bilimleri alanında faaliyet gösteren kimselerin, karşılaştıkları klasik problemler ve onların çözümleri sayesinde daha kariyerlerinin başlangıcında kendilerini bu engellerden azat eden bir vizyona kavuşmaları. Belki biraz da bu avantaj yüzünden bilgisayar bilimleri, evrim kuramını anlama ve ondan en etkin şekilde yararlanma noktasında biyolojinin hemen arkasında.
Birisi evrim kuramının beni ilgilendiren kısmını ifade etmemi istese şöyle derdim: “evrim kuramına göre tanık olduğumuz biyolojik çeşitlilik, basit süreçlerin paralel şekilde işlemesi esnasında rasgeleliğin çeşitli noktalarda devreye girmesi ve ortam koşullarının dayattığı uygunluk kriterlerinin bir denge oluşturması ile ortaya çıkmış“. Daha soyut, daha az kaba ve evrim kuramını bilgisayar bilimleri içerisinde de yer edinebilir şekilde yeniden ifade etmeye çalışacak olsam ise şöyle derdim: “her bir canlı türü dünya probleminin olası çözüm uzayından evrim kuramı tarafından bulunup çıkarılmış optimum çözümlerdir“. Bu yaklaşımım şüphesiz evrim kuramını bilgisayar ortamında doğru tanımlanmış problemlerin çözümü için kullanılabilir bir kıvama getirirdi.
Peki gerçekten “basit süreçler“, “paralel işleme” ve “rasgelelik” seçilimin diktatörlüğü altında harmanlandığında ortaya dahiyane şeyler neredeyse kendiliğinden çıkabilir mi?
Problemleri ardışık adımlarla çözme alışkanlığımız paralel çözümleri tezahür etmekte güçlük çekmemize sebep oluyor. Sınırlı paralel düşünme kabiliyetinin, yanıtı aslında çok basit olan bir soruyu nasıl bir bulmaca haline getirebildiğine dair örnek olarak klasik bir problem olan “nehri geçmeye çalışan yamyam ve misyonerler” verilebilir. Soru şöyle: 3 yamyam ve 3 misyoner bir nehri geçmek zorundadır. Bunu yaparken her seferinde yalnız iki kişi taşıyabilen bir sandal kullanmaları gereklidir. Ayrıca sandalı her turda bir kişi geri getirmelidir. Herhangi bir kıyıda yamyamların sayısı misyonerlerin sayısından daha fazla olursa yamyamlar misyonerleri yemektedir. Dolayısıyla karşıya geçiş işlemi öyle bir düzen ile tasarlanmalıdır ki misyonerler ve yamyamlar -kimse birbirini yemeden- karşı kıyıya geçebilsinler (bulmacanın bir benzetimini buldum, dilerseniz devam etmeden önce çözmeyi deneyebilirsiniz).
Bu problemin bilgisayar yoluyla çözümü çok basit. Eğer biz de olası karşıya geçiş düzenlerinin tamamını aynı anda düşünüp paralel şekilde işletebilseydik bu çözüm uzayı içerisinde herkesin sapasağlam karşıya geçtiği düzeni çok kısa sürede seçip çıkarabilirdik … ve muhtemelen dünya şampiyonu satranç ustası Garry Kasparov da IBM’in Deep Blue isimli bilgisayarına satrançta yenilmezdi. Hoş, Kasparov daha sonra yenilgiyi kabul etmemiş, IBM’in hile yaptığını, çünkü bilgisayarın kendisine karşı “derin bir zekâ ve yaratıcılık” ile oynadığını hissettiğini söylemişti… O zamanlar birileri Kasparov’un bu iddiasını, insanın yalnızca kendisine yakıştırdığı kurnazlık ve dehanın, tüm olasılıkların çok uzun adımlar boyunca denenip değerlendirilebildiği koşulda bir makine tarafından dahi taklit edilebilecek bir yetenekten ibaret olabileceği fikrine muhalefet etme arzusuyla ortaya çıkmış hüzünlü bir tepki olarak gördü mü, bilemiyorum.
(Fotoğraf, Louie Psihoyos / Corbis)
Aradan geçen 12 yılda bilgisayarların hesapsal kabiliyetlerindeki parabolik ivmeye bağlı olarak bazı şeylere şaşırmamayı öğrendik…
Satranç gibi kuralları ve çözümü çok belirgin olan bir oyun için uzun adımlar boyunca deneme ve değerlendirmeyi paralel şekilde yapabilmenin sunduğu avantajı görmek zor olmasa da evrim kuramının gücünü anlamak için bunu görmeyi başarmış olmak yeterli değil ne yazık ki. Çünkü satranç oyununun kuralları sayesinde “amaç” ve “kazanma durumu” belli olduğu için, paralel devam eden süreçlerden hangilerinin bu hedefe yakınsadığı kolayca kontrol edilebilir iken evrim, tamamen amaçsız. Buradan yola çıkarak “sonucun ne olması gerektiğini bilen bir mimarın olmadığı durumda paralel süreçlerin marifeti pek bir anlam ifade etmez” denebilir. Bu düşünce, kısmen doğru olsa da, mevzu evrim olduğunda mimarın potansiyelini abartırken rasgeleliliğin gücünü küçümseyen, insanca, fakat hatalı bir varsayımın sonucu.
Son söylediğim şeyin bir diğer telaffuzu ise bilincin olmadığı yerde rasgeleliğin makul sonuçlara vesile olabileceği.
Rasgeleliğin nelere kadir olabildiğine uzun yıllar boyunca bilgisayar grafikleri üzerine çalışmış olan Karl Sims’in 1990 yılında yaptığı ilham verici bir çalışmasından yola çıkarak yaklaşmak istiyorum. Sims, “Bilgisayar Grafikleri için Yapay Evrim” isimli çalışmasında Lisp programlama dilinde sembolik ifadelerin mutasyonu yolu ile iki boyutlu görüntüler oluşturan bir evrim benzetimi uygulaması hazırlamış. Öyle ki, Sims’in uygulamasının oluşturduğu resimlerin herhangi bir pikselindeki renk bilgisi bir takım eşitliklerle hesaplanıyor ve bu eşitliklerin kaynağı da standart Lisp fonksiyonları, vektör transformasyonları, yapısal gürültü (noise) üreticileri ve görüntü işleme fonksiyonları gibi dar bir ifade setine dayanıyor. Set içerisinde yer alan fonksiyonların her birisi son derece basit işler gerçekleştiriyorlar ve tek başlarına karmaşık işlevleri yok. Lisp biliyor olduğunuzu ya da aşağıdaki fonksiyonların her birinin ne iş yaptığını tam olarak anlayacağınızı varsayıyor değilim, fakat basitliklerine dair bir miktar da olsa fikir vereceğini tahmin ettiğim için fonksiyon listesine yer vermek istedim:
+, -, *, /, mod, round, min, max, abs, expt, log, and, or, xor, sin, cos, atan, if, dissolve, hsv-to-rgb, vector, transform-vector, bw-noise, color-noise, warped-bw-noise, warped-color-noise, blur, band-pass, grad-mag, grad-dir, bump, ifs, warped-ifs, warp-abs, warp-rel, warp-by-grad.
Bu listede yer alan her bir fonksiyon belirli sayıda parametre alıp bir x,y koordinatında yer alan piksel için renk bilgisi hesaplıyor.
Sims, bu ifadelerin ortaya çıkardığı görüntüleri insanlara 16 değişik monitörde gösteren bir sistem hazırlıyor. Arka planda çalışan uygulama ise izleyicilerin önünde daha çok vakit geçirdiği monitörlerdeki resimlerin daha çok tercih edildiği varsayımı ile, bu ilgi çeken resimlerin mesulü olan Lisp ifadelerini çiftleştirerek ve ortaya çıkan ifadeler üzerinde rasgele mutasyonlar ifa ederek yeni nesil ifadeler, dolayısıyla yeni nesil resimler oluşturuyor. İzleyicilerin ilgilenmediği resimleri ortaya çıkaran Lisp ifadeleri ise haliyle yavaş yavaş bu döngünün dışında kalıyor ve siliniyorlar. Bu süreç başta basit ve kısa olan ifadelerin adım adım daha karmaşık -ya da daha az karmaşık- hale gelmesini ve bir anlamda, hasbelkader orada bulunan ve bu görüntülere dair tercihleri yapan insanların hoşuna giden bir noktaya doğru evrilmesini sağlıyor.
Sims’in, 10 ila 40 nesil sonra ortaya çıkan görüntülere verdiği örneklerden birisi şu:
Bir diğer örnek de şu:
Daha önce bahsettiğim set dışında hiç bir fonksiyonun kullanılmadığı, tamamen rasgele mutasyonlar ile ortaya çıkmış olan ve yukarıdaki görüntüyü oluşturan Lisp ifadesi de şöyle:
(cos (round (atan (log (invert y) (+ (bump (+ (round x y) y) #(0.46 0.82 0.65) 0.02 #(0.1 0.06 0.1) #(0.99 0.06 0.41) 1.47 8.7 3.7) (color-grad (round (+ y y) (log (invert x) (+ (invert y) (round (+ y x) (bump (warped-ifs (round y y) y 0.08 0.06 7.4 1.65 6.1 0.54 3.1 0.26 0.73 15.8 5.7 8.9 0.49 7.2 15.6 0.98) #(0.46 0.82 0.65) 0.02 #(0.1 0.06 0.1) #(0.99 0.06 0.41) 0.83 8.7 2.6))))) 3.1 6.8 #(0.95 0.7 0.59) 0.57))) #(0.17 0.08 0.75) 0.37) (vector y 0.09 (cos (round y y)))))
Her bir nesilde rasgeleliğin her yöne gelişi güzel saldırması ile meydana çıkan görsel kaos, seçilimin rehberliğinde bilinçli gibi görünen bir süreci besliyor ve kural setini tanımlayan kişinin baştan öngörmediği –adeta bir tasarımcının elinden çıkmış gibi görünen- sonuçlar ortaya koyuyor. Tamamen teknik detay olarak gördüğüm için açıklamaya değer bulmadığım “çiftleşme“, “rasgele mutasyon” gibi adımları Sims’in bilgisayar programında nasıl gerçeklediğini merak ediyorsanız makalenin tamamına göz atabilirsiniz (http://www.karlsims.com/papers/siggraph91.html).
Sims’in çalışmasının güzel resimler dışında bana göre iki önemli sonucu daha var. Birincisi rasgeleliğin, “öngörülmeyenin” de denenmesi için yabana atılmaması gereken bir itki olduğu ve uzun vadede bilinç ile karıştırmaya yatkın olduğumuz makul sonuçları ortaya çıkarabileceği. İkincisi ise çok normal olan beklentilerimizin aksine, bir tasarımın karmaşık olmasının ne bu tasarımı ortaya çıkaran süreçlerin ne de bu süreçler içerisinde kullanılan araçların karmaşık olmasını gerektirmediği. Bu iki sonuç da evrim kuramının gücünü aslında nereden aldığına dair düşünmeye başlamak için ciddi ip uçları veriyor.
Peki evrim kuramı gerçekten problem çözme yeteneğine sahip mi? Pratikte gerçek hayat problemlerine uyarlanmışlığı var mı? Bu soruların yanıtları “görünen o ki, evet” ve “evet“. Yazının kalan kısmı bununla ilgili.
Mesleki birikiminin bir sonucu olarak hem paralel süreçler ile neler yapılabileceğini hem de basit kural setleri ile karmaşık sistemler ortaya çıkarılabildiğini pek iyi bilen bilgisayar bilimcilerinin, bilgisayarla problem çözme kabiliyetini bir üst seviyeye çıkarmak ümidiyle evrim kuramına ilgi duymaya başlamaları çok fazla sürmemiş. Evrim kuramının nimetlerinden yararlanan bu tekniklerin tümü, bilgisayar bilimlerinde Evrimsel Hesaplama başlığı altında 80’li yılların sonlarından itibaren artan bir ivme ile incelenmeye başlanmış ve halâ değişik problemlere adapte edilmeye çalışılıyor (erişiminiz varsa ve göz atmak isterseniz bu alandaki çalışmaların yayınlandığı bir çok bilimsel dergiden önde gelen iki tanesinden birisi MIT’den Evolutionary Computation, diğeri de IEEE’den Transactions on Evolutionary Computation).
Bilgisayar bilimlerinin çok uzun süredir değişmemiş olan temel gayesi “optimum çözümler bulan algoritmalar üretmek“. Daha az kaba hale getirmek için bu cümle “optimum çözümleri makul zamanda bulan algoritmalar üretmek“, daha da az kaba hale getirmek için “-yerel minimum/maksimumlarda takılmayan- global optimum çözümleri makul zamanda bulan algoritmalar üretmek” şeklinde revize edilebilir olsa da mevzunun özü “optimum” kelimesinde saklı. “Optimum” denen şeyi bulmanın çok fazla parametre, çok fazla boyut olduğu durumda ne kadar güç olabildiği konusunda yeterince dirsek çürütmüş bir bilgisayar insanının, evrim kuramının çizilen bir sınır içerisinde elde edilebilecek en mükemmel optimum çözümlerin bulunabilmesi için ihtiva ettiği gerekli-yeterli dehayı kaçırması neredeyse mümkün değil. Evrim kuramı bilgisayar bilimleri penceresinden değerlendirildiği zaman, bence, son derece “sezgisel“, son derece “elbette” bir kuram. O kadar ki, eğer biyologlar bu kuramı ortaya atmış olmasalardı bilgisayar bilimleri karmaşık ve çeşitli problemlerin karmaşık olmayan araçlarla çözümü için yöntemler araştırırken benzer bir kuramı çoktan geliştirmiş olabilirdi.
Bilgisayar bilimlerinin Evrimsel Hesaplama’sı tarihi nedenler ve bir takım temel farklar nedeni ile kendi içerisinde evrimsel stratejiler, evrimsel programlama, genetik algoritmalar, genetik programlama gibi farklı dallara ayrılmış olsa da, ortaya çıkan uygulamalarının problem çözümündeki yaklaşımları birbirine benziyor. Hatta akışlarını şu şekilde genellemek mümkün:
-
- 1. i = 0 olarak belirle.
- 2. Rasgele bir P(i) başlangıç popülasyonu üret.
- 3. Popülasyon sabitlenene kadar ya da maksimum i değerine erişilene kadar aşağıdaki adımları tekrarla:
- – P(i) içerisindeki her bir bireyin fit olma durumunu (seçilim değerini) değerlendir,
- – Fit olma değerlerine göre ebeveynler seç,
- – Çiftleşme (crossover) ve rasgele mutasyonlar ile yeni bireyler oluştur ve P(i+1) neslini elde et,
- – i değerini bir arttır.
Yukarıdaki akışın Sims’in çalışmasındaki adımlar ile örtüştüğünü görebildiğinizi tahmin ediyorum. Örneğin, Sims’in çalışmasındaki iki boyutlu görüntüler yukarıdaki akıştaki ‘birey’lere tekabül ediyor (burada meraklı biyolog için bir ayrıntı: iki boyutlu görüntüler fenotiplere, o görüntüleri oluşturan Lisp ifadeleri de genotiplere denk geliyor). Bir bireyin fit olma durumu görüntülerin karşısında vakit geçiren izleyiciler tarafından değerlendiriliyor, karşısında fazla vakit geçirilen bireylerin seçilim değeri yüksek olduğu varsayılıyor ve ebeveyn olarak seçiliyor, ilgi görmeyen görüntülerin ise seçilim değerinin düşük olduğu varsayılıyor ve P(i+1) popülasyonu üzerinde etkileri olmuyor, vesaire.
Bilgisayar bilimlerinin Evrimsel Hesaplama’dan destek alarak üstesinden geldiği pratik problemler arasında veri iletimini maksimuma çıkarmak için optik fiber mikro-tasarımı, optimum akustik özelliklere sahip konser salonu planlanması, süpersonik hava taşıtları için optimum kanat tasarımı, maksimum kapsama alanı için optimum uydu yörüngelerinin hesaplanması, elektrik geçirgenliği olan karbon temelli polimerlerin tasarlanması, elektrik üretimini maksimuma çıkaran optimum rüzgar değirmenlerinin tasarlanması, dizel motorların etkinliğinin arttırılması gibi enteresan çalışmalar var.
Örneğin Boeing firması, Boeing 777’nin motoru içindeki türbin geometrisinin nasıl olması gerektiğine dair hesaplamaları bir de evrimsel algoritmaya devretmeye karar vermiş ve sürecin sonunda elde ettikleri sonuç önceki tasarıma göre %1 yakıt tasarrufu sağlayan bir tasarım imiş (motor ve içindeki bileşenlerin performansını yükseltmek için çalışan mühendis ordusu düşünüldüğünde, eldeki tasarımın %1 yakıt tasarrufu sağlayacak şekilde güncellemenin ne kadar ciddi bir iyileştirme olduğunu tahmin edebilirsiniz). Boeing firması yeni nesil uçakların kanat tasarımlarını da evrimsel hesaplama metotlarına devretmiş.
Bendeniz de, -daha yakın, daha küçük bir örnek olarak- bir süredir destek vektör makineleri (support vector machines) ile moleküler sinyallerin sınıflandırılması için inşa ettiğim modelleri belirlerken kullandığım kernel parametrelerinin optimum değerlerini bulma işini evrimsel hesaplama metotları ile çözülebilecek bir probleme dönüştürmeye çalışıyor ve evrim kuramının nimetlerinden bu şekilde faydalanmaya hazırlanıyorum.
Evrimsel Hesaplama alanının ilgi çekici bir alan olmasının en önemli nedeni biraz da, Barış’ın geliştirdiği bir uygulamanın, verilen bir problemin çözümü için Barış’ın başka türlü bulmayı beklemediği etkinlikteki bir çözümü bulabilmesi olasılığı. Evrimsel Hesaplama şemsiyesi altındaki metotların bunu ne kadar başarılabildiği ziyadesiyle problem bağımlı olsa da, biyolojik çeşitlilik ve biyolojik sistemlerin optimumluğunu en mantıklı şekilde açıklayan evrim kuramının, bilgisayar bilimlerinin platonik “optimum” gayesine yanıt olmaya en çok yaklaşmış çözümleri sunduğu söylenebilir.
A. Murat Eren, New Orleans, ABD’de biyonanoteknoloji ve bilgisayar bilimleri alanında araştırma yapan bir doktora öğrencisi.
İletişim: a.murat.eren [at] gmail.com, web: http://meren.org
Murat tebrik ederim. Hem çok derli toplu hem de bilgilendirici bir yazı olmuş.
Son günlerde Türkiye’de çok tartışılan konulardan birisi evrim.. Yaratılışçıların temel argümanı “inanç” olunca, karşı çıktıkları ilk kavram da “rastgelelik” oluyor. Evrende hiçbir şey “rastgele olamaz, gerçekleşemez” yaklaşımını sergilemezden önce, paralel düşünme yoluyla sorunu tanımlama ve çözmeye yönelmek, en azından bu kuramsal çatıdan hareket etmeye çalışmak gerekiyor, sanırım.
Biliyorsun ben bir Türk Dili ve Edebiyatı öğretmeniyim. Hayatım inanç düzleminde yürüyen metinlerin çevresinde kuruldu. Ben evrendeki yerimizi anlamada “rastgelelik”yaklaşımının iyice anlaşılmasından yanayım. Evrim Türkiye’de öylesine karmaşık bir bilgi yığını haline geldi ki artık işin içinde çıkmak çok güçleşti. Zihin açıcı, berrak yaklaşımlara ihtiyacımız var. Senin yazında da belirttiğin gibi, sadelik, çözüme ulaşmada bugün çok önem taşıyor.
Yamyam-misyoner (ya da kurt-kuzu) paradoksunu çözmüştüm bu arada, lise çağlarında.. Bilim-Teknik alırdık bizler o zaman; hayata ve evrenin sonsuzluğunu merak ederdik.
Zihnine sağlık.. Düşünmeye devam etmeliyiz.
LikeLike
Sevgili Murat,
Bir Oşinograf olarak, deniz tahminleri yapmak için bahsettigin yöntemleri ziyadesiyle kullandığımı belirtmek isterim. Veri Asimilasyonu (bilgisayar simulasyonu ile “gerçeğin” yani gözlemin birlikte değerlendirilip optimum sonucun bulunması) daha doğru deniz tahmini yapmak için “Operational Oceanografi” nin kullandığı önemli aletlerden biri. Doksanların başında Meteoroglardan devşirilen ve oldukça subjective olan “Optimum Interpolation (OI)” metodu, daha sonraları sivri zekalı oşinograf meslektaşlarımın katkılarıyla son derece objective bir duruma getirildi. Bazı istatistiksel kabullenmeler yardımıyla, ortaya çıkan bu metodlar (Kalman filters, Ensemble methods, 3Dvar, 4Dvar etc) sayesinde daha doğru tahminler yapılabiliyor. Tabiki metodların gelişimi aşamasında evrim kuramının işleyişinden ilham alınmadı, fakat, bence, kuramın işleyişe çok güzel örnek olarak duruyorlar.
LikeLike
Murat’in ricasi uzerine FriendFeed’de yazdigim yorumlari buraya da yapistiriyorum (“sizli bizli” yazisima bakilmayip senli benli cevaplar verilmesini talep ediyorum):
Elinize saglik. Evrimsel/genetik algoritmalari evrim teorisinin anafikrini anlatirken pedagojik arac olarak kullanmak da iyi bir fikir gibi geliyor bana, ama algoritma ve optimizasyon gibi temel kavramlara yabanci insanlari once o dunyayla tanistirma geregi, biraz zorlastirabiliyor isi. Kimi zaman (altyapisi nispeten iyi insanlar icin) iyi birkac ornek yeterli oluyor, kimi zamansa kafalar daha da karisiyor, ilk anda birbiriyle alakasiz gorunen orneklerin/sorularin arasindaki baglantilar kurulamiyor, kaybolup gidiyor insanlar anlatilanlar arasinda… Askerdeyken ilahiyatci bir arkadasla ara ara acik yurekli sayilacak munazaralarimiz olmustu, onunla konusurken denemistim biraz ben bu yaklasimi. Ilk anda anladigini dusunmustum dediklerimi, ama sonra yanildigimi anlamistim…
–
Yazinin sonunda evrimsel algoritmalarin basarisinin probleme gore degistigini soylemissiniz, ama evrimsel algoritmalarin yaninda, biyolojik evrimin sonuclarinin da optimal oldugunu genel olarak iddia edemeyiz gibi geliyor bana. Her iki durumda da tum genetik dizilimler (ya da tum cozum uzayi) taranamiyor. Biyolojik ya da algoritmik olarak taranabilen “alt uzaylar”i eldeki mutasyon/caprazlama mekanizmalari, populasyonun ilk andaki (yasamin baslangicini kastetmiyorum) genetigi ve buyuklugu, tarama icin verilen toplam sure gibi etkenler belirliyor.
–
Bir de evrimsel algoritmalarla ilgili olarak “evrim kuramının, bilgisayar bilimlerinin platonik “optimum” gayesine yanıt olmaya en çok yaklaşmış çözümleri sunduğu söylenebilir.” demissiniz. Bunu genel hissiyatinizin ifadesi olarak mi, yoksa teorik sonuclara vb. gonderme olarak mi soylediginizden emin olamadim. Konveks optimizasyon alaninda ornegin, bir algoritmanin eldeki problemin global cozumunu “sonunda” bulacagina dair teoremler olabiliyor, ama genetik/evrimsel algoritmalarla ilgili bu turden bir sonuca rastlamadim. Cok bilgili oldugum bir alan da degil, varsa bildiginiz bu turden (asimptotik, vb.) sonuclar, ogrenmek isterim.
LikeLike
Merhabalar,
Yorumlar için teşekkür ederim.
mkz:
Çok doğru. Zaten bu yazıdan beklentim insanların okuduklarında evrim kuramını (ya da evrimsel hesaplama dünyasını) tam olarak anlatmaktan ziyade onları düşünmeye itebileceğini düşündüğüm fikirleri paylaşmaktı.
Sanırım kastettiğin biyolojik evrimin sonuçlarının *global* optimum olduğunu iddia edemeyeceğimiz, buna katılıyorum. Bir genomdaki nükleotitlerin tüm kombinasyonlarının sonuçlarını değerlendirmeden bu genoma sahip olan canlının en optimum çözüm olduğunu söylemek imkansız, tarih boyunca bu sürecin -mümkün tüm dizilimlerin- gerçekleştiğini ve şu anda karşılaştığımız canlı türlerinin de olabilecek en optimum çözümler olduğunu biyoloji de söyleyemez sanıyorum (bu konuda benden daha bilgili çok fazla insan var bu sayfaları dolaşan, o yüzden fazla ileri gitmek istemiyorum, belki onlar bu noktadan katılıp fikirlerini paylaşırlar :)).
Fakat şu andaki canlı türlerinin belirli bir dereceye kadar optimum olduklarını ve evrimsel sürecin mütemadiyen optimuma doğru ilerleme eğilimi gösterdiğini söylemekte bir sakınca yok bence. Hatta bu “belirli bir derece” öyle bir derece ki, çözüm global optimum olmasa dahi yeterli performansı gösteriyor (bir makalede endüstride makul sürelerde makul sonuçlar bulmakta kullanılan bir çok GA temelli uygulama olduğunu, buldukları sonuçlar her zaman global optimum olmasa da kullanıcının umursamayacağı ya da aradaki farkı göremeyeceği kadar optimum olduğunu okumuştum, teorik olarak global optimum bir sancı olmaya devam edecek olsa da pratikte işler o olmadan da sürüyor, türlerin çeşitliliğinde olduğu gibi).
Aslında ikisi de.
.
Evet, konveks optimizasyon problemleri için “eninde sonunda” converge olacağı teorik olarak garanti olan bir çok model var. Problemin genetik/evrimsel bir problem olarak doğru ifade edildiği durumda her konveks optimizasyon problemi genetik algoritmalarla da eninde sonunda çözülebilir demenin önünde bir engel göremiyorum.. Bununla beraber evrimsel Hesaplama literatürüne çok hakim olmadığım için bunu kesin olarak söyleyen bir çalışma var mı, açıkçası bilmiyorum.
Öte yandan ML dünyası henüz evrimsel hesaplama ve genetik algoritmalardan nasıl en iyi şekilde faydalanacağını bulamadı bence (“daha ne bulacaklar, yıl olmuş 2009” denebilir tabi, ama SMO da 2000 yılında girdi hayatımıza :)). Bu arada ne tür problemler üzerinde etkili olduklarına dair kuş bakışı bir makale henüz yok fakat selecto-recombinative evrimsel algoritmaların, konveks olmayan optimizasyon problemlerinin çözümünde bile etkin olabileceklerine dair bir kanı var (bu 3 vakte kaadar ML araştırmacılarının ilgisini üzerine toplayacak bir şeye dönüşebilir). Platonik optimum gayesine en yaklaşmış çözümleri sunduğunu söylerken bu konuda yazılan çizilenlere gönderme yapıyordum aslında.
Tekrar teşekkürler,
Selamlar.
LikeLike
Harika bir yazi, Murat! Ellerine saglik..
Evrimsel dusunceyi anlamayi zorlastiran ve bilgisayar bilimlerinin bam teli olan bi baska kavram da ‘zaman’:
4. bir olasiligin gerceklesmesi icin gerekli sure ~ optimum cozumu (efendi bi surede) bulmak icin gerekli hesaplama hizi
(senin “2. rasgeleligin kucumsenmesi” basligin bunu da kapsiyor sanirim)
Dawkins, cocuklara yonelik bir konusmasinda, dunya uzerindeki yasamin tarihini bugunden geriye dogru tek tek adimlayarak anlatiyordu.. Cok hosuma gitmisti.. 4 milyar yili hakkiyla ozumseyen birisinin goz gibi yapilarin karmasikligi karsisinda panikleyip imdat frenine asilmasi elbette daha zor.. 🙂
—————–
Senin tanimindaki ‘denge’ ve yazinin geri kalanindaki ‘optimum’ kavramlarini dusunuyorum.. Evrimi hesaplamali bilimler acisindan biraz daha ilginclestiren bir baska unsur da hedeflenen lokal optimumlarin surekli -misli gecmis zaman kipinde olmasi.. abiyotik cevre sartlari degistikce ve/veya yeni “canli turleri / optimum çözümler” turedikce uygunluk kriterleri de degistiginden basta bahsettigin dengenin surekli bir salinimi soz konusu.. Tabii bu bilgisayar bilimlerinde sikca rastlanan bi problem de olabilir, pek cahilim bu konu da! 🙂
Bu kavramlarla yakindan alakali bir konu: ekosistem direnci (http://en.wikipedia.org/wiki/Resilience_%28ecology%29)
Tekrardan ellerine saglik!
LikeLike
Sagol Murat, cevap icin. “Belli bir dereceye kadar optimum”da hemfikiriz 🙂 Her konveks optimizasyon probleminin genetik algoritmalarla “eninde sonunda” cozulecegi yonundeki tahminine net bir itirazim yok, ama bu turden sonuclari ispatlamak kimi zaman oldukca zor oluyor. (Tabi boyle bir ispatta “eninde sonunda”nin spesifik anlami da onemli, sanirim kimse “bu algoritmayla eninde sonunda tum olasi durumlar denenmis olur, ve boylece cevap bulunur” anlamina gelecek bir sonuctan memnun olmaz.) Benim yakin cevremde ogrenme algoritmalariyla ugrasan insanlar arasinda genetik algoritmalara karsi hafif bir onyargi var, sanirim bunun bir sebebi bu turden teorik sonuclarin eksikligi. Ama dedigin gibi, birisi cikip bu alana yonelik guclu bir uygulama gelistirirse, sanmam ki teorik sonuc yok diye kullanmaktan imtina edilsin 🙂
Bir de konuyla ilgili degil, ve bilmem gereksiz hassasiyet mi, ama su “yamyam/misyoner” problemini “kurt/kuzu” falan yapsan bir dahaki sefere diyecektim 🙂
Tekrar selamlar,
LikeLike
Arpat, beğenmene sevindim. Bu arada ekosistem direnci konusunu biraz araştırınca aklıma bir sürü şey geldi. Teşekkür ederim.
mkz,
Çok haklısın. Nasılsa gözden kaçırdığıma şu an inanamıyorum açıkçası. Hatta bir zamanlar bir hoca bu problemin çözümünün insanlar için neden zor olduğunu açıklayan ‘bilgisayar bilimsel’ (:)) bir şeyler yazmamızı istemişti. Aşikar olan cevabı yazmanın kimseye faydası olmayacağını düşünerek “Batı medeniyetinin kendini küstahça konumlandırdığı nokta yüzünden bir yamyamın sandalı tek başına geri döndüremeyeceği varsayımına sahip olması çözümün bulunmasını geciktiren en büyük engel olsa gerek” tadında kızgın, küçük bir deneme yazmıştım (“risk budur” diyen öğrenci misali tam not almıştım, o ayrı). Şimdi sen işaret edince sırf problemin ilk sürümüne bağlı kalmak adına kurt/kuzu olarak değiştirmemiş olmamdan ötürü utandım. Dediğin gibi bir daha bu örneği verecek olursam daha çok dikkat edeceğim 🙂
Selam,
Saygı.
LikeLike
Iyi hikayeymis 🙂 Ben de kime diyorum…
Selam, saygi karsilikli.
LikeLike
Son günlerde Türkiye’de çok tartışılan konulardan birisi evrim.. Yaratılışçıların temel argümanı “inanç” olunca, karşı çıktıkları ilk kavram da “rastgelelik” oluyor. Evrende hiçbir şey “rastgele olamaz, gerçekleşemez” yaklaşımını sergilemezden önce, paralel düşünme yoluyla sorunu tanımlama ve çözmeye yönelmek, en azından bu kuramsal çatıdan hareket etmeye çalışmak gerekiyor, sanırım.
Senin tanimindaki ‘denge’ ve yazinin geri kalanindaki ‘optimum’ kavramlarini dusunuyorum.. Evrimi hesaplamali bilimler acisindan biraz daha ilginclestiren bir baska unsur da hedeflenen lokal optimumlarin surekli -misli gecmis zaman kipinde olmasi.. tesekkurler
LikeLike
ilginc
LikeLike
Çok doğru. Zaten bu yazıdan beklentim insanların okuduklarında evrim kuramını (ya da evrimsel hesaplama dünyasını) tam olarak anlatmaktan ziyade onları düşünmeye itebileceğini düşündüğüm fikirleri paylaşmaktı.
LikeLike