Bilgisayar Mühendisliği

Makine Öğrenmesi Nedir? Ne İşe Yarar?

Makine öğrenmesi nedir, ne işe yarar, nasıl yapılır, makine öğrenmesi çeşitleri nelerdir gibi konuları çoğunluğun anlayabileceği bir anlatımla ve tabi güncel örnekler aracılığıyla bu yazıda ele alıyoruz.

Malumunuz 21. yüzyılda insan gücünün yerini hem daha ucuz hem de daha hızlı olması sebebiyle yapay zeka uygulamaları almaya başladı. İşte her ne kadar farkında olmasak da her gün sıkça karşımıza çıkan bu uygulamalardan birisi de makine öğrenmesi!

Makine Öğrenmesi Nedir?

Matematiksel ve istatistiksel işlemler ile veriler üzerinden çıkarımlar yaparak tahminlerde bulunan sistemlerin bilgisayarlar ile modellenmesine verilen isimdir.

Daha anlaşılır bir şekilde ifade etmek gerekirse; eski tecrübe niteliğindeki verileri kullanarak yeni durumlarla ilgili çıkarımlar ve tahminler yapmaktır. Tabi burada tecrübe dediğimiz şey veridir. Yalnız makine öğrenmesi deyince aklınıza makine mühendisliği gelmesin :)

Yapay Zeka Uygulamaları: Makine Öğrenmesi
Yapay Zeka Uygulamaları: Makine Öğrenmesi

Mesela, sosyal medya uygulamalarında ana sayfada çıkan gönderiler ve ayrıca bize önerilen profil ve sayfalar en bilindik örnek olsa gerek. Girdiğimiz sayfalar, beğendiğimiz gönderiler gibi pek çok faktör yapay zeka tarafından analiz ediliyor ve önerilenler karşımıza çıkıyor.

Makine Öğrenmesi Ne İşe Yarar?

# Ortalama bir insanın yapamayacağı kadar hızlı şekilde çeşitli hesaplamaları ve analizleri yapmamızı sağlar.

# Gereksiz iş gücünü ortadan kaldırarak maliyetleri düşürmemizi sağlar. (Tabi işsizliğin dünya çapında artmasında ve kimi mesleklerin gelecekte yok olmasında dolaylı bir etkisi vardır.)

# Dünyadan ilgili güncel verileri toplamamızı ve saklamamızı sağlar. Unutmayın ki bilgi güçtür. (İnsanların neyden hoşlandıkları gibi basit bir bilgi üzerinden bile bir firma ciddi bir şekilde gelirlerini arttırabilir.)

# Verileri görsel hale getirmemize yani kolaylıkla inceleyip analiz edebileceğimiz bir forma sokmamızı sağlar.

Madem tüm işi bilgisayar veya eğittiğimiz yapay zeka yapıyor, ‘O zaman bize ne iş kaldı ki’ diye düşünenler olabilir. Bizler ince hesaplarla en az hatanın olmasını sağlayacak şekilde kodlama yapıyoruz. Bilgisayara hata oranının nasıl en aza düşürüleceğini öğretiyoruz.

Makine Öğrenmesi Örnekleri

Yemek Sipariş Siteleri: Yemek sipariş sitelerinin sadece bize en yakın olan restoranları değil de aynı zamanda en çok olumlu dönüşü almış restoranları ilk sıralarda göstermesi bir çeşit makine öğrenmesi algoritmasıdır.

Nasılsa o sitelerin başarılı olunca daha çok kişi tarafından önerilip daha çok müşteri çekeceği yani daha çok para kazanacağı şüphesiz bir gerçektir değil mi?

Makine Öğrenmesi Örnekleri
Makine Öğrenmesi Örnekleri

Mobil Reklamlar: İnternette dolaşırken karşımıza çıkan reklamlar eğer dikkat ettiyseniz önceden araştırdığınız ürünlerin ta kendisidir veyahut benzerleridir. (Gizli sekmede dolaşmadığınızı varsayıyoruz)

İşte girdiğiniz sitelere bakılarak; zevklerinizin, ihtiyaçlarınızın, yaşınızın ve nicelerinin analiz edilmesi ve karşınıza buna göre reklamlar çıkarılması bir çeşit makine öğrenmesi örneğidir.

Borsa Tahmin Uygulamaları: Borsalardaki yükseliş ve düşüşleri esas alarak ileri dönemlerde ne olacağını tahmin eden bir yapay zeka yazabilirsiniz ki bu sıkça borsacılar ve al sat yapan tayfa tarafından kullanılır.

Bunun bir ileri versiyonu dünyadaki (özellikle siyasi) gelişmeleri yorumlayan ve ciddi bir doğru tahmin oranına sahip olan programlardır.

Borsa ve Lineer Regrasyon Örnekleri
Borsa ve Lineer Regrasyon Örnekleri

Spam Kontrolü: Elektronik postaları içinde “Ucuz / bedava” gibi kelimelerin geçip geçmemesi, yazım hatası olup olmaması, başlık olup olmaması gibi faktörlere bakarak spam veya spam değil şeklinde gruplamak bir çeşit makine öğrenmesi algoritmasıdır.

