Skip to content

Makine Öğrenmesine Genel Bakış

Merhaba, bu yılı burada paylaşım yapmadan geçirdiğimi fark ettim ve biraz da bunun etkisi ile son zamanların en yaygın alanlarından biri olan makine öğrenmesi üzerine genel bir yazı hazırlamak istedim. Bu yazıda makine öğrenmesinin tanımı, çeşitleri ve örnek uygulamalarından bu zamana kadar aldığım lisans, yüksek lisans dersleri, diğer faydalandığım kaynaklar ve çalışmalarımın bende bıraktığı bilgi birikim ile bahsedeceğim.

Makine Öğrenmesi Nedir?

Makine öğrenmesi, çözülmesini istediğimiz problemleri çözebilecek matematiksel tabanlı yaklaşımların oluşturulması ve bunların bu problemleri çözebilecek şekilde iyileştirilerek problemler üzerinde gerçek hayatta kullanılır hale getirilmesidir. Bu tanımın, bu alanda yeni bilgi sahibi olmak isteyenler için “matematiksel tabanlı yaklaşımlar” ya da “iyileştirilerek” gibi ifadeler nedeni ile tam olarak anlaşılır olmadığının farkındayım ama bu yazının devamı ile birlikte bu ifadelere atıfta da bulunarak daha da anlaşılır olacağına inanıyorum.

Yapay Zeka – Makine Öğrenmesi ve Dikkat Edilmesi Gereken Bir Şey

Makine öğrenmesi yapay zekanın bir alt alanıdır. Haber bültenlerinde ya da normal hayatta bir yerlerde makine öğrenmesi uygulamalarından bahsedilirken bir yapay zeka uygulaması olarak daha anlaşılır bir ifade ile söylenebilir. Şu noktada bir önceki başlıkta söylediğim “matematiksel tabanlı yaklaşımlar” ifadesini açmak istiyorum.

Makine öğrenmesi çalışmasında probleme ait olan ve bizim de insanlar olarak bildiğimiz probleme özgü kurallar açık bir şekilde sisteme verilmez. Herhangi bir problem üzerinde çalışacak olan makine öğrenmesi uygulaması bu kurallardan habersizdir ve bir matematiksel yapı olarak problem üzerinde çalışırlar. Örneğin; bir hekime tahminler yapmada yardımcı olacak diyabet hastalarını ayırt etmede kullanılacak olan makine öğrenmesi uygulamasını düşünelim. Bu uygulama geliştirilirken hekimin eğitimleri ve deneyimleri sonucunda bilgi sahibi olduğu onlarca şart bloğu (kod yazarken kullandığımız if – else blokları gibi) olan eğer şöyle ise kişiyi hasta olarak tanımla eğer şöyle ise kişiyi hasta değil olarak tanımla ifadeleri açıkça uygulamaya tek tek yazılmaz. Eğer bu şekilde olsaydı probleme göre çok fazla sayıda şart ifadeleri yazardık ve makine öğrenmesi uygulamalarının getirmiş olduğu hız ve genelleştirmenin hiçbir iyi yanı kalmamış olurdu. İşte bu noktada çok fazla sayıda satır yerine tek bir matematiksel yaklaşım ya da yazının ilerleyen kısımlarında bahsedeceğim model ortaya çıkmaktadır. Örnek üzerinde düşünmeye devam edersek kişilerin diyabet hastalığının hakkında tahmin yapacak aşağıdaki gibi bir matematiksel tabanlı makine öğrenmesi modeli kişileri hasta ya da hasta değil olarak tanımlar.

F(kişiye ait bilgiler) = 0 (0: Hasta olmayan kişi) ya da F(kişiye ait bilgiler) = 1 (1: Hasta kişi.).

Makine öğrenmesi çalışmalarının amacı yukarıdaki örnekte de görüldüğü gibi karşılaştığı veriler üzerinde işe yarar ve doğru çıkarımlarda bulunacak olan matematiksel modelleri oluşturmaktır. Tabii ki önemli olan bir konu da örnekte görüldüğü üzere  kullanılacak verilerdir. Örneğin; yukarıdaki örnekte diyabet hastalığı için kişiye ait olan verilerin oluşturulmasıdır. Kişiye ait veriler içerisinde kişiye ait olan özelliklerden (Boy, yaş, diğer biyolojik ya da fiziksel özellikler vb.) hangisinin kullanılacağı önemlidir.  Alana ait şu anlık çok bilgim olmasa da diyabet hastalığı için kişinin boyu özelliği veri setinde gereksiz bir kullanım özelliği olurken yaşı bu noktada kullanılabilecek özelliklerden bir tanesi olabilir. Ancak diyabet teşhisinde kullanılacak doğru bir model için yaş özelliğinin yanı sıra birçok kişiye ait özelliği de veri setine eklemek gerekir. Bu veriler nasıl kullanılıyor da makine öğrenmesi uygulamaları ortaya çıkıyor? Bunun için makine öğrenmesi türlerine bakalım.

