Neymiş Lan Bu Yapay Öğrenme? – 2
Bir önceki yazımızda, yapay öğrenmenin tarihine kısaca bir bakıp yapay zekânın bir alt dalı olduğundan; bunun yanı sıra temelde olasılık, istatistik ve optimizasyon tekniklerinin birlikte kullanımına dayandığından bahsetmiştik. Bu yazımızda ise yapay öğrenmenin birtakım uygulamalarına ve bazı yapay öğrenme metotlarına değineceğiz.
Öncelikle bilmemiz ve barışık olmamız gereken bir gerçek var: Yapay öğrenme ve yapay zekâ, bir makineye tam anlamıyla bir “zihin” sağlamaz. Bir makineye henüz yalnızca tek bir işte uzmanlaşmayı öğretebiliyoruz ve bir makinenin genel hayata uyum sağlamasına aracı olmaktan hâlâ çok uzağız. Yani, henüz bir makineden, T-100 (bu arkadaş Terminatör), HAL-9000 (bu arkadaş 2001: A Space Odyssey’den) veya Data (Star Trek sevenler elleri havaya kaldırsın) olmasını bekleyemeyiz. Yine de yapay öğrenmenin epey etkileyici gerçek dünya uygulamaları var:
- Fotoğraf etiketleme: Yıllarca kendimiz Facebook’ta, Instagram’da filan fotoğraflarda insanları arayıp etiketlemek için uğraştık, şimdi fotoğraf açıldığı gibi “Abi Hüseyin değil mi o, Hüseyin’i etiketleyeyim mi?” diyen uygulamalarımız var.
- Optik karakter tanıma (OCR): Mesela siz arkadaşınızın yazısına bakıp “F mi T mi o ya?” derken ya da bir teyze size yaklaşıp “oğlum gözüm görmüyor, şu rakam 3 mü 8 mi?” diye sorarken artık fotoğrafını çektiğiniz ya da tarayarak dijital ortama aktardığınız metinlerdeki karakterler hızla ayırt edilebiliyor.
- Otonom araçlar: Bunları yola koyuyorsunuz, kendi kendilerine gidiyorlar. Nasıl mı? Şeritleri, tabelaları ve diğer araçları anlayarak tabii ki (ama henüz Bostancı sahil yolunda kullanmamakta fayda var).
- İstenmeyen e-posta filtreleme: E-postaların içeriklerine hızlıca bir göz gezdirerek size gelen e-posta’nın ayırt edilmesini sağlıyor bu filtreler. Üstelik ta 2001’den beri (“2001 çok da eski değilmiş yahu” demeyin, bu filtreler insan olsalardı şu anda üniversite giriş sınavına hazırlanıyorlardı).
- Duygu analizi: Metinlere bakarak metin içeriğinin olumlu, olumsuz veya nötr bir mesaj içerdiğine karar verebiliyorlar.
- Öngörü: Elinizde bir excel dosyası var diyelim. Bu dosyada bazı eksik bilgileriniz var. Yapay öğrenme metodları verinin geri kalanına bakarak, eksik veriyi gerçeğine epey yakın (zaman zaman %0.01’lik hata paylarıyla) tahmin edebiliyorlar.
- Video oyunları: Zamanında DotA’da, en zor botlara karşı oynayıp kazanabiliyordunuz ya hani? Artık OpenAI isimli şirketin OpenAI Five isimli bot takımı var. Profesyonel oyuncular bile bu botlara karşı kazanamıyor. Peki bu nasıl oldu? Yapay öğrenme sayesinde tabii.
“Tamam fasulyenin faydalarını anladık da, tam olarak ne bu fasulye?” diye sorar gibisiniz. Aslına bakarsanız, o fasulyenin, farklı uygulamalara uygun onlarca farklı cinsi var ama gelin, önce birlikte temel konseptlere ayıralım. Bu yazı dizisinde yapay öğrenme metotlarını birkaç farklı şekilde gruplandıracağım ve kriterlerim şunlar olacak: (1) insan gözetimine bağlılık, (2) dağılıma bağlılık (3) verinin sürekliliğine bağlılık ve (4) veri artışına bağlılık.
İnsan Gözetimine Bağlılık
Kısaca açıklamak gerekirse, eğer kullandığınız metot insan gözetimine bağımlıysa gözetimli öğrenme (İng. supervised learning), değilse gözetimsiz öğrenme (İng. unsupervised learning) gerçekleştiriyorsunuz demektir. Peki, insan gözetimi yapay öğrenme bağlamında ne anlama geliyor? Yapay öğrenmeyi, makinelerin veriden bilgi edinmeleri için programlamak olarak düşünelim. Eğer elinizdeki veri, hakkında öngörüde bulunmak istediğiniz değişkene dair hâlihazırda var olan bilgileri de içeriyorsa gözetimli öğrenme gerçekleştirebilirsiniz.
Örneğin bankaya gidip kredi başvurusunda bulundunuz ve banka sizin kredi skorunuzu hesaplamak için sizden var olan borcunuza, mal varlığınıza, aylık gelirinize filan (hiç iktisat bilmemek) dair bilgiler aldı, bunun karşılığında sizin kredi skorunuzu hesapladı ve bunu bir Excel dosyasına kaydetti. Sizin gibi yüzlerce binlerce kişiden daha bu bilgiyi topladıktan sonra, artık bir yapay öğrenme algoritması kullanarak sunduğunuz bilgilere karşılık düşen kredi skorlarını makineye gösterip sizden sonra gelecek yeni müşterilerin kredi skorunu makineye hesaplatabilir hâle geldiler. Bu noktada, hesaplanması beklenen kredi skoruna “öngörü değişkeni” (İng. prediction variable) veya “hedef değişkeni” (İng. target variable), verdiğiniz bilgi ile birlikte hesaplanmış kredi skoru değerlerine ise “etiketlenmiş veri” (İng. labeled data) diyoruz. Verinin etiketlenmesi insan gözetimine bağlı olduğu için gözetimli öğrenme gerçekleştirmiş oluyorsunuz.
Peki, diyelim ki elinizde öngörüde bulunmak istediğiniz değişkene dair hiçbir bilgi yok. Yani elinizde kredi başvurusunda bulunan insanların bazı bilgileri var ancak buna denk düşen kredi skorları yok. Bu durumda makineye, yine de elinizdeki veriyi gösterip onları elinizde olan “özelliklere” (İng. feature) ve bu özelliklerin birbirlerine olan benzerliklerine göre gruplandırmasını isteyebilirsiniz. Bu durumda, insan gözetimi olmadan, yani gözetimsiz öğrenme gerçekleştirmiş oluyorsunuz.
Gelin görün ki, bazen insan gözetimi de verimsiz olabiliyor. Bu yüzden buna yarı-gözetimli öğrenme (İng. semi-supervised learning) isminde bir çözüm getirmişler. Diyelim ki bankanızda yönetici konumundasınız ve geçmişte kredi skorları hesaplanırken çok fazla torpil döndüğünü öğrendiniz. Elinizdeki etiketlenmiş veriye ve çalışanlarınıza artık güvenemiyorsunuz ama bu işe ayıracak çok fazla zamanınız da yok. Çözüm olarak şöyle yapabiliyorsunuz: Birkaç tane kredi skorunu sıfırdan hesaplayıp veriyi etiketliyorsunuz ama elinizdeki verinin büyük bir kısmını etiketsiz (yani kredi skorlarını hesaplamadan) bırakıyorsunuz. Bu noktada, yarı-gözetimli öğrenme algoritmanız önce etiketlenmiş verinize bakarak verinizde bulunan/bulunmasını beklediğimiz grupları anlıyor. Sonra verinin etiketlenmemiş kısmına bakarak etiketlenmemiş verinin bu gruplardan en çok hangisine oturduğuna dair tahminlerde bulunuyor, eğer hiçbirine oturmadığını düşünüyorsa yeni gruplar oluşturuyor. [4]
Bir de takviyeli öğrenme (İng. reinforcement learning) dediğimiz, yukarıda saydığım gruplardan hiçbirine tam olarak oturmayan bir diğer yöntemimiz var. Takviyeli öğrenme metotlarını ödül vererek öğrenmeye benzetebiliriz. Nasıl ki bir hayvan dostumuza pati uzatmayı, ölü taklidi yapmayı öğretirken karşılığında ödül maması veriyorsak bir makineyi eğitirken de ona dijital ödül mamaları verebiliyoruz. Mesela bir robota labirentten çıkmayı öğretmeye çalışıyoruz diyelim. Robotu labirentin içine bırakıyorsunuz ve ona yalnızca çıkışa olan mesafesini bildiriyorsunuz. Bu mesafenin kısaldığı her bir metre başına robota bir puan veriyorsunuz ve labirenti çözmek için harcadığı dakika için de ondan bir puan eksiltiyorsunuz. Robotun algoritmasına en yüksek ödülü toplaması gerektiğine dair bir şeyler iliştirdiğiniz takdirde, robot arkadaşımız deneye yanıla o labirentten çıkmak için en hızlı rotayı bulmayı öğrenebiliyor.
Çok fazla bilgiyi tek bir yazıya doldurmak istemediğimizden, bir sonraki yazımızda dağılıma bağlılık, verinin sürekliliğine bağlılık ve veri artışına bağlılık kriterlerinden bahsedeceğiz.
Kaynaklar:
[1] https://towardsdatascience.com/machine-learning-brief-introduction-51e5d0441d9a
[3] https://github.com/deeplearningturkiye/turkce-yapay-zeka-terimleri/blob/master/ingilizce-turkce.md
[4] https://www.datascience.com/blog/what-is-semi-supervised-learning
[5] https://cdn0.gamesports.net/content_teasers/71000/71046.jpg?1529940459
Miles Dyson
Yazar: Miles Dyson (tümünü gör)
- Yazları ve Kışları ile Yapay Zekâ - 25 Eylül 2020
- Neymiş Lan Bu Yapay Öğrenme? – 2 - 23 Kasım 2018
- Neymiş Lan Bu Yapay Öğrenme? - 25 Eylül 2018
- Turing Testini Geçen Suni Hücre - 1 Şubat 2017
- Lorenz Çekimi ve Kaos Teorisi - 25 Ocak 2017
Yav siz mükkkkemmmelsiniz. Bildiğim şeyleri bile sırf sizin nasıl yazmış olduğunuza bakmak için okuyorum. Bu arada Daniel baba sağolsun bu siteyi bize gösterdi. şöyle bırakayım https://www.youtube.com/watch?v=Mm2eYfj0SgA