Yapay zekâ, makinelerin yalnızca hesap yapmasını değil; algılama, öğrenme, akıl yürütme ve karar verme gibi zekâyla ilişkilendirilen görevleri gerçekleştirmesini amaçlayan disiplinler arası bir alandır. Bugün sohbet botlarından otonom araçlara kadar her yerde karşımıza çıksa da bu yolculuk, “Makineler düşünebilir mi?” sorusuyla başladı.
Devamı...
Gökyüzünde aynı anda yön değiştiren kuşlar veya suda tek bir canlıymış gibi ilerleyen balıklar merkezi bir komut sistemine sahip değildir. Buna rağmen ortaya son derece düzenli ve karmaşık hareketler çıkar. Sürü zekâsı simülasyonu, her bireye birkaç basit kural vererek bu şaşırtıcı davranışları bilgisayar ortamında yeniden üretmemizi sağlar.
Devamı...
Bir sinir ağını yalnızca matris çarpımları yapan dev bir hesap makinesi olmaktan çıkarıp görüntü tanıyan, metin üreten ve karmaşık kararlar veren bir modele dönüştüren temel bileşen aktivasyon fonksiyonudur. Sigmoid, ReLU ve Tanh gibi fonksiyonlar, nöronların hangi bilgiyi ne ölçüde sonraki katmana aktaracağını belirler. Kısacası ağın matematiksel reflekslerini oluştururlar.
Devamı...
Bir programlama dili yapmak, bilgisayara yeni kelimeler öğretmekten çok daha fazlasıdır: Önce metni parçalara ayırır, sonra bu parçaların dilbilgisine uyup uymadığını denetler ve en sonunda anlamlarını çalıştırırsınız. Bu projede değişkenleri, aritmetik işlemleri, koşulları ve döngüleri destekleyen MiniLang adında küçük ama teorik olarak Turing tam bir dil tasarlayacağız.
Devamı...
Bilgisayar açıldığında bizi masaüstü, pencereler ve uygulamalar karşılamadan önce oldukça ilkel bir dünya vardır. İşlemci, bellekteki belirli bir adresten komut yürütmeye başlar; ne dosya sistemi ne süreçler ne de yardım isteyebileceğimiz bir işletim sistemi bulunur. Bu projede x86 mimarisi üzerinde küçük bir çekirdek geliştirerek bootloader, korumalı kip, kesmeler ve çoklu görev arasındaki zinciri kuracağız.
Devamı...
Bir ışık ışınının kameradan çıkıp sahnedeki nesnelere çarptığını, oradan ışık kaynaklarına ve aynalara doğru sekerek yolculuğunu sürdürdüğünü hayal edin. Ray tracing, gerçek dünyadaki optik davranışları ters yönde izleyerek yansıma, aydınlatma ve gölgeleri hesaplar. Bu projede kürelerden oluşan küçük bir sahneyi render eden, gölge ışınları ve yansımalar kullanan basit bir Python motoru kuracağız.
Devamı...
Bir PHP uygulaması yalnızca HTML üretmek zorunda değildir. Aynı uygulama; mobil istemcilere, JavaScript arayüzlerine ve başka sunuculara dinamik veri sağlayan bir API olarak da çalışabilir. Bunun anahtarı, kaynakları HTTP üzerinden anlaşılır biçimde sunmak ve yanıtları ortak bir veri formatı olan JSON ile iletmektir.
Devamı...
Bir web uygulamasında güvenlik, kapıya pahalı bir kilit takıp anahtarı paspasın altında bırakmamaktır. Kullanıcı parolalarını düz metin olarak saklamak tam da böyle bir hatadır. Veritabanı sızdırıldığında saldırganlar yalnızca uygulamadaki hesaplara değil, parola tekrar kullanılmışsa başka servislere de erişebilir. Benzer şekilde XSS açıkları, güvenilmeyen içeriğin tarayıcıda kod gibi çalışmasına izin vererek kullanıcı oturumlarını ve verilerini tehlikeye atar.
Devamı...
Bir avuç noktanın su gibi akmasını, ateş gibi yükselmesini veya duman gibi havada süzülmesini sağlamak ilk bakışta büyücülük gibi görünebilir. Oysa gerçek zamanlı akışkan simülasyonlarının temelinde parçacıklar, kuvvetler ve her karede tekrarlanan birkaç fizik hesabı bulunur. Tam ölçekli bilimsel doğruluk yerine görsel inandırıcılığı hedefleyerek tarayıcıda bile çalışan eğlenceli bir mini fizik motoru geliştirebiliriz.
Devamı...
Bir sinir ağı ilk tahminini yaptığında genellikle pek de parlak değildir. Kedi fotoğrafına tost makinesi diyebilir veya ev fiyatını küçük bir servet kadar yanlış hesaplayabilir. Neyse ki modelin elinde iki güçlü araç vardır: hatanın büyüklüğünü ölçen maliyet fonksiyonu ve bu hatadan sorumlu ağırlıkları bulup düzelten geri yayılım algoritması.
Devamı...
Makine öğrenmesi, bilgisayarlara her olasılık için ayrı bir kural yazmak yerine örneklerden davranış geliştirme imkânı verir. Ancak “veriden öğrenmek” tek bir yöntemi ifade etmez. Kimi sistemler doğru cevaplarla çalışır, kimileri verinin içindeki gizli yapıyı keşfeder, kimileri ise deneme-yanılma yoluyla ödül toplamayı öğrenir. Denetimli, denetimsiz ve pekiştirmeli öğrenme; yalnızca farklı algoritmalar değil, öğrenmenin doğasına ilişkin üç ayrı felsefi yaklaşımdır.
Devamı...
Bir yapay sinir ağının gerçekten nasıl öğrendiğini anlamanın en iyi yolu, hazır makine öğrenmesi kütüphanelerini bir kenara bırakıp bütün parçaları kendimiz yazmaktır. Bu projede yalnızca Python dilinin temel özelliklerini kullanarak MNIST benzeri el yazısı rakamlarını tanıyan, girişten çıkışa ve hatadan geriye doğru öğrenebilen küçük bir sinir ağı geliştireceğiz.
Devamı...
Bir makine öğrenmesi modelini eğitmek, sisli bir dağda en alçak noktayı bulmaya benzer. Modelin parametreleri bulunduğumuz konumu, hata fonksiyonu yüksekliği, optimizasyon algoritması ise hangi yöne adım atacağımızı belirler. Gradient Descent bu yolculuğun klasik pusulasıyken Adam ve RMSprop, arazi koşullarına göre adımlarını ayarlayan daha modern navigasyon sistemleridir.
Devamı...
Bir makine öğrenmesi modelinin başarısı yalnızca seçilen algoritmaya bağlı değildir. Çoğu zaman modelden daha kritik olan şey, modele verilen verinin kalitesidir. Gürültülü, eksik veya tutarsız verilerle en gelişmiş algoritma bile bocalarken; iyi temizlenmiş ve anlamlı özniteliklerle zenginleştirilmiş bir veri kümesi, daha basit modelleri bile yıldız oyuncuya dönüştürebilir.
Devamı...
Bir makine öğrenmesi modeli eğitim örneklerini kusursuz tahmin ederken yeni veriler karşısında afallıyorsa karşımızda çalışkan değil, ezberci bir öğrenci vardır. Aşırı öğrenme (overfitting) adı verilen bu durum, modelin verideki gerçek örüntülerle birlikte gürültüyü ve tesadüfi ayrıntıları da öğrenmesiyle ortaya çıkar. Neyse ki Dropout, L1/L2 düzenlileştirme ve erken durdurma gibi yöntemlerle modele biraz disiplin kazandırabiliriz.
Devamı...
Bir veri kümesinde hangi kayıtların birbirine benzediğini biliyor, fakat onları açıklayan hazır etiketlere sahip olmuyoruz. İşte denetimsiz öğrenme tam bu noktada sahneye çıkar: Veriye “Bunlar hangi sınıfa ait?” diye sormak yerine, “Burada kendiliğinden oluşan nasıl bir yapı var?” diye bakar. Müşteri segmentasyonu, belge gruplama, anomali keşfi ve biyolojik veri analizi bu yaklaşımın yaygın kullanım alanlarıdır.
Devamı...
Bir e-postanın spam olup olmadığını, bir müşterinin aboneliğini iptal edip etmeyeceğini veya bir tümörün iyi huylu olup olmadığını tahmin etmek istediğimizi düşünelim. Geçmiş örneklerin doğru cevapları elimizdeyse denetimli öğrenmenin kapısından içeri gireriz. Bu yaklaşımda algoritma, etiketlenmiş verilerden örüntüler öğrenerek daha önce görmediği örnekler hakkında karar verir.
Devamı...
Bir yapay sinir ağının fotoğraftaki rakamı tanıması, müşterinin alışveriş davranışını tahmin etmesi veya bir evin fiyatını hesaplaması ilk bakışta sihir gibi görünebilir. Oysa Çok Katmanlı Algılayıcıların, yani MLP’lerin arkasında düzenli bir matematiksel veri akışı vardır: Bilgiler girişten alınır, katmanlar boyunca dönüştürülür ve anlamlı bir çıktıya çevrilir.
Devamı...
Telefonun kilidini parmağınla açarken cihazın içinde minik bir dedektif çalışır: Görüntüyü temizler, ayırt edici özellikleri çıkarır ve bunları kayıtlı şablonla karşılaştırır. Bu projede gerçek kişisel veriler toplamadan, parmak izi veya iris verisini temsil eden yapay özellik vektörleriyle temel bir biyometrik eşleştirme sisteminin mantığını inceleyeceğiz.
Devamı...
İnsan beyni, milyarlarca nöronun elektriksel ve kimyasal sinyaller aracılığıyla haberleştiği olağanüstü bir bilgi işleme sistemidir. Yapay zekânın ilk araştırmacıları da “Bir nöronun karar verme mekanizmasını matematikle taklit edebilir miyiz?” sorusundan yola çıktı. Bu merak, modern sinir ağlarının mütevazı fakat tarihî atası olan algılayıcıyı, yani perceptronu ortaya çıkardı.
Devamı...