Machine Learning & Deep Learning & Artificial Intelligence

Bu konularda işin matematiğine girmeyip sizi sıkmadan işinize çok yarayacağını düşündüğüm bir şekilde bu yazıyı yazmaya karar verdim.

İstatistiksel modellemenin ML ile olan ilgisi ve bu modellemelerin her birinin ML ile karşılaştırması ve makine öğreniminin gerçek hayattaki örnekleri ve toplumu tahmin edemeyeceğiniz şekillerde nasıl etkileyebildiğini size elimden geldiğince teknik , algoritma ve modelleri örnekleri de vererek anlatmaya çalışacağım. Aynı zamanda DL e temel olan ML i ve algoritmaları ve kullanımlarını öğrendikçe DL i de daha iyi anlayacaksınız. Neural network leri de biraz anlatacağım sizlere. Tüm bunlar sizi AI ya götürecek.

ML konusu size hem Deep Learning yani DL hem AI ve hem de Data Science konularında temel olup size inanılmaz yardımcı olacaktır.

Bu algoritma ve teknikler çok fazla matematik gerektirdiğinden bunları nasıl yaptığı yerine çok fazla matematik algoritmalara girmeden anlamanıza yardım edeceğim. Aksi halde yazı bir kitap olur , sıkılırsınız veya aklınızı yitirebilirsiniz. Metod ve algoritmalarda verdiğim hangi çözümlerde kullanılabilir örneklerine bakarak Python kodlamanızda ilgili kütüphane yi import edip direkt metodları kullanıp sonuçlara ulaşabilirsiniz. Bunu hangi matematik mantığıyla yaptığını da isterseniz internetten bulup öğrenebilirsiniz. Python öğrenin isterim. Bunun yanında Deep Learning için Google ın açık kaynak kodlu TensorFlow kütüphanesini kullanabilirsiniz.

ML ve Deep Learning farkı Deep kelimesinden geliyor. Bunun manası ML de tek katman var DL de ise birden çok katman var ve basitçe bunlar neural ağ oluşturup her bir katman kendi içinde ilgili algoritmayı çalıştırıp buna göre sonuç alıyor ve öğreniyor . DL ile ilgili önemli noktaları aşağıda bulabileceksiniz.

AI bilgisayarları akıllı yapmaya yani insanların kavramsal olarak yaptığı davranışları yapmasını sağlamaya odaklanır. Dil öğrenme, yaratıcılık vb.

Ml ise AI nın bir koludur ve AI nın istatistiksel kısmıdır. Binlerce ve milyonlarca örneğe bakarak bilgisayara bunları nasıl çözeceğini öğrenerek öğretir ve yeni vakalardaki benzer problemleri çözer.

DL ise ML in özel bir alanıdır ve gerçekten bilgisayarlar öğrenir ve KENDİSİ karar verir.

DL e en iyi örnek bir gezide bir binanın içinde ve etrafında çektiğiniz resimleri ilgili algoritma ile çalıştırırsanız size bir video verir ve o video da resimleri ve yolları etraftaki eşya vb tahmin ederek sanki video çekmişsiniz gibi görüp hayrete düşebilirsiniz.

Yani DL ML algoritmalarına göre daha derin seviyede bir otomasyon sağlar.

ML konusunda değişik algoritma ve modellerden :

Popüler algoritmalar: Regression, Classification ,Clustering,Association

Tavsiye veya Öneri sistemleri (Recommender Systems) : Content-Based ve Collaborative Filtering

Popular modeller: Train/Test Split, Gradient Descent, and Mean Squared Error(Tümü Regression da kullanılan evaluation metrikleridir. Burada bahsedilmeyecektir.)

Konularında size biraz bilgi vereceğim.

Deep Learning konusu içinde de aynen ML de olduğu gibi regression ve Unsupervised Learning var. Buna ilaveten DL içinde Convolutional Network ler (Feature learning – Özellik öğrenme), Recurrent Neural Network var.

