×

Genetik Algoritmalar ve Yapay Yaşam

Genetik Algoritmalar ve Yapay Yaşam

Genetik Algoritmalar

İnsanlar soyunu devam ettirmek ve dolayısıyla genetik mirasını yavrularına aktarabilmek için ürerler, peki makineler ? Makineler de insanlar gibi “üreyip” genetik mirasını yavrularına aktarabilir mi ya da canlılar gibi evrim geçirebilir mi? Analojik olarak bu saydıklarımı makineler de yapabilir. Bu içerikte Baldwin etkisiyle temellendirilmiş genetik algoritmaları (GA) ve A-life’ı (yapay yaşam) inceleyeceğim.

Genetik algoritmalar birçok yapay-yaşam modelleri (artificial life) için merkezi rol oynayan hesaplamalı evrimsel modeldir. Yapay sistemlerin evrimi, önemli bir modelleme aracı ve otomatik bir tasarım yöntemi sağlar. GA hem pratik problemleri çözmede hem de evrimsel süreçlerde bilimsel model olarak kullanılan bir araçtır. Günümüzde kullanılan ilk GA tanımını 1960 yılında John Holland yapıp GA modelini ilerleyen süreçlerde arkadaşları ve öğrencileriyle birlikte 1960-1970 yıllarında geliştirmiştir.  Holland’ın 1975 yılında yayınlanan “Doğal ve Yapay Sistemlerde Adaptasyon” (Adaptaition in Natural and Artificial systems) isimli kitabında, GA’yı biyolojik evrimin soyutlanıp modellenmesi olarak tanımlar ve GA’da adaptasyona yönelik teorik bir çerçeve sunar. 

Holland’ın GA’sındaki metot bir popülasyondaki kromozomların (organizmanın ya da ajanın problemi çözmesi için temsil edilen bit strings ) çaprazlama, mutasyon ve inversiyon (ters çevirme) gibi genetik operatörler kullanılarak seçilimin yapılıp kromozomların başka bir popülasyona taşınmasını ifade eder. Her bir kromozom genlerden (bitler) oluşur ve her bir genin belirgin bir örneğine alel ( Soyut modelde 0 veya 1’dir) denir. Seçilim (selection), popülasyonda üremesine izin verilecek kromozomları seçer ve uyumlu (fit) kromozomların daha az uyumlu olanlardan daha fazla yavru üretmesini ve her birinin kaç tane yavruya sahip olacağına karar verir. Crossing-over ile bu iki kromozom üzerindeki parçalar takas edilir [Biyolojideki cinsiyet kromozomlarının rekombinasyon yapıp yavrunun cinsiyetinin belirlenmesi modellenmesi gibi]. Mutasyon ile rassal olarak kromozom üzerinde bulunan bazı değerler değişikliğe uğrayabilir ve inversiyonla komşu sıradaki kromozom sıraları ters çevrilebilir yani kromozomdaki gen dizilerinin sırası tekrar düzenlenir. Ancak inversiyon, pratik sonuçları sebebiyle  günümüz GA’larında nadiren kullanılır.  

GA’larda sorulabilecek önemli sorulardan birisi uyumlu program neyi içermelidir sorusudur. Uyumluluk, karşılaşılan spesifik probleme göre programcı tarafından tanımlanır. Örneğin, robotik bir kolun Jenga bloklarını belirli bir sırayla dizmesi görevini gerçekleştirmek isteyen bir program yazılması isteniyorsa, bu programdaki uyumluluk ölçütü bu spesifik sıralamayı yapabilmesidir.  

Bir evrimsel metot sadece problem çözmede değil aynı zamanda dinamik çevreye adapte olabilmesiyle de başarılıdır. Bugün var olan mevcut bilgisayar programları, “kırılganlıkları” ile biliniyor. Öngörülemeyen bir olay gerçekleştiğinde, ilgili programın sekteye uğraması olası oluyor. Bu temel sorun, yüksek (seviye) yazılım geliştirme ve bakım maliyetlerinin başlıca nedenlerinden biridir. Aksine evrim, dinamik çevreye adaptasyon olasılığı sunar. Bir öngörülemeyen olay gerçekleştiğinde sistem evrim geçirebilir (doğa ile analoji kurarsak) yeni duruma adapte olur. 

Robot ve bebek

Genetik Algoritmaların Çalışma Sırası

