Google Colab Üzerinde Keras ile Veri Çoğaltma (Data Augmentation) | Keras

Derin öğrenme yaklaşımlarında genel görüş ne kadar çok veri mevcutsa modelin o kadar iyi öğreneceğidir. Mevcut veri setinden veri üretme işlemine  “Data Augmentation” nedir.  Nesne tanıma problemlerinde genellikle orjinal resmi döndürme (rotation), öteleme (translation), ölçekleme (scaling), resme gürültü (Gauss vb.) ekleme (add noise), resmi belirli bölgeden kırpma (cropping) gibi farklı teknikler uygulanmaktadır.

Yazı da Google Colab üzerinde içinde verileriniz (bu örnekte resimlerin) sırayla alınıp çoğaltılıp klasöre eklenme örneğidir.

Orjinal resimler :

Çoğaltılan resimler:

Bu slayt gösterisi için JavaScript gerekir.

Kodlar: https://gist.github.com/bulentsiyah/5147fc9f090e5f1bad93f400ebd54b36

Google Colab Üzerinde Generative Adversarial Networks (GAN) ile MNIST Data Setinden Veri Üretme | Keras

Generative Adversarial Networks, 2014 yılında Ian Goodfellow ve çalışma grubu tarafından NIPS konferansında tanıtılmıştır. Facebook’un Yapay Zeka Direktörü Yann LeCun’a göre Machine Learning alanında son 10 yılda yapılmış en ilgi çekici fikirdir.

 

 

Keras ile yapılmış basit GAN örneği:

Cpu ile test edildiğinden epoch 1 verilmiştir. Epoch 1 iken yaratılan 49 resim:

Google Colab ile üretilirken epoch 5 verilmesine rağmen dakikalar sürmüştür.

Kodlar : https://github.com/bulentsiyah/Google-Colab-Generative-Adversarial-Networks-GAN-ile-MNIST-Data-Setinden-Uretme-

 

MNIST Data Setiyle Kaggle Yarışması – Google Colab | Kaggle

Kaggle, machine learning denilince akla gelen ilk sitelerden birisi. Sebebi de, birçok kurumsal şirketin, Kaggle üzerinden açmış olduğu yarışmalar. Bu yarışmalar da çoğu zaman genel machine learning problemleri(classification, regression, clustering vb.) üzerine kuruluyken, kimi zaman optimizasyon problemleri de karşınıza çıkabiliyor. Bu yarışmalara ücretsiz bir şekilde katılmanız için de yapmanız gereken tek şey Kaggle’a üye olmak.

Girmiş olduğum yarışma da MNIST data setiyle en yüksek oranda el yazısyla yazılmış rakam sınıflandırmaydı. Yarışma detayı https://www.kaggle.com/c/digit-recognizer

Çözüm başlangıç düzeyinde derin öğrenme bilgisi olanların anlayacağı şekildedir. Öncelikle Tensorflow Dense Layer adı verilen çok katmanlı düzleştirilmiş sinir ağlarıyla (düşük başarı oranı yüzde 91 ler) gözlemlenmiştir. Ardından CNN(Konvolüsyonel sinir ağları) ile başarı oranı yüzde 99 küsürlere erişilmiştir. Çözüm içerisinde hem Tensorflow hem de Keras ile ilgili CNN kodları mevcut olup Kerasın inanılmaz kolaylığı gözlenebilmektedir. Kerasla Dropout, Batch Normalization  yapılmıştır.

Çözüm Kaggle kerneli : https://www.kaggle.com/bulentsiyah/mnist-for-beginners-tensorflow-dnn-cnn-keras

Kodlar Google Colab: https://github.com/bulentsiyah/MNIST-Data-Setiyle-Kaggle-Yarismasi—Google-Colab

Bu slayt gösterisi için JavaScript gerekir.

Machine Learning Egzersizleri | Kaggle

Merhaba, makine öğrenmesi alanında methodlarla ilgili kodlar bulunmaktadır. Kodların orjinali ve anlık çıktıları Kaggle sayfamda bulunmaktadır.

Kaggle linki: https://www.kaggle.com/bulentsiyah/machine-learning-exercise

İçindekiler:

  • Linear Regression
  • Multiple Linear Regression
  • Polynomial Linear Regression
  • Support Vector Regression
  • Decision Tree Regression
  • Random Forest Regression
  • K-Nearest Neighbour (KNN) Classification
  • Support Vector Machine (SVM) Classification
  • Naive Bayes Classification
  • Decision Tree Classification
  • Random Forest Classification
  • K-Means Clustering
  • Hierarchical Clustering
  • Natural Language Process (NLP)
  • Principal Component Analysis (PCA)
  • Model Selection
  • Recommendation Systems

Bu slayt gösterisi için JavaScript gerekir.

Data Science ve Data Visualization Egzersizleri | Kaggle

Merhaba veri bilimi ve veri görselleştirme alanları için popüler olan Python diliyle ilgili kodlar bulunmaktadır. Kodların orjinali ve anlık çıktıları Kaggle sayfamda bulunmaktadır.

Bu slayt gösterisi için JavaScript gerekir.

Kaggle linki: https://www.kaggle.com/bulentsiyah/data-science-and-visualization-exercise

İçindekiler:

Cleaning Data

Manipulating Data Frames with Pandas

Seaborn

Plotly

Visualization Tools

 

 

 

Python Egzersizleri | Kaggle

Merhaba veri bilimi ve makine öğrenmesi alanları için popüler olan Python diliyle ilgili kodlar bulunmaktadır. Kodların orjinali ve anlık çıktıları Kaggle sayfamda bulunmaktadır.

Bu slayt gösterisi için JavaScript gerekir.

Kaggle linki: https://www.kaggle.com/bulentsiyah/python-exercise

Okumaya devam et “Python Egzersizleri | Kaggle”

Yapay Sinir Ağı ile XOR Kapısı (PIC Assembly)

ÖZET

Bu çalışmada, bir mikrodenetleyiciye yapay sinir ağını gerçekleyebilmesini sağlayacak bir program yazılması amaçlanmıştır. Hazırlanan yapay sinir ağı, program içerisine gömülü olan XOR doğruluk tablosuna göre eğitilir ve mikrodenetleyicinin giriş portlarından alınan giriş verilerini kullanarak çıkış üretir. Çalışmada, öğrenme metodu için geri yayılım metodu, aktivasyon fonksiyonu için basamak fonksiyonu, ağırlık güncellemeleri için Hebbian Kuralı kullanılmıştır. Geliştirilen uygulama, PIC Assembly dili ile PIC16F84 mikrodenetleyicisi için kodlanmıştır. Uygulama, öğrenme işlemini başarı ile gerçekleştirerek, denenen tüm giriş verileri için doğru sonuçlar üretmiştir.

1.GİRİŞ

XOR (özel veya) problemi sahip olduğu doğrusal olmayan yapı sayesinde sınıflama ve modelleme algoritmalarının test edilmesi ve başarılarının ölçülmesinde önemli bir ölçüttür. Çalışma XOR kapısının yanında farklı birçok amaçla da kullanılabilir. Çalışma bir sisteme dahil edilip, sistem ve mikrodenetleyiciye paralel veri girişi sağlanabilir. Giriş verilerini alarak eğitilen mikrodenetleyici, daha sonra kendi çıkış verileri ile sistemin çıkış verilerini karşılaştırabilir. Verilerin doğru olmaması gibi durumlarda sistemdeki hataları gidermede kullanılabilir.

Çalışmada yapay sinir ağı, 1 giriş, 1 ara ve 1 çıkış katmanlarından oluşur. Giriş katmanı ise 2 nöron ve 1 bias olmak üzere 3 giriş, 3 ara nöron ve 1 çıkış nöronundan oluşur. Giriş nöronu dışındaki nöronlar için bir aktivasyon fonksiyonu vardır. Her nörondan diğer nörona giden bir bağlantı bulunur ve bu bağlantının bir ağırlığı vardır. Her bir giriş ile ona ait ağırlık değeri çarpımlarının toplanmasına toplama işlevi denir. Nöronların değerleri aktivasyon fonksiyonu ile belirlenir. Çıkış nöronunda elde edilen değer ile hedef değer farklı ise geri yayılımlı olarak ağırlıklar tekrar hesaplanır ve öğrenme gerçekleştirilir. Öğrenme işlemi için çalışmada Hebbian Kuralı uygulanmıştır. Böylece her bağlantıdaki ağırlık güncellenerek baştan hesaplanır ve işlem hedef sonuca ulaşana kadar devam eder. Uygulamadaki hedef sonuçlar için XOR kapısının doğruluk tablosu kullanılmıştır.

XOR kapısından gerçekleştirilmeden önce ilk olarak tek nöronlu yapay sinir ağı gerçekleştirilmiştir. Giriş verisi rastgele bir ağırlık ile çarpılıp, belli bir eşik değerden geçirilmiş ve çıkış değeri elde edilmiştir. İkinci aşama olarak AND kapısı gerçekleştirilmiştir. AND mantık kapısının seçilmesinin nedeni, yapay sinir ağı ile öğrenmenin  kolay bir şekilde gerçekleşebilmesidir. AND kapısının kolay olmasını sağlayan durum, bir doğru ile kolaylıkla sınırlandırılabilmesidir. Bunun dışında AND kapısı için bias değerine ihtiyaç duyulmaz, böylece giriş sayısı değişmez ve daha az ağırlık değeri ile işlem gerçekleştirilir. XOR kapısından önce bu iki aşama tamamlanmıştır.

Uygulama sonuçları Tüm farklı giriş verileri, mikrodenetleyiciye aktarılıp elde edilen çıkış verileri doğruluk tablosu ile karşılaştırıldığında tüm sonuçların doğru olduğu gözlemlenmiştir.

Okumaya devam et “Yapay Sinir Ağı ile XOR Kapısı (PIC Assembly)”