Evrimsel algoritma nedir? Hızlı bir kılavuz
Evrimsel algoritmaların nasıl çalıştığını ve makine öğreniminde modelleri optimize etmek, karmaşık sorunları çözmek ve yapay zeka alanındaki ilerlemeleri desteklemek için nasıl kullanıldıklarını öğren.

Bu makalede ele alınan kavramların görsel bir anlatımı için aşağıdaki videoyu izle.
Dünya üzerindeki yaşam milyonlarca yıl boyunca evrildi ve canlılar, çevrelerinde hayatta kalmak ve gelişmek için bu süreç sayesinde uyum sağladı. Örneğin zürafaları ele alalım. Diğer hayvanların ulaşamadığı ağaçların tepesindeki yapraklara erişebilmek için nesiller boyu uzun boyunlar geliştirdiler. Bu, yararlı özelliklere sahip olanların hayatta kalma olasılığının daha yüksek olmasıyla bu özelliklerin daha yaygın hale geldiği doğal seçilim tarafından yönlendirilir.
Basitçe ifade etmek gerekirse, çevrelerine daha iyi uyum sağlayan organizmaların hayatta kalma ve yararlı özelliklerini yavrularına aktarma şansı daha yüksektir. Zamanla bu küçük değişiklikler birikerek türlerin en zorlu koşullarla bile başa çıkmasına yardımcı olur.
Evrimsel algoritmalar (EA), “Makine Öğrenimi” şemsiye terimi altında yer alır. Tıpkı evrim gibi, EA da bir gruptan en iyi çözümleri seçer, küçük değişiklikler yapar ve bu değişikliklerin işleri daha iyi duruma getirip getirmediğini kontrol eder. Bu süreci birçok nesil boyunca tekrarlayarak, çeşitli farklı alanlardaki karmaşık problemlere en iyi çözümleri bulur.
Çok yönlülükleri sayesinde evrimsel algoritmalar; mühendislik, tıp ve çevre bilimi gibi alanlara uygulanmalarını amaçlayan devam eden çalışmalarla birlikte ilgi çekici bir araştırma alanıdır. Bu makalede evrimsel algoritmalara, nasıl çalıştıklarına ve nerede kullanıldıklarına daha yakından bakacağız. Haydi başlayalım!
Evrimsel algoritmalar açıklandı#
Evrimsel algoritmalar, belirli bir görev için mümkün olan en iyi çözümü veya modeli bulmak amacıyla makine öğrenimi alanında kullanılabilen optimizasyon teknikleridir. Genellikle potansiyel çözümlerden oluşan bir grup ile başlar ve problemi ne kadar iyi çözdüklerine bağlı olarak bunları birçok yineleme üzerinden iyileştirmek için çalışırlar.
Örneğin, en yakıt verimli arabayı tasarlamaya çalıştığını hayal et. Algoritma çeşitli araba tasarımlarıyla başlar, her birini ne kadar iyi performans gösterdiğini görmek için test eder ve ardından en iyi özellikleri birleştirip birçok tur boyunca küçük ayarlamalar yaparak tasarımları kademeli olarak iyileştirir, ta ki mümkün olan en iyi tasarımı bulana kadar.
Her biri çözümleri temsil etme ve iyileştirme konusunda kendine özgü yollara sahip birkaç tür evrimsel algoritma vardır, ancak hepsi bu temel yaklaşımı izler. İşte yaygın evrimsel algoritma türlerinden bazıları:
-
Genetik algoritmalar: Bu evrimsel algoritma türünde çözümler, sayı veya sembol dizileri gibi basit kodlanmış dizeler olarak temsil edilir. İyileştirme, iki iyi çözümün parçalarını karıştırarak (ebeveynlerden gelen özellikleri birleştirmeye benzer) ve yeni varyasyonlar oluşturmak için küçük rastgele değişiklikler yaparak gerçekleşir.
-
Genetik programlama: Çözümleri ağaç benzeri yapılar olarak oluşturmaya odaklanır. Özellikle çözüm bir dizi adım veya talimat gerektirdiğinde faydalıdır.
-
Evrim stratejileri: Burada odak noktası, çözümleri güncellerken değişikliklerin ne kadar büyük veya küçük olması gerektiğini öğrenmektir. Bu, algoritmanın sonuçlarını zaman içinde daha verimli bir şekilde iyileştirmesine yardımcı olur.
-
Diferansiyel evrim: Bu yaklaşımla, yeni çözümler farklı mevcut çözümlerin parçalarının birleştirilmesiyle oluşturulur. Özellikle cevapların sürekli değişebilen sayılar olduğu problemler için oldukça iyi çalışır.
Evrimsel algoritmanın nasıl çalıştığını anlamak#
Evrimsel algoritma, bir probleme en iyi çözümü bulmak için yinelemeli bir süreç kullanır. Bunu, doğanın türleri nesiller boyunca iyileştirme yöntemi gibi düşünebilirsin; her döngü popülasyonu geliştirmeye yardımcı olur.
Farklı evrimsel algoritma türleri mevcut olsa da, genellikle şu temel adımları izlerler:
-
Başlatma (Initialization): Algoritma, başlangıçta olası çözümlerden oluşan bir set oluşturarak başlar. Bu, evrimsel süreç için başlangıç noktasını oluşturur.
-
Uygunluk değerlendirmesi (Fitness evaluation): Her çözüm, problemi ne kadar iyi çözdüğünü ölçen bir uygunluk fonksiyonu kullanılarak değerlendirilir. Daha iyi performans gösteren çözümler daha yüksek puanlar alır ve sonraki adımlar için seçilme şansları daha yüksektir.
-
Üreme (Reproduction): Yeni çözümler iki ana yöntemle oluşturulur: çaprazlama ve mutasyon. Çaprazlama, iki ebeveyn çözümden gelen özellikleri birleştirirken, mutasyon yeni olasılıkları keşfetmek için küçük rastgele değişiklikler ekler.
-
Değiştirme (Replacement): Yeni oluşturulan çözümler, eski çözümlerin bir kısmının veya tamamının yerini alır. Bu adım, hangi çözümlerin hayatta kalacağını ve bir sonraki nesle geçeceğini belirler.
-
Sonlandırma: Üreme ve değiştirme süreci, bir durdurma koşulu karşılanana kadar devam eder. Bu durum, belirlenen sayıda yinelemeye ulaşmayı, tatmin edici bir uygunluk seviyesi elde etmeyi, başka bir iyileşme görmemeyi veya hesaplama sınırlarına çarpmayı içerebilir.

