Спросить
Войти

ПРИМЕНЕНИЕ АВТОКОДИРОВЩИКОВ ДЛЯ УСТРАНЕНИЯ ШУМОВ С ИЗОБРАЖЕНИЙ

Автор: Ваняшкин Ю.Ю

ПРИМЕНЕНИЕ АВТОКОДИРОВЩИКОВ ДЛЯ УСТРАНЕНИЯ

ШУМОВ С ИЗОБРАЖЕНИЙ

APPLICATION OF AUTOCODERS FOR REMOVING NOISES FROM

Ваняшкин Ю.Ю., студент,

МГТУ им. Н.Э. Баумана, кафедра «Системы обработки информации и

управления»

Макаров Д.А., студент,

МГТУ им. Н.Э. Баумана, кафедра «Системы обработки информации и

управления»

Попова И.А.., студент,

МГТУ им. Н.Э. Баумана, кафедра «Системы обработки информации и

управления»

Соболева Е.Д., студент,

МГТУ им. Н.Э. Баумана, кафедра «Системы обработки информации и управления»

Vanyashkin Yu.Yu., yu.yu.van@yandex.ru Makarov D.A., makdenis.1997@gmail.com Soboleva E.D., ls1997@yandex.ru Popova I.A., popovai1@student.bmstu.ru

В статье рассмотрено применение различных видов автокодировщиков, продемонстрированы их особенности. Рассмотрена архитектура автокодировщиков. Приведен пример шумоподавляющего

УДК 004.5

Аннотация

автокодировщика. В ходе статьи была создана и обучена модель для удаления искажений с изображений с помощью автокодировщика. Для достижения высокой точности работы автокодировщика использовались методы глубокого обучения. Автокодировщик реализован при помощи сверточных нейронных сетей в приложениях компьютерного обнаружения. В качестве набора данных для обучения автокодировщика был выбран набор изображений рукописных цифр MNIST.

Annotation

The article discusses the use of auto-encoders, showing their features. The architecture of autocoders is considered. An example of a noise-canceling auto encoder is provided. A model has been created to remove distortions from images using an auto encoder. To achieve high accuracy of the autocoder, we used deep learning methods. The autocoder is implemented using convolutional neural networks in computer detection applications. A set of handwritten mnist images was selected as the data set for training the autocoder.

Автокодировщики представляют собой нейронную сеть без учителя, они предназначены для преобразования данных в низкоразмерные данные. Автокодировщики принимают на вход набор данных, сжимают входные данные в вектор и восстанавливают входные данные из этого скрытого представления.Они обычно используются для уменьшения размерности, уменьшения шума, обнаружения аномалий и выбросов, а также поиска информации. Автокодировщики полезны как в компьютерном зрении, так и при обработке естественного языка (NLP) и понимании текста. Низкоразмерное представление данных позволит увеличить производительность вычислений, уменьшить время их выполнения и

потребление памяти. На рисунке 1 представлена базовая архитектура автокодировщиков. Они состоят из кодера и декодера. Кодер принимает входные данные и сжимает их в скрытое представление (вектор), размерность которого существенно меньше размерности входных данных. Если обозначить входные данные как x, а кодировщик как E, то выходное представление скрытого пространства s будет s = E Декодер отвечает за принятие представления s в скрытом пространстве и восстановление исходного ввода.

Часто кодер и декодер состоят из одного слоя, однако использование нескольких слоев может дать некоторые преимущества. Дополнительные скрытые слои могут позволить снизить вычислительные затраты на представление некоторых функций, а также уменьшить количество данных, которые необходимы для некоторых функций. Также более глубокие автокодировщики способны лучше сжимать данные.

Latent Representation

Рисунок 1. Архитектура автокодировщика Автокодировщики можно рассматривать как особый случай сетей с прямой связью, и для их обучения использовать те же технологии, что для сетей с прямой связью. Однако, они так же могут использовать метод рециркуляции(алгоритм, в котором сравниваются активации сети на входных и выходных данных).

Для обучения автокодировщиков вводятся данные, производится их восстановление и минимизируется функция потерь, которая представляет собой различие между входными данными и декодированными. В идеальном автокодировщике входные и выходные данные полностью

совпадают, хотя этого сложно достичь на практике. Хороший автокодировщик должен быть достаточно нечувствительным к входным данным, чтобы модель не просто запоминала и переопределяла входные данные, но при этом уметь учитывать только те вариации данных, которые необходимы для восстановления входных данных, то есть не учитывать избыточные данные, но вычленять корреляции между входными характеристиками. [1]

В задачах машинного обучения используются разные виды автокодировщиков[2]:

■ Сжимающий(и^егсотр^е) автокодировщик;

■ Глубокийфеер) автокодировщик;

■ Сверточный(Сопуо1Ш:ют1) автокодировщик;

■ Шумоподавляюший(Denoising) автокодировщик^АЕ);

■ Разреженный^рагее) автокодировщик.

Шумоподавляющие автокодировщики являются расширением сжимающего(и^егсотр^е) автокодировщика и представляют его стохастическую версию. [3]

Суть метода заключается в том, что преднамеренно добавляется шум к необработанному вводу перед его передачей в нейронную сеть. Шумоподавление может быть достигнуто с использованием стохастического отображения. Автокодировщик создает искаженную копию входных данных, добавляя некоторый шум. Это помогает избежать автоматического копирования автокодировщиком входных данных в выходные без изучения особенностей, присущих данным. Зашумление входных данных может быть сделано с помощью присвоения нуля части ввода. Шумоподавляющий автокодировщик должен убрать искажение, чтобы генерировать выходные данные, подобные входным. Автокодировщик минимизирует функцию потерь между выходным узлом и зашумленным(поврежденным) входом.

Научно-образовательный журнал для студентов и преподавателей №10/2020

При таком подходе модель не может просто разработать отображение, которое запоминает тренировочные данные, потому что входные и выходные данные больше не совпадают. Скорее, модель изучает векторное поле для отображения входных данных в низкоразмерный коллектор. Коллектор описывает область высокой плотности, где концентрируются входные данные. Если этот коллектор точно описывает естественные данные, мы эффективно «отбросили» добавленный шум. Шумоподавляющий автокодировщик является стохастическим автокодировщиком, так как используется стохастический процесс искажения для установки некоторых входов в ноль. Схема шумоподавляющего автокодировщика представлена на рисунке 2.

Ь=|Х -д(|(ж))|

Рисунок 2. Шумоподавляющий (Denoising) автокодировщик - входные

данные зашумлены. Создадим модель для зашумления изображения и научим автокодировщик убирать искажения из данных. В результате автокодировщик будет находить наиболее существенные признаки и изучать более редкое представление данных. [4] Добавление шума в набор данных: pure_data = input_train pure_data_test = input_test

noise_generator = np.random.normal(0, 1, pure_data.shape)

noise_generator_test = np.random.normal(0, 1, pure_data_testshape) noisy_pure_data = pure_data + noise_factor * noise_generator noisy_pure_data_test = pure_data_test + noise_factor * noise_generator_test Создание модели: recognition_model = Sequential() recognition_model.add(Conv2D(64, kernel_size=(3, 3), kernel_constraint=max_norm(max_norm_value), activation=&relu&, kernel_initializer=&he_uniform&, input_shape=input_shape)) recognition_model.add(Conv2D(32, kernel_size=(3, 3), kernel_constraint=max_norm(max_norm_value), activation=&relu&, kernel_initializer=&he_uniform&))

recognition_model.add(Conv2DTranspose(32, kernel_size=(3,3), kernel_constraint=max_norm(max_norm_value), activation=&relu&, kernel_initializer=&he_uniform&))

recognition_model.add(Conv2DTranspose(64, kernel_size=(3,3), kernel_constraint=max_norm(max_norm_value), activation=&relu&, kernel_initializer=&he_uniform&)) recognition_model.add(Conv2D(1, kernel_size=(3, 3), kernel_constraint=max_norm(max_norm_value), activation=&sigmoid&, padding=&same&)) recognition_model .summary() Компиляция и подгонка данных:

recognition_model.compile(optimizer=&adam&, loss=&binary_crossentropy&)

recognition_model .fit(noisy_pure_data, pure_data,

epochs=no_epochs,

batch_size=batch_size,

validation_split=validation_split)

Очищение от шума изображений:

samples = noisy_pure_data_test[:number_of_visualizations]

targets = target_test[:number_of_visualizations] denoised_images = recognition_model.predict(samples)

В качестве набора данных для обучения автокодировщика был выбран набор изображений рукописных цифр MNIST. Он содержит содержит 60 000 обучающих образцов и 10 000 пробных образцов.

Добавим шум к данным, после чего можно будет подавать как зашумленные, так и чистые данные в автокодировщик, который обучается удалению шума. [5] Поскольку следует удалить шум с изображений, имеет смысл использовать сверточные слои для сегмента кодера и транспонированные свертки для сегмента декодера. Мы обучаем нейронную сеть так, чтобы восстановленные автокодировщиком цифры были похожи на оригинальные изображения входных цифр из тестовой выборки. [6]

В статье рассматривались методы глубокого обучения с помощью шумоподавляющего автоэнкодировщика, реализованного при помощи сверточных нейронных сетей(СКЫ) в приложениях компьютерного обнаружения. Таким образом, были исследованы возможности автокодировщика для удаления шума(искажения) с изображений путем создания модели с использованием среды глубокого обучения Keras.

Литература

1. Хайкин С. Нейронные сети: полный курс, 2-е издание. Пер. с англ. М.: Издательский дом «Вильямс», 2008. 1104 с.: ил. Парал. тит. англ.
2. Jesse, Russell. Искусственная нейронная сеть. - М.: VSD,
2012. - 86 c.
3. A. Krizhevsky, I. Sutskever, G.E. Hinton. ImageNet classification with deep convolutional neural networks // Advances in Neural Information Processing Systems 25, 2012. Р 1106-1114.
4. Антонио Джулли, Суджит Пал. Библиотека Keras - инструмент

глубокого обучения. - М.: ДМК Пресс, 2018. - 294 с.

5. Автокодировщики в Keras. [Электронный ресурс]. URL: https://habr.com/ru/post/331500/ (дата обращения: 14.04.2020)
6. А.В. Созыкин. Обзор инструментов обучения глубоких нейронных сетей. Вестник Южно-Уральского государственного университета.-2017.-№3.-с.28-59.

Literature

1. Khaikin S. Neural networks: full course, 2nd edition. Per. from English M.: Williams Publishing House, 2008. 1104 pp., Ill. Parall. tit. English
2. Jesse, Russell. Artificial neural network. - M .: VSD, 2012 .-- 86 p.
3. A. Krizhevsky, I. Sutskever, G.E. Hinton. ImageNet classification with deep convolutional neural networks // Advances in Neural Information Processing Systems 25, 2012. P 1106-1114.
4. Antonio Giuli, Sujit Pal. Keras Library is a deep learning tool. - M.: DMK Press, 2018 .-- 294 p.
5. Auto-encoders in Keras. [Electronic resource]. URL: https://habr.com/en/post/331500/ (accessed date: 04/14/2020)
6. A.V. Sozykin. Overview of deep neural network learning tools. Bulletin of the South Ural State University.-2017.-№3.-p.28-59.
АВТОКОДИРОВЩИК ШУМОПОДАВЛЕНИЕ НЕЙРОННАЯ СЕТЬ ОБУЧЕНИЕ МОДЕЛЬ ДАННЫЕ auto encoder noise suppression neural network training
Другие работы в данной теме:
Контакты
Обратная связь
support@uchimsya.com
Учимся
Общая информация
Разделы
Тесты