Синтетические наборы данных — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
м
Строка 1: Строка 1:
'''Синтетические данные''' — это наборы данных для применения в прикладных задачах (в том числе в машинном обучении), которые не были получены исключительно путём прямого сбора и измерений.<ref name="mcgrawhilldict">McGraw - Hill dictionary of scientific and technical terms / Под ред. Sybil P. Parker. - 3-е изд. - New York: McGraw - Hill book co., 1984</ref>.
+
{{Определение
 +
|definition='''Синтетические данные''' — это наборы данных для применения в прикладных задачах (в том числе в машинном обучении), которые не были получены исключительно путём прямого сбора и измерений.<ref name="mcgrawhilldict">McGraw - Hill dictionary of scientific and technical terms / Под ред. Sybil P. Parker. - 3-е изд. - New York: McGraw - Hill book co., 1984</ref>.
 +
}}
  
 
Нередко возникают ситуации, когда получение реальных данных сложно или дорого, но при этом известны требования к таким объектам, правила их генерации и законы распределения. Как правило, это происходит, когда речь идёт о чувствительных персональных данных — например, информации о банковских счетах. В таких случаях необходимые наборы данных можно программно сгенерировать.
 
Нередко возникают ситуации, когда получение реальных данных сложно или дорого, но при этом известны требования к таким объектам, правила их генерации и законы распределения. Как правило, это происходит, когда речь идёт о чувствительных персональных данных — например, информации о банковских счетах. В таких случаях необходимые наборы данных можно программно сгенерировать.
Строка 15: Строка 17:
 
В случае, когда реальные данные отсутствуют, наборы генерируются полностью случайным образом на основе некой статистической модели, которая учитывает законы распределения реальных данных. Однако, такой подход не всегда оправдывает себя из-за того, что синтетические данные могут не учитывать весь спектр возможных случаев, и полученная с помощью такого набора модель может давать непредсказуемые результаты в крайних случаях.
 
В случае, когда реальные данные отсутствуют, наборы генерируются полностью случайным образом на основе некой статистической модели, которая учитывает законы распределения реальных данных. Однако, такой подход не всегда оправдывает себя из-за того, что синтетические данные могут не учитывать весь спектр возможных случаев, и полученная с помощью такого набора модель может давать непредсказуемые результаты в крайних случаях.
  
Также применяется [[wikipedia:Data_augmentation|аугментация]] — генерация наборов на основе имеющихся реальных данных. К имеющимся данным применяются различные способы искажения: например, для изображений могут использоваться различные геометрические преобразования, искажения цвета, кадрирование, поворот, добавление шума и иные; для числовых данных -- добавление объектов с усреднёнными значениями, смешивание с объектами из другого распределения, добавление случайных выбросов, и прочие.
+
Также применяется [[wikipedia:Data_augmentation|аугментация]] — генерация наборов на основе имеющихся реальных данных. К имеющимся данным применяются различные способы искажения: например, для изображений могут использоваться различные геометрические преобразования, искажения цвета, кадрирование, поворот, добавление шума и иные. Для числовых данных могут использоваться такие искажения, как добавление объектов с усреднёнными значениями, смешивание с объектами из другого распределения, добавление случайных выбросов.
 
 
  
 
* Взять что-то из [[wikipedia:Oversampling_and_undersampling_in_data_analysis]].
 
* Взять что-то из [[wikipedia:Oversampling_and_undersampling_in_data_analysis]].
Строка 23: Строка 24:
 
== Достоинства ==
 
== Достоинства ==
  
* Возможность генерации наборов данных практически любого размера
+
* Возможность генерации наборов данных практически любого размера.
  
* Известность параметров генерации, а значит, и генеральной совокупности: можно судить о качестве выборочных оценок модели на параметры распределений, путём сравнения их с истинными параметрами
+
* Известность параметров генерации, а значит, и генеральной совокупности: можно судить о качестве выборочных оценок модели на параметры распределений путём сравнения их с истинными параметрами.
  
* Ускорение и удешевление процесса разработки: не нужно ждать, пока будет собран и размечен достаточный объём реальных данных
+
* Ускорение и удешевление процесса разработки: не нужно ждать, пока будет собран и размечен достаточный объём реальных данных.
  
* Повышение доступности больших объёмов данных
+
* Повышение доступности больших объёмов данных.
  
 
== Недостатки ==
 
== Недостатки ==
  
* Отсутствие универсального способа генерации, применимого для любых задач: в каждом конкретном случае необходимо дополнительное исследование требований, накладываемых на генерируемые данные
+
* Отсутствие универсального способа генерации, применимого для любых задач: в каждом конкретном случае необходимо дополнительное исследование требований, накладываемых на генерируемые данные.
  
* Отсутствие универсальных метрик качества и применимости генерируемых данных
+
* Отсутствие универсальных метрик качества и применимости генерируемых данных.
  
* Излишняя «стерильность» получаемых данных: в общем случае неизвестно, какими могут быть выбросы в реальных данных<ref>Если выбросы известны, то проблема может быть решена путём настройки параметров генератора.</ref>
+
* Излишняя «стерильность» получаемых данных: в общем случае неизвестно, какими могут быть выбросы в реальных данных<ref>Если выбросы известны, то проблема может быть решена путём настройки параметров генератора.</ref>.
  
 
== Примеры ==
 
== Примеры ==
  
=== NVIDIA и миниатюрные миры ===  
+
=== Автономный транспорт ===  
  
