¿Qué es una explicación intuitiva para las redes neuronales?

Una red neuronal artificial (NN para abreviar) es un clasificador . En el aprendizaje automático supervisado , la clasificación es uno de los problemas más destacados. El objetivo es clasificar los objetos en clases (la terminología no debe confundirse con la programación orientada a objetos). La clasificación tiene un amplio dominio de aplicaciones, por ejemplo:

  • en el procesamiento de imágenes, podemos tratar de distinguir imágenes que representen diferentes tipos (clases) de objetos (por ejemplo, automóviles, bicicletas, edificios, etc.) o diferentes personas,
  • en el procesamiento del lenguaje natural (PNL) podemos buscar clasificar los textos en categorías (por ejemplo, distinguir textos que hablan de política, deportes, cultura, etc.),
  • En el procesamiento de transacciones financieras, podemos tratar de decidir si una nueva transacción es legítima o fraudulenta.

El término “supervisado” se refiere al hecho de que el algoritmo está previamente entrenado con ejemplos “etiquetados” para cada categoría (es decir, ejemplos cuyas clases se dan a conocer a la NN) para que aprenda a clasificar ejemplos nuevos e invisibles en el futuro. Veremos en un momento exactamente qué significa el entrenamiento de un NN y cómo se realiza.

En términos simples, un clasificador acepta una cantidad de entradas, que se denominan características y describen colectivamente un elemento a clasificar (ya sea una imagen, texto, transacción o cualquier otra cosa como se discutió anteriormente), y genera la clase a la que cree que pertenece el elemento a. Por ejemplo, en una tarea de reconocimiento de imágenes, las características pueden ser la matriz de píxeles y sus colores. En un problema de PNL, las características son las palabras en un texto. En finanzas, varias propiedades de cada transacción, como el día, el nombre del titular de la tarjeta, las direcciones de facturación y envío, el monto, etc.

Es importante comprender que asumimos una relación real subyacente entre las características de un elemento y la clase a la que pertenece. El objetivo de ejecutar un NN es: dado una serie de ejemplos, intente crear una función que se parezca a esta relación real (por supuesto, dirá: ¡son geeks, son mejores con las funciones que con las relaciones!) Esta función se llama modelo predictivo o simplemente modelo porque es una versión práctica y simplificada de cómo los elementos con ciertas características pertenecen a ciertas clases en el mundo real. Póngase cómodo con el uso de la palabra “función”, ya que aparece con bastante frecuencia, es una abstracción útil para el resto de la conversación (sin matemáticas involucradas). Quizás le interese saber que una gran parte del trabajo que realizan los científicos de datos (los tipos que trabajan en tales problemas) es determinar exactamente cuáles son las características que mejor describen las entidades del problema en cuestión, que es similar a diciendo qué características parecen distinguir los elementos de una clase de los de otra. Este proceso se llama selección de características .


Un NN es una estructura utilizada para la clasificación. Consiste en varios componentes interconectados y organizados en capas. Estos componentes se denominan neuronas artificiales (AN), pero a menudo nos referimos a ellas como unidades . Cada unidad es en sí misma un clasificador, solo una más simple cuya capacidad de clasificar es limitada cuando se usa para problemas complejos. Resulta que podemos superar por completo las limitaciones de los clasificadores simples interconectando varios de ellos para formar potentes NN. Piense en ello como un ejemplo del principio Unir y liderar.


Esta estructura de una combinación de entradas que atraviesan la neurona artificial se asemeja a la funcionalidad de una neurona física en el cerebro, de ahí el nombre. En la siguiente imagen, se compara la estructura de una neurona física y una neurona artificial: la AN se muestra como dos nodos para ilustrar sus componentes internos: una AN combina las entradas y luego aplica lo que se llama la función de activación (representada como una curva S) , pero generalmente se representa como un nodo, como arriba.

  • Las entradas de la AN corresponden a las dendritas,
  • la AN misma (suma + activación) al cuerpo / núcleo y
  • La salida al axón.

Además, en el cerebro, las neuronas también están conectadas en redes a través de sinapsis a las dendritas de las neuronas vecinas.

La analogía se profundiza a medida que se sabe que las neuronas proporcionan al cerebro humano un “algoritmo de aprendizaje genérico”: al volver a conectar varios tipos de datos sensoriales a una región del cerebro, la misma región puede aprender a reconocer diferentes tipos de entrada. Por ejemplo, la región del cerebro responsable de la audición puede aprender a ver con el cableado sensorial apropiado desde los ojos hasta la región de la audición. Esto ha sido confirmado experimentalmente en hurones [1].

Del mismo modo, los AN organizados en NN proporcionan un algoritmo genérico en principio capaz de aprender a distinguir cualquier clase. Entonces, volviendo a las aplicaciones de ejemplo al comienzo de esta respuesta, puede usar los mismos principios NN para clasificar imágenes, textos o transacciones. Para una mejor comprensión, sigue leyendo.

Sin embargo, no importa cuán profundas se sientan las analogías y cuán hermosas sean, tenga en cuenta que las NN son solo un algoritmo de inspiración biológica. Realmente no modelan el cerebro, cuyo funcionamiento es extremadamente complicado y, en gran medida, desconocido.


En este punto, debe preguntarse qué demonios es la función de activación que se mencionó anteriormente. Para entender esto, necesitamos recordar lo que un NN intenta calcular: una función de salida (el modelo) que toma un ejemplo descrito por sus características como una entrada y emite la probabilidad de que el ejemplo caiga en cada una de las clases. Lo que hace la función de activación es tomar como entrada la suma de estos valores de característica y transformarla en una forma que pueda usarse como un componente de la función de salida. Cuando se combinan múltiples componentes de todas las AN de la red, se construye la función de salida objetivo.

Históricamente, la curva S (también conocida como función sigmoi d) se ha utilizado como función de activación en NN, en cuyo caso estamos hablando de unidades de regresión logística (aunque ahora se conocen mejores funciones). Esta elección se relaciona con otra analogía de inspiración biológica. Antes de explicarlo, veamos primero cómo se ve (piense en lo que sucede cuando no puede obtener la temperatura correcta en la ducha: primero hace demasiado frío a pesar de los intentos de ajuste más grandes y luego se calienta demasiado rápidamente con los intentos de ajuste más pequeños) :

Ahora la bio analogía: las neuronas cerebrales se activan con mayor frecuencia a medida que aumentan sus estímulos de entrada eléctrica. La relación de la frecuencia de activación como resultado del voltaje de entrada es una curva en S. Sin embargo, la curva S es de naturaleza más penetrante que solo eso, es la curva de todo tipo de transiciones de fase.


Como se mencionó, un NN está organizado en capas de unidades interconectadas (en la siguiente imagen, las capas se representan con diferentes colores).

  • Su capa de entrada consta de varias unidades que dependen de la cantidad de características de entrada. Las características están diseñadas para describir las instancias de clase, ya sean imágenes, textos, transacciones, etc., según la aplicación. Por ejemplo, en una tarea de reconocimiento de imágenes, las características pueden ser la matriz de píxeles y sus colores.
  • Su capa de salida consiste a menudo en un número de unidades igual al número de clases en el problema. Cuando se le da un nuevo ejemplo invisible, cada AN de la capa de salida asigna una probabilidad de que este ejemplo pertenezca a cada clase en particular, en función de su entrenamiento.
  • Entre las capas de entrada y salida, puede haber varias capas ocultas (por razones que se describen brevemente a continuación), pero para muchos problemas una o dos capas ocultas son suficientes.

El entrenamiento a menudo se realiza con el algoritmo de propagación hacia atrás . Durante BackProp, el NN se alimenta con ejemplos de todas las clases. Como se mencionó, se dice que los ejemplos de entrenamiento están “etiquetados”, lo que significa que el NN recibe tanto el ejemplo (como se describe por sus características) como la clase a la que realmente pertenece. Dados muchos de estos ejemplos de entrenamiento, el NN construye, durante el entrenamiento, lo que ahora conocemos como modelo, es decir, un mapeo probabilístico de ciertas características (entrada) a clases (salida). El modelo se refleja en los pesos de los conectores de la unidad (ver figura anterior); El trabajo de BackProp es calcular estos pesos. Basado en el modelo construido, el NN clasificará nuevos ejemplos sin etiquetar (es decir, casos que no ha visto durante el entrenamiento), es decir, predecirá la probabilidad de que un nuevo ejemplo pertenezca a cada clase. Por lo tanto, existen fundamentalmente dos fases distintas:

  • Durante el entrenamiento, el NN se alimenta con varios ejemplos etiquetados a partir de los cuales construye su modelo.
  • Durante las pruebas, el NN clasifica las instancias nuevas y desconocidas en las clases conocidas, según el modelo construido.

Las NN con múltiples capas de perceptrones ( redes neuronales profundas ) son clasificadores poderosos en el sentido de que podemos usarlas para modelar patrones de clasificación no lineales muy complejos de instancias que pueden describirse por varios miles de características. Dependiendo de la aplicación, tales patrones pueden o no ser detectables por los humanos (por ejemplo, el cerebro humano es muy bueno en el reconocimiento de imágenes, pero no es efectivo en tareas como hacer predicciones al generalizar datos históricos en contextos complejos y dinámicos).


Consulte mi blog si desea reproducir este material, gracias.

Notas al pie

[1] Hurones ‘recableados’ vuelcan las teorías del crecimiento cerebral

Por favor, corrígeme si me equivoco y ten conmigo los matices que vienen con el uso de metáforas.

Imagina que estás jugando un juego.

El juego implica una oración complicada de una larga cadena de palabras en inglés y el objetivo del juego es traducirlo al chino. Tiene 3 personas en la sala A que pueden traducir el inglés al árabe, 3 personas en la sala B que pueden traducir el árabe al chino y un juez en la última sala.

Como la oración es larga, la divide en pedazos y el trabajo de traducción se distribuye entre sus traductores. Las palabras en inglés se entregan en la sala A, las palabras en árabe se envían de A a B y las en chino se entregan al juez. El juez le dirá qué tan buena es su traducción. Esto es un avance, la oración en inglés es la entrada, sus traductores son neuronas, las formas en que traducen son pesos, las habitaciones son capas ocultas y el juez es la función de costo. Hay diferentes rangos de vocabulario / expresión para inglés, árabe y chino. Para asegurarnos de que podamos expresar todo en todos estos idiomas, simplificaremos nuestras oraciones un poco después de cada traducción. Esta es la función de activación. Si el resultado final es malo (es decir, una parte de la oración no tiene sentido), volvemos a las salas de traductores para descubrir quién hizo un mal trabajo con sus piezas e intentamos corregirlo, pero solo lo cambiamos. un poco para que toda la oración no se vuelva completamente diferente. Ahora la traducción mejora un poco. Este proceso se llama retropropagación, la instrucción del juez interpretada por cada traductor son gradientes en gradiente descendente, lo pequeños que son nuestros cambios es la tasa de aprendizaje. La tasa de aprendizaje determina cuán drásticamente cambiamos el significado de la oración cada vez.

Si le pedimos que pruebe cada traductor uno por uno, se llama aprendizaje en línea . probablemente podemos obtener resultados igualmente buenos parafraseando y ajustando diferentes conjuntos de palabras preguntando a un subconjunto de traductores en diferentes órdenes, esto se llama aproximación estocástica . Pero también podemos poner a todos los traductores en una sala de conferencias y hacer que discutan sobre la mejor solución para mejorar, esto se llama aprendizaje por lotes , obviamente es más lento, pero una vez que tenga una respuesta, será bueno. Cada vez que va y viene por las habitaciones, se llama época , y después de muchas épocas, probablemente tenga una excelente traducción. Y toda esta configuración es la red neuronal.

(Aquí hay un ejemplo para CNN) Te das cuenta de que solo traducir partes y piezas juntas te da oraciones muy entrecortadas, por lo que le das a cada traductor partes más largas que se superponen un poco para que tengan una mejor idea del contexto, esto se llama conectividad local. También se dio cuenta de que los diferentes traductores tienen sus propias formas / hábitos para traducir, por lo que establece la regla de que si está traduciendo el mismo idioma, todos deben usar la traducción estándar dentro de su grupo para diferentes partes de la oración. Esto se llama compartir el peso , y juntos tienen su red neuronal convolucional .

¡Gracias por leer!

La salida de las redes neuronales no es más que una acumulación secuencial de resultados de unidades de predicción más pequeñas a lo largo de una red. Para comprender cómo se usan estas predicciones compuestas para generar la predicción final, primero veamos cómo el cerebro humano procesa los impulsos.

Las neuronas y el cerebro

Se cree que el cerebro humano está formado por unos 100 mil millones de neuronas. Estas neuronas forman el núcleo de nuestro cerebro y nuestro sistema nervioso. Cada neurona está formada por el núcleo (el núcleo), el axón (el filamento) y las dendritas (los conectores).

Cuando los órganos sensoriales generan impulsos (por ejemplo, cuando tocas una mesa), se transmiten a lo largo de una red de neuronas interconectadas, que procesan el impulso uno tras otro hasta que desencadenan una respuesta fisiológica.

Y así, la respuesta fisiológica final al impulso nervioso es la culminación de todo el procesamiento intermedio en la red.

Redes neuronales para clasificación

Las redes neuronales artificiales (o simplemente redes neuronales) es un algoritmo supervisado de aprendizaje automático que, como su nombre lo indica, sigue el modelo de las neuronas del cerebro.

Cuando se usa para la clasificación *, el objetivo del algoritmo es asignar cada entrada a una de las muchas clases de salida predefinidas en función de un valor de predicción.

* En esta publicación, explico las redes neuronales cuando se solicita la clasificación utilizando un modelo entrenado. Abordaré los aspectos de entrenamiento de una red neuronal en una publicación que sigue.

Al igual que las neuronas procesan los impulsos en una reacción en cadena, en las Redes Neurales, una secuencia de nodos de activación conectados procesa las entradas una tras otra para predecir la clase de la entrada.

El corazón de una red neuronal

La neurona de una red neuronal es un nodo de activación. Aquí es donde sucede toda la acción. El nodo Activación toma las entradas de los nodos predecesores, aplica los parámetros de aprendizaje * para generar una suma ponderada y luego pasa esa suma a una función de activación que calcula la predicción compuesta.

* La salida del entrenamiento

Esta generación de predicciones compuestas es lo que sucede en cada nodo en la red neuronal y debido a esto, las predicciones se procesan progresivamente hasta que se genera la salida final.

El concepto de capas

El procesamiento en una red neuronal ocurre cuando los valores de entrada pasan a través de una serie de lotes de unidades de activación. Estos lotes se llaman capas. Una capa de unidades de activación toma las salidas de la capa anterior como entradas y las procesa simultáneamente para generar salidas que luego se pasan a la capa siguiente.

Este proceso continúa hasta que la última capa genera las predicciones acumulativas finales.

Arquitectura de la red neuronal

El punto de partida de todo el procesamiento en una red neuronal es la capa de entrada, que utiliza los valores de las entidades como entrada.

La salida de la capa de entrada se pasa a las capas ocultas una tras otra. Las capas ocultas son unidades de procesamiento intermedias que no se alimentan de datos de entrada ni generan resultados finales. Se agregan solo para aumentar la precisión de las predicciones.

Los resultados de la capa oculta se envían a la capa de salida, que finalmente produce la predicción final.

Entonces, para generar la predicción final, una red neuronal acumula los resultados de las unidades de activación individuales secuencialmente.

Observe cómo todos los valores de la capa anterior se utilizan como entradas por cada unidad de activación en la capa actual.

Red neuronal aplicada

Ahora veamos cómo se pueden usar las redes neuronales para predecir el dígito en una imagen *

* Usaré la implementación del algoritmo del curso de Andrew Ng en Coursera para esta explicación.

Visión general

Nuestro objetivo aquí es comprender cómo se pueden usar las redes neuronales para reconocer el dígito en una imagen.

Para hacer esta predicción, el algoritmo asigna una probabilidad de reconocimiento a cada una de las 10 clases de salida que corresponden a los 10 dígitos. El resultado final es el dígito asociado con la clase del valor de probabilidad más alto.

Arquitectura del algoritmo de predicción numérica

Datos de entrada

En nuestro ejemplo, el corpus de datos de entrada está compuesto por 100 imágenes aleatorias del conjunto de datos de 5000 imágenes, cada imagen de tamaño 20 * 20.

Características de entrada

Para alimentar los datos de entrada a la red neuronal, convertimos los datos en características. Aquí, utilizaremos valores de intensidad (de valores de 0 a 255) en nuestras imágenes de tamaño 20 * 20 como características de entrada para el algoritmo; Esto hace que el tamaño del vector de características para la red neuronal sea 400.

Función de activación

Se utiliza una función sigmoidea estándar como función de activación

Como las capas se procesan en lotes, es más intuitivo ver la aplicación de la función sigmoidea como una operación matricial.

Capa de entrada

La capa de entrada toma sus entradas directamente de las características y, por lo tanto, el número de unidades de activación en la primera capa también será de 400.

Capa oculta

La capa intermedia de unidades de activación toma la entrada de la capa de entrada y alimenta la salida a la capa de salida; por lo tanto, está ‘oculto’ de las entradas de prueba y las predicciones finales de nuestra red. En nuestro ejemplo, el tamaño de esta capa oculta es 25.

Capa de salida

La capa de salida tiene correspondencia uno a uno con las predicciones finales. 10 unidades de activación generan 10 salidas que atribuyen probabilidades de predicción a cada una de las clases de salida.

Predicción final

Ahora tenemos 10 valores (entre 0 y 1) en la capa de salida. Sin embargo, solo necesita un valor como resultado de predicción. Para obtener el resultado final, simplemente tomamos el valor máximo de la salida de predicción.

Una nota sobre la reducción de la dimensionalidad

Observe cómo un conjunto de características de entrada de tamaño 400 se reduce progresivamente para producir una matriz de salida de tamaño 10. Esta reducción en la dimensionalidad se debe en gran medida a la hipótesis de la red neuronal que toma todas las entradas de la capa anterior en cada unidad de activación para generar una salida.

Conclusión

Para predecir un número, los valores de intensidad de los píxeles de la imagen de entrada se procesan progresivamente a través de las capas para generar 10 valores de predicción. Estos valores (entre 0 y 1) reflejan la probabilidad de que la imagen corresponda a un dígito. La clase que tiene el valor de máxima verosimilitud se reconoce como salida. Y así es como la red neuronal genera la predicción final procesando una gran cantidad de valores de entrada.

En esta publicación, tomé los parámetros de entrenamiento que son los factores decisivos para la predicción, como se indica. Actualizaré esta publicación con una explicación del entrenamiento pronto.

Referencias

  • Aprendizaje automático – Universidad de Stanford | Coursera

Una red neuronal puede considerarse como una serie de funciones que convierten una entrada de datos en una salida deseada, a menudo en un formato diferente.

Piense en un programa que tome una imagen de un gato y, a través de varias iteraciones de procesamiento, produzca la salida de cadena “gato”.

(Crédito de la imagen de Jeff Dean de Google)

Esta es una simplificación excesiva importante, pero funciona para comprender las redes neuronales. La definición en este sitio es bastante sencilla pero más detallada: Definición de red neuronal – DeepAI

Una red neuronal (básica) toma algunos números para la entrada, mira algunas respuestas de ejemplo y adivina nuevos números para la salida donde no hay respuestas de ejemplo (aprendizaje supervisado).

Lo hace mediante el uso de muchos nodos con una operación matemática. Puede haber miles de nodos y están interconectados en una red. Los nodos realizan operaciones aritméticas muy simples en las entradas (básicamente se multiplican por un parámetro, suman todo, redondean a cero si es negativo), por lo que toda la complejidad proviene de la interconexión de muchos nodos. No conocemos los mejores parámetros para los nodos, pero sabemos cómo mejorar gradualmente los parámetros, para que coincida / aprenda el resultado del ejemplo.

Básicamente, puede lanzar números a una red neuronal, algunos números de salida deseados y encontrará combinaciones complejas / jerárquicas de la entrada (sin embargo, hechas de matemáticas muy simples) para aproximar la salida deseada. Todo lo que entiende son números.

Por ejemplo, puede codificar una imagen por números, codificar la etiqueta de la imagen por un número (por ejemplo, “perro”) y lanzarla a la red neuronal. Dados suficientes nodos, tiempo de cálculo y alguna red de nodos complicada, combinará estos números y configurará sus parámetros para generar etiquetas para nuevas imágenes desconocidas.

En Inteligencia Artificial, hay dos tareas principales por hacer: construcción y clasificación. En la construcción, normalmente se construye una solución, dadas ciertas restricciones. En la clasificación, generalmente se clasifica un conjunto de entradas. Las redes neuronales realizan clasificación. Son un método para clasificar un conjunto de entradas en una categoría específica.

La red neuronal es básicamente un grupo de neuronas conectadas de una manera bastante complicada para lograr tareas simples que solo los humanos son capaces de hacer.

Mire el video a continuación para saber qué son las neuronas / células nerviosas y cómo funcionan. También he explicado el primer modelo neuronal: el modelo Mc-Culloch-Pitts.

Puedes visitar mi publicación para más información:

Introducción al aprendizaje profundo y las redes neuronales | Quick KT

Básicamente, es un MAPA para un procedimiento paso a paso en el que comienza en un punto, luego interpreta los datos como en la entrada, etc., luego pasa a otro punto dependiendo de los datos en el punto anterior y mapea su camino a través de la recopilación de información hasta obtener el deseado / salida útil.
La razón por la que se llama red neuronal es porque así es como funciona un cerebro humano. El ‘punto’ al que me referí anteriormente se llama técnicamente un nodo.

Supongo que es lo más simple que puedo poner.

Espero que haya ayudado 🙂

Dos tareas que hacemos todo el tiempo, tanto consciente como inconscientemente, es

  • para clasificar lo que percibimos a través de nuestros sentidos ( por ejemplo , taza de papel fría o caliente, taza de cerámica fría o caliente )
  • predecir el futuro basado en nuestra experiencia pasada y
  • realizar nuevas acciones donde la predicción y la categorización a menudo ocurren en tándem ( por ejemplo , continuamos aumentando la presión sosteniendo un vaso de papel hasta que sentimos que es lo correcto y nos detenemos mucho antes de aplastarlo. Si se tratara de una taza de cerámica, sería un agarre rápido – sin preocupación de aplastamiento ). La acción es impulsada por alguna forma de recompensa ( por ejemplo, el sabor de una bebida )

Hacemos ambas tareas: categorización y predicción para

  • la simple operación mundana de sostener una taza
  • y para una planificación consciente a largo plazo de nuestro futuro basada en las opciones que tenemos.
  • Los animales, incluidos los insectos, hacen las mismas dos tareas todo el tiempo: una abeja decide en función de ciertos factores dónde y cuándo buscar miel. Un pajarito se prepara para el invierno almacenando semillas en diferentes lugares y recuerda comerlas en secuencia, las más antiguas primero, para evitar que se echen a perder.

Si tuviéramos que visualizar groseramente la categorización y las predicciones, se verían como dos caras de la misma moneda como se muestra en la figura a continuación.

  • En el caso de la categorización, se dibuja una línea que separa los puntos de datos: gatos y perros.
  • En el caso de la predicción, se traza una línea a través de los puntos de datos dados y, a menudo, se usa para estimar si continuaría creciendo / cayendo.

Tarea de categorización

  • Si bien no dibujamos líneas dentro de nuestros cerebros que separan a los gatos y los perros ( la ubicación de los gatos y los perros en la imagen de arriba fue arbitraria y solo con fines ilustrativos ) estamos haciendo algo muy similar.
  • No hace falta decir que la forma en que separamos a los gatos y los perros es mucho más compleja que la curva roja de arriba.
  • Consideramos tantas características como la forma de la cabeza, el tamaño del cuerpo, la cola, etc. para clasificar un gato / perro. Hay casos en los que podríamos encontrar que no es tan fácil separar un gato y un perro, por ejemplo, si un perro es pequeño y peludo. Por lo tanto, no siempre es una categorización “clara” en perros y gatos.
  • Cuando somos niños, una vez que hemos categorizado a los gatos y a los perros en función de sus características, podemos clasificar a un gato o un perro que nunca hemos visto antes: el límite, que está representado simbólicamente por la curva roja de arriba, nos ayuda a colocar al perro o al gato a la derecha categoría.

Tarea de predicción

  • De manera similar, si tuviéramos que adivinar hacia dónde se dirige la curva ( figura arriba a la derecha ) en función de los puntos de datos dados, diríamos que es más probable que crezca a pesar de ser una trayectoria irregular.
  • La curva también es una predicción para ajustar un nuevo punto que está dentro del rango de los puntos de datos existentes, es decir, qué tan cerca estará un nuevo punto de la curva.
  • Entonces, los puntos rojos en la figura anterior ( derecha ) son ejemplos de ambos casos, puntos dentro y más allá de los puntos de datos dados, la curva intenta predecirlos a ambos ( con pequeños errores en el caso de algunos puntos rojos ).

En resumen, ambas tareas, categorización y predicción, se reducen a dibujar líneas curvas

  • Entonces, si podemos lograr que una máquina pueda “dibujar líneas curvas”, ya hemos terminado.
  • Luego podemos extenderlo para hacer lo mismo para dibujar planos curvos que separan cosas en tres dimensiones. Podemos extender incluso más allá de las tres dimensiones a cientos y miles de dimensiones donde cada dimensión es una característica como la rugosidad, el tamaño, el color, etc. Por lo tanto, las llamaremos líneas curvas por ahora.
  • Los éxitos recientes que hemos tenido en el aprendizaje automático han sido en gran medida esto: las máquinas pueden dibujar bien las líneas curvas. Tan bien, que en algunos casos, son mejores que nosotros para dibujarlos ( por ejemplo, categorizar imágenes en gatos y perros con mayor precisión que nosotros )
  • Lo hacen aprendiendo de los datos de capacitación que les proporcionamos, tal como aprendemos de la experiencia. Mejoran con cada vez más datos de capacitación, tal como lo hacemos nosotros.

Entonces, ¿cómo hacemos que las máquinas aprendan a dibujar líneas curvas?

  • Si le pedimos a un niño que conecte los puntos a continuación, simplemente dibujaría una curva que los conecta con facilidad.

  • Las máquinas lo hacen de una manera extraña / desordenada ( figura a continuación ), pero funciona bastante bien.

  • Es desordenado solo porque, a diferencia de un niño que ve todos los puntos y dibuja una curva a través de ellos, a las máquinas no se les da la ubicación de los puntos: al principio adivinan al azar dónde dibujar líneas y refinar gradualmente la ubicación de las líneas en función de la retroalimentación de qué tan cerca están de los puntos.
  • Y si se les dan puntos suficientes para entrenar, las líneas curvas que crearon pueden estar con cierta precisión cerca de un nuevo punto, dentro e incluso más allá de las regiones abarcadas por puntos que ya han visto antes, sin tener que cambiar la ubicación de las líneas haciendo La curva.
  • Este enfoque funciona porque se vuelven tan buenos para adivinar la ubicación de las líneas en la fase de entrenamiento, que también tienen una oportunidad “justa” de estar cerca de nuevos puntos, incluso sin tener que ajustar las líneas.
  • En esencia, han “generalizado” la forma de la curva más allá de los puntos en los datos de entrenamiento, no memorizados para ajustarse simplemente a los datos de entrenamiento (la memorización los haría fallar cuando se les da un nuevo punto que nunca han visto ).
  • Para un ejemplo concreto, veamos una máquina de juguetes con solo 4 nodos que se muestran a continuación.

  • El objetivo de esta máquina de cuatro nodos es dibujar una línea a través de los puntos a continuación, como la línea negra a través de los puntos.
  • Los tres nodos dispuestos verticalmente arriba son como “artistas con los ojos vendados” que pueden dibujar líneas pero no pueden “ver completamente” los puntos que se les dan.

  • Como no pueden “ver”, cada uno de ellos dibuja un segmento de línea (el segmento de línea es una línea que está recortada; observe que ninguna de las líneas rojas que dibujaron los artistas con los ojos vendados se extiende por debajo del eje x, la línea horizontal) al azar para empezar
  • El nodo único a la derecha es como un tipo de conductor
  • el nodo conductor suma las tres líneas y construye una nueva curva. Al sumar, puede elegir dar a las líneas diferentes niveles de importancia o pesos y también desplazarlas hacia arriba / abajo. Visualmente, esto se manifiesta en algunos casos, de segmentos de línea que se magnifican / encogen ( escalan ), voltean verticalmente alrededor del eje x y / o se mueven hacia arriba / hacia abajo.
  • El conductor también obtiene la información de qué tan lejos estaban las curvas de los puntos en los datos de entrenamiento.
  • Usando esta información, el conductor propaga pistas de cómo cada uno de los nodos con los ojos vendados estaban dibujando líneas cerca de los puntos.
  • Basado en esta retroalimentación propagada, cada uno de esos tres artistas luego ajusta sus posiciones de línea inclinando y moviendo sus líneas hacia arriba / abajo.
  • Continúan haciendo esto cada vez que reciben comentarios y, finalmente, logran crear una curva que se ajuste a los puntos.
  • Aunque es visualmente contrario a la intuición, si sumamos esos segmentos de línea roja arriba, producirá una sola línea roja a través de los puntos a continuación. Es contrario a la intuición solo porque algunos segmentos de línea se pueden voltear y / o desplazar hacia arriba / abajo mientras se suman.
  • Ahora veamos un modelo de juguete con tres capas de artistas con los ojos vendados como se muestra a continuación:

    • la primera capa de artistas con los ojos vendados solo dibuja líneas recortadas como antes
    • cada capa posterior puede hacer una suma ponderada ( como el conductor en la máquina de una sola capa ) de la capa anterior y la envía a la capa siguiente.
    • El director llega a resumirlos todos finalmente.

    Salida de la primera capa de nodos a continuación, igual que antes, líneas recortadas (recortadas, lo que significa que ninguna de las líneas rojas se extiende por debajo del eje x, la línea horizontal negra)

    La salida a continuación de la segunda capa se enriquece, ya no son simples líneas rojas recortadas

    La salida de curvas de la tercera capa se vuelve aún más rica en estructura ( por ejemplo, líneas rojas más curvas ) …

    La mejor parte es que cuando el nodo del orquestador suma las curvas rojas de la tercera capa arriba, mágicamente obtenemos la curva final debajo de todos esos puntos

    Esta progresión de construcción más rica de curvas, a medida que nos movemos a través de las capas, en este modelo de juguete simple es similar a lo que sucede en nuestros cerebros mientras leemos este texto.

    • La imagen a continuación ilustra cómo progresa la información visual a través del cerebro: la representación de la información visual se enriquece progresivamente a medida que asciende los módulos cerebrales: primero líneas / bordes, luego textura, objetos de nivel superior, conceptos, etc.

    Si bien algunos de los modelos de aprendizaje automático que tenemos ahora son bastante complejos, la esencia de lo que sucede dentro de ellos es la misma que la capturada en los modelos de juguetes anteriores.

    • todos aprenden a crear equivalentes de líneas curvas con muchas características.
    • Si bien ninguno de nosotros puede visualizar más allá de las líneas curvas o las superficies curvas, el proceso de aprendizaje que ocurre con miles o cientos de miles de características es el mismo que el aprendizaje con una característica. Somos como hormigas de tierra plana: podemos conceptualizarlo incluso si no podemos visualizarlo.
    • Por ejemplo, cuando una máquina clasifica una imagen de 784 x 784 píxeles como un gato o un perro, está dibujando una línea curva equivalente en un “papel no visualizable” con aproximadamente 6 millones de bordes ( características ), pero el principio es exactamente el mismo que el de los modelos de juguetes.

    Notas de implementación adicionales y referencias

    • Las imágenes de ajuste de curvas son del blog de aprendizaje automático de Andrej Karpathy Clasificar datos de juguete 1D.
    • El aprendizaje profundo de Andrej Karpathy en su navegador es quizás la mejor herramienta en línea disponible hasta la fecha, para que cualquiera pueda comprender de qué se trata el aprendizaje automático directamente en el navegador, tanto para programadores como para aquellos que solo quieren tener una intuición visual: el interactivo las demos son muy perspicaces (no hace falta decir que, cuando se trata de conferencias, el curso de Andrew Ng es el lugar para comenzar )
    • La activación de ReLu se usó para la no linealidad en la explicación de esta respuesta: ReLu realmente resalta, a diferencia de sigmoide o tanh, cómo simples líneas recortadas pueden construir curvas complejas. También destaca la importancia de la suma ponderada, la parte lineal donde ocurre el verdadero aprendizaje. Sin embargo, la linealidad por sí sola no puede hacerlo ( solo las sumas ponderadas de cualquier número de líneas solo producirían otra línea sin importar cuántos términos agreguemos, nunca obtendremos curvas ), la no linealidad es esencial. ReLu ofrece la no linealidad requerida para generar líneas recortadas. Pero la parte lineal, donde el aprendizaje realmente sucede ( los valores de pendiente e intersección ) es la que hace el trabajo real: el ajuste de la curva.
    • Las tres capas se utilizaron solo para ilustrar la riqueza progresiva de las curvas a medida que avanzamos de cada capa a la siguiente.
    • En la práctica, una sola capa puede clavar esa curva con suficientes nodos.
  • Para crear la ecuación que resume la curva final después de entrenar la red neuronal del juguete, podemos examinar los pesos aprendidos en una ventana de depuración del navegador Chrome para el enlace de arriba.
    • El modelo predeterminado en la página tiene dos capas ocultas ( una Relu y otra sigmoidea ). Podemos cambiar el código para hacer que ambas capas sean ReLU, por ejemplo, y agregar cualquier número de capas simplemente cortando y pegando una de esas capas.
    • Entonces podemos convencernos escribiendo las ecuaciones de las líneas en la capa final y confirmando con Wolfram que realmente resumen lo que vemos. Por ejemplo, la siguiente ecuación es uno de esos ejemplos construido a partir de los pesos examinados en la ventana de depuración en Chrome para un modelo de juguete.
    • gráfico max (0, (-. 57) x + 4.45) * 1.11 -5.399 + max (0, (-. 28) x + 2.19) * (. 54) -5.399 + max (0, (- 1.09) x + 1,53) * (- 1,09) – 5,399
    • Gráfico directo de la ecuación anterior en Wolfram
    • La función de activación en esta ecuación es ReLu – max (0, x)
  • Referencia a aves con memoria episódica PNAS
  • Referencia para la capacidad de las abejas para almacenar objetos y eventos en categorías y conceptos PNAS
  • No estoy seguro de que sea remotamente intuitivo, pero una red neuronal es realmente una justificación por analogía con el cerebro de lo que equivale a una regresión de rango restringido, por ejemplo, regresión logística cuando se usa la activación de softmax. Recuerdo haber tenido una discusión con alguien que realiza trabajos de modelado desde una perspectiva de CS que afirmó que la analogía agregaba valor. Sin embargo, por mi vida no puedo entender qué aparte de introducir una terminología opaca, dado que las matemáticas son completamente iguales.

    Llámame escéptico, supongo …