Yapay Zeka Ders Notları 01 | Yeni Bir Yazı Serisine Başlıyorum! | Makine Öğrenmesi Terimleri

Yasin Güzel
4 min readMar 23, 2018

--

Herkese Merhabalar! 🙌

Bu sene 3.sınıfta uzun zamandır merakla beklediğim Yapay Zeka dersini DOÇ. DR. Hamdi Tolga KAHRAMAN’dan alıyorum. Dersteyken zaten aklımda olan, derste öğrendiklerimi blog yazısı olarak yazıp, paylaşmak geldi ve bunu gerçekleştirmeye karar verdim. Bundan sonraki hedefim her cuma derste öğrendiklerimi buraya aktarmak olacak. Böylece bu bilgileri başka insanlara aktarmış olacağım ve öğrenmenin en iyi yollarından biri olan öğretmeyi gerçekleştirmiş olacağım. Ayrıca her cuma sizinle yazı paylaşma hedefim olduğundan dolayı büyük ihtimalle dersi daha dikkatli dinleyeceğim ve ders kaçırmamaya çalışacağım. Notlarımı size aktarmadan önce şundan bahsetmek istiyorum:

Daha önce düzenli olarak blog yazan bir insan değilim o yüzden bazı yazım hatalarım olabilir ve cümlelerde anlatım bozukluğu olabilir. Bu notlar ne kadar akademik bir dersten aktarılacak olsa bile aktarırken veya dersi dinlerken yapacağım hatalardan dolayı bazı eksik bilgiler bulunabilir.

Ayrıca olumlu/olumsuz geri dönüşler yaparak yazılarımın daha iyi olmasını sağlayabilirsiniz. Şimdiden çok teşekkürler.

Bu bölümde yanlış bilgiyi önlemek amacıyla derste gördüğümüz sunumlarda yer alan açıklamaları yazacağım ardından eğik yazı tipiyle aldığım notları aktaracağım. Bu derste Makine Öğrenmesini (Machine Learning) terimlerini işledik. Asıl işe başlamadan önce, hocamında dediği gibi işin terminolojisi bilmek önemli.

Makine Öğrenmesi yöntemleri verinin yapısına göre ikiye ayrılır.

1→ Danışmalı/Denetimli (Supervised) Öğrenme

Veri, etkiye tepki prensibiyle çalışan sistemlerden alınır ve giriş-çıkış düzeninde organize edilir.

Etiketlenmiş bir eğitim setiyle modeli eğitiyoruz. Örneğin tahmin ve sınıflandırma danışmanlı öğrenme algoritması ile modellenebilir.

2→ Danışmansız (Unsupervised) Öğrenme

Sınıf bilgisi olmayan veya verilmeyen veri içerisindeki grupları keşfetmeyi hedefler.

Burada ise etkiketlenmiş veriler olmayabilir fakat yine de bir eğitim verisi vardır. Örneğin kümeleme tekniğinde unsupervised öğrenmeye uygun algoritmalar bulunmaktadır.

Yarı Danışmalı (Reinforcement) Öğrenme

Bazen öğretici, sisteme beklenen sonucu tam söyleyemez ama sistemin ürettiği sonuç için “doğru/yanlış” şeklinde fikir belirtir. Bu öğrenme şekli de takviyeli öğrenme adıyla anılır.

Boltzmann makinesi, LVQ ve genetik algoritma örnek olarak sayılabilir.

Bu modele örnek verecek olursak; bizim yerleri temizleyen bir makinemiz var ve bunun satışını yapıyoruz. Bunu bir odayı öğrenecek şekilde planlarsak, başka bir odaya koyduğumuzda veya odada bir nesnenin yerini değiştirdiğimizde makine işi gerçekleştiremeyecek. Bu yüzden bu modele verileri tam olarak vermiyoruz zaten veremiyoruz. Modele odanın tam haritası vermek yerine üzerindeki uzaklık sensörü bilgisini vererek daha doğru bir iş yapmasını sağlıyoruz.

Öğrenme Zamanlaması

