Redes Neurais em IA e Deep Learning - página 53

 

Lección 2.2 — Perceptrones: redes neuronales de primera generación



Lección 2.2 — Perceptrones: redes neuronales de primera generación [Redes neuronales para el aprendizaje automático]

Los perceptrones, una clase de algoritmos para el aprendizaje automático, se investigaron por primera vez a principios de la década de 1960. Inicialmente, se mostraron muy prometedores como dispositivos de aprendizaje, pero Minsky y Papert revelaron más tarde sus limitaciones, lo que provocó una disminución de su popularidad. Minsky y Papert demostraron que los perceptrones estaban bastante restringidos en su capacidad para aprender patrones complejos en tareas de reconocimiento de patrones estadísticos.

En el campo del reconocimiento de patrones estadísticos, se sigue un enfoque estándar para reconocer patrones. Primero, los datos de entrada sin procesar se procesan y se convierten en un conjunto o vector de activaciones de características. Esta conversión se realiza utilizando programas predefinidos basados en el sentido común, donde la experiencia humana determina qué características son relevantes para la tarea en cuestión. Es importante señalar que esta etapa de preprocesamiento no implica aprendizaje. La selección de las características apropiadas es un paso crucial y, a menudo, implica prueba y error. Se prueban diferentes características y se evalúa su eficacia. A través de este proceso iterativo, finalmente se identifica un conjunto de características que permiten que la etapa de aprendizaje posterior resuelva el problema de manera efectiva.

La etapa de aprendizaje en el reconocimiento de patrones estadísticos implica determinar los pesos asociados con la activación de cada característica. Estos pesos representan la fuerza de la evidencia que proporciona cada característica a favor o en contra de la hipótesis de que la entrada actual pertenece a un patrón o clase en particular. Al sumar las activaciones de características ponderadas, se obtiene una puntuación de evidencia total, que se compara con un umbral. Si la evidencia supera el umbral, el vector de entrada se clasifica como un ejemplo positivo del patrón que se reconoce.

Los perceptrones son un tipo específico de sistema de reconocimiento de patrones estadísticos. Si bien hay varios tipos de perceptrones, la forma estándar, denominada perceptrón alfa por Rosenblatt, consta de unidades de entrada que se transforman en activaciones de características. Esta transformación puede parecerse al comportamiento de las neuronas, pero es importante señalar que esta etapa del sistema no implica aprendizaje. Una vez que se obtienen las activaciones de funciones, los pesos se aprenden mediante un algoritmo de aprendizaje.

Los perceptrones ganaron prominencia en la década de 1960 a través del trabajo de Frank Rosenblatt, quien los estudió extensamente y los describió en su libro "Principios de neurodinámica". El libro presentaba diferentes tipos de perceptrones y estaba repleto de ideas innovadoras. Una de las contribuciones más destacadas fue un potente algoritmo de aprendizaje asociado a los perceptrones, que generó una gran expectativa por sus capacidades.

Sin embargo, el entusiasmo inicial que rodeaba a los perceptrones se encontró con escepticismo cuando se descubrió que su algoritmo de aprendizaje tenía limitaciones. Por ejemplo, se hicieron afirmaciones exageradas sobre su capacidad para diferenciar entre imágenes parcialmente oscurecidas de tanques y camiones. Estas afirmaciones fueron desacreditadas cuando se reveló que los perceptrones simplemente estaban midiendo la intensidad total de los píxeles, una tarea que los humanos realizan con mayor sensibilidad. Este tipo de malentendido empañó la reputación del perceptrón y generó dudas sobre la efectividad de los modelos de redes neuronales en su conjunto.

En 1969, Minsky y Papert publicaron un libro seminal titulado "Perceptrones" que analizó críticamente las capacidades de los perceptrones y destacó sus limitaciones. Sin embargo, el campo más amplio de la inteligencia artificial extrapoló por error estas limitaciones a todos los modelos de redes neuronales. La creencia predominante se convirtió en que Minsky y Papert habían demostrado que los modelos de redes neuronales eran poco prácticos e incapaces de aprender tareas complejas. En realidad, los hallazgos de Minsky y Papert fueron específicos de los perceptrones que estudiaron y no invalidaron el potencial de las redes neuronales en su conjunto.

Vale la pena señalar que el procedimiento de convergencia de perceptrón, que exploraremos en breve, continúa siendo ampliamente utilizado hoy en día para tareas que involucran grandes vectores de características. De hecho, las principales empresas como Google emplean algoritmos basados en perceptrones para predecir resultados basados en un amplio conjunto de características.

La unidad de decisión en un perceptrón es una neurona de umbral binario, un tipo de neurona que se ha encontrado antes en modelos de redes neuronales. Para refrescar nuestra comprensión, estas neuronas calculan una suma ponderada de las entradas recibidas de otras neuronas, agregan un término de sesgo y generan una salida de uno si la suma excede cero; de lo contrario, producen una salida de cero.

Para simplificar el proceso de aprendizaje, los sesgos se pueden tratar como pesos aumentando cada vector de entrada con una entrada adicional de valor constante uno. Al hacerlo, el sesgo se incorpora como un peso en esta línea de entrada adicional, eliminando la necesidad de una regla de aprendizaje separada para los sesgos. En esencia, el sesgo se vuelve equivalente a un peso, siendo su valor el negativo del umbral.

Ahora, exploremos el procedimiento de aprendizaje del perceptrón, que es sorprendentemente poderoso y garantiza que convergerá en una solución. Sin embargo, es importante considerar algunas advertencias con respecto a su garantía, que se discutirán más adelante.

Para comenzar, incluimos un componente adicional con un valor de uno en cada vector de entrada. Entonces podemos centrarnos en los pesos y descartar los sesgos, ya que ahora se tratan como pesos en la línea de entrada adicional. Los casos de capacitación se seleccionan de acuerdo con cualquier política que garantice que cada caso se elija dentro de un marco de tiempo razonable, aunque la definición precisa de "tiempo razonable" puede variar según el contexto.

Después de seleccionar un caso de entrenamiento, evaluamos la salida generada por el perceptrón y la comparamos con la salida esperada. Si la salida es correcta, indicando que la decisión del perceptrón se alinea con la clasificación deseada, dejamos los pesos sin cambios. Sin embargo, si la salida es incorrecta, ajustamos los pesos según las siguientes reglas:

  1. Si la salida es cero cuando debería ser uno (es decir, el perceptrón rechaza falsamente una entrada), sumamos el vector de entrada al vector de peso del perceptrón.
  2. Si la salida es uno cuando debería ser cero (es decir, el perceptrón acepta falsamente una entrada), restamos el vector de entrada del vector de peso del perceptrón.

Sorprendentemente, este simple procedimiento de aprendizaje garantiza encontrar un conjunto de pesos que produzcan el resultado correcto para cada caso de entrenamiento. Sin embargo, debe cumplirse una condición importante: debe existir un conjunto factible de pesos que pueda clasificar correctamente todos los casos de entrenamiento. Desafortunadamente, para muchos problemas interesantes, tal conjunto factible de pesos puede no existir.

