<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=176.59.23.48&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=176.59.23.48&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/176.59.23.48"/>
		<updated>2026-04-11T04:13:34Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B8%D0%BD%D1%82%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=79406</id>
		<title>Синтетические наборы данных</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B8%D0%BD%D1%82%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=79406"/>
				<updated>2021-01-20T20:15:52Z</updated>
		
		<summary type="html">&lt;p&gt;176.59.23.48: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition='''Синтетические данные''' — это программно сгенерированные данные, используемые в прикладных задачах (в том числе в машинном обучении).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Нередко возникают ситуации, когда получение реальных данных сложно или дорого, но при этом известны требования к таким объектам, правила создания и законы распределения. Как правило, это происходит, когда речь идёт о чувствительных персональных данных — например, информации о банковских счетах. В таких случаях необходимые наборы данных можно [[Генерация объектов|программно сгенерировать]].&lt;br /&gt;
&lt;br /&gt;
== Применение ==&lt;br /&gt;
&lt;br /&gt;
Сгенерированные объекты можно использовать в [[Общие понятия#Классификация задач машинного обучения|задаче обучения с учителем]] для расширения обучающего множества, сведя её к задачам частичного обучения и самообучения. В тестовых множествах использовать синтетические наборы данных нельзя: в них должны быть только реальные объекты.&lt;br /&gt;
&lt;br /&gt;
Синтетические данные используют не только при недоступности реальных, но и для того, чтобы изменить распределение классов в уже имеющихся данных, дополнив их по [[Алгоритмы сэмплирования|определённому алгоритму]]&amp;lt;ref name=&amp;quot;wiki:oversampling&amp;quot;&amp;gt;Oversampling and undersampling in data analysis — https://en.wikipedia.org/wiki/Oversampling_and_undersampling_in_data_analysis — Retrieved January 11, 2021&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
При генерации синтетических наборов данных необходимо учитывать специфику каждого конкретного случая, общего алгоритма, подходящего для всех случаев не существует.  Как правило, общие алгоритмы наподобие добавления средних значений оказываются нерепрезентативными.&lt;br /&gt;
&lt;br /&gt;
== Виды генерации ==&lt;br /&gt;
&lt;br /&gt;
Существует два основных подхода к генерации синтетических наборов данных.&lt;br /&gt;
&lt;br /&gt;
В случае, когда реальные данные отсутствуют, наборы генерируются полностью случайным образом на основе некой статистической модели, которая учитывает законы распределения реальных данных. Однако, такой подход не всегда оправдывает себя из-за того, что синтетические данные могут не учитывать весь спектр возможных случаев, и полученная с помощью такого набора модель может давать непредсказуемые результаты в крайних случаях.&lt;br /&gt;
&lt;br /&gt;
Также применяется [[wikipedia:Data_augmentation|аугментация]] (англ. augmentation) — генерация наборов на основе имеющихся реальных данных. К имеющимся данным применяются различные способы искажения: например, для изображений могут использоваться различные геометрические преобразования, искажения цвета, кадрирование, поворот, добавление шума и иные. Для числовых данных могут использоваться такие искажения, как добавление объектов с усреднёнными значениями, смешивание с объектами из другого распределения, добавление случайных выбросов.&lt;br /&gt;
&lt;br /&gt;
== Достоинства ==&lt;br /&gt;
&lt;br /&gt;
* Возможность генерации наборов данных практически любого размера.&lt;br /&gt;
&lt;br /&gt;
* Известность параметров генерации, а значит, и генеральной совокупности: можно сравнить оценки модели и истинные параметры, и исходя их этого судить о качестве полученных выборочных оценок параметров.&lt;br /&gt;
&lt;br /&gt;
* Ускорение и удешевление процесса разработки: не нужно ждать, пока будет собран и размечен достаточный объём реальных данных.&lt;br /&gt;
&lt;br /&gt;
* Повышение доступности больших объёмов данных.&lt;br /&gt;
&lt;br /&gt;
== Недостатки ==&lt;br /&gt;
&lt;br /&gt;
* Отсутствие универсального способа генерации, применимого для любых задач: в каждом конкретном случае необходимо дополнительное исследование требований, накладываемых на генерируемые данные.&lt;br /&gt;
&lt;br /&gt;
* Отсутствие универсальных метрик качества и применимости генерируемых данных.&lt;br /&gt;
&lt;br /&gt;
* Излишняя «стерильность» получаемых данных: в общем случае неизвестно, какими могут быть выбросы в реальных данных&amp;lt;ref&amp;gt;Если выбросы известны, то проблема может быть решена путём настройки параметров генератора.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:TextSharpener-Identity.png|200px|thumb|right|Рис 1. Пример работы TextSharpener. Слева — размытое изображение, посередине — исходное, справа — результат работы алгоритма.]]&lt;br /&gt;
&lt;br /&gt;
=== TextSharpener ===&lt;br /&gt;
&lt;br /&gt;
Одно из самых наглядных применений аугментации данных — алгоритмы восстановления изображений. Для работы таких алгоритмов исходный набор изображений расширяется их копиями, к которым применяются некие преобразования из фиксированного набора. На основе полученных изображений генерируется датасет, в котором входными данными считаются полученные изображения, а целевыми — исходные.&lt;br /&gt;
&lt;br /&gt;
В самом деле, получить реальные данные для такой задачи — фотографию и её же нечеткую копию — довольно затруднительно, а применение таких преобразований довольно легко автоматизируется. Таким образом, если исходные изображения достаточно хорошо описывали источник данных, то полученный датасет можно применять для обучения алгоритма восстановления изображений, устраняющего применённые преобразования.&lt;br /&gt;
&lt;br /&gt;
Один из известных алгоритмов такого рода — TextSharpener&amp;lt;ref name=&amp;quot;TextSharpener&amp;quot;&amp;gt;Unblurring images of text with convolutional neural networks — https://gardarandri.github.io/TextSharpener/ — Retrieved January 8, 2021&amp;lt;/ref&amp;gt;. Этот алгоритм, разработанный в Университете Исландии и основанный на [[Сверточные нейронные сети|свёрточной нейронной сети]], позволяет убирать размытие текста на изображениях (см. изображение 1).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Jefferson_Graham_on_Manhattan_Beach_Pier.jpeg|200px|thumb|left|Изображение 2. Фотография, сделанная широкоугольной камерой]]&lt;br /&gt;
&lt;br /&gt;
=== OmniSCV ===&lt;br /&gt;
&lt;br /&gt;
Нередко различные устройства оснащаются широкоугольными и панорамными камерами с углом обзора до 360°. Изображения, получаемые с таких камер, обладают довольно сильными искажениями (см. изображение 2).&lt;br /&gt;
Генератор изображений комнат OmniSCV&amp;lt;ref name=&amp;quot;OmniSCV&amp;quot;&amp;gt;OmniSCV — https://www.mdpi.com/1424-8220/20/7/2066/htm — Retrieved January 11, 2021&amp;lt;/ref&amp;gt; используется при разработке роботов для обучения алгоритмов [[Компьютерное зрение|компьютерного зрения]] для устранения искажений широкоугольных объективов и неидеальных условий освещённости.&lt;br /&gt;
&lt;br /&gt;
Генератор умеет симулировать различные варианты объективов — равноугольные и цилиндрические панорамы, «рыбьи глаза» и катадиоптрические системы, а также сопровождать сгенерированные изображения комнат вспомогательной информацией об окружающем пространстве и параметрах используемой камеры.&lt;br /&gt;
&lt;br /&gt;
=== FlyingChairs ===&lt;br /&gt;
&lt;br /&gt;
Набор данных FlyingChairs&amp;lt;ref name=&amp;quot;FlyingChairs&amp;quot;&amp;gt;Computer Vision Group, Freiburg — https://lmb.informatik.uni-freiburg.de/resources/datasets/FlyingChairs.en.html — Retrieved January 11, 2021&amp;lt;/ref&amp;gt; и его производные представляют из себя наборы изображений, на которые искусственно добавлены предметы в движении (например, стулья). Эти наборы данных применяются при решении таких задач компьютерного зрения, как [[Сегментация изображений|семантическая сегментация]], [[Компьютерное зрение#Идентификация|поиск]] и [[Компьютерное зрение#Распознавание объектов|локализация]] объекта, а также более сложных, например, для поиска движения.&lt;br /&gt;
&lt;br /&gt;
=== VC-Clothes ===&lt;br /&gt;
&lt;br /&gt;
Набор данных VC-Clothes&amp;lt;ref name=&amp;quot;VC-Clothes&amp;quot;&amp;gt;VC-Clothes — https://wanfb.github.io/dataset.html — Retrieved January 11, 2020&amp;lt;/ref&amp;gt; создан для разработки алгоритмов '''реидентификации''' — определения, действительно ли на двух изображениях один и тот же человек. Эти алгоритмы могут использоваться для нахождения людей на записях с камер, на пограничных пунктах и так далее. VC-Clothes представляет из себя сгенерированные изображения одинаковых людей в разной одежде и на разном фоне. Помимо реидентификации, этот датасет также может быть использован для решения задачи семантической [[Сегментация изображений|сегментации]], для отделения пикселей, соответствующих одежде, от пикселей, соответствующих лицу персонажа.&lt;br /&gt;
&lt;br /&gt;
[[Файл:SynthText-in-the-Wild.png|200px|thumb|right|Рис. 3. Пример изображения из набора SynthText in the Wild]]&lt;br /&gt;
&lt;br /&gt;
=== SynthText in the Wild ===&lt;br /&gt;
&lt;br /&gt;
Набор данных SynthText in the Wild&amp;lt;ref name=&amp;quot;SynthText&amp;quot;&amp;gt;Visual Geometry Group - University of Oxford — https://www.robots.ox.ac.uk/~vgg/data/scenetext/ — Retrieved January 19, 2020&amp;lt;/ref&amp;gt; разработан для обучения алгоритмов [[Распознавание текста на изображении|распознавания текста на изображении]]. Он берёт обычные изображения и накладывает на них текст из определённого набора (рис. 3). Набор сопровождается подробной аннотацией: для каждого изображения указаны используемые фразы, а также координаты каждого слова и символа на изображении.&lt;br /&gt;
&lt;br /&gt;
Чтобы полученный набор выглядел натурально, применяется следующий подход&amp;lt;ref name=&amp;quot;SynthText-paper&amp;quot;&amp;gt;Gupta A., Vedaldi A., Zisseman A. Synthetic Data for Text Localisation in Natural Images // IEEE Conference on Computer Vision and Pattern Recognition — 2016&amp;lt;/ref&amp;gt;. Сначала изображение делится на несколько областей в зависимости от значений соседних цветов и текстуры. Затем с помощью [[Сверточные нейронные сети|CNN]] строится карта глубины — определяется, какая точка ближе к камере, а какая дальше. После этого можно по каждой области определить нормаль к поверхности. Наконец, на основе цвета области выбирается цвет текста (и иногда — контура), случайным образом выбирается шрифт, после чего текст «накладывается» на изображение с помощью геометрических трансформаций и преобразования Пуассона. Этот процесс повторяется несколько раз, чтобы наложить сразу несколько текстовых объектов на изображение.&lt;br /&gt;
&lt;br /&gt;
{{wide image|Synthtext-Generation-Process.png|1580px|Рис 4. Процесс генерации набора. Слева направо: исходное изображение; карта глубины (светлее — дальше); разбиение на поверхности; области для нанесения текста и случайно выбранный для них цвет}}&lt;br /&gt;
&lt;br /&gt;
[[Файл:Nvidia-drive-sample.png|200px|thumb|right|Рис 5. Примеры миров, сгенерированных NVIDIA DRIVE.]]&lt;br /&gt;
&lt;br /&gt;
== Другие применения ==&lt;br /&gt;
&lt;br /&gt;
Автономный транспорт — это вид транспорта, управление которым осуществляется без участия человека при помощи оптических датчиков, систем геолокации и компьютерных алгоритмов&amp;lt;ref&amp;gt;Self-driving car — https://en.wikipedia.org/wiki/Self-driving_car — Retrieved January 8, 2021&amp;lt;/ref&amp;gt;. Алгоритму управления транспортным средством нужно решить две задачи: сначала [[Обнаружение и обработка дорожных знаков и пешеходов|выявить окружающие объекты]] — машины, дорожные знаки, пешеходов, а затем принять решение о направлении и скорости дальнейшего движения. При реализации таких алгоритмов наиболее важно поведение транспортного средства в критических ситуациях, таких как помехи на дороге или некорректные показания сенсоров — от этого могут зависеть жизни людей. В реальных данных же, наоборот, в основном присутствуют штатные ситуации.&lt;br /&gt;
&lt;br /&gt;
Для решения этой проблемы компания NVIDIA разработала платформу NVIDIA DRIVE Constellation&amp;lt;ref&amp;gt;[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.&amp;lt;/ref&amp;gt;, которая состоит из двух серверов. Один из них исполняет роль обучаемого транспортного средства, а второй непрерывно генерирует для первого различные «миниатюрные миры», включающие в себя симуляцию вывода с камеры, радара и лидаров.&lt;br /&gt;
&lt;br /&gt;
В обучении компания использует два режима — симуляция после восприятия (англ. ''postperception simulation'') и сквозная симуляция (англ. ''end-to-end simulation''). В режиме симуляции объектов из сгенерированных миров (рис. 5) обучаемому алгоритму передаётся список объектов и их подробное описание, в свою очередь алгоритм должен выбрать дальнейшие действия автомобиля. В режиме симуляции мира на вход алгоритму подаются показания датчиков из сгенерированного мира, и алгоритм должен также распознать с помощью этих показаний присутствующие вокруг объекты и их характеристики. Этот режим полезен тем, что он более похож на реальный мир и учитывает помехи, возникающие на сенсорах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Автоматическое машинное обучение]]&lt;br /&gt;
* [[Генерация объектов]]&lt;br /&gt;
* [[Переобучение]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Synthetic data — https://en.wikipedia.org/wiki/Synthetic_data — Retrieved January 11, 2021&lt;br /&gt;
* McGraw - Hill dictionary of scientific and technical terms / Под ред. Sybil P. Parker. - 3-е изд. - New York: McGraw - Hill book co., 1984&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Генерация объектов]]&lt;/div&gt;</summary>
		<author><name>176.59.23.48</name></author>	</entry>

	</feed>