tag Optimizasyon

Genetic Algorithm (Genetik Algoritma)

Bu sayfada Optimizasyon (Genetic Algorithm (Genetik Algoritma)) etiketi ile işaretlenmiş 22 yapay zeka kavramını bulabilirsiniz.

Genetik Algoritma (GA), biyolojik evrim ilkelerini — doğal seçilim, çaprazlama (crossover) ve mutasyon — bilgisayar optimizasyon problemlerine uygulayan, John Holland tarafından 1960'larda geliştirilen ve 1975 yılında "Adaptation in Natural and Artificial Systems" adlı kitabıyla sistematize edilen bir meta-sezgisel (metaheuristic) arama yöntemidir. Algoritma, her biri bir çözüm adayını temsil eden bireylerden oluşan bir popülasyonla başlar. Her birey, çözümün kodlanmış biçimi olan bir "kromozom" ile temsil edilir — geleneksel uygulamalarda bu ikili bit dizisidir, ancak modern uygulamalarda gerçel sayı vektörleri, permütasyonlar veya ağaç yapıları da kullanılır. Algoritmanın çekirdek döngüsü dört adımdan oluşur: (1) Uygunluk değerlendirmesi — her bireyin amaç fonksiyonuna göre puanlandırılması; (2) Seçim — yüksek uygunluklu bireylerin ebeveyn olarak tercih edilmesi (rulet tekerleği, turnuva veya sıralama seçimi gibi yöntemlerle); (3) Çaprazlama — iki ebeveynin kromozomlarının belirli bir noktadan birleştirilerek yavru üretilmesi; (4) Mutasyon — düşük olasılıkla rastgele gen değişikliği yapılarak yerel minimumdan kaçınma. Nesiller boyunca tekrar eden bu döngü, popülasyonu giderek daha iyi çözümlere doğru yönlendirir. Genetik Algoritmalar, gradyan tabanlı optimizasyon yöntemlerinin başarısız olduğu ayrık, çok modlu, çok boyutlu ve gürültülü problem uzaylarında güçlüdür. Geleneksel arama yöntemlerinin tıkandığı NP-zor problemlerde (gezgin satıcı problemi, çizelgeleme, ağ tasarımı) pratik çözümler üretir. Makine öğrenmesindeki uygulamaları arasında hiperparametre optimizasyonu, sinir ağı mimarisi arama (NAS — Neural Architecture Search) ve özellik seçimi öne çıkar. AutoML sistemleri, en iyi model konfigürasyonunu bulmak için evrimsel stratejileri kullanır. Bunun yanı sıra mühendislik tasarımı (aerodinamik optimizasyon, malzeme bilimi), lojistik (rota planlaması, kapasite optimizasyonu) ve biyoinformatik (protein katlama, gen ifadesi analizi) alanlarında yaygın kullanım bulur. Pratik uygulama için Python'da DEAP (Distributed Evolutionary Algorithms in Python) ve PyGAD kütüphaneleri kapsamlı API sunmaktadır. Genetik Programlama (GP), GA'nın bir uzantısı olup bireyleri sabit uzunluklu kodlar yerine program ağaçları olarak temsil eder ve sembolik regresyon gibi görevlerde kullanılır. Diferansiyel Evrim (Differential Evolution) ise sürekli uzaylar için optimize edilmiş yakın akraba bir yöntemdir.

code_blocks

Genetic Algorithm (Genetik Algoritma)

Genetik Algoritma (GA), biyolojik evrim ilkelerini — doğal seçilim, çaprazlama (crossover) ve mutasyon — bilgisayar optimizasyon problemlerine uygulayan, John Holland tarafından 1960'larda geliştirilen ve 1975 yılında "Adaptation in Natural and Artificial Systems" adlı kitabıyla sistematize edilen bir meta-sezgisel (metaheuristic) arama yöntemidir. Algoritma, her biri bir çözüm adayını temsil eden bireylerden oluşan bir popülasyonla başlar. Her birey, çözümün kodlanmış biçimi olan bir "kromozom" ile temsil edilir — geleneksel uygulamalarda bu ikili bit dizisidir, ancak modern uygulamalarda gerçel sayı vektörleri, permütasyonlar veya ağaç yapıları da kullanılır. Algoritmanın çekirdek döngüsü dört adımdan oluşur: (1) Uygunluk değerlendirmesi — her bireyin amaç fonksiyonuna göre puanlandırılması; (2) Seçim — yüksek uygunluklu bireylerin ebeveyn olarak tercih edilmesi (rulet tekerleği, turnuva veya sıralama seçimi gibi yöntemlerle); (3) Çaprazlama — iki ebeveynin kromozomlarının belirli bir noktadan birleştirilerek yavru üretilmesi; (4) Mutasyon — düşük olasılıkla rastgele gen değişikliği yapılarak yerel minimumdan kaçınma. Nesiller boyunca tekrar eden bu döngü, popülasyonu giderek daha iyi çözümlere doğru yönlendirir. Genetik Algoritmalar, gradyan tabanlı optimizasyon yöntemlerinin başarısız olduğu ayrık, çok modlu, çok boyutlu ve gürültülü problem uzaylarında güçlüdür. Geleneksel arama yöntemlerinin tıkandığı NP-zor problemlerde (gezgin satıcı problemi, çizelgeleme, ağ tasarımı) pratik çözümler üretir. Makine öğrenmesindeki uygulamaları arasında hiperparametre optimizasyonu, sinir ağı mimarisi arama (NAS — Neural Architecture Search) ve özellik seçimi öne çıkar. AutoML sistemleri, en iyi model konfigürasyonunu bulmak için evrimsel stratejileri kullanır. Bunun yanı sıra mühendislik tasarımı (aerodinamik optimizasyon, malzeme bilimi), lojistik (rota planlaması, kapasite optimizasyonu) ve biyoinformatik (protein katlama, gen ifadesi analizi) alanlarında yaygın kullanım bulur. Pratik uygulama için Python'da DEAP (Distributed Evolutionary Algorithms in Python) ve PyGAD kütüphaneleri kapsamlı API sunmaktadır. Genetik Programlama (GP), GA'nın bir uzantısı olup bireyleri sabit uzunluklu kodlar yerine program ağaçları olarak temsil eder ve sembolik regresyon gibi görevlerde kullanılır. Diferansiyel Evrim (Differential Evolution) ise sürekli uzaylar için optimize edilmiş yakın akraba bir yöntemdir.

arrow_forward
fingerprint

Genetic Algorithms (Genetik Algoritmalar)

