Yapay Zeka (Artificial Intelligence), uzun bir geçmişi olan, ancak hala sürekli ve aktif olarak büyüyen ve değişen bir alandır. Bu derste, modern AI’nın temellerini ve AI’nin bazı temsili programlarını öğreneceksiniz. Yol boyunca, hayal gücümüzün ötesinde insan gücünü genişletmeye devam eden AI alanında çok sayıda programlama ve muazzam olanaklar hakkında sizi heyecanlandırmayı umuyorum.

Yapay Zeka (AI) teknolojisi günlük yaşamımızda giderek yaygınlaşmaktadır. Oyunculuk, gazetecilik / medya, finans ve aynı zamanda robotik, tıbbi teşhis ve kuantum bilimindeki son teknoloji araştırma alanlarındaki çeşitli endüstrilerde kullanılmaktadır. Bu derste, makine öğrenimi, olasılıksal akıl yürütme, robotik, bilgisayar vizyonu ve doğal dil işleme gibi AI’nın temellerini ve uygulamalarını anlatmamdan önce programlama dilleri hakkında bilgiyi öğreneceksiniz. Başka bir konuda size makine öğrenimi, olasılıksal akıl yürütme, robotik, bilgisayar vizyonu ve doğal dil işleme gibi AI’nın temellerini ve uygulamalarını gösteren bilgiler paylaşacağım.

Yapay Zekâ dersleri için A-Z^ye tüm diller kullanılabilir elbette. Lakin Yapay Zekâ uygulamalarında geliştirme dersleri yaparken spesifik sorunlarda, probleme uygun dinamiklikte dil seçmek daha mantıklı olacaktır. (Örneğin; kütüphaneniz C++ ile geliştirilmiş fakat Python kullanarak uygulamanın ara katmanını yazabilirsiniz.) Yalnızca Yapay Zekâ için değil aslında yazılım çözümlerinin hepsinde aynı mantıkta ilerlenmekte. Yine büyük problem çözümlerinde olduğu gibi Yapay Zekâ (ki koca bir bilim dalı olmasıyla beraber kendi başına problem) geliştirilmiş diller mevcut. Yazıda Yapay Zekâ ve programlama dersleri için gereken Yapay-Zeka dilleri ve detaylarına ilişkin bilgileri okuyor olacakısnız.

Bunun yanı sıra geliştirilmiş bazı diller ise Yapay Zekâ’ya o kadar yatkın ki, 2008 de elime geçen bir python kitabında net hatırlamasam da şuna benzer bir cümleyi hatırlıyorum;

“Python dilini gördükten sonra, Yapay Zekâ geliştirdiğim dilden Yapay Zekâ’ya daha yatkın olduğunu gördüm.”

hangi dilden bahsettiğini hatırlamıyorum. Fakat dediği şekliyle dinamik bir dil olmasının yanı sıra syntax’ı kolay öğrenilebilmesi (‘eski'(eski demesem iyiydi ama neyse) bir .net’ci olarak süslü parantez ve noktalı virgülü arıyor insan) akademik ve özel onlarca kütüphane ile soruna özel çözüm üretilmesiyle gerçekten biçilmiş kaftan.

Yapay Zekâ Dersleri İçin Öğrenilmesi Gereken Programlama Dilleri

  • AIML (“Artificial Intelligence Markup Language / Yapay Zekâ Biçimlendirme Dili”) XML türü bir dildir. A.L.I.C.E. gibi chatterbot’lar için geliştirilmiştir.
  • IPL ‘in şöyle bir özelliği var. Yapay Zekâ için geliştirilmiş ilk dil.
  • Lisp, (Sihirli Tılsım, seneee 2005-6 gibi, yine zamanın efsane forumlarından fazlamesai’de okuduğumuz ve hayranlık duyup bir türlü aksiyona geçemediğimiz dil).
  • Smalltalk simülasyonlar, sinir ağları, makine öğrenmesi ve genetik algoritmalar için yoğun şekilde kullanılmıştır.
  • Prolog, programların ilişkiler açısından ifade edildiği bildirimsel bir dildir ve yürütme, bu ilişkiler üzerinde sorgular çalıştırarak gerçekleşir. Prolog özellikle sembolik akıl yürütme, veritabanı ve dil ayrıştırma uygulamaları için kullanışlıdır. Sanıyorum YZ(Yapay Zekâ) için en çok kullanılan diller arasındadır.
  • STRIPS otomatik planlama problemi örneklerini ifade etmek için kullanılan bir dildir. İlk bir durumu, hedefleri ve bir dizi eylemi ifade eder. Her eylem için ön koşullar (eylem gerçekleştirilmeden önce yapılması gerekenler) ve son koşullar (eylem gerçekleştirildikten sonra kurulan koşullar) belirtilir.
  • Planner, olasılıkların desen yönlendirmeli çıkarımla yorumlandığı mantıksal cümleler için usule dayalı bir yorum getirir.
  • POP-11 yorumlanmış bir dilin birçok özelliğine sahip, adım adım derlenmiş bir programlama dilidir. Genellikle sembolik programlama tekniklerini daha fazla programcının kullanımına sunmak için kullanılır.
  • Python (Favorim) Yapay Zekâ için çok yaygın şekilde kullanılır. Genel YZ, Makine Öğrenimi, Doğal Dil İşleme ve Sinir Ağları. 
  • Haskell, YZ için çok iyi bir programlama dilidir. Çoğu durumda olduğu gibi deterministik olmayan algoritmaları ifade etmeyi kolaylaştırır. Sonsuz veri yapıları, arama ağaçları için mükemmeldir. Dilin özellikleri algoritmaları ifade etmenin kompozisyonel bir yolunu mümkün kılar.
  • Wolfram, Predict ve Classify gibi son derece otomatikleştirilmiş işlevlerden belirli yöntemlere ve teşhislere dayalı çok çeşitli entegre makine öğrenme yetenekleri içerir. Fonksiyonlar, sayısal, kategorik, zaman serileri, metinsel ve görüntü gibi birçok veri türü üzerinde çalışır.
  • C++, bu konuda hızlı olması en önemli kullanım nedenlerinden biridir. Sinir ağları gibi istatistiksel YZ teknikleri dilin en yaygın örneklerinden biridir.
  • Java:  Hala Lisp veya Prolog kadar üst düzey değil, C/C++ kadar hızlı değil, platform bağımsızlığı bu konuda onu öne çıkaran bir nokta.

Diğer Önerdiğim Yapay Zekâ ve Programlama Dilleri

  • MATLAB
  • CLIPS
  • Constraint
  • Declarative
  • Functional
  • Gödel
  • Logic
  • Mercury
  • R
  • SAIL
  • Squeak
  • Supernova