Derin Öğrenme
Yapay zeka, makine öğrenmesi, sinir ağları, derin öğrenme gibi terimler bilgisayarların açıkça programlanmadıkları görevleri yerine getirebilecek şekilde çalışabilmeleri durumunu ima ediyor. Bu konularla ilgili daha önce hiç bir teknik yazı okumadıysanız bu ders notları size hitap edecektir, çok az teknik detayla ve minimum Python bilgisi ile dilim döndüğü kadar konuyu anlatmaya çalışacağım.
Öncelikle bu terimleri sınıflandırmalıyız, yapay zeka ve makine öğrenmesi terimleri oldukça genel terimlerdir. Bunların ortak yöntemleri olduğu gibi birbiri ile kesişmeyen ayrı uygulamaları ve yöntemleri de vardır; tam olarak bu terimlerin hiyerarşisi konusunda ortak bir fikir de yoktur. Ama derin öğrenme denilen şey makine öğrenmesi yöntemlerinden birisi; sinir ağları (neural networks) denilen başka bir yöntemin ardışık olarak uygulanması olarak açıklanabilir ve bu yöntem günümüzde en modern ve etkili yöntem olarak kabul ediliyor.
Peki makine nasıl öğrenir? Bu aslında öğrenmeyi nasıl tanımladığınıza bağlı. Esasında makine öğrenmez (çünkü o bir makinedir), sadece çok hızlı bir şekilde deneme yanılma yapar. Ona çok sayıda soru ve bunların cevaplarını verirseniz, makine bunlar arasında rastgele bir eşleşme kurar ve bu eşleşmenin gerçek cevaplarla ne kadar örtüştüğünü test eder. Bu işlemi defalarca tekrarlar ve her seferinde eşleşmenin hatasını ölçüp eşleşmeyi daha doğru olacak şekilde bir miktar düzeltir. Böylece makine bir şablona sahip olur ve makineye benzer bir soru (daha önce hiç görmediği bir soru) sorduğunuzda ürettiği eşleşmeye göre bir cevap verir. Sonuç olarak makine bir soruya nasıl cevap vereceği konusunda açık olarak programlanmamıştır fakat benzer soru ve cevapları inceleyerek bir tahmin üretebilir duruma gelmiştir. Makine öğrenmesi denilen olay kabaca budur, burada eşleşmeyi düzeltme aşaması makinenin öğrenme aşaması olarak adlandırılır. Bu sürecin her bir aşaması için farklı yöntemler vardır, ele alınan probleme en uygun yöntemi seçerek çalışırız.
Bu derslerde size bu aşamaları nasıl kodlayabileceğinizi çok kaba bir şekilde açıklayacağım. Makine öğrenmesi çalışmalarında bu amaca yönelik özel modüller (tensorflow, pytorch, keras gibi) kullanılır ama biz bu derslerde çok temel Python elemanlarını kullanarak el yordamıyla çok basit programlar yazacağız, amacım size süreci açıklamak.
Anahtar Kelimeler: Forward Propagation · Input · Output · Prediction · Tahmin · Weight
Anahtar Kelimeler: Alpha · Delta · Error · Gradient Descent · Hata Ölçümü · Öğrenme · Prediction · Training
Anahtar Kelimeler: Activation · Back Propagation · Batch Size · Derin Öğrenme · Derin Sinir Ağı · Generalization · Gizli Katman · Gradient Descent · Hidden Layer · Katman · Layer · Memorization · Mini Batch Gradient Descent · Nonlinearity · Overfitting · Regularization · Relu · Stochastic Gradient Descent
Anahtar Kelimeler: Flatten · Keras · Label · Mnist · Tensorflow · X_Train · Y_Train
Anahtar Kelimeler: Dropout · Mini Batch Gradient Descent · Mnist · Normalizasyon · One-Hot Encoding · Overfitting · Regularization · Test Accuracy · Training Accuracy · Validation Set
Anahtar Kelimeler: Aktivasyon Fonksiyonu · Cross Entropy · Regresyon · Relu · Sigmoid · Softmax · Tanh
Anahtar Kelimeler: Cnn · Convolution Kernel · Convolutional Layer · Convolutional Neural Network · Konvolüsyon · Konvolüsyonel Katman · Max Pooling · Mean Pooling · Sum Pooling
- A. W. Trask, Grokking Deep Learning, Manning Publications Co., New York, 2019.