La existencia de un conjunto factible de pesos depende en gran medida de la elección de las características utilizadas. Para muchos problemas, el desafío crítico radica en determinar las características más apropiadas para capturar los patrones relevantes. Si se seleccionan las características correctas, el proceso de aprendizaje se vuelve factible y efectivo. Por otro lado, si se eligen características inadecuadas, el aprendizaje se vuelve imposible y el enfoque principal cambia a la selección de características.

En conclusión, los perceptrones desempeñaron un papel importante en el desarrollo inicial de los modelos de redes neuronales. Si bien Minsky y Papert revelaron sus limitaciones, es importante señalar que sus hallazgos fueron específicos de los perceptrones que examinaron y no invalidaron el potencial más amplio de las redes neuronales. El procedimiento de convergencia de perceptrones sigue siendo una herramienta valiosa, particularmente para tareas que involucran vectores de características grandes. Sin embargo, la clave para el reconocimiento de patrones exitoso radica en seleccionar las funciones adecuadas, ya que el uso de las funciones correctas facilita enormemente el proceso de aprendizaje, mientras que el uso de funciones inadecuadas puede hacer que el aprendizaje sea imposible.

 

Lección 2.3 — Una visión geométrica de los perceptrones



Lección 2.3 — Una vista geométrica de los perceptrones [Redes neuronales para el aprendizaje automático]

En este video, profundizaremos en la comprensión geométrica de cómo aprenden los perceptrones. Para hacer esto, necesitamos pensar en términos de espacio de peso, un espacio de alta dimensión donde cada punto corresponde a una configuración específica de todos los pesos. En este espacio, podemos representar los casos de entrenamiento como planos, y el proceso de aprendizaje consiste en colocar el vector de peso en el lado correcto de todos los planos de entrenamiento.

Para aquellos que no están bien versados en matemáticas, esto puede ser más desafiante que el material anterior. Puede requerir dedicar mucho tiempo para comprender el próximo contenido, especialmente si no está familiarizado con pensar en hiperplanos en espacios de alta dimensión. Deberá sentirse cómodo visualizando un espacio de 14 dimensiones visualizando primero un espacio tridimensional y luego recordándose audiblemente la dimensionalidad. Puede parecer peculiar, pero es una práctica común para ayudar a la comprensión.

Cuando se trata de hiperplanos en un espacio de 14 dimensiones, la complejidad aumenta significativamente, de forma similar a la transición de un espacio 2D a un espacio 3D. Es crucial entender que un espacio de 14 dimensiones es vasto e intrincado. Con eso en mente, comencemos centrándonos en el espacio de peso.

El espacio de peso es un espacio que tiene una dimensión para cada peso en el perceptrón. Un punto en el espacio de pesos representa una configuración específica de todos los pesos, suponiendo que hayamos eliminado el umbral. Cada caso de entrenamiento se puede representar como un hiperplano que pasa por el origen en el espacio de pesos. En consecuencia, los puntos en este espacio corresponden a vectores de peso, mientras que los casos de entrenamiento corresponden a planos.

Para un caso de entrenamiento particular, los pesos deben estar en un lado del hiperplano para producir la salida correcta. Visualicemos este concepto a través de un ejemplo. Considere un caso de entrenamiento donde la respuesta correcta es uno. El vector de peso debe estar en el mismo lado del hiperplano que la dirección indicada por el vector de entrenamiento. Cualquier vector de peso en ese lado tendrá un ángulo con el vector de entrada de menos de 90 grados, lo que dará como resultado un producto escalar positivo. Como hemos eliminado el umbral, el perceptrón emitirá uno, proporcionando la respuesta correcta.

Por el contrario, si un vector de peso se encuentra en el lado equivocado del plano, su ángulo con el vector de entrada excederá los 90 grados, dando como resultado un producto escalar negativo. En consecuencia, el perceptrón emitirá cero, lo que conducirá a una respuesta incorrecta.

Para resumir, los vectores de peso de un lado del plano dan la respuesta correcta, mientras que los del otro lado dan la respuesta incorrecta. Ahora, examinemos un caso de entrenamiento diferente donde la respuesta correcta es cero.

En este caso, cualquier vector de peso que forme un ángulo de menos de 90 grados con el vector de entrada dará como resultado un producto escalar positivo, lo que hará que el perceptrón emita uno, lo que conducirá a una respuesta incorrecta. Por el contrario, los vectores de peso en el otro lado del plano, con un ángulo superior a 90 grados, producirán un producto escalar menor que cero, y el perceptrón generará cero, proporcionando correctamente la respuesta.

Combinemos estos dos casos de entrenamiento en una sola imagen del espacio de pesas. El espacio de peso se llena y surge un cono de posibles vectores de peso. Cualquier vector de peso dentro de este cono dará la respuesta correcta para ambos casos de entrenamiento. Vale la pena señalar que la existencia de tal cono no está garantizada. Puede haber escenarios en los que ningún vector de peso proporcione las respuestas correctas para todos los casos de entrenamiento. Sin embargo, si tales vectores de peso existen, formarán un cono.

El algoritmo de aprendizaje considera los casos de entrenamiento uno por uno, ajustando el vector de peso para que finalmente se encuentre dentro de este cono. Es importante observar que si tenemos dos buenos vectores de peso que funcionan para todos los casos de entrenamiento, su promedio también estará dentro del cono. Esto implica que el problema es convexo y el promedio de dos soluciones es en sí mismo una solución. Los problemas de aprendizaje convexo simplifican el proceso en el aprendizaje automático.

Comprender el espacio de peso y la relación entre los vectores de peso y los casos de entrenamiento proporciona una visión geométrica de cómo aprenden los perceptrones. El objetivo es encontrar un vector de peso que se encuentre dentro del cono de posibles soluciones, lo que garantiza una clasificación correcta para todos los casos de entrenamiento.

 

Lección 2.4 — Por qué funciona el aprendizaje



Lección 2.4 — Por qué funciona el aprendizaje [Redes neuronales para el aprendizaje automático]

En este video, nuestro objetivo es presentar una prueba de que el procedimiento de aprendizaje del perceptrón finalmente conducirá a los pesos a converger dentro del cono de soluciones factibles. Sin embargo, quiero enfatizar que este curso se enfoca principalmente en aspectos de ingeniería en lugar de pruebas rigurosas. Habrá pocas pruebas a lo largo del curso. Sin embargo, comprender cómo los perceptrones eventualmente encuentran la respuesta correcta proporciona información valiosa.

Para construir nuestra prueba, aprovecharemos nuestra comprensión geométrica del espacio de peso y el proceso de aprendizaje del perceptrón. Asumimos la existencia de un vector de peso factible que arroja la respuesta correcta para todos los casos de entrenamiento. En el diagrama, esto está representado por el punto verde.

