Hoşgeldin Misafir

Makine Öğrenmesi Kavramı

Mustafa73

20 Eyl 2023
423 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Makine öğrenmesi, İngilizce Machine Learning teriminin Türkçe karşılığıdır. Makine öğrenmesi, insanların nasıl öğrendiğini taklit eden bir yapay zeka alt alanıdır. Makine öğrenmesi, yapay zeka uygulamalarının çoğunda kullanılan bir yöntemdir. Makine öğrenmesi, verilerden öğrenen ve yeni verilere karşı akıllıca davranan bir sistem oluşturmayı amaçlar. Makine öğrenmesini anlamak için, insan öğrenmesine bir örnek verelim.
Bir çocuk ilk defa karga gördüğünde, ne olduğunu merak eder ve sorar. "Bu bir karga" cevabını aldığında, zihninde kargaya dair bir kalıp oluşturmaya başlar. Çocuk zamanla farklı kargalarla karşılaştıkça, bunların da karga olduğunu öğrenir. Çocuğun zihninde kargaların ortak özellikleri, siyah renk, gagası, kanatları ve sesi gibi bir kalıp oluşur. Bu özellikler, kargayı diğer kuşlardan ayıran belirleyici özelliklerdir. Çocuk, yeni bir karga gördüğünde, zihnindeki karga kalıbıyla karşılaştırarak, bunun bir karga olup olmadığına karar verir. Bu öğrenme süreci doğal olarak gerçekleşir ve çocuklar bunun için özel bir çaba harcamazlar.
Makine öğrenmesinde de benzer bir süreç vardır. Karga ve güvercin olarak etiketlenmiş (sınıflandırılmış) fotoğraflardan oluşan bir veri seti, bir makine öğrenmesi algoritması (bir model) tarafından eğitilir. Makine öğrenmesi algoritması, bu fotoğraflardan sınıfları tanımlayan özellikleri öğrenir. Yeni bir fotoğraf verildiğinde, öğrenilen sınıf özellikleriyle uyumuna göre bir sınıflandırma yapar (Örnek: Bu bir karga.).
Makine öğrenmesi, klasik programlamadan farklı bir yaklaşımdır. Klasik programlamada, programcılar tüm olasılıkları düşünerek koşullu ifadeler yazıp, veriyi işleyen ve çıktı üreten kodlar oluştururlar. Programlar, yazılan kodlar (kurallar) dışında başka bir işlem yapmazlar. Makine öğrenmesinde ise, veri ve çıktılar, makine öğrenmesi algoritmaları tarafından analiz edilerek, veri ve çıktı arasındaki olası ilişkiler, kalıplar, örüntüler ve kurallar bulunur. Klasik programlamada sadece yazılan kodlara bağlı sonuçlar elde edilirken, makine öğrenmesinde sonucu veri-çıktı belirler.
Makine öğrenmesi, klasik programlamaya göre daha avantajlıdır. Klasik programlamada binlerce satır kod yazmak ve her veri seti için yeni kodlar, yeni kurallar eklemek gerekirken, makine öğrenmesinde daha az kod yazmak ve verilerden öğrenmek mümkündür. Klasik programlamada tüm girdileri ve bunları işlemek için gerekli kuralları ve kodları önceden belirlemek zorundayken, makine öğrenmesinde bu her zaman gerekli değildir.
Makine Öğrenmesi Türleri
Makine öğrenmesi türleri, verilerin niteliğine ve istenilen sonuca bağlı olarak dört gruba ayrılır:
- Denetimli Öğrenme: Bu türde, makine öğrenmesi modeli, girdi değişkenlerini (X) çıktı değişkenlerine (Y) eşleştiren bir işlev öğrenmek için etiketli eğitim verileri kullanır. Örneğin, bir model, bir evin özelliklerine (X) göre fiyatını (Y) tahmin etmek için eğitilebilir. Denetimli öğrenme algoritmaları arasında regresyon, sınıflandırma, karar ağaçları, destek vektör makineleri, yapay sinir ağları vb. sayılabilir.
- Denetimsiz Öğrenme: Bu türde, makine öğrenmesi modeli, girdi değişkenlerinden (X) herhangi bir çıktı değişkeni olmadan anlamlı bilgiler çıkarmaya çalışır. Örneğin, bir model, müşterilerin alışveriş davranışlarına (X) göre onları farklı segmentlere ayırabilir. Denetimsiz öğrenme algoritmaları arasında kümeleme, boyut indirgeme, ilişki kuralları, öneri sistemleri vb. sayılabilir.
- Yarı Denetimli Öğrenme: Bu türde, makine öğrenmesi modeli, hem etiketli hem de etiketsiz verileri kullanarak öğrenir. Örneğin, bir model, etiketli verilerle önceden eğitilmiş bir sınıflandırıcıyı, etiketsiz verilerle güçlendirerek görüntü tanıma görevi için kullanabilir. Yarı denetimli öğrenme algoritmaları arasında graf tabanlı yöntemler, ko-eğitim, aktif öğrenme, vb. sayılabilir.
- Pekiştirmeli Öğrenme: Bu türde, makine öğrenmesi modeli, bir ortamda belirli bir hedefe ulaşmak için en iyi eylemleri seçmeyi öğrenir. Örneğin, bir model, bir oyunu kazanmak için hangi hamleleri yapması gerektiğini öğrenebilir. Pekiştirmeli öğrenme algoritmaları arasında Q-öğrenme, derin Q-ağı, politika gradyanı, aktör-tenkitçi yöntemleri vb. sayılabilir.
Denetimli (Gözetimli) Öğrenme
Denetimli öğrenme, makine öğrenmesinin bir dalıdır. Denetimli öğrenmede, verilerin doğru cevaplarını (etiketlerini) önceden biliyoruz ve bunları makineye öğretiyoruz. Makine, verilerin özelliklerini (girdilerini) ve etiketlerini (çıktılarını) kullanarak bir model oluşturur. Model, daha önce görmediği yeni veriler için tahminler yapabilir. Denetimli öğrenme, verilerin bir sınıfa ait olup olmadığını belirlemek (sınıflandırma) veya verilerin bir değerini tahmin etmek (regresyon) gibi problemleri çözmek için kullanılır.
Sınıflandırma, verileri belirli kategorilere ayırmak için kullanılan bir denetimli öğrenme tekniğidir. Örneğin, bir resmin bir kedi mi yoksa bir köpek mi olduğunu belirlemek için sınıflandırma kullanabiliriz. Bu durumda, resimler girdi, kedi veya köpek etiketleri ise çıktı olur. Makine, resimlerin piksellerini, renklerini, şekillerini gibi özelliklerini kullanarak bir sınıflandırma modeli oluşturur. Model, yeni bir resim gördüğünde, onun bir kedi mi yoksa bir köpek mi olduğunu tahmin edebilir.
Regresyon, verilerin bir sayısal değerini tahmin etmek için kullanılan bir denetimli öğrenme tekniğidir. Örneğin, bir evin fiyatını belirlemek için regresyon kullanabiliriz. Bu durumda, evin özellikleri (metrekare, oda sayısı, konumu, yaşı vb.) girdi, fiyat ise çıktı olur. Makine, evlerin özelliklerini ve fiyatlarını kullanarak bir regresyon modeli oluşturur. Model, yeni bir ev gördüğünde, onun fiyatını tahmin edebilir.
Denetimli öğrenme, verilerin etiketlerini bilmemizi gerektirdiği için bazen zor ve pahalı olabilir. Ayrıca, modelin verilerin gerçek dağılımını yansıtmasını sağlamak için yeterli ve çeşitli veriye ihtiyacımız vardır. Denetimli öğrenme, verilerin yapısını ve ilişkilerini anlamak için güçlü bir araçtır, ancak her zaman uygulanamayabilir veya uygun olmayabilir.
Denetimsiz (Gözetimsiz) Öğrenme
Denetimsiz öğrenme, etiketlenmemiş verileri analiz ederek gizli yapıları veya örüntüleri bulmaya çalışan bir makine öğrenmesi yöntemidir. Etiketlenmemiş veriler, verilerin ne anlama geldiğini veya hangi kategoriye ait olduğunu belirten bir bilgi içermeyen verilerdir. Örneğin, bir görsel veri setinde, görsellerin içindeki nesnelerin veya kişilerin adlarını belirten bir etiket yoksa, bu veri seti etiketlenmemiş olarak kabul edilir. Denetimsiz öğrenme, bu tür verileri kullanarak, veriler arasındaki benzerlikleri veya farklılıkları belirleyebilir.
Denetimsiz öğrenmenin en yaygın uygulamalarından biri kümelemedir. Kümeleme, verileri özelliklerine göre gruplara ayırmak için kullanılan bir tekniktir. Örneğin, bir müşteri veri setinde, müşterilerin yaş, cinsiyet, gelir, harcama alışkanlıkları gibi özellikleri vardır. Kümeleme algoritması, bu özellikleri kullanarak, müşterileri benzer özelliklere sahip gruplara ayırabilir. Bu gruplar, veri setinde önceden belirlenmiş değildir, algoritma tarafından otomatik olarak bulunurlar. Kümeleme, verileri anlamak, sınıflandırmak veya görselleştirmek için kullanılabilir.
Denetimsiz öğrenmenin bir diğer uygulaması da ilişkilendirme veya birliktelik kuralı madenciliğidir. Bu teknik, veriler arasındaki ilişkileri veya bağımlılıkları ortaya çıkarmak için kullanılır. Örneğin, bir alışveriş veri setinde, müşterilerin hangi ürünleri birlikte satın aldıkları bilgisi vardır. İlişkilendirme algoritması, bu bilgiyi kullanarak, bir ürünü alan müşterilerin başka hangi ürünleri alma olasılığının yüksek olduğunu bulabilir. Bu bilgi, müşterilere ürün önermek, satış artırmak veya stok yönetmek için kullanılabilir.
Denetimsiz öğrenme, denetimli öğrenmeden farklı olarak, verilerin doğru veya yanlış olduğunu kontrol etmek için bir geri bildirim mekanizmasına sahip değildir. Bu nedenle, denetimsiz öğrenme algoritmalarının sonuçlarına kesinlikle güvenmek yerine, verileri anlamak için bir araç olarak kullanmak daha iyidir. Denetimsiz öğrenme, verilerde gizli kalmış bilgileri keşfetmek için güçlü ve esnek bir yöntemdir.
Yarı Denetimli (Yarı Gözetimli) Öğrenme
Yarı denetimli öğrenme, makine öğrenmesinin bir dalıdır. Bu yöntemde, hem etiketli hem de etiketlenmemiş veriler kullanılır. Etiketli veriler, veri noktalarının hangi sınıfa ait olduğunu gösteren bilgilerdir. Örneğin, bir resimdeki nesnelerin isimleri, bir metindeki duygular, bir ses kaydındaki konuşmacılar gibi. Etiketlenmemiş veriler ise bu bilgilerden yoksundur. Etiketli verileri elde etmek zor ve pahalı olabilir, ancak etiketlenmemiş veriler bol ve ucuzdur. Yarı denetimli öğrenme, etiketli verilerden öğrenilen bilgileri, etiketlenmemiş verileri etiketlemek veya kümelemek için kullanır. Böylece, daha az etiketli veri ile daha iyi sonuçlar elde edilebilir.
Yarı denetimli öğrenme, farklı algoritmalar kullanarak gerçekleştirilebilir. Bazı yaygın algoritmalar şunlardır:
- Kendi kendine eğitim (self-training): Bu teknikte, önce küçük bir etiketli veri ile bir sınıflandırıcı eğitilir. Sonra, bu sınıflandırıcı etiketlenmemiş verileri sınıflandırmaya çalışır. En güvenli tahminlere sahip etiketlenmemiş veriler, sözde etiketli veriler olarak kabul edilir ve eğitim verilerine eklenir. Bu işlem tekrarlanarak sınıflandırıcı geliştirilir.
- Üretken karışım modelleri (generative mixture models): Bu yöntemde, verilerin olasılık dağılımı bir karışım modeli ile tanımlanır. Örneğin, Gaussian karışımı modelleri. Etiketlenmemiş verilerle, karışım bileşenleri belirlenir. Sonra, her bileşen için bir etiketli veri kullanılarak karışım modeli tamamlanır. Karışım bileşenleri, verilerin yumuşak kümeleri olarak düşünülebilir.
- Yarı denetimli destek vektör makinesi (semi-supervised support vector machine-S3VM): Bu yöntemde, etiketli ve etiketlenmemiş verileri ayırmak için maksimum marjlı bir sınıflandırma sınırı bulunur. Bu sınır, hem etiketli verilerin doğru sınıflandırılmasını hem de etiketlenmemiş verilerin sınıflar arasında iyi dağılmasını sağlar.
- Grafik tabanlı algoritmalar (graph-based algorithms): Bu yöntemde, veriler bir graf olarak temsil edilir. Grafın düğümleri veri noktalarını, kenarları ise veri noktaları arasındaki benzerliği gösterir. Etiketli verilerin etiketleri, etiketlenmemiş verilere graf üzerinde yayılarak aktarılır. Bu yayılma, grafın yapısına ve kenar ağırlıklarına bağlıdır.
Yarı denetimli öğrenme, etiketli verinin az olduğu veya etiketlemenin zor olduğu alanlarda kullanışlıdır. Örneğin, bilgisayarlı görü, doğal dil işleme, biyoenformatik, ses tanıma gibi alanlarda yarı denetimli öğrenme uygulanabilir.
Pekiştirmeli Öğrenme
Pekiştirmeli öğrenme, bir makinenin veya ajanın, çevresiyle etkileşime girerek öğrenmeye çalıştığı bir makine öğrenme yöntemidir. Ajan, çevredeki durumu gözlemleyerek, yapabileceği eylemler arasından birini seçer ve bu eylemin sonucunda bir ödül alır. Ödül, ajanın hedefine ne kadar yaklaştığını gösteren bir sayıdır. Ajan, ödülü en yüksek tutmak için eylemlerini nasıl seçeceğini öğrenir. Bunu yaparken, hem çevreyi keşfetmeye hem de mevcut bilgisini kullanmaya çalışır.
Pekiştirmeli öğrenme, diğer makine öğrenme yöntemlerinden farklıdır, çünkü ajanın doğru eylemleri yapmasını söyleyen bir öğretmen veya etiketli veri yoktur. Ajan, deneme-yanılma yoluyla öğrenir ve ödülü artırmak için kendi stratejisini geliştirir. Pekiştirmeli öğrenme, çevre hakkında yeterli bilginin olmadığı veya etiketli verinin elde edilmesinin zor olduğu durumlarda kullanışlıdır. Örneğin, bir robotun labirentten çıkmasını sağlamak için, robotun hangi yöne gitmesi gerektiğini söylemek yerine, robotun çıkışa ulaştığında ödül almasını sağlayabiliriz. Robot, bu şekilde en kısa yolu bulmayı öğrenebilir.
Pekiştirmeli öğrenme, robotik, oyunlar ve kişisel öneriler gibi alanlarda uygulanmaktadır. Robotikte, pekiştirmeli öğrenme, robotların karmaşık ve değişken ortamlarda nasıl hareket edeceğini öğrenmesine yardımcı olur. Oyunlarda, pekiştirmeli öğrenme, oyuncuların stratejilerini ve davranışlarını taklit eden veya onlara meydan okuyan yapay zeka ajanları oluşturmak için kullanılır. Kişisel önerilerde, pekiştirmeli öğrenme, kullanıcıların tercihlerini ve ilgilerini öğrenerek, onlara en uygun ürünleri veya hizmetleri önermek için kullanılır.
Makine Öğrenmesine İlişkin Terimler
- Bağımlı Değişken (Çıktı): Bu, makine öğrenmesi modelinin veriye dayalı olarak ürettiği sonuçtur. Örneğin, bir modelin bir resimdeki nesneleri tanımlaması istenirse, bağımlı değişken resimdeki nesnelerin isimleridir. Bir modelin bir evin fiyatını tahmin etmesi istenirse, bağımlı değişken evin fiyatıdır. Bir modelin bir metni farklı kategorilere ayırması istenirse, bağımlı değişken metnin kategorisidir.
- Bağımsız Değişken: Bu, makine öğrenmesi modelinin bağımlı değişkeni üretmek için kullandığı girdilerdir. Örneğin, bir modelin bir resimdeki nesneleri tanımlaması istenirse, bağımsız değişken resmin kendisidir. Bir modelin bir evin fiyatını tahmin etmesi istenirse, bağımsız değişkenler evin özellikleri (alan, oda sayısı, konum, vb.) olabilir. Bir modelin bir metni farklı kategorilere ayırması istenirse, bağımsız değişken metnin kendisidir.
- Makine Öğrenmesi Algoritması: Bu, makine öğrenmesi modelinin nasıl çalıştığını belirleyen kurallar ve formüller bütünüdür. Farklı makine öğrenmesi algoritmaları, farklı amaçlar için farklı avantajlar ve dezavantajlar sunar. Örneğin, doğrusal regresyon, bağımlı ve bağımsız değişkenler arasındaki doğrusal ilişkiyi modellemek için kullanılan basit bir algoritmadır. Karar ağacı, veriyi dallara ve yapraklara ayırarak sınıflandırma veya regresyon yapmak için kullanılan bir algoritmadır. Sinir ağları, insan beyninin yapısını taklit ederek karmaşık veri yapılarını öğrenmek için kullanılan bir algoritmadır.
- Model: Bu, makine öğrenmesi algoritmasının veri üzerinde uygulanmasıyla oluşturulan bir yapıdır. Bir model, veriden öğrendiği bilgileri saklar ve yeni veriler için bağımlı değişkeni tahmin etmek için kullanılır. Bir modelin kalitesi, veriyi ne kadar iyi temsil ettiği ve genelleştirme yeteneği ile ölçülür. Bir model, bir program veya kod aracılığıyla oluşturulabilir veya hazır kütüphaneler kullanılarak çağrılabilir.
- Eğitim Verisi (Training Data): Bu, makine öğrenmesi modelinin oluşturulması için kullanılan veri setidir. Eğitim verisi, bağımlı ve bağımsız değişkenlerden oluşur. Model, eğitim verisini algoritmasına göre işler ve bağımlı değişkeni tahmin etmeye çalışır. Model, tahminlerinin gerçek değerlerle ne kadar uyumlu olduğunu ölçen bir hata fonksiyonu kullanarak kendini iyileştirir. Model, eğitim verisini tamamen öğrenene kadar bu süreci tekrarlar.
- Doğrulama Verisi (Validation Data): Bu, makine öğrenmesi modelinin performansının değerlendirilmesi için kullanılan veri setidir. Doğrulama verisi, eğitim verisinden farklı olmalıdır. Model, doğrulama verisini kullanarak bağımlı değişkeni tahmin eder ve tahminlerinin doğruluğunu ölçer. Model, doğrulama verisi üzerindeki performansına göre, algoritmasının bazı parametrelerini (hiper parametreler) ayarlar. Hiper parametreler, modelin karmaşıklığını, öğrenme hızını, düzenlileştirme seviyesini, vb. belirleyen değerlerdir. Model, doğrulama verisi üzerindeki performansını en iyi seviyeye getirene kadar bu süreci tekrarlar.
- Test Verisi (Test Data): Bu, makine öğrenmesi modelinin gerçek dünya verileri üzerindeki performansının ölçülmesi için kullanılan veri setidir. Test verisi, eğitim ve doğrulama verisinden farklı olmalıdır. Model, test verisini kullanarak bağımlı değişkeni tahmin eder ve tahminlerinin doğruluğunu ölçer. Model, test verisi üzerindeki performansı, modelin kalitesini ve güvenilirliğini belirleyen bir gösterge olarak kullanılır. Bir model, eğitim verisi ile test edilirse, bu modelin aşırı uyum (overfitting) yaptığı anlamına gelir. Aşırı uyum, modelin eğitim verisini ezberlemesi ve yeni veriler için genelleştirme yapamaması durumudur. Bu durum, modelin performansını düşürür ve yanıltıcı sonuçlar verir.
Makine Öğrenmesi Süreci
Makine öğrenmesi süreci, verilerden öğrenen ve tahminler yapan bilgisayar programları geliştirmek için kullanılan bir yöntemdir. Makine öğrenmesi süreci şu adımları içerir:
- Veri toplama: Makine öğrenmesi için veri, öğrenme ve tahmin yapma sürecinin temelidir. Veri, farklı kaynaklardan toplanabilir, örneğin internet, sensörler, anketler, deneyler vb. Veri, sayısal, metinsel, sesli, görüntülü veya karma olabilir. Veri, makine öğrenmesi algoritmasının girdisi olarak kullanılır.
- Veri ön işleme: Veri toplama aşamasından sonra, veri makine öğrenmesi algoritmasına uygun hale getirilmelidir. Veri ön işleme aşamasında, veri üzerinde çeşitli işlemler yapılır, örneğin:
- Veri temizleme: Verideki eksik, hatalı, tutarsız veya anlamsız değerlerin tespit edilmesi ve düzeltilmesi veya silinmesi işlemidir.
- Veri dönüştürme: Verideki değerlerin, makine öğrenmesi algoritmasının anlayabileceği bir formata dönüştürülmesi işlemidir. Örneğin, metin verisi sayısal veriye, kategorik veri ikili veriye, sürekli veri ayrık veriye vb. dönüştürülebilir.
- Veri indirgeme: Verideki gereksiz, yinelenen veya çok fazla sayıda olan özelliklerin veya örneklerin azaltılması işlemidir. Veri indirgeme, verinin boyutunu küçültmek, veriyi basitleştirmek, verideki gürültüyü azaltmak ve makine öğrenmesi algoritmasının hızını ve performansını artırmak için yapılır.
- Veri görselleştirme: Verideki desenleri, ilişkileri, dağılımları, eğilimleri veya anormallikleri görsel olarak sunmak için kullanılan bir tekniktir. Veri görselleştirme, veriyi anlamak, veri hakkında bilgi edinmek, veri kalitesini değerlendirmek ve veri analizi için ipuçları elde etmek için yararlıdır.
- Veri bölme: Veri ön işleme aşamasından sonra, veri seti eğitim, doğrulama ve test olmak üzere üç parçaya bölünmelidir. Eğitim verisi, makine öğrenmesi algoritmasının öğrenmesi için kullanılır. Doğrulama verisi, makine öğrenmesi algoritmasının ayarlanması için kullanılır. Test verisi, makine öğrenmesi algoritmasının değerlendirilmesi için kullanılır. Veri bölme işlemi, makine öğrenmesi algoritmasının genelleştirme yeteneğini ölçmek ve aşırı uyum (overfitting) veya yetersiz uyum (underfitting) gibi problemleri önlemek için yapılır. Veri bölme işlemi için iki ana yöntem vardır:
- Eğitim-doğrulama-test: Bu yöntemde, veri seti belirli bir oranda üç parçaya ayrılır. Genellikle, veri setinin %60'ı eğitim, %20'si doğrulama ve %20'si test için kullanılır. Bu oranlar veri setinin büyüklüğüne, karmaşıklığına ve dağılımına göre değişebilir. Bu yöntemde, makine öğrenmesi algoritması eğitim verisi ile bir model oluşturur. Doğrulama verisi ile modelin performansı ölçülür ve modelin hiperparametreleri (algoritmanın ayarlanabilir parametreleri) optimize edilir. Test verisi ile modelin son halinin performansı ölçülür ve modelin başarısı belirlenir.
- Çapraz doğrulama: Bu yöntemde, veri seti yaklaşık olarak %80 eğitim-doğrulama ve %20 test olmak üzere iki parçaya ayrılır. Eğitim-doğrulama verisi, n eşit parçaya bölünür. Her seferinde, n-1 parça eğitim, 1 parça doğrulama için kullanılır. Bu işlem, her parça bir kez doğrulama için kullanılana kadar tekrarlanır. Bu şekilde, eğitim-doğrulama verisinin tamamı hem eğitim hem de doğrulama için kullanılmış olur. Modelin doğrulama performansı, her seferinde elde edilen performans puanlarının ortalaması alınarak hesaplanır. Modelin performansı optimize edildikten sonra, test verisi ile modelin son halinin performansı ölçülür ve modelin başarısı belirlenir. Çapraz doğrulama yöntemi, veri setinin daha iyi kullanılmasını, modelin daha iyi ayarlanmasını ve modelin daha iyi değerlendirilmesini sağlar.
Makine Öğrenmesi Performansının Ölçülmesi
Makine öğrenmesi, verilerden öğrenen ve belirli bir görevi otomatik olarak gerçekleştiren bilgisayar programları geliştirmek için kullanılan bir bilim dalıdır. Makine öğrenmesinde farklı amaçlar için farklı algoritmalar kullanılır. Örneğin, sınıflama algoritmaları, bir veri öğesinin hangi kategoriye ait olduğunu belirlemek için kullanılır. Kestirim algoritmaları ise, bir veri öğesinin bir özellik veya sonuç değerini tahmin etmek için kullanılır.
Eğitim işlemi, algoritmaları ve veri setini kullanarak bir model geliştirme (eğitim) işlemidir. Model, verilerdeki örüntüleri veya ilişkileri yakalamak için kullanılan bir matematiksel fonksiyondur. Eğitim işlemi, modelin verileri en iyi şekilde açıklayan veya tahmin eden parametrelerini bulmak için veri setini algoritmalara uygulamaktır.
Geliştirilen modellerin başarısını ölçmek modeli değerlendirebilmek için gereklidir. Modelin ne kadar iyi performans gösterdiğini, verileri ne kadar doğru açıkladığını veya tahmin ettiğini belirlemek için performans ölçümleri kullanılır. Performans ölçümleri, modelin çıktılarını gerçek değerlerle karşılaştırarak bir hata veya doğruluk oranı hesaplar.
Sınıflandırma ve sayısal tahmin olmak üzere iki farklı performans ölçüm yöntemi bulunur. Sınıflandırma, veri öğelerinin ait olduğu sınıfı belirtir ve çıktıda sonlu ve ayrık değerler olduğunda kullanılır.
Örnek:
Kredi Riski tahmin eden bir makine öğrenmesi modeli düşünelim. Bu model, kişilerin gelir, yaş, eğitim, borç, kredi geçmişi gibi özelliklerini kullanarak, kredi başvurusunda bulunan kişilerin kredi riskini düşük veya yüksek olarak sınıflandırır. Modelinizi oluşturduktan sonra, doğrulama veya test aşamasında, modelinizin performansını ölçmek istersiniz. Test veri setinde kredi riski düşük veya yüksek olarak etiketli kişilerin model tarafından doğru olarak sınıflandırılmasını beklersiniz. Makine öğrenmesinin tahminlerini gerçek etiketlerle karşılaştırmanız gerekir. Test setinde "kredi riski yüksek" olarak etiketlenmiş bir kişiye ait girdiler verildiğinde "kredi riski yüksek" olduğunu tahmin etmesini beklersiniz ancak her zaman böyle olmaz. Modeller tıpkı insanlar gibi (böyle işlemlerde insanlardan çok daha fazla) hatalı sınıflandırmalar yapabilir. Sınıflandırma için geliştirilen bir model örnekteki gibi ikili sınıflandırmada dört farklı tahmin üretebilir.
Gerçek kredi riski yüksek olan bir kişi (KR+) model tarafından "kredi riski yüksek" olarak tahmin edilirse buna doğru pozitif (TP), gerçekte kredi riski yüksek olmasına rağmen "kredi riski düşük" olarak sınıflandırılırsa buna yanlış negatif (FN) denir. Gerçekte "kredi riski düşük" olan bir kişi (KR-) model tarafından "kredi riski yüksek" olarak sınıflandırılırsa buna yanlış pozitif (FP), gerçekte "kredi riski düşük" olan bir kişi "kredi riski düşük" olarak tahmin edilirse buna doğru negatif (TN) denir. Yanlış pozitif ve yanlış negatif sırasıyla Tip I ve Tip II hata olarak adlandırılır.
Bu durumu şöyle bir tablo ile gösterebiliriz:
| Gerçek Etiket | Tahmin Edilen Etiket | Sonuç |
| :-----------: | :------------------: | :---: |
| KR+ | KR+ | TP |
| KR+ | KR- | FN |
| KR- | KR+ | FP |
| KR- | KR- | TN |
Bu tabloyu kullanarak, modelinizin doğruluk, hassasiyet, geri çağırma, F1 skoru gibi çeşitli metriklerini hesaplayabilirsiniz. Bu metrikler, modelinizin ne kadar iyi çalıştığını değerlendirmenize yardımcı olur. Ayrıca, modelinizin karar eşiğini değiştirerek, yanlış pozitif ve yanlış negatif hatalarını azaltmaya çalışabilirsiniz. Örneğin, kredi riski tahmininde, yanlış negatif hataları (gerçekte kredi riski yüksek olan kişilere kredi vermek) yanlış pozitif hatalarından (gerçekte kredi riski düşük olan kişilere kredi vermeyi reddetmek) daha maliyetli olabilir. Bu nedenle, modelinizin karar eşiğini yükselterek, yanlış negatif hatalarını azaltabilirsiniz. Ancak, bu durumda yanlış pozitif hatalarınız artabilir. Bu yüzden, modelinizin performansını değerlendirirken, iş probleminizin özelliklerini ve maliyetlerini de göz önünde bulundurmanız gerekir.
Sınıflandırma performansını ölçmek için kullanılan bazı metrikler şunlardır:
- Doğruluk: Modelin doğru tahmin ettiği veri öğelerinin toplam sayısının, tüm veri öğelerinin sayısına oranıdır. Doğruluk, modelin genel performansını ölçmek için kullanılır. Ancak, sınıflar arasında dengesizlik olduğunda yanıltıcı olabilir. Örneğin, 100 veri öğesinden 90'ı A sınıfına ve 10'u B sınıfına ait olsun. Model, tüm veri öğelerini A sınıfına tahmin etse bile, doğruluğu %90 olacaktır. Bu durumda, modelin B sınıfını hiç tanımadığını göz ardı eder.
- Hassasiyet: Modelin A sınıfı olarak tahmin ettiği veri öğelerinden, gerçekten A sınıfına ait olanların oranıdır. Hassasiyet, modelin yanlış pozitifleri (gerçekte A sınıfına ait olmayan ama A sınıfı olarak tahmin edilen veri öğeleri) azaltma yeteneğini ölçmek için kullanılır.
- Duyarlılık: Modelin gerçekten A sınıfına ait olan veri öğelerinden, A sınıfı olarak tahmin ettiği veri öğelerinin oranıdır. Duyarlılık, modelin doğru pozitifleri (gerçekte A sınıfına ait olan ve A sınıfı olarak tahmin edilen veri öğeleri) yakalama yeteneğini ölçmek için kullanılır.
- F1-Skoru: Hassasiyet ve duyarlılığın harmonik ortalamasıdır. F1-skoru, hassasiyet ve duyarlılık arasında bir denge sağlamak için kullanılır. F1-skoru, 0 ile 1 arasında bir değer alır. 1, mükemmel bir performansı, 0 ise en kötü performansı gösterir.
Örnek:
Bir banka, müşterilerinin kredi kartı borcunu ödeyip ödemeyeceğini tahmin etmek için bir makine öğrenmesi modeli geliştirdi. Bu model 100.000 veriden oluşan test verisinin tamamını "öder" olarak tahmin ederse doğruluğu %95 olur ancak model aslında hiçbir borcunu ödemeyen müşteriyi doğru tahmin etmemiştir. Böyle bir durumda tek başına doğruluk metriğinin anlamı kalmaz. Kesinlik değeri %0.0 olarak hesaplanır. Pozitif tahmin değeri %95 olarak hesaplanır. Özgüllük değeri %100 olarak hesaplanır. Duyarlılık değeri ise %0.0 olarak hesaplanır. Modelin başarısını değerlendirmek için hangi metriklerin incelenmesi gerektiği çok önemlidir. Örnekte verilen bir problem durumu için kesinlik ve duyarlılık değerlerinin önemi ön plana çıkmaktadır. Geliştirilen bir modelin sınıflandırma başarısı değerlendirilirken bu tür durumlara dikkat edilmelidir.
Sayısal tahmin, veri öğelerinin bir sayısal değerini tahmin etmek için kullanılır. Sayısal tahmin performansını ölçmek için kullanılan bazı metrikler şunlardır:
- Ortalama Mutlak Hata (MAE): Modelin tahminleri ile gerçek değerler arasındaki mutlak farkların ortalamasıdır. MAE, modelin ne kadar hata yaptığını ölçmek için kullanılır. MAE, 0 ile sonsuz arasında bir değer alır. 0, mükemmel bir performansı, yüksek değerler ise kötü bir performansı gösterir.
- Ortalama Kare Hata (MSE): Modelin tahminleri ile gerçek değerler arasındaki kare farkların ortalamasıdır. MSE, MAE'ye benzer şekilde modelin hata miktarını ölçmek için kullanılır. Ancak, MSE, büyük hataları daha fazla cezalandırır. MSE, 0 ile sonsuz arasında bir değer alır. 0, mükemmel bir performansı, yüksek değerler ise kötü bir performansı gösterir.
- Kök Ortalama Kare Hata (RMSE): MSE'nin kareköküdür. RMSE, MSE ile aynı amaçla kullanılır. Ancak, RMSE, tahminler ile gerçek değerler arasındaki farkın ölçeğinde bir değer verir. RMSE, 0 ile sonsuz arasında bir değer alır. 0, mükemmel bir performansı, yüksek değerler ise kötü bir performansı gösterir.
- R-Kare: Verilerin yerleştirilmiş regresyon hattına ne kadar yakın olduğunun istatistiksel bir ölçüsüdür. R-kare, modelin verileri ne kadar iyi açıkladığını ölçmek için kullanılır. R-kare, 0 ile 1 arasında bir değer alır. 1, mükemmel bir uyumu, 0 ise hiçbir uyum olmadığını gösterir.
Aşırı Öğrenme ve Zayıf Öğrenme
Makine öğrenmesinde bir model oluşturmak istediğimizde, elimizdeki verileri iki gruba ayırırız: eğitim verisi ve test verisi. Eğitim verisi, modelin veriler arasındaki ilişkiyi öğrenmesi için kullandığımız veri kümesidir. Test verisi ise, modelin yeni ve görmediği veriler üzerinde ne kadar iyi tahmin yaptığını ölçmek için kullandığımız veri kümesidir.
Modelimizin amacı, eğitim verisindeki örüntüleri yakalamak ve test verisinde de genelleme yapabilmektir. Ancak bazen modelimiz bu amaca ulaşamaz ve iki tür problemle karşılaşabiliriz: aşırı öğrenme ve zayıf öğrenme.
Aşırı öğrenme, modelin eğitim verisinde çok yüksek bir doğruluk elde etmesine rağmen, test verisinde çok düşük bir doğruluk elde etmesi durumudur. Bu, modelin eğitim verisindeki gürültüyü veya rastgele değişimleri de öğrenerek veriyi ezberlemesi anlamına gelir. Bu durumda model, eğitim verisindeki özel durumlara çok fazla uyum sağlar ve yeni verilerde genelleme yapamaz. Aşırı öğrenme, modelin çok karmaşık olduğunda veya eğitim verisinin çok az veya tek tip olduğunda ortaya çıkar. Aşırı öğrenmeyi önlemek için, modelin karmaşıklığını azaltmak, eğitim verisini artırmak veya çeşitlendirmek, regularizasyon, dropout, erken durdurma gibi teknikler kullanılabilir.
Zayıf öğrenme, modelin hem eğitim verisinde hem de test verisinde çok düşük bir doğruluk elde etmesi durumudur. Bu, modelin verilerdeki temel örüntüleri yakalamak için çok basit olduğu anlamına gelir. Bu durumda model, veriler arasındaki ilişkiyi yeterince öğrenemez ve tahminleri gerçek değerlerden çok uzaklaşır. Zayıf öğrenme, modelin çok basit olduğunda veya verilerin çok karmaşık olduğunda ortaya çıkar. Zayıf öğrenmeyi önlemek için, modelin karmaşıklığını artırmak, farklı makine öğrenmesi algoritmaları denemek, verileri ön işleme veya dönüştürme gibi teknikler kullanılabilir.
En iyi uyum, modelin hem eğitim verisinde hem de test verisinde düşük bir hata oranı elde ettiği durumdur. Bu, modelin verilerdeki örüntüleri doğru bir şekilde öğrendiği ve yeni verilerde de genelleme yapabildiği anlamına gelir. En iyi uyum, modelin hem yanlılığını (bias) hem de varyansını (variance) en aza indirdiği durumdur. Yanlılık, modelin tahminlerinin gerçek değerlerden ne kadar farklı olduğunu gösterir. Varyans, modelin tahminlerinin farklı veri kümeleri için ne kadar değiştiğini gösterir. Modelin yanlılığını azaltmak için karmaşıklığını artırmak, modelin varyansını azaltmak için karmaşıklığını azaltmak gerekir. Bu iki uç arasında optimal bir denge bulmak, makine öğrenmesinin temel zorluklarından biridir.
 

