Шум в данных
Откуда он берется, как с ним бороться и нужно ли это.
Шумы есть почти во всех датасетах. Рассказываем, как это влияет на обучение, как избавиться от шума и почему он может повысить точность алгоритма.
Почему возникает шум
Модель может быть чувствительна к незначительным изменениям на входе. В таких случаях она воспринимает шум как сигнал и добавляет в обработку. Это приводит к переобучению.
Причины шума зависят от типа данных.
Например, при распознавании изображений графический шум возникает из-за:
- некачественного/неисправного сенсора;
- квантового шума;
- сжатия изображений;
- изменения при сканировании или постобработке фото.
Текстовый шум появляется из-за:
- орфографических ошибок;
- сленговой и неформальной речи;
- искажения во время оптического распознавания текста (OCR).
Подобные проблемы возникают и с другими форматами данных — аудио, видео и даже рентгеновскими снимками.

Способы борьбы с шумом
Ключевой метод — уменьшение размерности
Уменьшить размерность — значит сократить количество параметров, которыми описывают данные. Есть два способа:
#1. сократить количество заданных элементов для функции (например, задать ключевые характеристики о предмете вместо всех существующих);
#2. уменьшить количество выдач результатов функции.
Рассмотрим методы, связанные с уменьшением размерности.
- Анализ главных компонентов (PCA)
Метод заключается в построении и нахождении линейных взаимосвязей, которые коррелируют с самыми важными факторами функции. Например, на траекторию полета ракеты влияют мощность двигателей, скорость разгона, объем топлива и время сжигания. Трение воздуха и температура тоже имеют значение, но они второстепенны.
Больше о методе — в статье. - Автоэнкодер
Это нейросеть, которая трансформирует входные данные алгоритма и перекодирует их на выход. Автоэнкодер находится внутри обучаемой модели. Он состоит из двух частей: энкодера и декодера.
Автоэнкодер сжимает входные данные для представления в скрытом пространстве, а затем восстанавливает их.
На слой автокодировщика накладывают ограничения: сокращают количество активных нейронов в промежуточном слое или устанавливают размерность, меньшую, чем во входном и выходном слое. Нейросеть ищет обобщения во входных данных, а затем сжимает их. Это позволяет алгоритму научиться выделять общие признаки из входных данных. Автоэнкодер эффективен, если отклик на выходе близок к входному.
Зачем добавлять шум
Иногда шум помогает улучшить результативность тренировок и точность модели.
Обучение с малым набором данных приводит к тому, что система запоминает примеры данных, а не обобщает их. Кроме того, небольшой датасет ограничивает способы описания структуры. Уменьшение точек или показателей приводит к менее определенной функции отображения, то есть модель сложнее интерпретировать.
Не всегда удается получить больше релевантных данных. Но их можно сгенерировать, если добавить к обучающей выборке новые «зашумленные» данные. Шум помогает в случаях, когда незначительные изменения в начальных условиях могут привести к существенным различиям.
Самый популярный способ — добавить шум на входы, но его можно присоединить и к другим частям нейросети. Например, к весам, градиентам или на выходе.
Во время тренировки также важно определить оптимальные параметры шума, так как небольшие показатели не будут иметь эффекта, а переизбыток шума сделает функцию сложноизучаемой.
Основные виды шумов, которые добавляют при обучении
- Гауссовский шум
Его распределение совпадает с плотностью вероятности нормального распределения. Примеры нормального распределения часто встречаются в реальной жизни. Например, скорость молекул в воздухе. Некоторые из них будут двигаться быстрее или медленнее нормы, но подавляющее большинство будет близким к средним показателям.
Под нормальное распределение подпадает также рост и вес людей, и даже показатели интеллекта.
Этот шум считается нейтральным из-за равномерного распределения. Плотность его сигнала одинакова на каждой частоте. - Цветные шумы
- Розовый шум
«Розовым» называют любой шум, плотность которого уменьшается, хотя зависимость его интенсивности от частоты бывает разной. Например, красный шум «затухает» быстрее других. - Синий шум
Он отличается увеличением спектральной плотности сигнала с частотой. Спектрограмма синего шума — зеркальное отражение розового.
- Розовый шум
Гауссовский и цветные шумы используются для обучений неросетей предсказанию временных рядов (параметров, которые меняются со временем).
- Шум соли и перца (salt and pepper noise)
Это графический шум на изображениях. Обычно он возникает из-за резких нарушений передачи сигнала изображения и проявляется как случайно возникающие черные и белые пиксели. Искусственно его, как и «цветные шумы», можно создать в библиотеках Python (Scikit-image или Numpy).

Источник: raspository.com
Как используют шумы
Исследователи из Беркли создают еле заметный шум в записях речи, из-за которого система распознает фразу иначе. Такая возможность появляется по причине уязвимости в состязательных примерах. Технологию можно использовать для взлома голосовых помощников (как Siri или Alexa) и выполнения ими команд. Также алгоритм можно применять для защиты (например, чтобы ограничить распознавание речи смартфонами и компьютерами).
Ученые университета Сан-Паулу в работе Deep Convolutional Neural Networks and Noisy Images исследовали добавления разных типов шума к входным данным и их влияние на обучение. Для этого использовали три библиотеки изображений MNIST (база данных из образцов рукописного написания цифр), CIFAR10 (база из 10 классов изображений с низким разрешением) и SVHN (база, похожая по типу на MNIST, но с большим количеством маркированных данных). После экспериментов ученые обнаружили, что, если к нейросетям применялось шумопоглощение, их точность уменьшалась.
Шум можно добавить к любой нейросети, но некоторым он необходим больше. Так, ученые из Национальной лаборатории Лос-Аламоса, обнаружили, что результативность их модели повышается, если вводить систему в состояние, похожее на сон (для этого использовали гауссовский шум).