Yapay Öğrenme Hakkında Bilmeniz Gerekenler

Yapay öğrenme, makine öğrenmesi (machine learning), öngörüsel analitik (predictive analytics) ya da otomatik öğrenme hakkında son zamanlarda yaygınlaşan haberlerle karşılaşmış olabilirsiniz: Kendi kendini süren arabalar, fotoğraflardaki insanları etiketleyen algoritmalar, çeşitli yarışma ve oyunlarda insan şampiyonları yenen programlar gibi. Sanırsınız ki her hafta şirketler yeni verilerle kendini geliştiren algoritmalar için yeni kullanım alanları buluyor! Geçen sene eski bir Google çalışanı, “şirkette her şey yapay öğrenmeyle çalışıyor” demişti.

 

Yapay öğrenme şirketleri dönüştürmek için çok büyük bir potansiyele sahip, ancak pratikte robot şoförler ve şeflere kıyasla çok daha sıradan. Yapay öğrenmeyi, istatistiğin büyük veri dünyası için tasarlanmış bir alt dalı olarak düşünebilirsiniz. Şirketlerinin sahip olduğu veriden en fazla değeri yakalamak isteyen yöneticiler, yapay öğrenmenin ne olduğunu, neler yapabileceğini, ve onu kullanırken nelere dikkat edilmesi gerektiğini anlamalılar.

 

Sedece büyük veri değil, geniş veri

Şirketlerin sahip oldukları ve erişebildikleri verinin devasa ölçeği, birtakım sorunlar teşkil etmektedir. Tabi ki büyük veriyle başa çıkmak, ileri düzey yazılım ve donanım gerektirmektedir. Ancak yapay öğrenme, veri analizinin de verinin büyüklüğüne uyum sağlaması demektir. Çünkü büyük veri sadece uzun değil, aynı zamanda geniştir de. Örneğin bir e-ticaret sitesinin müşterilerini içeren veritabanını düşünelim. Her müşteriye bir satır atandığında, eğer çok sayıda müşteri varsa veri seti uzun olacaktır. Ancak veri setindeki her değişken de bir sütun işgal etmektedir. Artık müşteriler hakkında o kadar çok veri toplayabiliyoruz ki (alışveriş geçmişi, ziyaret edilen sayfalar, tıklamalar, ürünlere yapılan yorumların metinleri) veritabanı aynı zamanda geniş de olmaktadır. Hatta sütun sayısı satır sayısından daha fazla bile olabilmektedir. Yapay öğrenme araçlarının çoğu, geniş veriyi daha iyi kullanmak için tasarlanmıştır.

 

Sebep-sonuç ilişkisi değil, öngörüler

Yapay öğrenmenin en genel uygulaması, gelecek hakkında öngörülerde bulunmaktır. İş dünyasında karşılaşılan öngörü problemlerine birkaç örnek şunlardır:

  • Müşterilere kişiselleştirilmiş önerilerde bulunmak
  • Uzun-donem müşteri bağlılığını tahmin etmek
  • Çalışanların gelecek performanslarını öngörmek
  • Kredi başvurusunda bulunanların risklerini derecelendirmek

Bu durumlar bazı ortak özelliklere sahiptir. Örneğin hepsi doğru kararın çok sayıda değişkene bağlı olduğu karmaşık problemleri ifade etmektedirler (bu da geniş veriye ihtiyaç duydukları anlamına gelmektedir). Ayrıca hepsi, yapılan tahminlerin doğruluğunun test edilmesine izin veren sonuçlara sahiptir – önerilen ürünlere tıklanıp tıklanmaması, ya da müşterinin tekrar alışveriş yapıp yapmaması gibi. Son olarak bütün bu durumlarda isabetli bir öngörü gerektiren önemli bir iş kararı bulunmaktadır.