1→ Çevrimiçi (online) öğrenme

Gerçek zamanlı olarak çalışan sistemlerde öğrenme aşamasının çalışma anında da sürdürülmesi gerekiyorsa kullanılır.

Kulağa hoş geliyor ancak çalışma performansı çokta iyi olmayabilir. Algoritma hızlı çalışıp çokta yararlı sonuçlar vermeyebilir. Bu yüzden bu model eğer problem gerektiriyorsa seçilmeli.

2→ Çevrimdışı (offline) öğrenme

Uygulama sistemi henüz çalışmaz iken eğitim gerçekleştirilir, eğitilmiş yöntem sisteme yüklenir ve sistem çalıştırılır.

Burada örneğin yıldan yıla model güncellenebilir fakat bu çevrimiçi öğrenme anlamına gelmeyebilir.

Özellik Çıkartımı

Veriye ait olan birçok özellikten bazıları ilgili verinin kümesini/sınıfını belirlemede önemli rol oynar. Bu gibi durumlarda özellik kümesinin bir alt kümesi seçilir (feature selection) veya bu özelliklerin birleşiminden yeni özellikler elde edilebilir.

Elimizdeki bütün özellikleri bir modelde kullanmak zorunda olmayabiliriz. Bu zaten modelin yanlış sonuçlar üretmesine yol açabilir.

Veri Ön İşleme (Data Preprocessing)

Veriler, ön işleme sırasından bir dizi adımdan geçmektedir:

→ Data Cleaning: Veri, eksik değerlerin doldurulması, gürültülü verilerin düzeltilmesi veya verilerin tutarsızlıklarının çözülmesi gibi işlemler yoluyla temizlenir.

→ Data Integration: Farklı gösterimlere sahip veriler toplanır ve verilerdeki çatışmalar giderilir.

→ Data Transformation: Veriler normalleştirilir, toplanır ve genelleştirilir.

→ Data Reduction: Bu adım, bir veri ambarındaki verilerin daha az gösterilmesini sunmayı amaçlamaktadır.

→ Data Discretization: Öznitelik aralıklarının aralıklarına bölünerek sürekli bir öznitelik değerlerinin sayısının azaltılmasını içerir.

Veri Hazırlama

Sınıflandırma veya tahmin için problem uzayını tam olarak temsil edebilen veri kümesini hazırlamak gerekmektedir.

Çözüm için hazırlanan veri, hem eğitim hem de başarı ölçümünde kullanıldığı için genellikle ikiye ayrılır.

Modeli oluştururken kullandığımız veri örnekleri, test ederken kullanılmaz. Bunun nasıl olması gerektiğini ilerde sizlere aktaracağım.

Veri seti en az 2'ye ayrılmalı;

1→ Eğitim seti

2→ Test seti

Eğitim seti ve test seti oranlı olmalı. 3 eğitim 1 test şeklinde genel bir yol izlenebilir. Veriler hiç bir yöntem olmadan eğitim ve test verisi diye ayrılmamalı. Rastgele örnekleme ile dağıtım yapılmalı

Veri setini modelde kullanmak için başka bir yöntem ise veri örnekleri 3'e bölünür;

1→ Eğitim seti

2→ Doğrulama seti

3→ Test seti

Doğrulama setinin amacı ezberlemenin önüne geçmektir. Eğitimin ne zaman sonlandırılması gerektiğini bizlere gösterir.

Hedef yapabildiğimiz kadar iterasyon olmamalı. Hatayı kabul edilebilir orana getirip eğitim bitirilmeli. Bu şekilde de ezberleme önlenir

Algoritmalar belli bir kolaylık sunar. Gerisi bizim modellememize kalmıştır. Mühendis modelin eksik kaldığı yerleri tamamlamalı. Örneğin yan yatmış bir 2 sayısı resmini modele tanıtmak için çevirmek gibi.

Değerli zamanınızı blog yazıma ayırdığınız için teşekkürler! 👏 Yorumlarınızı ve geri dönüşlerinizi bekliyor olacağım. 🙂

--

--