CNN –Convolutional neural Network lerin amacı görsel dünya yı daha iyi tanıyacak ve tanımayı desteklemek için iyi bir ifade-temsil oluşturmaktır. Bir resimden objeleri ayırt edebilmek ve kategorsel olarak sınıflandırabilmek hatta yarım bir sandalyeyi bile tanıyabilmek vb. Çok katmanlı olarak çalışır. Her katmanda bir iş yapılır. Veriyi almak, primitive özelliklere ayırmak ve sonra bu parçaları birleştirmek vb, Örneğin bir şehir resmi üzerinde önce yön köşeleri ve şekiller ayrıştırılır sonra pencere kapı ve katlar ayrıştırılır ve tekrar bina birleştirilir .. Tanıma böyle olur.

RNN- Recurrent Neural Network çıkış noktası sırasal-sequential dediğimiz bir verinin bir önceki veriye bağlı olduğu yapılarda geleneksel neural network ler çalışmaz. O nedenle RNN ortaya çıkmış ve çok iyi bir şekilde çalışır. RNN de sadece bir katman olmasına rağmen o ana kadar işlenen verilerin durum ve konteks ini tutar ve hatırlar. (Zaten geleneksel neural network lerde bu olmadığı için problem olur.)

İşte bu durum bilgisi her yeni input geldiğinde recur yani kendisini bu durum bilgisi ile çağırır. O nedenle recurrent deniyor. Örneğin bir müzik kompozisyonu yapmak için MIDI dosyalarını dinletip sonunda ritim ve melodi yi öğretip ile yeni MIDI dosyası oluşturabilirsiniz. Mükemmel bir model değildir. Network ün her anında durum verisini tutması da bir sorundur. Parametrelerdeki değişikliklere de çok hassastır.

Ses tanıma , resim caption lama, çeviri gibi dil modelleme de kullanılır.

RNN konusunda yüksek ölçekte verilerde problem olur. (State ve context i tuttuğu için) Bunu aşmak için LSTM- Long Short Term Memory metodu kullanılır. Çalışan algoritmanın ve yazılımın akışta kullandığı hafıza ile tandem şeklinde tüm bilgisayarın hafızası kullanılır. Saklanacak veri state ve context vb veriler normal akışın hafızası yerine makine hafızası kullanılarak saklanır. Böylece geniş ölçekli veriler de sorun olmaz.

Unsupervised Learning içinde Restricted Boltzmann Machine ve o konu içinde iş yapan Restrictive Boltzman Machine ile recommend (öneri) sistemi konusu var. Ve DL de en son autoencoder konusu var.

Autoencoder unsupervised öğrenme yöntemidir. Neural network tiplerinden biri olarak unsupervised makine öğrenimi dir. Autoassociater veya Diabolo Network ü olarak da bilinir. Girilen bir input u tekrar oluşturmak için kullanılan yapay neural network dür. Restrictive Boltzman Machine inden farkı RBM stochastic yaklaşım kullanır. Autoencoder deterministik dir. Unsupervised öğrenme olduğundan bir veri setinde anahtar özellikleri tespit ederek patternleri bulur. Duygu analizi, resimlerin tekrar oluşturulması ve boyut düşürmede çok iyi kullanılır.

Şimdi de kısa kısa ML içindeki algoritmaları anlatalım. Bu algoritmaların matematiksel kısımlarına girmeden hangi durumda en azından hangi algoritma yı kullanabileceğinizi anlatmak isterim.