La idea clave en nuestra prueba es que cada vez que el perceptrón clasifica erróneamente un caso de entrenamiento, el vector de peso actual se actualizará de una manera que lo acerque a todos los vectores de peso factibles. Podemos medir la distancia al cuadrado entre el vector de peso actual y un vector de peso factible como la suma de una distancia al cuadrado a lo largo de la línea del vector de entrada (la definición del caso de entrenamiento) y otra distancia al cuadrado ortogonal a esa línea. La distancia al cuadrado ortogonal permanece constante, mientras que la distancia a lo largo de la línea del vector de entrada disminuye.

Si bien esta afirmación parece prometedora, encontramos un problema ilustrado por el vector de peso factible de oro en el diagrama. Se encuentra justo en el lado derecho del plano definido por uno de los casos de entrenamiento, mientras que el vector de peso actual está en el lado equivocado. Además, el vector de entrada es relativamente grande, lo que hace que la adición del vector de entrada mueva el vector de peso actual más lejos del vector de peso factible de oro. Como resultado, nuestro reclamo inicial falla.

Sin embargo, podemos rectificar esto introduciendo el concepto de un vector de peso generosamente factible. Estos vectores de peso no solo clasifican correctamente todos los casos de entrenamiento, sino que también lo hacen con un margen igual o mayor que la longitud del vector de entrada para cada caso. Dentro del cono de soluciones factibles tenemos otro cono de soluciones generosamente factibles.

Con este ajuste, nuestra prueba se vuelve válida. Ahora podemos afirmar que cada vez que el perceptrón clasifica erróneamente un caso, la distancia al cuadrado de todos los vectores de peso generosamente factibles disminuye al menos en la longitud al cuadrado del vector de entrada. Esta actualización asegura que el vector de peso se acerque a las soluciones generosamente factibles.

Si bien no proporcionaremos una prueba formal aquí, este bosquejo informal demuestra el proceso de convergencia. Si los vectores de entrada no son infinitesimalmente pequeños, la distancia al cuadrado de todos los vectores de peso generosamente factibles disminuye al menos en la longitud al cuadrado del vector de entrada después de un número finito de errores. En consecuencia, el vector de peso debe residir eventualmente dentro de la región factible, suponiendo que exista. No necesariamente tiene que estar en la región generosamente factible, pero al menos dentro de la región factible para evitar cometer más errores.

Para resumir, esta es una descripción general informal de la prueba que demuestra que el procedimiento de convergencia del perceptrón funciona. Sin embargo, es esencial tener en cuenta que toda la prueba se basa en la suposición de que existe un vector de peso generosamente factible. Si tal vector no existe, la prueba se derrumba.

 

Lección 2.5 — Lo que los perceptrones no pueden hacer



Lección 2.5 — Lo que los perceptrones no pueden hacer [Redes neuronales para el aprendizaje automático]

En este video, exploraremos las limitaciones de los perceptrones, que surgen de los tipos de funciones utilizadas. La efectividad de los perceptrones depende en gran medida de la elección de las características. Con las funciones correctas, los perceptrones pueden ser increíblemente versátiles, pero con las funciones incorrectas, sus capacidades de aprendizaje se ven severamente restringidas. Esta limitación hizo que los perceptrones cayeran en desgracia en el pasado. Destaca el desafío de aprender las características apropiadas, que es el aspecto crucial del proceso de aprendizaje.

Sin embargo, incluso sin funciones de aprendizaje, los perceptrones aún pueden lograr mucho. Por ejemplo, en tareas como determinar la plausibilidad de una oración en inglés, uno podría definir manualmente numerosas características y aprender sus pesos para decidir la probabilidad de que una oración sea gramaticalmente correcta. Sin embargo, a la larga, las funciones de aprendizaje se vuelven necesarias.

La investigación de perceptrones enfrentó contratiempos a fines de la década de 1960 y principios de la de 1970 cuando se descubrió que los perceptrones tenían limitaciones significativas. Al elegir funciones manualmente e incorporar suficientes funciones, los perceptrones pueden realizar casi cualquier tarea. Por ejemplo, si consideramos los vectores de entrada binarios y creamos unidades de características separadas que se activan en función de vectores de entrada binarios específicos, podemos lograr cualquier discriminación en los vectores de entrada binarios. Sin embargo, este enfoque no es práctico para la resolución de problemas del mundo real, ya que requiere un número excesivo de unidades de funciones, lo que dificulta la generalización. Intentar generalizar a partir de un subconjunto de casos mientras se ignoran otros es inútil porque se requerirían nuevas unidades de características para los casos restantes, y determinar los pesos para esas nuevas unidades de características es un desafío una vez que se completa la selección manual.

Existen restricciones estrictas sobre lo que los perceptrones pueden aprender una vez que se han establecido las unidades de características y sus pesos. Examinemos un ejemplo clásico para comprender estas limitaciones. Queremos determinar si una unidad de decisión de umbral binario puede aprender a identificar si dos características tienen el mismo valor. Tenemos dos casos positivos y dos casos negativos, cada uno definido por funciones de un solo bit con valores de 1 o 0. Los casos positivos ocurren cuando ambas funciones están activadas (1) o cuando ambas funciones están desactivadas (0), mientras que el caso negativo Los casos ocurren cuando una función está activada (1) y la otra está desactivada (0). La tarea parece sencilla, pero algebraicamente, se puede demostrar que es imposible satisfacer las cuatro desigualdades formadas por estos pares de entrada-salida. En consecuencia, no es posible encontrar pesos que permitan que el perceptrón proporcione la salida correcta para los cuatro casos.

Esta limitación también puede entenderse geométricamente. Imaginamos un espacio de datos donde cada punto representa un punto de datos y los vectores de peso definen planos perpendiculares a los puntos de datos. Para discriminar correctamente, el plano de peso debe separar los casos positivos de los negativos. Sin embargo, hay conjuntos de casos de entrenamiento que no son linealmente separables, lo que significa que ningún hiperplano puede separar correctamente los casos en los que la salida debería ser 1 de aquellos en los que la salida debería ser 0. Esta incapacidad para separar casos correctamente se conoce como "conjunto de casos de entrenamiento que no son linealmente separables".

Otro ejemplo devastador para los perceptrones consiste en reconocer patrones que retienen su identidad incluso cuando se traducen con envoltura. Los perceptrones no discriminan entre patrones con el mismo número de píxeles si la discriminación debe funcionar con patrones traducidos y envueltos. Esta limitación se hace evidente cuando se consideran los patrones A y B. El patrón A tiene cuatro píxeles "encendidos" dispuestos en una forma similar a un código de barras, y el patrón B también tiene cuatro píxeles "encendidos" dispuestos de manera diferente. Cuando se traduce con envolvente, los perceptrones no pueden aprender a discriminar entre estos patrones. El teorema de invariancia de grupo de Minsky y Papert establece que los perceptrones no pueden reconocer patrones bajo traducción si se permite la envoltura. Este teorema fue particularmente significativo en la historia de los perceptrones porque el reconocimiento de patrones tiene como objetivo identificar patrones a pesar de transformaciones como la traducción.

