DevVeri.com

Boğulacaksan büyük veride boğul!

Günlük Hayatta Yapay Zekâ Teknikleri – Yazı Dizisi (1)

Bütün bilimlerin ve buluşların kaynağında, “insandan/doğadan esinlenme” bulunmaktadır. Mekanik (pistonlar v.s.) için insan kaslarına, görüntü ve video (fotoğraf makinesi, TV v.s.) için, göz’e, pompa için kalbe, sonar için kulaklara, filtre için akciğerine, skorsky helikopter için yusufcuk böceğine (helikopter böceği)… bakılabilir.

Şüphesiz, yapay zeka yöntemlerinde de, insan beyninden esinlenilmiştir. Bir sorunu çözmek, bir olayı sınıflandırmak veya bir durumda karar vermek için düşünürken, beynimizde kullanılan (ancak biz farkında değiliz) yöntemler incelenerek, makine öğrenmesi algoritmaları geliştirilmiştir. Bu konuda bazı örnekler verelim.

Yapay Zekâ Kısa Bilgi: Sınıflandırma

Bir nesnenin, kaydın, olayın, durumun, hangi sınıfa ait olduğunu bulmaya (tahminleyip) yarayan yönteme sınıflandırma denilir. Bu konuya; bir elmanın çürük olup olmadığı, bir kişinin hangi siyasi partiye oy verdiğinin tahmini, bir kişinin ev alıp almayacağı (yakın vakitte) gibi örnekler verebiliriz.

Sınıflandırma, yapay zekânın en çok yoğunlaştığı konularından biridir. Öyle ki, yüz tanıma, ses tanıma, nesne tanıma, içerik sınıflandırma, kur tahminleme, hastalık tespiti gibi binlerce konuda, sınıflandırma algoritmaları kullanılır.

SVM:

İlk örneğimiz SVM: Bir iş yerine başvuru yapan onlarca adaydan, işe nasıl kabul olunacağını çözmeye çalışıyorsunuz. Varsayalım ki, başvuru yapan 100 kişiden 15 tanesi işe alındı ve siz adayların birçok bilgisine ulaşabiliyorsunuz (demografik, kariyer, referans, karakter vs.). Böyle bir durumda, işe alınma kriterlerini nasıl anlayabiliriz? Ya da yeni bir aday geldiğinde (mülakata girmeden), işe alınıp alınmayacağını nasıl tahmin edebiliriz? İşte burada devreye, “SVM: Support Vector Machines – Türkçesi Destek Vektörü Makineleri” giriyor.

Problemde bahsedilen ayrımı (hangi aday işe kabul edilir/hangisi edilmez) yapabilmek için, en akla yatkın olan yöntem; özellikleri birbirlerine çok yakın olan ancak biri alınan/biri alınmayan adayların, aynı olmayan özelliklerine bakmaktır. Yani, “kabul edilen bir adayı” ele alalım ve kabul edilmeyen diğer bütün (85 kişi) arasında, bu kişiye özellikler (demografik, kariyer, referans, karakter vs.) bakımından en çok benzer olan (yani birçok özelliği aynı olan) adayı buluyoruz.

Bu iki adayın özelliklerini incelediğimizde, yaş, kariyer, oturdukları konum vs. gibi bilgilerde çok fazla farklılık olmadığını, hemen hemen aynı miktarda (adet) ve seviyede (müdürlerinden) referansları olduklarını görüyoruz. Ancak, karakter testlerine baktığımızda farklılık görüyoruz: Kabul edilen adayın karakter testinde, “uyumlu”, kabul edilmeyen adayda da, “baskın” sonucu yazıyor. Böylece, kabul edilme ile ilgili en önemli kriterlerden birinin karakter testi olduğunu öğreniyoruz. Ancak, bu yaptığımız varsayımı desteklemek için, bu testi, diğer bütün kabul edilenler ve kabul edilenlere en yakın (en benzer) kabul olmayanlar için yapmalıyız.

