bilimkurgu kulubu

Bilim & Teknoloji yapay zeka

Tarih: 13 Kasım 2019 | Yazar: Murat K. Beşiroğlu

0

Yapay Zeka #1: Nedir, Nasıl Çalışır?

İş hayatımın son 10 yılını büyük veri, analitik ve yapay zekâ projeleri üzerinde çalışarak geçirdim. Yapay zekâ özellikle son 2-3 yılda geniş kitleler tarafından merak edilen bir konu haline geldi. Bu yazı dizisinde yapay zekâ hakkında merak edilen soruların yanıtlarını vermeye çalışacağım. Yazdıklarımın yapay zekayı genel kültür anlamında merak edenlerin yanı sıra konuyla profesyonel olarak ilgilenenlere de hitap etmesini amaçlıyorum. Önce tanımlarla başlayacağım çünkü yapay zekâ ile bağlantılı makine öğrenmesi, derin öğrenme, yapay sinir ağları gibi pek çok kavram var. Bu terimleri aralarındaki ilişkilerle birlikte kavramadan konu hakkında bütüncül bir bakış açısına sahip olmak mümkün olmuyor.

Zekiymiş izlenimi yaratabilen sistemler yapay zekâ olarak isimlendiriliyor. Bugün yapay zekâ olarak isimlendirilen sistemlerin özünde birer bilgisayar programı olduğunu söyleyebiliriz. Yapay zekâlı sistemlerin birer bedeni/gövdesi olabiliyor ya da sadece bir yazılım olarak karşımıza çıkabiliyorlar. Gövdesi olan yapay zekâya örnek olarak insan benzeri mobil robotlar ve otonom arabalar verilebilir. Yazılım olarak faaliyet gösteren yapay zekâya ise cep telefonları üzerinde çalışan Siri, Google now, Cortana ve navigasyon uygulamaları örnek verilebilir. Akıllı bir sistem tasarlamak için geleneksel programlamada girdi veri bir program aracılığıyla işlenerek çıktı veri oluşturuyor. Makine öğrenmesinde ise girdi ve çıktı veriden yararlanılarak program oluşturuluyor.

Makine öğrenmesi bu bağlamda bir öğrenme algoritması aracılığıyla girdi ve çıktı veriden yararlanarak program yazma işi olarak tanımlanabilir. Problemin bir insanın programını yazamayacağı kadar karmaşık olduğu ve elde büyük miktarda girdi/çıktı verinin olduğu durumlarda makine öğrenmesi yöntemleri kullanılıyor. Dilden dile çeviri bu durum için iyi bir örnek. Dillerin kendine has karmaşık yapısı nedeniyle makine öğrenmesi kullanmadan bir çeviri programı yazmak olağanüstü güçtür. Oysa çeviriye konu iki dilde yeterli hacimde girdi ve çıktı veri (çevrilecek metin ve çevrilmiş metin) olduğunda makine öğrenmesi yöntemleri kullanarak işe yarayan çeviri programları oluşturulabilmektedir.

Bir makine öğrenmesi yöntemi olan derin öğrenme 2010’lu yılların başından itibaren popüler hale geldi. Derin öğrenme yapay sinir ağlarının çok katmanlı olarak uygulaması ile gerçekleşmektedir. Bu yöntemde geleneksel makine öğrenmesi yöntemlerinden farklı olarak veri boyutu çok büyüdüğünde model veri büyüklüğüyle orantılı bir biçimde öğrenmeye devam etmektedir. Derin öğrenme geleneksel makine öğrenmesi yöntemleriyle işlenemeyen serbest metin, ses, görüntü gibi veri tiplerine başarılı bir biçimde uygulanmaktadır. Derin yapay sinir ağları barındırdıkları katmanlar sayesinde verilerin içeriğindeki hiyerarşileri öğrenebilmektedir.

Verilerin içindeki hiyerarşiye örnek verecek olursak; bir serbest metinde harf, sözcük, cümle ve paragraflardan oluşan bir hiyerarşi bulunmaktadır. Derin yapay sinir ağları hiyerarşik yapısı sayesinde bir sözcüğü öğrendiğinde onu tekrar tekrar öğrenmek zorunda kalmamaktadır. Benzer biçimde, matematiksel olarak tanımlamak çok kolay olmasa da, görüntüler içinde tekrar tekrar karşılaşılan görüntü desenleri de bir iç hiyerarşi oluşturmaktadır. Bir kedinin neye benzediğini öğrenen bir derin yapay öğrenme modeli, analiz ettiği görüntüde kediyi pikseller bazında ele almak yerine bütünsel olarak algılayabilmektedir.