El teorema reveló que los perceptrones, tal como se formularon originalmente, no pueden manejar tareas de reconocimiento de patrones que requieren invariancia de traducción con envoltura. Esta limitación restringió en gran medida sus aplicaciones prácticas y condujo a una disminución en el interés y la investigación sobre los perceptrones a fines de la década de 1960 y principios de la de 1970. Sin embargo, es importante tener en cuenta que estas limitaciones solo se aplican a los perceptrones de una sola capa con unidades de umbral binarias. El campo de las redes neuronales artificiales siguió evolucionando y superando estas limitaciones con el desarrollo de modelos más avanzados, como los perceptrones multicapa (MLP) y las redes neuronales convolucionales (CNN). Los MLP introducen capas ocultas entre las capas de entrada y salida, lo que permite representaciones de entidades más complejas y flexibles. Mediante la incorporación de funciones de activación no lineales y el uso de técnicas como la retropropagación para el ajuste de peso, los MLP pueden superar la limitación de separabilidad lineal de los perceptrones de una sola capa.

Las CNN, por otro lado, fueron diseñadas específicamente para abordar el problema del reconocimiento de patrones y la clasificación de imágenes. Emplean una estructura jerárquica con capas convolucionales que extraen características locales y capas de agrupación que capturan la invariancia espacial. Las CNN han demostrado un éxito notable en tareas como el reconocimiento de imágenes, la detección de objetos y el procesamiento del lenguaje natural.

Las limitaciones de los perceptrones destacaron la importancia del aprendizaje de características, la no linealidad y las representaciones jerárquicas en las redes neuronales. Los avances posteriores en el campo han llevado al desarrollo de modelos más sofisticados con capacidades de aprendizaje mejoradas y aplicaciones más amplias.

Si bien los perceptrones tienen limitaciones en su capacidad para aprender características complejas y manejar ciertas tareas de reconocimiento de patrones, estas limitaciones se han abordado mediante el desarrollo de arquitecturas de redes neuronales más avanzadas. Los MLP y CNN, entre otros modelos, han superado las restricciones de los perceptrones de una sola capa y se han convertido en herramientas poderosas en varios dominios de la inteligencia artificial.

 

Lección 3.1 — Aprendiendo los pesos de una neurona lineal



Lección 3.1 — Aprendiendo los pesos de una neurona lineal [Redes neuronales para el aprendizaje automático]

Este video presenta el algoritmo de aprendizaje para una neurona lineal, que logra algo diferente del algoritmo de aprendizaje para un perceptrón. En un perceptrón, los pesos siempre se acercan a un buen conjunto de pesos, mientras que en una neurona lineal, las salidas siempre se acercan a las salidas objetivo.

El procedimiento de convergencia del perceptrón asegura que cambiar los pesos nos acerque a un buen conjunto de pesos. Sin embargo, esta garantía no se puede extender a redes más complejas porque promediar dos buenos conjuntos de pesos puede resultar en un mal conjunto de pesos. Por lo tanto, para las redes neuronales multicapa, no usamos el procedimiento de aprendizaje del perceptrón, y la prueba de mejora durante el aprendizaje también es diferente.

Las redes neuronales multicapa, a menudo llamadas perceptrones multicapa (MLP), requieren un enfoque diferente para mostrar el progreso. En lugar de mostrar que los pesos se acercan a un buen conjunto de pesos, demostramos que los valores de salida reales se acercan a los valores de salida objetivo. Esto es válido incluso para problemas no convexos, donde promediar los pesos de dos buenas soluciones no da como resultado una buena solución.

El algoritmo de aprendizaje para una neurona lineal se ilustra a través de un ejemplo de juguete. Implica comenzar con conjeturas aleatorias para los precios de las porciones y luego ajustar estas conjeturas iterativamente para que se ajusten a los precios observados. El enfoque iterativo utiliza la regla delta para actualizar los pesos en función de la tasa de aprendizaje, el número de porciones y el error residual.

La regla delta se obtiene diferenciando la medida del error con respecto a uno de los pesos. La regla de aprendizaje establece que el cambio en un peso es igual a la tasa de aprendizaje multiplicada por el valor de entrada y la diferencia entre el objetivo y las salidas reales. Al aplicar iterativamente la regla delta, los pesos se pueden ajustar para minimizar el error.

El procedimiento de aprendizaje que usa la regla delta no garantiza que los pesos individuales siempre mejoren. Sin embargo, la diferencia entre el objetivo y los productos estimados tiende a mejorar. La tasa de aprendizaje determina la velocidad de aprendizaje y, con una tasa de aprendizaje lo suficientemente pequeña, los pesos pueden acercarse a la mejor aproximación para los casos de entrenamiento dados.

Es importante tener en cuenta que incluso para los sistemas lineales, el proceso de aprendizaje puede ser lento, especialmente cuando las dimensiones de entrada están altamente correlacionadas. Determinar cuánto peso debe atribuirse a cada dimensión de entrada se convierte en un desafío en tales casos. Además, existe una similitud entre la versión en línea de la regla delta y la regla de aprendizaje del perceptrón, donde el vector de peso se ajusta en función del vector de entrada y el error. Sin embargo, la regla delta incorpora la tasa de aprendizaje y el error residual. Elegir una tasa de aprendizaje adecuada es crucial para un aprendizaje estable y eficiente.

El proceso de aprendizaje iterativo descrito para la neurona lineal puede converger en una solución que minimice la medida del error. Sin embargo, es importante tener en cuenta que es posible que no haya una solución perfecta que coincida exactamente con los resultados deseados para todos los casos de capacitación. En cambio, el objetivo es encontrar un conjunto de pesos que proporcione la mejor aproximación y minimice la medida del error en todos los casos de entrenamiento. Al hacer que la tasa de aprendizaje sea lo suficientemente pequeña y permitir que el proceso de aprendizaje continúe durante un tiempo suficiente, podemos acercarnos a esta mejor aproximación.

La velocidad de aprendizaje puede variar, incluso para sistemas lineales. Cuando dos dimensiones de entrada están altamente correlacionadas, se vuelve difícil determinar cuánto peso se debe atribuir a cada dimensión de entrada. Por ejemplo, si el número de porciones de ketchup y patatas fritas es siempre el mismo, el proceso de aprendizaje puede tardar mucho en asignar correctamente el precio a cada componente.

Curiosamente, existe una relación entre la regla delta y la regla de aprendizaje de los perceptrones. La versión en línea de la regla delta, donde los pesos se actualizan después de cada caso de entrenamiento, tiene similitudes con la regla de aprendizaje del perceptrón. En el aprendizaje del perceptrón, el vector de peso aumenta o disminuye según el vector de entrada, pero solo cuando ocurre un error. En la versión en línea de la regla delta, el vector de peso también se ajusta mediante el vector de entrada, pero se escala tanto por el error residual como por la tasa de aprendizaje.

