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

Введение в проблему несбалансированных наборов данных

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

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

GAN

GAN [1] была представлена ​​как модель, основанная на теории игр min-max. Структура напоминает игру двух игроков с нулевой суммой, решение которой известно как равновесие по Нэшу. В нашем случае игроками выступают две нейронные сети, называемые генератором G и дискриминатором D. Поскольку мы уже знаем, что означает аббревиатура GAN, можно предположить, что эта игра является соревновательной, а не кооперативной.

Генератор G, генеративная модель, имеет шум z от некоторого простого распределения на входе, и он выводит образец G (z) = x ' из распределения модели. Этот шум z обычно является вектором из распределения Гаусса, что оказалось полезным. Генератор учится отображать распределение входных данных в распределение модели, что выполняется с помощью состязательного обучения. Его задача - изучить отображение достаточно хорошо, чтобы выбрать данные из распределения модели, которые неотличимы от реальных данных.

Ответственность дискриминационных моделей заключается в проверке подлинности данных. На входе дискриминатор D может получать как исходные x, так и сгенерированные данные x ' . Цель состоит в том, чтобы предсказать, являются ли данные настоящими или поддельными. Однако выходной y не является двоичным ответом, а скорее является вероятностью того, что вход происходит из реального распределения данных.

Обучение GAN - это одновременный процесс, в котором обе сети пытаются улучшить свою производительность. Обе сети одновременно оптимизируют следующую функцию F (D, G):

CVAE-GAN

Ванильные автоэнкодеры - это простые модели, способные восстанавливать свои входные данные. Одной из разновидностей архитектуры автоэнкодера является вариационный автоэнкодер (VAE) [3], который может генерировать синтетические данные. GAN был объединен с VAE и расширен до модели CVAE-GAN [2]. Модель не была разработана специально для проблемы несбалансированного набора данных, но она может подходить для задачи балансировки соответствующим образом. Посредством кондиционирования класса VAE с использованием дополнительной информации метки мы можем направить модель для генерации выборок для данного класса [4]. Для повышения качества создаваемых картинок авторы добавили две сети. Один для распознавания подлинности изображений, а другой - для их классификации. Помимо потери реконструкции, мы пытаемся сопоставить характеристики восстановленных изображений с характеристиками подлинных изображений во время обучения модели.

Структура модели состоит из четырех сетей: кодировщика E, генератора G, дискриминатора D и классификатора C. Никакие архитектурные изменения, нарушающие первоначальную структуру, не применяются к самим сетям. Общая задача, которая стояла перед каждой из сетей в исходных моделях VAE и GAN, остается, но ее недостаточно. Чтобы сделать обучение более стабильным, авторы ввели две цели сопоставления средних признаков для генератора G, где оба используют представление признаков, полученное через слои другой сети.

Другой распространенной проблемой, возникающей в отношении генеративных состязательных сетей, является коллапс режима. Перед кодировщиком E и генератором G поставлена ​​новая задача - предотвратить эту проблему. Они используются для получения сопоставления между исходным x и реконструированным x ' образцами изображения, аналогично VAE. подход. После получения этого сопоставления мы можем вычислить разницу между x и x ', используя L2 потеря реконструкции и потеря парного сопоставления объектов с использованием объектов из других слоев сети. Основная причина введения вышеупомянутого нового механизма сопоставления признаков заключалась в том, чтобы ускорить сходимость обучения и повысить его стабильность.

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

БАГАН

В отличие от ранее представленной модели, BAGAN [5] был специально разработан для восстановления баланса в наборах данных изображений. Традиционный подход к обучению генеративных моделей заключается в сборе изображений представителей меньшинств и использовании их только для создания новых. Тем не менее, изображения представителей меньшинств в основном малочисленны, что приводит к тому, что модели получают недостаточный объем информации. Следовательно, сложно обучить GAN генерировать новые разнообразные изображения. Поскольку изображения в наборе данных обычно связаны, BAGAN предложил использовать информацию из всех доступных классов для обучения генеративной модели.

Это обеспечивается связью GAN с автокодировщиком. После обучения автокодировщика знания об особенностях изображений передаются в GAN. Эта передача информации обеспечивается инициализацией GAN весами автокодировщика. Такая инициализация достигается путем повторного использования сетевой архитектуры автокодировщика аналогичным образом в сетях GAN. Декодер Δ и генератор G имеют одинаковую топологию. В то же время дискриминатор D сопоставляет свои первые слои D e с кодировщиком E и завершает их плотный слой, за которым следует функция активации D c. Более того, инициализация помогает предотвратить некоторые проблемы, возникающие во время обучения обычных GAN, такие как падение режима. Кроме того, представлен новый механизм для генерации скрытых векторов, специфичных для классов, который позволяет нам определять классовые условия процесса генерации.

Наши эксперименты

Мы повторно реализовали представленные выше модели и сравнили их с исходными изображениями и изображениями, полученными с использованием CVAE и геометрических преобразований. Для этого мы использовали три набора данных и два сценария дисбаланса. Во-первых, мы обучили модели на наборах данных, содержащих 50% изображений представителей меньшинств. Во-вторых, модели обучались на наборах данных, содержащих только 25% исходных изображений представителей меньшинств.

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

Мы проанализировали качество изображений, используя два следующих метода. Разнообразие синтезированных изображений измеряли с помощью индекса структурного сходства (SSIM) [6]. Второй метод оценки был выполнен с использованием классификаторов, обученных на различных типах наборов данных. Для каждого набора данных мы исследовали исходный, несбалансированный и четыре дополненных варианта набора данных. Несмотря на то, что результаты CVAE-GAN и BAGAN визуально не похожи друг на друга, мы не наблюдали значительных различий в численных результатах.

Большая часть текста взята из моей неопубликованной бакалаврской диссертации [7]. Тезис будет опубликован летом 2020 года. Если вы нашли этот пост в блоге интересным, то можете прочитать его полностью, который будет доступен на этом сайте.

[1]: ДОБРО ПОЖАЛОВАТЬ, Ян и др. Генеративные состязательные сети. В: Достижения в области нейронных систем обработки информации. 2014. с. 2672–2680.

[2]: BAO, Jianmin, et al. CVAE-GAN: создание детализированных изображений с помощью асимметричного обучения. В: Материалы Международной конференции IEEE по компьютерному зрению. 2017. с. 2745–2754.

[3]: KINGMA, Diederik P .; ЗДОРОВЬЕ, Макс. Автоматическое кодирование вариационного байеса. Препринт arXiv arXiv: 1312.6114, 2013.

[4]: SOHN, Kihyuk; ЛИ, Хонглак; ЯНЬ, Синьчэнь. Изучение структурированного представления выходных данных с использованием глубоких условных генеративных моделей. В: Достижения в области нейронных систем обработки информации. 2015. с. 3483–3491.

[5]: МАРИАНИ, Джованни и др. Баган: Увеличение данных с помощью балансировочного гана. Препринт arXiv arXiv: 1803.09655, 2018.

[6]: WANG, Zhou, et al. Оценка качества изображения: от видимости ошибок до структурного сходства. Транзакции IEEE по обработке изображений, 2004, 13.4: 600–612.

[7]: ШАРФЕВА, Ивета. Увеличение данных с помощью генеративных состязательных сетей. Неопубликованная бакалаврская диссертация. Чешский технический университет в Праге, факультет информационных технологий, 2020.