Bilim & Teknoloji

Yapay Zeka Kendini Programlayabilir mi ?

Geçmiş yazılarımda yapay zeka kavramının ne olduğundan ve hakkındaki gelişme ve tartışmalardan bahsetmiştik.

1.Yazı: Yapay Zeka Nedir (Tıklayın)

2.Yazı :Yapay Zeka Tartışmaları (Tıklayın)

Bu yazımda ise Yapay zeka sistemlerin kendini geliştirmesi, başka bir yapay zeka üretmesi ya da doğrudan algoritmaya dayalı kod yazması hakkındaki paradoksu çözüme kavuşturacağız. Bu yazıyı okumaya başlamadan önce yukarıdaki iki yazıyı da okumanızı tavsiye ederim. Çok teknik bir yazı olmaması için özen göstermeme rağmen bahsedilen kavramların ne olduğunu bilmeniz, anlamanızı kolaylaştıracaktır.

Yapay Zeka Kod Yazabilir mi ?

Aslında evet. Yapay Zeka’nın kendisine verilmiş örnek kümelerinden anlamlı sonuç çıkararak istediğimiz parametrelere göre tahmin yürüten bir algoritma olduğunu düşündüğümüzde, kod yazması ilk basta mümkün gibi gözüküyor.

Örneğin Toronto Üniversitesi ve IBM, Shakespeare gibi şiirler yazan bir yapay zeka üretmişti. Bard adını verdikleri bu yapay zeka, tıpkı şairler gibi şiir yazabiliyor hatta Sheakspeare’in yarım kalan şiirlerinin devamını dahi getirebiliyordu. (Kaynak : Webtekno)

Yapay Zeka hakkında bilinmesi gereken bir diğer kilometre taşı; aslında şiir, makale hatta kod yazan yapay zekanın kodları ve işletme algoritması çoğunlukla (%99 oranında) aynı olmasıdır.

Çünkü şiir ya da makale yazan yapay zekayı ayıran farklılık, yapay zekanın işlemci üzerinde çalıştırılan kodundan kaynaklanmaz. Bu farklılık yapay zekanın eğitildiği verilerin depolandığı veritabanı dosyasından kaynaklanır.

Elimizde bir makina öğrenmesi programı olsun. İçine 1000 adet şiiri koyduğumuzda da bize egitilmis_siir_verisi.xyz adında bir dosyayı çıktı olarak versin. 1000 adet makale koyduğumuzda da bize egitilmis_makale_verisi.xyz adında bir dosyayı çıktı olarak versin.

Biz elimizdeki yapay zeka kodlarını egitilmis_siir_verisi.xyz dosyasıyla beraber çalıştırırsak bu yapay zeka yeni şiirler yazacaktır. Eğer aynı kodları egitilmis_makale_verisi.xyz dosyasıyla beraber çalıştırırsak da yapay zeka bu sefer yeni makaleler yazacaktır.

(Yapay sinir ağının bir dataset üzerinde eğitilmesi sonucu eğitilmiş graph yapısını içeren veri tabanının oluşturulması)

 

Somut bir örneğe ihtiyaç duyarsak; yapay zeka kodlarını bir paintball tabancasına, eğitilmiş veri tabanı dosyalarını da paintball topuna benzetebiliriz.

Paintball tabancası içindeki top mavi renk ise mavi renk ateş edecektir. Kırmızı ise kırmızı. Çünkü paintball tabancası sadece fırlatıcı bir mekanizmadan ibarettir ve fırlatılan topun rengi, topun içinde gizlidir.

Yapay zeka da böyledir. Yapay zeka sistemlerinin içindeki kod sadece nöronların nasıl çalışması, hangi nöronun nerede olması gibi bilgileri içerir. eğitilmiş veri tabanı dosyası ise hangi nöronun ne iş yaptığı, hangi nöronla hangi bağlantıyı kurduğu vb. karar verme mekanizmasının ihtiyaç duyduğu bilinçsel verileri tutar.

Aynı şekilde, yapay zekayı 1000 farklı hesap makinası programı kodu ile eğitilmiş bir veri ile beslerseniz; yapay zeka sizin için 1001’inci hesap makinası kodunu yazabilir.

Bu durumda yapay zeka, bir yapay zeka üretebilir mi ?

Eğer siz, 1000 adet farklı yapay zeka kodu ile eğitilmiş veri ile yapay zekanızı beslerseniz; yapay zeka sizin için 1001’inci yapay zeka kodunu yazabilir.