Un desafío al usar la regla delta es seleccionar una tasa de aprendizaje adecuada. Si la tasa de aprendizaje es demasiado grande, el sistema puede volverse inestable, lo que dificulta la convergencia hacia una solución. Por otro lado, si la tasa de aprendizaje es demasiado pequeña, el proceso de aprendizaje puede tomar un tiempo innecesariamente largo para alcanzar un conjunto de pesos sensato.

El algoritmo de aprendizaje para una neurona lineal tiene como objetivo minimizar el error entre las salidas objetivo y las salidas reales. Ajusta iterativamente los pesos utilizando la regla delta, que incorpora la tasa de aprendizaje, los valores de entrada y la diferencia entre el objetivo y las salidas reales. Aunque el proceso de aprendizaje puede ser lento y es posible que los pesos no mejoren individualmente, el objetivo general es acercarse a la mejor aproximación para los casos de entrenamiento dados.

 

Lección 3.2 — La superficie de error para una neurona lineal



Lección 3.2 — La superficie de error para una neurona lineal [Redes neuronales para el aprendizaje automático]

En este video, exploraremos la superficie de error de una neurona lineal, que brinda información sobre el proceso de aprendizaje. Al visualizar esta superficie, podemos obtener una comprensión geométrica de cómo se aprenden los pesos en una neurona lineal. El espacio que consideramos es similar al espacio de peso utilizado en los perceptrones pero con una dimensión adicional.

Imagine un espacio donde las dimensiones horizontales representan los pesos y la dimensión vertical representa el error. En este espacio, los diferentes ajustes de peso se representan como puntos en el plano horizontal, y la altura de cada punto corresponde al error asociado con ese ajuste de peso, sumado en todos los casos de entrenamiento. Para una neurona lineal, los errores para cada configuración de peso definen una superficie de error, que toma la forma de un cuenco cuadrático. Una sección transversal vertical de la superficie de error siempre produce una parábola, mientras que una sección transversal horizontal forma una elipse. Es importante tener en cuenta que este comportamiento es cierto solo para sistemas lineales con error cuadrático. A medida que avanzamos hacia redes neuronales no lineales multicapa, la superficie de error se vuelve más compleja.

Si bien los pesos se mantienen dentro de un rango razonable, la superficie de error permanece suave pero puede tener numerosos mínimos locales. Para facilitar el aprendizaje empleamos la regla delta, que consiste en calcular la derivada del error con respecto a los pesos. Ajustar los pesos proporcionalmente a esta derivada es equivalente a realizar el descenso más pronunciado en la superficie de error. Ver la superficie de error desde arriba revela líneas de contorno elípticas. La regla delta nos guía perpendicularmente a estas curvas de nivel. En el aprendizaje por lotes, donde el gradiente se calcula sobre todos los casos de entrenamiento, la regla delta nos lleva en la dirección correcta. Sin embargo, también podemos emplear el aprendizaje en línea, donde los pesos se actualizan después de cada caso de entrenamiento, de forma similar a los perceptrones. En este caso, el cambio de peso nos desplaza hacia los planos de restricción formados por los casos de entrenamiento.

Al alternar entre casos de entrenamiento, podemos zigzaguear hacia el punto de solución donde se cruzan las líneas de restricción, indicando los pesos que satisfacen ambos casos. Además, examinar la superficie de error nos permite comprender las condiciones que dan como resultado un aprendizaje lento. Si la elipse que representa las curvas de nivel es muy alargada, lo que ocurre cuando las líneas correspondientes a dos casos de entrenamiento son casi paralelas, el gradiente presenta una propiedad desfavorable. El gradiente se vuelve grande en la dirección en la que no queremos avanzar y pequeño en la dirección en la que queremos lograr un progreso significativo. Este desajuste impide un aprendizaje eficiente y dificulta atravesar la estructura similar a un barranco de la superficie de error a lo largo de su eje alargado.

Visualizar la superficie de error de una neurona lineal proporciona información valiosa sobre el proceso de aprendizaje. Comprender la geometría de la superficie nos ayuda a comprender el comportamiento de la regla delta y sus implicaciones para la velocidad de aprendizaje.

 

Lección 3.3 — Pesos de aprendizaje de la neurona de salida logística


Lección 3.3 — Pesos de aprendizaje de la neurona de salida logística [Redes neuronales para el aprendizaje automático]

Para extender la regla de aprendizaje de una neurona lineal a redes multicapa de neuronas no lineales, debemos seguir dos pasos. Primero, necesitamos generalizar la regla de aprendizaje para una sola neurona no lineal, específicamente una neurona logística. Si bien las neuronas logísticas se utilizan como ejemplo, también se podrían emplear otros tipos de neuronas no lineales.

Una neurona logística calcula su logit, denominado z, que es la suma de su sesgo y la suma ponderada de sus líneas de entrada. La salida, denotada como y, es una función no lineal uniforme del logit. En el gráfico, se puede observar que la función se acerca a cero cuando z es grande y negativo, se acerca a uno cuando z es grande y positivo, y exhibe cambios suaves y no lineales en el medio. La continuidad de la función logística proporciona derivadas convenientes para el aprendizaje. Para obtener las derivadas de una neurona logística con respecto a los pesos (que es crucial para el aprendizaje), primero calculamos la derivada del propio logit con respecto a un peso. Esta derivada se simplifica al valor en la línea de entrada, indicado como xi. De manera similar, la derivada del logit con respecto a xi es el peso wi.

La derivada de la salida con respecto al logit se puede expresar en términos de la salida misma. Específicamente, si la salida se representa como y, entonces dy/dz viene dado por y * (1 - y). La derivación matemática de este resultado se proporciona en la siguiente diapositiva e implica cálculos tediosos pero sencillos. Habiendo obtenido la derivada de la salida con respecto al logit y la derivada de logit con respecto al peso, ahora podemos determinar la derivada de la salida con respecto al peso. Al aplicar la regla de la cadena, tenemos dz/dw como xi y dy/dz como y * (1 - y). En consecuencia, llegamos a una regla de aprendizaje para una neurona logística que se parece mucho a la regla delta.

El cambio en el error, denotado como de/dwi, cuando modificamos un peso, se obtiene sumando sobre todos los casos de entrenamiento (n) el producto del valor en una línea de entrada (xin) y el residual, que es la diferencia entre la salida objetivo y la salida real de la neurona. Sin embargo, existe un término adicional derivado de la pendiente de la función logística, a saber, yn * (1 - yn). Con esta ligera modificación de la regla delta, llegamos a la regla de aprendizaje del gradiente descendente para entrenar una neurona logística.