Tahmin Yaptırma Programı: Bilgisayara hayvan resimleri gösterip bu resimlerin hangi hayvanlar olduğunu öğretip; daha sonra başka hayvan resimleri gösterip bilgisayara tahmin yaptırmak da makine öğrenmesidir. Benzer şey el yazısı resimleri için de geçerlidir.

Örneklerle Makine Öğrenmesi Nedir
Örneklerle Makine Öğrenmesi Nedir

Arama Motorları: Google gibi arama motorlarının kullanıcının bir sitede kalma süresi, sitenin hızı gibi faktörlere bakıp bu faktörlere göre siteleri sonuç sayfasında sıralamaya sokması bir çeşit yapay zeka örneğidir. Hatta bu sayede arama motoru optimizasyonu (SEO) diye yeni bir sektör bile doğmuştur.

Gördüğünüz üzere, makine öğrenmesi aklınıza gelebilecek her alanda kullanılabilir. Yeter ki çözüm bekleyen, kolaylaşmak isteyen sorunlar olsun.

Makine Öğrenmesi Nasıl Yapılır?

A. Kavram Bilgisi

Mesela kanserin ölümcül düzeye gelip gelmediğini önceden tespit edebilen bir programın yapılışını ele alalım. Bu program üzerinden size ilgili teknik kavram bilgisini ve makine öğrenmesi programı hazırlama yöntemini örnekler üzerinden anlatalım.

Gözlemler (Observations): Değerlendirmek amacıyla kullanılan her bir veri parçasına denir. 
Örnek: Her bir hastaya ait veriler bir gözlemdir.

Özellikler (Features): Bir gözlemi temsil eden sayısal verilerdir. 
Örnek: Hastaların hücrelerinin büyüklüğü, ağırlığı ve benzeri…

Makine Öğrenmesi Nedir - Ne İşe Yarar
Makine Öğrenmesi Nedir – Ne İşe Yarar

Etiketler (Labels): Gözlemlere atfedilen kategorilerdir. 
Örnek: Ölümcül, ölümcül değil.

Eğitim Verisi (Training Data): Algoritmanın öğrenmesi için sunulan gözlemler dizisidir. Algoritma bu veriye bakarak çıkarımlarda bulunur, kafasında model kurar. 
Örnek: Verilere göre bir çok kez ölümcül / değil diye etiketlenmiş gözlem.

Test Verisi (Test Data): Algoritmanın kafasında şekillendirdiği modelin ne kadar gerçeğe yakın olduğunu test etmek için kullanılan veri seti. Eğitim esnasında saklanır, eğitim bittikten sonra etiketsiz olarak algoritmaya verilerek algoritmanın (vermediğimiz etiketler hakkında) tahminlerde bulunması beklenir. 
Örnek: Ölümcül olup olmadığı bilinen (ama gizlenen), eğitim verisindeki verilerden farklı çok sayıda gözlem.

B. Makine Öğrenmesi Yöntemi

(1) Sorun Tespiti: Üzerine çalışacağınız konuyu veya sorunu tespit edin.
Örnek: Kanserin ölümcül düzeye gelip gelmediğini önceden tespit edebilmek

(2) Veri Toplanması: Üzerine çalışmak için seçtiğiniz konuyla ilgili eski verileri araştırın.
Örnek: Kanser hücresinin boyutu, şekli, ağırlığı ve hastanın kanser türünü gösteren bilgilerin olduğu bir veri

Veri Örneği
Veri Örneği

(3) Veri Düzenlemesi: Veri dosyasındaki gereksiz bilgileri silin, eksik bilgilerin de şu yöntemleri kullanarak icabına bakın:

➽ O özelliğe ait veri türü içindeki değerlerin ortalaması kullanılarak eksikler tamamlanır.
➽ O özelliğe ait veri türü içinde en çok tekrar eden veri kullanılarak eksikler tamamlanır.
➽ Eksik verinin olduğu veri türü (sütun) silinir. (Veri kaybı sonuçları bozacağı için önerilmez)

Örnek: Bu projede (mesela) hasta adı gereksiz bir veridir, silinir. Eksik veriler de üstteki yöntemlerle tamamlanır.

(4) Programlama Dili Seçimi: İstediğiniz yöntemi kullanarak makine öğrenmesi modelini hazırlayın. Burada kodlama bilgisi devreye giriyor. Lakin bu iş için genellikle Python ve C programlama dillerinin tercih edildiğini de belirtelim.

(Ayrıca Bakınız: Programlama / Yazılım Öğrenmek – Rehber)

Makine Öğrenmesi İçin Python Dili Sıkça Tercih Edilir
Makine Öğrenmesi İçin Python Dili Sıkça Tercih Edilir

(5) Model İnşası: Gerçekten alakası olan verileri ve bu verilerin etkilerini düşünerek şunun gibi (hatta çok daha karmaşık ve gelişmiş) bir model yapacaksınız:

Ölümcüllük = (Hücre Çapı * 0.6) + (Hücre Ağırlığı * 0.4)

