30 Mayıs 2017 Salı

EVRİM VE RASTGELELİK



Özellikle evrim karşıtı bir görüş olarak sıkça yürütülen bir argüman vardır: “Bir uçak yüzbinlerce parçadan oluşuyor. Bu parçaları büyük bir kutuya koyalım ve sallamaya başlayalım. Bir uçak oluşur mu? Çok daha karmaşık canlı organizmaların, balıkların, kuşların, insanların da rastgele oluştuğunu söyleyemeyiz”. Kuşkusuz doğru bir sonuç. Ama yanlış bir varsayımla yola çıkıyor. Çünkü hiç kimse günümüzde yaşayan canlı türlerinin “birdenbire” oluştuğunu düşünmüyor. Ayrıca evrim sürecinin tümüyle rastgele (random) olduğunu da öne sürmüyor. Milyarlarca yıla uzanan bu sürecin tarihsel gelişimi bu yazının kapsamı içinde değil. Burada yalnızca rastgelelik (randomness) yönünü ele almak istiyorum.

Kısaca söylemek gerekirse evrim sürecinde kalıtımla oluşan bireylerin farklılaşması için belirli oranda bir rastgele değişim ile çeşitlilik oluşuyor; bu çeşitlilik içinde çevre koşullarına en uygun olanların seçilmesi ile de evrim gerçekleşiyor.
  • Eğer bu rastgele değişim olmasaydı, türün her bireyi yalnızca ana babasının özelliklerini taşırdı. Çeşitlilik, dolayısıyla seçim ile doğaya uyum sağlayan yeni “başarılı” bireylerin oluşması sağlanamazdı. 
  • Aksine bu rastgele değişim çok fazla olsaydı, ana-babadan yeni oluşan bireye geçen özellikler çok az olurdu. Ana-baba çevre ile çok iyi uyum sağlayıp “başarılı” olsa bile bu başarı gelecek kuşaklara aktarılamazdı.


İşte bu yazıda matematiksel bir model kullanılarak yukarıda özetlenen rastgelelik konusunu tartışmak istiyorum.

Önce bir örnekle seçenek (possibility), olasılık (probability) ve rastgele (random) kavramlarını biraz tartışalım.  

Bir maymunun yalnızca iki harfli (A, B) bir klavye kullanarak tuşlara rastgele bastığını (iki seçenek) düşünelim. Klavye 2 harfli olduğuna bir vuruşta “A” yazmasının olasılığı (½ = 0,5) dir. Maymunun 2, 3 4… harfli kelimeler yazdığını düşünelim. “AB” yazmasının olasılığı (1/2)*(1/2) = 0,25; “ABA” yazmasının olasılığı (1/2)*(1/2)*(1/2) = 0,125; “ABAB” yazmasının olasılığı (1/2)*(1/2)*(1/2)*(1/2) = 0,0625 olacaktır...

Olayı genelleştirip bir formülle ifade eder ve olasılık için p, harf sayısı için h ve kelime uzunluğu için k kullanırsak:




Şimdi de maymunun A’dan Z’ye Türkçenin bütün harfleri (29 harf) için birer tuşu ve bir boşluk tuşu olan (29+1=30 karakterli) bir klavye kullanarak bir kelime değil “OLMAK YA DA OLMAMAK BÜTÜN MESELE BU” cümlesini yazmasını bekleyelim. Bu cümlede 35 karakter olduğuna göre yukarıdaki yaklaşımla maymunun “OLMAK YA DA OLMAMAK BÜTÜN MESELE BU” yazmasının olasılığı çok daha küçük olacaktır[i]:
 Bu olasılığın ne denli küçük olduğunu göz önüne getirmek için maymunun her gün, 24 saat, hiç durmadan saniyede 3 tuşa basabileceğini varsayarsak bu cümleyi % 98 olasılıkla 1,85*1045 yılda yazabileceğini söyleyebiliriz. Bu arada dünyanın yalnızca yaklaşık 4,5 milyar (4,5*109) yaşında olduğunu belirtmeliyiz.  

Belki de benzer bir uygulamayı insan DNA’sı konusunda hayal etmek ilginç olacak. İnsan genomunda 1,5 G Byte’lık bilgi olduğu söylenebilir[ii]. Yukarıdaki cümledeki bilgi “miktarı” ise yalnızca 22 Byte[iii].