Al aplicar la regla de aprendizaje de descenso de gradiente a una neurona logística, podemos entrenar efectivamente redes multicapa de neuronas no lineales. Esto extiende la regla de aprendizaje más allá de los sistemas lineales y nos permite abordar tareas más complejas. Para entender cómo funciona esta regla de aprendizaje en el contexto de las redes multicapa, consideremos una red simple de dos capas como ejemplo. Tenemos una capa de entrada con múltiples neuronas y una capa de salida con una sola neurona logística. Los pesos entre las capas se denotan como W y los sesgos como b.

El proceso de aprendizaje consta de dos pasos. Primero, calculamos la salida de la red para una entrada dada. Esto se hace propagando las entradas hacia adelante a través de la red, aplicando la función logística a la entrada total (logit) de cada neurona y obteniendo la salida final. Luego, calculamos los gradientes del error con respecto a los pesos usando la regla de la cadena. Partiendo de la capa de salida, calculamos la derivada del error con respecto a la salida, que es simplemente la diferencia entre la salida objetivo y la salida real de la red. Luego, propagamos este gradiente de error hacia atrás a través de la red, multiplicándolo por la derivada de la función logística en cada neurona para obtener los gradientes en la capa oculta. Finalmente, actualizamos los pesos utilizando los gradientes calculados y una tasa de aprendizaje. La tasa de aprendizaje determina el tamaño del paso en la actualización del peso y se puede ajustar para controlar la velocidad de aprendizaje. La actualización del peso sigue la ecuación: ΔW = tasa de aprendizaje * error_gradiente * entrada, donde ΔW representa el cambio en los pesos.

Este proceso de propagación hacia adelante, propagación hacia atrás de errores y actualización de ponderación se repite iterativamente durante un número determinado de épocas o hasta que la red alcance el nivel de rendimiento deseado. Al ajustar los pesos de manera iterativa, la red aprende gradualmente a hacer mejores predicciones o clasificar las entradas con mayor precisión. Es importante tener en cuenta que la regla de aprendizaje que discutimos para las neuronas logísticas también se puede generalizar a otros tipos de funciones de activación no lineales. La clave es calcular las derivadas de las funciones de activación con precisión para propagar los gradientes de error de manera efectiva a través de la red.

Al extender la regla de aprendizaje de neuronas lineales a neuronas logísticas y aplicarla a redes multicapa, podemos entrenar modelos no lineales complejos. Esto nos permite resolver una amplia gama de tareas, incluido el reconocimiento de patrones, la clasificación y la regresión, ajustando iterativamente los pesos en función de los gradientes de error.

 

Lección 3.4 — El algoritmo de retropropagación



Lección 3.4 — El algoritmo de retropropagación [Redes neuronales para el aprendizaje automático]

Ahora que hemos cubierto los preliminares, profundicemos en el tema central de aprender múltiples capas de características. En este video, finalmente describiremos el algoritmo de retropropagación, que surgió en la década de 1980 y despertó un gran interés en las redes neuronales.

Antes de sumergirnos en la retropropagación, analicemos primero otro algoritmo que no es tan efectivo pero que vale la pena mencionar. Una vez que sabemos cómo aprender los pesos de una unidad logística, el siguiente desafío es aprender los pesos de las unidades ocultas. Las redes neuronales sin unidades ocultas están limitadas en los mapeos de entrada y salida que pueden modelar. Si bien una capa de funciones codificadas a mano, como en un perceptrón, mejora la potencia de la red, diseñar esas funciones para una nueva tarea sigue siendo un proceso difícil y manual.

Idealmente, nos gustaría automatizar el ciclo de diseño de funciones, permitiendo que la computadora encuentre buenas funciones sin requerir conocimientos humanos o pruebas y errores repetidos. Aquí es donde viene a la mente el concepto de aprender perturbando los pesos. Perturbar aleatoriamente un peso es similar a una mutación, y podemos observar si mejora el rendimiento de la red. Si el rendimiento mejora, guardamos ese cambio de peso, asemejándose a una forma de aprendizaje por refuerzo.

Sin embargo, este método es altamente ineficiente. Para evaluar si cambiar un peso mejora la red, se requieren múltiples pases hacia adelante en un conjunto representativo de casos de entrenamiento. Evaluar el impacto de un cambio de peso basado en un solo caso de entrenamiento es inadecuado. Además, a medida que avanza el aprendizaje, los grandes cambios en los pesos tienden a empeorar las cosas, ya que los valores relativos adecuados entre los pesos son cruciales. Hacia el final del aprendizaje, no solo lleva mucho tiempo evaluar cada cambio de peso, sino que los cambios en sí mismos deben ser pequeños.

Hay formas ligeramente mejores de utilizar las perturbaciones para el aprendizaje. Un enfoque es perturbar todos los pesos en paralelo y luego correlacionar la ganancia de rendimiento con los cambios de peso. Sin embargo, este método no proporciona una mejora significativa. El desafío radica en la necesidad de numerosos ensayos con diferentes perturbaciones aleatorias de todos los pesos para aislar el efecto de cambiar un peso en medio del ruido causado por cambiar los otros.

Un enfoque alternativo que muestra alguna mejora es perturbar aleatoriamente las actividades de las unidades ocultas en lugar de los pesos. Una vez que se determina que la perturbación de la actividad de una unidad oculta en un caso de entrenamiento específico mejora el rendimiento, se pueden calcular los cambios de peso. Dado que hay menos actividades que pesos, el algoritmo se vuelve más eficiente. Sin embargo, la retropropagación todavía supera a estos métodos en eficiencia, con un factor igual al número de neuronas en la red.

La idea central detrás de la retropropagación es que, si bien es posible que no sepamos qué deberían estar haciendo las unidades ocultas (de ahí el término "oculto"), podemos calcular qué tan rápido cambia el error cuando modificamos la actividad de una unidad oculta en un caso de entrenamiento particular. En lugar de utilizar las actividades de las unidades ocultas como estados deseados, utilizamos las derivadas del error con respecto a las actividades. Dado que cada unidad oculta puede influir en múltiples unidades de salida, sus efectos deben combinarse, lo que se puede hacer de manera eficiente.

Para resumir el algoritmo de retropropagación para un solo caso de entrenamiento, comenzamos definiendo el error como la diferencia al cuadrado entre los valores objetivo de las unidades de salida y los valores reales producidos por la red. Al diferenciar este error, obtenemos la expresión de cómo cambia el error con respecto a la salida de una unidad de salida. Luego podemos calcular las derivadas de error para las unidades ocultas sumando los efectos de todas las conexiones salientes de la unidad oculta utilizando las derivadas de error previamente calculadas de la capa superior.

El algoritmo de retropropagación nos permite propagar las derivadas de error de una capa a la capa anterior de manera eficiente. Una vez que tenemos las derivadas de error para las unidades ocultas, podemos calcular fácilmente las derivadas de error para los pesos que entran en una unidad oculta. Esto se hace multiplicando la derivada del error con respecto a la entrada total recibida por la unidad por la actividad de la unidad en la capa inferior. Las derivadas del error calculado para los pesos representan cómo cambia el error a medida que modificamos un peso particular.