SVM, yöntem olarak, birbirine en yakın (benzer) ama farklı sınıflara ait (kabul edildi / edilmedi gibi) kayıtlara (nesnelere) yoğunlaşmaktadır. Daha sonra, en yakın olan farklı sınıf kümeleri arasına bir “sınır” çekerek, ayrımı yapmaktadır.

(Tabi ki SVM aslında çok daha karmaşık çalışmaktadır ancak biz bu örnek için, sadece temel mantığını gösterdik. SVM; verinin bulunduğu uzayı daha kolay – lineer sınıflandırılabilecek – bir uzaya çevirip, sınıflandırmayı o uzayda yapmaktadır.)

Picture1
Resimde görüldüğü üzere; birbirine en yakın, ama farklı sınıflara ait olan nesneleri ayırmak için bir tür “boundary – sınır” çiziliyor.

Regresyon temelli sınıflandırma:

İkinci olarak, naive bayes veya regresyonlar ile ilgili sınıflandırıcılara bakalım. Regresyon temelli sınıflandırıcılar da günlük hayatta çok sık kullanılır. Örneğin, yine yol kenarında bekleyen bir trafik kontrol polis ekibini izlediğinizi düşünelim. Polis ekipleri bazı araçları durduruyor, bazılarını da durdurmuyor. Polis telsizinden dinlediğimiz üzere de, herhangi bir ihbar yapılmamış. Yani, plaka veya araç cinsine uygun bir arama yapılmıyor (rutin bir kontrol). Yine, trafik polis ekibinin hangi aracı durdurup durdurmayacağını tahmin etmeye çalışıyorsunuz (günlük hayatta nasıl kullanılır: polis beni, ne yaparsam veya ne yapmazsam durdurur :)).

Belirli bir süre sonra gözlem yaptıktan sonra, bazı bilgiler ediniyorsunuz. Örneğin, polisler; eski araçları daha fazla durduruyor, ancak yeni araçlarda da durdurdukları bulunuyor (örneğin, %75 eski, %25 yeni araçlar). Yine gözlemlerde; araç içerisi kalabalık ise (3-4 kişi) araçların daha az durdurulduğunu not alıyorsunuz, ancak yine kesinlik bulunmuyor. Yani, içerisinde 3-4 kişi olan araçlar hiç durdurulmaz genellemesini çıkaramıyorsunuz. Başka birkaç kriter olarak; “aracın hızı, sürücünün polisle göz göze gelip gelmemesi, aracın tipi (jip/sedan/wagon)” gibi bilgileri not alıyorsunuz. En son olarak bu bilgileri kullanarak, polisin ne gibi durumlarda araçları durdurduğunu bulmaya çalışıyorsunuz. İşte bu gibi durumlarda, her kriter yani toplanan her bilgi, sonuca biraz etki etmektedir. Ancak tek bir kriterle sonuca varmak imkânsızdır. Yani sadece aracın hızına bakarak, veya yeni olup olmamasına bakarak, “polis bu aracı durdurur” diyemeyiz. İşte bu gibi durumlarda, regresyon tabanlı sınıflandırıcılar, her kritere belirli bir puan (katsayı) ataması yapar. Daha sonra, bu katsayılar aracın bilgilerine göre toplanır (Örnek; araç hızlı katsayısı: “4” olsun, eğer araç hızlı ise, sonuca “4” puan eklenir, ancak eğer araç hızlı değilse, bu puan eklenmez, yine aynı şekilde, varsayalım ki, araç içinde çok kişi olmasının katsayısı -5 olsun, eğer araç içinde, 3-4 kişi bulunuyorsa, bu “-5” puanı da hesaba katılır). En sonunda, bu yapılan değerlendirmeyle bir sonuç puan ortaya çıkmaktadır. Eğer bu puan belli bir seviyenin üzerinde ise, “olumlu”, değilse, “olumsuz” olarak sonuçlandırılır.

Picture2

, , , , ,

Bir Cevap Yazın

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