(İnversiyon uygulanmadan) basit bir GA algoritmasının çalışma sırası aşağıda sırasıyla verilmiştir: 

  1. Rastgele olarak oluşturulmuş kromozom popülasyonuyla çalışmaya başla (e.g. prolemi çözecek ajanlar) 
  2. Popülasyondaki her bir kromozomun uyumluluklarını hesapla  
  3. Seçilim ve genetik operasyonları (crossing over ve mutasyon) popülasyona yeni bir popülasyon üretmek için uygula 
  4. 2. aşamaya geri dön  

Bu süreçteki tekrar tekrar uygulanarak yeni jenerasyonlar oluşturulur. Birkaç jenerasyondan sonra, popülasyonda yüksek seviyede fit olan kromozomlarla sonuçlanır.  

Basit bir “üreme” simülasyonu

Genetik Algoritmaların Bilimsel ve Mühendislik Problem Örnekleri:

Optimizasyon: numerik optimizasyonlar (numerical optimization ve kombinatoryal optimizasyon (combinatorial optimization) problemleri]) ve devre tasarımı gibi çeşitli optimizasyon görevlerinde kullanılır. 

Otomatik programlama: Belirli bir görevi gerçekleştirmek amacıyla bilgisayar programlarının evrimi için kullanılır ve başka bilgisayar yapıları (hücresel otomat (cellular automata)) ve ağ sınıflandırması (network sorting) gibi) dizaynında kullanılır. 