Şekil 1. Evrimsel algoritmanın nasıl çalıştığına bir bakış. Görsel yazar tarafından hazırlanmıştır.
Evrimsel algoritma uygulamalarına bir bakış#
Artık evrimsel algoritmanın ne olduğu ve nasıl çalıştığı hakkında daha iyi bir anlayışa sahip olduğumuza göre, bunların farklı sektörlerdeki bazı gerçek dünya uygulamalarını inceleyelim.
Rüzgar türbini santrallerinde kullanılan biyolojik esinli algoritmalar#
Rüzgar enerjisi üretiminin en kritik yönlerinden biri, rüzgar türbinlerinin yerleşimidir. Bir rüzgar çiftliğinin verimliliği, türbinlerin birbirlerine ve rüzgar koşullarına göre nasıl konumlandırıldığına bağlı olarak önemli ölçüde değişebilir. Geleneksel tasarım yöntemleri genellikle işin içindeki birçok dış değişkenle başa çıkmakta zorlanır.
Evrimsel algoritmalar, çok sayıda farklı rüzgar çiftliği yerleşimi üretmek ve bunları test etmek için harika bir yoldur. En iyi kurulumu bulmak için rüzgar kalıplarını, türbin tiplerini ve mevcut araziyi incelerler. Her test turunda tasarım daha da iyileşir; bu da daha fazla enerji, daha düşük maliyetler ve arazinin daha iyi kullanılmasını sağlar. Birkaç yinelemeden sonra nihai tasarım, manuel olarak yapılandırılandan daha iyi bir enerji çıktısı sağlayabilir.

Şekil 2. Bir rüzgar türbini santrali.
Araç tasarımında optimizasyon teknikleri#
Güvenli, yakıt tasarruflu ve uygun fiyatlı arabalar tasarlamak günümüz otomobil üreticileri için öncelikli bir konudur. Evrimsel algoritmalar, birçok tasarım seçeneğini test edip en iyisini bulmak için bunları kademeli olarak iyileştirerek bu süreci hızlandırmaya yardımcı olabilir. Bu, üreticilerin performans ile verimlilik arasındaki en iyi dengeyi bulmasına yardımcı olabilir.
İlginç bir örnek, Body-in-White (BIW) olarak bilinen temel araç yapısını tasarlamak için evrimsel algoritmaların kullanılmasıdır. Bu tasarım sürecindeki ana hedef, aynı dayanıklılığı ve mukavemeti korurken gövdenin ağırlığını azaltmaktır.
Genetik algoritmalar, küçük değişikliklerle farklı yapısal varyasyonları keşfedebilir. Bu tasarımlar daha sonra en iyi seçeneği belirlemek için mukavemet, ağırlık, dayanıklılık ve düzenleyici standartlar gibi faktörlere göre test edilir.

Fig 3. The Body-in-White design structure of a vehicle (source).
Hastanelerde çizelgeleme için evrim stratejileri#
Araştırmacılar, evrimsel algoritmaların hastane personelini planlama, tedavi planlarını iyileştirme ve yeni ilaçlar keşfetme gibi sağlık hizmetlerinde nasıl yardımcı olabileceğini aktif olarak inceliyor. Bu algoritmalar, büyük miktarda veriyi işleyebildikleri ve yorgunluk ile stres gibi faktörleri hesaba katabildikleri için iyi sonuç verirler.
Örneğin, hastanelerde hemşire vardiya planlamasını iyileştirmek için genetik algoritmalar test edilmiştir. Büyüleyici bir çalışma, hemşire yorgunluğunu azaltan planlar oluşturmak için genetik algoritmalar ile yerel arama tekniklerinin bir karışımını kullandı. Sonuçlar yorgunlukta %10'luk bir düşüş gösterdi ve planlama sürecini %98 oranında hızlandırarak süreyi bir saatten biraz fazla bir süreden sadece bir dakikanın biraz üzerine indirdi.