Yukarıda özetlenen yöntem, bütün seçeneklerin denenmesi veya denenebileceği temeline dayanıyor ve bu alamda “kaba kuvvet” (brute force) diyebileceğimiz bir yaklaşımı özetliyor. Bu örnekleri vermemin nedeni bu kaba kuvvet yönteminin bizi olumlu bir sonuca götüremeyeceğini göstermekti. Eğer doğa tüm olasılıkları deneyen, tümüyle rastgele biçimde değişseydi evrim gözlenemezdi. Oysa türler olasılığın belirli sınırlar içinde olduğu çok ilginç bir modelle değişiyor. Bu model o kadar ilginç ki bu modeli temel alan ve Genetik Algoritma olarak adlandırılan algoritmalar geliştirildi, bilgisayar programları yazıldı ve birçok alanda bir eniyileme (optimization) yöntemi olarak kullanılmaya başlandı. Şimdi biraz buna bakalım.

GENETİK ALGORİTMA

Aslında doğada gözlenen evrime dayalı bir algoritma geliştirilmesi ve bunun bilgisayarlara uygulanması pek de yeni bir fikir değildir. Bilgisayar öncülerinden, Alan Turing 1950’de evrim ilkelerine paralel çalışacak bir “öğrenen makine” önermişti[iv]. Bu fikirden yola çıkılarak çeşitli çalışmalar yapıldı ve John Holland 1975’de bugün kullandığımız anlamda Genetik Algoritmanın temellerini oluşturdu[v]. Bu çalışmalarda bir yandan biyolojik evrimin bilgisayar benzeşimi (simulation) üzerinde çalışılıp evrimi daha iyi anlamak amaçlanırken; diğer yandan bu algoritmalar bir eniyileme yöntemi olarak kullanılmaya başlandı. Günümüzde genetik algoritmalar ve bu algoritmalara dayanan programlar yapay zekâdan (artificial intelligence) kansere karşı dayanıklı dokular geliştirilmesine kadar uzanan geniş bir yelpazede kullanılıyor[vi].

Darwin’in evrimin kuramının üç temel sisteme dayandığını düşünebiliriz:


  • Seçim: Çevreye uyum sağlayanın yaşamını sürdürerek üremesini sağlayan bir sistem.
  •  Kalıtım: Ana-babadan çocuklara özellikler aktarılması için bir sistem.
  • Farklılaşma: Yeni bireylerin farklılaşması için bir sistem.

Bu sistemlerin bir algoritmada nasıl uygulanacağını çok basitleştirilmiş biçimde aşağıdaki gibi açıklayabiliriz (Şekil -  1).

Seçim
Şekil - 1’in en solunda görülen 4 ikili (binary) dizi (A, B, C ve D) türün bir kuşağının bütün nüfusunun (total population) kromozomlarını göstersin[vii]. Bu türün doğaya uyum sağlaması için gereken hedef dizinin ise 01100011 (fitness function) olduğunu var sayalım. Her bir bireyi bu hedefle karşılaştırdığımızda, nüfus içindeki hiçbir bireyin bu hedefi sağlayamadığını ama (yukarıdan aşağıya sıra ile) bireylerde 4, 3, 2 ve 5 adet bitin hedefte karşı gelen bitlerle uyuştuğunu görüyoruz. En iyi uyum sağlayan A ve D bireylerini seçip bunları çiftleştirelim.

Kalıtım
Üreme sonucunda oluşan yeni bireyde bazı genlerin erkekten bazılarının ise dişiden geldiğini biliyoruz. Bunu da modelimizde basitçe ilk 3 biti A’dan, ardında gelen 5 biti D’den alarak (çaprazlama - crossing) gerçekleştirelim. 

Farklılaşma
Son olarak da evrimdeki mutasyona benzer biçimde belirlenen olasılıkla bu yeni bireyin geninde bir biti değiştirelim. Örneğimizde 6ncı bit 1’den 0’a dönüşüyor. Bir sonraki kuşağın yeni bireyi böylece oluştuktan sonra bu işlem başa dönüyor ve yenilenen nüfusla (sonraki kuşak) algoritma seçim – kalıtım – farklılaşma döngüsü ile devam ediyor.

 
Şekil - 1
Ne yapacağımıza karar verdiğimize göre basit bir genetik algoritma yazarak rastgeleliğin etkisini gözleyebiliriz. Şekil - 2’deki akış diyagramı bu basit program için hazırlanmıştır. 

Şekil -  2
Burada belirli basitleştirici varsayımlar yapılmıştır. Öncelikle programın sonsuza kadar çalışmaması için (yukarıdaki “OLMAK YA DA OLMAMAK…” örneğindeki gibi) bir “hedef kromozom” ve Maksimum Kuşak Sayısı doğadaki evrime göre önemli basitleştirmelerdir. Matematiksel olarak tasarlanan genetik algoritmanın bir eniyileme yöntemi olduğu belirtilmişti. Oysa doğadaki evrimde bir “hedef” yoktur. Farklı yöntemlerle bireylerin değişimi ve doğal seçimin sürekliliği söz konusudur. Benzer biçimde kuşak sayısının da bir sınırı yoktur.  Uyum sağlayamayan türler -dinozorlar gibi- yok olur; uyum sağlayanlar ise -günümüzde yaşayan türler gibi- yaşamlarını ve üremelerini sürdürür. (Bundan sonra ne kadar varlıklarını sürdüreceklerini de bilmiyoruz!)

