Makine Öğrenmesi
Makine Öğrenmesi Nedir?
Makine öğrenmesi, bilgisayarların verilerden, bu desenlerin ne olduğunu açıkça belirtilmeden otomatik olarak çıkarımlar yapabilmesini sağlayan bir bilgisayar bilimi dalıdır. Bu çıkarımlar genellikle verilerin istatistiksel özelliklerini otomatik olarak incelemek ve farklı nicelikler arasındaki ilişkiyi temsil etmek için matematiksel modeller oluşturmak amacıyla algoritmalar kullanılarak yapılır. Bunu, bilgisayarın belirli bir görevi yerine getirebilmesi için bir dizi kuralın açıkça belirtildiği deterministik sistemlere dayanan geleneksel bilgisayarla karşılaştıralım. Bu programlama yöntemi, kurallara dayalı (rules-based) olarak adlandırılır. Makine öğrenmesinin, kurallara dayalı programlamadan farklı ve üstün olduğu yer, kuralları kendi başına çıkarabilmesidir. Diyelim ki bir banka müdürüsünüz ve bir kredi başvurusunun, başvuran kişinin krediyi geri ödeyip ödemeyeceğini belirlemek istiyorsunuz. Kurallara dayalı bir yaklaşımda, banka müdürü (veya diğer uzmanlar), başvuranın kredi puanı bir eşiğin altındaysa başvuruyu reddetmesi gerektiğini bilgisayara açıkça belirtir. Ancak bir makine öğrenmesi algoritması, müşterilerin kredi puanları ve kredi sonuçlarıyla ilgili geçmiş verileri alır ve bu eşik değerinin ne olması gerektiğini kendi başına çözer. Bu şekilde makine, geçmiş verilerden öğrenir ve kendi kurallarını oluşturur. Tabii ki, bu sadece makine öğrenmesinin bir girişidir, çünkü gerçek dünya makine öğrenmesi modelleri genellikle basit bir eşik değerinden çok daha karmaşıktır. Yine de, makine öğrenmesinin ne kadar güçlü olabileceğini gösteren harika bir örnektir. Herhangi bir organizasyonel KPI, ilgili verilere sahip olduğunuz sürece optimize edilebilir. Örneğin, bir geçmiş müşteri veri seti verildiğinde, mevcut müşterilerinizden hangilerinin ayrılma riski taşıdığını tahmin edebilir, böylece churn (müşteri kaybı) olmadan durdurabilirsiniz. Modern makine öğrenmesi yaklaşımları büyük adımlar atmış ve bundan çok daha fazlasını başarabilmektedir. Otonom araçlardan ses tanımaya, gelen kutunuzdaki spamları işaretleyen otomatik e-posta filtreleme sistemlerine kadar, makine öğrenmesi algoritmaları, bugün bağımlı olduğumuz teknolojik ilerlemelerin temelini oluşturur. Şimdi, makine öğrenmesi algoritmalarının farklı türlerini ve bunların çözebileceği belirli problem türlerini inceleyelim.
Makine Öğrenmesinin Türleri
Makine öğrenmesi algoritmaları genellikle üç genel kategoriye ayrılır (ancak başka sınıflandırma şemaları da kullanılır): denetimli öğrenme (supervised learning), denetimsiz öğrenme (unsupervised learning) ve pekiştirmeli öğrenme (reinforcement learning).
Denetimli Öğrenme - Supervised Learning
Denetimli makine öğrenmesi, makine öğrenmesi modeline, ilgilendiğimiz niceliğin açık etiketlerle verildiği algoritma sınıflarını ifade eder (bu nicelik genellikle yanıt veya hedef olarak adlandırılır). Yarı denetimli öğrenme, AI modellerini eğitmek için etiketli ve etiketlenmemiş verilerin bir kombinasyonunu kullanır. Etiketlenmemiş verilerle çalışıyorsanız, veri etiketleme işlemi yapmanız gerekecektir. Etiketleme, makine öğrenmesi modelinin eğitilmesine yardımcı olacak örneklerin açıklanması sürecidir. Etiketleme genellikle insanlar tarafından yapılır, bu da pahalı ve zaman alıcı olabilir. Ancak, etiketleme sürecini otomatikleştirme yöntemleri vardır. Denetimli öğrenmenin harika bir örneği, daha önce incelediğimiz kredi başvuruları senaryosudur. Burada, geçmiş kredi başvurularının kredi puanları (ve potansiyel olarak gelir düzeyleri, yaş vb.) ve açık etiketlerle birlikte, başvuranın krediyi geri ödeyip ödemediğini belirten verilere sahiptik. Denetimli öğrenme algoritmaları daha da alt kategorilere ayrılabilir: regresyon ve sınıflandırma. Bu fark, hedefimizin hangi tür nicelik olduğu ile ilgilidir. Eğer hedef, birkaç ayrı kategoriden bir seçimse — örneğin, başvuranın krediye temerrüde düşüp düşmeyeceği, bu bir kedinin, köpeğin veya insanın resmi olup olmadığı gibi — bu problem sınıflandırma olarak adlandırılır, çünkü belirli bir veri noktasının ait olduğu sınıfı belirlemeye çalışıyoruz. Ancak, hedef değişkenimiz sürekli bir değer ise, bu problem regresyon olarak adlandırılır. Örneğin, bir evin fiyatını, yatak odası sayısı ve konumuna göre tahmin etmek.
Denetimsiz Öğrenme - Unsupervised Learning
Denetimsiz öğrenme problemlerinde elimizde herhangi bir etiketli veri yoktur ve yalnızca kalıpları patterns ararız. Örneğin, Amazon olduğunuzu düşünelim. Müşterilerin satın alma geçmişine dayanarak herhangi bir küme cluster belirleyebilir miyiz? Bu senaryoda, belirli bir kişinin ilgi alanlarıyla ilgili net ve kesin verilere sahip olmasak da, belirli bir müşteri grubunun benzer ürünleri satın aldığını tespit etmek, bize o kişilere yönelik satın alma önerileri sunma imkânı tanır. Amazon'un "Şunlarla da ilgilenebilirsiniz" karuseli bu tür sistemlerle çalışır. K-ortalama kümeleme (K-means clustering), müşterileri farklı gruplara ayıran bir kümeleme modeli (clustering model) türüdür. Bu model, müşteri davranış kalıplarındaki benzerliklere dayanarak onları çeşitli kümelere atar. Teknik olarak, model her küme için bir merkez noktası (centroid) bulur ve bu noktalar başlangıç ortalaması olarak kullanılır. Yeni müşteriler, belirlenen kümelerden birine, benzerliklerine göre atanır. Ayrıca, kümeleri belirledikten sonra bunların özelliklerini inceleyebiliriz. Örneğin, belirli bir kümenin çok sayıda video oyunu satın aldığını görürsek, bu grubun büyük ihtimalle oyunculardan (gamers) oluştuğunu tahmin edebiliriz. Bu tür bir analiz gerçekleştirdikten sonra, denetimsiz öğrenmeden (unsupervised learning) elde edilen etiketleri kullanarak denetimli öğrenme (supervised learning) modelleri oluşturabiliriz. Örneğin, 25 yaşındaki bir oyuncunun bizden ne kadar para harcayacağını 50 yaşındaki bir balıkçılık meraklısına kıyasla tahmin eden bir model geliştirebiliriz.
Pekiştirmeli Öğrenme - Reinforcement Learning
Pekiştirmeli öğrenme, bir bilgisayar aracısına (agent) belirli bir görev verilerek, ancak ne yapması gerektiği konusunda çok az yönlendirme yapılarak eğitildiği bir makine öğrenmesi (machine learning) algoritma sınıfıdır. Bunun yerine, bilgisayar kendi seçimlerini yapar ve bu seçimlerin istenen sonuca ulaşıp ulaşmamasına bağlı olarak ödüller (rewards) veya cezalar (penalties) alır. Bu süreci birçok kez tekrar ederek bilgisayarın bir şeyi deneme-yanılma (trial and error) ve tekrarlanan iterasyonlarla en iyi şekilde yapmayı öğrenmesini sağlarız. Bu yöntemi makine öğrenmesine uygulanan "havuç ve sopa" (carrot-and-stick) yaklaşımı olarak düşünebiliriz. Bilgisayarın bir video oyunu oynayıp neyin işe yarayıp neyin yaramadığını keşfetmesine benzer. İlginç bir şekilde, oyun oynama (playing games), pekiştirmeli öğrenmenin en çarpıcı sonuçları gösterdiği alanlardan biridir. Google'ın ünlü AlphaGo modeli, en üst düzey Go oyuncularını bile yenen bir sistem olarak pekiştirmeli öğrenme kullanılarak inşa edilmiştir. Google daha sonra bu teknolojiyi, satranç oyuncularının en iyi stratejileri belirlemek için referans aldığı AlphaZero modeline genişletmiştir.
Derin Öğrenme - Deep Learning
Makine öğrenmesi (machine learning) hakkında haberlerde bir şeyler okuduysanız, büyük olasılıkla derin öğrenme (deep learning) terimini de duymuşsunuzdur. Ve muhtemelen şu anda derin öğrenmenin yukarıda bahsedilen paradigmaların neresine uyduğunu merak ediyorsunuzdur. Cevap şu: hepsine. Derin öğrenme, bir problemi birkaç katmanlı (layers) yapay sinir ağları (artificial neural networks) kullanarak çözmeye çalışan bir makine öğrenmesi alt kümesidir. Bu yapay sinir ağları, insan beynindeki nöronların çalışma prensiplerine gevşek bir şekilde benzer. Bu makine öğrenmesi sınıfı derin öğrenme (deep learning) olarak adlandırılır çünkü tipik bir yapay sinir ağı (artificial neural network), birçok katmandan oluşur. Başlangıçta denetimli öğrenme (supervised learning) için kullanılan derin öğrenme, son yıllarda denetimsiz öğrenme (unsupervised learning) ve pekiştirmeli öğrenme (reinforcement learning) problemlerinde de kullanılmaya başlanmıştır. Ve muazzam sonuçlar elde edilmiştir. Bilgisayarlı görü (computer vision) alanındaki son gelişmelerin çoğu, sürücüsüz arabalar (self-driving cars) ve yüz tanıma sistemleri (facial recognition systems) gibi teknolojilerin temelini oluşturan derin öğrenme modellerine dayanır. Doğal dil işleme (natural language processing, NLP) sayesinde bilgisayarların insan konuşmalarını anlaması mümkün hale gelmiş ve bu da Siri ve Google Asistan gibi sistemleri mümkün kılmıştır. Günümüzdeki yapay zeka (AI) devrimi büyük ölçüde Geoffrey Hinton, Yann LeCun ve Yoshua Bengio gibi derin öğrenmenin öncülerine borçludur. Bu yapay zeka mühendisleri, Turing Ödülü (Turing Award) ile ödüllendirilerek derin sinir ağları konusundaki çığır açan çalışmaları onurlandırılmıştır.
Yapay Zekâ ve Makine Öğrenimi Arasındaki Fark Nedir?
Bir teknoloji şirketinin web sitesine göz attıysanız veya Apple’ın en son iPhone'larının tanıtımını izlediyseniz, yapay zekâ (AI - Artificial Intelligence) ve makine öğrenimi (ML - Machine Learning) gibi terimlerin her yerde karşınıza çıktığını görmüş olabilirsiniz. Bu "moda terimler" genellikle birbirinin yerine kullanılsa da aralarında ince ama önemli farklar vardır. Öyleyse, her iki terimin tam olarak ne anlama geldiğine ve nasıl birbiriyle ilişkili olduğuna bakalım. Öncelikle, bu terimleri tek tek tanımlayalım ve ardından aralarındaki ilişkiye geri dönelim.
Yapay Zekâ (AI - Artificial Intelligence) Nedir?
Yapay zekâ hakkında bilgisayar bilimi, tarih, felsefe ve zekânın doğasını kapsayan bir kitap yazmak mümkün olsa da, konuyu basit tutalım. Yapay zekâyı en kolay şekilde "zekâ yaratma girişimi" olarak tanımlayabiliriz. Yapay zekâ disiplini, akıllı sistemlerin teorisini ve uygulamalarını, özellikle de otomatik karar alma ve öğrenme süreçlerini inceler. Daha az soyut bir ifadeyle, yapay zekâ, bilgisayarların insanların dünyayı algılama ve yorumlama yeteneğini taklit etmesine olanak tanıyan bir alandır. Bu elbette büyük bir hedef, ancak yapay zekâ araştırmalarının nihai amacını iyi özetler. Örneğin Terminatör filmini düşünün. Bu hayali makine, çevresini algılayabiliyor, dünyanın ve içindeki canlıların sürekli değişen dinamiklerini anlayabiliyor ve insanlardan gelen herhangi bir talimat olmadan bağımsız kararlar alabiliyor. Bu tanım, gerçek anlamda bağımsız bir yapay zekâ oluşturmanın hâlâ çok uzak bir hedef olduğunu da açıkça ortaya koyuyor. Bununla birlikte, günümüz yapay zekâsı pek çok alanda büyük faydalar sağlıyor. Tıp, tarım, üretim, satış ve pazarlama gibi sektörlerde yapay zekâ büyük değişimler yaratıyor. Kullandığımız araçlardan, iletişim yöntemlerimize kadar pek çok alanda yapay zekâ hayatımızı etkiliyor.
Üç Tür Yapay Zekâ
Ancak, her durumu bağımsız bir şekilde yönetebilen bir makine yapma hayali, araştırmacılar için en yüksek hedef olsa da, belirli görevleri insana benzer şekilde yerine getirebilen sistemler geliştirmede büyük ilerlemeler kaydedildi. Bu farklı zekâ seviyelerini ayırt etmek için yapay zekâ genellikle üç türe ayrılır: Dar Yapay Zekâ (ANI - Artificial Narrow Intelligence) Genel Yapay Zekâ (AGI - Artificial General Intelligence) Süper Yapay Zekâ (ASI - Artificial Super Intelligence)
Dar Yapay Zekâ (ANI - Artificial Narrow Intelligence)
Zayıf yapay zekâ (weak AI) olarak da bilinen ANI, yalnızca belirli bir görevi yerine getirebilen sistemleri ifade eder. Örneğin, Google Asistan, Siri, yüz tanıma sistemleri ve otonom araçlar (self-driving cars) ANI'ye örnektir.
Genel Yapay Zekâ (AGI - Artificial General Intelligence)
Güçlü yapay zekâ (strong AI) olarak da adlandırılan AGI, insan zekâsına eşdeğer bir yapay zekâyı ifade eder. Birden fazla farklı görevi öğrenip uygulayabilen sistemler AGI kategorisine girer. Örneğin, "Her" filmindeki yapay zekâ karakteri Samantha, AGI’ye bir örnek olarak gösterilebilir. Samantha, insanlarla doğal konuşmalar yapabiliyor, öğrenebiliyor ve duygusal tepkiler verebiliyordu.
Süper Yapay Zekâ (ASI - Artificial Super Intelligence)
ASI, insan zekâsını aşan yapay zekâdır. Bu tür bir yapay zekâ henüz geliştirilmemiştir ve genellikle bilim kurgu filmlerinde gördüğümüz yapay zekâ türüdür. Günümüzde geliştirilen tüm yapay zekâ sistemleri Dar Yapay Zekâ (ANI) kategorisine girer. Ancak, büyük veri, gelişmiş algoritmalar ve güçlü işlemciler gibi teknolojiler AGI’nin geliştirilmesini hızlandırmaktadır.
Makine Öğrenimi ve Yapay Zekâ İlişkisi
Makine öğrenimi, yapay zekânın bir alt alanıdır ve verilerden öğrenmeyi sağlar. Bir yapay zekâ sisteminde, veriler toplanır, işlenir ve model tarafından analiz edilerek tahminler yapılır. Makine öğrenimi sayesinde, sistemler insanlar tarafından programlanmadan örüntüleri tanıyabilir ve kararlar alabilir. Örneğin: Otonom araçlar, yol üzerindeki nesneleri tanımak için görüntü tanıma (image recognition) kullanır. Google Translate, farklı diller arasındaki kelime örüntülerini öğrenerek dil çevirisi (machine translation) yapar. Netflix ve Amazon, kullanıcıların alışkanlıklarını analiz ederek öneri motorları (recommendation engines) oluşturur. Makine öğrenimi, denetimli öğrenme (supervised learning), denetimsiz öğrenme (unsupervised learning) ve pekiştirmeli öğrenme (reinforcement learning) gibi farklı teknikler içerir. Sonuç olarak, tüm makine öğrenimi sistemleri birer yapay zekâ sistemidir, ancak tüm yapay zekâ sistemleri makine öğrenimi kullanmaz.
Makine Öğrenmesi (Machine Learning) Nedir?
Bu kılavuzun giriş bölümünde tartıştığımız gibi, makine öğrenmesi (machine learning), bilgisayarların verilerden otomatik olarak örüntüler çıkarmasını sağlayan, ancak bu örüntülerin ne olduğu açıkça belirtilmeyen bir bilgisayar bilimi dalıdır. Bu nedenle, makine öğrenmesi yapay zekâ (artificial intelligence, AI) elde etmenin bir yoludur—yani, bağımsız ve insan benzeri kararlar alabilen sistemler geliştirmeyi sağlar. Ne yazık ki, bu sistemler şu ana kadar yalnızca belirli görevlerle sınırlı kalmıştır ve bu yüzden dar yapay zekâ (narrow AI) örnekleri olarak kabul edilirler. Son yirmi yılda, en heyecan verici makine öğrenmesi uygulamalarının çoğu derin öğrenme (deep learning, DL) adı verilen alanın bir alt kümesinden gelmiştir. Bu kılavuzun derin öğrenme bölümünde tartışıldığı gibi, derin öğrenme algoritmaları görüntü tanıma (image recognition) ve doğal dil işleme (natural language processing) gibi problemlerde en yüksek başarı seviyelerine ulaşmıştır. Ayrıca tahminleme (forecasting) ve pekiştirmeli öğrenme (reinforcement learning) gibi alanlarda da büyük umut vaat etmektedirler. Şimdi, yapay zekâ (AI), makine öğrenmesi (ML) ve derin öğrenmenin (DL) birbiriyle nasıl ilişkili olduğuna geri dönelim.
Yapay Zekâ (AI) ve Makine Öğrenmesi (ML) Arasındaki İlişki Nedir?
Aşağıdaki grafik, yapay zekâ (artificial intelligence, AI), makine öğrenmesi (machine learning, ML) ve derin öğrenme (deep learning, DL) arasındaki ilişkiyi oldukça iyi açıklamaktadır.
AI, bu üç kavramın en genel olanıdır ve neredeyse bu araştırma alanının temel hedefi olarak görülebilir: İnsan karar alma süreçlerini taklit edebilen sistemler oluşturmak. Yaygın bir yanlış anlama, yapay zekânın kendi kendine öğrenebildiğidir. Gerçekte, yapay zekâ insan programcılar tarafından belirli görevleri tamamlamak ve tahminlerde bulunmak için programlanır. Yapay zekâ zekâyı taklit edebilir, ancak bir insan gibi bağımsız öğrenme yeteneğine sahip değildir. Günümüzde AI mühendislerinin hedefi, makinelerin insanlar gibi düşünmesini ve daha az makine gibi davranmasını sağlamaktır. Günümüz AI araştırmacılarının bir diğer hedefi ise yapay zekânın insanlar gibi davranmasını sağlamaktır. Bu, özellikle zor bir görevdir çünkü insan davranışı hem bireysel eğilimler hem de çevresel faktörlerin bir ürünü olarak görülür; ancak bu kavramlar insanlar ve makineler arasında tamamen farklıdır. Makine öğrenmesi, yapay zekâ elde etmenin bir yoludur ve derin öğrenme (deep learning), özellikle yapılandırılmamış verilerle (örneğin görüntü tanıma ve doğal dil işleme) ilgili problemlerde en başarılı olan makine öğrenmesi algoritmalarının bir alt kümesidir. Makine öğrenmesi genellikle hibrit sistemlerin (hybrid systems) bir parçası olarak kullanılır. Hibrit sistemler, insan ve makine zekâsının en iyi yönlerini birleştirmeyi amaçlayan sistemlerdir. Örneğin, bir makine öğrenmesi modeli tahminler üretebilir ve ardından bu tahminleri analiz etmesi için bir insana iletebilir. Ancak, makine öğrenmesini yapay zekâdan ayırmak önemlidir çünkü yapay zekâ oluşturmanın tek yolu makine öğrenmesi değildir—sadece şu ana kadar en başarılı olan yaklaşımdır.
Sembolik Yapay Zekâ - Symbolic AI
Bu alanın araştırmalarının ilk yıllarında, araştırmacılar sembolik yapay zekâ (symbolic AI) sistemleri oluşturmaya odaklandılar. Bu yaklaşım, klasik yapay zekâ (classical AI) veya eski tarz yapay zekâ (good old-fashioned AI - GOFAI) olarak da adlandırılır. Bu yaklaşım, dünyayı bir dizi sembol olarak temsil etmeye, gerçek dünya problemlerini sembolik önermelere dönüştürmeye ve ardından bilgisayarın bu problemleri önermeli mantık (propositional logic) kullanarak çözmesine dayanır. Bu çalışmalar, insanların (ve dillerimizin) hem gerçek dünyadaki nesneleri hem de bunlar arasındaki ilişkileri sembollerle temsil ettiğine dair gözleme dayanıyordu. Örneğin, "John" ve "pizza" birer sembol, "yemek (eat)" ise bu iki nesne/sembol arasındaki ilişkidir. Eğer tüm evreni (ya da en azından belirli bir alanla ilgili tüm bilgiyi, örneğin tıp alanını) böyle semboller ve ilişkilerle temsil edebilseydik, bir bilgisayar bu problemleri mantık kullanarak çözebilirdi. Farklı önermeleri eğer-o zaman (if-then) kuralları ile de birbirine bağlayabilirdik. Örneğin: EĞER Aç (HUNGRY, John) İSE Ye (EAT, John, Pizza) Bu, oldukça basit bir kural tabanlı sembolik yapay zekâ (rule-based symbolic AI) örneğidir. Elbette, bu basit örnek yalnızca birkaç sembol ve tek bir kural içerirken, gerçek bir bilgisayar sistemi milyarlarca sembol, önerme ve kural saklayabilir. Böyle kural tabanlı sistemler, uzman sistemler (expert systems) olarak bilinen, problemleri çözmek için kurallar hiyerarşisine dayanan yapay zekâ araçlarının temelini oluşturur. Örneğin, bir doktorun bir hastayı teşhis etmesini düşünelim. Teşhisler genellikle şu şekilde kural tabanlıdır: EĞER Hasta X ve Y belirtilerine sahipse VE Kan şekeri Z’den büyükse İSE Hastalık A vardır. Sonuç olarak, yapay zekâ kanser teşhisi, tedavisi ve önlenmesi üzerinde büyük bir etki yaratmıştır. Araştırmalar, algoritmaların hücreleri kanserli olup olmadığı konusunda insanlardan daha iyi sınıflandırabildiğini göstermiştir. Benzer şekilde, bir kredi başvurusu sürecini ele alalım. Uzmanlardan oluşan bir panel, bu problemi şu kurallarla temsil edebilir: EĞER Kredi skoru > X VE Kredi miktarı < Y İSE Kredi onayla. Bu, doktor veya kredi memurunun kararlarını otomatikleştiren bir uzman sistem (expert system) oluşturmak için kullanılabilir. Sembolik yapay zekâ, makine öğrenmesine kıyasla bazı avantajlara sahiptir. Makine öğrenmesi sistemleri tarihsel veriler üzerinde örüntü tanıma yaparken, sembolik sistemler sadece bir uzmanın problemi semboller, önermeler ve kurallar halinde tanımlamasını gerektirir. Bu yüzden neredeyse hiç eğitim verisine ihtiyaç duymaz. Ayrıca, sembolik yapay zekâ sistemleri insan tarafından okunabilir kurallar içerdiğinden, derin sinir ağları (deep neural networks) gibi yorumlaması zor sistemlere kıyasla çok daha anlaşılırdır. Bununla birlikte, dünyayı tam anlamıyla sembollerle ifade etmek büyük bir zorluktur. Özellikle görüntü sınıflandırma gibi görevlerde, belirli bir nesneyi sembollerle ifade etmek neredeyse imkânsızdır. Bu zorluklar nedeniyle sembolik yapay zekâ, 1970'ler ve 1980'lerde "AI kışı" olarak bilinen dönemin başlıca nedenlerinden biri olmuştur. Ancak son yıllarda, nöral-sembolik hesaplama (neural-symbolic computing) adı verilen yeni yaklaşımlar, makine öğrenmesi sistemlerini sembolik yapay zekâ ile birleştirerek bu iki yöntemin avantajlarını birleştirmeyi amaçlamaktadır.