* NVidia использует синтетические данные для генерации "миниатюрных миров", которые затем применяются для обучения и иногда для тестирования алгоритмов управления беспилотными транспортными средствами (вот источник, книга от NVidia: https://www.nvidia.com/content/dam/en-zz/Solutions/deep-learning/resources/accelerating-ai-with-synthetic-data-ebook/accelerating-ai-with-synthetic-data-nvidia_web.pdf)
+
'''Автономный транспорт''' — это вид транспорта, управление которым осуществляется без участия человека при помощи оптических датчиков, систем геолокации и компьютерных алгоритмов<ref>Self-driving car — https://en.wikipedia.org/wiki/Self-driving_car — Retrieved January 8, 2020</ref>. При реализации алгоритмов управления автономным транспортом наиболее важно поведение транспортного средства в критических ситуациях, таких как помехи на дороге или некорректные показания сенсоров — от этого могут зависеть жизни людей. В реальных данных же, наоборот, в основном присутствуют штатные ситуации.
 +
 
 +
Для решения этой проблемы компания nVidia разработала платформу NVIDIA DRIVE Constellation<ref>[https://www.nvidia.com/content/dam/en-zz/Solutions/deep-learning/resources/accelerating-ai-with-synthetic-data-ebook/accelerating-ai-with-synthetic-data-nvidia_web.pdf El Emam, K. Accelerating AI with Synthetic Data] — Beijing, Boston, Farnham, Sebastopol, Tokyo: O'Reilly Media, Inc., 2020.</ref>, которая состоит из двух серверов. Один из них исполняет роль обучаемого транспортного средства, а второй непрерывно генерирует для первого различные «миниатюрные миры», включающие в себя симуляцию вывода с камеры, радара и лидаров.
 +
 
 +
* Postperception simulation
 +
* E2E simulation
  
 
=== TextSharpener ===
 
=== TextSharpener ===
Строка 54: Строка 60:
  
 
Один из известных алгоритмов такого рода — TextSharpener<ref name="TextSharpener">Unblurring images of text with convolutional neural networks — https://gardarandri.github.io/TextSharpener/ — Retrieved January 8, 2020</ref>. Этот алгоритм, разработанный в Университете Исландии и основанный на [[Сверточные нейронные сети|свёрточной нейронной сети]], позволяет убирать размытие текста на изображениях.
 
Один из известных алгоритмов такого рода — TextSharpener<ref name="TextSharpener">Unblurring images of text with convolutional neural networks — https://gardarandri.github.io/TextSharpener/ — Retrieved January 8, 2020</ref>. Этот алгоритм, разработанный в Университете Исландии и основанный на [[Сверточные нейронные сети|свёрточной нейронной сети]], позволяет убирать размытие текста на изображениях.
 
 
  
  

Версия 02:11, 8 января 2021

Определение:
Синтетические данные — это наборы данных для применения в прикладных задачах (в том числе в машинном обучении), которые не были получены исключительно путём прямого сбора и измерений.[1].


Нередко возникают ситуации, когда получение реальных данных сложно или дорого, но при этом известны требования к таким объектам, правила их генерации и законы распределения. Как правило, это происходит, когда речь идёт о чувствительных персональных данных — например, информации о банковских счетах. В таких случаях необходимые наборы данных можно программно сгенерировать.

Применение

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

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

Виды генерации

Существует два основных подхода к генерации синтетических наборов данных.

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

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

Достоинства

  • Возможность генерации наборов данных практически любого размера.
  • Известность параметров генерации, а значит, и генеральной совокупности: можно судить о качестве выборочных оценок модели на параметры распределений путём сравнения их с истинными параметрами.
  • Ускорение и удешевление процесса разработки: не нужно ждать, пока будет собран и размечен достаточный объём реальных данных.
  • Повышение доступности больших объёмов данных.

Недостатки

  • Отсутствие универсального способа генерации, применимого для любых задач: в каждом конкретном случае необходимо дополнительное исследование требований, накладываемых на генерируемые данные.
  • Отсутствие универсальных метрик качества и применимости генерируемых данных.
  • Излишняя «стерильность» получаемых данных: в общем случае неизвестно, какими могут быть выбросы в реальных данных[2].

Примеры

Автономный транспорт

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

Для решения этой проблемы компания nVidia разработала платформу NVIDIA DRIVE Constellation[4], которая состоит из двух серверов. Один из них исполняет роль обучаемого транспортного средства, а второй непрерывно генерирует для первого различные «миниатюрные миры», включающие в себя симуляцию вывода с камеры, радара и лидаров.

  • Postperception simulation
  • E2E simulation

TextSharpener

Пример работы TextSharpener. Слева — исходное изображение, посередине — размытое, справа — результат работы алгоритма.

Одно из самых наглядных применений аугментации данных — алгоритмы восстановления изображений. Для работы таких алгоритмов исходный набор изображений расширяется их копиями, к которым применяются некие преобразования из фиксированного набора. На основе полученных изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми — исходные.

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

Один из известных алгоритмов такого рода — TextSharpener[5]. Этот алгоритм, разработанный в Университете Исландии и основанный на свёрточной нейронной сети, позволяет убирать размытие текста на изображениях.


TODO:

  • Одежда (??)
  • Текст (ну не, не книжки из бреда, сгенерированного Марковскими цепями, а например картинки, в которых текст как-то хитро расположен: https://www.robots.ox.ac.uk/~vgg/data/scenetext/)


Примечания

  1. McGraw - Hill dictionary of scientific and technical terms / Под ред. Sybil P. Parker. - 3-е изд. - New York: McGraw - Hill book co., 1984
  2. Если выбросы известны, то проблема может быть решена путём настройки параметров генератора.
  3. Self-driving car — https://en.wikipedia.org/wiki/Self-driving_car — Retrieved January 8, 2020
  4. El Emam, K. Accelerating AI with Synthetic Data — Beijing, Boston, Farnham, Sebastopol, Tokyo: O'Reilly Media, Inc., 2020.
  5. Unblurring images of text with convolutional neural networks — https://gardarandri.github.io/TextSharpener/ — Retrieved January 8, 2020