Cómo entender ‘las redes neuronales están capacitadas para aprender la distribución de datos’

Esto es algo que me costó entender, hasta que obtuve un poco de experiencia en razonamiento estadístico.

Las redes neuronales, y en general los algoritmos de aprendizaje automático, buscan encontrar una función que minimice la pérdida esperada o maximice la probabilidad esperada. Esto significa que buscamos optimizar una función cuyas entradas son nuestras observaciones de entrenamiento. Estas observaciones de entrenamiento provienen de una distribución de generación de datos D, de la cual tenemos una muestra de tamaño N. La distribución de generación de datos D nos da las probabilidades de todos los pares posibles (x, y) que nuestra red neuronal espera predecir con precisión, pero solo tiene acceso a un subconjunto muy pequeño de estos datos.

La distribución de nuestros datos de entrenamiento puede caracterizarse por alguna función de densidad de probabilidad P (x, y), que depende de algunos parámetros desconocidos . Este es el quid del aprendizaje automático: nuestro objetivo es utilizar modelos estadísticos para aproximar estos parámetros que modelan la verdadera distribución de generación de datos. Como ejemplo, si asumimos que nuestros datos de entrenamiento se distribuyen normalmente con parámetros desconocidos, buscaríamos encontrar estimadores [math] \ hat {\ mu} [/ math] y [math] \ hat {\ sigma} [/ math] aproximar los verdaderos parámetros de la distribución.

En general, el aprendizaje se puede definir como el problema de encontrar una función de hipótesis particular h en un conjunto de funciones de hipótesis H , de modo que nuestra función elegida h sea ​​la “más óptima” para predecir correctamente las etiquetas a partir de los datos de entrenamiento. ¿Cómo podemos cuantificar lo que queremos decir con lo más óptimo?

Tendríamos que definir una función de costo para nuestros datos de entrenamiento [math] J (y, \ hat {y}) [/ math] que es una función de nuestras etiquetas de entrenamiento y nuestra predicción. Esta función debería cuantificar cuán “apagada” está nuestra predicción. Nos da una idea sobre el error de nuestra función de hipótesis en nuestro conjunto de entrenamiento. Ahora, si nuestra función de hipótesis está definida por [matemáticas] \ hat {y} = h (x_1, x_2,… x_n) [/ matemáticas] donde [matemáticas] x_1,… x_n [/ matemáticas] son ​​las características individuales de cada entrenamiento ejemplo, entonces nuestro problema se convierte en encontrar [matemáticas] h (\ overrightarrow {x}) \ en H | J (y, h (\ overrightarrow {x})) \ leq J (y, h) \ forall h \ en H [/ math].

Idealmente, nos gustaría minimizar la pérdida real para toda la población de pares (x, y) en la distribución D. Es decir, queremos minimizar la siguiente función:

[matemáticas] E (y, h (x)) = \ sum_ {x, y} J (y, h (x) p (x, y) [/ matemáticas]

Esto puede pensarse en la diferencia de medias entre la etiqueta verdadera y y nuestra predicción h (x) , ponderada por la probabilidad p (x, y) (que sería pequeña si algunas características [matemáticas] \ overrightarrow {x} [/ matemáticas ] es poco probable que correspondan a una etiqueta y ). Sin embargo, como se mencionó anteriormente, no conocemos el PDF de la distribución de generación de datos y, por lo tanto, no podemos calcular p (x, y) . Aprender la mejor aproximación para p (x, y) y , por lo tanto, la función f que define la distribución de la que se extraen nuestros datos, es lo que formula un problema de aprendizaje automático.

Como no podemos optimizar la función anterior, tenemos que aproximar el costo utilizando solo nuestros datos de entrenamiento y, en su lugar, minimizar [matemáticas] \ hat {E} = J (y, h (\ overrightarrow {x}) = \ frac {1} {N} \ sum_ {i} (h (\ overrightarrow {x_i}) – y_i) ^ 2 [/ math] (una función de costo de ejemplo, hay muchas otras, como la pérdida de entropía cruzada). Para minimizar esta función , generalmente buscamos encontrar un conjunto de parámetros [math] \ theta [/ math] que definan la función [math] h (\ overrightarrow {x}) [/ math]. Para redes neuronales, estos serían los pesos que multiplique nuestras entradas y salidas de capas ocultas por (Nota al margen: generalmente, minimizar esta función no producirá una función que se aproxime mejor a toda la distribución de generación de datos, ya que solo ha visto un conjunto de entrenamiento comparativamente pequeño. Una parte muy importante de el aprendizaje automático se asegura de que nuestra función se generalice bien a datos invisibles, y esto a menudo se realiza a través de métodos que evitan el sobreajuste, como el abandono y la regularización en Redes neuronales).

Una vez que se encuentran estos parámetros, pueden considerarse estimadores de los parámetros reales que definen la distribución de generación de datos de la que se extrajeron nuestras N muestras. En otras palabras, nuestro modelo ha aprendido a aproximar la distribución desconocida de la que provienen nuestros ejemplos de entrenamiento.

Para responder a su próxima pregunta sobre cómo entender la “distribución” en términos de imágenes, podemos considerar cada imagen como un vector n- dimensional (donde n es el producto del ancho y alto de la imagen), donde cada componente del vector tiene un valor binario (imágenes en escala de grises) o tres canales separados (R, G, B). Por ejemplo, el conjunto de datos MNIST consta de ~ 60k 28 x 28 imágenes, que la computadora ve como un grupo de 784 vectores dimensionales x , junto con sus etiquetas asociadas y .

Entonces, la distribución D puede considerarse como cualquier distribución antigua para un conjunto de datos: solo cuantifica la probabilidad de que una determinada imagen (ahora un vector x dimensional n) tenga una etiqueta de y (en el caso de MNIST, un entero entre 0 y 9). Por ejemplo, si el vector x, cuando se ve como una imagen, aparece como el número 2 para los humanos, entonces es probable que p (x, 9) sea pequeño y que p (x, 2) sea muy grande. Si es un 2 descuidadamente dibujado para que parezca un 7, entonces p (x, 7) también puede ser grande.

De manera intuitiva, aprenden la distribución de los datos corrigiendo errores a través del descenso de gradiente. Digamos que tenemos la muestra 1 para un problema de clasificación que se supone que es y = 0; pero clasificamos ese punto como y = 1. A través del descenso en gradiente, les decimos a los pesos que esta observación debería estar en el otro extremo del espectro. Entonces empujará esa observación particular hacia el otro lado (en este caso hacia). A medida que hacemos esto cada vez más, encontramos que ciertas observaciones tienden a caer en ciertos lados de la distribución. Si “temp” es una de nuestras características y estamos clasificando las tasas de falla para las GPU, entonces las muestras con temperaturas más altas probablemente se ubicarán en un área de la distribución para GPU y las muestras con temperaturas más bajas se ubicarán en otra área de la distribución. Entonces, al corregir los errores, estamos aprendiendo dónde deberían estar los puntos en la distribución.

Entonces, básicamente comenzará a comprender que ciertas observaciones se encuentran en una región que tiene y = 0, ciertas observaciones se encuentran en otra región que tiene y = 1, etc., ya que a medida que el descenso del gradiente corrige los errores, empujará los pesos para reconocer que ciertos puntos se encuentran en ciertas áreas de la distribución.

More Interesting

¿Puedo solicitar los programas de posgrado de IA en Canadá?

¿Qué se necesita para crear un chatbot?

¿Qué tan común es que las personas usen redes neuronales como cajas negras?

¿Cómo comenzar con la IA y el aprendizaje automático? ¿Cuáles son los fundamentos de la lógica?

¿Sería posible convertir las radiaciones capturadas por una cámara infrarroja o térmica en luz visible en la postproducción a través de IA / computación en la nube?

¿Cuáles son algunos de los avances más importantes en el aprendizaje automático en los últimos 10 años?

¿Qué es lo importante de un algoritmo de aprendizaje profundo exitoso?

¿Son los sistemas de IA de alguna manera estúpidos? ¿Cómo define la estupidez artificial?

¿Cuál es la diferencia más esencial entre humanos y máquinas? ¿Dónde trazamos la línea entre humanos y máquinas? ¿Qué habilidades necesita una máquina para ser considerada tan inteligente como un ser humano?

¿El aprendizaje automático eventualmente reducirá la necesidad de programadores?

Cómo acceder a una IA de atención médica desde mi hogar para tener una segunda opinión o un mejor diagnóstico

Si un sistema de inteligencia artificial como 'Watson' se alimenta con todo el conocimiento existente alrededor de 1905, ¿surgiría una teoría similar (o igual) a la relatividad especial de Einstein? ¿Podemos hacer lo mismo para obtener la teoría de todo lo que abarca GR y QM?

¿Cómo funciona una red neuronal deconvolucional?

¿Las tres leyes de la robótica representan un estándar viable para la ética de la IA?

¿Por qué los científicos tienen debates teóricos sobre la inteligencia artificial que se apodera del mundo cuando existen problemas reales como disturbios políticos y sociales en este momento?