Auto-publiqué la idea básica de una variedad determinista de redes de confrontación generativa (GAN) en una publicación de blog de 2010 (archive.org) . Lo busqué pero no pude encontrar nada similar en ningún lado, y no tuve tiempo para intentar implementarlo. No era ni sigo siendo un investigador de redes neuronales y no tengo conexiones en el campo. Copiaré y pegaré la publicación del blog aquí:
2010-02-24
Un método para entrenar redes neuronales artificiales para generar datos faltantes dentro de un contexto variable. Como la idea es difícil de poner en una sola oración, usaré un ejemplo:
Una imagen puede tener píxeles faltantes (digamos, debajo de una mancha). ¿Cómo se pueden restaurar los píxeles faltantes, conociendo solo los píxeles circundantes? Un enfoque sería una red neuronal "generadora" que, dados los píxeles circundantes como entrada, genera los píxeles faltantes.
Pero, ¿cómo entrenar a esa red? No se puede esperar que la red produzca exactamente los píxeles faltantes. Imagine, por ejemplo, que los datos que faltan son un parche de hierba. Se podría enseñar a la red con un montón de imágenes de césped, sin partes. El maestro conoce los datos que faltan y podría calificar la red de acuerdo con la diferencia cuadrática media (RMSD) entre el parche de hierba generado y los datos originales. El problema es que si el generador encuentra una imagen que no es parte del conjunto de entrenamiento, sería imposible que la red neuronal coloque todas las hojas, especialmente en el medio del parche, exactamente en los lugares correctos. El error de RMSD más bajo probablemente se lograría si la red llenara el área media del parche con un color sólido que sea el promedio del color de los píxeles en las imágenes típicas de hierba. Si la red intentara generar hierba que parezca convincente para un humano y, como tal, cumpla su propósito, la métrica RMSD tendría una pena desafortunada.
Mi idea es esta (ver la figura a continuación): entrenar simultáneamente con el generador una red clasificadora que recibe, en secuencia aleatoria o alterna, datos generados y originales. El clasificador tiene que adivinar, en el contexto del contexto de la imagen circundante, si la entrada es original (1) o generada (0). La red del generador está tratando simultáneamente de obtener una puntuación alta (1) del clasificador. El resultado, con suerte, es que ambas redes comienzan realmente simples, y progresan hacia la generación y el reconocimiento de características cada vez más avanzadas, acercándose y posiblemente derrotando la capacidad humana de discernir entre los datos generados y los originales. Si se consideran múltiples muestras de entrenamiento para cada puntaje, entonces RMSD es la métrica de error correcta para usar,
Configuración de entrenamiento de redes neuronales artificiales
Cuando menciono RMSD al final me refiero a la métrica de error para la "estimación de probabilidad", no los valores de píxeles.
Originalmente comencé a considerar el uso de redes neuronales en 2000 (publicación comp.dsp) para generar frecuencias altas faltantes para audio digital muestreado (muestreado a una frecuencia de muestreo más alta), de una manera que sería más convincente que precisa. En 2001 coleccioné una biblioteca de audio para la capacitación. 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 sobre la idea con otro usuario (_Beta):
[22:18] <yehar> el problema con las muestras es que si ya no tienes algo "allá arriba", ¿qué puedes hacer si tomas una muestra ...
[22:22] <yehar> una vez recogí un gran biblioteca de sonidos para poder desarrollar un "inteligente" algo para resolver este problema exacto
[22:22] <yehar> hubiera usado redes neuronales
[22:22] <yehar> pero no terminé el trabajo: - D
[22:23] El problema <_Beta> con las redes neuronales es que tienes que tener alguna forma de medir la bondad de los resultados
[22:24] <yehar> beta: tengo esta idea de que puedes desarrollar un "oyente" en al mismo tiempo que desarrolla el "creador de sonido inteligente"
[22:26] <yehar> beta: y este oyente aprenderá a detectar cuándo está escuchando un espectro creado o natural. y el creador se desarrolla al mismo tiempo para tratar de evitar 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. Pensaron que era interesante, pero dijeron que no era rentable entrenar dos redes cuando una sola red puede hacer el trabajo. Nunca estuve seguro si no entendieron la idea central o si vieron de inmediato una forma de formularla como una red única, tal vez con un cuello de botella en algún lugar de la topología para separarla en dos partes. Esto fue en un momento en que ni siquiera sabía que la propagación hacia atrás sigue siendo el método de entrenamiento de facto (aprendí que hacer videos en la locura de Deep Dream de 2015). A lo largo de los años, hablé sobre mi idea con un par de científicos de datos y otros que pensé que podrían estar interesados, pero la respuesta fue leve.
En mayo de 2017, vi la presentación del tutorial de Ian Goodfellow en YouTube [Mirror] , que me alegró el día. Me pareció la misma idea básica, con las diferencias que actualmente entiendo descritas a continuación, y el trabajo duro que se ha hecho para que dé 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ó preguntas que había tenido y mucho más.
La GAN de Goodfellow y sus extensiones sugeridas incluyen una fuente de ruido en el generador. Nunca pensé en incluir una fuente de ruido, sino en el contexto de los datos de entrenamiento, haciendo coincidir mejor la idea con una GAN condicional (cGAN) sin una 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 la GAN de Goodfellow minimiza la probabilidad de registro. Más tarde, se introdujo un GAN de mínimos cuadrados (LSGAN) ( Mao et al.2017) que coincide con mi sugerencia de RMSD. Entonces, mi idea coincidiría con la de una red de confrontación generativa de mínimos cuadrados condicionales (cLSGAN) sin una entrada de vector de ruido al generador y con una parte de los datos como entrada de condicionamiento. Un generador generativo toma muestras de una aproximación de la distribución de datos. Ahora sé si dudo que la entrada ruidosa del mundo real lo permita con mi idea, pero eso no quiere decir que los resultados no serían útiles si no fuera así.
Las diferencias mencionadas en lo anterior son la razón principal por la que creo que Goodfellow no sabía ni escuchó sobre mi idea. Otra es que mi blog no ha tenido otro contenido de aprendizaje automático, por lo que habría tenido 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.