Yo mismo publiqué la idea básica de una variedad determinista de redes generativas adversariales (GAN) en una entrada de blog de 2010 (archive.org) . He buscado pero no he encontrado nada similar en ningún sitio, y no he tenido tiempo de intentar ponerlo en práctica. No era ni soy un investigador de redes neuronales y no tengo conexiones en el campo. Voy a copiar y pegar la entrada del blog aquí:
2010-02-24
A método de entrenamiento de redes neuronales artificiales para generar la falta de datos dentro de un contexto variable. Como la idea es difícil de poner en un solo frase, utilizaré un ejemplo:
Una imagen puede tener píxeles perdidos (digamos, bajo una mancha). ¿Cómo se puede restaurar los píxeles que faltan, conociendo sólo los píxeles circundantes? Un enfoque sería una red neuronal "generadora" que, dados los que, a partir de los píxeles circundantes, genere los píxeles que faltan.
Pero, ¿cómo entrenar una red de este tipo? No se puede esperar que la red produzca exactamente los píxeles que faltan. Imaginemos, por ejemplo, que la datos que faltan es un trozo de hierba. Se podría entrenar la red con un montón de grupo de imágenes de césped, con porciones eliminadas. El profesor conoce los datos que faltan, y podría puntuar la red según la diferencia cuadrática media (RMSD) entre la zona de césped generada generada y los datos originales. El problema es que si el generador Si el generador encuentra una imagen que no forma parte del conjunto de entrenamiento, sería imposible para la red neuronal poner todas las hojas, especialmente en especialmente en el centro de la parcela, en los lugares exactos. El menor error RMSD error RMSD se conseguiría probablemente si la red rellenara la zona central del parche con un color sólido. de la mancha con un color sólido que es la media del color de los píxeles de la imagen típica. de los píxeles en las imágenes típicas de la hierba. Si la red intentara generar que parezca convincente para un ser humano y que, por lo tanto, cumpla con su propósito, habría una desafortunada penalización por parte de la métrica RMSD.
Mi idea es la siguiente (véase la figura siguiente): Entrenar simultáneamente con el generador una red clasificadora a la que se le dan, en secuencia aleatoria o alterna secuencia, datos generados y originales. El clasificador tiene entonces que adivinar, en el contexto de la imagen circundante, si la entrada es original (1) o generada (0). La red generada es simultáneamente intenta obtener una puntuación alta (1) del clasificador. El resultado, con suerte, es que ambas redes empiezan siendo muy sencillas, y progresen hacia la generación y el reconocimiento de redes cada vez más avanzadas. más avanzados, acercándose a la capacidad humana de discernir de discernir entre los datos generados y los originales. Si se realizan múltiples muestras de entrenamiento se consideran para cada puntuación, entonces RMSD es el métrica de error correcta a utilizar, ya que esto animará al clasificador clasificador a emitir probabilidades.
Configuración del entrenamiento de la red neuronal artificial
Cuando menciono la RMSD al final me refiero a la métrica del error para la "estimación de la probabilidad", no a los valores de los píxeles.
Empecé a considerar el uso de redes neuronales en el año 2000 (puesto de comp.dsp) para generar las altas frecuencias que faltan en el audio digital submuestreado (remuestreado a una frecuencia de muestreo más alta), de forma que resulte convincente más que precisa. En 2001 reuní una biblioteca de audio para el entrenamiento. Aquí hay partes de un registro de EFNet #musicdsp Internet Relay Chat (IRC) del 20 de enero de 2006 en el que yo (yehar) hablo de la idea con otro usuario (_Beta):
[22:18] <yehar> el problema con las muestras es que si no tienes algo "ahí arriba" entonces qué puedes hacer si haces upsample...
[22:22] <yehar> una vez recopilé una gran biblioteca de sonidos para poder desarrollar un algo "inteligente" que resolviera exactamente este problema
[22:22] <yehar> yo hubiera utilizado redes neuronales
[22:22] <yehar> pero no he terminado el trabajo :-D
[22:23] <_Beta> el problema de las redes neuronales es que hay que tener alguna forma de medir la bondad de los resultados
[22:24] <yehar> beta: tengo la idea de que puedes desarrollar un "oyente" al mismo tiempo que desarrollas el "creador de sonido inteligente"
[22:26] <yehar> beta: y este oyente aprenderá a detectar cuando está escuchando un espectro creado o un espectro natural de arriba. y el creador se desarrolla al mismo tiempo para tratar de eludir esta detección
En algún momento entre 2006 y 2010, un amigo invitó a un experto a echar un vistazo a mi idea y discutirla conmigo. Les pareció interesante, pero dijeron que no era rentable entrenar dos redes cuando una sola puede hacer el trabajo. Nunca estuve seguro de si no captaban la idea central o si veían inmediatamente una forma de formularla como una sola red, tal vez con un cuello de botella en alguna parte de la topología para separarla en dos partes. Esto fue en una época en la que ni siquiera sabía que la retropropagación sigue siendo el método de entrenamiento de facto (aprendí que haciendo videos en la moda del sueño profundo de 2015). A lo largo de los años había hablado de mi idea con un par de científicos de datos y otras personas que pensé que podrían estar interesadas, pero la respuesta fue leve.
En mayo de 2017 vi Presentación del tutorial de Ian Goodfellow en YouTube [Espejo] que me ha alegrado el día. Me pareció que era la misma idea básica, con las diferencias que entiendo actualmente expuestas a continuación, y que se había hecho el trabajo duro para que diera buenos resultados. También dio una teoría, o basó todo en una teoría, de por qué debería funcionar, mientras que yo nunca hice ningún tipo de análisis formal de mi idea. La presentación de Goodfellow respondió a las preguntas que yo tenía y a muchas más.
El GAN de Goodfellow y sus extensiones sugeridas incluyen una fuente de ruido en el generador. Nunca pensé en incluir una fuente de ruido, pero en su lugar tengo el contexto de los datos de entrenamiento, ajustando mejor la idea a un GAN condicional (cGAN) sin entrada de vector de ruido y con el modelo condicionado a una parte de los datos. Mi comprensión actual, basada en Mathieu et al. 2016 es que no se necesita una fuente de ruido para obtener resultados útiles si hay suficiente variabilidad de entrada. La otra diferencia es que el GAN de Goodfellow minimiza la log-verosimilitud. Posteriormente, se ha introducido un GAN de mínimos cuadrados (LSGAN) ( Mao et al. 2017 ) que coincide con mi sugerencia de RMSD. Así, mi idea coincidiría con la de una red generativa adversarial de mínimos cuadrados condicionales (cLSGAN) sin un vector de ruido de entrada al generador y con una parte de los datos como entrada condicionante. A generativo generador de muestras de una aproximación de la distribución de datos. Ahora sé si y dudo que la entrada ruidosa del mundo real permita eso con mi idea, pero eso no quiere decir que los resultados no sean útiles si no es así.
Las diferencias mencionadas anteriormente son la principal razón por la que creo que Goodfellow no conocía ni se enteró de mi idea. Otra es que mi blog no ha tenido ningún otro contenido de aprendizaje automático, por lo que habría gozado de una exposición muy limitada en los círculos de aprendizaje automático.
Es un conflicto de intereses cuando un revisor presiona a un autor para que cite su propio trabajo.