【GAN】 【Notas en papel】 CRECIMIENTO PROGRESIVO DE GANS PARA MEJORAR LA CALIDAD, ESTABILIDAD Y VARIACIÓN

ProGAN es en realidad la base de otros modelos y se ubica en la segunda sección de GAN.

1. Introducción

1.1 GAN

Debido a que este artículo es el punto de partida de nuestro capítulo de GAN, he recopilado algunos conocimientos relevantes de GAN en [este artículo]. Puedes obtener más información al respecto primero.

1.2 Dificultades y soluciones de alta resolución

(1) Dificultades

  • Una resolución más alta hace que las imágenes generadas sean más fáciles de distinguir de las imágenes de entrenamiento.
  • Las resoluciones grandes también requieren el uso de minilotes más pequeños debido a limitaciones de memoria.

(2) Ideas de solución

Comience con imágenes más sencillas de baja resolución, aumente gradualmente el generador y el discriminador y, a medida que avanza el entrenamiento, agregue nuevas capas que introduzcan detalles de mayor resolución.

1.3 La contribución principal de este artículo.

  • Una nueva estrategia de entrenamiento: comience con imágenes más fáciles de baja resolución, agregue gradualmente generadores y discriminadores y, a medida que avanza el entrenamiento, agregue nuevas capas que introduzcan detalles de mayor resolución.
  • Un nuevo mecanismo de inicialización: evita que los generadores participen en una competencia no saludable y provoquen fallas de modo.

2.ProGAN

2.1 Agregar gradualmente generadores y discriminadores

Usamos redes generadoras y discriminadoras, que son imágenes especulares entre sí y siempre crecen sincronizadas. Todas las capas existentes en ambas redes siguen siendo entrenables durante todo el proceso de formación. A medida que se agregan nuevas capas a la red, las introducimos sin problemas , lo que evita un impacto repentino en capas de menor resolución ya entrenadas.

 2.1.1 Cómo introducir sin problemas

Se ilustra la conversión de una imagen de 16×16 (a) a una imagen de 32×32 (c). Entre ellos (b) está el período de transición

  • Las capas que operan a resoluciones más altas se tratan como bloques residuales, con pesos α que aumentan linealmente de 0 a 1. 2× y 0,5× se refieren a duplicar y dividir a la mitad la resolución de la imagen utilizando el filtrado del vecino más cercano y la agrupación promedio, respectivamente. toRGB en el generador representa una capa que proyecta vectores de características en colores RGB, mientras que fromRGB en el discriminador hace lo contrario; ambos usan convoluciones 1×1.
  • Al entrenar al discriminador, ingresamos imágenes reales reducidas para que coincidan con la resolución actual de la red. Durante la conversión de resolución, interpolamos entre las dos resoluciones de la imagen real, de forma similar a cómo la salida del generador combina las dos resoluciones.

2.2 Normalización en generador y discriminador.

El propósito esencial de la normalización es limitar la amplitud de la señal y la competencia.

2.2.1 Tasa de aprendizaje equilibrada

  • Utilice la inicialización trivial N(0,1) y luego escale los pesos explícitamente en tiempo de ejecución en lugar de inicializar los pesos con cuidado.

Los métodos anteriores normalizaron las actualizaciones de gradiente según su desviación estándar estimada, haciendo que las actualizaciones fueran independientes de la escala de los parámetros, pero tardaban más en ajustarse si algunos parámetros tenían un rango dinámico mayor que otros.

El método anterior garantiza que todos los pesos tengan el mismo rango dinámico y la misma velocidad de aprendizaje .

2.2.2 Normalización de vectores de características por píxeles en el generador

  • Los vectores de características en cada píxel se normalizan a una unidad de longitud en el generador después de cada capa convolucional.
  • oficial:

N es el número de mapas de características, ax, y y bx, y son el vector de características original y el vector de características normalizado en unidades de píxeles (x, y) respectivamente.

3.Código

3.1 modelo ProGAN

La inicialización del modelo ProGAN llamará a getNetG y getNetD para inicializar el generador y el discriminador.

 El generador y el discriminador son básicamente simétricos en espejo,

donde toRGB en el generador y fromRGB en el discriminador usan convolución 1 × 1

 3.1.1 Tasa de aprendizaje equilibrada

En circunstancias normales, tanto initBiasToZero como self.equalized tienen el valor predeterminado verdadero

Se llama a ConstrainedLayer para EqualizedConv2d en cada capa agregada para ecualizar la tasa de aprendizaje, asegurando así que el rango dinámico y la velocidad de aprendizaje de todos los pesos sean los mismos.

3.1.2 Normalización de vectores de características píxel por píxel

 Después de cada operación de convolución, se llama a la capa de normalización para normalizar el vector de características en cada píxel a la unidad de longitud en el generador.

 3.1.3 Propagación hacia adelante

El proceso de propagación hacia adelante del modelo puede referirse básicamente a la siguiente figura 

3.2 Formación

# 对于每个尺度,应更新混合因子alpha的迭代次数
_C.iterAlphaJump = [[], [0, 1000, 2000], [0, 1000, 4000, 8000, 16000],
                    [0, 2000, 4000, 8000]]

# 更新期间混合因子alpha的新值
_C.alphaJumpVals = [[], [1., 0.5, 0], [
    1, 0.75, 0.5, 0.25, 0.], [1., 0.75, 0.5, 0.]]

# 每个尺度的卷积层的深度
_C.depthScales = [512, 512, 512, 512, 256, 128, 64, 32, 16]

Supongo que te gusta

Origin blog.csdn.net/weixin_50862344/article/details/131546773
Recomendado
Clasificación