Rooteclipse

26 Mar 2025
10 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Makine öğrenmesi, İngilizce Machine Learning teriminin Türkçe karşılığıdır. Makine öğrenmesi, insanların nasıl öğrendiğini taklit eden bir yapay zeka alt alanıdır. Makine öğrenmesi, yapay zeka uygulamalarının çoğunda kullanılan bir yöntemdir. Makine öğrenmesi, verilerden öğrenen ve yeni verilere karşı akıllıca davranan bir sistem oluşturmayı amaçlar. Makine öğrenmesini anlamak için, insan öğrenmesine bir örnek verelim.
Bir çocuk ilk defa karga gördüğünde, ne olduğunu merak eder ve sorar. "Bu bir karga" cevabını aldığında, zihninde kargaya dair bir kalıp oluşturmaya başlar. Çocuk zamanla farklı kargalarla karşılaştıkça, bunların da karga olduğunu öğrenir. Çocuğun zihninde kargaların ortak özellikleri, siyah renk, gagası, kanatları ve sesi gibi bir kalıp oluşur. Bu özellikler, kargayı diğer kuşlardan ayıran belirleyici özelliklerdir. Çocuk, yeni bir karga gördüğünde, zihnindeki karga kalıbıyla karşılaştırarak, bunun bir karga olup olmadığına karar verir. Bu öğrenme süreci doğal olarak gerçekleşir ve çocuklar bunun için özel bir çaba harcamazlar.
Makine öğrenmesinde de benzer bir süreç vardır. Karga ve güvercin olarak etiketlenmiş (sınıflandırılmış) fotoğraflardan oluşan bir veri seti, bir makine öğrenmesi algoritması (bir model) tarafından eğitilir. Makine öğrenmesi algoritması, bu fotoğraflardan sınıfları tanımlayan özellikleri öğrenir. Yeni bir fotoğraf verildiğinde, öğrenilen sınıf özellikleriyle uyumuna göre bir sınıflandırma yapar (Örnek: Bu bir karga.).
Makine öğrenmesi, klasik programlamadan farklı bir yaklaşımdır. Klasik programlamada, programcılar tüm olasılıkları düşünerek koşullu ifadeler yazıp, veriyi işleyen ve çıktı üreten kodlar oluştururlar. Programlar, yazılan kodlar (kurallar) dışında başka bir işlem yapmazlar. Makine öğrenmesinde ise, veri ve çıktılar, makine öğrenmesi algoritmaları tarafından analiz edilerek, veri ve çıktı arasındaki olası ilişkiler, kalıplar, örüntüler ve kurallar bulunur. Klasik programlamada sadece yazılan kodlara bağlı sonuçlar elde edilirken, makine öğrenmesinde sonucu veri-çıktı belirler.
Makine öğrenmesi, klasik programlamaya göre daha avantajlıdır. Klasik programlamada binlerce satır kod yazmak ve her veri seti için yeni kodlar, yeni kurallar eklemek gerekirken, makine öğrenmesinde daha az kod yazmak ve verilerden öğrenmek mümkündür. Klasik programlamada tüm girdileri ve bunları işlemek için gerekli kuralları ve kodları önceden belirlemek zorundayken, makine öğrenmesinde bu her zaman gerekli değildir.
Makine Öğrenmesi Türleri
Makine öğrenmesi türleri, verilerin niteliğine ve istenilen sonuca bağlı olarak dört gruba ayrılır:
- Denetimli Öğrenme: Bu türde, makine öğrenmesi modeli, girdi değişkenlerini (X) çıktı değişkenlerine (Y) eşleştiren bir işlev öğrenmek için etiketli eğitim verileri kullanır. Örneğin, bir model, bir evin özelliklerine (X) göre fiyatını (Y) tahmin etmek için eğitilebilir. Denetimli öğrenme algoritmaları arasında regresyon, sınıflandırma, karar ağaçları, destek vektör makineleri, yapay sinir ağları vb. sayılabilir.
- Denetimsiz Öğrenme: Bu türde, makine öğrenmesi modeli, girdi değişkenlerinden (X) herhangi bir çıktı değişkeni olmadan anlamlı bilgiler çıkarmaya çalışır. Örneğin, bir model, müşterilerin alışveriş davranışlarına (X) göre onları farklı segmentlere ayırabilir. Denetimsiz öğrenme algoritmaları arasında kümeleme, boyut indirgeme, ilişki kuralları, öneri sistemleri vb. sayılabilir.
- Yarı Denetimli Öğrenme: Bu türde, makine öğrenmesi modeli, hem etiketli hem de etiketsiz verileri kullanarak öğrenir. Örneğin, bir model, etiketli verilerle önceden eğitilmiş bir sınıflandırıcıyı, etiketsiz verilerle güçlendirerek görüntü tanıma görevi için kullanabilir. Yarı denetimli öğrenme algoritmaları arasında graf tabanlı yöntemler, ko-eğitim, aktif öğrenme, vb. sayılabilir.
- Pekiştirmeli Öğrenme: Bu türde, makine öğrenmesi modeli, bir ortamda belirli bir hedefe ulaşmak için en iyi eylemleri seçmeyi öğrenir. Örneğin, bir model, bir oyunu kazanmak için hangi hamleleri yapması gerektiğini öğrenebilir. Pekiştirmeli öğrenme algoritmaları arasında Q-öğrenme, derin Q-ağı, politika gradyanı, aktör-tenkitçi yöntemleri vb. sayılabilir.
Denetimli (Gözetimli) Öğrenme
Denetimli öğrenme, makine öğrenmesinin bir dalıdır. Denetimli öğrenmede, verilerin doğru cevaplarını (etiketlerini) önceden biliyoruz ve bunları makineye öğretiyoruz. Makine, verilerin özelliklerini (girdilerini) ve etiketlerini (çıktılarını) kullanarak bir model oluşturur. Model, daha önce görmediği yeni veriler için tahminler yapabilir. Denetimli öğrenme, verilerin bir sınıfa ait olup olmadığını belirlemek (sınıflandırma) veya verilerin bir değerini tahmin etmek (regresyon) gibi problemleri çözmek için kullanılır.
Sınıflandırma, verileri belirli kategorilere ayırmak için kullanılan bir denetimli öğrenme tekniğidir. Örneğin, bir resmin bir kedi mi yoksa bir köpek mi olduğunu belirlemek için sınıflandırma kullanabiliriz. Bu durumda, resimler girdi, kedi veya köpek etiketleri ise çıktı olur. Makine, resimlerin piksellerini, renklerini, şekillerini gibi özelliklerini kullanarak bir sınıflandırma modeli oluşturur. Model, yeni bir resim gördüğünde, onun bir kedi mi yoksa bir köpek mi olduğunu tahmin edebilir.
Regresyon, verilerin bir sayısal değerini tahmin etmek için kullanılan bir denetimli öğrenme tekniğidir. Örneğin, bir evin fiyatını belirlemek için regresyon kullanabiliriz. Bu durumda, evin özellikleri (metrekare, oda sayısı, konumu, yaşı vb.) girdi, fiyat ise çıktı olur. Makine, evlerin özelliklerini ve fiyatlarını kullanarak bir regresyon modeli oluşturur. Model, yeni bir ev gördüğünde, onun fiyatını tahmin edebilir.
Denetimli öğrenme, verilerin etiketlerini bilmemizi gerektirdiği için bazen zor ve pahalı olabilir. Ayrıca, modelin verilerin gerçek dağılımını yansıtmasını sağlamak için yeterli ve çeşitli veriye ihtiyacımız vardır. Denetimli öğrenme, verilerin yapısını ve ilişkilerini anlamak için güçlü bir araçtır, ancak her zaman uygulanamayabilir veya uygun olmayabilir.
Denetimsiz (Gözetimsiz) Öğrenme
Denetimsiz öğrenme, etiketlenmemiş verileri analiz ederek gizli yapıları veya örüntüleri bulmaya çalışan bir makine öğrenmesi yöntemidir. Etiketlenmemiş veriler, verilerin ne anlama geldiğini veya hangi kategoriye ait olduğunu belirten bir bilgi içermeyen verilerdir. Örneğin, bir görsel veri setinde, görsellerin içindeki nesnelerin veya kişilerin adlarını belirten bir etiket yoksa, bu veri seti etiketlenmemiş olarak kabul edilir. Denetimsiz öğrenme, bu tür verileri kullanarak, veriler arasındaki benzerlikleri veya farklılıkları belirleyebilir.
Denetimsiz öğrenmenin en yaygın uygulamalarından biri kümelemedir. Kümeleme, verileri özelliklerine göre gruplara ayırmak için kullanılan bir tekniktir. Örneğin, bir müşteri veri setinde, müşterilerin yaş, cinsiyet, gelir, harcama alışkanlıkları gibi özellikleri vardır. Kümeleme algoritması, bu özellikleri kullanarak, müşterileri benzer özelliklere sahip gruplara ayırabilir. Bu gruplar, veri setinde önceden belirlenmiş değildir, algoritma tarafından otomatik olarak bulunurlar. Kümeleme, verileri anlamak, sınıflandırmak veya görselleştirmek için kullanılabilir.
Denetimsiz öğrenmenin bir diğer uygulaması da ilişkilendirme veya birliktelik kuralı madenciliğidir. Bu teknik, veriler arasındaki ilişkileri veya bağımlılıkları ortaya çıkarmak için kullanılır. Örneğin, bir alışveriş veri setinde, müşterilerin hangi ürünleri birlikte satın aldıkları bilgisi vardır. İlişkilendirme algoritması, bu bilgiyi kullanarak, bir ürünü alan müşterilerin başka hangi ürünleri alma olasılığının yüksek olduğunu bulabilir. Bu bilgi, müşterilere ürün önermek, satış artırmak veya stok yönetmek için kullanılabilir.
Denetimsiz öğrenme, denetimli öğrenmeden farklı olarak, verilerin doğru veya yanlış olduğunu kontrol etmek için bir geri bildirim mekanizmasına sahip değildir. Bu nedenle, denetimsiz öğrenme algoritmalarının sonuçlarına kesinlikle güvenmek yerine, verileri anlamak için bir araç olarak kullanmak daha iyidir. Denetimsiz öğrenme, verilerde gizli kalmış bilgileri keşfetmek için güçlü ve esnek bir yöntemdir.
Yarı Denetimli (Yarı Gözetimli) Öğrenme
Yarı denetimli öğrenme, makine öğrenmesinin bir dalıdır. Bu yöntemde, hem etiketli hem de etiketlenmemiş veriler kullanılır. Etiketli veriler, veri noktalarının hangi sınıfa ait olduğunu gösteren bilgilerdir. Örneğin, bir resimdeki nesnelerin isimleri, bir metindeki duygular, bir ses kaydındaki konuşmacılar gibi. Etiketlenmemiş veriler ise bu bilgilerden yoksundur. Etiketli verileri elde etmek zor ve pahalı olabilir, ancak etiketlenmemiş veriler bol ve ucuzdur. Yarı denetimli öğrenme, etiketli verilerden öğrenilen bilgileri, etiketlenmemiş verileri etiketlemek veya kümelemek için kullanır. Böylece, daha az etiketli veri ile daha iyi sonuçlar elde edilebilir.
Yarı denetimli öğrenme, farklı algoritmalar kullanarak gerçekleştirilebilir. Bazı yaygın algoritmalar şunlardır:
- Kendi kendine eğitim (self-training): Bu teknikte, önce küçük bir etiketli veri ile bir sınıflandırıcı eğitilir. Sonra, bu sınıflandırıcı etiketlenmemiş verileri sınıflandırmaya çalışır. En güvenli tahminlere sahip etiketlenmemiş veriler, sözde etiketli veriler olarak kabul edilir ve eğitim verilerine eklenir. Bu işlem tekrarlanarak sınıflandırıcı geliştirilir.
- Üretken karışım modelleri (generative mixture models): Bu yöntemde, verilerin olasılık dağılımı bir karışım modeli ile tanımlanır. Örneğin, Gaussian karışımı modelleri. Etiketlenmemiş verilerle, karışım bileşenleri belirlenir. Sonra, her bileşen için bir etiketli veri kullanılarak karışım modeli tamamlanır. Karışım bileşenleri, verilerin yumuşak kümeleri olarak düşünülebilir.
- Yarı denetimli destek vektör makinesi (semi-supervised support vector machine-S3VM): Bu yöntemde, etiketli ve etiketlenmemiş verileri ayırmak için maksimum marjlı bir sınıflandırma sınırı bulunur. Bu sınır, hem etiketli verilerin doğru sınıflandırılmasını hem de etiketlenmemiş verilerin sınıflar arasında iyi dağılmasını sağlar.
- Grafik tabanlı algoritmalar (graph-based algorithms): Bu yöntemde, veriler bir graf olarak temsil edilir. Grafın düğümleri veri noktalarını, kenarları ise veri noktaları arasındaki benzerliği gösterir. Etiketli verilerin etiketleri, etiketlenmemiş verilere graf üzerinde yayılarak aktarılır. Bu yayılma, grafın yapısına ve kenar ağırlıklarına bağlıdır.
Yarı denetimli öğrenme, etiketli verinin az olduğu veya etiketlemenin zor olduğu alanlarda kullanışlıdır. Örneğin, bilgisayarlı görü, doğal dil işleme, biyoenformatik, ses tanıma gibi alanlarda yarı denetimli öğrenme uygulanabilir.
Pekiştirmeli Öğrenme
Pekiştirmeli öğrenme, bir makinenin veya ajanın, çevresiyle etkileşime girerek öğrenmeye çalıştığı bir makine öğrenme yöntemidir. Ajan, çevredeki durumu gözlemleyerek, yapabileceği eylemler arasından birini seçer ve bu eylemin sonucunda bir ödül alır. Ödül, ajanın hedefine ne kadar yaklaştığını gösteren bir sayıdır. Ajan, ödülü en yüksek tutmak için eylemlerini nasıl seçeceğini öğrenir. Bunu yaparken, hem çevreyi keşfetmeye hem de mevcut bilgisini kullanmaya çalışır.
Pekiştirmeli öğrenme, diğer makine öğrenme yöntemlerinden farklıdır, çünkü ajanın doğru eylemleri yapmasını söyleyen bir öğretmen veya etiketli veri yoktur. Ajan, deneme-yanılma yoluyla öğrenir ve ödülü artırmak için kendi stratejisini geliştirir. Pekiştirmeli öğrenme, çevre hakkında yeterli bilginin olmadığı veya etiketli verinin elde edilmesinin zor olduğu durumlarda kullanışlıdır. Örneğin, bir robotun labirentten çıkmasını sağlamak için, robotun hangi yöne gitmesi gerektiğini söylemek yerine, robotun çıkışa ulaştığında ödül almasını sağlayabiliriz. Robot, bu şekilde en kısa yolu bulmayı öğrenebilir.
Pekiştirmeli öğrenme, robotik, oyunlar ve kişisel öneriler gibi alanlarda uygulanmaktadır. Robotikte, pekiştirmeli öğrenme, robotların karmaşık ve değişken ortamlarda nasıl hareket edeceğini öğrenmesine yardımcı olur. Oyunlarda, pekiştirmeli öğrenme, oyuncuların stratejilerini ve davranışlarını taklit eden veya onlara meydan okuyan yapay zeka ajanları oluşturmak için kullanılır. Kişisel önerilerde, pekiştirmeli öğrenme, kullanıcıların tercihlerini ve ilgilerini öğrenerek, onlara en uygun ürünleri veya hizmetleri önermek için kullanılır.
Makine Öğrenmesine İlişkin Terimler
- Bağımlı Değişken (Çıktı): Bu, makine öğrenmesi modelinin veriye dayalı olarak ürettiği sonuçtur. Örneğin, bir modelin bir resimdeki nesneleri tanımlaması istenirse, bağımlı değişken resimdeki nesnelerin isimleridir. Bir modelin bir evin fiyatını tahmin etmesi istenirse, bağımlı değişken evin fiyatıdır. Bir modelin bir metni farklı kategorilere ayırması istenirse, bağımlı değişken metnin kategorisidir.
- Bağımsız Değişken: Bu, makine öğrenmesi modelinin bağımlı değişkeni üretmek için kullandığı girdilerdir. Örneğin, bir modelin bir resimdeki nesneleri tanımlaması istenirse, bağımsız değişken resmin kendisidir. Bir modelin bir evin fiyatını tahmin etmesi istenirse, bağımsız değişkenler evin özellikleri (alan, oda sayısı, konum, vb.) olabilir. Bir modelin bir metni farklı kategorilere ayırması istenirse, bağımsız değişken metnin kendisidir.
- Makine Öğrenmesi Algoritması: Bu, makine öğrenmesi modelinin nasıl çalıştığını belirleyen kurallar ve formüller bütünüdür. Farklı makine öğrenmesi algoritmaları, farklı amaçlar için farklı avantajlar ve dezavantajlar sunar. Örneğin, doğrusal regresyon, bağımlı ve bağımsız değişkenler arasındaki doğrusal ilişkiyi modellemek için kullanılan basit bir algoritmadır. Karar ağacı, veriyi dallara ve yapraklara ayırarak sınıflandırma veya regresyon yapmak için kullanılan bir algoritmadır. Sinir ağları, insan beyninin yapısını taklit ederek karmaşık veri yapılarını öğrenmek için kullanılan bir algoritmadır.
- Model: Bu, makine öğrenmesi algoritmasının veri üzerinde uygulanmasıyla oluşturulan bir yapıdır. Bir model, veriden öğrendiği bilgileri saklar ve yeni veriler için bağımlı değişkeni tahmin etmek için kullanılır. Bir modelin kalitesi, veriyi ne kadar iyi temsil ettiği ve genelleştirme yeteneği ile ölçülür. Bir model, bir program veya kod aracılığıyla oluşturulabilir veya hazır kütüphaneler kullanılarak çağrılabilir.
- Eğitim Verisi (Training Data): Bu, makine öğrenmesi modelinin oluşturulması için kullanılan veri setidir. Eğitim verisi, bağımlı ve bağımsız değişkenlerden oluşur. Model, eğitim verisini algoritmasına göre işler ve bağımlı değişkeni tahmin etmeye çalışır. Model, tahminlerinin gerçek değerlerle ne kadar uyumlu olduğunu ölçen bir hata fonksiyonu kullanarak kendini iyileştirir. Model, eğitim verisini tamamen öğrenene kadar bu süreci tekrarlar.
- Doğrulama Verisi (Validation Data): Bu, makine öğrenmesi modelinin performansının değerlendirilmesi için kullanılan veri setidir. Doğrulama verisi, eğitim verisinden farklı olmalıdır. Model, doğrulama verisini kullanarak bağımlı değişkeni tahmin eder ve tahminlerinin doğruluğunu ölçer. Model, doğrulama verisi üzerindeki performansına göre, algoritmasının bazı parametrelerini (hiper parametreler) ayarlar. Hiper parametreler, modelin karmaşıklığını, öğrenme hızını, düzenlileştirme seviyesini, vb. belirleyen değerlerdir. Model, doğrulama verisi üzerindeki performansını en iyi seviyeye getirene kadar bu süreci tekrarlar.
- Test Verisi (Test Data): Bu, makine öğrenmesi modelinin gerçek dünya verileri üzerindeki performansının ölçülmesi için kullanılan veri setidir. Test verisi, eğitim ve doğrulama verisinden farklı olmalıdır. Model, test verisini kullanarak bağımlı değişkeni tahmin eder ve tahminlerinin doğruluğunu ölçer. Model, test verisi üzerindeki performansı, modelin kalitesini ve güvenilirliğini belirleyen bir gösterge olarak kullanılır. Bir model, eğitim verisi ile test edilirse, bu modelin aşırı uyum (overfitting) yaptığı anlamına gelir. Aşırı uyum, modelin eğitim verisini ezberlemesi ve yeni veriler için genelleştirme yapamaması durumudur. Bu durum, modelin performansını düşürür ve yanıltıcı sonuçlar verir.
Makine Öğrenmesi Süreci
Makine öğrenmesi süreci, verilerden öğrenen ve tahminler yapan bilgisayar programları geliştirmek için kullanılan bir yöntemdir. Makine öğrenmesi süreci şu adımları içerir:
- Veri toplama: Makine öğrenmesi için veri, öğrenme ve tahmin yapma sürecinin temelidir. Veri, farklı kaynaklardan toplanabilir, örneğin internet, sensörler, anketler, deneyler vb. Veri, sayısal, metinsel, sesli, görüntülü veya karma olabilir. Veri, makine öğrenmesi algoritmasının girdisi olarak kullanılır.
- Veri ön işleme: Veri toplama aşamasından sonra, veri makine öğrenmesi algoritmasına uygun hale getirilmelidir. Veri ön işleme aşamasında, veri üzerinde çeşitli işlemler yapılır, örneğin:
- Veri temizleme: Verideki eksik, hatalı, tutarsız veya anlamsız değerlerin tespit edilmesi ve düzeltilmesi veya silinmesi işlemidir.
- Veri dönüştürme: Verideki değerlerin, makine öğrenmesi algoritmasının anlayabileceği bir formata dönüştürülmesi işlemidir. Örneğin, metin verisi sayısal veriye, kategorik veri ikili veriye, sürekli veri ayrık veriye vb. dönüştürülebilir.
- Veri indirgeme: Verideki gereksiz, yinelenen veya çok fazla sayıda olan özelliklerin veya örneklerin azaltılması işlemidir. Veri indirgeme, verinin boyutunu küçültmek, veriyi basitleştirmek, verideki gürültüyü azaltmak ve makine öğrenmesi algoritmasının hızını ve performansını artırmak için yapılır.
- Veri görselleştirme: Verideki desenleri, ilişkileri, dağılımları, eğilimleri veya anormallikleri görsel olarak sunmak için kullanılan bir tekniktir. Veri görselleştirme, veriyi anlamak, veri hakkında bilgi edinmek, veri kalitesini değerlendirmek ve veri analizi için ipuçları elde etmek için yararlıdır.
- Veri bölme: Veri ön işleme aşamasından sonra, veri seti eğitim, doğrulama ve test olmak üzere üç parçaya bölünmelidir. Eğitim verisi, makine öğrenmesi algoritmasının öğrenmesi için kullanılır. Doğrulama verisi, makine öğrenmesi algoritmasının ayarlanması için kullanılır. Test verisi, makine öğrenmesi algoritmasının değerlendirilmesi için kullanılır. Veri bölme işlemi, makine öğrenmesi algoritmasının genelleştirme yeteneğini ölçmek ve aşırı uyum (overfitting) veya yetersiz uyum (underfitting) gibi problemleri önlemek için yapılır. Veri bölme işlemi için iki ana yöntem vardır:
- Eğitim-doğrulama-test: Bu yöntemde, veri seti belirli bir oranda üç parçaya ayrılır. Genellikle, veri setinin %60'ı eğitim, %20'si doğrulama ve %20'si test için kullanılır. Bu oranlar veri setinin büyüklüğüne, karmaşıklığına ve dağılımına göre değişebilir. Bu yöntemde, makine öğrenmesi algoritması eğitim verisi ile bir model oluşturur. Doğrulama verisi ile modelin performansı ölçülür ve modelin hiperparametreleri (algoritmanın ayarlanabilir parametreleri) optimize edilir. Test verisi ile modelin son halinin performansı ölçülür ve modelin başarısı belirlenir.
- Çapraz doğrulama: Bu yöntemde, veri seti yaklaşık olarak %80 eğitim-doğrulama ve %20 test olmak üzere iki parçaya ayrılır. Eğitim-doğrulama verisi, n eşit parçaya bölünür. Her seferinde, n-1 parça eğitim, 1 parça doğrulama için kullanılır. Bu işlem, her parça bir kez doğrulama için kullanılana kadar tekrarlanır. Bu şekilde, eğitim-doğrulama verisinin tamamı hem eğitim hem de doğrulama için kullanılmış olur. Modelin doğrulama performansı, her seferinde elde edilen performans puanlarının ortalaması alınarak hesaplanır. Modelin performansı optimize edildikten sonra, test verisi ile modelin son halinin performansı ölçülür ve modelin başarısı belirlenir. Çapraz doğrulama yöntemi, veri setinin daha iyi kullanılmasını, modelin daha iyi ayarlanmasını ve modelin daha iyi değerlendirilmesini sağlar.
Makine Öğrenmesi Performansının Ölçülmesi
Makine öğrenmesi, verilerden öğrenen ve belirli bir görevi otomatik olarak gerçekleştiren bilgisayar programları geliştirmek için kullanılan bir bilim dalıdır. Makine öğrenmesinde farklı amaçlar için farklı algoritmalar kullanılır. Örneğin, sınıflama algoritmaları, bir veri öğesinin hangi kategoriye ait olduğunu belirlemek için kullanılır. Kestirim algoritmaları ise, bir veri öğesinin bir özellik veya sonuç değerini tahmin etmek için kullanılır.
Eğitim işlemi, algoritmaları ve veri setini kullanarak bir model geliştirme (eğitim) işlemidir. Model, verilerdeki örüntüleri veya ilişkileri yakalamak için kullanılan bir matematiksel fonksiyondur. Eğitim işlemi, modelin verileri en iyi şekilde açıklayan veya tahmin eden parametrelerini bulmak için veri setini algoritmalara uygulamaktır.
Geliştirilen modellerin başarısını ölçmek modeli değerlendirebilmek için gereklidir. Modelin ne kadar iyi performans gösterdiğini, verileri ne kadar doğru açıkladığını veya tahmin ettiğini belirlemek için performans ölçümleri kullanılır. Performans ölçümleri, modelin çıktılarını gerçek değerlerle karşılaştırarak bir hata veya doğruluk oranı hesaplar.
Sınıflandırma ve sayısal tahmin olmak üzere iki farklı performans ölçüm yöntemi bulunur. Sınıflandırma, veri öğelerinin ait olduğu sınıfı belirtir ve çıktıda sonlu ve ayrık değerler olduğunda kullanılır.
Örnek:
Kredi Riski tahmin eden bir makine öğrenmesi modeli düşünelim. Bu model, kişilerin gelir, yaş, eğitim, borç, kredi geçmişi gibi özelliklerini kullanarak, kredi başvurusunda bulunan kişilerin kredi riskini düşük veya yüksek olarak sınıflandırır. Modelinizi oluşturduktan sonra, doğrulama veya test aşamasında, modelinizin performansını ölçmek istersiniz. Test veri setinde kredi riski düşük veya yüksek olarak etiketli kişilerin model tarafından doğru olarak sınıflandırılmasını beklersiniz. Makine öğrenmesinin tahminlerini gerçek etiketlerle karşılaştırmanız gerekir. Test setinde "kredi riski yüksek" olarak etiketlenmiş bir kişiye ait girdiler verildiğinde "kredi riski yüksek" olduğunu tahmin etmesini beklersiniz ancak her zaman böyle olmaz. Modeller tıpkı insanlar gibi (böyle işlemlerde insanlardan çok daha fazla) hatalı sınıflandırmalar yapabilir. Sınıflandırma için geliştirilen bir model örnekteki gibi ikili sınıflandırmada dört farklı tahmin üretebilir.
Gerçek kredi riski yüksek olan bir kişi (KR+) model tarafından "kredi riski yüksek" olarak tahmin edilirse buna doğru pozitif (TP), gerçekte kredi riski yüksek olmasına rağmen "kredi riski düşük" olarak sınıflandırılırsa buna yanlış negatif (FN) denir. Gerçekte "kredi riski düşük" olan bir kişi (KR-) model tarafından "kredi riski yüksek" olarak sınıflandırılırsa buna yanlış pozitif (FP), gerçekte "kredi riski düşük" olan bir kişi "kredi riski düşük" olarak tahmin edilirse buna doğru negatif (TN) denir. Yanlış pozitif ve yanlış negatif sırasıyla Tip I ve Tip II hata olarak adlandırılır.
Bu durumu şöyle bir tablo ile gösterebiliriz:
| Gerçek Etiket | Tahmin Edilen Etiket | Sonuç |
| :-----------: | :------------------: | :---: |
| KR+ | KR+ | TP |
| KR+ | KR- | FN |
| KR- | KR+ | FP |
| KR- | KR- | TN |
Bu tabloyu kullanarak, modelinizin doğruluk, hassasiyet, geri çağırma, F1 skoru gibi çeşitli metriklerini hesaplayabilirsiniz. Bu metrikler, modelinizin ne kadar iyi çalıştığını değerlendirmenize yardımcı olur. Ayrıca, modelinizin karar eşiğini değiştirerek, yanlış pozitif ve yanlış negatif hatalarını azaltmaya çalışabilirsiniz. Örneğin, kredi riski tahmininde, yanlış negatif hataları (gerçekte kredi riski yüksek olan kişilere kredi vermek) yanlış pozitif hatalarından (gerçekte kredi riski düşük olan kişilere kredi vermeyi reddetmek) daha maliyetli olabilir. Bu nedenle, modelinizin karar eşiğini yükselterek, yanlış negatif hatalarını azaltabilirsiniz. Ancak, bu durumda yanlış pozitif hatalarınız artabilir. Bu yüzden, modelinizin performansını değerlendirirken, iş probleminizin özelliklerini ve maliyetlerini de göz önünde bulundurmanız gerekir.
Sınıflandırma performansını ölçmek için kullanılan bazı metrikler şunlardır:
- Doğruluk: Modelin doğru tahmin ettiği veri öğelerinin toplam sayısının, tüm veri öğelerinin sayısına oranıdır. Doğruluk, modelin genel performansını ölçmek için kullanılır. Ancak, sınıflar arasında dengesizlik olduğunda yanıltıcı olabilir. Örneğin, 100 veri öğesinden 90'ı A sınıfına ve 10'u B sınıfına ait olsun. Model, tüm veri öğelerini A sınıfına tahmin etse bile, doğruluğu %90 olacaktır. Bu durumda, modelin B sınıfını hiç tanımadığını göz ardı eder.
- Hassasiyet: Modelin A sınıfı olarak tahmin ettiği veri öğelerinden, gerçekten A sınıfına ait olanların oranıdır. Hassasiyet, modelin yanlış pozitifleri (gerçekte A sınıfına ait olmayan ama A sınıfı olarak tahmin edilen veri öğeleri) azaltma yeteneğini ölçmek için kullanılır.
- Duyarlılık: Modelin gerçekten A sınıfına ait olan veri öğelerinden, A sınıfı olarak tahmin ettiği veri öğelerinin oranıdır. Duyarlılık, modelin doğru pozitifleri (gerçekte A sınıfına ait olan ve A sınıfı olarak tahmin edilen veri öğeleri) yakalama yeteneğini ölçmek için kullanılır.
- F1-Skoru: Hassasiyet ve duyarlılığın harmonik ortalamasıdır. F1-skoru, hassasiyet ve duyarlılık arasında bir denge sağlamak için kullanılır. F1-skoru, 0 ile 1 arasında bir değer alır. 1, mükemmel bir performansı, 0 ise en kötü performansı gösterir.
Örnek:
Bir banka, müşterilerinin kredi kartı borcunu ödeyip ödemeyeceğini tahmin etmek için bir makine öğrenmesi modeli geliştirdi. Bu model 100.000 veriden oluşan test verisinin tamamını "öder" olarak tahmin ederse doğruluğu %95 olur ancak model aslında hiçbir borcunu ödemeyen müşteriyi doğru tahmin etmemiştir. Böyle bir durumda tek başına doğruluk metriğinin anlamı kalmaz. Kesinlik değeri %0.0 olarak hesaplanır. Pozitif tahmin değeri %95 olarak hesaplanır. Özgüllük değeri %100 olarak hesaplanır. Duyarlılık değeri ise %0.0 olarak hesaplanır. Modelin başarısını değerlendirmek için hangi metriklerin incelenmesi gerektiği çok önemlidir. Örnekte verilen bir problem durumu için kesinlik ve duyarlılık değerlerinin önemi ön plana çıkmaktadır. Geliştirilen bir modelin sınıflandırma başarısı değerlendirilirken bu tür durumlara dikkat edilmelidir.
Sayısal tahmin, veri öğelerinin bir sayısal değerini tahmin etmek için kullanılır. Sayısal tahmin performansını ölçmek için kullanılan bazı metrikler şunlardır:
- Ortalama Mutlak Hata (MAE): Modelin tahminleri ile gerçek değerler arasındaki mutlak farkların ortalamasıdır. MAE, modelin ne kadar hata yaptığını ölçmek için kullanılır. MAE, 0 ile sonsuz arasında bir değer alır. 0, mükemmel bir performansı, yüksek değerler ise kötü bir performansı gösterir.
- Ortalama Kare Hata (MSE): Modelin tahminleri ile gerçek değerler arasındaki kare farkların ortalamasıdır. MSE, MAE'ye benzer şekilde modelin hata miktarını ölçmek için kullanılır. Ancak, MSE, büyük hataları daha fazla cezalandırır. MSE, 0 ile sonsuz arasında bir değer alır. 0, mükemmel bir performansı, yüksek değerler ise kötü bir performansı gösterir.
- Kök Ortalama Kare Hata (RMSE): MSE'nin kareköküdür. RMSE, MSE ile aynı amaçla kullanılır. Ancak, RMSE, tahminler ile gerçek değerler arasındaki farkın ölçeğinde bir değer verir. RMSE, 0 ile sonsuz arasında bir değer alır. 0, mükemmel bir performansı, yüksek değerler ise kötü bir performansı gösterir.
- R-Kare: Verilerin yerleştirilmiş regresyon hattına ne kadar yakın olduğunun istatistiksel bir ölçüsüdür. R-kare, modelin verileri ne kadar iyi açıkladığını ölçmek için kullanılır. R-kare, 0 ile 1 arasında bir değer alır. 1, mükemmel bir uyumu, 0 ise hiçbir uyum olmadığını gösterir.
Aşırı Öğrenme ve Zayıf Öğrenme
Makine öğrenmesinde bir model oluşturmak istediğimizde, elimizdeki verileri iki gruba ayırırız: eğitim verisi ve test verisi. Eğitim verisi, modelin veriler arasındaki ilişkiyi öğrenmesi için kullandığımız veri kümesidir. Test verisi ise, modelin yeni ve görmediği veriler üzerinde ne kadar iyi tahmin yaptığını ölçmek için kullandığımız veri kümesidir.
Modelimizin amacı, eğitim verisindeki örüntüleri yakalamak ve test verisinde de genelleme yapabilmektir. Ancak bazen modelimiz bu amaca ulaşamaz ve iki tür problemle karşılaşabiliriz: aşırı öğrenme ve zayıf öğrenme.
Aşırı öğrenme, modelin eğitim verisinde çok yüksek bir doğruluk elde etmesine rağmen, test verisinde çok düşük bir doğruluk elde etmesi durumudur. Bu, modelin eğitim verisindeki gürültüyü veya rastgele değişimleri de öğrenerek veriyi ezberlemesi anlamına gelir. Bu durumda model, eğitim verisindeki özel durumlara çok fazla uyum sağlar ve yeni verilerde genelleme yapamaz. Aşırı öğrenme, modelin çok karmaşık olduğunda veya eğitim verisinin çok az veya tek tip olduğunda ortaya çıkar. Aşırı öğrenmeyi önlemek için, modelin karmaşıklığını azaltmak, eğitim verisini artırmak veya çeşitlendirmek, regularizasyon, dropout, erken durdurma gibi teknikler kullanılabilir.
Zayıf öğrenme, modelin hem eğitim verisinde hem de test verisinde çok düşük bir doğruluk elde etmesi durumudur. Bu, modelin verilerdeki temel örüntüleri yakalamak için çok basit olduğu anlamına gelir. Bu durumda model, veriler arasındaki ilişkiyi yeterince öğrenemez ve tahminleri gerçek değerlerden çok uzaklaşır. Zayıf öğrenme, modelin çok basit olduğunda veya verilerin çok karmaşık olduğunda ortaya çıkar. Zayıf öğrenmeyi önlemek için, modelin karmaşıklığını artırmak, farklı makine öğrenmesi algoritmaları denemek, verileri ön işleme veya dönüştürme gibi teknikler kullanılabilir.
En iyi uyum, modelin hem eğitim verisinde hem de test verisinde düşük bir hata oranı elde ettiği durumdur. Bu, modelin verilerdeki örüntüleri doğru bir şekilde öğrendiği ve yeni verilerde de genelleme yapabildiği anlamına gelir. En iyi uyum, modelin hem yanlılığını (bias) hem de varyansını (variance) en aza indirdiği durumdur. Yanlılık, modelin tahminlerinin gerçek değerlerden ne kadar farklı olduğunu gösterir. Varyans, modelin tahminlerinin farklı veri kümeleri için ne kadar değiştiğini gösterir. Modelin yanlılığını azaltmak için karmaşıklığını artırmak, modelin varyansını azaltmak için karmaşıklığını azaltmak gerekir. Bu iki uç arasında optimal bir denge bulmak, makine öğrenmesinin temel zorluklarından biridir.
faydalı