Ahora, describamos los pasos involucrados en el algoritmo de retropropagación para un solo caso de entrenamiento:

  1. Defina el error como la diferencia al cuadrado entre los valores objetivo y los valores de salida reales de la red.

  2. Calcule la derivada del error con respecto a la salida de cada unidad de salida aplicando la regla de la cadena, que consiste en multiplicar la derivada de la salida con respecto a la entrada total por la derivada del error con respecto a la salida.

  3. Calcule la derivada del error con respecto a la salida de cada unidad oculta sumando los efectos de todas las conexiones salientes de la unidad oculta. Esto implica multiplicar el peso de cada conexión por la derivada del error calculada en la capa anterior.

  4. Repita el paso 3 para todas las capas ocultas, propagando las derivadas del error hacia atrás a través de la red.

  5. Calcule las derivadas del error para los pesos que entran en cada unidad. Esto se hace multiplicando la derivada del error con respecto a la entrada total recibida por la unidad por la actividad de la unidad en la capa inferior.

Siguiendo estos pasos, podemos calcular de manera eficiente las derivadas de error para todos los pesos en la red con base en un solo caso de entrenamiento. El algoritmo de retropropagación nos permite comprender cómo la modificación de cada peso afecta el error general y facilita el proceso de aprendizaje. Comprender e implementar el algoritmo de retropropagación es crucial para entrenar redes neuronales profundas con múltiples capas de características. Si bien esta explicación puede requerir un estudio cuidadoso, comprender los conceptos y cálculos subyacentes será esencial para utilizar de manera efectiva la retropropagación en el entrenamiento de redes neuronales.

Una vez que hemos calculado las derivadas de error para todos los pesos en la red utilizando el algoritmo de retropropagación, podemos usar esta información para actualizar los pesos y mejorar el rendimiento de la red. Este proceso se conoce como ajuste de peso o actualización de peso. La actualización de ponderaciones suele implicar el uso de un algoritmo de optimización, como el descenso de gradiente, para ajustar iterativamente las ponderaciones en la dirección que minimiza el error. La idea básica es actualizar cada peso restando una pequeña fracción de su derivada de error correspondiente, multiplicada por un parámetro de tasa de aprendizaje.

La tasa de aprendizaje determina el tamaño del paso en el espacio de pesos y afecta la velocidad de convergencia del proceso de entrenamiento. Elegir una tasa de aprendizaje adecuada es importante para garantizar un aprendizaje estable y eficiente. Una tasa de aprendizaje demasiado grande puede hacer que los pesos diverjan, mientras que una tasa de aprendizaje demasiado pequeña puede provocar una convergencia lenta. Durante el proceso de actualización de pesos, es común actualizar los pesos en lotes pequeños o incluso en un solo ejemplo de entrenamiento a la vez. Este enfoque se conoce como descenso de gradiente estocástico o descenso de gradiente de mini lotes, y ayuda a acelerar el proceso de aprendizaje y evita quedarse atascado en los óptimos locales.

El proceso de actualización del peso generalmente se repite para varias épocas, donde cada época consiste en pasar por todo el conjunto de datos de entrenamiento. Esto permite que la red ajuste gradualmente los pesos en función de los errores acumulados de múltiples ejemplos de entrenamiento, mejorando su rendimiento de generalización. Es importante tener en cuenta que la retropropagación y la actualización del peso se realizan durante la fase de entrenamiento de una red neuronal. Una vez que se entrena la red, se puede usar para hacer predicciones sobre datos nuevos e invisibles simplemente alimentando la entrada a través de la red y obteniendo la salida.

La retropropagación y la capacidad de aprender múltiples capas de características han sido cruciales para el éxito del aprendizaje profundo. Con el algoritmo de retropropagación, las redes neuronales pueden aprender automáticamente representaciones complejas de datos, lo que les permite resolver una amplia gama de tareas, incluido el reconocimiento de imágenes y voz, el procesamiento del lenguaje natural y más.

El algoritmo de retropropagación es una técnica poderosa para calcular de manera eficiente las derivadas de errores en redes neuronales con múltiples capas. Al propagar la información del error hacia atrás a través de la red, podemos determinar cómo los cambios en los pesos afectan el error general. Esta información luego se usa para actualizar los pesos de forma iterativa, lo que permite que la red aprenda y mejore su rendimiento con el tiempo.

 

Lección 3.5 — Usando los derivados de la retropropagación



Lección 3.5 — Uso de los derivados de la retropropagación [Redes neuronales para el aprendizaje automático]

Para aprender eficientemente en redes neuronales multicapa, es crucial obtener las derivadas de error para todos los pesos. Sin embargo, hay varias otras consideraciones que deben abordarse para especificar completamente un procedimiento de aprendizaje.

Una de estas consideraciones es determinar la frecuencia de las actualizaciones de peso y evitar el sobreajuste cuando se usa una red grande. El algoritmo de retropropagación calcula eficientemente las derivadas de cada peso basándose en un solo caso de entrenamiento, pero no es un algoritmo de aprendizaje completo. Para desarrollar un procedimiento de aprendizaje adecuado, es necesario especificar factores adicionales.

Los problemas de optimización entran en juego cuando se utilizan los derivados de peso para descubrir un conjunto óptimo de pesos. Una pregunta es con qué frecuencia se deben actualizar los pesos. Un enfoque es actualizar los pesos después de cada caso de entrenamiento, lo que resulta en un zigzag debido a la variación de las derivadas del error. Sin embargo, en promedio, pequeños cambios de peso pueden conducir en la dirección correcta. Alternativamente, el entrenamiento por lotes completo implica revisar todos los datos de entrenamiento, resumir los errores derivados de casos individuales y dar un pequeño paso en esa dirección. Sin embargo, este enfoque puede ser computacionalmente costoso, especialmente si los pesos iniciales son deficientes. El aprendizaje de mini lotes ofrece un compromiso al seleccionar aleatoriamente una pequeña muestra de casos de entrenamiento para actualizar los pesos. Esto reduce el zigzagueo sin dejar de ser computacionalmente eficiente, por lo que se usa comúnmente para entrenar grandes redes neuronales en grandes conjuntos de datos.

Determinar la magnitud de las actualizaciones de peso es otro problema de optimización. En lugar de elegir manualmente una tasa de aprendizaje fija, suele ser más sensato adaptar la tasa de aprendizaje. Por ejemplo, si el error oscila, la tasa de aprendizaje puede reducirse, mientras que si se logra un progreso constante, la tasa de aprendizaje puede aumentar. Incluso es posible asignar diferentes tasas de aprendizaje a diferentes conexiones en la red para permitir que algunos pesos aprendan más rápidamente que otros. Además, en lugar de seguir estrictamente la dirección del descenso más empinado, puede ser beneficioso explorar direcciones alternativas que conduzcan a una mejor convergencia. Sin embargo, encontrar estas direcciones alternativas puede ser un desafío.

