13
правок
Изменения
пишу про CycleGAN(в разработке)
== CycleGAN ==
Нейронная сеть, в отличии от Pix2Pix позволяет реализовать решение задачи обучения на независимых множествах. Обычно применяются для задач изменения стиля фотографий.[[File:ModelCycleGAN Arxitecture.jpgjpeg|400px|right|thumb| Рис. 13. Архитектура Алгоритм CycleGAN<ref name="Алгоритм CycleGAN">[https://habr.com/ru/post/479218/ Алгоритм CycleGAN]</ref>]]
=== Архитектура ===
'''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>. '''Сеть ''' предоставляет подход перевода изображение из исходного домена <math>X</math> в целевой домен <math>Y</math> при отсутствии парных примеров. Цель задачи в изучении отображения <math>G: X → Y </math>, так, чтобы распределение изображений <math>GG_{X to Y}(X)</math> было неотличимо от распределения <math>GG_{Y to X}(Y)</math> с учетом состязательной потери'''(aнгл. Сonsistency loss)'''.Так же что бы избежать режима коллапса<ref name="Mode Collapse">[https://arxiv.org/abs/1705.07761 режима коллапса Mode Collapse]</ref>(англ. ''Mode collapse''), мы проверяем следует проверить отображение <math>G : Y → X </math>, который пытается сопоставить <math>Y</math> и <math>X</math>.
Другими словами для выполнения успешного преобразования должно выполниться следующее условие <math>G_{Y to X}(G_{X to Y}(X)) \sim x + Сonsistency~loss. </math>
Структура дискриминатора и генератора аналогичны тем, которые используются в Pix2Pix.
=== Примеры = Функция потери ====Обычно применяются для следующих задач'''Функция потери'''<ref name="Cyclic_loss">[https://towardsdatascience.com/a-gentle-introduction-to-cycle-consistent-adversarial-networks-6731c8424a87 Cyclic_loss]</ref> должна быть выполнена таким образом что бывсе отображения должны быть противоположными друг другу и взаимно однозначными. Она состоит из потери согласованности цикла (англ. ''Cycle Consistency Loss'') и состязательной потери(англ. ''adversarial loss''). <tex>Loss_{adv}(G,Dy,X) = \frac{1}{m}(\sum_{i=1}^m(1 -D_{y}(G_{xi})))* изменения стиля фотографии;2</tex> <tex>Loss_{adv}(F,Dx,Y) = \frac{1}{m}(\sum_{i=1}^m(1 -D_{x}(F_{yi}))*2</tex> <tex>Loss_{cyc}(G,F,X,Y) = \frac{1}{m}\sum_{i=1}^m(F(G(xi) - xi) + (G(F(yi)) - yi))</tex> <tex>Loss_{full} = Loss_{adv} + \lambda * Loss_{cyc}</tex>, где <tex>\lambda</tex> - гиперпараметр для уравнения потери согласованности цикла [[File:Doge starrynight.jpg|7010px700px|center|thumb| Рис. 14. Пример работы 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|Рис. 15. Пример работы CycleGAN <ref name="Алгоритм CycleGAN"></ref>]]
== См. также ==