¿Cuáles son los pros y los contras del uso de redes adversas generativas (un tipo de red neuronal)? ¿Se podrían aplicar a cosas como la forma de onda de audio a través de RNN? ¿Por qué o por qué no?

Pros:

  • Las GAN son un buen método para entrenar clasificadores de forma semi-supervisada. Vea nuestro documento NIPS y el código que lo acompaña. Puede usar nuestro código directamente casi sin modificaciones cada vez que tenga un problema en el que no pueda usar muchos ejemplos etiquetados. Por lo general, esto se debe a que simplemente no tiene muchos ejemplos etiquetados. También recientemente utilicé este código con mucho éxito para una colaboración con Google Brain sobre privacidad diferencial para el aprendizaje profundo.
  • Las GAN generan muestras más rápido que las redes de creencias totalmente visibles (NADE, PixelRNN, WaveNet, etc.) porque no hay necesidad de generar las diferentes entradas en la muestra de forma secuencial.
  • Las GAN no necesitan ninguna aproximación de Monte Carlo para entrenar. Las personas se quejan de que las GAN son inestables y difíciles de entrenar, pero son mucho más fáciles de entrenar que las máquinas Boltzmann, que se basaban en aproximaciones de Monte Carlo al gradiente de la función de partición de registros. Debido a que los métodos de Monte Carlo no funcionan muy bien en espacios de alta dimensión, las máquinas de Boltzmann nunca han escalado a tareas realistas como ImageNet. Las GAN son al menos capaces de aprender a dibujar algunos perros en mal estado cuando entrenan en ImageNet.
  • En comparación con los codificadores automáticos variacionales, las GAN no introducen ningún sesgo determinista. Los métodos variacionales introducen sesgos deterministas porque optimizan un límite inferior en la probabilidad logarítmica en lugar de la probabilidad en sí misma. Esto parece dar lugar a que los VAE aprendan a generar muestras borrosas en comparación con las GAN.
  • En comparación con ICA no lineal (NICE, NVE real, etc., que son los ejemplos más recientes), no es necesario que el código latente tenga una dimensionalidad específica o que la red del generador sea invertible.
  • En comparación con los VAE, es más fácil usar variables latentes discretas.
  • En comparación con las máquinas de Boltzmann y los GSN, generar una muestra requiere solo un paso a través del modelo, en lugar de un número desconocido de iteraciones de una cadena de Markov.

Contras:

• Entrenar una GAN requiere encontrar el equilibrio de Nash de un juego. A veces, el descenso de gradiente hace esto, a veces no. Realmente todavía no tenemos un buen algoritmo de búsqueda de equilibrio, por lo que el entrenamiento GAN es inestable en comparación con el entrenamiento VAE o PixelRNN. Yo diría que todavía se siente mucho más estable que el entrenamiento de Boltzmann en la práctica.

• Es difícil aprender a generar datos discretos, como el texto.

• En comparación con las máquinas Boltzmann, es difícil hacer cosas como adivinar el valor de un píxel dado otro píxel. Las GAN están realmente capacitadas para hacer una sola cosa, que es generar todos los píxeles de una sola vez. Puede solucionar esto utilizando un BiGAN, que le permite adivinar los píxeles faltantes utilizando el muestreo de Gibbs, lo mismo que en una máquina Boltzmann.

Hablo un poco sobre esto en los primeros 20 minutos de esta conferencia en Berkeley:

Mientras que las creencias generales afirman que una Red Adversarial generativa goza del beneficio de ser un modelo generativo mientras puede ser entrenada con un aprendizaje discriminativo. Creo que la verdadera ventaja viene con el hecho de que la capacitación no se limita solo al conjunto de datos de capacitación disponible.

En la optimización, solo se necesita una función objetivo que pueda evaluar la configuración actual del proceso. Lo mismo ocurre con el aprendizaje donde los ejemplos son en este caso el conjunto de muestreo empírico del verdadero objetivo funcional. GAN convierte estos ejemplos en un objetivo aproximado (con una red neuronal de avance) que se puede utilizar para evaluar cualquier configuración de peso analíticamente. El entrenamiento, en lugar de sumar a través de un conjunto de muestras objetivas, se puede realizar analíticamente en una magnitud de muestras generadas directamente proporcionales al número de iteraciones de entrenamiento.

La principal ventaja de usar redes de confrontación generativa (GAN) es que cuando funciona, funciona muy bien, como lo demuestran los documentos recientes que producen imágenes muy realistas de caras, sillas y animales. La razón de esto es que el objetivo optimizado por las GAN (generar datos artificiales que son indistinguibles de los datos reales por otra red neuronal) está altamente alineado con el objetivo de producir datos realistas. Esto contrasta con un método competitivo de “autoencoders variacionales”, que tiene un objetivo posiblemente menos alineado. Además de tener un mejor objetivo, las GAN no requieren muchos de los cálculos de probabilidad anteriores y posteriores, a menudo necesarios para otro enfoque competitivo, la máxima probabilidad.

Sin embargo, la gran desventaja es que estas redes son muy difíciles de entrenar. La función que estas redes intentan optimizar es una función de pérdida que esencialmente no tiene forma cerrada (a diferencia de las funciones de pérdida estándar como la pérdida de registro o el error al cuadrado). Por lo tanto, optimizar esta función de pérdida es muy difícil y requiere mucha prueba y error con respecto a la estructura de la red y el protocolo de capacitación. Dado que las RNN son generalmente más volubles que las CNN, es probable que esta sea la razón por la que muy pocas personas (si las hay) han podido aplicar GAN a algo más complejo que las imágenes, como el texto o el habla.

More Interesting

¿Qué es un proyecto paralelo fácil pero divertido de la vida real basado en algoritmos genéticos?

¿Cómo funcionan los filtros Prisma?

¿Cuál sería el mejor tema para hacer una maestría en inteligencia artificial, robótica o aprendizaje automático?

Aprendizaje de refuerzo: ¿por qué las recompensas están asociadas con acciones (independientemente del estado en el que termines)?

¿Cuáles son los beneficios de usar un Chatbot?

¿En qué orden debo aprender el aprendizaje automático, el aprendizaje profundo, el procesamiento del lenguaje natural y la inteligencia artificial?

Si la IA dominara el campo de la inversión de valor analizando y analizando, como los humanos, ¿tendría algún sentido producir contenidos para inversores de valor?

¿Qué gran empresa de tecnología lidera en IA?

¿Cómo es la reputación de Aalto University Machine Learning - facultad e investigación - entre académicos en otros países además de Finlandia?

¿Cuáles son las principales razones por las que todavía no existe una superinteligencia artificial?

Cómo implementar conexiones dispersas personalizadas en una red neuronal

¿Quiero crear una herramienta de reconocimiento de escritura a mano con red neuronal usando MATLAB?

Si no podemos aceptar la aparición de IA y robots, ¿no deberíamos volver a la Edad de Piedra y dormir en cuevas?

¿Cómo podría la inteligencia artificial mejorar la tecnología agrícola actual?

Cómo construir un sistema de recomendación médica