Genetik Algoritmalar (GA), biyolojik evrimin temel mekanizmalarından — doğal seçilim, çaprazlama (crossover) ve mutasyon — ilham alarak tasarlanmış sezgisel arama ve optimizasyon algoritmalarıdır. 1975 yılında John Holland tarafından Michigan Üniversitesi'nde teorik temelleri atılan bu yaklaşım, özellikle gradyan tabanlı yöntemlerin yetersiz kaldığı karmaşık, çok boyutlu ve türevlenemeyen arama uzaylarında güçlü bir alternatif sunar. GA'nın çalışma prensibi beş temel adımdan oluşur: (1) Başlangıç popülasyonu — olası çözümleri temsil eden bireylerden (kromozomlardan) oluşan rastgele bir popülasyon oluşturulur; her birey genellikle binary bit dizisi, gerçek sayı vektörü veya permütasyon olarak kodlanır. (2) Uygunluk değerlendirmesi — her bireyin kalitesi, probleme özgü bir uygunluk (fitness) fonksiyonuyla ölçülür. (3) Seçilim — daha yüksek uygunluk değerine sahip bireyler ebeveyn olarak seçilme şansını artırır; rulet tekerleği, turnuva ve sıra-tabanlı seçim en yaygın stratejilerdir. (4) Çaprazlama — iki ebeveynin genetik materyali birleştirilerek yeni çocuk bireyler üretilir; tek nokta, iki nokta ve üniform çaprazlama popüler yöntemlerdir. (5) Mutasyon — küçük rastgele değişiklikler eklenerek genetik çeşitlilik korunur ve yerel optimumlara takılma riski azaltılır. Bu döngü, belirlenen nesil sayısına ulaşılana ya da uygunluk eşiği sağlanana dek tekrarlanır. Her nesilde popülasyon ortalama kalitesi artar; en iyi birey "elit seçim" stratejisiyle bir sonraki nesile doğrudan aktarılabilir (elitizm). Genetik Algoritmalar; makine öğrenmesinde hiperparametre optimizasyonu, lojistik rota planlaması (Gezgin Satıcı Problemi), elektronik devre tasarımı, protein katlama, oyun yapay zekası ve NAS (Neural Architecture Search) gibi geniş bir uygulama yelpazesine sahiptir. Simulated Annealing ve Parçacık Sürü Optimizasyonu (PSO) ile sıklıkla karşılaştırılır; GA'nın temel avantajı, paralel popülasyon keşfiyle çok-modlu fonksiyonlarda yerel optimumlardan kaçabilmesidir. Hesaplama maliyetinin yüksek olabileceği ve sonuçların deterministik olmadığı başlıca kısıtlamalar arasındadır.

arrow_forward
code_blocks

Gradient Boosting Nedir? Gradyan Artırma Algoritması (Gradyan Artırma)

Gradient Boosting (Gradyan Artırma), makine öğreniminde zayıf öğrenicileri art arda sıralı biçimde ekleyerek güçlü ve yüksek doğruluklu bir tahmin modeli oluşturan bir topluluk öğrenme algoritmasıdır. Random Forest gibi diğer topluluk yöntemlerinin ağaçları paralel olarak eğitmesinin aksine, Gradient Boosting her yeni ağacı bir önceki modelin kalan hatasını (artık değer, residual) azaltacak şekilde sıralı olarak inşa eder. Algoritmanın çalışma mantığı şu adımlarla özetlenebilir: İlk adımda verilen hedef değer için basit bir temel tahmin yapılır; bu genellikle ortalama değerdir. Sonraki adımda mevcut tahmin ile gerçek değer arasındaki farklar (artık değerler) hesaplanır. Bir sonraki karar ağacı bu artık değerleri tahmin etmek üzere eğitilir. Yeni ağacın katkısı, aşırı öğrenmeyi önlemek için öğrenme hızı (learning rate) parametresiyle ölçeklendirilerek mevcut modele eklenir. Bu döngü, belirlenen ağaç sayısına ulaşılana kadar tekrar eder; her yinelemede model bir öncekinin en zayıf noktasına odaklanır. Gradient Boosting'in matematiksel temeli gradyan iniş (gradient descent) optimizasyonuna dayanır. Ağaçlar, seçilen kayıp fonksiyonunu minimize edecek şekilde gradyan yönünde oluşturulur; bu yapı, algoritmanın regresyon, sınıflandırma ve sıralama gibi farklı problem tiplerine kolayca uyarlanmasını sağlar. Algoritmanın en belirgin avantajı, tablolar halindeki yapısal veriyle (structured/tabular data) olağanüstü yüksek doğruluk sağlamasıdır. Kaggle yarışmalarında yıllardır zirvede yer alan bu aile, XGBoost, LightGBM ve CatBoost gibi modern kütüphanelerle bellek ve hız açısından da optimize edilmiştir. XGBoost level-wise (satır bazlı) ağaç büyümesiyle daha kararlı sonuçlar üretirken LightGBM ise leaf-wise (yaprak bazlı) büyüme ve histogram tabanlı bölme ile büyük veri setlerinde çok daha hızlı çalışır. Dezavantajları arasında aşırı öğrenmeye (overfitting) yatkınlık, hiperparametre ayarının (n_estimators, learning_rate, max_depth, min_samples_split) hassasiyeti ve büyük veri setlerinde paralel eğitimin zorluğu sayılabilir. Öğrenme hızı düşük ve ağaç sayısı yüksek tutulduğunda daha genelleştirilebilir modeller elde edilir; ancak bu dengenin bulunması kapsamlı çapraz doğrulama (cross-validation) gerektirir.

arrow_forward
settings_input_component

Hyperparameter Tuning (Hiperparametre Optimizasyonu)

Hiperparametre optimizasyonu (Hyperparameter Tuning), makine öğrenimi modelinin eğitim sürecine başlamadan önce araştırmacı veya mühendis tarafından belirlenen kontrol değişkenlerinin — öğrenme hızı (learning rate), ağaç derinliği, katman sayısı, düzenlileştirme katsayısı gibi — en uygun kombinasyonunun sistematik biçimde aranması işlemidir. Makine öğreniminde iki farklı parametre türü bulunur: modelin eğitim verisinden öğrendiği "parametreler" (ağırlıklar, bias değerleri) ve eğitimden önce dışarıdan belirlenen "hiperparametreler". Hiperparametreler model mimarisini ve öğrenme dinamiklerini doğrudan şekillendirir; yanlış seçilen bir hiperparametre seti, en kaliteli veriyle bile zayıf sonuçlar doğurabilir. Başlıca hiperparametre arama yöntemleri şöyle sıralanabilir: Grid Search (Izgara Arama): Belirlenen aralıklar içindeki tüm olası kombinasyonları dener; garanti sonuç verir ancak hesaplama maliyeti kombinasyon sayısıyla katlanarak artar. Az sayıda hiperparametre ve dar aralıklar için uygundur. Random Search (Rasgele Arama): Kombinasyonları rastgele örnekler; Grid Search'e kıyasla genellikle daha kısa sürede benzer kalitede sonuç üretir. Yüksek boyutlu arama uzaylarında tercih edilir. Bayesian Optimization: Önceki denemelerin sonuçlarını kullanarak sonraki adımda hangi kombinasyonu deneyeceğini olasılık modeline göre seçer. Deneme sayısını minimize ederek en iyi hiperparametrelere ulaşmayı hedefler; derin öğrenme gibi maliyetli modellerde yaygındır. Optuna, Ray Tune ve Hyperopt bu yaklaşımı uygulayan popüler kütüphanelerdir. Automated ML (AutoML): Hiperparametre aramasını tamamen otomatikleştirir. Google AutoML, H2O.ai ve Keras Tuner gibi araçlar hem model seçimi hem de parametre optimizasyonunu arka planda yürütür. Hiperparametre optimizasyonu sürecinde çapraz doğrulama (cross-validation) kritik bir rol oynar: her aday kombinasyon, verinin farklı katlarında test edilerek aşırı uyumu (overfitting) önleyecek şekilde değerlendirilir. Özellikle derin sinir ağlarında learning rate, momentum ve batch size değerlerinin doğru ayarlanması, model başarısını belirleyici ölçüde etkiler. Pratik projelerde hiperparametre arama sürecinin toplam eğitim süresinin %30–50'sini oluşturduğu görülmektedir.

arrow_forward
grid_4x4

Jacobian Matrix (Jacobian Matrisi)