Regression ki aslında estimation yani tahmin de diyebiliriz bu işleme. Ne yapar: Elimizde bir veri seti var ve kolonlardan oluşmuş. Kolonlardan birinde örneğin o satırdaki aracın CO2 (karbondioksit) salımı var. Diğer kolonlarda motor hacmi, silindir sayısı vb var. Merak ediyoruz acaba yeni bir araç elimizde varsa ve CO2 salınımı hariç tüm veriler varsa biz diğer veri setinden tahmin yapabilir miyiz? İşte burada Regression devreye girer. Regression kullanılabilmesi için tahmin edilecek kolonun değerinin olduğu verilerin sürekli olması lazım. Ne demek bu işte burada araçların her biri farklı CO2 lere sahip olabilir demek. Gruplandırma , evet veya hayır, doğru veya yanlış vb değerlerden ziyade sürekli veri olmalı.

Classification tekniğinde ise kategori veya sınıflanmasına göre bir vakanın sonucunu öğreniriz. Örneğin bir ben var vücudunuzda bunun kötü ya da iyi huylu olup olmadığını tahmin etme bu algoritma ile yapılır. Veya örneğin digiturk müşterilerinin içinde verilere bakarak herhangi bir müşterinin digiturk ü terkedip gitmesini tahmin edebiliriz bu algoritma ile.

Classification algoritması (supervised dır) . ve bir örnek daha vermek gerekirse bir banka geri ödenmeyebilecek kredileri bununla tahmin edebilir. Bu teknik ve algoritma aynı zamanda email filtreleme, ses tanıma , el yazısı tanıma, bio-metric tanıma, dokuman sınıflama vb işlerde kullanılabilir.

Classification algoritmalarının bazıları ve hangi probleminizi çözebileceğini anlatalım:

 K-Nearest Neighbors,

Örneğin digiturk servis kullanım numune verilerine bakarak müşteri verilerini 4 kategorik gruba ayırırsa ve demografik veri yi kullanarak grup uyeliklerini tahmin edebilirse ileriye yönelik olarak müşterilere teklif verebilir. İşte bu algoritma bu işlere yarar.

Decision Trees ,

Örneğin siz bir tıp araştırmacısısınız ve aynı hastalığa sahip hastaların verileri elinizde var. Bu hastaların tedavisinde her bir hasta 2 ilaçtan sadece birine cevap verdi. İşinizin bir parçası olarak gelecekte benzer hastalıktan gelen hastalara hangi ilacı vereceğinizin bir modelini oluşturmanız gerekirse işte bu algoritma harika uygulanır.

Support Vector Machines,

SVM vakaları bir ayıraç bularak sınıflara ayırmayı sağlar. Örneğin elinizde kanser riski olabilecek binlerce insandan aldığınız insan hücresi veri örnekleri var. Size gelen başka bir örneği analiz edip baktığınızda bir çoğunun karakteristik farklılıklarının kötü huylu veya iyi huylu arasında oldukça farklılık gösterdiğini görüyorsunuz. İşte bu önceki verileri dikkate alıp bir model oluşturmak istediğinizde bu algoritma en uygunu. Size iyi veya kötü huylu olup olmadığının erken tanısını koyabilir. SVM kullanarak modelinizi verilerle çalıştırabilirsiniz. Sentiment yani duygu analizleri ve spam tespitini de bu algoritma ile yapabilirsiniz.

Logistic Regression..

Bazı binary sınıflama problemleri olduğunda Linear Regression yerine bu kullanılmalı.

Kayıtları sınıflandırmak için istatistiksel ML tekniklerinden biridir. Bir şirketin abonelerine ait elinizde veriler var. Bu verilerde mevcut ve eski yani ayrılan müşterilerin kayıtları da var. Bu teknik ve algoritma ile herhangi bir müşterinin durumunu analiz edip ayrılıp ayrılmayacağını tahmin etmeniz mümkün. Linear regression ile benzerdir. Farkı Linear regression sürekli olan eski verilere bakıp bu verilerden tahmin edilecek olan sayısal verileri tahmin eder halbuki Logistic regression tahmini binary dir. Yani ye veya No, True veya False vb. Yani tahmin edilecek kolon değeri açısından bunu ifade ediyorum.