Yapay öğrenmenin geleneksel istatistikten önemli bir farkı, sebep-sonuç ilişkilerine odaklanılmamasıdır. Başka bir deyişle, ortamı değiştirdiğinizde ne olduğunu bilmek zorunda olmayabilirsiniz. Bunun yerine öngörüde bulunmaya odaklanırsınız, bu da doğru kararı alabilmek için karar verilen ortamı modellemenizin yeterli olduğu anlamına gelir. Bu, evden çıkarken yanınıza bir şemsiye alıp alamama kararınıza benzer: Bu kararı vermek için öncelikle hava durumunu öngörmelisiniz. Bunun için kullandığınız hava tahminleri çok yardımcıdır ama sınırlıdır; tahminler size bulutların nasıl yağmur oluşturduğunu, şemsiyenin ıslanmanızı nasıl engellediğini ya da hava durumunu nasıl değiştirebileceğinizi söylemez. Aynı durum yapay öğrenme için de geçerlidir: Kişiselleştirilmiş tavsiyeler insanların tercihlerini tahmin ederek satışları artırmaya yardımcı olur, ancak size insanların sevdikleri ürünleri neden sevdiklerini ya da onların beğenilerini nasıl etkileyebileceğinizi söylemez. Bu kısıtları dikkate aldığınızda yapay öğrenmenin değeri daha belirgin olacaktır.

Sinyali gürültüden ayırmak

Şimdiye kadar yapay öğrenmenin faydalı olabileceği durumlardan bahsettik. Peki yapay öğrenme pratikte nasıl kullanılıyor? Bu konu bir blog yazısında tamamen irdelenemeyecek kadar geniş, ancak yapay öğrenme algoritmalarının çalışma şeklini kabaca üç kavramla ifade edebiliriz. Öznitelik çıkarma (feature extraction) modelde hangi verilerin kullanılacağına karar verir. Düzenlileştirme (regularization) model içinde verilerin hangi ağırlıklarla kullanılacağını belirler. Çapraz doğrulama (cross-validation) modelin başarısını ölçer. Bu faktörlerin her biri sinyali (modelin öğrenmesini istediğimiz değerli ve tutarlı ilişkiler) belirlemek ve gürültüden (kaçınılmak istenen, şans eseri oluşmuş ve gelecekte devam etmeyecek korelasyonlar) ayırmak için kullanılmaktadır. Her veri seti bir sinyal ve gürültü karışımı içerir. Bahsedilen kavramlar, daha iyi öngörülerde bulunmak için sinyali gürültüden ayırmaya yardımcı olur.

Öznitelik çıkarma (feature extraction)

Öznitelik çıkarmayı, modelin hangi değişkenleri kullanacağına karar verme olarak düşünebilirsiniz. Bazen bu, bütün veriyi ham olarak kullanmak anlamına gelebilir, ancak pek çok yapay öğrenme tekniği, eldeki veriden yeni değişkenler (öznitelikler) oluşturabilir. Bu öznitelikler, verinin içerdiği çok sayıda değişkene dağılmış durumda bulunan önemli sinyalleri bir araya getiriyor olabilir. Bu durumda sinyal, öznitelik çıkarma kullanılmadığı durumda bir etkiye sahip olamayacak kadar seyrek olabilir. Öznitelik çıkarmaya bir örnek olarak yüz tanıma verilebilir. Burada öznitelikler aslında tanınmaya çalışılan fotoğraftaki yüzün özellikleridir: Burun uzunluğu, göz rengi, ten rengi, vb. Bu öznitelikler, fotoğrafı oluşturan çok sayıdaki farklı pikselden gelen bilgiler kullanılarak hesaplanır. Başka bir örnek olarak bir müzik marketi verilebilir. Burada farklı müzik türleri için birer öznitelik tanımlanabilir. Mesela bütün rock satışlarını tek bir değişkene, klasik müzik satışlarını da başka bir değişkene atayabilirsiniz.

Öznitelik çıkarmanın çok sayıda yolu vardır, ve genellikle en kullanışlı yöntemler otomatiktir. Örneğin her albüm için müzik türünü elle seçmek yerine benzer müşteriler tarafından satın alınan “kümeleri” (cluster) ortaya çıkararak müzik türlerini veri üzerinden öğrenebilirsiniz. Böylece daha önce varlığından haberdar olmadığınız yeni müzik türleri bile keşfedebilirsiniz! Bu durum metin veriler için de yaygındır. Bu örnekte, hangi kelimelerin ve kelime gruplarının birlikte kullanıldığından hareketle metinde geçen konular çıkarsanabilir. Bütün bunlara rağmen üzerinde çalışılan konunun uzmanları (örneğin müzisyenler) kullanılacak öznitelikleri önermede ve otomatik olarak bulunan kümeleri anlamlandırmada yardımcı olabilirler.

