Bir otomatik kodlayıcı (autoencoder) oluşturma
Autoencoder'ların anomali tespiti veya görüntü gürültü giderme gibi çeşitli ilginç uygulamaları vardır. Amaçları, girdileriyle özdeş bir çıktı üretmektir. Girdi, daha düşük boyutlu bir uzaya sıkıştırılır, yani encode edilir. Model daha sonra bunu orijinal haline decode etmeyi öğrenir.
El yazısı rakamlardan oluşan MNIST veri kümesini encode ve decode edeceksin; gizli katman, aslında 784 pikselden (28 x 28) oluşan görüntünün 32 boyutlu bir gösterimini encode edecek. Autoencoder temelde 784 piksellik orijinal görüntüyü 32 piksellik sıkıştırılmış bir görüntüye dönüştürmeyi ve bu kodlanmış temsili kullanarak orijinal 784 piksellik görüntüyü geri getirmeyi öğrenecek.
Sequential model ve Dense katmanları kullanıma hazır.
Hadi bir autoencoder inşa edelim!
Bu egzersiz
Keras ile Deep Learning'e Giriş
kursunun bir parçasıdırEgzersiz talimatları
- Bir
Sequentialmodel oluştur. - Kodlanmış görüntü boyutu kadar nörona ve
input_shapeolarak orijinal görüntüdeki piksel sayısına sahip yoğun bir katman (dense) ekle. - Girdi görüntüsündeki piksel sayısı kadar nörona sahip son bir katman ekle.
autoencodermodelini, optimize edici olarakadadeltave kayıp olarakbinary_crossentropyile derle, ardından özetini yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Start with a sequential model
autoencoder = ____
# Add a dense layer with input the original image pixels and neurons the encoded representation
autoencoder.add(____(____, input_shape=(____, ), activation="relu"))
# Add an output layer with as many neurons as the orginal image pixels
autoencoder.add(____(____, activation = "sigmoid"))
# Compile your model with adadelta
autoencoder.compile(optimizer = ____, loss = ____)
# Summarize your model structure
____