Jacobian Matrisi, birden fazla değişkene bağlı olan vektör değerli bir fonksiyonun birinci dereceden kısmi türevlerini düzenli biçimde gösteren matematiksel yapıdır. f: Rⁿ → Rᵐ türünde bir fonksiyon için Jacobian, m×n boyutunda bir matristir; her (i,j) girişi ∂fᵢ/∂xⱼ kısmi türevine eşittir. Bu matris, bir noktanın yakınında fonksiyonun nasıl değiştiğini lineer olarak özetler. Tarihsel köken açısından Jacobian, 19. yüzyılda Alman matematikçi Carl Gustav Jacob Jacobi tarafından çok değişkenli integrallerde koordinat dönüşümlerini incelemek amacıyla geliştirilmiştir. Çok boyutlu koordinat değişimlerinde "Jacobian determinantı" alan ölçekleme faktörü olarak ortaya çıkar ve integralin doğru hesaplanmasını sağlar. Derin öğrenmedeki rolü bakımından Jacobian, geri yayılım (backpropagation) algoritmasının matematiksel çekirdeğinde yer alır. Bir sinir ağı katmanı y = f(x) dönüşümü gerçekleştirdiğinde, kayıp fonksiyonunun x'e göre gradyanı zincir kuralıyla şöyle hesaplanır: ∂L/∂x = Jᵀ · (∂L/∂y). Pratikte tam Jacobian matrisi belleğe sığmayabilir; büyük mimarilerde giriş ve çıkış boyutları milyonları aşar. Bu nedenle modern otomatik türev kütüphaneleri (PyTorch autograd, JAX) gerçekte Jacobian matrisini oluşturmaz — yalnızca Jacobian-vektör çarpımlarını (JVP, ileri mod) veya vektör-Jacobian çarpımlarını (VJP, geri mod) hesaplar. İleri mod otomatik türevleme JVP kullanır ve küçük giriş — büyük çıkış durumlarında verimlidir. Geri mod (reverse-mode) ise VJP kullanır ve PyTorch'un backward() çağrısının temelidir; büyük giriş — tek kayıp skaleri durumlarında (tipik sinir ağı eğitimi) tercih edilir. Diğer uygulamalar arasında şunlar sayılabilir: normalizing flow modellerinde olasılık yoğunluğu hesabı için Jacobian determinantı kullanılır; meta-öğrenme algoritması MAML'ın iç döngü gradyanları Jacobian zincirlemesi gerektirir; robotik kol kinematiklerinde eklem açılarından uç-efektör konumuna dönüşüm Jacobian aracılığıyla ifade edilir. Kaybolan gradyan sorununu (vanishing gradient) anlamak için de Jacobian spektrumu incelenir: Jacobian'ın özdeğerleri 1'den küçükse gradyanlar katmanlar boyunca sıfıra yaklaşır.

arrow_forward
🐜

Karınca Kolonisi Optimizasyonu (ACO) (Karınca Kolonisi Optimizasyonu)

Karınca Kolonisi Optimizasyonu (ACO), Marco Dorigo tarafından 1992 yılındaki doktora tezinde geliştirilen, karıncaların feromon izi bırakarak yiyecek kaynağına en kısa yolu bulma davranışını matematiksel olarak modelleyen meta-sezgisel bir optimizasyon algoritmasıdır. Biyolojik karıncalar, kısa güzergahlarda daha sık geçiş yaptığından bu yollarda feromon birikimi artar; uzun yollardaki feromon ise zamanla buharlaşarak solar. Bu olasılıksal mekanizma, koloniyi zamanla global optimuma yakınsatır. Algoritmada her iterasyonda bir grup sanal "yapay karınca" çözüm uzayını keşfeder. Her karınca, mevcut feromon yoğunluğunu ve sezgisel bilgiyi (örn. kenar uzunluğunu) birleştiren stokastik bir kuralla hareket kararları verir. İterasyon tamamlandığında iyi çözümler bulan karıncalar feromonlarını biriktirir; tüm güzergahlardaki feromonlar ρ (rho) buharlaşma katsayısıyla kısmi olarak azalır. Birikim ve buharlaşma dengesi, hem umut verici bölgeleri yoğun araştırmayı hem de yeni alanları keşfetmeyi olanaklı kılar. Temel varyantlar arasında Ant Colony System (ACS, 1997) yerel feromon güncellemesi ve yalnızca küresel en iyi yolun güncellenmesiyle daha hızlı yakınsama sunar; MAX-MIN Ant System (MMAS) feromon değerlerini belirlenen alt ve üst sınırlar arasında tutarak erken yakınsamayı engeller; Rank-Based AS (ASrank) ise yalnızca sıralı en iyi karıncaların feromon bırakmasına izin verir. ACO, Gezgin Satıcı Problemi (TSP), Araç Rota Planlama (VRP), makine çizelgeleme, internet paketi yönlendirme (AntNet protokolü) ve protein katlama gibi kombinatoryal optimizasyon görevlerinde yaygın olarak kullanılır. Hibrit ACO-Derin Öğrenme modelleri büyük ölçekli lojistik ve enerji şebekesi optimizasyonunda aktif araştırma konusudur. Marco Dorigo, ACO ve sürü zekası alanındaki katkılarıyla 2022 IEEE Frank Rosenblatt Ödülü'nü almıştır. Güçlü yanları arasında dinamik ve çok modlu arama uzaylarında etkinliği, paralel uygulamaya uygunluğu ve yerel optimum tuzaklarından çıkma kapasitesi yer alır. Sınırlılıkları ise sürekli fonksiyon optimizasyonuna kısıtlı uyumu ve α, β, ρ hiperparametrelerinin problem bazında hassas ayar gerektirmesidir.

arrow_forward
trending_down

Loss Function (Kayıp (Maliyet) Fonksiyonu)

Kayıp fonksiyonu (loss function), makine öğrenmesi modelinin tahminleri ile gerçek etiketler arasındaki farkı sayısal olarak ölçen matematiksel bir işlevdir. Eğitim sürecinin kalbi olan bu fonksiyon, modelin ne kadar 'yanlış' olduğunu bir skalar değere dönüştürür; optimizasyon algoritması da bu değeri minimize etmek için ağırlıkları günceller. Görev türüne göre farklı kayıp fonksiyonları kullanılır. İkili sınıflandırmada ikili çapraz entropi (binary cross-entropy), çok sınıflı görevlerde kategorik çapraz entropi (categorical cross-entropy) standarttır. Bu fonksiyonlar, modelin olasılık çıktıları ile gerçek etiketler arasındaki log-olasılık farklılığını ölçer ve modeli güvenilir olasılık kalibrasyonuna yönlendirir. Regresyon görevlerinde ortalama kare hata (Mean Squared Error, MSE) ve ortalama mutlak hata (Mean Absolute Error, MAE) en yaygın seçeneklerdir. MSE büyük hatalara ağırlık verirken MAE tüm hatalara eşit davranır; aykırı değer (outlier) hassasiyetine göre bu ikisi arasında seçim yapılır. Huber kaybı ise ikisinin karışımı olarak hem büyük hem küçük hatalarda dengeli davranır. Kayıp fonksiyonu, düzenlileştirme terimleriyle genişletilebilir. L1 (Lasso) ve L2 (Ridge) düzenlileştirmesi, kayıp değerine ağırlıkların büyüklüğüne orantılı bir ceza ekleyerek modelin aşırı öğrenmesini frenler ve seyrek çözümler üretmesini teşvik eder. GAN'larda, contrastive learning'de ve RL'de özel kayıp fonksiyonları (adversarial loss, triplet loss, policy gradient) görevin dinamiklerine göre tasarlanır. Seçilen kayıp fonksiyonu doğrudan optimizasyon yüzeyini şekillendirir ve bu nedenle model eğitiminin en kritik tasarım kararlarından birini oluşturur.

arrow_forward
code_blocks

Monte Carlo Simülasyonu