Günümüzde kullanımı giderek yaygınlaşan genetik algoritma uygulamalarından bir örnek olarak MATLAB programını anabiliriz. Verilen bir işlevin (function) en küçük değerini bulan bu programda rastgeleliğin etkisini görmek için belirgin biçimde bir en küçük değeri olan basit bir işlevi ele alalım:
 Bu işlevi çizersek eğrinin en küçük değerinin y=20 olduğunu kolayca görebiliriz (Şekil - 3).
Şekil ‑ 3
Genetik algoritma kullanarak MATLAB programının farklı rastgelelik değerleri ile bu en küçük değeri kaç kuşakta bulabildiğini inceleyelim. Bu amaçla çizeceğimiz şekillerde yatay eksende kuşağı (KUŞAK), düşey eksende ise programın bulduğu değeri (HEDEF) gösterelim.

 Şekil - 4’de uygun bir rastgelelik belirlendiğimizde program çıktısının aranan en küçük değere yakınsadığını (converge) ve 51’nici kuşakta sonuca ulaştığını görüyoruz. 




Şekil - 4
Aksine Şekil - 5’de uygun bir rastgelelik belirlenmediğinde herhangi bir değere yakınsamadığını ve 100 kuşakta bile aranan en küçük değere ulaşılamadığı görülmektedir.


Şekil - 5


SONUÇ

Rastgelelik, yazı – tura atmaktan kuantum fiziğine uzanan birçok doğa olayında karşılaştığımız ve matematiksel yönü üzerinde çok çalışılmış bir kavram. Bu kavram evrim karşıtları tarafından evrim kuramındaki konumu incelenmeden sorumsuzca “keyfilik” olarak değerlendiriliyor. Oysa gördüğümüz gibi günümüzde evrim kuramı ve ondaki rastgelelik, doğadaki evrimi açıklamanın çok ötesine geçip genetik algoritmalarla matematiksel uygulamalara çok yeni boyutlar kazandırmıştır.

NOT: Bu yazı 24 Mayıs 2017 tarihli Cumhuriyet gazetesinin Akademi ekinde yayınlanmıştır.


[i] Bu problemin kaynağı “Maymunun Shakespeare Teoremi” olarak bilinir ve yeterli (!) zaman verilirse bir daktilonun tuşlarına rastgele basan bir maymunun Shakespeare’in bütün yapıtlarını yazabileceğini öne sürer. (Émile Borel, 1913). Burada problem çok daha basitleştirilip özetlenmiştir.
[ii] Haploid (her kromozomun bir kopyası olan) insan genomunda 23 kromozom içinde gruplanmış yaklaşık 3 Milyar DNA taban çifti (base pair) var. Bebeğe (anneden ve babadan 23’er olmak üzere) kalıtımla toplam 46 kromozom aktarılır ve diploid genom oluşur. Bu durumda insan genomu 6 Milyar taban çiftine ulaşır. 4 taban çiftini iki tabanında ifade edersek 2 bit’le yazabiliriz (00, 01, 10, 11). Bilgisayarlarda kullanılan Byte (8 bit) birimini kullanırsak 1 Byte 4 taban çiftinin bilgisini içerir. Bu durumda tüm diploid insan genomu 6*109/4=1,5*109 (1,5 G) Byte bilgi içerir.
[iii] Cümledeki bilgi 3035 = 5*1051 = 2172 = 172 bit = 22 Byte.
[iv] Alan Turing, "Computing Machinery and Intelligence", MIND, A Quarterly  Review of Psychology  and  Philosophy, Cilt LIX, Sayı 236, s. 433 – 460, Ekim 1950.
[v] J.H. Holland, Adaptation in Natural and Artificial Systems, The University of Michigan Pres: Michigan (1975).
[vi] Örnek olarak genetik algoritma ile bir hedefe yönelik en kısa bilgisayar kodunun yazılmasını ele alan Daniel Schiffman’ın “The Natue of Code” adlı kitabı anılabilir (Magic Book Project: ABD - 2012).
[vii] Daha çok istatistik terimi olarak “nüfus” (population) yanında bir olasılık terimi olarak “örnek uzay” (sample space) terimini de kullanabiliriz.

Hiç yorum yok:

Yorum Gönder