GANS (сети Generativeadversarial, сеть состязательный поколение)
Генеративные противостоящие сети (Gans) слагается из двух глубоких сетей, генератора и дискриминатора.
Генератор формирует изображение как гораздо ближе к истинному образу , как это возможно , чтобы обмануть дискриминатор, с помощью максимизации кросс-энтропии потерь, т.е. maxlog (Д (х ')).
Дискриминатор пытается отличить созданные изображения от истинных изображений, с помощью минимизации кросс-энтропии потери, то есть, мин-ylogD (х) - (1-у) log (1-Д (х)).
Оппозиционный генератор и генерирует сеть глубины дискриминатора две сети:
генератор (генератор): генераторы стремятся сформировать более реалистичное изображение, сделав кросс-энтропии функции, такие , как потеря log (Д (х «)) максимальной, обмануть через дискриминатор. ,
Дискриминатор (дискриминатор): дискриминатор усилие требуется , чтобы различать между истинной и ложной картиной, сделав кросс-энтропию функции потерь как -ylogD (х) - минимальный (1-у) log (1 -Д (х)), чтобы определить подлинность.
Генератор (генератор)
Класс net_G (nn.Module):
Def инициализации (Я):
супер (net_G, самость). INIT ()
self.model = nn.Sequential (
nn.Linear (2,2),
)
самостоятельно. initialize_weights ()
Защита вперед (я, х):
х = self.model (х)
возвратный х
Защита initialize_weights (сам):
для т в self.modules ():
если isinstance (м, nn.Linear):
m.weight. data.normal (0,0.02)
m.bias.data.zero ()
Дискриминатор (дискриминатор)
Класс net_D (nn.Module):
Def инициализации (Я):
супер (net_D, самость). INIT ()
self.model = nn.Sequential (
nn.Linear (2,5),
nn.Tanh (),
nn.Linear (5,3),
nn.Tanh (),
nn.Linear (3,1),
nn.Sigmoid ()
)
сам. initialize_weights ()
Защита вперед (я, х):
х = self.model (х)
возвратный х
Защита initialize_weights (сам):
для т в self.modules ():
если isinstance (м, nn.Linear):
m.weight. data.normal (0,0.02)
m.bias.data.zero ()
DCGANs (Deep Конволюционное Generative Состязательность Networks глубоко свертка порождающая против сети)
DCGAN архитектура имеет четыре сверточных слоев для дискриминатора и четыре «дробно-strided» сверточных слоев для генератора.
Дискриминатор представляет собой 4-слой strided сверток с пакетной нормализации ( за исключением его входного слоя) и вытекающей РЕЛУ активаций.
Протекает РЕЛ является нелинейной функцией , которая дает выход ненулевой для отрицательного входа. Она стремится исправить «умирающего РЕЛУ» проблемы и помогает градиенты потока легче через архитектуру.
Глубокая свертка генеративного против сети, имеющей четыре генератора генератора свертки; Дискриминатор распознаватель имеет четыре слоя дробно-strided свертку с использованием небольшого объемом нормализации и вытекающой функции активации РЕЛ.
структура модели
Модель структуры:
В качестве альтернативы объединения витков слоя, в котором замещающие strided извилина на дискриминаторе путем замены дробной-strided извилины на генераторе.
На генераторе и дискриминатора использования batchnorm.
Инициализация решить проблему плохой
помочь распространить градиент каждого слоя ,
чтобы предотвратить генератор все образцы сходятся к одной и той же точке.
Б. Н. непосредственно применен ко всем слоям образца может привести к шоку и неустойчивость модели, не используется BN в выходном слое генератора и входной слой Дискриминатора может предотвратить это явление.
Удаление слоя полностью связано
глобальные бассейновой повышает устойчивость модели, но скорость сходимости повреждения.
РЕЛУ использоваться во всех слоях , за исключением выходного слоя генератора, выходного слоя с использованием TANH.
LeakyReLU используется во всех слоях дискриминатора.
структура сети DCGAN генератора:
Где слои здесь ко четыре дробно-strided свертка, в другой работе он также может упоминаться как деконволюции
Классификация изображения Случай 2
Это является частью более знакомы, не делать сводную записку.