data-brain

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.

Read more

Fikrimuhal was at the Free Software and Linux Days 2016

Fikrimuhal was at the Free Software and Linux Days 2016 organized in Bilgi University, Istanbul to make two important presentations:

  • “Microservice Architecture with Docker & Apache Mesos” by Ahmet Emre Aladağ and Ilgaz Şumnulu
  • “Building a Recommendation System with Apache Spark” by Şükrü Hasdemir

We were so glad to see rising interest on these revolutionary technologies. We look forward to attending FSLD17 next year to present upcoming advances in the technology.