Python ile Yapay Zekâ (Makine Öğrenmesi) #2

LEOHUNTERA

Üye
31 Ara 2018
79
3

Serinin ilk konusuna gitmek için: https://www.turkhackteam.org/yapay-zeka/1811030-python-ile-yapay-zeka-temel-kavramlar-1-a.html

Giriş

Bu konuda, Python ile Yapay Zekâ serisinin ikinci konusu olan Makine Öğrenmesi konseptine değinerek, bu konsept kapsamında; Öğrenmenin gerçekte ne olduğu, Makinelerde Öğrenmenin nasıl gerçekleştiği, Makine Öğrenmesi Algoritması türleri, Denetimli ve Denetimsiz Makine Öğrenmesi Algoritmaları gibi konulara değineceğiz.

Öğrenme Nedir?

Öğrenme, bir kişinin deneme yanılma yöntemiyle, girdi olarak aldığı verilerden bilgi veya beceri kazanması anlamına gelir. İnsanlar da öğrenme olayı, çok basit bir olaydır. İnsanların dünyasında çok basit bir şekilde gerçekleşen (ya da tam olarak anlayamadığımız için bize o şekilde gelen) öğrenme, Makinelerin dünyasında biraz karmaşıklaşarak, çeşitli algoritmaların oluşmasını gerektiriyor. Şimdi, Öğrenmenin ne olduğunu anladıktan sonra, Makine Öğrenmesinin ne olduğuna değinerek, bu öğrenmenin ihtiyaç duyduğu Makine Öğrenmesi Algoritmalarına değinelim.

Makine Öğrenmesi Nedir?

Bilgisayar Bilimlerinde öğrenme kavramı, deneyimlerden ve mantıksal çıkarımlardan faydalanarak, Makinelere bazı veri modellerini tanıtmak olarak görülebilir. Makineler üzerindeki programlar, genel olarak bir veri setini, veri modellemesi yaparak, sistemini eğitmek için kullanır. Bu veri seti ile sistem eğitildikten (genel bir veri modeli oluşturduktan) sonraki aşamada gelen veriler, bu veri modeline bakarak yorumlanır, ve eğitilmiş sisteme göre çeşitli çıktılar verilir.

Olayı daha da basitleştirelim:


  • Makine Öğrenmesi uygulayacağımız bir sistem olduğunu düşünelim.
  • Bu sisteme, eğitim için, sonuçlarıyla birlikte, bir veri seti, sunulur.
  • Sistem, sonuçlarında mevcut olduğu bu veri setinden bir veri modeli (veri kalıbı) oluşturur.
  • Oluşturulan veri modeli, sisteme daha sonra sunulacak verilerin sonucunu bulmada kullanılarak, sonuca ulaşılmış olur.


Şimdilik fikir elde etmeniz için, örnek bir veri seti şu şekildedir:

%C3%96rnek+Veri+Seti.jpg


Bu veri seti örneğinde; yaş, gelir, öğrenci, kredi durumu gibi bilgiler, sisteme sunulacak bilgilerdir. Bu bilgiler sisteme sunulduktan sonra, Bilgisayar Alır? sorusuna, sistemin eğitilmesi sonucunda elde edilen veri modelinin etkisiyle evet veya hayır cevabı verilerek sonuca ulaşılmış olur.

Sistemi eğitmek için öncelikle, sisteme sunulacak bilgiler ve bu bilgilerin bilinen sonuçlarından oluşan belirli sayıda veri seti ile sistem eğitilmelidir. (Sistem, bu veriler aracılığıyla belirli bir matematiksel veri modeli oluşturarak, eğitim işlemini tamamlamış olur.)

Öğrenmenin ne olduğu ve Makine Öğrenmesi gibi konularda genel bir fikire ulaştığımıza göre, bundan sonraki aşamada Makine Öğrenmesi Türlerini inceleyerek, bazı Makine Öğrenmesi Algoritmalarına değinelim.

Makine Öğrenmesi Türleri

Makine Öğrenmesi Algoritmaları, bilgisayar öğrenmesi için gereklidir. Bu algoritmalar temelde yukarıda özetlediğimiz işlemleri yaparlar. Makine Öğrenmesi Algoritmaları Denetimli Makine Öğrenmesi Algoritmaları ve Denetimsiz Makine Öğrenmesi Algoritmaları olmak üzere ikiye ayrılır.

Denetimli Makine Öğrenmesi Algoritmaları

Denetimli Makine Öğrenmesi Algoritmaları, isminden de anlaşılabileceği gibi, öğrenmek için bir denetime ihtiyaç duyan algoritmalardır. Bu denetim, yukarıda bahsettiğimiz yapının aynısıdır. Bu tür algoritmalarda sisteme sonucu belirli olan veri setleri verilerek, sistem bu şekilde eğitilir. Bu eğitim sonucunda oluşan veri modeli, öğrenmiş sistemi ifade eder ve bu sistem sonraki aşamalarda kendisine sunulan verileri, bu model aracılığıyla yorumlayarak, en yakın sonuca ulaşmaya çalışır.

