Introducción básica y cambios de GAN
Gan siempre ha tenido problemas como dificultad en el entrenamiento, poca estabilidad y colapso del modelo. La razón fundamental de este desajuste es que el mecanismo teórico detrás de GAN no se ha explorado claramente.
En términos de promoción de aplicaciones GAN, hay dos tecnologías que merecen atención en 2017. Uno de ellos es CycleGAN, cuya esencia es utilizar el aprendizaje dual combinado con el mecanismo GAN para optimizar el efecto de generar imágenes. DualGAN y DiscoGAN, etc. Usando ideas similares, incluidos muchos modelos mejorados posteriores, como StarGAN. La importancia de CycleGAN radica principalmente en el hecho de que los modelos de la serie GAN ya no se limitan al aprendizaje supervisado. Introduce el aprendizaje no supervisado, que solo necesita preparar dos conjuntos de imágenes en diferentes campos y no requiere una correspondencia uno a uno entre las imágenes en los dos campos necesarios para entrenar el modelo, ampliando así en gran medida su alcance de aplicación y reduciendo el Dificultad de promoción de aplicaciones.
Otra tecnología a destacar es la tecnología de “Generación Progresiva” de NVIDIA. El atractivo de este programa es que permite a la computadora generar imágenes de alta definición con dimensiones de 1024*1024. Actualmente es la tecnología que logra los mejores resultados en términos de claridad de imagen y calidad de generación de imágenes. Las imágenes de celebridades generadas casi pueden lograr el efecto de ser falsas y reales (consulte la Figura 3). La idea de NVIDIA de comenzar de grueso a fino, generar primero un contorno borroso de la imagen y luego agregar detalles gradualmente no es particularmente novedosa. Muchas soluciones anteriores, como StackGAN, han adoptado ideas similares. Lo que es único es que esta estructura de red de gruesa a fina se genera dinámicamente, en lugar de una red estática fijada de antemano. Más importante aún, las imágenes generadas son particularmente buenas.
Primero hay una generación de generadores que pueden generar algunas imágenes pobres, y luego hay una generación de discriminadores que pueden clasificar con precisión las imágenes generadas a partir de imágenes reales. En resumen, este discriminador es un clasificador binario que genera 0 para imágenes generadas y 1 para imágenes reales.
Luego, comenzamos a entrenar el generador de segunda generación, que puede generar imágenes ligeramente mejores, permitiendo al discriminador de primera generación pensar que estas imágenes generadas son imágenes reales. Luego se entrena a un discriminador de segunda generación para identificar con precisión imágenes reales e imágenes generadas por el generador de segunda generación. Por analogía, habrá tres y cuatro generaciones. . . n generaciones de generadores y discriminadores Finalmente, el discriminador no pudo distinguir entre las imágenes generadas y las imágenes reales, por lo que se instaló la red.
Los ejemplos contradictorios son entradas a modelos de aprendizaje automático que un atacante diseña intencionalmente para provocar errores en el modelo. Son como ilusiones ópticas de máquinas.
Un ejemplo contradictorio se refiere a una muestra de entrada que, después de ajustes menores, puede hacer que el algoritmo de aprendizaje automático genere resultados incorrectos. En el reconocimiento de imágenes, puede entenderse como una imagen que fue originalmente clasificada en una categoría (como "panda") por una red neuronal convolucional (CNN). Después de cambios muy sutiles o incluso imperceptibles, de repente se clasificó erróneamente en otra categoría. especies (como "gibón").
Entrenamiento adversario
El entrenamiento adversario es un método de defensa contra ataques de muestra. Entrenar muestras adversas y muestras normales juntas es un método de regularización eficaz que puede mejorar la precisión del modelo y reducir eficazmente la tasa de éxito del ataque de las muestras adversas. Pero esta defensa sólo apunta a los mismos métodos utilizados para generar ejemplos contradictorios en el conjunto de entrenamiento.
De hecho, como puede ver en la figura siguiente, el conjunto de entrenamiento es una muestra normal y la línea roja del conjunto de prueba es una muestra normal. Tanto el conjunto de entrenamiento como el conjunto de prueba son muestras normales, lo que indica que el entrenamiento adversario tiene un efecto de regularización.
Figura 9
Es muy ineficiente generar directamente muestras adversarias durante el entrenamiento. El FGSM antes mencionado es un método de entrenamiento adversario eficiente. Solo cambiando la función objetivo podemos considerar ejemplos contradictorios mientras entrenamos cada ejemplo normal. El modelo está entrenado para otorgar a las muestras adversas la misma categoría que la clasificación original de las muestras normales.
La red entrenada por FGSM puede defenderse eficazmente contra ataques de muestra generados por FGSM, pero también se romperá si se utilizan otras contramedidas.
La idea de trabajar en ejemplos de control puede tener dos significados:
Conclusión
Crear ejemplos contradictorios para modelos de conjunto será más difícil debido a los métodos de gradiente . Pero el algoritmo resultante es más factible y eficiente.
Los puntos ciegos en un solo modelo se pueden compensar con otros modelos y se utilizarán los datos del modelo con los mejores resultados.
Descubrimos que cuando entrenamos el algoritmo con modelos adversarios creados dinámicamente, podemos resolver el problema de estos ejemplos adversarios. Esto se debe a que el modelo es capaz de desarrollar un mayor grado de "inmunidad" frente a estas áreas de baja probabilidad donde pueden ocurrir problemas. Esto también respalda el argumento de las regiones de baja probabilidad, donde los ejemplos contradictorios son más difíciles de procesar.
DCGAN es una mejora mayor después de GAN, y la principal mejora está en la estructura de la red. Hasta ahora, la estructura de red de DCGAN todavía se usa ampliamente, lo que mejora en gran medida la estabilidad del entrenamiento de GAN y la calidad de los resultados generados.
Las principales contribuciones de este artículo son:
◆Proporciona una buena topología de red para el entrenamiento de GAN.
◆Explique que las características generadas tienen las características computacionales de los vectores.
D (x) representa la probabilidad de que la red D juzgue si la imagen real es real (debido a que X es real, para D, cuanto más cerca esté este valor de 1, mejor). Y D (G (z)) D (G (z)) es la probabilidad de juzgar si la imagen generada por G es real.
Propósito de G: G debe esperar que la imagen que genera sea “lo más cercana posible a la realidad”. En otras palabras, G espera que D(G(z))D(G(z)) sea lo más grande posible, lo que significa que V(D,G)V(D,G) será más pequeño.
Uso de D: Cuanto más fuerte sea la habilidad de D, mayor D(x)D(x) y menor D(G(x))D(G(x)). Por lo tanto, el propósito de D es diferente del de G. D espera que V (D, G) V (D, G) sea lo más grande posible.
DCGAN ha realizado algunos cambios en la estructura de la red neuronal convolucional para mejorar la calidad de la muestra y la velocidad de convergencia. Los cambios son los siguientes:
Se eliminan todos los niveles de agrupación. La red g utiliza capas convolucionales transpuestas para el muestreo ascendente, y la red D utiliza convolución escalonada en lugar de agrupación.
Utilice la normalización por lotes en d y g.
Elimine la capa FC para hacer de la red una red totalmente móvil.
ReLU se usa como función de activación en la red G y tanh se usa en la última capa.
Utiliza LeakyReLU como función de activación en la red D.
g. Diagrama de red en DCGAN:
La estructura de red del generador de DCGAN se muestra en la figura anterior. En comparación con la GAN original, DCGAN utiliza casi por completo capas convolucionales en lugar de capas de enlace completo, y el discriminador es casi simétrico con el generador. Como se puede ver en la figura anterior, toda la red no tiene una capa de agrupación ni una capa de muestreo ascendente. De hecho, se utiliza convolución en pasos fraccionarios en lugar de muestreo ascendente para aumentar la estabilidad del entrenamiento.
Las principales razones por las que DCGAN puede mejorar la estabilidad del entrenamiento de GAN son:
◆La convolución por pasos se utiliza para reemplazar la capa de muestreo ascendente. La convolución juega un papel muy bueno en la extracción de características de la imagen. La convolución se utiliza para reemplazar capas completamente conectadas.
◆Casi todas las capas del generador G y el discriminador D utilizan la capa de norma por lotes para normalizar la salida de la capa de características, acelerando el entrenamiento y mejorando la estabilidad del entrenamiento. (El generador de última capa y el discriminador de primera capa no agregan norma de lote)
◆La función de activación de fugarelu se usa en lugar de relu en el discriminador para evitar la escasez de gradiente. Relu todavía se usa en el generador, pero tanh se usa en la capa de salida.
Al entrenar con el optimizador Adam, la mejor tasa de aprendizaje es 0.0002 (he probado otras tasas de aprendizaje y debo decir que 0.0002 es el mejor rendimiento).
BigGAN utiliza un lote grande en el entrenamiento, alcanzando 2048 lotes (normalmente entrenamos principalmente con 64 lotes). Los canales de convolución también se han hecho más grandes y los parámetros de la red también han aumentado. En lotes de 2048, los parámetros de toda la red se acercarán a 654,38+0,6 mil millones.