Monte Carlo Simülasyonu, belirsizlik içeren sistemleri analiz etmek için büyük sayıda rastgele deney (simülasyon) çalıştıran istatistiksel bir hesaplama tekniğidir. Türkçede Monte Carlo Benzetimi olarak da anılır. Analitik çözümün aşırı karmaşık ya da imkânsız olduğu durumlarda, bu yöntem olası sonuçların olasılık dağılımını ampirik olarak tahmin eder. Yöntem, 1940'lı yıllarda Manhattan Projesi kapsamında nükleer madde difüzyonunu hesaplamak için Stanislaw Ulam ve John von Neumann tarafından geliştirilmiştir. İsmi, şans oyunlarıyla ünlü Monaco'nun Monte Carlo bölgesinden gelir; tesadüfilik ve olasılığı vurgular. Temel mekanizma üç adımdan oluşur: (1) giriş parametrelerine ait olasılık dağılımları tanımlanır, (2) bu dağılımlardan rastgele örnekler çekilerek simülasyon defalarca çalıştırılır, (3) çıktıların istatistiksel özeti hesaplanır. Hata payı 1/√n oranında azaldığından örnek sayısını dört katına çıkarmak hassasiyeti iki katına çıkarır. Yapay zeka ve makine öğrenmesinde Monte Carlo yöntemleri kritik rollere sahiptir. Monte Carlo Tree Search (MCTS) algoritması, AlphaGo ve AlphaZero'nun satranç ile Go oyunlarındaki olağanüstü başarısının temel karar mekanizmasıdır: ağaç düğümlerini rastgele simülasyonlarla değerlendirerek en umut verici hamleyi seçer. Markov Chain Monte Carlo (MCMC) yöntemi, Bayes çıkarımında analitik olarak hesaplanamayan posterior dağılımları örneklemek için kullanılır. Pekiştirmeli öğrenmede ise Monte Carlo politika değerlendirmesi, bir ajanın çevresiyle etkileşiminden elde edilen tam bölüm ödüllerini öğrenmek için tercih edilir. GPU paralelleştirmesi modern Monte Carlo hesaplamalarını dramatik biçimde hızlandırır; NumPy, PyTorch ve JAX kütüphaneleri milyonlarca örnekle vektörel simülasyon desteği sunar.

arrow_forward
code_blocks

Parçacık Sürü Optimizasyonu (PSO)

Parçacık sürü optimizasyonu (İng. Particle Swarm Optimization, PSO), James Kennedy ve Russell Eberhart tarafından 1995 yılında IEEE Uluslararası Sinir Ağları Konferansı'nda önerilen, sürü zekasına dayalı bir meta-sezgisel optimizasyon algoritmasıdır. Algoritmanın temel esin kaynağı, merkezi bir yönlendirme olmaksızın koordineli davranan kuş sürüleri ve balık okullarının kolektif davranışıdır. PSO, bir "sürü" oluşturan aday çözümler kümesiyle çalışır; her aday çözüme "parçacık" adı verilir. Her parçacık, arama uzayında bir konum (X) ve bir hız vektörüyle (V) temsil edilir. Optimizasyon sürecinde her parçacık iki bilgiden yararlanır: kendi geçmişte ulaştığı en iyi konum (kişisel en iyi, pBest) ve sürünün tümünün şimdiye kadar bulduğu en iyi konum (küresel en iyi, gBest). Hız güncelleme formülü şu şekildedir: V(t) = w·V(t-1) + c₁·r₁·(pBest - X) + c₂·r₂·(gBest - X). Burada w atalet ağırlığı, c₁ bilişsel katsayı, c₂ sosyal katsayı; r₁ ve r₂ ise [0,1] aralığındaki rastgele sayılardır. Shi ve Eberhart (1998), w değerini yinelemeler boyunca 0,9'dan 0,4'e doğrusal olarak azaltmanın küresel keşif ile yerel sömürü arasındaki dengeyi iyileştirdiğini göstermiştir. Makine öğrenmesinde PSO; yapay sinir ağlarında hiper-parametre optimizasyonu (katman sayısı, öğrenme hızı, batch boyutu), sinir mimarisi araması (NAS) ve özellik seçimi için yaygın biçimde kullanılır. Araştırmalar, 20-50 parçacıktan oluşan küçük bir sürünün bile etkili sonuçlar ürettiğini göstermektedir. Başlıca varyantları arasında Uyarlanabilir PSO (APSO, Zhan vd. 2009), zaman değişkenli ivme katsayılı PSO (PSO-TVAC) ve kombinatoryal problemler için Ayrık PSO sayılabilir. Genetik algoritmalarla karşılaştırıldığında PSO, çaprazlama ve mutasyon operatörlerine gerek duymadan daha az parametreyle çalışır; bu durum özellikle sürekli değerli optimizasyon problemlerinde daha hızlı yakınsama sağlar. Başlıca sınırlılığı erken yakınsamadır: parçacıklar küresel en iyiye hızla yöneldiğinde sürü çeşitliliği azalır ve algoritma yerel bir optimumda takılı kalabilir.

arrow_forward
code_blocks

Prescriptive Analytics (Prescriptif Analitik)

Prescriptif analitik, veri analitiğinin en gelişmiş basamağını temsil eder. Tanımlayıcı analitik "ne oldu?" sorusunu yanıtlarken, teşhis analitik "neden oldu?" sorusunu, öngörüsel analitik "ne olacak?" sorusunu ve prescriptif analitik ise "ne yapmalıyız?" sorusunu yanıtlar. Bu son basamak, yalnızca geleceği tahmin etmekle kalmaz; aynı zamanda belirlenen hedeflere ulaşmak için optimal eylem planları önerir. Prescriptif analitiğin temel mekanizması, optimizasyon algoritmalarını tahmine dayalı modellerle birleştirmektir. Doğrusal programlama ve tamsayılı programlama gibi operasyon araştırması teknikleri, kısıt koşulları altında en iyi çözümü bulmak için kullanılır. Monte Carlo simülasyonu ise olası senaryoları binlerce kez çalıştırarak belirsizlik altında karar almayı destekler. Modern prescriptif sistemler bu klasik yöntemleri pekiştirmeli öğrenme ve büyük dil modelleriyle güçlendirerek dinamik ortamlarda gerçek zamanlı kararlar üretebilmektedir. Prescriptif analitiğin uygulama alanları son derece geniştir. Tedarik zinciri yönetiminde perakende devleri envanter optimizasyonu için prescriptif modellerden yararlanmaktadır. Sağlık sektöründe hastane kaynak planlaması ve ilaç dozaj optimizasyonu bu yaklaşımla yönetilir. Enerji sektöründe yenilenebilir kaynak dağıtımı ve şebeke dengeleme prescriptif modellerle optimize edilir. Finansta portföy optimizasyonu ve risk yönetimi bu tekniğin klasik uygulama alanlarıdır. Prescriptif analitik uygulamalarının başarısı büyük ölçüde veri kalitesine ve kısıt tanımlarının doğruluğuna bağlıdır. Açıklanabilir yapay zeka teknikleri, karar alıcıların güvenini kazanmak için prescriptif sistemlerle giderek daha sık entegre edilmektedir. AB Yapay Zeka Yasası kapsamında yüksek riskli sektörlerdeki otomatik karar sistemleri insan denetimi gerektirmekte olup bu durum prescriptif analitik tasarımını doğrudan etkilemektedir.

arrow_forward
fitness_center

Quantization (Kuantizasyon (Model Küçültme))