El segundo conjunto de problemas se relaciona con qué tan bien se generalizan los pesos aprendidos a casos no vistos. Los datos de entrenamiento contienen información sobre regularidades y dos tipos de ruido. El primer tipo son los valores objetivo poco fiables, que suelen ser una preocupación menor. El segundo tipo es el error de muestreo, donde pueden surgir regularidades accidentales debido a los casos de entrenamiento específicos elegidos. Los modelos no pueden distinguir entre regularidades accidentales y regularidades verdaderas que se generalizan bien. Por lo tanto, los modelos tienden a ajustarse a ambos tipos de regularidades, lo que lleva a una mala generalización si el modelo es demasiado complejo.

Para abordar el sobreajuste, se han desarrollado varias técnicas para redes neuronales y otros modelos. Estas técnicas incluyen el decaimiento del peso, donde los pesos se mantienen pequeños o en cero para simplificar el modelo, y el peso compartido, donde muchos pesos tienen el mismo valor para reducir la complejidad. La detención anticipada implica monitorear un conjunto de prueba falso durante el entrenamiento y detenerse cuando el rendimiento en el conjunto de prueba falso comienza a deteriorarse. El promedio de modelos implica entrenar múltiples redes neuronales y promediar sus predicciones para reducir errores. El ajuste bayesiano de redes neuronales es una forma de promedio de modelos que incorpora principios bayesianos. Dropout es una técnica que mejora la solidez del modelo al omitir aleatoriamente unidades ocultas durante el entrenamiento. El preentrenamiento generativo, un enfoque más avanzado, se discutirá más adelante en el curso.

La obtención de derivadas de error para todos los pesos en una red multicapa es esencial para un aprendizaje eficiente. Sin embargo, para desarrollar un procedimiento de aprendizaje completo, se deben considerar y abordar otros factores, como la frecuencia de actualización del peso, la prevención del sobreajuste, las técnicas de optimización y la generalización a casos no vistos.

 

Lección 4.1 — Aprendiendo a predecir la siguiente palabra



Lección 4.1 — Aprendiendo a predecir la siguiente palabra [Redes neuronales para el aprendizaje automático]

Los próximos videos se centrarán en utilizar el algoritmo de retropropagación para aprender el significado de una palabra a través de la representación de características. En esta introducción, comenzaremos con un caso simple de la década de 1980 para ilustrar cómo la información relacional se puede transformar en vectores de características mediante la retropropagación.

El caso involucra dos árboles genealógicos, uno inglés y otro italiano, con estructuras similares. Al expresar la información en estos árboles genealógicos como proposiciones usando relaciones específicas (p. ej., hijo, hija, padre, madre), podemos ver la tarea de aprender esta información relacional como encontrar regularidades dentro de un conjunto de triples.

En lugar de buscar reglas simbólicas, podemos emplear una red neuronal para capturar esta información prediciendo el tercer término de un triple a partir de los dos primeros términos. La arquitectura de la red consta de múltiples capas diseñadas para aprender representaciones interesantes. Codificamos la información usando una representación neutral, asegurando que todas las personas sean tratadas como entidades distintas.

La red aprende entrenando en un conjunto de proposiciones, ajustando gradualmente los pesos usando retropropagación. Podemos examinar la capa oculta responsable de codificar a la persona uno para comprender las representaciones aprendidas. Las diferentes unidades de esta capa revelan características como la nacionalidad, la generación y la rama del árbol genealógico de la persona.

Estas funciones son útiles para predecir la persona de salida, ya que capturan regularidades en el dominio. La red descubre de forma autónoma estas características sin ninguna guía explícita. La capa intermedia de la red combina las características de la persona de entrada y las características de relación para predecir las características de la persona de salida.

El rendimiento de la red se puede evaluar probándolo en triples incompletos y observando qué tan bien generaliza. Con datos de entrenamiento limitados, logra una buena tasa de precisión para una elección de 24 vías. Si se entrena en un conjunto de datos más grande, se puede generalizar a partir de una fracción más pequeña de los datos.

Si bien el ejemplo presentado aquí es un caso de juguete, en la práctica podemos aplicar técnicas similares a bases de datos que contienen millones de hechos relacionales. Al entrenar una red para descubrir representaciones de vectores de características de entidades y relaciones, podemos limpiar y validar la base de datos de manera efectiva.

En lugar de predecir el tercer término de los dos primeros, también podemos estimar la probabilidad de que un hecho sea correcto usando varios términos. Este enfoque requiere ejemplos de hechos correctos e incorrectos para el entrenamiento.

Mediante el uso de retropropagación y redes neuronales, podemos aprender representaciones significativas a partir de información relacional y hacer predicciones o evaluar la plausibilidad de los hechos en una base de datos.

Entrenar una red neuronal para estimar la probabilidad de que un hecho sea correcto requiere un conjunto de datos que contenga una variedad de hechos correctos y una fuente confiable de hechos incorrectos. Al presentar a la red ejemplos correctos y fomentar un alto rendimiento, y exponerla a ejemplos incorrectos y fomentar un bajo rendimiento, puede aprender a distinguir entre hechos plausibles e inverosímiles.

Este enfoque proporciona una poderosa herramienta para limpiar bases de datos. La red puede marcar hechos potencialmente incorrectos o sospechosos, lo que permite una mayor investigación y verificación. Por ejemplo, si la base de datos indica que Bach nació en 1902, la red podría identificar esto como altamente inverosímil según las relaciones y otros hechos relacionados que ha aprendido.

Con los avances en el poder de las computadoras y la disponibilidad de vastas bases de datos que contienen millones de hechos relacionales, la aplicación de redes neuronales para descubrir representaciones de vectores de características se ha vuelto más práctica. Al aprovechar la capacidad de las redes neuronales para aprender patrones y relaciones complejos, podemos obtener información valiosa y hacer predicciones basadas en las representaciones aprendidas.

Vale la pena señalar que el ejemplo discutido aquí se llevó a cabo en la década de 1980 como una demostración de las capacidades de retropropagación y redes neuronales. Desde entonces, el campo ha progresado significativamente y los investigadores han aplicado técnicas similares a varios dominios, incluido el procesamiento del lenguaje natural, la visión artificial y los sistemas de recomendación.

En conclusión, utilizar el algoritmo de retropropagación y las redes neuronales para aprender representaciones de características a partir de información relacional proporciona un enfoque poderoso para comprender y hacer predicciones basadas en conjuntos de datos complejos. Al entrenar a la red con ejemplos de hechos correctos e incorrectos, podemos aprovechar sus capacidades para validar y mejorar la calidad de las bases de datos, haciéndolas más confiables y útiles para diversas aplicaciones.

Razón de la queja: