El título "Leer artículos para usted". Octubre - diciembre 2019



Hola Habr! Continuamos publicando reseñas de artículos científicos de miembros de la comunidad Open Data Science del canal #article_essense. Si quieres recibirlos antes que los demás, ¡únete a la comunidad !


Artículos para hoy:


  1. Poly-encoders: arquitecturas de transformadores y estrategias de pre-entrenamiento para un puntaje de múltiples oraciones rápido y preciso (Facebook, 2019)
  2. Discriminador implícito en Autoencoder Variacional (Indian Institute of Technology Ropar, 2019)
  3. El autoaprendizaje con Noisy Student mejora la clasificación de ImageNet (Google Research, Carnegie Mellon University, 2019)
  4. Contraste de momento para el aprendizaje de representación visual sin supervisión (Facebook, 2019)
  5. Evaluación comparativa de la robustez de la red neuronal frente a las corrupciones y perturbaciones comunes (Universidad de California, Oregon State University, 2019)
  6. DistilBERT, una versión destilada de BERT: más pequeña, más rápida, más barata y más ligera (Hugging Face, 2019)
  7. Modelos de lenguaje Plug and Play: un enfoque simple para la generación de texto controlado (Uber AI, Caltech, HKUST, 2019)
  8. Representación de gran relevancia para la estimación de F0 en música polifónica (Universidad de Nueva York, EE. UU., 2017)
  9. Análisis y mejora de la calidad de imagen de StyleGAN (NVIDIA, 2019)


1. Poly-encoders: arquitecturas de transformadores y estrategias de preentrenamiento para puntuación rápida y precisa de múltiples oraciones


Autores: Samuel Humeau, Kurt Shuster, Marie-Anne Lachaux, Jason Weston (Facebook, 2019)
→ Artículo original
Autor de la revisión: Alexey (en slack zhirzemli)


TLDR


El artículo propone un nuevo enfoque para calificar pares de oraciones (declaraciones). Este procedimiento es relevante en las tareas de predecir si una respuesta coincide con un contexto condicional, así como en tareas como la predicción de la próxima oración. El método propuesto de Poly-Encoder se compara con las estrategias de Bi-Encoder y Cross-Encoder. El método combina la ventaja de Bi-Encoder (la capacidad de almacenar en caché la presentación de respuestas) y Cross-Encoder (entrenamiento no incondicional de codificadores de contexto y respuesta)





Puntuación de varias oraciones


(Un pequeño recordatorio sobre los enfoques de Bi y Cross Encoder. Para aquellos que están familiarizados, puede omitir)


La tarea de determinar la correspondencia del contexto (solicitud o declaración del usuario) con el conjunto de respuestas existentes es principalmente relevante en los sistemas de diálogo y recuperación de información. Se resuelve encontrando una cierta velocidad (producto de puntos) entre las representaciones codificadas del contexto y la respuesta, o codificando conjuntamente el contexto y la respuesta en un vector con la posterior transformación lineal en un escalar.


El primer enfoque se llama Bi-Encoder y la ventaja obvia de este método es la capacidad de contar sin conexión las representaciones de todas las respuestas disponibles. Estas vistas se almacenan en caché, y durante la inferencia solo necesita encontrar el vector de consulta, hacer un producto de puntos con vectores de respuesta y organizar el resultado. Además, este enfoque permite un muestreo negativo más eficiente en la etapa de capacitación. Es decir, dentro de cada lote, se consideran representaciones para muestras positivas, y se pueden tomar ejemplos negativos directamente del mismo lote. En esencia, reutilice el pase directo para ejemplos positivos y negativos. La desventaja del enfoque de Bi-Encoder es el hecho de que las representaciones de contexto y respuesta aprenden casi de forma independiente. El único punto en el que es posible al menos algún tipo de flujo de información entre las vistas de solicitud y respuesta es la botnet en forma del producto de punto final. Al nivel de cualquier característica textual, la información no se pierde.


