Makine Öğrenmesi

5 yazı görüntüleniyor - 1 ile 5 arası (toplam 5)
  • Yazar
    Yazılar
  • #445
    yusuf
    Anahtar yönetici
    Up
    1
    Down
    ::

    MAKİNE ÖĞRENMESİ NEDİR ?
    Muhtemelen bilmeden günde onlarca kez kullanıyorsunuz. Google veya Bing’de her web araması yaptığınızda, makine öğrenmesi yazılımları hangi sayfaları nasıl sıralayacağını anlar ve bu çok işe yarar. Facebook veya Apple’ın fotoğraf uygulaması resimlerinizdeki arkadaşlarınızı tanıdığında, bu da makine öğrenmesidir. E-postanızı her okuduğunuzda bir spam filtresi sizi tonlarca spam arasında geçiş yapmaktan kurtarır, bunun nedeni bilgisayarınızın spam’i spam olmayan e-postalardan ayırt etmeyi öğrenmesidir. Yani, bu da makine öğrenimidir.

    EĞİTİM İÇERİĞİ HAKKINDA
    Bu eğitimimizi kalitesiyle ön plana çıkmış open-course kurslarından biri olan Coursera Machine Learning kursundan takip edeceğiz.
    https://www.coursera.org/learn/machine-learning?

    Bu kursun eğitmeni Andrew Ng Stanford Üniversitesi Elektrik Mühendisliği ve Bilgisayar Bilimleri’nde profesördür. Stanford Yapay Zeka Laboratuvarı’nda müdürlük yapmaktadır. Ayrıca Daphne Koller ile birlikte çevrimiçi eğitim kuruluşu olan Coursera’nın kurucu ortağıdır. Yani Makine Öğrenmesinde dünyada alanında en uzman olan kişilerden birisidir. Bu eğitimi aldıktan sonra Makine Öğrenmesiyle alakalı yeterli bilgilere sahip olduğunuzu söyleyebilirsiniz.

    Bu müfredattaki Kod Görevleri Courseradakilerden farklı olacaktır. Çünkü Coursera’da Octave kullanılmaktadır, buna gerek yoktur. Bu müfredatta Python kullanılacaktır. Dolayısıyla Coursera’daki quiz’leri yapma zorunluluğu yoktur. Ayrıca Courseranın sizin için planladığı zamanlamada ilerlemenize gerek yoktur ve bu verimli olmayacaktır. Sezon başlamadan videoları göremediğiniz için beklemenize gerek yoktur, bug’u vardır. Lütfen bilen birisine danışınız.

    Bu müfredatta görev kodları Python kodlama dili ile yazılacağından, Python Dilini ve Python’daki (Numpy,Pandas,Matplotlib) bazı kütüphaneleri bilmek gerekmektedir.
    Bunun için forumumuzda bulunan Python ve Python ile Veri Bilimi eğitim içeriklerini tamamlamanız önemle tavsiye edilmektedir.

    Courseradaki derslerin Türkçe altyazısı da bulunmaktadır. Ancak İngilizce altyazı ile izlenmesi tavsiye edilir

    1. HAFTA
    – Makine Öğrenmesi Nedir ?
    – Supervised ve Unsupervised Learning
    – Lineer Regresion : Makine Öğrenmesi Algoritmalarından ilkidir.
    – Cost Function : Tüm Makine Öğrenmesi Algoritmalarında var olan bir fonksiyondur. Ancak burada anlatım kolaylığı açısından Lineer Regresyon Algoritması üzerinde anlatılmıştır.
    – Gradient Descent : Tüm Makine Öğrenmesi Algoritmalarında kullanılabilen ancak alternatifleri olan ve kullanılan bir optimizasyon işlemidir. Burada Cost Fonksiyonu gibi Lineer Regression üzerinden anlatılmıştır ancak diğer makine öğrenmesi algoritmalarında da kullanılabilmektedir.
    – Lineer Algebra (Lineer Cebir, Matrix vs bilmeyenler izlemelidirler. Bilenler atlayabilir) : Verilerin vektörel hale getirilmesi ve matris çarpımı Makine Öğrenmesinde önemli yer tutar. Verilen vektörel hale getirilmesinden kasıt, sayısal rakamların bir tabloya yerleştirilmesi gibidir. Matris çarpımından kasıt da verilerin öğrenilmekte olan katsayılar (weights) ile çarpılmasıdır.

    Görev Kodu : Python Sklearn Kütüphanesini kullanarak covid_19_data_tr.csv dosyası içerisindeki #Confirmed sayılarını gün ile lineer regression ediniz. 75 gün sonraki Confirmed Cases sayısını tespit ediniz.

    2. HAFTA
    – Octave (Kod Görevlerinde Python kullanacağımızdan, atlanılmalıdır. Yine de isteyen bakabilir. Matlab benzeri bir programdır.)
    – Multiple Features : Lineer regresyonun birden fazla feature ile yapılmasıdır.
    – Polynomial Regression : Regresyon ile lineer bir fonksiyon oluşturmak yerine polinom fonksiyonu elde etmektir.
    – Normal Equation : Gradient Descent optimizasyon işlemine alternatif bir işlemdir. Kullanım yaygınlığı düşüktür. Birçok makine öğrenme algoritması ile de uyumlu değildir.

    Görev Kodu 1 : Python Sklearn Kütüphanesini kullanarak covid_19_data_tr.csv dosyası içerisindeki #Confirmed sayılarını gün ile polynomial regression ediniz. Hangi polinim fonksiyonu kullanacağınızı Sağlıkçıların öngörülerine göre (peak,plato mevuzu) belirleyiniz. 75 gün sonraki Confirmed Cases sayısını tespit ediniz.
    Görev Kodu 2 : Python Sklearn Kütüphanesini kullanarak car_fuel_consumption.csv dosyası içerisindeki distance, speed, temp_outside inputlarını consume outputu ile multiple regression yapınız. Sadece E10 gas_type olan araçlar ile yapınız, diğerlerni droplayınız. Sonuçta, distance,speed, temp_outside inputları verilince consume outpunu verecek bir fonksiyon, model oluşturunuz.

    3. HAFTA
    – Classification : Şimdiye kadar Regresyon algoritmaları gördük. Yani elde ettiğimiz outputlar sayılardı. Classification algoritmaları ise karar vermeye yarar. İnput olak girilen veriler ile bir durumun 0 ya da 1 olup olmadığına karar verilmeye çalışılır.
    – Logistic Regression : En önemli ve temel Classification algoritması Logistic Regression’dur. İsminin Regresyon olmasına bakılmamalıdır, kesinlikle bir regresyon algoritması değildir ancak adı bir kere böyle çıktığından böyle kullanılmaktadır. Logistic Regression aynı zamanda Deep Learningte göreceğimiz Sinir Ağlarının ( Neural Network) temelidir, yapıtaşıdır.

    – Multiclass (One-vs oll Method) Logistic Regressionda girilen inputlar ile birden çok durum hakkında nasıl karar verilir o anlatılmaktadır.
    Görev Kodu 1 : Dron resimlerinden (bu dron resimleri başka bir şey içermemelidir yani görüntünün çoğunu dron oluşturmalıdır) ve dron olmayan resimlerinden (kuş,uçak vb nesneler, manzaralar) oluşan bir dataset toplayın. Dron resimleri ile dron olmayanların oran eşit olsa iyi olabilir, bu konuda net bir şey söyleyemeyiz.
    Bu datasetteki fotoğrafları grayscale’ye çevirip Pythonda numpy kütüphanesi ile vektörel hale getirin. Sklearn kütüphanesi ile Logisctic regression yapın.
    Bu sırada datasetinizin bir kısmını traininge vermeyin, ayırın bunun için Sklearnde test-training oluşturma fonksiyonları vardır onlara bakınız. Logistic regressionda elde ettiğiniz modeli Test dataseti üzerinde yine sklearn kütüphanesinde bir fonksiyon ile değerlendirin. Modeliniz Test datasetinde dron olan ve olmayan görselleri doğru tespit edebildi mi? Hangi oranda doğru değerlendirebildi ?

    4. HAFTA
    Non-Linear Hypothesis : Bilindiği üzere logistic regression sonuç olarak decisin boundaryler oluşturmaktadır. Birçok logistic regresyon probleminde bu decision boundarylerin non-linear olması gerekmektedir. Bunun için Sinir Ağlarının (Neural Networks) daha işlevsel çalışabileceği düşünülmüştür.
    Neural Networks : Sinir Ağları (Neural Networks ) Deep Learning’tir. Deep Learning Sinir Ağlarından oluşmaktadır. O yüzden bu konuya Deep Learninge geçildiği zaman fazlasıyla ve ayrıntılarıyla yer verilecektir
    Yalnız Neural Networklerin hangi yapıda olacağı yani kaç tane hidden layer ve kaç tane hidden unit içereceği bazı mantıki çıkarımlar olsa da genellikle deneme yanılma yöntemiyle tespit edilmektedir. Bu size ilginç gelebilir ama gerçekten öyle yapılmaktadır. O yüzden bir problem hakkında en optimum Neural Network yapısı nedir bunu söylemek mümkün değildir. Deneye yanıla işimizi göreceği seviyeye getirilir. Mantıki çıkarım olarak şunlar söylenebilir : 1 layer ile sürekli (continious) non-linear decisin boundary’ler üretilebilir. 2 layer ile sürekli olmayan (non-continuos) decision boundaryler üretilebilir. 2den fazlasını kullanmak için teorik bir neden yoktur. Ancak mesela resimlerde nesne tanımada (object detection) 10-20 layer kullanmanın çok daha başarılı olduğu kanıtlanmıştır.
    Bu arada Courseradaki anlatımda çok fazla sembol kullanılmıştır, bu kafaya çok takılmamalıdır.

    5. HAFTA
    Backpropagation : Neural Networklerdeki Backpropagation sistemi anlatılmaktadır. Logistic Regressiondaki Backpropagationdan pek bir farkı yoktur, sadece sırayla yapılmaktadır.
    Gradient Checking : Bu arada Neural Network’ü eliyle kodlayacaklar için bir kodun düzgün çalışıp çalışmadığına dair bir kontrol etme taktiği verilmiştir. Ancak biz kütüphaneleri kullanarak kodları yazacağımızdan bunu uygulamayacağız.
    Random Inıtialization : Başlatılan Weightler birbirisinin aynı olmamalıdır. O yüzden rastgele başlatılırlar.

    Görev Kodu 1 : Python Sklearn kütüphanesini kullanarak 3. HAFTADA yaptığınız görev kodunu kendi oluşturacağınız sırasıyla 1 ve 2 ara layerin bulunduğu Neural Network yapılarında yazınız. Dron tespit etmede başarı oranda bir değişim gözlemlendi mi, gözlemlendiyse layer sayısının etkisi ne oldu, değerlendiriniz.
    NOT : Neural network yapısında layer sayısına bağlı olarak data sayısı ve özelliklerinin logistic regressiona göre daha önemli olduğuna dikkat ediniz.

    6. HAFTA
    KONULAR :
    Train/Validation/Test Dataları : Buradaki Validation setini biraz daha opsiyonel görmekteyiz, biz şimdiye kadar sadece train ve test datasetleri kullandık. Train dataseti traininge verilecek dataları içerir, test dataseti training sonucu oluşan modelin training datasını öğrenip öğrenemediğini, genelleştirmeyi başarıp başaramadığını gösterir. Training/Test dataset oranlarının ne olması gerektiği datasetin özellikleri, sayısına göre değişiklik gösterir.
    Bias,Varyans,Overfit,Underfit : Training ve Test Cost değerlerini kıyaslamasına göre kullanılan kavramlardır. Başarılı bir model oluşturmak için çok önemli kavramlardır.

    Görev Kodu 1: 5. Haftada gerçekleştirilen training ve test işlemlerinin iteration sayısına bağlı Cost değeri grafiklerini çıkarınız. Bu grafiklerin underfit,overfit durumlarını değerlendiriniz.

    CSV Dosyaları için Tıklayınız :
    https://drive.google.com/drive/folders/1Rpa8tXrkM5_QrvcFwysez_0luc6JBdId?usp=sharing

    7. HAFTA
    7. haftadaki konular biraz ayrıntıdır.

    8. HAFTA
    KONULAR :
    Unsupervised Learning : Kursun başında Makine öğrnmesi algoritmaları Supervised ve unsupervised learning algoritmaları olmak üzere ikiye ayrılmıştı. Artık Supervised Learning kısmını tamamlamış bulunuyoruz ve Unsupervised Learning algoritmalarına geçiş yapıyoruz. Unsupervised Learning Algoritmaları mantık ve işleyiş olarak supervised learningden oldukça farklı çalışan algoritmalardır. Derin öğrenme ile pek ilgisi yoktur ancak kullanımları oldukça yaygın olduğundan bilinmelidir.

    K-Means : Göreceğimiz ilk Unsupervised Learning algoritmasıdır. Bu algoritmanın kullanım alanı çok geniştir ve temel Unsupervised Learning algoritmalarındandır. Algoritma mantığı oldukça basittir. İyi bir şekilde öğrenilmelidir.

    PCA : Kullanım alanı daha dar bir algoritmadır, yine de faydalı olabilecek zor olmayan bir algoritmadır. O yüzden bilinmesi güzel olur.

    Görev Kodu : Eni, Boyu 400 metre olacak şekilde Merkezi (0,0) olan iki boyutlu bir mekan (şehir) düşünün. Az önce bu şehirde büyük bir afet oldu (deprem,sel, çığ vs) ve bu şehirde 40 afetzede var. Bu afetzedelerin konumlarını random kütüphanesini kullanarak ve uniform distribution yaparak türetin.

    Bu afetzedeler telefon ile 112 aradı ve kurtarılmalarını istedi. AFAD bu afetzedelerin konumlarını baz istasyonları sayesinde öğrendi ve afetzedeleri konumlarına göre K-means algortimasına göre kümelendirerek 6 ekibi kurtarma işi için görevlendirdi.
    Her bir kümede hangi yaralıların olduğunu (konumlarını) belirtiniz, bir şekilde görselleştiriniz.

    9. HAFTA
    KONULAR :
    Gaussian Distrubution : 2. sınıfta Probability dersinde görülecek olan bu konu, olasılığın temel konularındadır. Esasen konu demek de doğru değil, Gaussian distribution bir olasılık fonksiyonudur. Bu fonksiyonun matematiksel açılımı değil, şekli önemlidir. Youtubeda gaussian distribution ile alakalı videolar izlemenizi tavsiye ederim.
    Anomaly Detection :

    GÖREV KODU : random kütüphanesi gaussian distrubtion kullanarak 100 sayı üretin. Bu sayıların ortalamalarını, varyanslarını manuel olarak hesaplayacak bir kod geliştirin ve gaussian distribution fonksiyonuna parametre olarak girdiğiniz ortalama ve varyans değerleriyle karşılaştırın.

    10. HAFTA
    Stochastic Gradient Descent : Derin öğrenmede lazım olacağından mutlaka izlenmelidir.
    Online Learning : Youtube vs’deki önerilerin nasıl çalışığı ile alakalı
    Map Reduce and Data Parallelism

    11. HAFTA
    OCR : Görüntülerdeki yazıyı okuyup dijitale çeviren algoritmadır. Cam-Scannerda da bu algoritma var belki dikkatinizi çekmiştir. Bu algoritmanın işleyişinin gözlemlenmesi Yapay Zeka kullanarak görüntü işleme yapma açısından fayda sağlayacaktır.

    GÖREV KODU : OCR algoritmasını Cam-Scanner’dan veya internetten bulup bilgisayarınıza kurarak deneyin. İyi çalışıp çalışmadığını buraya, foruma yazın.

    #449
    imamim
    Katılımcı
    Up
    0
    Down
    ::

    1.Hafta
    Linear Algebra Review | Inverse And Transpose

    Bizi fazla ilgilendirmiyor olabilir ama matrislerin tersi nasıl bulunuyor, genel mantığı nedir merak ediyorum.
    Bir de videoda bahsedilen matrislerin tersinin olup ya da olmaması durumuyla Transpose işleminin Makine Öğrenmesi Algoritmalarında önemli midir ?
    Ayrıca henüz Lineer Cebir dersi görmemiş biri olarak Transpose işleminin nasıl yapıldığını çözemedim. Ufak bir bilgilendirmeye ihtiyacım olabilir.

    #456
    yusuf
    Anahtar yönetici
    Up
    0
    Down
    ::

    Matrislerin Tersi algoritmik yöntemler ile bulunmaktadır, şu linkten matrislerin tersini bulmak ile alakalı bir yöntemi öğrenebilirsiniz:
    https://youtu.be/LJ3WzHna3SM

    Makine Öğrenmesinde matrislerin tersi kullanılarak işlemler yapılmamaktadır. Transpoz işlemi kullanılmaktadır. O da eldeki bir matrisin matris çarpımı sırasında uygun hale getirilmesinde (yataysa dikey, dikeyse yatay) genellikle kullanılmaktadır. İhtiyaç olduğunda zaten kolaylıkla fark edilecektir.

    Transpoz işlemi oldukça basittir. Aşağıdaki görselde görüldüğü üzere satırlar sütun haline getirilir.

    #465
    imamim
    Katılımcı
    Up
    0
    Down
    ::

    3.Hafta Ödevi|Drone Resimleriyle Logistic Regression Yapmak

    Toplayacağımız dataset’i Pozitif-Train, Negatif-Train ve Pozitif-Test, Negatif-Test olacak şekilde topluyorum. Yani içinde sadece Drone olan ve içinde Drone olmayan diye ayırt edebiliriz.

    Logistic Regression yaparken piksel değerleri olmak üzere sadece 1 tane Feature ile mi Regresyon yapıyoruz ?
    Eğer böyleyse Drone’un renklerine göre ve dışardan gözüken her türlü şey feature değerini değiştirecektir. Dataset’i buna göre ayarlasak da pek verimli bir yol gibi durmamakta.

    Feature sayısını artırmak için ilerde Edge,Keypoint tespiti gibi işlemler mi uygulanacak ?

    Hayırlı günler hocam!

    #467
    yusuf
    Anahtar yönetici
    Up
    0
    Down
    ::

    Evet bir tane feature ile logistic regresyon yapılacaktır. ve dronun renklerine göre her şey feature değerini değiştirecektir. Yalnız resimleri gray scale çevirmemiz modelin kafasını daha az karıştıracaktır, şekil biraz daha ön plana çıkacaktır.

    Zaten Dron tespitinde Logistic Regresyon verimli bir yöntem değildir. Nöral ağların kullanılması çok daha verimli sonuçlar sağlamaktadır. Biz burada logistic regresyonun mantığını anlamak üzere bu örneği yapıyoruz. Yoksa maksadımız verimli bir şekilde resimlerde dron tespiti yapacak bir model üretmek değildir.

5 yazı görüntüleniyor - 1 ile 5 arası (toplam 5)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.