Kümeleme (clustering) karmaşık bir konudur. Bazen bu araçlar bir öngörüde bulunmak yerine sadece verileri organize etmekte kullanılır. Bu türde yapay öğrenmeye “denetimsiz öğrenme” (unsupervised learning) denir, çünkü yapılan öngörülerin hedefi olarak ölçülen bir olgu bulunmamaktadır.

Düzenlileştirme (regularization)

Veriden elde ettiğiniz özniteliklerin gürültüyü değil de sinyali temsil ettiğini nasıl anlarsınız? Sezgisel olarak, modelinizin temkinli davranmasını, hemen abartılı sonuçlara varmamasını istersiniz. Buna “düzenlileştirme” (regularization) denir. Bunu göstermek için mümkün olan en muhafazakar modeli düşünelim: Herkes için aynı öngörüyü yapmak. Örneğin bir müzik satıcısının bütün müşterilerine, daha önce beğendikleri ürünlerden bağımsız olarak en popüler albümü önermesi. Bu yaklaşım bilerek hem sinyali hem de gürültüyü göz ardı eder. Skalanın diğer ucunda ise, müşteri verilerindeki her inceliği dikkate almaya çalışan karmaşık ve esnek bir model düşünülebilir. Bu model hem sinyalden hem de gürültüden öğrenecektir. Sorun şudur ki eğer eldeki veride çok fazla gürültü varsa esnek model muhafazakar modele göre daha kötü performans gösterecektir. Bu duruma “aşırı uydurma” (overfitting) denir: model, gelecekte devam etmeyecek örüntüleri öğrenmektedir.

 

Düzenlileştirme, esnek bir modelle muhafazakar model arasında orta yolu bulmanın bir yoludur. Bunun için genellikle başvurulan yöntem, modele bir “karmaşıklık cezası” eklemektir. Bu sayede model basit kalmaya zorlanmış olur. Bahsedilen karmaşıklık cezası, modeli iki şekilde etkileyebilir. “Seçim” etkisi, algoritmanın sadece en iyi sinyali içeren birkaç özniteliğe yoğunlaşıp diğerlerini gözden çıkarmasıdır. “Büzülme” (shrinkage) ise algoritmanın her özniteliğin sonuca etkisini azaltması, böylece tahminlerin herhangi bir özniteliğe çok fazla bağlı olmaması anlamına gelir. Böylece yüksek gürültüye sahip özniteliklerin tahmin performansını düşürmesinin önüne geçilmiş olur. Düzenlileştirmenin çok sayıda türü vardır, ancak “Lasso” adı verilen en popüler yöntem hem seçim hem büzülme etkilerini basitçe birleştirir ve çoğu uygulama için iyi bir başlangıçtır.

 

Çapraz doğrulama (cross-validation)

Oluşturmuş olduğunuz modelin iyi öngörülerde bulunduğuna nasıl emin olabilirsiniz? En önemli test, modelin “örneklem dışında” (out of sample) isabetli olup olmamasıdır. Yani model, daha önce hiç görmediği verileri doğru tahmin edebiliyor olmalıdır. Bu önemlidir, çünkü günün sonunda model yeni kararlar almada kullanılacaktır ve modelin bunu güvenilir bir şekilde yaptığını bilmeniz gerekmektedir. Ancak sahada denemeler yapmak maliyetli olabilir. Bunun yerine halihazırda sahip olunan veri ile “örneklem dışı” tahminleri simüle etmek çok daha verimli olabilir. Makine öğrenmesinde bu genellikle “çapraz doğrulama” adı verilen bir işlemle yapılır.

 