Quantization (niceleme), sinir agi modellerindeki parametre degerlerinin yuksek hassasiyetli sayisal formattan (genellikle 32-bit kayan nokta, float32) daha dusuk bit genisligine (8-bit tam sayi veya 4-bit gibi) donusturulme islemidir. Bu donusum model boyutunu kucultmesi, cikarim hizini artirmasi ve guc tuketimini dusurmesinin yaninda, modeli kaynak kisitli ortamlarda - ornegin akilli telefon veya kenarda calisabilen cihazlarda - calistirmaya olanak tanir. Nicelemenin temelinde bir uzlasim yatar: hassasiyet azaldikca model hafizasi ve hesaplama maliyeti duser, ancak tahmin kalitesi potansiyel olarak azalabilir. Uygulamada, ozellikle INT8 dzeyinde, bu kalite kaybi cogu gorev icin ihmal edilebilir seviyede kalir. GPTQ veya bitsandbytes gibi kutuphaneler, niceleme hatasini en aza indirmek icin kalibrasyon verisi kullanarak agirlik matrislerini yeniden optimize eder. Iki ana yaklasim mevcuttur. Post-Training Quantization (PTQ) halihazirda egitilmis bir modele uygulanir; ekstra egitim gerektirmez ve hizlidir. Quantization-Aware Training (QAT) ise niceleme etkisini eğitim dongusu icerisine dahil eder; model, daha dusuk hassasiyetle bile dogru tahmin uretmeyi ogrenir. QAT genellikle PTQ'ya kiyasla daha iyi nihai kalite sunar ama ek hesaplama maliyeti getirir. Buyuk dil modellerinin (LLM) giderek buyumesiyle quantization zorunlu bir pratik haline gelmistir. GPT-3 seviyesinde bir model tam hassasiyetle yuzlerce gigabayt RAM gerektirir; INT4 nicelemeyle bu rakam onlarca gigabayta iner ve ticarette satilan bir laptopla calistirmak mumkun olur. llama.cpp projesi ve GGUF formati, bu olasiligi genis bir topluluga acmistir: Q4_K_M, Q5_K_S gibi semboller bit genisligi ile kalite stratejisini kodlar. Donanim ekosistemi de nicelemeyi etkin sekilde destekler. NVIDIA'nin Tensor Core mimarisi INT8 ve FP8 cikarimini donanim katmaninda hizlandirir; bu sayede veri merkezi GPU'larinda ayni enerji butcesiyle cok daha yuksek islem hacmi elde edilir. Apple Silicon'un Unified Memory mimarisi ise CPU ve GPU'nun ayni bellek havuzunu paylasmasina izin vererek quantized LLM'lerin tuketu cihazlarda akici calismasi icin dogal bir avantaj sunar. **Sik Sorulan Sorular** **INT8 ile INT4 niceleme arasinda kalite farki buyuk mudur?** INT8, cogulukla ihmal edilebilir kalite kaybı uretir. INT4 ise modele ve goreve bagimlidir: genel dil anlama gorevlerinde sinirli etki gorulurken kucuk modeller veya hassas gorevlerde kayip daha belirgin olabilir. **Bir modeli niceleme yapmak icin ne gereklidir?** bitsandbytes veya AutoGPTQ kutuphanesiyle birkaç satirda Python kodla herhangi bir Hugging Face modeli niceleye bilirsiniz; kalibrasyon icin kucuk bir veri kumesi onerilen uygulamalardan biridir. **Quantization modelin egitim verilerini degistirir mi?** Hayir. Niceleme yalnizca cikarim asamasini etkiler; egitim verisi veya egitim sureci degismez. **Hangi modeller niceleye en uyundur?** Buyuk, asiri parametreli modeller genellikle niceleye daha direnclidir; parametreler arasinda islevsel fazlalik bulundugu icin bazi bilgi kaybi tolere edilebilir.

arrow_forward
thermostat

Simulated Annealing (Benzetimli Tavlama)

Benzetimli Tavlama (Simulated Annealing), fizikteki metal tavlama sürecinden esinlenen olasılıksal bir optimizasyon algoritmasıdır. Metal tavlama işleminde erimiş metal yavaşça soğutularak atom dizilişi minimum enerji durumuna ulaşır; benzer şekilde bu algoritma da çözüm uzayında küresel minimumu (veya maksimumu) aramak için kontrollü bir soğuma stratejisi kullanır. Algoritma 1983 yılında Scott Kirkpatrick, C. Daniel Gelatt Jr. ve Mario P. Vecchi tarafından önerilmiştir. Benzetimli Tavlama, yerel minimumlara takılmaktan kaçınmak için başlangıçta yüksek bir sıcaklık parametresiyle çalışır. Bu aşamada kötü çözümleri belirli bir olasılıkla kabul edebilir. Sıcaklık yavaş yavaş azaldıkça (soğuma programı), algoritma giderek daha seçici hale gelir ve yalnızca daha iyi çözümleri kabul etmeye başlar. Bu sayede evrimsel süreçlerde görülen lokal optimallerden kaçış mekanizmasına benzer bir davranış elde edilir. Algoritma, pratik uygulamalarda son derece geniş bir kullanım alanına sahiptir: gezgin satıcı problemi (TSP), çizelgeleme optimizasyonu, devre tasarımı, portföy optimizasyonu ve ağ yönlendirme problemleri bunların başında gelir. Derin öğrenme çağında bile hiperparametre optimizasyonu ve sinir ağı ağırlıklarının başlangıç değerlerini ayarlamak için kullanılmaktadır. Temel parametre olan soğuma hızı (cooling schedule), algoritmanın başarısını doğrudan etkiler. Çok hızlı soğuma lokal minimuma takılmaya; çok yavaş soğuma ise aşırı uzun çalışma sürelerine yol açar.

arrow_forward
code_blocks

Sürü Zekası (Sürü Zekası)

Sürü zekası (swarm intelligence), bireysel ajanların birbirleriyle ve çevreleriyle yerel etkileşimleri sonucunda gruba özgü kolektif zeka davranışının kendiliğinden ortaya çıkmasını inceleyen hesaplama paradigmasıdır. Terimi, biyolog Guy Theraulaz ve matematikçi Eric Bonabeau 1990'ların başında kavramsallaştırmış; ilham kaynağı ise karınca kolonileri, arı kovanları ve kuş sürülerindeki merkezi koordinasyon olmaksızın gerçekleşen etkin problem çözme davranışıdır. Sürü zekasının iki temel özelliği öne çıkar: birincisi öz-örgütlenme, yani basit bireysel kurallardan küresel yapıların kendiliğinden doğması; ikincisi dağıtık kontrol, yani tek noktada merkezileşmiş otorite olmaksızın işleyen sistemdir. Bu özellikler, sürü tabanlı algoritmaların donanım arızalarına ve ortam değişimlerine karşı yüksek dayanıklılık sergilemesini sağlar. En yaygın sürü zekası algoritmaları şunlardır: Karınca Kolonisi Optimizasyonu (ACO): Marco Dorigo'nun 1992'de önerdiği bu yöntemde yapay karıncalar, feromon izi mantığıyla graflar üzerinde optimal yolları keşfeder. Gezgin satıcı problemi, ağ yönlendirmesi ve lojistik optimizasyonunda başarıyla uygulanır. Parçacık Sürüsü Optimizasyonu (PSO): Kennedy ve Eberhart'ın 1995'te geliştirdiği PSO, kuş ve balık sürüsü davranışından esinlenir. Her parçacık, kendi en iyi konumu ve sürünün küresel en iyisi bilgisiyle hareketi günceller; sürekli optimizasyon problemlerinde ve derin öğrenme hiperparametre ayarında tercih edilir. Yapay Arı Kolonisi (ABC): Karaboğa'nın tasarladığı bu algoritma, keşifçi, sömürücü ve gözetici arı rolleriyle çok modlu fonksiyonları başarıyla optimize eder. Günümüzde sürü zekası; nöral mimari araması (NAS), çok-etmenli robot koordinasyonu, akıllı şebeke yönetimi ve otonom araç filolarının denetiminde yeni uygulama alanları bulmaktadır. Pekiştirmeli öğrenme ile birleştirilen hibrit yaklaşımlar, gradyan tabanlı yöntemlerin yetersiz kaldığı süreksiz veya çok modlu arama uzaylarında üstün sonuçlar üretmektedir.

