- Принципы работы
- Принципы подготовки выборки
- Как на автокодировщиках делается поиск выбросов
- Как на автокодировщиках делается шумоподавление
- Как на автокодировщиках делается раскрашивание чёрно-белой фотографии в цветную
- В чём проблема генеративных моделей на автокодировщиках
Автокодировщик (англ. autoencoder) – специальная архитектура искусственных нейронных сетей, позволяющая применять обучение без учителя при использовании метода обратного распространения ошибки.
Цель обучения автокодировщиков: найти внутреннюю структуру в данных.
Применение автокодировщиков:
• улучшение качества изображения (увеличение размера,
шумоподавление и т. д.),
• генерация новых данных по заданному образцу (например,
раскрашивание черно-белых картинок в цветные),
• поиск выбросов.
Простейшая архитектура автокодировщика – сеть прямого распространения без обратных связей, наиболее схожая с персептроном и содержащая входной слой, промежуточный слой и выходной слой. В отличие от персептрона выходной слой автокодировщика должен содержать столько же нейронов, сколько и входной слой.
Автокодировщик
• Определяет структуру в данных
• Позволяет находить «компактное» представление данных
• «Компактное» представление подходит только для тех данных, на которых автокодировщик обучался
Применение автокодировщика для поиска выбросов
• Обучаем автокодировщик только на обычных данных
• При распознавании оцениваем, насколько хорошо автокодировщик восстановил данные на выходе
• Автокодировщик не обучался на выбросах, поэтому будет плохо их восстанавливать
• Ошибка восстановления больше заданного порога – значит данный объект является выбросом
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
def denoiseAutoencoder(): # объявляем функцию создания автокодировщика для подавления шума img_input = Input((112,80,1)) # задаём входные размеры # Добавляем четыре сверточных слоя, вместо MaxPooling используем strides x = Conv2D(32, (3, 3), strides=2, activation='relu', padding='same')(img_input) x = Conv2D(64, (3, 3), strides=2, activation='relu', padding='same')(x) x = Conv2D(128, (3, 3), strides=2, activation='relu', padding='same')(x) x = Conv2D(256, (3, 3), strides=2, activation='relu', padding='same')(x) x = Flatten()(x) # сплющиваем в одномерный вектор - размер 7*5*256 z = Dense(256, activation='relu')(x) # добавляем полносвязный слой x = Dense(7*5*256, activation='relu')(z) # и еще полносвязный слой с переводом в 8960-мерное пространство(7*5*256) x = Reshape((7,5,256))(x) # меняем размеры - картинка 7*5 , 256 ядер x = Conv2DTranspose(256, (3, 3), strides=2, padding='same')(x) # разжимаем картинки из 7*5 до 14*10 x = Conv2DTranspose(128, (3, 3), strides=2, padding='same')(x) # разжимаем картинки из 14*10 до 28*20 x = Conv2DTranspose(64, (3, 3), strides=2, padding='same')(x) # разжимаем картинки из 28*20 до 56*40 x = Conv2DTranspose(32, (3, 3), strides=2, padding='same')(x) # разжимаем картинки из 56*40 до 112*80 x = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x) # и пропускаем через финальный слой двумерной свертки model = Model(img_input, x) # собрали модель с зашумленной картинкой на вход и с очищенной от шума на выход model.compile(optimizer='adam', loss='mse') # компилируем модель также, с выбором оптимайзера и среднеквадратичной ошибки return model # функция вернет модель подавления шума |
Скрытое пространство не непрерывно.
Нет гарантий, что в промежутках между областями, в которых были сконцентрированы варианты одно и того же объекта, находятся осмысленные изображения.
Сложно генерировать картинку какого-то заданного объекта. Для этого необходимо смотреть, в какую область латентного пространства попадали изображения конкретного объекта.
Нет гарантий, что в промежутках между областями, в которых были сконцентрированы варианты одно и того же объекта, находятся осмысленные изображения.
Сложно генерировать картинку какого-то заданного объекта. Для этого необходимо смотреть, в какую область латентного пространства попадали изображения конкретного объекта.
О, а как Вы нашли этот сайт ? У него даже сертификата нет, уже месяц на проверке. Поисковики его не индексируют. Сейчас просто записная книжка и шпаргалка к будущему экзамену.
Добавил Ваше дополнение к шпаргалке.
через поисковик) не покажете колаб по лоссам?
Я пропустил Ваш комментарий. Еще актуально ?