Derin Öğrenme

Anasayfa Forumlar Eğitimler Derin Öğrenme

4 yazı görüntüleniyor - 1 ile 4 arası (toplam 4)
  • Yazar
    Yazılar
  • #694
    yusuf
    Mentor
    Up
    0
    Down

    Derin öğrenme, makine öğrenmesinde bahsi geçen nöral ağların gelişmiş şeklidir. Dolayısıyla Makine öğrenmesindeki algoritmaları bir küme olarak düşünülürse Derin öğrenme algoritmalaır bu kümenin bir alt kümesi olarak düşünülebilir.

    Bu müfredatta da Andrew NG’nin Coursera için hazırladığı eğitim içerikleri takip edilmeye devam edilecektir. Yalnız Derin Öğrenme kursları Coursera’da ücretli olduğundan,videolar Youtube üzerinden izlenecektir.

    Andrew NG’nin 5 kurstan oluşan Derin öğrenme içeriğinin ilk 3 kısmı Derin öğrenmedeki konulara hakim olmaya yöneliktir. Son iki kurstan Convolutional Neural Networks kursu görüntü işlemeye, diğer kurs da Doğal Dil İşlemeye yönelik olarak özelleşmiştir.

    Bu müfredatta Andrew NG’nin videoları izlenip, Pytorch kütüphanesi ile görev kodları yazılarak videolarda öğrenilen bilgilerin pekişmesi sağlanacaktır. Videoların yoğun bir içeriği olduğundan ve konular fazlasıyla dallanıp budaklandığından bu videolardaki bilgilerin ezberlenmesi haybiye bir çaba olacaktır. (Örneğin bir videoda Adam Optimizer metodu anlatılmaktadır. Bu videodan elde edilmesi gereken Adam Optimizerin nasıl bir şey olduğuna bir kere bakıp, ne işe yaradığının, avantajlarının ve dezavantajlarının daha çok anlaşılması olmalıdır. Çünkü metodlar uzun bilimsel araştırmalar neticesinde ortaya konmuş ve akademik olarak yayınlanmış metotlardır (istenilirse paper’larına internetten erişmek mümkündür ve bir gözgezidirilebilirler). Bir anda her şeyiyle anlaşılması beklenmemelidir) Mühim olan videolardaki konuların ve bilgilerin ne işe yaradıklarının bilinmesidir. Videolardaki fonksiyonların tamamı Pytorch, Tensorflow gibi kütüphanelerde mevcut olup, matematiksel işlemler yine bu kütüphaneler vasıtasıyla yapılabilmektedir.

    1. KURS

    1. AŞAMA – GİRİŞ : İlk 6 Video
    Görev Kodu : Pytorch kütüphanesinin kurulumunu gerçekleştirin. Kaggle’den Avustralyadaki hava durumu ile alakalı şu dataseti indirin. Pandas Kütüphanesini kullanarak dataseti düzenleyip, kullanılabilir hale getirin. Bunun için ilk olarak eksik data olan satırları çıkarın. Ayrıca max temperature dışındaki sütunları da çıkarın. Datasetteki şehir sayısı çok fazlaysa bu şehirlerin sayısını 15-20’e indirebilirsiniz. Ondan sonra bir şehir seçin. Input, seçilen ve diğer şehirlerdeki max hava sıcaklığıdır. Output seçilen şehir için ertesi günkü max hava sıcaklığıdır. böylece input ve output listelerinizi(matrislerini oluşturun.) Bu dataset bir nöral ağ ile eğitilerek input olarak seçilen şehir ve diğer şehirlerin max hava sıcaklıkları girildiğinde seçilen şehrin bir sonraki günkü max hava sıcaklığı tahmin edilmeye çalışılacaktır.
    https://www.kaggle.com/jsphyg/weather-dataset-rattle-package

    Görev Kodu Detaylı Anlatım :
    Bugün günlerden pazartesi saat 22.00. Bugün 5 büyükşehirde gerçekleşen en yüksek hava sıcaklıkları aşağıdaki şekilde ölçülmüş
    pzrts
    Ben bu değerlere bakarak yarın İzmir’de gerçekleşecek en yüksek hava sıcaklık değerini tahmin edebilir miyim?
    asd
    Evet bunu bir nöral ağı eğiterek yapabilirim ! Ancak burada şehir sayısının fazla olması ve eğitim yapacağım datasetin büyük olması (1000’lerce günlük veri içermesi) başarı oranını artıracaktır ! O yüzden Avustralya dataseti tam bu işe göre

    DATASET İÇİN DATA ÖRNEKLER (Hava sıcaklıkları maksimum hava sıcaklığıdır)

    Şehir sayısı en az 15 olsa iyi olacaktır. Train edeceğiniz nöral ağ en az 3,5 layer’a ve her layer’da en az 3,5 nörona sahip olsa iyi olacaktır. Nöral ağın son layerinde sigmoid fonksiyon olmamalıdır. Bunun sebebi üzerinde düşününüz. Ancak nöral ağın diğer layer’larının sigmoid fonksiyonu (aktivasyon fonksiyonu) olmalıdır.

    2. AŞAMA – Logistic Regression, Cost Function, Gradient Descent, Python Implementation : 7-24. Video
    Bu aşamada Makine Öğrenmesinde görülen Logistic Regression, Gradient Descent gibi konular tekrar edilmektedir. Ayrıca türev alma anlatılmaktadır. Bazı videolarda yine çok fazla sembolizme girilmektedir, bu sembolik gösterimlere fazla takılmayınız. Andrew NG bu videolarda numpy ile kendisi fonksiyonları oluşturmaya çalışmaktadır. Biz Pytorch kütüphanesi kullanacağız. O yüzden bizim numpy ile bu fonksiyonları oluşturmamıza gerek yoktur. Makine öğrenmesinde iyi öğrendiğiniz konuları atlayabilirsiniz. Fakat Python ile gösterim yapılan videolar önemlidir.

    3. AŞAMA – Nöral Ağlara Giriş: 25 – 43. Video
    Nöral Ağların ne olduğu, ve belli başlı bazı özellikleri anlatılmaktadır. Yine Makine öğrenmesi kursundan az çok bilinen bu konu hızlı bir şekilde ilerlenebilir.

    Görev Kodu : Pytorch kütüphanesi ile 3-5 layer’lik bir neural network oluşturun. Bu neural network’i oluştururken, kütüphanede mevcut olan loss fonksiyonları, aktivasyon fonksiyonlarını listeleyin ve içlerinden birer tane seçin. Videoda anlatıldığı şekle uygun random initialization yapın. Optimzasyon yöntemi olarak Gradient Descent’i tercih edin. Avustralyadaki şehirlerin max sıcaklık değerleri dataseti ile bu nöral ağı train edin.
    Layer Sayısını, kullandığınız aktivasyon fonksiyonu ve loss fonksiyonunu değiştirerek denemeler yapın.
    Layer Sayısı, aktivasyon fonksiyonu ve loss fonksiyonu tercih edilirken nelere dikkat edilmesi gerektiğini düşünün ve bu konuları daha sonra mentorunuzla tartışın.

    #812
    yusuf
    Mentor
    Up
    0
    Down

    2. KURS

    1. AŞAMA (Video 1-9) : Bias-Variance, Regularization
    İlk videoda Train/Val/Test datasetlerinin sahip olması gereken data sayısı dağılımına yönelik olarak makine öğrenmesinden farklı bir dağılıma gidildiği gözlemlenecektir.
    İkinci videoda derin öğrenmede çok önemli olan iki kavram : Bias ve Varyans kavramları üzerinde durulacaktır.
    3-9 Videolarda overfittingin önüne geçmek maksadıyla uygulanan regularization metotlarından bahsedilmektedir. Tüm bu metotlar kıymetlidir. ÖZellikle dropout regularization metodunun mantığı oldukça garip olsa da işe yaramaktadir. Dropout yönteminde random’lığın gücünden faydalanmaktadır.
    Inputların normalize edilmesi de bir regularization yöntemi olmakla beraber bir bu normalize işleminin uniform yapılmaması durumunda olaya istatistiki boyut da eklenmektedir.

    Görev Kodu : Probability dense function ve cumulative distrubution function nedir araştırınız. Yaygın kullanılan Probability Dense Function’lar nelerdir onu da araştırınız. Bu Probability Dense Functionların grafiklerini Pythonda çizdiriniz ve her bir fonksiyona ait parametrelerin değerlerini değiştirerek parametrelerin, fonksiyonun şeklinde yaptığı değişikliği gözlemleyiniz.
    Görev Kodu 2 : Aşağıdaki linkteki yazıyı dikkatli bir şekilde okuyunuz. https://www.dummies.com/programming/big-data/data-science/transforming-distributions-machine-learning/ Bu linkte yazanlardan yola çıkarak:
    1_ Data Normalizesinde normalize ederken uygulanacak distribution çeşidinin neye göre belirleneceği hususunu araştırıp, düşününüz.
    2_ Hazırlanacak Bir datasetteki data özelliklerinin nasıl dağılım gösterebileceği, hangi durumlarda nasıl dağılım göstermesi gerektiğini araştırıp, düşününüz.
    3_ Bu ikisi arasında nasıl bir korelasyon olabilir düşününüz. Vardığınız sonucu mentorunuz ile paylaşınız.

    NOT : Fazla kasmayınız, beyin yanmasın 😀

    2. AŞAMA (Video 10-22) : Optimizasyon Algoritmaları
    Bu videolarda Gradient Descent algoritmasının da dahil olduğu optimizasyon algoritmalarına yönelik genel bir bakış açışı kullanılmakta ve bu algoritmalardan yaygın kullanılanlardan birkaç tanesi örnek olarak anlatılmaktadır. Bu optimizasyon algoritmalarına dair bilgilerin ezberlenmesine kesinlikle gerek yoktur. Sadece videolarda bu optimizasyon algoritmalarının genel özelliklerine bir kez olsun dikkat edilmelidir.

    3. AŞAMA (Video 23-34) : Bazı parametreler, Tuning ve Softmax :

    #813
    yusuf
    Mentor
    Up
    0
    Down

    3. KURS

    1. AŞAMA (Video 1-18) :
    Bu videolarda genel olarak eğitilen bir modelin başarısını ölçmeye yönelik olarak uygulanabilecek metrikler, test/val datasetleri dağılımı, overfitting, underfitting gibi durumlara karşı alınabilecek tedbirlerden bahsetmektedir. Oldukça mühim olan ve sık kullanılacak bu konular iyi bir şekilde öğrenilmelidir.

    2. AŞAMA( Video 19-22):
    Transfer Learning, Multitask Learning, End to End Learning derin öğrenmede sıkça karşılaşılacak kavramlardır.

    Görev Kodu :
    Underfitting ve Overfittinge sebep olabilecek nedenleri internetten araştırınız. Andrew NG bu nedenlerden bazılarından bahsetse de bazılarından bahsetmemektedir. O yüzden bu konu ile alakalı bir araştırma yapılmasında yarar vardır.
    Daha sonrasında ayrı ayrı Underfitting ve Overfitting’i engellemeye yönelik çözüm yöntemlerini araştırınız.
    Bu çözüm yöntemleri kapsamında Data Augmentasyonunun yerini ve önemini belirleyiniz. Data Augmentasyon yöntemleri ile alakalı araştırma yapınız.

    #814
    yusuf
    Mentor
    Up
    0
    Down

    4. KURS
    En önemli kurstur. Nöral Ağ çeşitlerinden konvolüsyonel nöral ağlar anlatılmaktadır. Bu nöral ağın birçok avantajı olmakla beraber görüntü işlemeye bilhassa uygun kılan şey, bu nöral ağların görüntüdeki iki boyutlu bilgiyi kullanma fırsatı sunmasıdır. Daha önce gördüğümüz nöral ağlarda bir görüntü tek boyuta dönüştürüldükten sonra ağ eğitilebiliyordu.

    1. AŞAMA (1 – 11 Videolar) :
    CNN’ler hakkında temel bilgileri içermektedir.
    Görev Kodu : Pytorch’da 3,5 layerlik özgün bir CNN (pooling layerı da içeren) oluşturun. Bu layerlerin, aktivasyon fonksiyonu, padding, stride, optimizasyon algoritması vb özelliklerini siz belirleyin. Daha sonra Pytorch’daki MNIST datasetini bu CNN’de eğitin. Sonuçları değerlendirin.

    2. AŞAMA (12 – 19 Videolar) :
    Bu videolarda yaygın kullanılan, başarılı CNN’ler hakkında bilgi verilmektedir. Buradaki her bir CNN mimarisinin kendi içerisinde bir mantığı, yaklaşım yöntemi bulunmaktadır. AlexNET’in başarısıyla ortaya çıkan CNN’lerin gücü daha sonra birçok yeni CNN’lerin ortaya çıkmasına sebep olmuştur.

    Görev 1 : LeNET’in makalesini gözden geçiriniz. AlexNET ve VGGNET’in makalelerini dikkatli bir şekilde, anlayarak okuyunuz
    Görev Kodu : MNIST datasetini ResNET ile eğitiniz. Elde ettiğiniz sonuçları özgün CNN’nizden elde ettiğiniz sonuçlar ile karşılaştırınız.

    3. AŞAMA (20 – 31 Videolar):
    Bu videolarda CNN’ler ile nesne tespiti yapmanın mantığı ve YOLO anlatılmaktadır. Artık bu videoları izledikten sonra nesne tespiti yapmak için temel bilgiler elde edilmiş olacaktır. Bu noktadan sonra yapılması gereken, yapmak istediğiniz görev ile alakalı literatür taraması yapmak gerek Google’da konuyla alakalı yazılar okumak gerek libgen gibi sitelerden makale araştırması yapıp okumaktır.

    Bundan sonraki videoları izlemek opsiyoneldir

    Allah çalışmalarınızı hayırlı ve bereketli kılsın.

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