Я имею дело с проблемой, когда я не мог найти достаточно набора данных (изображений) для подачи в мою глубокую нейронную сеть для обучения.
Я был так вдохновлен работой « Генеративный состязательный текст в синтез изображения», опубликованной Скоттом Ридом и соавт. о порождающих состязательных сетях.
Мне было интересно узнать, могу ли я использовать доступный небольшой набор данных в качестве входных данных для модели GAN и генерировать намного больший набор данных для работы с более глубокими моделями сети?
Это будет достаточно хорошо?
deep-learning
gan
Алвин Мэтью
источник
источник
Ответы:
Это вряд ли добавит намного больше к вашим прямым усилиям по сбору данных.
Качество текущих выходов GAN (по состоянию на 2017 год) будет недостаточно высоким. Изображения, создаваемые GAN, обычно маленькие и могут иметь необычные / неоднозначные детали и странные искажения. В статье, на которую вы ссылаетесь, изображения, сгенерированные системой из предложения, имеют правдоподобные блоки цвета с учетом предмета, но без предложения, в котором вас ожидают, чего ожидать, большинство из них не распознаются как какой-либо конкретный предмет.
GAN с менее амбициозной целью, чем генерация изображений из предложений (что, несмотря на мою критику выше, поистине замечательный подвиг IMO), должны создавать более приближенные к фотореалистичным изображениям. Но их объем будет меньше и, вероятно, не будет включать в себя нужный тип изображения. Кроме того, обычно размер выходного документа является небольшим, например, 64x64 или 128x128 *, и все еще имеется достаточно искажений и двусмысленностей, чтобы исходные фотографии с истинной землей были бы гораздо предпочтительнее.
Сам GAN ограничен доступной библиотекой обучения - она не будет успешной, если вы попытаетесь сгенерировать изображения, выходящие за рамки его данных обучения. Результаты, представленные в исследовательской работе, конечно же, сфокусированы на области, предоставленной данными обучения. Но вы не можете просто вставить любое предложение в эту модель и ожидать результата, который был бы полезен в другом месте.
Если вы найдете GAN, который был обучен на подходящем наборе данных для вашей проблемы, то вам, скорее всего, лучше попытаться получить те же данные непосредственно для вашего проекта.
Если вы столкнулись с проблемой ограниченных данных об истинности земли, то, возможно, лучшим подходом к использованию GAN будет использование предварительно обученного классификатора, такого как VGG-19 или Inception v5, замена последних нескольких полностью подключенных слоев и настроить его на свои данные. Вот пример того, как это делается с использованием библиотеки Keras в Python - другие примеры можно найти с помощью поиска типа «точная настройка классификатора изображения CNN».
* Современные GAN стали лучше с тех пор, как я опубликовал этот ответ. Исследовательская группа Nvidia добилась значительных успехов в создании фотореалистичных изображений размером 1024x1024 . Однако это не меняет других моментов в моем ответе. ГАН не являются надежным источником изображений для задач классификации изображений, за исключением, может быть, подзадач из того, что уже изучено в ГАН, и которое способно генерировать условно (или, возможно, более тривиально, для предоставления исходных данных для «других» категорий в классификаторы).
источник
У меня точно такая же проблема с DNN, которую я сейчас создаю. Взять мой набор данных и синтезировать новые данные с помощью GAN кажется хорошей идеей. Но сам GAN научится выводить изображения только с той же дисперсией и стандартными отклонениями, что и в обучающем наборе. Таким образом, ваши новые сгенерированные данные будут просто представлять больше перестановок одного и того же примера распределения. Это поможет вашему NN лучше тренироваться в одном и том же распределении, поэтому может привести к большему переобучению.
источник
Просто с чисто теоретической точки зрения это невозможно.
Любой данный набор обучающих данных представляет собой определенный объем информации о структуре определенного пространства. Если вы обучаете GAN для этого набора данных, он будет учиться только на основе информации, представленной этим набором данных. Данные, синтезированные GAN, никогда не могут быть из большего пространства, чем исходные данные, по простой причине: откуда эта информация должна исходить? Если его не было в исходном наборе данных, то его также не может быть в синтезированных данных из GAN.
Если вы обучите нейронную сеть конвергенции в наборе данных, эта нейронная сеть изучит любую структуру, содержащуюся в наборе данных. Любые данные искусственного обучения, синтезированные GAN, не добавят никакой новой информации. Эта идея должна быть прямой.
источник
На самом деле, можно улучшить небольшой набор данных с помощью GAN, чтобы улучшить его, и это также повысит производительность классификационных сетей, как вы можете прочитать здесь https://arxiv.org/pdf/1803.01229.pdf . GAN способны изучать, например, промежуточные фигуры, которые не участвуют в исходном наборе дат, но все еще действительны. Таким образом, синтетические изображения действительно могут улучшить размер набора данных и повысить точность классификации CNN.
источник