Fakat hesap makinesi üretmek üzere ile beslenmiş bir yapay zekanın bir yapay zeka kodunu yazmasını bekleyemezsiniz. Çünkü  unutulmamalıdır ki yapay zeka insan gibi hür düşünebilen bir kavram değildir.  Yalnızca kümeler arası bağlantı kuran matematiksel denklemler topluluğudur.

Bu nedenle, hiçbir örnekleme olmaksızın, yapay zekanın tıpkı bir insan gibi kod yazabilmesi için algoritma kurma becerisine sahip olması gerekir. Fakat maalesef bir yapay zekayı algoritma kurması üzerine de eğitemezsiniz. Zira bir algoritmanın algoritma kurabilmesi; Matematik ve Bilgisayar dünyasında Halting Problem olarak bilinen mantıksal bir imkansızlık yüzünden olası değildir.

Mantıksal Halting Problemi

Halting Problemi, bir makinanın (Dolayısıyla da yazılımın), neden bir algoritma üretemeyeceğini kanıtlayan mantıksal-matematiksel bir ifadedir. Bunu yazarak açıklamak ve anlamak fazla zorlu olacağından, Zutopedia tarafından hazırlanmış bu basit ama açıklayıcı anlatımı, bu problemi anlamanız için kesinlikle izlemenizi tavsiye ediyorum.


Video izlediyseniz, buradan çıkarılması gereken sonucu az çok anlamışsınızdır.

H, bir makina olarak sol haznesine başka bir yazılımın kodu (ya da makinanın şeması), sağ gözeneceğine de yapılacak işlemi alıyor. Soldaki gözneğe yerleştirilen şemayı kendi içerisinde simüle ederek sağdaki işlemi yapıp yapamayacağına karar veriyor.

Fakat, X örneğinde de aynı girdiyi alan H makinasının iki ayrı sonuca sebep olması, aslında bu durumun var olamayacağına bize kanıtlıyor.

Çünkü bu; problemin matematiksel gösteriminde bir F(x) fonksiyonunun aynı parametreyi alıp farklı değerleri çıktı vermesi anlamına geliyor. *1

Peki,

şimdi Halting Problemini göz ardı edip, yapay zekanın kendi başına bir algoritma kurduğunu ve başka bir yapay zeka sistemini kodlayabildiğini varsayalım.

Unutmayın ki bu mümkün olsaydı bile yapay zeka yalnızca başka bir yapay zeka sistemin kodunu yazmış olacaktı. Burada asıl dikkat edilmesi gereken husus da budur.

Bir kod yığınını yapay zekaya dönüştüren asıl kavramın, yapay zekanın amacına yönelik eğitilmiş bir veri tabanı olduğundan yukarıda bahsetmiştik. Kod, yapay zeka sisteminin karar mekanizmasının çok az bir kısmını oluştururken bu veriler çoğu zaman yapay zeka’ nın aldığı tüm kararların %99’unda etkili olmaktadır.

Bu durumda bir yapay zekanın kendi yapay zekasını üretmesi teorisi karşısındaki en önemli sorun; yapay zeka sistemin başka bir yapay zeka türetmek için can suyu olan eğitim verilerini toplamasıdır.

Özetle bunun mümkün olabilmesi için yapay zeka’ nın, hiçbir insan müdahalesi olmadan başka bir yapay zeka için veri toplayabilmesi, onu eğitebilmesi ya da kendi veri tabanını güçlendirmesi gerekmektedir. Daha da önemlisi, onu üretmeye karar vermesi gerekmektedir.

Yapay Zeka Nasıl Öğrenir  ?

Aslında kendi kendine öğrenen yapay zeka türleri mevcut. Bu durumda yapay zeka; kendi sinir ağını eğitmek için insan eliyle hazırlanmış verileri kullanmak yerine kendini; kendi veri toplama birimleriyle ürettiği veriler ile eğitilir.

Örneğin metindeki yazım yanlışlarını tespit eden bir yapay zeka yaptığımızı düşünelim. Ona 1000 adet doğru yazılmış cümle verelim ve bu cümlelerin de doğru yazılmış olduğunu yapay zekaya söyleyelim. Aksini öğrenebilmesi için de 1000 adet yanlış yazılmış cümle verelim, bu cümlelerin de yanlış yazıldığını söyleyelim.

Makina öğrenmesi tekniği ile bu verileri derleyerek öğrenen ve kendini geliştiren yapay zeka, eğitim için kendisine sunulan bu cümlelerden herhangi biri ile tekrar karşılaştığında %100 doğru tahminde bulunacaktır. Bu cümlelerin dışında, benzer cümlelerde ise %60 %80 gibi oranlarda tahminde bulunacaktır.

Bu tahminin hata  oranı elbette eğitildiği veriyle doğru orantılı olarak düşüş gösterecektir.

Kendine Kendine Öğrenmek : Master – Slave Sinir Ağları

Peki, bu yazım hatası bulucu yapay zeka  sisteminin kendi kendini eğitmesini isteseydik ne yapardık ?

Anlamlı cümleleri tespit eden bir yapay zeka sistemi yapar ve wikipedia’ yı taraması için görevlendirirdik.

O da Wikipedia’daki tüm anlamlı cümleleri ayıklar, kaydeder ve sonra da (Wikipedia’da hiç yazım yanlışı yapılmayacağını var sayarak tamamını doğru kabul edeceğinden) doğru yazımlı cümleler arasında mantıksal ilişkiler kurarak, bu hususta tecrübe edinmiş olur.

Böylece yapay zekamız sonunda bu mantıksal bağlantıyı içermeyen yani yapay zeka için doğru yazımlı olmayan cümleleri de tespite edebilecektir.

Fakat değinilmeyen bir problem ise bir kelime öbeğinin cümle olup olmadığının tespit edilmesidir. Bunun için de bir yapay zeka gereklidir. Ve bir alt katmana inildiğinde bir harf öbeğinin de anlamlı bir kelime olup olmadığının tespit edilmesidir. Ve tabii ki bunun içinde bir yapay zeka gereklidir

Bu ve benzeri şekilde iç içe hiyerarşik ve kompleks öğrenmeli yürütülen yapay zeka sistemlerinde; kendi görevini yapan tüm yapay zekalar, yine onları yöneten ve aralarında anlamlı veri değiş tokuşunu sağlayan bir yönetici yapay zeka tarafından denetlenmelidir.

(Çok kanallı bir Yapay Sinir Ağı yapısı)

Bu en üstteki denetleyici (yönetici) yapay zekanın (Genelde sinir ağları kullanılarak geliştirildiğinden yazının geri kalanında  Merkezi Sinir Ağı – MSA olarak bahsedilecektir), diğer yapay sinir ağ sistemlerini yönetmesi ile oluşan kompleks bir zihin sistemine ihtiyaç duyulmaktadır.

Nitekim basit işlevler için dahi bu kompleks yapı gereklidir zira insan beyni de birbiriyle master-slave ilişkisi kurmuş milyonlarca nöron ağından oluşmaktadır.

Düşük Klon Problemi

Teorimizi biraz daha genişletirsek, yapay zeka’ nın kendine özgü tecrübeler edinmesi ve insan yardımı almadan kendi kendine öğrenmesi için ona rastgele denemeler yapabileceği ve sonuçlarını gözlemleyebileceği bir ortam sunmamız gerektiğini yukarıdaki wikipedia örneğinden çıkarabiliriz.

Tıpkı yeni doğan bebekler gibi, deneme yanılma yoluyla anlam çıkarmak için en iyi yöntem fiziksel dünya üzerinde deneme yanılma yapmaktır.

Kendi kendine yürümeyi öğrenen insansı bir robot yapay zekası yaptığımızı düşünelim. İlk başta motorlarını rastgele çalıştıran yapay zeka bir süre sonra iskeletini dik tutmayı ve adım atmayı öğrenecektir.

Yürümeyi öğrenen bu yapay zekanın, hiçbir şey bilmeyen başka bir yapay zekaya yürümeyi öğrettiğini düşünelim.


(Google’ın kendi kendine yürümeyi öğrenen yapay zeka çalışması)

Öğretici yapay zekanın veri tabanını kullanmak, aslında öğretici yapay zekanın geçmiş tecrübelerinin tamamını içeren bir özütü almak olacaktır. Ve hatırlarsak öğretici yapay zeka, kendi veri tabanını kendi tecrübeleriyle kazanmıştı.

Bu nedenle öğrenen yapay zeka’ nın da ileri gidebileceği maksimum nokta, öğreticisinin gidebildiği nokta kadar ya da daha azı olabilecektir.

Örneğin öğretici yapay zeka yürüyebiliyorsa öğrenen yapay zeka asla koşamayacaktır. Çünkü özgür deneyim değil de kendisini öğreten yapay zekanın veri tabanının ya aynısına ya da daha da az tecrübe içeren bir kopyasına sahip olacaktır.

