13
правок
Изменения
пишу про CycleGAN
Чтобы различать реальные и синтезированные изображения с высоким разрешением, дискриминатор должен иметь большое поле восприятия. Для этого потребуется либо более глубокая сеть, либо более крупные сверточные ядра, оба из которых увеличат емкость сети и потенциально могут вызвать переобучение. Кроме того, оба варианта требуют большего объема памяти для обучения, что уже является дефицитным ресурсом для создания изображений с высоким разрешением. Для решения проблемы предлагаем используется '''3 дискриминатора''', которые имеют идентичную структуру сети, но работают с разными масштабами изображения<ref name="Pix2PixHDPaper">[https://arxiv.org/pdf/1711.11585.pdf High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs]</ref>.
'''Функция ошибки''' была улучшена за счет добавления ошибки (feature matching loss) в разных масштабах изображениядля каждого дискриминатора <tex>\sum_{k=1}^{3} L_{FM}(G, D_k)</tex>, для вычисления которой будем использовать выдаваемые значения дискриминатора на разных слоях изображения: <tex>L_{FM}(G, D_k) = \mathbb{E}_{(s,x)}\sum_{i=1}^{T}\frac{1}{N_i}[||D_k^{(i)}(s,x) - D_k^{(i)}(s, G(s))||]</tex>, где <tex>T</tex> {{---}} количество слоев, <tex>N_i</tex> {{---}} количество элементов в каждом слое, <tex>s</tex> {{---}} исходное сегментированное изображение, <tex>x</tex> {{---}} соответствующее реальное изображение, <tex>G(s)</tex> {{---}} сгенерированное изображение.
На рисунках 11 и 12 приведены примеры генерации изображения по входным сегментированным изображениям с применением различных стилей.
== CycleGAN ==
=== Архитектура ===
'''CycleGAN'''<ref name=" Cycle-Consistent Adversarial Networks">[https://arxiv.org/abs/1703.10593 Cycle-Consistent Adversarial Networks]</ref> реализует архитектуру циклически-согласованных с циклом состязательных сетей (англ. {{---}} ''Cycle-Consistent Adversarial Networks''), суть которой состоит в решении проблемы отсутствия парного набора данных. '''В Архитектуре''' присутствуют 2 генератора и 2 дискриминатора которые выполняют различные задачи:*Генератор <math>G_{X to Y}</math> учится преобразовывать исходное изображение <math>X</math> в выходное изображение <math>Y</math> *Генератор <math>G_{Y to X}</math> учится преобразовывать выходное изображение <math>Y</math> в исходное изображение <math>X</math>*Дискриминатор <math>Dx</math> учится различать изображение <math>X</math> и сгенерированное изображение <math>X ( G_{Y to X}(Y) )</math>.*Дискриминатор <math>Dy</math> учится различать изображение <math>Y</math> и сгенерированное изображение <math>Y ( G_{X to Y}(X) )</math>.
==== Функция потери ====
все отображения должны быть противоположными друг другу и взаимно однозначными.
Она состоит из потери согласованности цикла (англ. {{---}} ''Cycle Consistency Loss'') и состязательной потери(англ. {{---}} ''adversarial Adversarial loss'').
<tex>Loss_{adv}(G,DyD_{B},X) = \frac{1}{m}(\sum_{i=1}^m(1 -D_{yB}(G_{xiXi})))*2</tex>
<tex>Loss_{adv}(F,DxD_{A},Y) = \frac{1}{m}(\sum_{i=1}^m(1 -D_{xA}(F_{yiYi}))*2</tex>
<tex>Loss_{cyc}(G,F,X,Y) = \frac{1}{m}\sum_{i=1}^m(F(G(xiXi) - xiXi) + (G(F(yiYi)) - yiYi))</tex>
<tex>Loss_{full} = Loss_{adv} + \lambda * Loss_{cyc}</tex>,
где <tex>\lambda</tex> {{- --}} гиперпараметр для уравнения потери согласованности цикла
[[File:Doge starrynight.jpg|700px|center|thumb|Рис. 1416. Пример работы CycleGAN <ref name="how CycleGAN works">[https://towardsdatascience.com/cyclegan-how-machine-learning-learns-unpaired-image-to-image-translation-3fa8d9a6aa1d Пример работы CycleGAN]</ref>]][[File:Comics.png|700px|center|thumb|Рис. 1517. Пример работы CycleGAN <ref name="Алгоритм CycleGAN"></ref>]]
== См. также ==