Makine ve robot öğrenmesi: GA’lar makine öğrenmesi sınıflandırma ve tahmin görevleri (dinamik sistemde tahmin=> hava tahmini ve protein yapı tahmini gibi(1) uygulamalarda kullanılır. Ayrıca, sınıflama sistemlerinde kuralların öğrenilmesi, nöral ağ tasarımında (2) ve robotları dizayn etme ve kontrolünde (3) kullanılmıştır.

Bağışıklık Sistemi Modelleri: Bireyin yaşam sürecinde geçirdiği somatik mutasyonlar  ve evrim sürecindeki çoklu gen familyasının (multi-gene families) keşfinde doğal bağışıklık sistemi modellerinde kullanılır.

Popülasyon genetik modeli: Popülasyon genetiğindeki “rekombinasyon için hangi şartlar altında bir gen evrimsel olarak olarak uyumlu olacak” gibi önemli soruların cevaplamaya çalışılır (4).

Evrim ve Öğrenme Arasındaki Etkileşimler: Bireyin öğrenmesi ve türlerin evriminin birbirini nasıl etkilediği araştırılır (5).

Öğrenme ve Evrim arasındaki İlişki

Bir bireyin yaşam boyu öğrendiği şeyler o bireyin genetik yapısını doğrudan etkilemez ve bireyin öğrendiği şeyler yavrunun genetik yapısına taşınmaz; ancak evrimsel biyologlar öğrenmenin evrim üzerindeki dolaylı etkisi üzerine çalışmalar yapmıştır. Baldwin’in yaklaşımından etkilenilerek GA çalışmalarının temeli atılmıştır. Baldwin etkisi (7), öğrenilen davranışın evrim üzerindeki etkisine vurgu yapar. Böyle bir öğrenme olmadan, hayatta kalma ihtimali ve dolayısıyla genetik keşif fırsatı azalır.  Bir organizmanın yeni davranışları öğrenme becerisi üreme başarısını etkiler ve böylece genetik yapısına etkisi olur ve bu nedenle doğal seçilim (seleksiyon) yoluyla türün genetik yapısı üzerinde etkisi olacaktır.

Öğrenme Sınıflandırma Sistemleri

Öğrenme sınıflandırma sistemleri, GA’ların yaşayan sistem modellerine nasıl dahil edilebileceğini gösteren ilk örneklerden birisidir. Sınıflandırma sistemleri uyaran-tepki (davranışı) ve daha karmaşık bilişsel süreçlerin modelleri olarak kullanılır. Sınıflandırma sistemleri 3 prensip temellidir:

  1. Öğrenme 
  2. Çevreden kesikli (intermittent) geri bildirimler
  3. Çevrenin temsili olan içsel model hiyerarşisi

Sınıflandırma sistemleri, insanların ekonomik ve sosyal durumlarda nasıl davrandığı, farelerin labirentleri nasıl tamamladığı veya sınıflandırma problemleri gibi çeşitli “zeka” süreçlerinde kullanılır. Sınıflandırma sistemini formüle etmedeki önemli bir motivasyon  tümevarımsal sistemlerin  içsel model kurmadaki gerekliliğidir. İçsel modeller bir sisteme çevre ile ilgisi yanlış veya eksik olsa bile tahmin üretmesine izin vermelidir. Model çevresiyle ilgili ne kadar çok bilgi edinirse o kadar rafine olacaktır. 

Artificial Life (A-Life) 

Kurucularından birisi olan Chris Langton’ın tanımladığı şekliyle A-life, biyolojik olayların altında yatan temel dinamik ilkeleri soyutlamaya çalışarak bu dinamikleri bilgisayarlar gibi diğer fiziksel ortamlarda yeniden yaratarak, onları bir araya getirerek yaşamı anlamaya çalışan bir alandır. Biyolojik araştırmalar analitik temelde karmaşık fenomeni basit bileşenlerine ayırmaya çalışırken, A-life sentetik olarak karmaşık yapıyı basit birimlerinden oluşturmaya çalışır. 

Kullanılan yapay terimi sistemin insan üretimi olduğuna gönderme yapar yani temel bileşenler doğa tarafından evrimsel olarak oluşturulmamıştır. Ancak yüksek seviye fenomen tamamıyla özgündür. Üreme süreci von Neuman’ın detaylıca belirttiği gibi doğada gerçekleştiği gibi gerçektir. Farklılık sadece temel bileşenler düzeyindedir. Yapay hücreler vs. Canlı hücreler. A-life araştırmaları omurgalı canlıların gözlemlenmesiyle geliştirilmiştir. Araştırmalardaki vurgulanan düşünce yaşam için sadece karbon temelli bileşenler dışındaki bileşenlerin gerekliliğiyle ilgilidir.    

A-life yaklaşımı temel olarak geleneksel yapay zeka (YZ) yaklaşımından farklıdır. Geleneksel yapay zeka, yukarıdan aşağı (top-down) metodunu karmaşık davranışların olduğu yerdeki davranışlar (Ör. Satranç oynama) tanımlanmıştır ve bu davranışların tüm detaylarını temsil eden bir sistem kurulma girişiminde bulunulur. A-life yaklaşımda ise aşağıdan yukarı (bottom-up) metodu benimsenmiştir; yani basit birimlerden evrimsel olarak aşamalı olarak  yukarıya doğru sistem kurulur ve geliştirilir. A-life ve geleneksel YZ arasındaki başka bir fark ise sorunları ele alma biçimindedir. AI geleneksel olarak satranç oynama, tıbbi tanı koyma ve metin anlayabilme gibi karmaşık insan davranışlarına odaklanırken, A-life doğuştan gelen temel davranışlara odaklanarak karmaşık çevrede hayatta kalabilme durumunu vurgular.  

Bir Braitenberg araç simülasyonu, yapay yaşam simülasyonlarına bir örnek

Kaynaklar ve İleri Okumalar

  1. Schulze-Kremer, S. (1992). Genetic algorithms for protein tertiary structure prediction. In
    R. Männer & B. Manderick (Eds.), Parallelproblem solvingfrom nature 2 (pp. 391-400).
    Amsterdam: North Holland.
  2. Belew, R. K., Mclnerney, J., & Schraudolph, N. N. Evolving networks: Using the genetic algorithm with connectionist learning. In C. G. Langton, C. Taylor, J. D. Farmer, & S. Rasmussen (Eds.), Artificial life II (pp. 511-547). Reading, MA: Addison-Wesley.
  3. Davidor, Y. (1992). Genetic algorithms and robotics. Robotics and Automated Systems.Singapore: World Scientific.
  4. Bergman, A., & Feldman, M. W. (1992). Recombination dynamics and the fitness landscape. Physica D, 56, 57-67′.
  5. Ackley, D. H., & Littman, M. L. (1992). Interactions between learning and evolution. In C. G. Langton, C. Taylor, J. D. Farmer, & S. Rasmussen (Eds.), Artificial life II, (pp. 487-507). Reading, MA: Addison-Wesley.
  6. M. Mitchell and S. Forrest, “Genetic Algorithms and Artificial Life,” in Artificial Life, vol. 1, no. 3, pp. 267-289, April 1994, doi: 10.1162/artl.1994.1.3.267.
  7. https://en.wikipedia.org/wiki/Baldwin_effect
Konudan çok uzak olmadığı (ve sevdiğim) içi yukarıdaki sahneyi eklemeyi uygun buldum.

Yorum gönder