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

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 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>. В то же время, «производные данные» (согласно второму словарю) -- это постоянно-хранимая информация, которую используют специалисты в своей повседневной работе.
 
'''Синтетические данные''' — это «производные» данные, применимые в конкретной ситуации, которые не были получены путём прямого сбора и измерений<ref name="mcgrawhilldict">McGraw - Hill dictionary of scientific and technical terms / Под ред. Sybil P. Parker. - 3-е изд. - New York: McGraw - Hill book co., 1984</ref>. В то же время, «производные данные» (согласно второму словарю) -- это постоянно-хранимая информация, которую используют специалисты в своей повседневной работе.
 +
 +
== Виды генерации ==
 +
 +
Существует два основных подхода к генерации синтетических наборов данных.
 +
 +
В случае, когда реальные данные отсутствуют, наборы генерируются полностью случайным образом на основе некой статистической модели, которая учитывает законы распределения реальных данных. Однако, такой подход не всегда оправдывает себя из-за того, что синтетические данные могут не учитывать весь спектр случаев (переформулировать).
 +
 +
Также применяется [[wikipedia:Data_augmentation|аугментация]] — генерация наборов на основе имеющихся реальных данных. К имеющимся данным применяются различные способы искажения: например, для изображений могут использоваться различные геометрические преобразования, искажения цвета, кадрирование, поворот, добавление шума и иные; для числовых данных -- добавление объектов с усреднёнными значениями, смешивание с объектами из другого распределения, добавление случайных выбросов, и прочие.
 +
 +
 +
* Взять что-то из [[wikipedia:Oversampling_and_undersampling_in_data_analysis]].
 +
* Можно картинку из https://habr.com/ru/company/smartengines/blog/264677/
 +
  
 
== Применение ==
 
== Применение ==
Строка 9: Строка 22:
 
При генерации синтетических наборов данных необходимо учитывать специфику каждого конкретного случая, общего универсального способа генерации данных не существует.
 
При генерации синтетических наборов данных необходимо учитывать специфику каждого конкретного случая, общего универсального способа генерации данных не существует.
  
== Генерация ==
+
(Этот параграф как-то надо связать со вторым примером, который TextSharpener)
 +
Одно из самых наглядных применений аугментации данных -- создание искажённых изображений для последующего обучения алгоритмов восстановления изображений. Исходный набор изображений расширяется их копиями, к которым были применены преобразования из какого-то фиксированного набора фильтров и преобразований (таких как поворот, размытие, зашумление и т.д.) и на основе этих изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми -- исходные изображения.
 +
В самом деле, генерация такого датасета вручную сопряжена с определёнными трудностями (получить фотографию и её же нечёткую копию достаточно затруднительно), а применение преобразований к чётким фотографиям можно автоматизировать.
 +
Тогда, если исходные изображения достаточно хорошо описывали источник данных, то полученный датасет можно будет применять в дальнейшем для обучения алгоритма восстановления изображений, целью которого будет устранение применённых преобразований.
  
Существует два основных подхода к генерации синтетических наборов данных.
 
 
В случае, когда реальные данные отсутствуют, наборы генерируются полностью случайным образом на основе некой статистической модели, которая учитывает законы распределения реальных данных. Однако, такой подход не всегда оправдывает себя из-за того, что синтетические данные могут не учитывать весь спектр случаев (переформулировать).
 
 
Также применяется [[wikipedia:Data_augmentation|аугментация]] — генерация наборов на основе имеющихся реальных данных. К имеющимся данным применяются различные способы искажения: например, для изображений могут использоваться различные геометрические преобразования, искажения цвета, кадрирование, поворот, добавление шума и иные.
 
 
* Взять что-то из [[wikipedia:Oversampling_and_undersampling_in_data_analysis]].
 
* Можно картинку из https://habr.com/ru/company/smartengines/blog/264677/
 
  
 
== Достоинства ==
 
== Достоинства ==
Строка 44: Строка 52:
  
 
* 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)
 
* 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)
 +
 +
* (Этот пример надо как-то связать с параграфом про применение) Пример генератора изображений с искажениями для использования при обучении алгоритма восстановления: https://gardarandri.github.io/TextSharpener/
  
  

Версия 00:51, 8 января 2021

Синтетические данные — это «производные» данные, применимые в конкретной ситуации, которые не были получены путём прямого сбора и измерений[1]. В то же время, «производные данные» (согласно второму словарю) -- это постоянно-хранимая информация, которую используют специалисты в своей повседневной работе.

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

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

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

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



Применение

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

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

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

(Этот параграф как-то надо связать со вторым примером, который TextSharpener) Одно из самых наглядных применений аугментации данных -- создание искажённых изображений для последующего обучения алгоритмов восстановления изображений. Исходный набор изображений расширяется их копиями, к которым были применены преобразования из какого-то фиксированного набора фильтров и преобразований (таких как поворот, размытие, зашумление и т.д.) и на основе этих изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми -- исходные изображения. В самом деле, генерация такого датасета вручную сопряжена с определёнными трудностями (получить фотографию и её же нечёткую копию достаточно затруднительно), а применение преобразований к чётким фотографиям можно автоматизировать. Тогда, если исходные изображения достаточно хорошо описывали источник данных, то полученный датасет можно будет применять в дальнейшем для обучения алгоритма восстановления изображений, целью которого будет устранение применённых преобразований.


Достоинства

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


Недостатки

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

Примеры

Тут какие наборы бывают.

  • (Этот пример надо как-то связать с параграфом про применение) Пример генератора изображений с искажениями для использования при обучении алгоритма восстановления: https://gardarandri.github.io/TextSharpener/


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