Makine Öğrenmesinin Terimleri ve Türleri

Bu başlıkta makine öğrenmesinin türleri ile birlikte makine öğrenmesi terimlerinden bahsederek önceki başlıkta belki de erkenden değindiğim bazı noktaların anlatımına devam edeceğim. Makine öğrenmesinin üç tane türü vardır.

  • Denetimli öğrenme (Supervised learning)
  • Denetimsiz öğrenme (Unsupervised learning)
  • Pekiştirmeli öğrenme (Reinforcement learning)

Bazı yerlerde sırası ile bu yaklaşımları gözetimli, gözetimsiz ve takviyeli öğrenme olarak da görebiliriz.

Eğitim: İlk başlıkta tanımdaki “iyileştirilerek” ifadesine geri dönelim. Aşağıdaki gibi rastgele parametreler a ve b ile oluşturulmuş bir matematiksel modelimiz olduğunu düşünelim.

F(a, b) = a * x + b

Burada herhangi bir problem üzerinde doğru tahminde bulunmak istediğimiz problem verisine ait olan bilgi x ile mantıklı bir sonuç üretebilmek için a ve b parametrelerininin doğru olarak bulunması gerekir. İşte burada “iyileştirme” olarak dediğimiz ifade yani eğitim ile elimizdeki verileri kullanarak olması gereken değerdeki a ve b parametrelerini buluruz. Buna eğitim denir. Tabii ki her makine öğrenmesi modeli yukarıdaki fonksiyona benzemez ancak genel mantık budur. Daha teknik olarak bakarsak buradaki a ve b parametreleri sırası ile ağırlık (weight) ve bias (Tahminimce taban değer ya da sapma olarak çevirilir.) olarak adlandırılabilir.

Özellikler (features): Veriyi tanımlayan birimlerdir. Örneğin; Arabalara ait yapılan bir makine öğrenmesi uygulamasında arabanın yaşı ya da arabanın modeli bir özelliği (feature) ifade eder. Makine öğrenmesi uygulamalarının başarısı için bu özelliklerin seçimi önemlidir. Bunun için yapılan özellik mühendisliği (feature engineering) adı verilen çalışmalar vardır. Yukarıdaki fonksiyon gibi bir modelimiz olduğunu düşünürsek buradaki tek özelliğimiz x’e karşılık gelmektedir.

Test (Model Değerlendirme): Parametreleri ayarlanan yani eğitilen modelin makine öğrenmesi tipine göre değerlendirilmesidir. Birazdan bahsedilecek makine öğrenmesi tipine göre veya bizlerin bakış açısına göre bu aşamanın kurgusu değişebilir.

Denetimli Öğrenme (Supervised Learning)

Bir varlığa ait veriler, varlığı tanımlayan özellikler ve bu özelliklerin etkilediği sonuçtan oluşur. Denetimli öğrenme, oluşturulmuş makine öğrenmesi modelini eğitirken (iyileştirirken) hem bu özelliklerin hem de özelliklerin etkilediği sonuçların kullanılmasıdır. Örneğin; aşağıda araçlara ait küçük bir veri seti verilmiştir. Model yılı, renk ve otomatik vites olup olmadığına dair onu tanımlayan özellikler ve bu özelliklerin etkilediği sonuç olan fiyat verileri vardır. Tanımlayan veriler literatürde giriş verileri (inputs) olarak geçerken, sonuç verisi olan fiyat verisi (output) olarak geçer.

  1. (Giriş verileri: 2017, Kırmızı, Otomatik vites yok – Çıkış verisi: 150000)
  2. (Giriş verileri: 2016, Siyah, Otomatik vites var – Çıkış verisi: 190000)
  3. (Giriş verileri: 2019, Sarı, Otomatik vites yok – Çıkış verisi: 170000)

İşte bu üç veri gibi binlerce satırlık araç verisi ile oluşturduğumuz denetimli öğrenme makine öğrenmesi algoritması ile oluşturacağımız araç fiyat tahmin modeli (fonksiyon) aşağıdaki gibi görünebilir.

F(Model, Renk, Vites) = a * Model + b * Renk + c * Vites + d = Tahmini Araç Fiyatı

Burada giriş verilerimiz (inputs) model, renk ve vites türü bilgileridir. Çıkış (output) verimiz ise araç fiyatıdır. Denetimli öğrenme makine öğrenmesi modelimizin amacı ise hem giriş verilerini hem de çıkış verisini kullanarak ve modeli eğiterek en iyi a, b ve c parametrelerini güncelleyerek bulmaktır.

Burada kullandığımız özellikler model yılı, renk ve otomatik vitesin iyi bir tahmin uygulaması için yeterli olmadığını anlamak zor değildir. Araçların fiyatını etkileyen çok daha önemli özellikler olabilir ve iyi bir uygulama için çok daha fazla sayıda özellikli ve doğru özelliklerin olduğu veri setine ihtiyaç vardır.