El segundo enfoque es Cross-Encoder. Implica una interacción más poderosa de contexto y respuesta en el proceso de aprendizaje e inferencia. Aquí, las secuencias de token de solicitud y respuesta se concatenan en una. Se coloca un token separador especial entre ellos y se agrega una incrustación especial a cada parte (solicitud, respuesta). De hecho, esta incorporación desplaza las representaciones de entrada de los tokens de respuesta por alguna constante, de modo que el modelo puede distinguirlos más fácilmente de los tokens de solicitud. Como resultado, el modelo aprende a encontrar una representación conjunta de la solicitud y la respuesta, de modo que la capa lineal final (vector -> escalar) devuelve un valor logits grande para pares de oraciones que coinciden entre sí y un valor pequeño de lo contrario. La desventaja de este enfoque es la imposibilidad de contar sin conexión las representaciones de respuestas: deben evaluarse en la etapa de inferencia, junto con un conjunto condicional de tokens de solicitud. Además, el truco para reutilizar las ideas de ejemplos negativos y positivos en la etapa de capacitación ya no funcionará aquí. Tendrá que recoger muestras negativas antes de la formación del lote.


Motivación
La siguiente es una solución que le permite mitigar las deficiencias y combinar las ventajas de los enfoques Bi y Cross Encoder. La idea es que queramos entrenar un codificador que, por un lado, tenga en cuenta la dependencia condicional de los tokens de respuesta en los tokens de solicitud, y por otro lado, la utilización de esta dependencia debería ocurrir en representaciones previamente evaluadas de la respuesta y la solicitud. Geométricamente, personalmente me imagino algo como esto: mover la botnet (el producto de punto final de las dos presentaciones) un poco más abajo a la red. Cree cierta interacción entre las vistas de solicitud y respuesta. Al mismo tiempo, implementar tal interacción no está demasiado lejos de la capa final, de modo que la parte principal del codificador de solicitud permanece independiente del codificador de respuesta.


Implementación
La implementación de tal idea es bastante simple: el codificador de candidatos funciona como en el caso de Bi-Encoder: obtenemos la representación de la secuencia en forma de vector (token [CLS]) usando el modelo basado en transformador (BERT). Almacenamos estas representaciones en caché después de entrenar el modelo.


El codificador de contexto, a su vez, no comprime la representación de la secuencia de entrada en un solo vector. Aquí dejamos todos los vectores de secuencia codificados por el modelo.


Para obtener una evaluación de la conformidad del contexto (un conjunto de vectores) y el candidato (un vector), se utiliza el mecanismo de atención. El vector candidato en este caso es una solicitud, y el vector de contexto son las claves. Se considera producto de punto y más - softmax de acuerdo con los valores resultantes. Los vectores de contexto se ponderan por la distribución resultante y se suman. Como resultado, obtenemos la representación de contexto en forma de un solo vector. Y además, como en el Bi-Encoder habitual, consideramos el producto escalar del contexto y el candidato.


Además, el artículo propuso varias formas de acelerar la ponderación de los vectores de contexto. La opción más funcional era un proceso de contar la atención, en el que solo se tomaban los primeros m vectores de la secuencia de contexto.


Resultados
Como resultado, resultó que Cross-Encoder todavía funciona mejor. Pero Poly-Encoder no está muy lejos en términos de métricas de calidad, y en términos de velocidad de inferencia, funciona cientos de veces más rápido.


2. Discriminador implícito en Autoencoder Variacional


Autores: Prateek Munjal, Akanksha Paul, Narayanan C. Krishnan (Instituto Indio de Tecnología Ropar, 2019)
→ Artículo original
Autor de la revisión: Alex Chiron (en sliron shiron8bit)


En el artículo, los autores propusieron una arquitectura que intenta combinar las ventajas de los enfoques VAE y GAN para la generación de imágenes, evitando las desventajas inherentes a cada enfoque: desenfoque en el caso de autoencoders, falta de modo / modo en caso de entrenamiento adversario. Lo logran debido a los pesos totales entre el codificador y el discriminador y el generador / decodificador común, que, en primer lugar, reduce el número de pesos de red, y en segundo lugar, nos permite obtener información útil del discriminador a través de gradientes si el generador / decodificador no cae en la distribución de datos real.


Introduccion
En los problemas de generación, la coincidencia de la distribución de los datos generados Q con la distribución de los datos reales P, que se mide a través de la divergencia Kullback-Leibler, juega un papel importante. Una característica distintiva de esta medida de la lejanía de las distribuciones es que es asimétrica. En consecuencia, obtendremos diferentes imágenes dependiendo de si consideramos Div_KL (P || Q) o Div_KL (Q || P). Si consideramos dos opciones para comparar distribuciones (en la imagen a continuación), entonces con Div_KL (P || Q) (también conocido como forward-KL, también conocido como cero evitando) la segunda opción dará un valor más bajo, y para Div_KL (Q || P) (es KL hacia atrás, también es de forzamiento cero) las distribuciones de la primera opción se considerarán distribuciones más cercanas. En realidad, los resultados de VAE y GAN son muy diferentes: la pérdida de reconstrucción (L2) ayuda a minimizar la divergencia de KL hacia adelante (y, por lo tanto, conservamos todos los modos, pero obtenemos imágenes borrosas), y el entrenamiento con un discriminador ayuda a minimizar la divergencia de KL hacia atrás (las imágenes se obtienen más claro, pero existe el riesgo de omitir el mod)





Arquitectura, Pérdidas y Entrenamiento
Como se mencionó anteriormente, los autores proponen tener en cuenta las deficiencias de ambos modos y combinar ambas minimizaciones debido a la arquitectura de red (en la imagen a continuación), en la que la mayoría de los pesos del codificador y discriminador son comunes (solo los cabezales completamente conectados que predicen la 'realidad' de la imagen y los parámetros están separados mu, sigma de la capa latente VAE), y también debido al modo de entrenamiento. El codificador y el generador son iguales. La mayoría de las pérdidas utilizadas son bastante estándar: en el codificador L_enc los, se utiliza el error de recuperación L2 y la divergencia de Kullback-Leibler a N (0,1) (L_prior), el resto es entrenamiento de confrontación (minimizamos la salida del discriminador al entrenar al discriminador, maximícelo) al aprender un decodificador / generador), pero hay 2 características distintivas:


  • En la pérdida relacionada con el entrenamiento de confrontación, se alimentan al discriminador 2 tipos diferentes de datos generados: recuperados mediante un codificador / decodificador y generados por un generador / decodificador a partir de muestras de N (0,1)


  • En la pérdida del decodificador L_dec, hay un miembro en el que las características de la penúltima capa del discriminador (nuevamente, esta es la última capa común entre el discriminador y el codificador) se comparan para imágenes reales y restauradas.




Resultados
Los autores compararon los resultados con VAE y otros trabajos, de una forma u otra tratando de combinar VAE y GAN (VAE-GAN, alpha-GAN y AGE de Dmitry Ulyanov y Victor Lempitsky) en conjuntos de datos celeba y cifar10 (gracias por no mnist), recibió casi los mejores indicadores sobre el error de reconstrucción y la métrica de distancia de inicio de Frechet (compara las estadísticas de activación de la malla pre-entrenada para imágenes reales y generadas). Se observó por separado que la clasificación por FID depende en gran medida de la arquitectura elegida, por lo que el resultado es mejor verificar el conjunto de 'expertos' (diferentes arquitecturas).


3. El autoaprendizaje con Noisy Student mejora la clasificación de ImageNet


Autores: Qizhe Xie, Eduard Hovy, Minh-Thang Luong, Quoc V. Le (Google Research, Carnegie Mellon University, 2019)
→ Artículo original
Autor de la revisión: Alexander Belsky (en slack belskikh)


Google recibió un impresionante 87.4% de top1 y 98.2% de top5 de precisión en la imagen. Zayuzali oculta redes de pseudo-atenuación y muy audaces. El enfoque se llamaba Estudiante ruidoso.





El algoritmo es algo como esto:


  1. Tomamos un modelo de maestro, enseñamos una imagen normal.
  2. Generamos psudo etiquetas suaves en imágenes del conjunto de datos JFT.
  3. Enseñamos el modelo del estudiante en pseudo-etiquetas suaves, e interferimos tan pronto como podemos: fuertes abusos, abandonos y profundidad estocástica.
  4. Tome el modelo del alumno, úselo como maestro en el paso 2 y repita el proceso.El conjunto de datos se equilibra de acuerdo con las clases de la siguiente manera. Para empezar, tomamos EfficientNet-B0, entrenado en la imagen, expulsamos sus predicciones en el conjunto de datos JFT. Luego tomaron esos ejemplos para los cuales la confianza máxima es superior a 0.3. Para cada clase, se tomaron 130K imágenes (si después de filtrar por 0.3 trashhold eran menos, duplicadas, si es que más, tomadas de acuerdo con los alcances de predicado más altos). Recibió 130 millones de imágenes, emisiones duplicadas, 81 millones restantes

Arquitectura:
EfficeintNet, además, el modelo de estudiante toma un modelo de maestro mucho más gordo. También escanearon EfficientNet a EfficientNet-L0 / L1 / L2, lo que resultó en un modelo L2 con parámetros de 480M (Resnet50 tiene 26M parámetros, en comparación)


Proceso de aprendizaje:
Butchesize 2048. El modelo Sota L2 enseñó 350 eras. El modelo L2 más grande estudiado en este modo durante 3.5 días en Cloud TPU v3 Pod con 2048 núcleos.


Procedimiento de aprendizaje iterativo:
Al principio enseñaron B7 tanto como estudiante como profesor. Luego, usando a B7 como maestros, le enseñaron al gordo L0 como estudiante. Luego, cambiando sus lugares de esta manera, llegamos al modelo L2, que al final utilizamos como maestro para el mismo modelo L2. Resultado :: sota: con 2 veces menos parámetros del modelo en comparación con la celda anterior (FixRes ResNeXt-101 WSL 829 millones de parámetros)


También obtuve muy buenos resultados en ImageNet-A / C / P





4. Contraste de momento para el aprendizaje de la representación visual sin supervisión


Autores del artículo: Kaiming He, Haoqi Fan, Yuxin Wu, Saining Xie, Ross Girshick (Facebook, 2019)
→ Artículo original
Autor de la revisión: Arseny Kravchenko (en slack arsenyinfo)


SotA es un pre-entrenamiento sin supervisión para varias tareas de visión por computadora (desde la clasificación hasta la estimación de pose densa), probado en diferentes conjuntos de datos (imagenet, instagram) y tareas principales (imagenet, COCO, paisajes urbanos, LVIS, etc.).





¿Cómo se realiza el preentrenamiento sin supervisión? Se nos ocurre algún tipo de tarea para la que no se necesitan etiquetas, aprender el codificador, congelarlo y luego resolver el problema principal agregando las capas faltantes (lineal para clasificación, decodificadores para segmentación, etc.). Una de las tareas más populares en este nicho es la discriminación de instancias, basada en la pérdida de contraste, es decir. queremos que las características de diferentes aumentos de la misma imagen estén cerca una de la otra (por ejemplo, en términos de distancia del coseno), y las características de las diferentes están muy lejos.


Puede intentar enseñar esta tarea de principio a fin, pero mucho depende del tamaño del lote: la calidad depende en gran medida de la variedad de ejemplos dentro del lote. Los experimentos muestran que al aumentar el tamaño del lote, la calidad final mejora. Pero el lote es algo similar a Moscú: no es de goma, no funcionará durante mucho tiempo para aumentarlo en la frente.


Los tipos anteriores tipos cercanos a la celda arruinaron un banco de memoria: las características de lotes anteriores se almacenaron por separado en la memoria y también se usaron para generar los negativos, es decir Muestras diferentes. Esto ayudó en parte, pero también de manera imperfecta: durante el entrenamiento, los pesos del codificador cambian y las características antiguas se deterioran.


Finalmente, la idea del artículo:


  1. Reemplacemos un banco de memoria simple con una cola donde se encontrarán características bastante nuevas;
  2. Mantendremos dos versiones del codificador: una se usa para el lote actual y está entrenada, y la otra es más estable, sus pesos se actualizan desde la primera versión, pero con un gran impulso;
  3. Las características del lote se consideran el primer codificador, las características en la cola se cuentan por el segundo codificador.

Este enfoque permite acercarse a la calidad de la capacitación de extremo a extremo, pero, gracias a la larga alineación, logra los resultados potenciales de un lote irrealmente grande. De esta forma obtienes métricas interesantes para diferentes tareas, incluidas en algunos lugares es incluso un poco mejor que la imagen tradicional supervisada en el imaginet.


5. Evaluación de la robustez de la red neuronal frente a las corrupciones y perturbaciones comunes


Autores: Dan Hendrycks, Thomas Dietterich (Universidad de California, Oregon State University, 2019)
→ Artículo original
Autor de la revisión: Vladimir Iglovikov (en flojo ternaus)





Fue aceptado en ICLR 2019 y, según tengo entendido, este es uno de esos trabajos de DL que no ha sido capacitado en ninguna red.


La tarea era así, pero intentemos el aumento para la validación de ImageNet, pero entrenaremos en la continua. Además, a diferencia del adevrsarial, no tenemos la tarea de hacer que las transformaciones sean pequeñas e invisibles a la vista.


Lo que se ha hecho:


  1. Se ha seleccionado un conjunto de aumentos. Los autores dicen que este es el más común, pero, en mi opinión, mienten.
    Utilizaron: ruido gaussiano, ISONoise, Downscale, Defocus, MotionBlur, ZoomBlur, FrostedGlassBlur, JpegCompression, Snow, Fog, Rain, Elastic transoform, etc.
  2. Todas estas transformaciones se han aplicado a la validación de ImageNet. El conjunto de datos resultante se denominó ImageNet-C
  3. También se propuso una variación llamada ImageNet-P en la que se aplicaron conjuntos de transformaciones de diferentes fuerzas a cada imagen.
  4. Se propuso una métrica para evaluar la estabilidad del modelo.
  5. Se evaluaron varios modelos en el contexto de esta métrica: AlexNet, VGG-11, VGG-19, Resnet-50, Resnet-18, VGG-19 + BN, etc.

Conclusiones:


  1. Cuanto más fuerte es el aumento, más sufre la precisión del modelo. : capitan_obvious:
  2. Cuanto más complejo es el modelo, más estable.
  3. Aplicar CLAHE en imágenes antes de la inferencia ayuda un poco.
  4. cuentan con bloques de agregación como la ayuda de DenseNet o Resnext.
  5. Las redes que tienen multiescala son más estables. Un ejemplo de tales redes es MSDNet, Multigrid (no he oído hablar de tales redes)

Código


6. DistilBERT, una versión destilada de BERT: más pequeña, más rápida, más barata y más ligera.


Autores: Victor Sanh, Lysandre Debut, Julien Chaumond, Thomas Wolf (Hugging Face, 2019)
→ Artículo original
Autor de la revisión: Yuri Kashnitsky (en yorko slack)


El artículo es corto, es muy fácil de leer. Al principio, algunas palabras generales sobre la carrera armamentista en la PNL y la huella ambiental. Además, la idea de la destilación (y Hinton también lo hizo aquí.) En la tarea de modelar el lenguaje, predecimos de manera estándar la siguiente palabra en contexto. Por lo general, la pérdida de entropía cruzada compara el vector de probabilidades pronosticadas (la longitud del diccionario completo) con un vector binario, donde solo hay una unidad que indica la palabra real en un lugar determinado en el conjunto de entrenamiento. Es decir, el segundo, el tercero, etc. La palabra ignora la palabra que el modelo considera apropiada. Se da un ejemplo en el artículo: "Creo que este es el comienzo de una bella [MÁSCARA]", en lugar de [MÁSCARA] BERT quiere sustituir en primer lugar todo el día o la vida, pero las palabras predichas por futuro futuro, historia y mundo también son buenas. ¿Podemos de alguna manera tener en cuenta el hecho de que el modelo produce una buena distribución de probabilidad? En términos generales, premiar al modelo por el hecho de que la parte superior no tiene Murdock, tolerancia, maternidad y otras pocas palabras adecuadas.





La idea de la destilación.
La idea de un esquema específico de maestro-alumno es que tenemos un gran modelo de maestro ( maestro , BERT) y un modelo más pequeño ( alumno , DistilBERT), que transmitirá el "conocimiento" del modelo de maestro. El modelo del alumno optimizará la pérdida de destilación, es decir, la pérdida de entropía cruzada, definida para las distribuciones de probabilidad del profesor y el alumno: L = Σ t_i * log (s_i). Es decir, para una palabra específica borrada por el símbolo [MÁSCARA], y que debe predecirse por contexto, comparamos dos distribuciones de probabilidad de la aparición de cada palabra del diccionario: {t_i} y {s_i} - predichas, respectivamente, por el modelo y modelo del maestro estudiante Por lo tanto, se obtiene una señal rica de entrenamiento: el modelo de estudiante en cada palabra recibe una señal calculada no solo al comparar su vector de pronóstico con la palabra real en la muestra de entrenamiento, sino al compararlo con el vector de pronóstico del modelo de maestro.


Modelo DistilBERT
La idea es que el alumno es un modelo más pequeño que el profesor. Entonces DistilBERT es generalmente el mismo BERT, pero la mitad de las capas se han tirado. También arrojaron incrustaciones de tipo token y agrupadores, sin embargo, no hay detalles sobre esto. Pero lo principal es que DistilBERT es un 40% menos: 66 millones de parámetros en comparación con 110 millones para BERT


DistilBERT
DistilBERT distillation loss — masked language modeling loss, BERT cosine embedding loss — ( , , "" - , "" ). : ablation studies, , masked language modeling loss, , .. distillation loss cosine embedding loss. , RoBERTa next sentence prediction dynamic masking.


, BERT (eng. wiki + Toronto Book Corpus) 90 8 V100 (16 GB). RoBERTa 1024 V100 (32 GB).



BERT — "it performed surprisingly well", DistilBERT — GLUE surprisingly well — 5 9 , BERT , SQuAD IMDb — . , DistilBERT 60% — .



DistilBERT iPhone 7 Plus. 70% , BERT-base ( ), 200 . ablation studies: , — distillation loss cosine embedding loss.


3 , DistilBERT — BERT, 40% , 60% "97% " BERT ( ML).


-, BERT, .


Materiales adicionales:
Jay Alammar
, DistilBERT + Catalyst:


7. Plug and Play Language Models: A Simple Approach To Controlled Text Generation


: Sumanth Dathathri, Andrea Madotto, Janice Lan, Jane Hung, Eric Frank, Piero Molino, Jason Yosinski, and Rosanne Liu (Uber AI, Caltech, HKUST, 2019)

: ( Egor Timofeev)


. , / / (, . https://arxiv.org/pdf/1909.05858.pdf ). , , , , .



( x_prev ), p(x), conditional LM (, — CTRL) p(x|a).


: p(x|a) ∝ p(x)p(a|x), p(x) , (, GPT2), p(a|x) — . — , /. , , .


:


  1. , log(p(a|x)) ( ). hidden state .
  2. , hidden state log(p(a|x)). H_new.
  3. : p(x). , : -, KL(H, H_new), -, .. post-norm fusion ( https://arxiv.org/pdf/1809.00125.pdf ), p(x) non conditional LM , .
  4. .

, p(a|x).



, - topic relevance. : (GPT2) < + << < + .





8. Deep Salience Representation for F0 Estimation in Polyphonic Music


: Rachel M. Bittner, Brian McFee, Justin Salamon, Peter Li, Juan Pablo Bello ( New York University, USA, 2017)

: ( nglaz)


. , . , – . , - . constant-Q , ( ) .



. constant-Q - f_min - F. f_min f_min * h, , , . h {0.5, 1, 2, 3, 4, 5}, . , 3- , 2- 3- (, , ). , , , , (0.5f, f, 2f, 3f, 4f, 5f), . ( 55) . , , dilated-.


, , constant-Q F, .


F0 estimation, , . 2017 , , state-of-the-art. , .


9. Analyzing and Improving the Image Quality of StyleGAN


: Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila (NVIDIA, 2019)

: ( shiron8bit)


GAN- , , . , , , , ( FID) :


  • droplet-like ( / ), AdaIN.
  • , ProGAN- / end-to-end MSG-GAN. , /, .
  • Se agregó la regularización de longitud de ruta.
  • Sugirieron un procedimiento para detectar imágenes generadas: encontramos la proyección de la imagen en el espacio latente W, si la imagen reconstruida está cerca del original, entonces es más probable que se genere a través de stylegan2.




Artefactos de gotas y AdaIN
Los autores del artículo dan el siguiente argumento en contra del uso de la capa AdaIN: adain normaliza cada mapa de características, destruyendo así la información sobre los valores de magnitud relativos entre sí, y la gotita es un intento del generador de impulsar esta información de una manera diferente. Como una opción para debilitar AdaIN, se propuso lo siguiente: haremos todo el escalado (modulación / demodulación) directamente en la convolución, en función del estilo proveniente del bloque A, y el desplazamiento de la señal saliente (en lugar de mu (y) / y_ {b, i} en AdaIN) Deje que el bloque B transforme el ruido. Esta innovación al mismo tiempo permitió acelerar el entrenamiento en las mismas condiciones.


Fracaso de ProGAN
En el artículo sobre MSG-GAN, se propuso utilizar conexiones de omisión, conectando bloques generadores coincidentes y bloques discriminadores por resolución. Los autores de Stylegan desarrollaron esta idea resumiendo las salidas de los bloques generadores de todas las resoluciones (con muestreo ascendente) y alimentando la versión de la imagen con submuestreo correspondiente a la entrada de cada bloque discriminador. Se sugirió que los bloques residuales se usaran como la segunda opción, mientras que las conexiones omitidas en el generador y los bloques residuales en el discriminador mostraron los mejores resultados (el discriminador es similar a LAPGAN, pero sin discriminadores para cada resolución, los mapas de características se reenvían aún más). Como en el caso de ProGAN, en las iteraciones iniciales, las partes de la cuadrícula responsables de las resoluciones más bajas y la imagen general hacen una mayor contribución, y luego el énfasis se transfiere a pequeños detalles.


Regularización de longitud de ruta
Observando que los valores bajos de FID no siempre dan imágenes de alta calidad, y también observando una correlación entre la calidad de imagen y la métrica PPL (Longitud de ruta perceptual: inicialmente la diferencia entre las características vgg de las imágenes con pequeños pasos en Z, pero la diferencia se reemplazó con LPIPS), los autores propusieron Path Regularización de longitud, que es minimizar la funcionalidad.

JwTy= nablaw(g(w)y)


donde g es el generador en sí, J_w es el jacobiano en variables de espacio latente. Al mismo tiempo, los cálculos jacobianos se pueden hacer a través de backprop, y también se dice que para facilitar los cálculos, el regularizador se puede contar solo por cada 16 lotes. El número a se calcula como el promedio móvil exponencial de la norma jacobiana. El uso de la regularización de la longitud de la ruta permite una interpolación más 'uniforme' del espacio oculto W, que, además de mejorar la calidad de la imagen, puede mejorar la reversibilidad (es decir, encontrar w que proporciona una imagen dada después de pasar por el generador), y también abre perspectivas en términos de animación e interpolación entre fotogramas clave (en la nueva arquitectura, entre proyecciones de imágenes similares debería haber puntos responsables de imágenes cercanas I). La introducción de esta regularización también ha jugado un papel en la simplificación de la detección de imágenes generadas por esta arquitectura.

El tiempo de entrenamiento para 8 GPU a una resolución de 1024 * 1024 fue de 2 a 9 días para diferentes configuraciones.

Source: https://habr.com/ru/post/485122/


All Articles