Autor: Steven Wang
“Lo que no puedo crear, no lo entiendo”. -
Richard Feynman
Prefacio
Crea hermosas imágenes con Stable Diffusion y MidJourney de tu lado.
Eres experto en el uso de ChatGPT y LLaMa para crear texto elegante.
Cambias de un lado a otro entre MuseNet y MuseGAN para crear la música de las montañas y el agua que fluye.
No hay duda de que la capacidad más singular de los seres humanos es la creación, pero hoy en día, con el rápido desarrollo de la tecnología, ¡creamos creando máquinas! Las máquinas pueden dibujar obras de arte originales en un estilo determinado (dibujar), escribir un artículo extenso y coherente (escribir), crear música hermosa (componer) y desarrollar estrategias ganadoras para juegos complejos (jugar). Esta tecnología es Inteligencia Artificial Generativa (GenAI). Ahora es solo el comienzo de la revolución GenAI. Ahora es el mejor momento para aprender GenAI.
1. Generación y discriminación de modelos.
GenAI es una palabra de moda y la esencia detrás de ella es el modelo generativo, que es una rama del aprendizaje automático. El objetivo es entrenar un modelo para generar nuevos datos similares a un conjunto de datos determinado.
Digamos que tenemos un conjunto de datos de caballos. Primero, podemos entrenar un modelo generativo en este conjunto de datos para capturar las reglas que gobiernan las complejas relaciones entre píxeles en imágenes de caballos. Luego, toma muestras de este modelo para crear imágenes realistas de caballos que no están presentes en el conjunto de datos original, como se muestra a continuación.
Para comprender verdaderamente los objetivos y la importancia de los modelos generativos, es necesario compararlos con los modelos discriminativos. De hecho, la mayoría de los problemas del aprendizaje automático se resuelven mediante modelos discriminantes. Consulte los siguientes ejemplos.
Supongamos que tenemos un conjunto de datos de pinturas, algunas pintadas por Van Gogh y otras pintadas por otros artistas. Con suficientes datos, podemos entrenar un modelo discriminante para predecir si una pintura determinada fue pintada por Van Gogh, como se muestra en la siguiente figura.
Cuando se utiliza el modelo discriminativo, cada ejemplo en el conjunto de entrenamiento tiene una etiqueta. Para el problema de dos clasificaciones anterior, generalmente la etiqueta de las pinturas de Van Gogh es 1 y la etiqueta de las pinturas que no son de Van Gogh es 0. La última probabilidad prevista del modelo en la imagen de arriba es 0,83, por lo que lo más probable es que haya sido realizado por Van Gogh. A diferencia del modelo discriminativo, el modelo generativo no requiere que los ejemplos contengan etiquetas porque su objetivo es generar nuevos datos en lugar de predecir etiquetas para los datos.
Después de leer el ejemplo, usemos la notación matemática para definir con precisión el modelo generativo y el modelo discriminativo:
El modelo discriminativo modela P(y|x), estimando la probabilidad condicional de una etiqueta y dada una característica x.
Los modelos generativos modelan P (x), estiman directamente la probabilidad de la característica x y toman muestras de esta distribución de probabilidad para generar nuevas características.
Es importante señalar que incluso si pudiéramos construir un modelo discriminativo que fuera perfecto para identificar las pinturas de Van Gogh, aún no sabría cómo crear una pintura que se pareciera a Van Gogh. Solo podría generar una probabilidad de si La imagen era de Van Gogh la posibilidad de la mano. Se puede ver que generar modelos es mucho más difícil que discriminar modelos.
2. Marco para generar modelos.
Antes de comprender el marco del modelo generativo, juguemos un juego. Supongamos que los puntos en la figura siguiente son generados por una determinada regla, llamemos a esta regla Pdata y ahora generemos un x = (x1, x2) diferente para que este punto parezca generado por la misma regla Pdata.
¿Cómo generarías este punto? Puede utilizar los puntos dados para generar un modelo P en su mente, y las posiciones ocupadas por este modelo pueden generar los puntos que desee. Se puede ver que el modelo Pmodel es la estimación de Pdata. Entonces, el modelo Pmodel más simple es como el cuadro naranja en la figura siguiente. Los puntos solo se pueden generar dentro del cuadro, pero no fuera del cuadro.
Para generar nuevos puntos, podemos seleccionar aleatoriamente un punto dentro del cuadro, o más estrictamente, una muestra del modelo de distribución Pmodel. Este es un modelo generativo minimalista. Usted crea un modelo (cuadro naranja) a partir de los datos de entrenamiento (puntos negros) y luego toma muestras del modelo, con la esperanza de que los puntos resultantes se vean similares a los puntos del conjunto de entrenamiento.
Ahora podemos proponer formalmente un marco para el aprendizaje generativo.
Revelemos ahora la distribución de generación de datos real Pdata y veamos cómo aplicar el marco anterior a este ejemplo. En la siguiente figura podemos ver que la regla de generación de datos Pdata es que los puntos solo se distribuyen uniformemente en la tierra y no aparecen en el océano.
Es obvio que nuestro modelo Pmodel es una simplificación de la regla Pdata. Verificar los puntos A, B y C en la figura anterior puede ayudarnos a comprender si el modelo Pmodel imita con éxito la regla Pdata.
El punto A no cumple con la regla Pdata porque ocurre en el mar, pero puede ser generado por el modelo Pmodel porque ocurre dentro del cuadro naranja.
El punto B no puede ser generado por el modelo Pmodel porque aparece fuera del cuadro naranja, pero se ajusta a la regla Pdata porque ocurre en tierra.
El punto C es generado por el modelo Pmodel y se ajusta a la regla Pdata.
Este ejemplo demuestra los conceptos básicos detrás del modelado generativo. Aunque el uso de modelos generativos en realidad es mucho más complicado, el marco básico es el mismo.
3. El primer modelo generativo
Suponga que es el director de moda (CFO) de una empresa y su trabajo es crear nueva ropa de moda. Este año recibes 50 conjuntos de datos sobre combinaciones de moda (como se muestra a continuación) y necesitas crear 10 nuevas combinaciones de moda.
Aunque eres el director de moda, también eres un científico de datos, por lo que decides utilizar un modelo generativo para resolver este problema. Después de leer las 50 imágenes de arriba, decides usar cinco características, tipo de accesorios (tipo de accesorios), color de ropa (color de ropa), tipo de ropa (tipo de ropa), color de cabello (color de cabello) y tipo de cabello (tipo de cabello), para Describe trajes de moda.
Las 10 funciones principales de datos de imágenes son las siguientes.
Cada característica también tiene un número diferente de valores propios:
3 tipos de accesos:
En blanco, redondo, gafas de sol
8 colores de ropa:
Negro, Azul 01, Gris 01, Verde pastel, Naranja pastel, Rosa, Rojo, Blanco
4 tipos de ropa:
Sudadera con capucha, mono, camiseta con cuello redondo, camiseta con cuello en V
6 colores de cabello:
Negro, rubio, castaño, rosa pastel, rojo, gris plateado
7 tipos de cabello:
Sin pelo, pelo largo con moño, pelo largo con rizado, pelo largo liso, pelo corto ondulado, pelo corto plano, pelo corto con frizz
Hay 3 * 8 * 4 * 6 * 7 = 4032 combinaciones de características, por lo que se puede imaginar que el espacio muestral contiene 4032 puntos. De los 50 puntos de datos proporcionados, podemos ver que Pdata prefiere ciertos valores de características para diferentes características. En la tabla de arriba, podemos ver que hay más colores de ropa blanca y colores de cabello gris plateado en las imágenes. Como no conocemos los Pdata reales, solo podemos usar estos 50 datos para construir un Pmodel para que pueda estar cerca de Pdata.
3.1 modelo minimalista
Uno de los métodos más simples es asignar un parámetro de probabilidad a cada punto en las 4032 combinaciones de características, luego el modelo contiene 4031 parámetros, porque todos los parámetros de probabilidad suman 1. Ahora verifiquemos los 50 datos uno por uno y luego actualicemos los parámetros del modelo (θ1, θ2,…, θ4031).
Entre ellos, N es el número de datos de observación, que es 50, y nj es el número de combinaciones de características j-ésimas que aparecen en 50 datos.
Por ejemplo, la combinación de características (llamada combinación 1) de (LongHairStraight, Red, Round, ShirtScoopneck, White) aparece dos veces, luego
Por ejemplo, la combinación de características (llamada combinación 2) de (LongHairStraight, Red, Round, ShirtScoopneck, Blue01) no aparece, entonces
De acuerdo con las reglas anteriores, calculamos un valor de θ para todas las 4031 combinaciones. No es difícil ver que muchos valores de θ son 0. Lo peor es que no podemos generar nuevas imágenes invisibles (θ = 0 significa Sin imágenes). con esta combinación de características fueron observadas). Para resolver este problema, simplemente suma el número total de características d al denominador y 1 al numerador, un truco llamado suavizado de Laplace.
Ahora bien, cada combinación (incluidas aquellas que no están en el conjunto de datos original) tiene una probabilidad de muestreo distinta de cero; sin embargo, este todavía no es un modelo generativo satisfactorio porque la probabilidad de un punto que no está en el conjunto de datos original es una constante. Si intentamos utilizar un modelo de este tipo para generar una pintura de Van Gogh, funcionará en ambas pinturas con la misma probabilidad:
Reproducción de la pintura original de Van Gogh (no en el conjunto de datos original)
Pintura hecha de píxeles aleatorios (no en el conjunto de datos original)
Obviamente, este no es el modelo generativo que queremos, queremos que aprenda alguna estructura inherente de los datos y así poder aumentar las ponderaciones de probabilidad de las regiones en el espacio muestral que cree que son más probables, en lugar de poner todas las ponderaciones de probabilidad en el punto de existencia del conjunto de datos.
3.2 Modelo de simplicidad secundaria
El modelo Naive Bayes puede reducir en gran medida el número de combinaciones de las características anteriores. Según su modelo, se supone que cada característica es independiente entre sí. Volviendo a los datos anteriores, no existe conexión entre el color de cabello de una persona (característica xj) y el color de su ropa (característica xk). La expresión matemática es:
p(xj | xk) = p(xk)
Con esta suposición podemos calcular
El modelo Naive Bayes simplifica el problema original de "hacer una estimación de probabilidad para cada combinación de características" en "hacer una estimación de probabilidad para cada característica". Originalmente necesitábamos usar 4031 (3 * 8 * 4 * 6 * 7) parámetros. Solo se requieren 23 (3 + 8 + 4 + 6 + 7) parámetros y la expresión de cada parámetro es:
Entre ellos, N es el número de datos de observación, que es 50, y nkl es el número de l-ésimos valores propios de la k-ésima característica.
Al contar 50 datos, la siguiente tabla proporciona los valores de los parámetros del modelo Naive Bayes.
Para calcular la probabilidad de que el modelo genere una determinada característica de datos, solo necesita multiplicar las probabilidades en la tabla, por ejemplo:
La combinación anterior no aparece en el conjunto de datos original, pero el modelo aún le asigna una probabilidad distinta de cero, por lo que aún puede ser generada por el modelo. Por lo tanto, el modelo Naive Bayes puede aprender alguna estructura de los datos y utilizarla para generar nuevos ejemplos que no se ven en el conjunto de datos original. La siguiente imagen es una imagen de 10 nuevas combinaciones de moda generadas por la modelo.
En este problema, solo 5 características pertenecen a datos de baja dimensión. Es razonable que el modelo ingenuo de Bayes suponga que son independientes entre sí, por lo que los resultados generados por el modelo no son malos. colapsar.
4. Dificultades para generar modelos
4.1 Datos de alta dimensión
Como director de moda, ha generado con éxito 10 nuevos conjuntos de combinación de moda utilizando Naive Bayes. Tiene mucha confianza y siente que su modelo es invencible hasta que encuentra el siguiente conjunto de datos.
Este conjunto de datos ya no está representado por cinco características, sino por 32*32 = 1024 píxeles. Cada valor de píxel puede ser de 0 a 255, donde 0 representa el blanco y 255 representa el negro. La siguiente tabla enumera los primeros 10 valores de píxeles de la imagen del 1 al 5.
Utilice el mismo modelo para generar 10 nuevos conjuntos de combinación de moda. Los siguientes son los resultados generados por el modelo. Cada uno es muy similar en apariencia y no se pueden distinguir diferentes características.
En primer lugar, dado que el modelo Naive Bayes muestrea píxeles de forma independiente, los píxeles adyacentes son en realidad muy similares. Para la ropa, los píxeles en realidad deberían ser más o menos los mismos, pero el modelo toma muestras al azar, por lo que todas las prendas en la imagen de arriba son coloridas. En segundo lugar, hay demasiadas posibilidades en el espacio muestral de alta dimensión, de las cuales sólo una pequeña parte es identificable. Si un modelo Naive Bayes trata directamente con valores de píxeles tan altamente correlacionados, la posibilidad de encontrar una combinación satisfactoria de valores es muy pequeña.
En resumen, para un espacio muestral de baja dimensión con baja correlación de características, el efecto Bayes ingenuo es muy bueno mediante muestreo independiente, pero para un espacio muestral de alta dimensión con alta correlación de características, el efecto efectivo se encuentra mediante muestreo independiente de píxeles; Los rostros humanos son casi imposibles.
Este ejemplo destaca dos dificultades que los modelos generativos deben superar para tener éxito:
¿Cómo maneja el modelo las dependencias condicionales entre características de alta dimensión?
¿Cómo encuentra el modelo una proporción muy pequeña de observaciones que cumplen las condiciones de un espacio muestral de alta dimensión?
Si los modelos generativos quieren tener éxito en un espacio muestral con grandes dimensiones y características altamente correlacionadas, deben utilizar modelos de aprendizaje profundo. Necesitamos un modelo que pueda inferir estructuras relevantes a partir de los datos, en lugar de que nos digan de antemano qué suposiciones hacer. El aprendizaje profundo puede formar sus propias características en un espacio de baja dimensión, y esta es una forma de aprendizaje de representación.
4.2 Aprendizaje de representación
El aprendizaje de representaciones significa aprender representaciones de datos de alta dimensión.
Suponga que va a encontrarse con una amiga en línea que nunca antes había conocido. Cuando llega al lugar de reunión, hay tanta gente que no puede encontrarla. La llama para describir su apariencia. Creo que no dirías que el color del píxel 1 de tu imagen es negro, el color del píxel 2 es negro claro, el color del píxel 3 es gris, etc. Por el contrario, uno pensaría que los internautas tendrían una comprensión general de la apariencia de la gente común y luego usarían esta comprensión para describir las características del grupo de píxeles. Por ejemplo, tienes el pelo negro corto y llevas un par de gafas brillantes. , etc. Por lo general, con no más de 10 descripciones de este tipo, un internauta puede generar una imagen tuya en su mente. La imagen puede ser cruda, pero no impide que el internauta te encuentre entre cientos de personas, incluso si nunca te ha conocido.
Esta es la idea central detrás del aprendizaje de representación. En lugar de intentar modelar directamente un espacio muestral de alta dimensión, utilizamos un espacio latente de baja dimensión para describir cada elemento en el conjunto de entrenamiento. Observa los resultados y luego aprende una función de mapeo. un punto en el espacio latente y lo asigna al espacio muestral original. En otras palabras, cada punto del espacio latente representa las características de los datos de alta dimensión.
Si lo anterior no es fácil de entender, consulte el conjunto de capacitación a continuación, que consta de algunas imágenes de frascos en escala de grises.
No es difícil ver que estos frascos se pueden describir por sólo dos características: alto y ancho. Por lo tanto, podemos convertir el espacio de píxeles de alta dimensión de la imagen en un espacio latente bidimensional, como se muestra en la siguiente figura. De esta manera podemos tomar muestras del espacio latente (puntos azules) y convertirlo en una imagen mediante la función de mapeo f.
Reconocer que el conjunto de datos original puede representarse mediante un espacio latente más simple no es fácil para la máquina. Primero, la máquina necesita determinar que la altura y el ancho son las dos dimensiones del espacio latente que mejor describen el conjunto de datos y luego aprender el mapeo. La función $$f$$ puede tomar un punto en este espacio y asignarlo a un mapa de maceta en escala de grises. El aprendizaje profundo nos permite entrenar máquinas para encontrar estas relaciones complejas sin guía humana.
5. Clasificación de modelos generativos.
Todos los tipos de modelos generativos apuntan en última instancia a resolver la misma tarea, pero todos modelan la función de densidad de maneras ligeramente diferentes. En términos generales, se dividen en dos categorías:
Modelando explícitamente la función de densidad,
Pero restrinja el modelo de alguna manera para que se pueda calcular la función de densidad, como un modelo de FLUJO normalizado.
Pero aproximar la función de densidad, como el codificador automático variacional (VAE) y el modelo de difusión (modelo de difusión)
Modelar implícitamente la función de densidad mediante un proceso estocástico que genera directamente los datos. Por ejemplo, red generativa adversarial (GAN)
Resumir
La inteligencia artificial generativa (GenAI) es un tipo de inteligencia artificial que se puede utilizar para crear nuevos contenidos e ideas, incluidos texto, imágenes, vídeos y música. Como toda inteligencia artificial, GenAI es un modelo muy grande preentrenado mediante un modelo de aprendizaje profundo basado en una gran cantidad de datos, a menudo llamado modelo básico (FM). Con GenAI, podemos dibujar imágenes más geniales, escribir textos más hermosos y componer música más conmovedora, pero el primer paso requiere que comprendamos cómo GenAI crea cosas nuevas, como dijo el jefe del artículo, Richard Feynman, sobre "No ganaré". No entiendo lo que no puedo crear”.