arrow_forward
scatter_plot

Swarm AI (Sürü Yapay Zeka)

Sürü Yapay Zeka (Swarm AI), doğadaki karıncaların, arıların veya kuş sürülerinin sergilediği merkezi olmayan, kolektif akıldan ilham alan bir yapay zeka paradigmasıdır. Geleneksel yapay zeka sistemleri tek ve güçlü bir merkezi karar vericiye dayanırken, sürü zekası yüzlerce veya binlerce basit otonom etmenin (agent) yerel etkileşimleri aracılığıyla küresel düzeyde akıllı davranış sergilemesini sağlar. Temel prensipler üç sütun üzerine kuruludur. İlk olarak öz-örgütlenme: sistem herhangi bir dış yönlendirme olmaksızın koordineli davranış geliştirir; kuş sürülerinin şahin saldırısına anında tepki vermesi bunun en güzel örneğidir. İkinci olarak stigmerji: karınca kolonilerinde olduğu gibi etmenler feromon benzeri dolaylı işaretlerle iletişim kurar; kimin ne yapacağını merkezi bir otorite değil, yerel bilgi ve çevre geri bildirimi belirler. Üçüncüsü hata toleransı: bireysel etmenin arızalanması sistemin bütününü bozmaz, zira hiçbir etmen kritik bir merkezi rol üstlenmez. Bu özellik özellikle askeri drone filolarını ve dağıtık sensör ağlarını değerli kılar. Başlıca algoritmalar arasında Karınca Kolonisi Optimizasyonu (ACO), Parçacık Sürü Optimizasyonu (PSO) ve Yapay Arı Kolonisi (ABC) öne çıkar. ACO, feromon birikimi ve buharlaşma mekanizmasıyla kombinatoryal optimizasyon problemlerinde güçlü sonuçlar verirken, PSO sürekli arama uzaylarında sinir ağı hiperparametre ayarlaması ve nöral mimari arama (NAS) alanlarında kullanılır. Craig Reynolds'ın 1986'da geliştirdiği Boids simülasyonu ise yalnızca üç kuralla (hizalanma, birleşme, ayrılma) kuş sürüsü ve balık okulu davranışlarını modellemekte; robotik koordinasyon alanının temel taşını oluşturmaktadır. Günümüzde sürü yapay zekası farklı alanlarda etkin biçimde kullanılmaktadır: Amazon Kiva lojistik robotları depo operasyonlarını merkezi komuta gerek duymadan yönetir; askeri drone sürüleri radar savunmalarını aşacak şekilde programlanır; tarımda koordineli ilaçlama drone'ları maliyet ve çevre etkisini azaltır; finans sektöründe çok-etmenli piyasa simülasyonları trader davranışını modeller. 2020'lerden itibaren büyük dil modellerinin yaygınlaşmasıyla sürü zekası çok-etmenli LLM çerçevelerinde (CrewAI, AutoGPT, LangGraph) yeni bir anlam kazanmıştır. Bu sistemlerde her LLM ajanı karmaşık bir görevin alt bölümünü üstlenerek merkezi bir orkestratörün müdahalesi olmadan sonuca ulaşır. Temel zorluklar hâlâ geçerliliğini korur: iletişim gecikmesi ile koordinasyon kalitesi dengesi, yerel optimuma takılma riski ve bir etmenin ele geçirilmesiyle tüm sistemin manipüle edilmesi tehlikesi.

arrow_forward
trending_down

Vanishing Gradient Problem (Kaybolan Gradyan Problemi)

Kaybolan Gradyan Problemi (İngilizce: Vanishing Gradient Problem), derin sinir ağlarını geri yayılım (backpropagation) algoritmasıyla eğitirken ortaya çıkan temel bir optimizasyon sorunudur. Ağdaki gradyanlar, geri yayılım sırasında çıkış katmanından girişe doğru ilerlerken her katmanda küçük değerlerle çarpılır. Sonuç olarak gradyanlar üstel biçimde küçülür ve ağın ilk katmanlarına ulaştığında pratikte sıfıra yaklaşır. Bu durum ilk katmanların güncellenmemesine yol açar; ağın bu erken katmanları neredeyse öğrenmez hale gelir. Sorunun ana nedeni, sigmoid ve tanh gibi aktivasyon fonksiyonlarının türevlerinin oldukça dar bir aralıkta (0 ile 0.25 arasında) kalmasıdır. Geri yayılım zincirinde her katman için bu küçük türev değerleriyle çarpma işlemi yapıldığından, 10 katmanlı bir ağda gradyan kolaylıkla (0.25)^10 ≈ 0.000001 gibi ihmal edilebilir bir değere düşebilir. Tarihsel açıdan bu problem, 1991 yılında Sepp Hochreiter'ın diplomasında kapsamlı biçimde analiz edildi. Bu analiz, özellikle RNN mimarilerinde uzun vadeli bağımlılıkların öğrenilememesi sorununu da açıklamaktaydı; bu nedenle Hochreiter ve Schmidhuber 1997'de LSTM mimarisini geliştirdi. Modern derin öğrenmede bu problemi hafifletmek için çeşitli yöntemler kullanılmaktadır. ReLU aktivasyon fonksiyonu, pozitif bölgede türevi 1 olduğundan gradyan akışını korur. Batch Normalization, katman çıktılarını normalleştirerek gradyanları dengeli tutar. ResNet'in temelini oluşturan Skip Connection (artık bağlantı), gradyanın katmanları atlayarak doğrudan iletilmesini sağlar. Xavier ve He başlatması gibi ağırlık başlatma stratejileri başlangıç gradyan dağılımını stabilize eder. LSTM ve GRU, özel geçit mekanizmalarıyla uzun vadeli gradyan akışını korur. Kaybolan Gradyan Problemi, Patlayan Gradyan Problemi (Exploding Gradient Problem) ile zıt bir çift oluşturur: birinde gradyanlar sıfıra çökerken diğerinde kontrolsüzce büyür. İkisi de derin ağ eğitiminin temel dinamiklerini etkiler ve modern mimari tasarım kararlarını doğrudan şekillendirir.

arrow_forward
schema

Algoritma (Algoritma)

Algoritma, belirli bir problemi çözmek veya bir görevi gerçekleştirmek için izlenen, sıralı ve sonlu adımlar dizisidir. Programlamadan matematiğe, gündelik hayattaki tariflerden arama motorlarına kadar her sistemin temelinde algoritmalar yatar. Bir algoritmanın dört temel özelliği vardır: sonlu sayıda adımdan oluşması, her adımın açık ve net biçimde tanımlanmış olması, belirli bir giriş alarak belirli bir çıkış üretmesi ve her giriş için bir süre sonra tamamlanması. Algoritmalar beş temel kategoride incelenir: sıralama (Bubble Sort, Merge Sort, Quick Sort), arama (Binary Search, Breadth-First Search, Depth-First Search), grafik gezimi (Dijkstra, Bellman-Ford), dinamik programlama (Fibonacci, Knapsack problemi) ve açgöz (greedy) yaklaşımlar. Her kategori farklı problem türlerine özgü çözüm stratejileri sunar. Divide & conquer stratejisi büyük problemleri küçük alt problemlere böler ve ardından çözümleri birleştirir. Algoritma karmaşıklığı Büyük O Notasyonu ile ölçülür. O(1) sabit zaman; O(log n) logaritmik; O(n) doğrusal; O(n log n) doğrusal-logaritmik; O(n²) karesel karmaşıklığı ifade eder. Girdi boyutu milyonları aştığında bu farklar kritik hale gelir: O(n²) bir algoritma yerine O(n log n) kullanmak saatler yerine saniyelere inebilir. En iyi, ortalama ve en kötü durum analizi farklı senaryolar için ayrı değerlendirilir. Yapay zeka ve makine öğrenmesinde algoritmalar eğitim sürecinin çekirdeğini oluşturur. Stokastik Gradyan İnişi (SGD) ve Adam Optimizer, kayıp fonksiyonunu minimize etmek için model parametrelerini iteratif olarak günceller. Karar ağacı bölme kriterleri (Gini, Entropi), her düğümde en bilgi verici ayırımı belirleyen algoritmalardır. Geri yayılım algoritması derin öğrenme modellerinin öğrenmesinin temel motorudur; zincir kuralı ile her katmanın katkısını hesaplar. Günlük hayatta algoritmalar YouTube öneri sistemi, Google Arama sıralaması ve navigasyon uygulamalarındaki en kısa yol hesaplamasında çalışır. Bir yemek tarifi de algoritma sayılabilir: belirli malzemeler giriş, adım adım talimatlar işlem, hazır yemek çıkıştır. Türkiye'de e-ticaret platformları, bankacılık dolandırıcılık tespiti ve trafik optimizasyon sistemleri algoritma yoğun alanlardır.

arrow_forward
code_blocks

Dynamic Programming (Dinamik Programlama)

Dinamik programlama (DP), karmaşık problemleri birbiriyle örtüşen alt problemlere ayrıştırarak çözen ve her alt problemin sonucunu bellekte saklayarak aynı hesaplamanın tekrar yapılmasını önleyen bir algoritma tasarım paradigmasıdır. Yöntem, 1950'lerde ABD'li matematikçi Richard Bellman tarafından geliştirilmiş; adındaki "programlama" sözcüğü yazılım değil, matematiksel optimizasyonu ifade etmektedir. Dinamik programlamanın iki temel koşulu vardır: optimal altyapı (optimal substructure) — bir problemin optimal çözümü, alt problemlerinin optimal çözümlerinden oluşmalıdır; örtüşen alt problemler (overlapping subproblems) — aynı alt problemler defalarca karşılaşılmalıdır. Bu iki özelliğin bir arada bulunduğu yerde DP büyük verimlilik kazanımları sağlar. Uygulamada iki ana strateji kullanılır: tabanlı yaklaşım (bottom-up/tabulation) en küçük alt problemden başlayarak büyük probleme iteratif biçimde ilerler ve sonuçları bir tabloda depolar; yukarıdan aşağıya yaklaşım (top-down/memoization) özyinelemeli çağrıları önbelleğe alarak aynı hesaplamaların tekrarını engeller. Yapay zeka ve makine öğrenimi alanında dinamik programlama hayati önem taşır. Pekiştirmeli öğrenmede (reinforcement learning) politika değerlendirme (policy evaluation) ve politika yineleme (policy iteration) algoritmaları doğrudan DP ilkelerine dayanır. Bellman denklemi — DP'nin kurucusu tarafından formüle edilmiş — modern Q-öğrenmesinin ve derin pekiştirmeli öğrenmenin (DRL) matematiksel temelini oluşturur. Markov karar süreçleri (MDP) çözümünde hem değer yineleme (value iteration) hem de politika yineleme DP formülasyonuna dayanır. Doğal dil işlemede Levenshtein (düzenleme) mesafesi iki dizi arasındaki minimum edit sayısını DP tablosuyla hesaplar; Viterbi algoritması Gizli Markov Modellerinde (HMM) en olası durum dizisini DP ile bulur; CTC (Connectionist Temporal Classification) kaybı ise ses tanıma modellerinde hizalama belirsizliğini DP ile çözer. Tokenizasyonda kullanılan BPE (Byte Pair Encoding) algoritması da DP prensiplerinden yararlanır. Klasik DP örnekleri arasında En Uzun Ortak Alt Dizi (LCS), 0/1 Sırt Çantası, Matris Zinciri Çarpımı ve Floyd-Warshall en kısa yol algoritması sayılabilir. Modern yapay zeka bağlamında Monte Carlo Ağaç Araması (MCTS) ve bazı hiperparametre optimizasyonu yaklaşımları da DP fikirlerinden faydalanır.

arrow_forward
biotech

Evrimsel Algoritma (Evrimsel Algoritma)

Evrimsel algoritmalar, doğal seçilim, kalıtım ve genetik dönüşüm ilkelerinden ilham alan popülasyon tabanlı metasezgisel optimizasyon yöntemlerinin genel adıdır. Bu algoritmalar, bir dizi aday çözümden oluşan başlangıç popülasyonuyla çalışmaya başlar ve her nesilde bu popülasyonu değerleyerek, seçerek ve dönüştürerek daha iyi çözümlere doğru iteratif biçimde ilerler. Temel işleyiş döngüsü dört ana adımdan oluşur: Başlatma aşamasında rastgele ya da sezgisel yöntemle aday bireyler oluşturulur. Uygunluk değerlendirmesi (fitness evaluation) aşamasında her bireyin problemi ne kadar iyi çözdüğü ölçülür. Seçilim operatörü, doğal seçilimi taklit ederek yüksek uygunluğa sahip bireyleri üreme için tercih eder. Son olarak çaprazlama (crossover) ve mutasyon operatörleri yeni bireyler üretir ve çeşitlilik korur. Evrimsel algoritmalar birçok alt aileden oluşur: Genetik algoritmalar (GA) binary ya da tam sayısal kodlama kullanır; evrim stratejileri (ES) ve kovaryans matris uyarlaması (CMA-ES) sürekli uzayda parametre optimizasyonuna uygundur; genetik programlama (GP) program ağaçlarını evrimleştirir; diferansiyel evrim (DE) ise özellikle çok boyutlu sayısal optimizasyonda güçlüdür. Gradyan tabanlı yöntemlerin yetersiz kaldığı durumlarda evrimsel algoritmalar öne çıkar: türev hesabı gerektirmez, çok-modlu (multimodal) uzaylarda global optimum arayışı yapabilir ve doğası gereği paralelleştirilebilir. Bu özellikler sayesinde hiperparametre optimizasyonu, sinir ağı mimarisi araması (NAS), pekiştirmeli öğrenme politika araması, kombinatoryal optimizasyon ve robotik tasarım gibi çok sayıda uygulamada kullanılmaktadır. Tarihin önemli örnekleri arasında NASA'nın evrimsel algoritmayla tasarlattığı yüksek verimli anten, NEAT algoritmasının evrimleştirdiği oyun oynayan sinir ağları ve modern hiperparametre arama çerçeveleri olan Optuna ve DEAP yer alır.

arrow_forward
code_blocks

Genetic Programming (Genetik Programlama)

Genetic Programming (GP), genetik algoritmaların bir uzantısı olarak bireylerin sabit uzunluklu bit dizileri yerine yürütülebilir bilgisayar programları olduğu evrimsel bir hesaplama yöntemidir. John Koza tarafından 1992'de sistematik biçimde formüle edilen GP, doğal seleksiyonu programların yüksek seviyeli sembolleriyle çalışacak şekilde uyarlar. Her birey, tipik olarak ağaç veri yapısıyla temsil edilir: dallar aritmetik operatörler, mantıksal koşullar veya döngü yapıları gibi işlevleri, yapraklar ise sabitler ya da değişkenler (terminaller) içerir. Bir popülasyon başlatıldıktan sonra üç temel evrimsel operatör devreye girer. Seçim operatörü, bir değerlendirme fonksiyonuna göre en iyi bireyleri bir sonraki nesle taşır. Çaprazlama, iki ebeveyn ağacından rastgele seçilen alt ağaçların yer değiştirmesiyle hibrit çocuklar üretir. Mutasyon ise rastgele bir düğümü ya da alt ağacı yeniden oluşturarak keşif kapasitesini artırır. GP'nin en güçlü uygulama alanlarından biri sembolik regresyondur: gözlem verilerinden en uygun matematiksel denklemi otomatik olarak türetir. Ayrıca FPGA devre tasarımı, robotik hareket planlama, oyun stratejisi öğrenme ve yazılım hata onarımı gibi alanlarda geniş kullanım bulur. Önemli bir dezavantaj bloat sorunudur: nesiller ilerledikçe programlar gereksiz kod parçalarıyla şişer ve hesaplama maliyeti artar; bunu önlemek için ağaç boyutu sınırlamaları veya boyut cezası eklenir. Modern varyantlar arasında Grammatical Evolution, Linear Genetic Programming ve Strongly-Typed GP yer alır. Derin öğrenme çağında GP, differentiable GP ve nöral ağlarla hibrit mimarilerde yeniden ilgi görmektedir.