Şimdi biraz Matematiksel olarak konuşalım:

Kod:
f(x) = y

x => Sisteme sunulan ve sonuca ulaşmak için kullanılan veridir.
y => Sisteme sunulan verinin eğitilmiş veri modelinden geçirilmesi sonucu elde edilen sonuç verisidir.
f => Bu da sistemi eğittikten sonraki aşamada ortaya çıkan Matematiksel Veri Modelidir. (Daha doğru bir tabir ile Giriş verilerinden, Sonuca ulaşılmasını sağlayan, eğitilmiş haritalama fonksiyonu da diyebiliriz.)

Bu aşamada, yapmamız gereken ve dolayısıyla Denetimli Makine Öğrenmesi Algoritmalarından beklediğimiz şey, eğitim için sunulan verilerden, x giriş verileri için y sonucuna ulaşabileceğimiz en iyi f haritalama foksiyonunu tahmin etmektir.

Denetimli Makine Öğrenmesi Algoritmaları da, çıktının türü açısından, kendi içerisinde ikiye ayrılır:

Sınıflandırma: "Siyah - Beyaz", "Öğrenme - Öğrenmeme" gibi sayısal olmayan çıktılara ulaşmak istediğimizde, bu türden problemler Sınıflandırma Problemi olarak adlandırılır.
Regresyon: "Mesafe", "Kilogram" gibi sayısal değer çıktılarına ulaşmak istediğimizde, bu türden problemler Regresyon Problemi olarak adlandırılır.

Karar Ağacı, Rastgele Orman, Knn, Lojistik Regresyon algoritmaları, Denetimli Makine Öğrenmesi Algoritmalarına örnek olarak verilebilir. (Bu algoritmalara ilerleyen aşamalarda değinilecektir.)

Denetimsiz Makine Öğrenmesi Algoritmaları

Bu tür algoritmalar, adından da anlaşılabileceği gibi herhangi bir denetim gerektirmeyen yani, eğitim verisine ihtiyaç duymayan algoritmalardır. Bu tür algoritmalar da, verilerin kendi içlerindeki ilişkisellik ortaya çıkarılarak, sonuca ulaşılmaya çalışılır. Verilerin kendi aralarındaki kalıplar kalıplar, öğrenmeyi temsil eder.

Denetimsiz Makine Öğrenmesi Algoritmaları da kendi içerisinde ikiye ayrılır:

Kümeleme: Kümeleme problemlerinde, verilerin kendi içerisindeki doğal gruplamalar keşfedilmeye çalışılarak, kümeler oluşturulur. "Müşterileri Satın Alma Davranışına Göre Gruplama" problemi, kümeleme problemlerine örnek olarak verilebilir. Bu örnekte; "Satın Alma Davranışı" doğal gruplama özelliğini temsil eder ve Kümelemeleri mümkün hâle getirir.
İlişkisellik: Verilerin kendi aralarındaki ilişkiselliği keşfetmeye dayalıdır. Veriler için belirli kuralların çıkarılması ve bu kurallar üzerinde, ilişkiselliklerden faydalanılması amaçlanır. Örneğin; x ve y ürünlerinin her ikisini de alan müşteriler. Bu örnekte; x ürününün alınması bir kural olarak tanımlanıp, y ürününün alınmasıda diğer bir kural olarak tanımlanırsa; bu kurallar arasındaki ilişkisellik (x ve y nin her ikisinin de alınması) sonuca götürmüş olur.

Kümeleme için K-means ve İlişkisellik için de Apriori algoritması, Denetlenmemiş Makine Öğrenme Algoritmalarına örnektir.

Güçlendirilmiş Makine Öğrenme Algoritması

Bu Makine Öğrenme Algoritması, Sistemin, zorlukların olduğu bir ortama bırakılarak, bu ortamlarda yaptığı hatalardan öğrenmesi ve geçmiş deneyimlerinden faydalanarak en iyi bilgiye ulaşması amaçlanır. Aslında Sistem, Deneme - Yanılma yöntemine maruz bırakılarak, bu çevrimde öğrenmesi amaçlanır. Markov Karar Süreci ve Donatı Makine Öğrenme Algoritmaları, bu Algoritmaya örnek olarak verilebilir.

Bu konuda Makine Öğrenmesi Algoritmalarına değinerek, Öğrenmenin ne olduğu, Makine Öğrenmesi, Makine Öğrenmesi Algoritmaları gibi çeşitli konulara değinerek, genel bir fikir edinmiş olduk. Bundan sonraki konularda bu bilgilerimizi işin içerisine katarak, zevkli kısım olan kodlama aşamasına geçip örnekler üzerinden ilerleyeceğiz.

Temel Kavramların, Konseptlerin ve Mantıksal yapıların anlatıldığı ilk iki konuda anlamadığınız yerleri araştırarak ve sorular sorarak temelinizi sağlamlaştırın. Çünkü bu aşamadan sonraki konularda, bu temelimizin üzerinden ilerleyeceğiz.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.