Yapay zekâya ilişkin çıta yıldan yıla yükseliyor, bilgisayarlar neyi başarırsa ardından “ama şunu yapamıyor ki,” diyoruz. O yüzden neyin yapay zekâ olduğuna dair tanım epeyce muğlak. Yakın zamana kadar, “Bilgisayarlar nesneleri tanıyamıyor, biz bir kediyi gördüğümüzde şak diye tanıyoruz,” diyorduk. Son 3-4 yılda bilgisayarlar yüzlerce farklı nesneyi fotoğraflar üzerinden %95’in üzerinde doğrulukla tanımaya başladılar. Yapay zekâ algoritmaları Facebook’da tanık olduğumuz üzere kişileri resimlerinden tanıyıp otomatik olarak etiketleyebiliyorlar. Yapay zekâ alanında geleneksel olarak “uzman sistemler”den yararlanılırdı, son zamanlarda makine öğrenmesi yöntemleri popülerlik kazandı. “Uzman sistemler” uzmanların bir hedefe yönelik olarak, tüm olasılıkları öngörüp yapay zekâ programını elle yazması yoluyla oluşturuyor. Yapay zekâ alanında kullanılan çok sayıda terimi birbirleriyle ilişkilerini de anlayarak kavramak oldukça güç. Kabaca, yapay zekâ makine öğrenmesini kapsar, makine öğrenmesi de derin öğrenmeyi kapsar diyebiliriz. Yapay zekâ sistemleri bir ya da birden fazla makine öğrenmesi modeli tarafından oluşturulmuş program kodları ile birlikte, programcılar tarafından elle yazılmış kodları da içerebilir.

Bir bilgisayar programı verilerden nasıl öğrenebilir? Durumu gözünüzde canlandırmanız için örnek bir veri seti üzerinden öğrenen bir algoritma oluşturalım. Amacımız lise öğrencilerin boyunu tahmin eden bir algoritma oluşturmak olsun.

Tablomuzda 4 tür öğrenci var. Basketbol oynayan kızlar, basketbol oynamayan kızlar, basketbol oynayan erkekler ve basketbol oynamayan erkekler. Yukarıdaki tabloya göre her bir gruptaki öğrencilerin ortalama boyunu hesaplayalım.

Aynı gruptaki öğrencilerin boyunun ortalamasını alarak bir boy tahmin algoritması oluşturmuş olduk. Artık bir lise öğrencisinin cinsiyetini ve basketbol oynayıp oynamadığını bildiğimiz durumda boyunu kabaca tahmin edebilen bir algoritmaya sahibiz. Bu algoritmayı başka sınıflardaki öğrencilere de uygulayarak boy tahmini yapabiliriz. Konu hakkında birkaç yorum yapmak istiyorum.

  • Bir algoritmanın tahmin yapmak için üzerinde işlem yaptığı verilerin ne anlama geldiğini bilmesi gerekmiyor.
  • Kullandığımız örneklem bir tahmin modeli oluşturmak için çok küçüktü, örneklemde basketbol oynamayan 190 cm boyunda bir kız olsaydı tüm modeli bozabilirdi. Görselleştirmek kolay olsun diye çok küçük bir örneklem kullandım.
  • Veri setinde sadece boyu tahmin etmekte etkili olabilecek verilere yer verdim. Çok daha fazla girdi veriye sahip olsaydık makine öğrenmesi algoritması denemeler yaparak hangi değişkenlerin etkili olduğunu otomatik olarak bulacak ve onları kullanacaktı. Bu değişkenlerin sayısı yüzlerce hatta binlerce olabilir.
  • Örneğimizde kategorik değişkenleri kullanarak sayısal bir değişkeni basitçe ortalama alarak tahmin eden bir model yarattık. Elbette makine öğrenmesi algoritmaları bu kadar basit bir mantıkla çalışmıyor. Amacım olayın mantığının anlaşılmasını sağlamaktı. Ses ve görüntü de benzer bir mantıkla, veriler arasındaki ilişkiler incelenerek modelleniyor.

Terminatör gerçek olsaydı hangi yapay zekâ algoritmaları kullanarak çalışırdı? Gördüklerini tanımlamak, duyduğu seslerdeki kelimeleri ayırt etmek ve konuşmak için derin öğrenme modellerinden yararlanırdı. İki ayak üzerinde yürümek, bir nesneyi kavramak ve üzerinde işlem yapmak olağanüstü zor işlemler. Robotlar bu işlemleri de algoritmalar aracılığıyla deneme yanılma yoluyla öğreniyorlar. Terminatör’ün duymak, görmek, hareket etmek ve konuşmak için kullandığı algoritmaların bir üst program aracılığıyla koordine edilmesi gerekiyor. Bu koordinasyon da sağladığında Terminatör artık yeni macerasına hazır hale geliyor.

I’ll be back…

Hazırlayan: Murat K. Beşiroğlu

Etiketler: , , , , , , ,


Yazar Hakkında

1971 Trabzon doğumlu. 1994 yılında Gazi Üniversitesi Endüstri Mühendisliği bölümünden mezun oldu. Özel bir bankada 21 yıl uzman ve yönetici olarak çalıştı. 2016 yılında Ogox, 2018 yılında Aşk Algoritması romanları yayınlandı. Halen bilimkurgu öykü ve romanları yazmaya devam etmektedir.