10.000.000 geçmiş müşteri hakkındaki verileri kullanarak bir tahmin modeli oluşturmakta olduğumuzu ve bu modelin gelecekteki müşteriler için ne kadar isabetli olacağını bilmek istediğimizi düşünelim. Bu isabet oranını değerlendirmenin basit bir yolu, elimizdeki veriyi modeli eğitmekte kullanılacak 9.000.000’luk bir “eğitim seti” (training set) ve ilk aşamada ayrı tutulacak 1.000.000’luk bir “doğrulama seti” (validation set) olarak iki parçaya ayırmaktır. Eğitim setini kullanarak modeli oluşturduktan sonra, modelin doğrulama setini ne kadar iyi tahmin ettiğini ölçebiliriz. Burada en önemli nokta, modelin doğrulama setini hiç görmeden eğitilmesi ve modelin başarısının eğitim bittikten sonra doğrulama setinin çıktılarını tahmin etmedeki performansı ile ölçülmesidir. Böylece testler gerçekten “dışarıda tutulmuş” (held-out) veriler ile yapılmış olur. Eğer eğitim ve doğrulama için kullanılan veri setleri açıkça birbirlerinden ayrılmadan çalışılırsa, modelin aslında ne kadar iyi olduğu aşırı iyimser bir şekilde ölçülmüş olur. Bu ise çok maliyetli bir hata olabilir.

 

Yapay öğrenme kullanılırken kaçınılması gereken hatalar

Yapay öğrenme kullanılırken en kolay düşülebilecek tuzaklardan biri, öngörüsel bir modeli (prediction model) sebep-sonuç ilişkisi çıkarımı zannetmektir. İnsanlar, bir etki oluşturmak için içinde bulundukları ortamı nasıl değiştirmeleri gerektiğini düşünmeye yatkındırlar. Öngörü problemlerinde ise sebep-sonuç ilişkisi bir öncelik değildir: Bunun yerine değişmeyen bir ortamda alınan kararlar optimize edilmeye çalışılır. Ortam ne kadar sabitse yapılan tahminler de o kadar başarılı olacaktır.

 

“Örneklem dışı” ile “bağlam dışı” arasındaki farklı ortaya koymak önemlidir. Geliştirilen bir modelin örneklem dışında başarılı olması demek, eğer birebir aynı ortamdan yeni veri noktaları toplarsak modelin bunların çıktılarını doğru bir şekilde tahmin edebiliyor olması demektir. Ancak modelin başka bir ortama taşındığında da başarılı olacağının herhangi bir garantisi yoktur. Örneğin bir e-ticaret sitesi online alışverişlerin tutulduğu bir veritabanını kullanarak yeni müşteriler kazanmaya yardımcı olan bir model geliştirebilir. Ancak aynı model ürün gamı tamamen aynı olsa bile fiziksel dükkanlarda işe yaramayabilir.

 

Eldeki verinin yüksek miktarda olmasının bu sorunun üstesinden geleceğini düşünmek cezbedici olabilir, ancak bu doğru değildir. Unutulmamalıdır ki bu algoritmalar güçlerini, yeni durumları daha önce karşılaşmış oldukları benzer durumları içeren büyük veritabanlarıyla mukayese etmelerinden almaktadırlar. Bir modeli farklı bir bağlamda uygulamaya çalıştığınızda, veritabanındaki bilgiler karşılaşılmakta olan durumlara benzer olmayacaktır. Bu sorunun basit bir çözümü yoktur. Bağlam dışı bir model, hiç bir modele sahip olmamaktan daha iyi olabilir, ancak modelin kısıtları dikkate alınmalıdır.

 

Yapay öğrenme modellerini eğitme sürecinin bazı kısımları otomatikmiş gibi görünse de modelin ne zaman başarılı olacağını anlamak önemli ölçüde insan muhakemesi gerektirmektedir. Dahası, sürece dahil olan düzenlileştirme ve çapraz doğrulama gibi güvenlik önlemlerinin doğru şekilde kullanıldığını garantilemek için önemli ölçüde eleştirel düşünce gerekmektedir.

 

Tüm bunlara rağmen, yapay öğrenmenin alternatifi olarak yalnızca insanların karar almasının da kendine özgü önyargıları ve hataları bulunmaktadır. Teknik becerinin ve insani yargının doğru karışımıyla yapay öğrenme, büyük miktarlardaki veriyi katma değere dönüştürmek isteyen karar vericiler için yeni ve işe yarar bir araç olabilir.