Denetimli öğrenmenin altındaki en önemli iki alt yaklaşım regresyon ve sınıflandırmadır. Aslında son örnekte regresyon örneğini yaparak tanımı yapmış oldum. Regresyonda model belirli aralıkta birçok tahmin yapabilir. Sınıflandırmada ise farklı olarak çıkış verileri belirli sayıdadır. Örneğin; havaya ait veriler ile yağış tahmini yapacak bir uygulama sınıflandırma tahmin modeli olabilir. Çünkü sonuç olarak çıkış değeri yağış var ya da yağış yok olarak iki sonuçtan biri olurdu. Ancak bu şekilde regresyon modeli de yapabilirdik. Bu model ise 0 ile 100 arasında yağış oranı tahmini de yapabilirdi.

Denetimsiz Öğrenme (Unsupervised Learning)

Denetimsiz öğrenmede ise denetimli öğrenmeden farklı olarak makine öğrenmesi modeli eğitilirken çıkış (output) verileri kullanılmaz. Varlığa ait olan ve varlığı tanımlayan özellikleri (features – inputs) tutan veri seti kullanılır.

Daha önceden yaptığım müşteri segmentasyonu uygulamasını örnek olarak göstereceğim. Müşterileri tanımlayan özellikler iki tane olup (feature) gelir düzeyi ve borç / gelir oranıdır. Uygulama amacı ise müşterileri bu iki özelliği dikkate alarak gruplara ayırmak ve gruplara özel bir şekilde kampanya üretmektir. Bu sayede herhangi bir mağaza kendi satış oranlarını artırabilecek bir politika üretmiş olacaktır.

Yukarıdaki örnekte her nokta bir müşteriyi temsil eder. Müşteriler gelir düzeyi ve borç / gelir oranına göre konumlandırılmış ve birbirlerine yakınlıklarına göre 5 kümeye ayrılmıştır. Bu sayede her müşteriye daha uygun olan kampanya türleri önerilecektir. Tabii ki gerçek hayatta kullanılabilecek bir uygulama için çok fazla sayıda örnek müşteri verisi ve özellik kullanmak gerekir.

Denetimsiz öğrenmedeki ana yaklaşımlar ise kümeleme ve anomali tespitidir. Müşteri segmentasyonu kümeleme örneğidir. Anomali tespiti ise veri setindeki anormal verinin yakalanmasıdır. Örnek olarak görüntüler üzerindeki anormal durumların tespit edilmesi verilebilir.

Pekiştirmeli Öğrenme (Reinforcement Learning)

Pekiştirmeli öğrenme problem üzerinde çalışan bir modelin bulunduğu ortam üzerinde etkileşim yaparak problem üzerinde kendini geliştirmesidir. Bunun için kaynaklar kısmında da belirttiğim alanın temel kitabından aldığım ve markov karar süreçleri olarak da adlandırılan temel pekiştirmeli öğrenme çerçevesi aşağıdadır. (Pekiştirmeli öğrenme üzerinde çalışacak olan kişilerin bu kitabı okumalarının ve en basitten alarak içselleştirmelerinin gerekli olduğunu düşünüyorum.)

Pekiştirmeli öğrenmeyi anlamak için öğrenmemiz gereken temel terimler şunlardır;

  • Agent (Etmen ya da ajan): Çevre ile etkileşime giren model.
  • Environment (Çevre ya da ortam): Etmenin içerisinde bulunduğu ve gözlemlediği ortam.
  • Action (Eylem): Etmenin amacı doğrultusunda aldığı ve ortamı değiştirdiği hareket.
  • State (Durum): Etmenin çevre içerisindeki konumu, avantajlı ya da dezavantajlı durumu.
  • Reward (Ödül): Etmenin eylemi sonucunda çevreden aldığı geri bildirim.
  • Policy (Politika): Etmenin zamanla ödüllere göre geliştirdiği eylem seçme tarzı.

Pekiştirmeli öğrenmede yukarıdaki şekilde de göreceğimiz üzerine etmen her eylemi sonucunda ödüllendirilir ve yeni bir duruma geçer. Pekiştirmeli öğrenme ve derin öğrenme yaklaşımlarını birleştiren Derin Pekiştirmeli Öğrenme (Deep Reinforcement Learning) yöntemleri de vardır.

Pekiştirmeli öğrenme algoritmalarını tasarlarken en önemli unsurlar ortam ve eylemlerin iyi tanımlanmasıdır. Ayrıca ödül fonksiyonunun tasarlanma şekli de modelin iyi eğitilmesi açısından önemlidir. Pekiştirmeli öğrenme birçok uygulamada kullanılabilir. Örnek olarak otonom araç çalışmaları veya oyunlar verilebilir.

Umarım bu noktaya kadar okumuş ve faydalanmışsınızdır. Bir sonraki yazımda görüşmek üzere.

Kaynaklar

 

Published inMakine ÖğrenmesiYapay Zekâ

Comments are closed.

Yasin Atılkan © 2025 Copyright | Author WordPress Theme by Compete Themes