İşte makine öğrenmesi olayının özü burada yatıyor. Model inşa ederek elimizdeki veriler ile hedefimiz arasında doğrudan bir bağlantı kurmuş oluyoruz.

(6) Eğitim Aşaması: Her bir veri için model uygulanır ve kritik bir katsayı seçimi yapılır. Daha sonra ise test aşamasına geçip modelin ne kadar doğru tahmin yapıp yapmadığı test edilir.

Elinizdeki verinin %75’ini modeli eğitmek için %25’ini ise test etmek için kullanacaksınız. (Bu oran makine öğrenmesi konusunda bir standarttır.)

Örnek: %75’lik kısımda her bir kişi için bu oran teker teker hesaplanır ve hastalığın ölümcül olup olmamasına göre kritik bir oran belirlenir. Mesela “Hastadaki oran 0.5’in üstünde ise %90 ihtimalle kanser ölümcüldür” gibi kesin bir yargıya varmanız lazım. Tabi siz bu oranı elinizdeki verilere bakarak bulacaksınız.

Bu işlemin doğruluk yüzdesini görselleştirmeye kalkarsanız genellikle şu tarz bir şey elde edersiniz:

Başarı oranının (mavinin) yükselmesi modelin başarılı bir şekilde eğitildiğini gösterir
Başarı oranının (mavinin) yükselmesi modelin başarılı bir şekilde eğitildiğini gösterir

(7) Test Aşaması: Kalan %25’lik veri ise ne kadar sağlıklı bir makine öğrenmesi modeli geliştirip geliştirmediğimizi test etmek için kullanılır. Testi ise şu formülle yapıyoruz:

Test Başarı Oranı (Accuracy) = Başarılı Test Sayısı / Toplam Test Sayısı

➽ Testin başarı oranı %100 gibi uçuk bir yüzde olmamalıdır.
➽ Testin başarı oranı %20 gibi düşük bir yüzde de olmamalıdır.
➽ %85 %90 idealdir diyebiliriz.

Not: Sizlere karışık gelmiş olabilir ama bu işlemlerin çoğunu bir kaç satır kodla yapmanızı sağlayan, sırf makine öğrenmesi için geliştirilmiş özel modüller mevcuttur.

Makine Öğrenmesi Çeşitleri

Makine Öğrenmesi Tipleri
Makine Öğrenmesi Tipleri

1) Gözetimli Öğrenme

Etiketlenmiş gözlemlerden öğrenme sürecidir. Etiketler, algoritmaya gözlemleri nasıl etiketlemesi gerektiğini öğretir. Mesela üstteki kanser örneği gözetimli bir öğrenmedir.

Çünkü bilgisayara makine öğrenmesi yöntemini biz öğretiriz. Mesela kritik oranın belirlenmesinde hücre büyüklüğü 4 kat, ağırlığı 6 kat etkili gibi faktörleri biz belirleriz.

Sınıflandırma (Classification): Her bir gözleme bir kategori/sınıf atması yapar. Örnek: Ölümcül / Ölümcül değil.

Sınıflar ayrıktır (sayı değildir) ve birbirlerine yakın / uzak olmaları gibi bir durum söz konusu değildir.

Regresyon (Regression): Her gözlem için öğrendiklerine bakarak reel bir değer tahmini yapar. 
Örnek: “Bu model 40.000 kilometredeki bir arabanın fiyatı 59.375 lira olmalıdır.”

2) Gözetimsiz Öğrenme

Etiketsiz bir şekilde gözlemlerden öğrenme sürecidir. Algoritmanın kendi kendine keşifler yaparak gözükmeyen örüntüleri, ilişkileri keşfetmesi beklenir.

Kümeleme (Clustering): Gözlemleri homojen bölgelere ayırır.

Boyut Azaltımı (Dimensionality Reduction): Gözlemlerin mevcut özellik sayısını az ve öz hale indirir, bize en iyi öğrenme imkanı sunar.

3) Diğerleri

Technogezgin.com Bilgi
Makine öğrenmesi” konulu yazımız hakkında eklemek istediklerinizi, sorularınızı ve (eğer varsa) yazıdaki yanlışları yorumlarda belirtebilirsiniz.

Bilgi güçtür, paylaştıkça büyür. Bu sebeple bu yazıyı da; yazının altındaki (logolu) paylaşım tuşlarını kullanarak gönül rahatlığı ile paylaşarak bize büyük bir iyilik yapabilirsiniz.

Kaynakça: (1) (2) (3) (4)

Ana Sayfa: 
https://www.technogezgin.com/
Hayata Dair Özgün ve Kaliteli Yazılarımız: 
https://www.technogezgin.com/blog/

MrKaptainTR

Merhabalar. Ben bu internet sitesinin sahibiyim. Aynı zamanda Hacettepe Üniversitesi'nde bilgisayar mühendisliği okuyorum. Bu sitede de; ufkunuzu açacak, bilgi hazinenizi katlayacak, bakış açınızı adeta uçuracak, “Vay be, adamlar bunu da mı yapmış?” dedirtecek cinsten içerikler üretmeye çalışıyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı