Derin Öğrenme Coursera Notları (Deep Learning Coursera Notes)

Coursera’dan aldığım derin öğrenme kurslarından anahtar kelimeleri daha sonrası için hafızada tutmak amacıyla bu yazıda paylaşmak istiyorum.


NEURAL NETWORK AND DEEP LEARNING

  • Supervised learning with neural network
  • Binary classification (örn: logistic regression)
  • Logistic regression, SVM -> traditional learning algorithms
  • Cost function
  • Gradient descent
  • Derivatives
  • Vectorization and broadcasting
  • Numpy, iPython, Jupyter
  • Activation functions (Softmax, ReLU, leaky ReLU, tanh (hiberbolik tanjant), swish (a self-gated activation function))
  • Forward / Back propagation
  • Random initialization
  • Shallow neural networks
  • CNN (for image)
  • Recurrent NN (Sequence data)
  • Deep reinforcement learning
  • Regression (Standart NN)
  • Structured data – Database, Unstructured data – audio, image, text
  • Tensorflow, Chainer, Theano, Pytorch
  • Normalization
    • Standart score
    • T test
    • Standardized moment
    • Coefficient of variance
    • Feature scaling (min-max)
  • Circuit Theory
  • Parameters
    • W, b
  • Hyperparameters
    • learning rate
    • #iterations
    • #hidden layers
    • #hidden units
    • activation function
    • momentum
    • minibatch size
    • regularization

IMPROVING DEEP NEURAL NETWORKS: HYPERPARAMETER TUNING, REGULARIZATION AND OPTIMIZATION

  • Dataset -> Training / Dev (hold-out validation) / Test sets
    • Büyük veri setleri için dağılım 98/1/1 olabilir. Geleneksel olarak 70/30 veya 60/20/20’dir.
  • Bias / variance.
    • high bias = underfitting
      • bigger network (her zaman işe yarar)
      • train longer (NN architecture search) (her zaman işe yaramaz)
    • high variance = overfitting
      • more data
      • regularization
        • L1 regularization
        • L2 regularization (lambd) – daha çok tavsiye ve tercih edilir.
        • Dropout regularization (keep prob)
        • Data augmentation
        • Early stopping
      • NN architecture search
  • Speed-up the training
    • normalizing the inputs
      • subtract mean
      • normalize variance
    • data vanishing / exploiding gradients
    • weight initializion of deep networks
      • xavier initialization
      • HE initialization
    • gradient checking -> backpropagation control
      • dont use in training
      • dtheta, dtheta approx.
      • remember regularization
      • does not work with dropout
  • Optimization algorithms
    • (stochastic) gradient descent
    • momentum
    • RMSProp
    • Adam
  • Mini batch
  • Exponentially weighted averages
  • Bias correction
  • Learning rate decay
  • The problem of local optima
  • HYPERPARAMETER TUNING
    • try random values
    • confonets, resnets
    • panda babysitting (sistem kaynakları kısıtlı ise) or baby fish (caviar) approach (değilse)
    • batch normalization
    • covariate shift
    • softmax regression
    • hardmax biggest 1, the others 0
  • Frameworks
    • Caffe/Caffe2
    • CNTK
    • DL4J
    • Keras
    • Lasagne
    • mxnet
    • PaddlePaddle
    • Tensorflow
    • Theano
    • Torch

STRUCTURING MACHINE LEARNING PROJECTS

  • Orthogonalization (eğitimin yeterince başarılı olması için gereklidir) (radyo ayarlama) (developer set (training)
    • fit training set well in cost function
      • bigger NN or better optimization algorithms
    • fit dev. set well on cost function
      • regularization or bigger training set
    • fit test set well on cost function
      • bigger dev set
    • performs well in real world
      • dev set is not set correctly, the cost function is not evaluating the right thing
  • Single number evaluation metric
    • P (precision) (toplam doğruluk, %95 kedidir)
    • R (Recall) (kedilerin %90’ı doğru bilindi.
    • F1 Score – average of precision and recall (F1 değeri yüksek olan daha başarılıdır)
  • Satisficing and optimizing metric
    • hangisi satisficing hangisi optimizing olacak.
  • Train/dev/test sets distribution
  • When to change dev/test sets and metrics
  • Human level performance
    • avoidable bias / bayes optimal error (best possible error)
    • reducing bias/variance
    • surprassing human-level performance
  • ERRORS
    • training
      • variance
      • more data
      • regularization (lz, dropout, augmentation)
      • NN architecture / hyperparameter search
    • dev
    • human-level errors
      • avoidable bias
      • train bigger model
      • train longer
      • train better optimization algorithms (momentum, RMSProb, Adam)
      • NN architecture
      • Hyperparameter search
      • RNN/CNN

Bebek Kitapları

Daha önce bebeklerle ilgili paylaşımlar yapmıştım, yapmaya da devam edeceğim. Bebek kitapları, eğitici kartlar vs. ile ilgili de paylaşımlar yapmıştım. Bu yazıda ise bebeğimize aldığımız kitapları paylaşacağım.

  • İlk Sözcüklerim – Dokun Hisset Öğren Resimli Kartlar: İsminde de belirtildiği üzere bebeğin dokunması ve hissetmesi amaçlanmış. İçerisinde toplam 16 adet kart bulunmaktadır. 1 tanesinde sadece metinler bulunmakta diğerlerinde ise bir yüzünde resim ve resmin bir bölümünde hissedilecek kısım; arkasında ise resim kullanılarak yapılabilecek faaliyetler için tavsiyeler, resimdeki nesnening ingilizce ve almanca karşılıkları bulunmaktadır.

  • Panda Arkadaşlarıyla Oynuyor: Kısa  anlatımlar ve büyük resimlerle ilgi çekici bir kitap olduğunu düşünüyorum. Özellikle resimlerin renkleri çok güzel seçilmiş.
  • Pofi İle Tam Zamanında Serisi: Yemeklerimin Hepsini Bitirdim, Yaşasın Banyo Zamanı, Uyku Beni Çağırıyor. Pofi serisi şu ana kadar aldığımız en güzel kitaplar diyebilirim. Kitap karton sayfalardan oluştuğu için bebeğimiz sayfalarını yırtamıyor. Ayrıca bu kitabı okurken kitabın son sayfasında da belirtilen hareketleri yapıyoruz. Örneğin Pofi esniyorsa esneme hareketi yapıyoruz. Sonra bebeğimize soruyoruz nasıl esniyor diye. O da birkaç denemede öğreniyor. Bu kitapları aldıktan sonra diğerlerine hiç ihtiyaç duymadık desem yalan olmaz. Bebeğimiz de çok seviyor bu kitapları.
  • Aç Tırtıl: Kitabı sayfa sayfa anlatıp bebeğin dikkati çekmeniz gerekiyor. D&R’da çeşitli versiyonları mevcuttur. Küçük boy, büyük boy ve mukavva olarak üç farklı şekilde basılmış. Büyük boy olan tercih edilebilir. Mukavva olana gerek yok bence. Bebeğimin dikkatini çeken ve en çok süre oynadığı kitap diyebilirim.

Rus ruletinde nasıl kazanırsınız ve diğer ölümcül mantık soruları – Thomas Byrne – Tom Cassidy

Kitapta 32 adet soru var ve bu sorular anlatılırken hikayeleştirilmiş ve biraz da geyik yapılmış. Bazı soruları çok beğendim, bazıları ise hoşuma gitmedi açıkçası. Hoşuma gitmedi derken çok iyi anlatılamamış olmasından bahsediyorum. Bunda kitabın çeviri olmasının da etkisi var gibi geliyor bana. Bazı yerleri daha iyi çevirilebilirmiş. Kafa dağıtma amaçlı edinilip, sorular çözülmeye çalışılabilir. Birkaç sorudan sonra yazarların bakış açısını öğrenip, sorulara nasıl yaklaşacağınızı anlıyorsunuz.

Linux: Windows partition The NTFS partition is in an unsafe state hatası ve çözümü

Çökmüş bir Windows sistemden dosya kurtarmak amacıyla Linux işletim sistemine sahip başka bir bilgisayara mount etmeye çalıştığımızda aşağıdaki hatayı aldık. Hata sanırım Windows’ta hızlı başlatma seçeneği açık olarak kullanılmasından dolayı meydana çıkıyor. Çünkü bu şekilde kullanıldığında windows hibernate modunu kullanıyor. Bu da sistemin normal olarak kapatılmadığına dair hata vermesine sebep oluyor.

Error mounting /dev/sda5 at /media/mint/8062FAE5B9E1EF3C: Command-line `mount -t
"ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=999,gid=999" 
"/dev/sda5" "/media/mint/8062FAE5B9E1EF3C"' exited with non-zero exit status 14:
The disk contains unclean file system (0, 0). 
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda5': Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.

Hatanın sebebine dair daha fazla bilgi için internette araştırma yapabilirsiniz. Ben direkt olarak çözüme geçeceğim. Aslında hatanın sonundaki uyarıda da görüldüğü üzere disk read only olarak mount edilerek sorun çözülebilir. Bunun için aşağıdaki komutlar kullanılabilir.

[pastacode lang=”bash” manual=”sudo%20mkdir%20%2Fmedia%2Fkullanici_adiniz%2Fnewdisk%0Asudo%20mount%20-t%20%22ntfs%22%20-ro%20%22uhelper%3Dudisks2%2Cnodev%2Cnosuid%2Cuid%3D1000%2Cgid%3D1000%2Cdmask%3D0077%2Cfmask%3D0177%22%20%22%2Fdev%2Fsda4%22%20%22%2Fmedia%2Fkullanici_adiniz%2Fnewdisk%22%0A” message=”” highlight=”” provider=”manual”/]

Müslümanın Edepleri – İmam Gazali

İmam Gazali Hz.’nin orjinal adı el-Edebü fi’d-Din olan eserinin tecrümesidir. Günlük hayattaki edepleri anlatmaktadır. Okurken bir çoğuna zaten aşına olduğunuzu farkedecek, bir kısmını da yeni öğreneceksiniz. Evde bulundurulması gereken bir eser olduğunu düşünüyorum (tabi benzer bir eser evinizde yoksa).

No module named tensorflow hatası ve çözümü

Bu hatayı alıyorsanız tensorflow modülünü yüklemeniz gerekmektedir. Anaconda arayüzünden aşağıdaki komut dizisiyle bu işlemi gerçekleştirebilirsiniz.

pip install tensorflow

veya

pip install tensorflow --ignore-installed

Anaconda: Solving environment: failed ResolvePackageNotFound hatası ve çözümü

conda env create -f tfdl_env_backup.yml komutundan sonra aşağıdaki hata ile karşılaştım. Sanıyorum hata veren paketler daha önceden kurulmuştu.

(base) C:\Users\Username\Tensorflow-Bootcamp-master>conda env create -f tfdl_env_backup.yml
Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound:
– six==1.10.0=py35_1
– html5lib==0.9999999=py35_0
– prompt_toolkit==1.0.15=py35_0
– bleach==1.5.0=py35_0
– entrypoints==0.2.3=py35_0
– pandocfilters==1.4.2=py35_0
– testpath==0.3.1=py35_0
– pickleshare==0.7.4=py35_0
– vs2015_runtime==14.0.25420=0
– setuptools==36.4.0=py35_1
– ipykernel==4.6.1=py35_0
– tk==8.5.18=vc14_0
– win_unicode_console==0.5=py35_0
– libpng==1.6.30=vc14_1
– colorama==0.3.9=py35_0
– qt==5.6.2=vc14_6
– scipy==0.19.1=np113py35_0
– mkl==2017.0.3=0
– sip==4.18=py35_0
– widgetsnbextension==3.0.2=py35_0
– qtconsole==4.3.1=py35_0
– jupyter==1.0.0=py35_3
– python==3.5.4=0
– decorator==4.1.2=py35_0
– nbformat==4.4.0=py35_0
– openssl==1.0.2l=vc14_0
– wcwidth==0.1.7=py35_0
– markupsafe==1.0=py35_0
– wheel==0.29.0=py35_0
– requests==2.14.2=py35_0
– matplotlib==2.0.2=np113py35_0
– ipywidgets==6.0.0=py35_0
– path.py==10.3.1=py35_0
– pyqt==5.6.0=py35_2
– python-dateutil==2.6.1=py35_0
– jpeg==9b=vc14_0
– jinja2==2.9.6=py35_0
– traitlets==4.3.2=py35_0
– scikit-learn==0.19.0=np113py35_0
– jupyter_console==5.2.0=py35_0
– icu==57.1=vc14_0
– tornado==4.5.2=py35_0
– wincertstore==0.2=py35_0
– cycler==0.10.0=py35_0
– jupyter_client==5.1.0=py35_0
– pyzmq==16.0.2=py35_0
– numpy==1.13.1=py35_0
– pandas==0.20.3=py35_0
– pip==9.0.1=py35_1
– notebook==5.0.0=py35_0
– pyparsing==2.2.0=py35_0
– ipython_genutils==0.2.0=py35_0
– pytz==2017.2=py35_0
– mistune==0.7.4=py35_0

Bu durumda tfdl_env_backup.yml dosyasından hata veren paketleri silerek işlemi tekrarladım bu kez hata vermedi. Hata veren paketleri tfdl_env_backup.yml dosyasından sildiğimde dosyanın son hali aşağıdaki gibi oldu.

name: tfdeeplearning
channels:
– defaults
dependencies:
– pip:
– ipython-genutils==0.2.0
– jupyter-client==5.1.0
– jupyter-console==5.2.0
– jupyter-core==4.3.0
– markdown==2.6.9
– prompt-toolkit==1.0.15
– protobuf==3.4.0
– tensorflow==1.3.0
– tensorflow-tensorboard==0.1.6
– werkzeug==0.12.2
– win-unicode-console==0.5
prefix: C:\Users\nuh\Anaconda3\envs\tfdeeplearning