Clustering tekniği ile örneğin benzer vakaların küme grupları varsa ki örneğin benzer hastalar buna örnek veya bankacılıkta müşterilerin segmentasyonu için kullanabiliriz. Yani kısaca verilerin yapısını bulma bir nevi özetleme yaklaşımı.

Clustering Algoritmalarından bazıları şunlar:

K-Means Clustering ,

Unsupervised yöntemdir. Yani etiketlenmemiş verilerle çalışır. Benzer karakteristiklere sahip müşteri verilerini segmentasyonuna yani gruplandırılmasını sağlar. İçinde değişik algoritmalar vardır kullanabileceğiniz.

Hierarchical Clustering ,

Örneğin 100 değişik soydan 1500 adet köpeğe ait genetic bilgiler var elinizde. Ayrıca dünyanın değişik bölgelerinden 250 tane vahşi kurt a ait genetik bilgilerde var. Moleküler genetik tekniklerini kullanarak bunlardan 55.000 adet genetik işaret verisi bulduklarını farzedelim. Genetik yapılarındaki benzerlikler açısından bunları kümelere gruplayabilirsiniz. Yani kümedeki her nodun altındaki bağları da görebilirsiniz.

Association tekniği de sık tekrarlanan bir eşya veya madde ile ilgili veya bir olay meydana gelmesi ile ilgili verilerle ilgili tekniktir. Örneğin belli bir müşterinin aynı bakkaldan aynı maddeleri alma sıklığını bulmak ya da tahmin etme buna giriyor.

Anomaly Detection tekniği;anormal ve olağan dışı durumlar için kullanılıyor. Örneğin kredi kartı sahteciliğini tespit için.

Sequence Mining ise bir sonraki olayı (event) tahmin etme. Örneğin bir web sitesi üzerinde kullanıcının neyi seçeceğini tahmin etme.

Dimension Reduction ; Verinin büyüklüğünü azaltmak için kullanılır. Veri setindeki özelliklerin sayısının düşürülmesini sağlar. Unsupervised tekniktir. (Toplanan veriler çok fazla. Gözlem denilen veri çok ve bazıları benzer vb. Toplanan verilerin boyutunu düşürme ile Cluster analizi yapabilirsin. Yapının – yani kolonların- boyutunu düşürürsen Principal Component analizleri ve exploratory factor analizlerini kullanırsınız.)

Recommendation Systems ise kullanıcının tercihlerine bakarak benzer özelliklere sahip örneğin kitap veya filmleri tahmin etmeye yarar.

Şimdi supervised ve unsupervised learning-öğrenme kavramlarına bakalım. Supervisedöğrenme; Gözlemleyerek bir proje, işlem veya aktiviteyi yönlendirmek dir. Burada bir insanı supervise etmeyeceğiz bunun yerine ML modeline bunu uygulayıp sınıflama bölgeleri oluşturabilmesini sağlayacağız. Bunu modeli öğreterek yapacağız. Bu yöntemde modeli labeled yani etiketlenmiş verileri verip eğiterek öğretiriz. Supervised tekniğin 2 tipi vardır: Classification ve Regression ALGORITMALARI. Classification farklı etiket veya kategoriye sahip olanı tahmin etme işlemidir. Regression ise sürekli verilerde yani sınıflandırma yapılamayacak verilerde tahmin etme işlemini yapar.

