Изменения

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

Neural Style Transfer

1515 байт убрано, 00:04, 18 апреля 2019
Матрица Грама
=== Матрица Грама ===
[[Файл:Image8Image9.jpeg|500px|thumb|right|Рис. 4. Принцип рассчет матрицы Грама]]
Я попытаюсь создать основу, необходимую для понимания матрицы грамм, на примере. Итак, давайте рассмотримРассмотрим, как мы передаем наше изображение стиля через vgg16 VGG16 и получаем значения функции активации из 7-го уровня, который генерирует матрицу представления объектов размером 56x56x256.В этом трехмерном массиве имеется 256 каналов размером 56x56 каждый. Теперь предположим, что есть канал ''A'', чьи блоки активации могут активироваться, когда они сталкиваются с разделом изображения, содержащим коричнево-черные полосы, а затем есть канал ''B'', чьи блоки активации могут активироваться, которую вы можете использовать когда они сталкиваются с чем-то похожим на рисунке 2глазное яблоко. Если оба этих канала ''A'' и ''B'' активируются вместе для одного и того же входа, существует высокая вероятность того, который описывает архитектуру vgg16что изображение может содержать лицо тигра (поскольку у него было два канала с высокими значениями, которые активируются для глазного яблока и коричнево-черных полос). Теперь давайте подробнее рассмотрим этот вывод, если оба эти канала будут запущены с высокими значениями активации, это означает, что они будут иметь высокую корреляцию по сравнению с корреляцией между каналом ''A'' и ''С'', где канал ''С'' может активироваться, когда он видит ромбовидный шаблон.
В этом 3-D массиве имеется 256 Таким образом, чтобы получить корреляцию всех этих каналов размером 56x56 каждый. Теперь давайте предположим, что есть канал ‘A’, чьи блоки активации могут активироваться, когда они сталкиваются друг с разделом изображениядругом, содержащим черные и коричневые полосынам нужно вычислить нечто называемое матрицей Грама, а затем есть канал ‘B’будем использовать ее для измерения степени корреляции между каналами, чьи блоки активации могут активироваться, когда они сталкиваются с чем-то похожим которая позже будет служить мерой самого стиля. Рисунок 4 помогает лучше понять как рассчитывается матрица Грама на глазное яблокопримере.
Примечание: здесь активируемые юниты относятся к ним, имеющим значительно большую ценность по сравнению с нулем после прохождения через relu.=== Функция потерь на основе корреляций матрицы Грама ===
Если оба этих канала ‘A’ & ‘B’ активируются вместе для одного и того же входа, существует высокая вероятность того, что изображение может содержать лицо тигра (поскольку у него было два канала с высокими значениями, которые активируются для глазного яблока и коричневых черных полос) , Теперь, если оба эти канала будут запущены с высокими значениями активации, это означает, что они будут иметь высокую корреляцию по сравнению с корреляцией между каналом ‘A’ & ‘C’, где канал ‘C’ может активироваться, когда он видит ромбовидный шаблон.Таким образом, чтобы получить корреляцию всех этих каналов друг с другом, нам нужно вычислить что-то, называемое граммовой матрицей, мы будем использовать грамм-матрицу для измерения степени корреляции между каналами, которая позже будет служить мерой самого стиля. Теперь вы, возможно, поняли значение грамм-матрицы, но чтобы понять, как мы получаем грамм-матрицу из вышеупомянутого трехмерного массива, рассмотрим изображение, упомянутое ниже. Теперь, как вы можете видеть, как каждый элемент этой граммовой матрицы Грама содержит меру корреляции всех каналов относительно друг друга. Продвигаясь вперед, как мы используем эту вычисленную матрицу Грамма G для расчета потери стиля. Обозначим грамм-матрицу Грама стилевого изображения слоя L <math>l</math> как <math>GM[Ll](S)</math>, а грамм-матрицу Грама сгенерированного изображения того же слоя, что и <math>GM[Ll](G)</math>. Обе матрицы грамм были вычислены из одного и того же слоя, следовательно, с использованием одного и того же числа каналов, что привело к тому, что он стал матрицей размера ch ''"количество каналов" x ch"количество каналов"''. Теперь, если мы найдем сумму квадратичной квадратов разности или L2_norm L2-норму вычитания элементов этих двух матриц и попытаемся минимизировать этоее, то это в конечном итоге это приведет к минимизации разницы между стилем изображения изображения изображением стиля и сгенерированного изображения. Подумайте об этом, это может занять некоторое время, но когда это произойдет, вы будете загипнотизированы тем, насколько это просто, но эффективносгенерированным изображением.
[[Файл:Image10.jpeg|500px|center]]
В вышеприведенном уравнении N_l <math>N_{l}</math> представляет номер канала в карте признаков / выходных данных уровня <math>l</math>, а M_l <math>M_{l}</math> представляет высоту * ширину карты объектов / выходных данных слоя <math>l</math>.
В то время как при вычислении потери стиля мы используем несколько уровней активации, эти сценарии приводят нас к возможности это позволяет нам назначать разные весовые коэффициенты для каждой подпотери, предоставляемой разными уровнями. ниже уравнения суммирует то, что я только что сказал, довольно элегантно, но в нашем случае или в большинстве случаев в целом люди дают одинаковый вес для всех слоевпотери на каждом уровне.
[[Файл:Image11.jpeg|500px|center]]
Анонимный участник

Навигация