Kendi Kendine Merak Duyan Bir Yapay Zeka Ajanı Geliştirdim

İçindekiler
Yapay zeka ajanlarının çoğu "ödül avcısıdır"; en yüksek puanı getirecek eylemi seçerler. Peki, sadece şaşırmamayı hedefleyen bir ajan tasarlarsak ne olur? Bu deneysel çalışmada, ajanımız dışarıdan hiçbir komut almadan kendi kendine merak duymaya başladı. Bilgi arayışına girdi ve bu merakı sayesinde başarı oranını %48'den %100'e çıkardı.
Karar Vermenin İki Farklı Yolu
Yapay zeka modellerinin büyük kısmı ödül peşinde koşar. İyi bir şey yaptıklarında puan alırlar ve her zaman en yüksek skoru hedefleyen eylemleri seçerler. Bu yöntem basit ve etkilidir.
Beyin biliminden (neuroscience) gelen alternatif bir yaklaşım ise puan kovalamak yerine şaşırmaktan kaçınmaktır; yani dünyayı, kendi beklentileriyle uyumlu hale getirecek şekilde hareket ettirmek. Şaşırmamaya odaklandığınızda, bilmediğiniz şeyleri keşfetmek kendi başına değerli bir eyleme dönüşür. Başka bir deyişle merak, sisteme sonradan eklenmesi gereken bir özellik değil, bu yaklaşımın doğal bir sonucudur. Buna aktif çıkarım (active inference) denir.
10 Saniyelik Özet
Bir ödülün SOL ya da SAĞ kapının arkasında saklandığını düşünün (%50 ihtimal). Ayrıca, hangi kapının doğru olduğunu gösteren bir ipucu var; tabii bakmak isterseniz.
| Özellik | ❌ Ödül Avcısı Ajan | ✅ Meraklı Ajan |
|---|---|---|
| Odak Noktası | Hemen ödülü almak | Ödülü almak + belirsizliği azaltmak |
| Davranışı | Rastgele bir kapı tahmin eder | Önce ipucunu kontrol eder, sonra doğru kapıyı açar |
| Başarı Oranı (400 Deneme) | %48 | %100 |
Meraklı ajana kimse "ipucuna bak" demedi. Belirsizlikten rahatsız olduğu için bunu kendi kendine yaptı.
Nasıl Çalışıyor?
Ajan, harekete geçmeden önce her seçeneği şu iki kritere göre değerlendirir:
- Bu eylem beni ödüle yaklaştırıyor mu?
- Bu eylem çevremdeki belirsizliği azaltıyor mu?
value_of_checking_the_hint = how_unsure_am_i # Belirsizlik yüksekken bu değer tavan yapar
value_of_just_guessing = chance_of_being_right # Kör bir tahminde sadece %50 ihtimal
if value_of_checking_the_hint > value_of_just_guessing:
check_the_hint() # Merak duygusunun ortaya çıktığı an!
open(best_door) # Şimdi gidip ödülü alabiliriz
Belirsizlik yüksekken ipucuna bakmak çok değerlidir. Ajan durumu öğrendikten sonra belirsizlik kalmaz ve doğrudan ödüle yönelir. Ödül avcısı ise ipucunun değerini göremediği için sürekli yazı tura atar.
Bu Neden Önemli?
Yazılım geliştiriciler için bu yaklaşımın iki kritik pratik çıkarımı vardır:
- Doğal Keşif (Curiosity for free): Yapay zeka ajanlarında en büyük sorun, sürekli aynı eylemleri tekrarlayıp yeni yollar keşfetmemeleridir. Geliştiriciler bunu aşmak için yapay "keşif bonusları" yazar. Aktif çıkarım ise merakı doğrudan sistemin kalbine yerleştirir; ajan sadece belirsiz hissettiğinde araştırır ve öğrendiğinde durur.
- Beklenmedik Durumlarla Başa Çıkma: Şaşırmayı önlemek üzere tasarlanan bir sistem, eğitim verisinde olmayan durumlara hazırlıklıdır. Gerçeklik beklentileriyle uyuşmadığında, bu boşluğu kapatmak birincil hedef haline gelir. Bu da yazılımın çökmesini engeller ve sürekli adapte olmasını sağlar.
Deneyin
Projeyi klonlayıp merak duygusunun kodda nasıl hayat bulduğunu inceleyebilirsiniz:
git clone https://github.com/Shridhar-2205/living-software
cd living-software/04-active-inference
python demo.py
Pratik Çıkarım: Modern yazılım geliştirmede statik kurallardan dinamik, çevresini öğrenen ve beklenmedik hataları "merak" mekanizmasıyla çözen esnek mimarilere (Living Software) geçiş yapıyoruz. Geliştiriciler olarak sadece çıktıları optimize etmek yerine, sistemlerimizin "bilinmeyenleri öğrenme" yeteneğini tasarlamalıyız.
Orijinal makaleye buradan ulaşabilirsiniz.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →