Шум в данных

Шум в данных

Откуда он берется, как с ним бороться и нужно ли это.

Шумы есть почти во всех датасетах. Рассказываем, как это влияет на обучение, как избавиться от шума и почему он может повысить точность алгоритма.

Почему возникает шум
 

Модель может быть чувствительна к незначительным изменениям на входе. В таких случаях она воспринимает шум как сигнал и добавляет в обработку. Это приводит к переобучению.

Причины шума зависят от типа данных. 

Например, при распознавании изображений графический шум возникает из-за:

  • некачественного/неисправного сенсора;
  • квантового шума;
  • сжатия изображений;
  • изменения при сканировании или постобработке фото.

Текстовый шум появляется из-за:

  • орфографических ошибок; 
  • сленговой и неформальной речи;
  • искажения во время оптического распознавания текста (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, но с большим количеством маркированных данных). После экспериментов ученые обнаружили, что, если к нейросетям применялось шумопоглощение, их точность уменьшалась.  

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

Ещё статьи
Инструкция от Product Analyst Lead в SQUAD.
История, архитектура и основы обучения.