arrow_forward
code_blocks

Quantum Machine Learning (Kuantum Makine Öğrenimi)

Kuantum makine öğrenimi (QML), kuantum bilgisayarların süperpozisyon, dolanıklık (entanglement) ve kuantum girişimi (interference) gibi temel mekanik özelliklerini klasik makine öğrenmesi algoritmalarıyla birleştiren disiplinlerarası bir araştırma alanıdır. Temel hedef; büyük veri kümelerini analiz etmek, karmaşık optimizasyon problemlerini çözmek ve yeni kuantum özgün modeller geliştirmek için kuantum bilgisayarların potansiyel hesaplama hızı avantajından yararlanmaktır. QML yaklaşımları üç ana kategoride incelenir: Birincisi, kuantumdan ilham alan algoritmalar (quantum-inspired) klasik donanımda kuantum prensiplerini taklit eder. İkincisi, hibrit kuantum-klasik algoritmalar hesaplamayı kuantum ve klasik işlemciler arasında bölerek bugünün gürültülü ara ölçekli kuantum (NISQ) cihazlarında çalışabilir. Üçüncüsü ise tamamen kuantum algoritmalar teorik olarak tam ölçekli evrensel kuantum bilgisayarı gerektirir. En yaygın QML algoritmaları arasında Kuantum Destek Vektör Makinesi (QSVM), Kuantum Sinir Ağları (QNN), Değişimsel Kuantum Özdeğer Çözücü (VQE) ve Kuantum Yaklaşık Optimizasyon Algoritması (QAOA) sayılabilir. VQE, parametre ayarını klasik optimizatöre bırakırken kuantum durumlarını donanım üzerinde ölçen hibrit bir yapı sunar; bu sayede NISQ cihazlarında da uygulanabilir hale gelir. Uygulama alanları arasında ilaç keşfi ve moleküler simülasyon, finansal portföy optimizasyonu, malzeme bilimi, kriptografi ve lojistik planlaması öne çıkar. IBM Qiskit, Google Cirq, Xanadu PennyLane ve TensorFlow Quantum gibi çerçeveler araştırmacılara kuantum devrelerini simüle etme ve gerçek kuantum donanımına erişim imkânı sunar. Klasik makine öğrenmesine kıyasla "kuantum üstünlüğü" henüz pratikte genel olarak ortaya konulamamıştır; ancak HHL algoritması gibi belirli problem sınıflarında teorik üstel hız kazanımı kanıtlanmıştır. QML, günümüzde ağırlıklı olarak teorik ve deneysel aşamada olmakla birlikte, gelecekte hesaplama yoğun yapay zeka modellerinin eğitimini kökten dönüştürebilecek potansiyele sahiptir.

arrow_forward
🔍

Tabu Arama (Tabu Arama)

Tabu Arama, Fred Glover tarafından 1986 yılında geliştirilen ve kombinatoryal optimizasyon problemlerini çözmek için kullanılan meta-sezgisel bir arama algoritmasıdır. Temel fikir, yerel arama sırasında daha önce ziyaret edilen çözümleri veya yapılan hareketleri geçici olarak yasaklayan bir 'tabu listesi' tutmaktır. Bu mekanizma algoritmanın yerel optimumlardan kaçmasını ve arama uzayını daha geniş biçimde keşfetmesini sağlar. Algoritma, komşuluk araması yaparak mevcut çözümün komşularını değerlendirir ve tabu listesinde yer almayan en iyi komşuya geçer; bu nedenle çözüm kalitesini geçici olarak kötüleştiren adımlar da atılabilir. Uzun vadeli bellek yapıları (diversifikasyon) ile arama uzayının az keşfedilen bölgelerine yönelme ve yoğunlaştırma stratejileriyle umut vaat eden bölgelerdeki aramanın derinleştirilmesi mümkündür. Tabu Arama; gezgin satıcı problemi (TSP), çizelgeleme, araç rotalama, grafik renklendirme ve ağ tasarımı gibi NP-zor problemlerde yaygın olarak kullanılır.

arrow_forward
scale

Weights and Biases (Ağırlıklar ve Sapmalar)

Ağırlıklar (Weights) ve Sapmalar (Biases), bir yapay sinir ağındaki öğrenilebilir parametrelerin iki temel bileşenidir. Ağırlıklar, bir önceki katmandan gelen her girdinin çıktıya katkısının gücünü; sapmalar ise nöronun girdi sinyalinden bağımsız olarak tetiklenme eşiğini belirler. Model eğitimi bu iki parametre grubunun kayıp fonksiyonunu minimize edecek biçimde güncellenmesinden ibarettir. Matematiksel açıdan bir tam bağlantılı (fully connected) nöron şu işlemi gerçekleştirir: giriş vektörü x ile ağırlık matrisi W'nın iç çarpımı alınır, bias terimi b eklenir ve aktivasyon fonksiyonundan geçirilir: y = f(Wx + b). Ağırlıklar genellikle Xavier veya He başlatma yöntemleriyle rastgele, sapma değerleri ise sıfır veya küçük sabitlerle başlatılır; rastgele simetri kırma olmadan tüm nöronlar özdeş kalır. Eğitim sürecinde stokastik gradyan inişi (SGD) ve türevleri (Adam, AdamW, RMSProp) geri yayılım algoritmıyla hesaplanan gradyanlar yönünde parametreleri günceller. Öğrenme hızı (learning rate) bu adım büyüklüğünü kontrol eden kritik hiper parametredir; çok büyük öğrenme hızı kararsız eğitime, çok küçük öğrenme hızı ise yavaş yakınsamaya neden olur. Parametre sayısı model kapasitesini doğrudan belirler. GPT-3'ün 175 milyar, Llama 3.1 405B'nin ise 405 milyar parametresi mevcuttur. Bu parametrelerin tamamı çoğunlukla Float16 veya BF16 biçiminde depolanır; 7 milyar parametreli bir model FP16'da yaklaşık 14 GB VRAM gerektirir. L1 ve L2 düzenlileştirme (regularization) yöntemleri, ağırlıkların aşırı büyümesini cezalandırarak aşırı öğrenmeyi (overfitting) dizginler. Transferi öğrenme (transfer learning) bağlamında önceden eğitilmiş bir modelin ağırlıkları yeni bir görev için başlangıç noktası olarak kullanılır. Sadece son katmanların ağırlıkları güncellenmesi (fine-tuning), tüm modeli sıfırdan eğitmeye kıyasla çok daha az veri ve hesaplama gerektirir. LoRA (Low-Rank Adaptation) ise ağırlık matrislerini düşük ranklı matrislerle temsil ederek eğitilecek parametre sayısını dramatik biçimde azaltır; bu yöntem büyük dil modellerinin tüketici donanımında ince ayarlanmasını mümkün kılan temel tekniktir.

arrow_forward