Bu da yapay zekanın kendi varlığından türetebildiği ama kendisinden  farklı bir iş yapabilen ya da (kendisinden daha ) üstün başka bir yapay zeka’nın var olamayacağını bize somut olarak ispatlamaktadır.

Belirsiz Onay Koşulu  (Ödüllendirme) Problemi

Kendi kendine yürümeyi öğrenen insansı yapay zekayı tekrar ele alalım. İlk başta motorlarını rastgele çalıştıran yapay zeka bir süre sonra iskeletini dik tutmayı ve adım atmayı öğrenecektir.

Burada bir diğer problem ise yapay zeka’nın hangi adımı yaptığında başarılı olduğunu farketmesine dayanmaktadır. Örneğin siz yapay zekanın zıplamayı öğrenmesini istiyorsanız, zıpladığında ona doğru bir hareket yaptığını söylemeniz gerekmektedir. O da çeşitli deneme yanılma yaparak belirlediğiniz onay koşuluna hareketlerini yaklaştırmaya çalışacaktır.

Yürümeyi belirlediğimiz onay koşulu altında öğrenen yapay zeka *2, zıplama hareketini kendi kendine öğrenmeye çalıştığında kendi onay (başarı) koşulunu kurmakta başarısız olacaktır.

Hatırlarsak metin örneğimizde biz yapay zekaya doğru cümleyi verip  “bak, bu doğru” diyerek diyerek doğruyu, yanlış cümleyi verip “yanlış” diyerek de yanlışı öğrenmesini sağlıyorduk.

Fiziksel dünyada zıplama eylemini gerçekleştirmeye çalışan yapay zekanın başarılı olma şartı; iki ayak üzerinde yerden yükselmek ve iki ayak üzerinde tekrar yere inmek gibi bir yapıda olabilir.

(Good dog! Ödüllendirme sistemi, bir köpeği komutlara uyduğunda ödüllendirmeyle aynı temele dayanır.)

Fakat bu, ancak bir insan tarafından yapay zekaya empoze edilebilir zira onay koşulu olarak bahsedilen başarılı olma şartının kendisinin bir algoritma olmasından ötürü yapay zekanın kendi onay koşulunu üretmesi de imkansızdır. (Bir yazılım sisteminin algoritma üretememesini yukarıda Halting Problemi olarak açıklamıştık)

Yapay Zeka’nın tüm bu süreci otonom olarak gerçekleştirmesi için sırasıyla ;

Zıplamayı istemesi

Zıplamanın ne olduğunu anlaması

Nasıl zıplayacağını keşfetmesi

evrelerinden geçirmesi gerekmektedir. Yukarıdaki yazıya bakarsak, bu noktadaki çalışmaların bahsettiğimiz tüm çelişkili durumları içerdiğinden bahsedebiliriz.

 

Görüldüğü gibi,

yapay zekanın başka bir yapay zekayı üretememesi ya da kod yazamaması gibi problemler teknolojiden ziyade matematik-mantık temeline dayanan çelişkilerden dolayı imkansız gibi görünüyor.

Sadece Halting Kanıtı bile, bir bilgisayar sisteminin algoritma üretmesine giden yolu kesin olarak kapatmaktaydı. Eğer böyle olmasaydı bile karşılaşacağımız bir çok mantıksal problem, bu durumu imkansız kılmaktadır.

Bir sonraki yazımda ise yapay zeka hakkında soru – cevap etkinliği yapacağım, bu yazının altına sorularınızı yazabilirsiniz.  Görüşmek üzere 🙂

 

Dipnotlar :

 

*1:

F(3) = 5

f(3) = 7

f(3) = 11

vs.

 

*2 : Yürümeyi öğrenen yapay zekanın onay koşulu çoğunlukla programatik olarak belirtilmiş bir koşul yapısı olacaktır. Örnek vermek gerekirse pseudo (sözde kod ) olarak yazabiliriz :

Sürekli Yap :

  •      Hiçbir zaman yere iki ayağı harici bir nokta değmemeli
  •      Omurga iskelet parçasının açısı her zaman yer ile %45 – %135 derecelik bir fark arasında olmalı
  •      Karakterin 3 boyutlu ortamdaki koordinatı, bir eksende düzenli ve pozitif olarak         artmalı
  •      İki ayağın aynı anda yerde olmadığı bir durum olmamalı

 

 

 

 

Daha Fazla Kişiye Ulaşması İçin Bu İçeriği Paylaşabilirsiniz :

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir