Изменения

Перейти к: навигация, поиск

Синтетические наборы данных

33 байта убрано, 01:22, 8 января 2021
м
Нет описания правки
'''Синтетические данные''' — это «производные» данные, применимые наборы данных для применения в прикладных задачах (в том числе в конкретной ситуациимашинном обучении), которые не были получены исключительно путём прямого сбора и измерений.<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|аугментация]] — генерация наборов на основе имеющихся реальных данных. К имеющимся данным применяются различные способы искажения: например, для изображений могут использоваться различные геометрические преобразования, искажения цвета, кадрирование, поворот, добавление шума и иные; для числовых данных -- добавление объектов с усреднёнными значениями, смешивание с объектами из другого распределения, добавление случайных выбросов, и прочие.
* Можно картинку из https://habr.com/ru/company/smartengines/blog/264677/
== Достоинства ==
== Применение == Нередко возникают ситуации, когда получение реальных данных сложно или дорого, но при этом известны требования к таким объектам, правила их * Возможность генерации и законы распределения. Как правило, это происходит, когда речь идёт о чувствительных персональных данных — например, информации о банковских счетах. В таких случаях необходимые наборы наборов данных можно программно сгенерировать.практически любого размера
Сгенерированные объекты можно использовать в задаче обучения с учителем для расширения обучающего множества* Известность параметров генерации, а значит, сведя её к задачам частичного обучения и самообучения. В тестовых множествах использовать синтетические наборы данных нельзягенеральной совокупности: в них должны быть только реальные объекты.можно судить о качестве выборочных оценок модели на параметры распределений, путём сравнения их с истинными параметрами
При генерации синтетических наборов данных необходимо учитывать специфику каждого конкретного случая* Ускорение и удешевление процесса разработки: не нужно ждать, общего универсального способа генерации пока будет собран и размечен достаточный объём реальных данных не существует.
(Этот параграф как-то надо связать со вторым примером, который TextSharpener)Одно из самых наглядных применений аугментации * Повышение доступности больших объёмов данных -- создание искажённых изображений для последующего обучения алгоритмов восстановления изображений. Исходный набор изображений расширяется их копиями, к которым были применены преобразования из какого-то фиксированного набора фильтров и преобразований (таких как поворот, размытие, зашумление и т.д.) и на основе этих изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми -- исходные изображения.В самом деле, генерация такого датасета вручную сопряжена с определёнными трудностями (получить фотографию и её же нечёткую копию достаточно затруднительно), а применение преобразований к чётким фотографиям можно автоматизировать.Тогда, если исходные изображения достаточно хорошо описывали источник данных, то полученный датасет можно будет применять в дальнейшем для обучения алгоритма восстановления изображений, целью которого будет устранение применённых преобразований.
== Недостатки ==
== Достоинства ==* Отсутствие универсального способа генерации, применимого для любых задач: в каждом конкретном случае необходимо дополнительное исследование требований, накладываемых на генерируемые данные
* Возможность генерации датасетов практически любого размера;Отсутствие универсальных метрик качества и применимости генерируемых данных
* Известность параметров генерацииИзлишняя «стерильность» получаемых данных: в общем случае неизвестно, а значит, и генеральной совокупности -- можно судить о качестве выборочных оценок модели на параметры распределенийкакими могут быть выбросы в реальных данных<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)
== Недостатки = TextSharpener ===
* Отсутствие универсального способа генерации[[Файл:TextSharpener-Identity.png|200px|thumb|right|Пример работы TextSharpener. Слева — исходное изображение, применимого для любых задач -- в каждом конкретном случае необходимо дополнительное исследование тогопосередине — размытое, какие требования накладываются на генерируемые данные;справа — результат работы алгоритма.]]
* Отсутствие универсальных метрик качества и применимости генерируемых Одно из самых наглядных применений аугментации данных;— алгоритмы восстановления изображений. Для работы таких алгоритмов исходный набор изображений расширяется их копиями, к которым применяются некие преобразования из фиксированного набора. На основе полученных изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми — исходные.
* Возможна излишняя "стерильность" получаемых данныхВ самом деле, получить реальные данные для такой задачи — фотографию и её же нечеткую копию — довольно затруднительно, так как в общем случае неизвестноа применение таких преобразований довольно легко автоматизируется. Таким образом, какими могут быть выбросы в реальных если исходные изображения достаточно хорошо описывали источник данных. Если же это известно, то проблема может быть решена путём настройки параметров генератораполученный датасет можно применять для обучения алгоритма восстановления изображений, устраняющего применённые преобразования.
Один из известных алгоритмов такого рода — TextSharpener<ref name== Примеры =="TextSharpener">Unblurring images of text with convolutional neural networks — https://gardarandri.github.io/TextSharpener/ — Retrieved January 8, 2020</ref>. Этот алгоритм, разработанный в Университете Исландии и основанный на [[Сверточные нейронные сети|свёрточной нейронной сети]], позволяет убирать размытие текста на изображениях.
Тут какие наборы бывают.
 
* 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/

Навигация