Unsupervised model ise; Biz modeli yönetmiyoruz kendisi karar veriyor. Model çalışıyor ve bilgileri kendisi keşfediyor ve çalışıyor. Bu yöntem diğerinden daha zor algoritmalara sahiptir. Çünkü çok az veriye sahibiz ve beklenen sonuçları da bilmiyoruz. Dimension reduction, Density estimation, Market basket analysis ve Clustering unsupervised ML TEKNİKLERİNDEN en bilinenleridir. Örneğin dimension reduction tekrar edilen verilerden (features yani özelliklerden) kurtularak sınıflandırma yapabilmede çok önemli rol oynar. Market basket analysis BELLI grup mallardan satın alırsanız buyuk ihtimalle diğer grup mallardan da alışveriş yaparsınız model teorisinin algoritmasını ifade eder. Density estimation ise sıklıkla bir veri içinde belli bir yapıyı bulmak için kullanılır. Clustering ise unsupervised ML içinde en popüler olan tekniktir. Benzer veri noktaları veya nesneleri gruplamak için kullanılır. Cluster analizi örneğin bir bankanın belli karakterlere sahip müşterilerini segmentleme veya bir kişinin en sevdiği müzik leri gruplandırmaya imkan verir. Kısaca Clustering veri yapısını keşfetmeye, özetlemeye ve anormallikleri saptamayı sağlar.

Unsupervised öğrenmede makine bizim için sonuçları oluşturduğundan daha az kontrol edilebilir bir ortam vardır.

Regression ın 2 tipi vardır. Simple Regression ve Multiple Regression. Basit olarak şöyle anlatayım: Simple da elimizde 2 kolonluk veri var. Birinde motor hacmi ve karşısında CO2 emisyonu. Bu verilere örneğin motor hacmi yeni bir motor girdik ve CO2 emisyonunu tahmin etmek istersek bunu simple regression ile yaparız.

Multiple Regression da ise yine kısaca elimizde daha detaylı veriler var. 3 kolon bilgi var. Her satırdaki veride bir aracın motor hacmi, silindir sayısı ve CO2 emisyonu var. Burada Multiple regression algoritması kullanılır ve önceki kayıtların hepsinin 3 kolonuna bakılıp bize verilen motor hacmi ve silindir sayısının CO2 emisyonunu tahmin ettiririz. Bu kadar basit.

Regression algoritmaları ile satış tahminleri, memnuniyet analizleri, fiyat tahminleri ve hatta cinsiyet-meslek-yaş-çalışma saati-eğitim-deneyim bilgilerine bakarak kişilerin kazançlarını da tahmin edebilen sonuçları alabiliriz.

Recommender sistemlere gelirsek. Bu sistemler insanların alışkanlık desen verilerini alıp bunları işleyerek daha başka ne isteyebileceklerini veya daha farklı neleden hoşlandıklarını tahmin eder. NetFlix, amazon, facebook, twitter , linkedin bu algoritmaları kullanıyor.

Bu sistemlerin avantajı daha geniş bir açıdan bakar, urunlerin devamlı kullanımı veya satın alınmasının ihtimali ve daha fazla potansiyel kazanç ile müşteriler için daha güvenli bir servis sunar.

Bu sistemlerin 2 çeşidi var. Content Based ve Collaborative Filtering.

Content Based olanı şöyle anlatabiliriz. Müşteri şunu derse : daha önce hoşlandıklarımın aynısından bana daha fazla göster. Content Based sistemler yani algoritmalar bunu çözüp kullanıcının açısından bu istediklerini paylaşmanızı sağlar.

Collaborative Filtering de ise müşteri şunu derse: benim yakınımdakilerin arasında popüler olanları bana göster çünkü bende beğenebilirim. İşte bu sistem benzer grup kullanıcılarını bulur ve onlar arasında benzer tatları beğenenleri tespit edip onlara tavsiyeleri verir.

Recommender sistemleri 2 değişik biçimde uygulayabilirsiniz. Memory based ve Model BasedMemory based olanda tum veri setini kullanır ve tavsiyeler oluşturursunuz. Model Based da ise kullanıcıların tercihlerinden bir model oluşturur ve kullanırsınız. Modelleri oluştururken ML tekniklerinden regression, classification veya clustering kullanılabilir.

Biraz sıkıldınız biliyorum. Zaten her metod, algoritma veya teknikte örnekleri de verdim ki bir gün ML & DL & AI kullanmaya karar verirseniz size kolaylık olsun.

Sağlıcakla kalın..

Selcuk Celik

İlk yorum yapan olun

Bir Cevap Yazın