Yapay zeka şüphesiz günümüz yazılım ve donanım teknolojilerinde önemli devrimsel değişimlere yol açmıştır. Aslında her ne kadar bu terim son yıllarda popüler olmuş olsa da aslında yapay zeka çalışmaları 1950’li yıllara kadar uzanmaktadır. Son yıllarda yapay zeka teriminin bu kadar popülarite kazanmasındaki en önemli nedenlerden birisi gelişen yeni algoritmik tekniklerle uygulama alanlarının ve başarımının büyük ölçüde ve hızla artmış olmasıdır. Bu gelişmeler sebebiyle yapay zeka teknolojisi domino taşları misali birçok alandaki çözümleri arka arkaya devirerek eski çözümlerin yerinin yeni nesil çözümlerle değiştirilmesine yol açmıştır. Yapay zeka teknolojisinin kullanımının artması literatüre yeni terimlerin girmesine neden olmuş ve bu durum da önemli bir kavramsal karmaşaya sebep olmuştur. Günümüzde bu karmaşada sıklıkla karşımıza çıkan terimlere yapay zeka, makine öğrenmesi, yapay sinir ağları ve derin öğrenme verilebilir. Peki bu terimlerin gerçek anlamı nedir? Gelin birlikte bu konuya bir açıklık getirmeye çalışalım.
Yapay Zeka vs. Makine Öğrenmesi
Yapay zeka insanlar gibi davranabilen (düşünen ve karar alabilen) ‘akıllı’ makinelerin geliştirilmesini amaçlayan bir bilgisayar bilimleri alanıdır. Amacı insanların zekasını taklit ederek karar alabilecek, belirli bir görevi insanlar gibi başarıyla yerine getirecek otonom sistemlerin geliştirilmesidir. Bu durum insanlar tarafından devamlı olarak kullanılan algılama, öğrenme ve nedenselleştirme gibi yeteneklerin yapay sistemler tarafından taklit edilebilmesini içermektedir.
Makine öğrenmesi ise makinelerin; bir insan girdisine ihtiyaç duymaksızın sağlanan geçmiş verilerden faydalanarak öğrenmesi, öğrendikleriyle gelecek hakkında tahminlerde bulunması ve değişen veriye göre adapte olabilmesi olarak düşünülebilir. Bu bağlamda makine öğrenmesi yapay zekanın bir alt dalı olarak konumlanmaktadır. Makine öğrenmesi teknikleri ise öğrenme sürecinde kullanılan yöntemlere göre üç ana kategoriye ayrılmaktadır:
-
denetimli öğrenme (supervised learning)
-
denetimsiz öğrenme (unsupervised learning)
-
pekiştirmeli öğrenme (reinforcement learning)
Yapay zeka ve makine öğrenmesi arasındaki fark şöyle bir örnekle daha somut bir hale getirilebilir. Örneğin dama oyunu için bir bir bot geliştirdiğimizi varsayılım. Bu bot’un ilk versiyonu için şöyle bir algoritma hazırladığımızı düşünelim. Oyun kurallarına ve kazanmayı iyileştirecek senaryolara göre botun yapacağı hamleleri önceden programlayalım. Örneğin bunun için sembolik mantık algoritmaları ve karar verme mekanizmaları kullanabiliriz. Bu şekilde önceden programlanan bir mantığa göre karar alabilen ve dolayısıyla insan zekasını taklit eden sistemleri yapay zeka çatısı altında değerlendirebiliriz. Ancak botun ilk versiyonu herhangi bir makine öğrenmesi aşaması içermemektedir. Botumuzun ikinci bir versiyonunu şöyle planlayalım. Daha önce oynanmış dama oyunlarında yapılan hamlelerin ve hamlelerin sonuçlarının verisel kaydını alalım. Algoritma bulunduğu senaryoya göre hangi hamleyi yapmanın en faydalı olacağına öğrenme aşamasında sağlanan verilerden yola çıkarak karar versin. Bu durumda geliştirilen bot bir makine öğrenmesi örneği olarak nitelendirilebilir. Çünkü bu senaryoda bot öğrenme aşamasında sağlanan veriler dışında herhangi bir insan girdisine ihtiyaç duymadan oyunu nasıl oynayacağını öğrenmektedir. Tabi ki makine öğrenmesi yapay zekanın bir alt dalı olduğu için ikinci senaryodaki botumuz aynı zamanda da bir yapay zeka örneğidir.
Makine Öğrenmesi Çeşitleri
Denetimli öğrenme (supervised learning) makine öğrenmesinde sıklıkla kullanılan tekniklerden birisidir. Bu öğrenme biçiminde hazır girdilere göre etiketlenmiş sonuçlar eğitim verisi olarak kullanılır. Böylece öğrenme algoritması bilinen girdi ve sonuç ilişkilerine göre öğrenme sürecini gerçekleştirir. Sonrasında verilen bir test verisi için en uygun sonucu tahmin etmeye çalışır. Bu duruma en iyi örneklerden birisi olarak sınıflandırma problemi verilebilir. Örneğin tavuk, kedi ve örümcekleri resimleri olan bir veri setinde hayvanları birbirinden ayırt etmek istediğimizi düşünelim. Bu bağlamda denetimli öğrenme algoritması önce daha önce kişiler tarafından etiketlenmiş resimleri kullanarak tavuk, kedi ve örümcekleri birbirinden ayırt edecek bazı özellikleri ortaya çıkarmaya çalışır. Böylece bu üç kategori arasında öğelerin birbirinden ayrılmasını sağlayacak en belirleyici özellikleri saptamaya çalışır. Ardından bir test resmi verildiğinde o resimdeki özniteliklere de aynı işlemleri uygulayarak test resminin hangi kategoriye en yakın olduğunu belirlemeye çalışır. Böylece denetimli öğrenme algoritması test resmi üzerinde sınıf tahmini yürütür.
Denetimsiz öğrenme (unsupervised learning) ise daha önceden etikenmiş bir sonuç verisi olmaksızın girdi öğelerinin birbirine benzeyen ve ayırt edici özelliklerini anlamaya çalışır. Bu duruma verilebilecek en iyi örneklerden birisi kümeleme görevidir. Bir önceki örneğimizi tekrar düşünecek olursak bu sefer daha önceden sağlanan hazır etiketlenmiş veri seti olmaksızın tavuk, kedi ve örümceklerden oluşan bir resim kümesinin sınıflandırılması amaçlanmaktadır. Bu senaryoda verilen resimlerin bu üç hayvandan geldiği dahi bilinmemektedir. Bu bağlamda sonuç olarak elde edilecek sınıf sayısı da belirsizdir.
Son olarak Pekiştirmeli öğrenme denetimli ve denetimsiz öğrenmenin mükemmel bir sentezi olarak düşünebilir. Bu bağlamda pekiştirmeli öğrenme yönteminde algoritma gelen girdi için keşif amaçlı bir karar verir. Bu kararın doğru ya da yanlış olmasını ise belirli bir ödül fonksiyonuyla ilişkilendirir. Böylece algoritma aldığı doğru ve yanlış kararlardan elde ettiği tecrübe ile yeni test sinyallerinde ne yapılması gerektiğine karar verir. Bu bakımından pekiştirmeli öğrenme var olan bilgiye dayalı tahmin ve rastgele keşfetmenin bir sentezi olarak düşünebilir. Bu duruma verilebilecek en iyi örneklerden birisi çocukken oynadığımız sıcak soğuk oyunudur. Aranan hedefin konumu ile ilgili hiçbir ön bilgiye sahip olmayan yarışmacı önce keşif amaçlı bir yöne ilerler. Diğer yarışmacılardan aldığı anlık sıcak soğuk geri bildirimlerine ve yarışma içerisindeki tecrübelerine dayanarak hedefi bulmaya çalışır.
Yapay Sinir Ağları
Yapay sinir ağları insanların biyolojik öğrenme yapılarından modellenen bir makine öğrenmesi tekniğidir. İnsanlarda öğrenme ve karar verme mekanizmaları nöronlardan meydana gelen sinir ağlarıyla gerçekleştirilmektedir. Burada amaç öncelikle bu öğrenme sisteminin yapı taşı olan nöronları çeşitli matematiksel fonksiyonlarla modelleyebilmektir. Ardından, bu yapay sinir hücrelerinden meydana getirilen ağlar yardımıyla sınıflandırma, kümeleme ve öğrenme gibi insanların kolaylıkla yapabildiği bazı görevlerin makineler tarafından da gerçekleştirilebilmesi sağlanmaktadır.
Bu bakımdan düşünüldüğünde yapay sinir ağları makine öğrenmesinin bir alt dalı olarak karşımıza çıkmaktadır. Literatürde kullanılan yapay sinir ağları tekniklerinin önemli bir çoğunluğu denetimli öğrenme (supervised learning) kategorisinde değerlendirilebilir. Yani yapay sinir ağları girdilere karşılık el ile işaretlenmiş sonuçları kullanarak eğitilir. Daha sonra bu eğitim neticesinde ortaya çıkan yapay sinir ağı yapısı yeni test girdileri üzerinde sınanır. Ancak denetimsiz (unsupervised) olarak çalışabilen yapay sinir ağları da mevcuttur. Bunlara en iyi örneklerden birisi Kohonen ağları olarak da bilinen kendini düzenleyen ağlardır. Bu ağlarda amaç belirli bir maliyet fonksiyonunu en aza indirecek şekilde ağ fonksiyonunu güncellemek değil verilen yüksek boyutlu girdileri daha düşük bir boyutta ifade edebilecek şekilde kümeleyebilmektir.
Derin Öğrenme
Derin öğrenme insanların bilgi işleme ve karar alma gibi kritik faaliyetlerini gerçekleştirebilmeyi amaçlayan bir makine öğrenmesi tekniğidir. Derin öğrenme algoritmaları temel olarak yapay sinir ağlar üzerine kuruludur. Ancak yapay sinir ağlarından farklı olarak derin öğrenme algoritması gerektiği kadar gizli katmanı kendiliğinden oluşturabilmektedir. Zaten ‘derin’ terimi de gizli katman sayısının derinliğinden gelmektedir.
Derin öğrenme algoritmaları çok sayıda gizli katman içerebilmeleri sayesinde girdi ve sonuç arasındaki ilişkiyi kendi kendine öğrenebilir. Yani birçok klasik makine öğrenmesi tekniğinde olduğu gibi özniteliklerin önceden belirtilmiş olması gerekmez. Tabi bu durum bazen algoritmaların hedeflenen öznitelik yerine kendisinin belirlemiş olduğu farklı öznitelikleri kullanmasına da neden olabilir. Daha önce vermiş olduğumuz tavuk, kedi ve örümcek örneğini düşünelim. Burada amacımız bu üç hayvanı belirli özniteliklere dayanarak tanımak ve birbirinden ayırt edebilmek olsun. Bu gibi durumlarda klasik olarak hayvanların yüzleri ile ilgili belirli öznitelikler belirlenerek makine öğrenmesinin algoritmasının bu öznitelikler üzerinden hayvanları birbirinden ayırt etmesi beklenir. Oysa aynı örnek bir derin öğrenme tekniği ile işlendiğinde bu öznitelikler belirlenmeden sınıflandırma ya da kümelendirme işlemi yapılabilir. Ancak bu durumda derin öğrenme algoritması ayırt edici öznitelikleri kendisi belirleyecektir. Bu senaryo için önemli ayırt edici özelliklerden birisi eğitim aşamasında kullanılan hayvanların bacak sayısıdır. Yani derin öğrenme algoritması biz farkında olmadan aslında istemediğimiz veya planlamadığımız bir öznitelik üzerinden bu ayrımı gerçekleştirebilir.