| Автоэнкодер - нейронная сеть, которая принимает входные данные и кодирует их, затем пытается восстановить их. | |
| На этапе обучения модель кодирует входные данные и подбирает веса такие, чтобы при попытке их восстановления получилось изображение, максимально похожее на исходное. Размеченные данные не требуются. | |
| Автоэнкодер может полезен для уменьшения размерности данных или удаления шума. | |
| В данной работе выбран автоэнкодер VAE (Variational Autoencoder), тип автоэнкодера, который добавляет вероятностный подход к обучению модели. Используется библиотека keras. | |
| архитектура автоэнкодера: | |
|  | |
| Количество обучаемых параметров: encoder - 234372, decoder - 202256, всего: 436628 | |
| Используемые алгоритмы: | |
| Оптимизатор - adam. | |
| Функция потерь: | |
| def vae_loss(x, y): | |
| x = K.reshape(x, shape=(batch_size, 28*28)) | |
| y = K.reshape(y, shape=(batch_size, 28*28)) | |
| loss = K.sum(K.square(x-y), axis=-1) | |
| kl_loss = -0.5 * K.sum(1 + z_log_var - K.square(z_mean) - K.exp(z_log_var), axis=-1) | |
| return loss + kl_loss | |
| Размеры обучающего, валидационного и тестового наборов данных, соответственно: | |
| (54000, 28, 28, 1), (6000, 28, 28, 1), (6000, 28, 28, 1) | |
| Ошибка, полученная при сравнении оригинального изображения и полученного из автоэнкодера: | |
| 30.429147720336914 (ошибка на тренировочном датасете), 30.770627975463867 (на валидационном), 30.37934112548828 (на тестовом) |