Синтетические наборы данных — различия между версиями
264264 (обсуждение | вклад) |
264264 (обсуждение | вклад) |
||
Строка 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) | |
+ | Одно из самых наглядных применений аугментации данных -- создание искажённых изображений для последующего обучения алгоритмов восстановления изображений. Исходный набор изображений расширяется их копиями, к которым были применены преобразования из какого-то фиксированного набора фильтров и преобразований (таких как поворот, размытие, зашумление и т.д.) и на основе этих изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми -- исходные изображения. | ||
+ | В самом деле, генерация такого датасета вручную сопряжена с определёнными трудностями (получить фотографию и её же нечёткую копию достаточно затруднительно), а применение преобразований к чётким фотографиям можно автоматизировать. | ||
+ | Тогда, если исходные изображения достаточно хорошо описывали источник данных, то полученный датасет можно будет применять в дальнейшем для обучения алгоритма восстановления изображений, целью которого будет устранение применённых преобразований. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Достоинства == | == Достоинства == | ||
Строка 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]. В то же время, «производные данные» (согласно второму словарю) -- это постоянно-хранимая информация, которую используют специалисты в своей повседневной работе.
Виды генерации
Существует два основных подхода к генерации синтетических наборов данных.
В случае, когда реальные данные отсутствуют, наборы генерируются полностью случайным образом на основе некой статистической модели, которая учитывает законы распределения реальных данных. Однако, такой подход не всегда оправдывает себя из-за того, что синтетические данные могут не учитывать весь спектр случаев (переформулировать).
Также применяется аугментация — генерация наборов на основе имеющихся реальных данных. К имеющимся данным применяются различные способы искажения: например, для изображений могут использоваться различные геометрические преобразования, искажения цвета, кадрирование, поворот, добавление шума и иные; для числовых данных -- добавление объектов с усреднёнными значениями, смешивание с объектами из другого распределения, добавление случайных выбросов, и прочие.
- Взять что-то из wikipedia:Oversampling_and_undersampling_in_data_analysis.
- Можно картинку из https://habr.com/ru/company/smartengines/blog/264677/
Применение
Нередко возникают ситуации, когда получение реальных данных сложно или дорого, но при этом известны требования к таким объектам, правила их генерации и законы распределения. Как правило, это происходит, когда речь идёт о чувствительных персональных данных — например, информации о банковских счетах. В таких случаях необходимые наборы данных можно программно сгенерировать.
Сгенерированные объекты можно использовать в задаче обучения с учителем для расширения обучающего множества, сведя её к задачам частичного обучения и самообучения. В тестовых множествах использовать синтетические наборы данных нельзя: в них должны быть только реальные объекты.
При генерации синтетических наборов данных необходимо учитывать специфику каждого конкретного случая, общего универсального способа генерации данных не существует.
(Этот параграф как-то надо связать со вторым примером, который TextSharpener) Одно из самых наглядных применений аугментации данных -- создание искажённых изображений для последующего обучения алгоритмов восстановления изображений. Исходный набор изображений расширяется их копиями, к которым были применены преобразования из какого-то фиксированного набора фильтров и преобразований (таких как поворот, размытие, зашумление и т.д.) и на основе этих изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми -- исходные изображения. В самом деле, генерация такого датасета вручную сопряжена с определёнными трудностями (получить фотографию и её же нечёткую копию достаточно затруднительно), а применение преобразований к чётким фотографиям можно автоматизировать. Тогда, если исходные изображения достаточно хорошо описывали источник данных, то полученный датасет можно будет применять в дальнейшем для обучения алгоритма восстановления изображений, целью которого будет устранение применённых преобразований.
Достоинства
- Возможность генерации датасетов практически любого размера;
- Известность параметров генерации, а значит, и генеральной совокупности -- можно судить о качестве выборочных оценок модели на параметры распределений, путём сравнения их с истинными параметрами;
- Ускорение и удешевление процесса разработки -- не нужно ждать, пока будет собран и/или размечен достаточный объём реальных данных;
- Повышение доступности больших объёмов данных.
Недостатки
- Отсутствие универсального способа генерации, применимого для любых задач -- в каждом конкретном случае необходимо дополнительное исследование того, какие требования накладываются на генерируемые данные;
- Отсутствие универсальных метрик качества и применимости генерируемых данных;
- Возможна излишняя "стерильность" получаемых данных, так как в общем случае неизвестно, какими могут быть выбросы в реальных данных. Если же это известно, то проблема может быть решена путём настройки параметров генератора.
Примеры
Тут какие наборы бывают.
- 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/
TODO:
- Стулья (например рассказать про https://lmb.informatik.uni-freiburg.de/resources/datasets/FlyingChairs.en.html)
- Одежда (??)
- Комнаты (частично https://structured3d-dataset.org/)
- Текст (ну не, не книжки из бреда, сгенерированного Марковскими цепями, а например картинки, в которых текст как-то хитро расположен: https://www.robots.ox.ac.uk/~vgg/data/scenetext/)
Примечания
- ↑ McGraw - Hill dictionary of scientific and technical terms / Под ред. Sybil P. Parker. - 3-е изд. - New York: McGraw - Hill book co., 1984