Изменения

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

Neural Style Transfer

1267 байт убрано, 21:08, 17 апреля 2019
Принцип работы алгоритма
[[Файл:Image3.jpeg|500px|thumb|right|Карты признаков сети VGG16]]
В этом разделе я хочу поделиться некоторой интуицией о томРассмотрим 1-й сверточный слой VGG16, как более глубокий слой CNN представляет который использует ядро 3x3 и обучает 64 карты признаков (англ. ''feature map'') для генерации представления изображения размерности 224x224x64, принимая 3-канальное изображение и размером 224x224 в качестве входных данных (Рисунок 3). Во время обучения эти карты признаков научились обнаруживать простые шаблоны, например, такие как мы можем использовать это вычисленное представлениепрямые линии, окружности или даже не имеющие никакого смысла для человеческого глаза шаблоны, которое имеет смысл только которые тем не менее имеют огромное значение для этой модели в наших интересах при разработке передачи нейронного стиля. Давайте возьмем архитектуру VGG16 для понимания этого представления в скрытых слояхТакое "обнаружение" шаблонов называется обучением представлению функции.
Используя вышеупомянутую архитектуру в качестве эталона, Теперь давайте рассмотрим 110сверточный слой свертки vgg16VGG16, который использует ядро 3x3 и обучает 64 карты с 512 картами признаков (feature map) для генерации обучения и в итоге генерирует вывод представления изображения 224x224x64размерности 28x28x512. Нейроны 10-го слоя уже могут обнаруживать более сложные шаблоны такие как, например, колесо автомобиля, принимая 3-канальное изображение размером 224x224 в качестве входных данныхокно или дерево и т.д. если вы немного запутались, посмотрите ниже (Рисунок 3)
Давайте предположим, что во время обучения этим 64 картам функций они, возможно, научились обнаруживать простые шаблоны, такие, что некоторые нейронные единицы активируются, когда они видят прямую линию, или даже для какого-либо другого типа шаблона, который может не иметь никакого смысла для человеческого глаза, но имеет огромный значение для этой модели. Это «Обнаружение» прямых линий или некоторого паттерна называется обучением представлению функции. Теперь давайте рассмотрим 10-й слой свертки vgg16, который использует ядро 3x3 с 512 картами объектов для обучения и, наконец, генерирует вывод представления изображения 28X28x512, просто для простоты, давайте предположим, что в этом 10-м слое есть определенные единицы, которые активируются изображение, содержащее круги, подобные колесу автомобиля, или некоторые из них, которые активируются изображением, имеющим некоторый рисунок, похожий на три пересекающиеся линии и т. д. Можно с уверенностью предположить, что CNN не учится кодировать, что такое изображение, но на самом деле учится кодировать то, что представляет изображение, или какое содержимое видно в изображении, и из-за нелинейной природы нейронных сетей мы перешли от мелких слоев простых шаблонов на начальных слоях к более глубоким слоямсложным на последующих слоях. скрытые юниты становятся способными обнаруживать все более и более сложные особенности по заданному изображению.
Эта природа представления кодирования сама по себе является ключом к передаче стиля, который используется для вычисления потерь между сгенерированным изображением относительно контента и изображения стиля. При обучении модели более десяти тысяч изображений на класс модель может генерировать аналогичное представление признаков для множества различных изображений, если они принадлежат к одному классу или имеют схожий контент или стиль. Следовательно, имеет смысл использовать разницу в значении представления признаков сгенерированного изображения по содержанию и стилю изображения, чтобы направлять итерации, через которые мы производим само сгенерированное изображение, но как мы можем убедиться, что изображение с содержанием (C) и сгенерированное изображение (G ) похожи по своему содержанию, а не по стилю, в то время как с другой стороны, как мы можем быть уверены, что сгенерированное изображение наследует только похожее представление стиля из образа стиля (S), а не само изображение стиля в целом. Это решается разделением функции потерь на две части: одна - потеря контента, а другая - потеря стиля, и вскоре мы поймем, чем они отличаются друг от друга и как они преодолевают поставленные нами проблемы.
Анонимный участник

Навигация