Fig 4. Manual scheduling vs using a genetic algorithm (GA) (source).
Bilgisayarlı görüde evrimsel tekniklerin rolü#
Makine öğrenimi uygulamalarının yanı sıra evrimsel algoritmalar, makinelerin görüntü ve video gibi görsel verileri yorumlamasını ve analiz etmesini sağlayan AI alanı olan computer vision gibi alanlarda da kullanılabilir. Devam eden araştırmalar, bunların görüntü segmentasyonu, nesne tespiti ve özellik çıkarımı gibi görevlerdeki potansiyelini inceler.
Bu algoritmalar birçok olası çözümü test edip en iyilerini seçerek çalışır, bu da onları esnek hale getirir ve karmaşık ve çeşitli görsel verileri işleyebilmelerini sağlar. Örneğin araştırmacılar, göğüs röntgenleri gibi tıbbi görüntüleri analiz eden yapay zeka sistemlerini iyileştirmek için evrimsel algoritma kullandılar.
Evrişimli sinir ağları (CNN) olarak bilinen bu AI sistemleri, COVID-19 gibi hastalıkların belirtilerini tespit etmek için görüntüleri tarayarak uzman radyologlar gibi davranır. Evrimsel algoritma; CNN'in yapısını ve ayarlarını otomatik olarak tasarlayıp ince ayar yaparak, birçok sürümü test ederek, en iyi performans gösterenleri tutarak ve kademeli olarak daha doğru modeller oluşturarak yardımcı olur. Bu süreç, doktorların COVID-19'u teşhis etmesine daha hızlı ve doğru bir şekilde yardımcı olabilecek AI araçlarının ortaya çıkmasını sağlar.
Evrimsel algoritmanın avantajları ve dezavantajları#
İşte evrimsel algoritmanın sunduğu temel avantajlardan bazıları:
- Küresel arama yeteneği: Evrimsel algoritma, çözüm alanının birçok bölümünü aynı anda keşfeder, bu da kötü çözümlerde takılıp kalma olasılığını azaltır.
- Sağlamlık: Belirsiz ve değişen ortamlarda, evrimsel algoritmanın rastgeleliği ve çeşitli çözümleri, sistemin tutarlı bir performans sürdürmesine yardımcı olur.
- Esneklik: Evrimsel algoritma, çözümlerin temsil edilme biçimini ve başarının ölçülme biçimini değiştirerek birçok farklı problem türünde iyi çalışacak şekilde ayarlanabilir.
Bu algoritmaların birçok faydası olsa da sınırlamalarının da farkında olmak önemlidir. İşte evrimsel algoritmanın bazı yaygın dezavantajları:
- Hesaplama maliyeti: Birçok olası çözümü tekrar tekrar değerlendirmek güçlü ve pahalı bilgisayar kaynakları gerektirebilir, bu da onları bazı uygulamalar için yavaş veya maliyetli hale getirir.
- Parametre hassasiyeti: Evrimsel algoritmanın başarısı genellikle popülasyon büyüklüğü, mutasyon oranı ve seçim yöntemleri gibi doğru başlangıç ayarlarını seçmeye büyük ölçüde bağlıdır. Kötü seçimler performansa zarar verebilir.
- Yavaş yakınsama: Çözümleri iyileştirmek için özellikle çok karmaşık problemler için birçok yineleme gerektirebilirler, bu da diğer yöntemlere kıyasla daha uzun çalışma sürelerine yol açabilir.
- Uygunluk fonksiyonu hassasiyeti: Kötü uygunluk fonksiyonu tasarımı, algoritmaların hedeflenen sorunu çözmek yerine kusurlardan faydalanmasına neden olabilir ve geliştiricileri gerçek performans konusunda yanıltabilir.
Öne çıkanlar#
Evrimsel algoritma, diğer yöntemlerin zorlanabileceği zorlu sorunları çözmek için harika bir seçenektir. Araştırmalar, yineleme yoluyla kademeli olarak iyileştiklerini ve çok çeşitli görevlere uyum sağlayabildiklerini göstermiştir. Yapay zeka gelişmeye ve evrilmeye devam ettikçe, bu algoritmaların birçok farklı uygulamada akıllı, verimli ve kendi kendine öğrenen teknolojiler geliştirmede daha da büyük bir rol oynaması bekleniyor.
Büyüyen topluluğumuza katıl ve AI kaynakları için GitHub deponmuza göz at. Çözüm sayfalarımızda tarımda computer vision ve loji̇stikte AI uygulamalarını keşfet. Computer vision projelerine başlamak için lisanslama seçeneklerimizi keşfet.






