La tecnología de aprendizaje automático ha demostrado potentes capacidades en todos los aspectos de la sociedad moderna: desde la búsqueda web hasta el filtrado de contenidos de redes sociales y las recomendaciones de productos en sitios web de comercio electrónico. Se encuentra cada vez más en productos de consumo como cámaras y teléfonos inteligentes.
Los sistemas de aprendizaje automático se utilizan para identificar objetos en imágenes, convertir voz en texto, relacionar elementos de noticias, proporcionar trabajos o productos basados en los intereses del usuario y seleccionar resultados de búsqueda relevantes. Cada vez más, estas aplicaciones utilizan una tecnología llamada aprendizaje profundo. Las técnicas tradicionales de aprendizaje automático tienen capacidades limitadas cuando se trata de datos no procesados. Durante décadas, si querías construir un sistema de reconocimiento de patrones o un sistema de aprendizaje automático, necesitabas un motor complejo y una experiencia considerable para diseñar un extractor de características que convierta datos sin procesar (como los valores de píxeles de una imagen) en un formato adecuado. La representación de características internas o vector de características de . Un sistema de subaprendizaje, normalmente un clasificador, detecta o clasifica muestras de entrada. El aprendizaje de representación de características es un conjunto de métodos que llenan la máquina con datos sin procesar y luego encuentran automáticamente las expresiones que deben detectarse y clasificarse. El aprendizaje profundo es un método de aprendizaje de funciones que transforma datos sin procesar en expresiones más abstractas y de mayor nivel a través de algunos modelos simples pero no lineales. Con suficientes combinaciones de transformaciones también se pueden aprender funciones muy complejas. Para tareas de clasificación, la expresión de alto nivel puede mejorar la capacidad discriminativa de los datos de entrada al tiempo que debilita los factores irrelevantes. Por ejemplo, si el formato original de la imagen es una matriz de píxeles, entonces la expresión de la primera capa de características de aprendizaje generalmente se refiere a si hay bordes en posiciones y direcciones específicas de la imagen. La segunda capa generalmente detecta patrones basados en algunas emisiones de esos bordes, momento en el cual ignora algunas pequeñas perturbaciones en algunos bordes. La tercera capa puede combinar estos patrones para que correspondan a alguna parte del objetivo familiar. Las capas posteriores recombinarán estas partes para formar el objetivo a detectar. El aspecto central del aprendizaje profundo es que las características de las capas anteriores no se diseñan artificialmente, sino que se aprenden de los datos mediante un proceso de aprendizaje general.
El aprendizaje profundo está avanzando mucho, solucionando problemas en los que la comunidad de inteligencia artificial lleva muchos años trabajando sin conseguir avances. Ha demostrado ser bueno para descubrir estructuras complejas en datos de alta dimensión, por lo que tiene aplicaciones en la ciencia, los negocios y el gobierno. Además de batir récords en reconocimiento de imágenes y reconocimiento de voz, ha superado otras técnicas de aprendizaje automático en otras áreas, incluida la predicción de la actividad de posibles moléculas de fármacos, el análisis de datos de aceleradores de partículas, la reconstrucción de circuitos cerebrales y la predicción del impacto de mutaciones en genes no físicos. codificación del ADN sobre la expresión genética y efectos de las enfermedades. Quizás lo más sorprendente sea que el aprendizaje profundo haya producido resultados muy prometedores en diversas tareas de comprensión del lenguaje natural, especialmente la clasificación de temas, el análisis de sentimientos, la respuesta automática a preguntas y la traducción de idiomas. Creemos que el aprendizaje profundo logrará más éxito en el futuro cercano porque requiere poca ingeniería humana y puede beneficiarse fácilmente de los aumentos en la potencia informática y los volúmenes de datos disponibles. Los nuevos algoritmos y arquitecturas de aprendizaje que se están desarrollando actualmente para redes neuronales profundas no harán más que acelerar este proceso.
Aprendizaje supervisado
La forma más común de aprendizaje automático, profundo o no, es el aprendizaje supervisado. Imaginemos que necesitamos crear un sistema que pueda clasificar imágenes que contengan casas, automóviles, personas o mascotas. Primero recopilamos un gran conjunto de datos de imágenes de casas, automóviles, personas y mascotas y anotamos cada objeto con su categoría. Durante el entrenamiento, la máquina toma una fotografía y produce un resultado, expresado como una puntuación en forma de vector, uno para cada categoría. Nos gustaría que la categoría deseada tuviera la puntuación más alta entre todas las categorías, pero es poco probable que este sea el caso antes del entrenamiento. El error (o distancia) entre la puntuación de salida y la puntuación del patrón esperado se puede obtener calculando la función objetivo. Luego, la máquina modificará sus parámetros internos ajustables para reducir este error.
Estos parámetros ajustables, a menudo llamados pesos, son números reales que pueden considerarse como "perillas" que definen las funciones de entrada y salida de la máquina. En un sistema de aprendizaje profundo típico, puede haber millones de muestras, pesos y muestras etiquetadas que se utilizan para entrenar la máquina. Para ajustar el vector de peso correctamente, el algoritmo de aprendizaje calcula un vector de gradiente para cada peso, indicando la cantidad en la que el error aumentará o disminuirá si el peso aumenta en una pequeña cantidad. Luego ajuste el vector de peso en la dirección opuesta al vector de gradiente. Nuestra función objetivo, el promedio de todas las muestras de entrenamiento, puede verse como un terreno variable en el espacio de pesos de alta dimensión. Un vector de gradiente negativo indica la dirección de descenso más rápida en este terreno, acercándolo al mínimo, donde el error de salida promedio es más bajo.
En aplicaciones prácticas, la mayoría de los profesionales utilizan un algoritmo llamado descenso de gradiente estocástico (SGD). Consiste en proporcionar algunas muestras de vectores de entrada, calcular la suma y el error de salida, calcular el gradiente promedio de estas muestras y luego ajustar los pesos en consecuencia. La red se entrena proporcionando un pequeño conjunto de muestras y el proceso se repite hasta que la función objetivo deja de crecer. Se llama aleatorio porque un conjunto de muestras pequeño producirá una estimación ruidosa del gradiente promedio en todas las muestras. Este sencillo proceso suele encontrar un buen conjunto de pesos y es sorprendentemente rápido en comparación con otras técnicas de optimización bien diseñadas. Después del entrenamiento, el sistema demostrará el rendimiento del sistema a través de diferentes conjuntos de prueba de muestras de datos. Esto se utiliza para probar la capacidad de generalización de la máquina: su capacidad para reconocer nuevas muestras en las que no se ha entrenado.
Actualmente, las técnicas de aprendizaje automático en muchas aplicaciones utilizan clasificadores lineales para clasificar características extraídas manualmente. El segundo tipo de clasificador lineal calculará una suma ponderada de vectores de características. Cuando la suma ponderada excede el umbral, la muestra de entrada se asignará a una clase específica. Desde la década de 1960, sabemos que los clasificadores lineales solo pueden dividir muestras en regiones muy simples, es decir, el espacio se divide en dos partes mediante un hiperplano.
Pero para problemas como el reconocimiento de imágenes y voz, las funciones de entrada y salida que requieren no deben ser demasiado sensibles a cambios en factores irrelevantes en la muestra de entrada, como cambios en la posición, la dirección o la iluminación de El objetivo, o cambios en el tono o entonación, pero debe ser muy sensible a pequeños cambios específicos (como la diferencia entre un lobo blanco y un perro blanco similar a un lobo-samoyedo). A nivel de píxeles, se puede decir que las imágenes de dos perros Samoyedo en diferentes posturas y entornos son mundos aparte. Sin embargo, las dos imágenes de un samoyedo y un lobo en el mismo lugar, sobre un fondo similar, pueden ser muy similares.
Figura 1 Red neuronal multicapa y algoritmo BP
La red neuronal multicapa (representada por puntos de conexión) puede integrar el espacio de entrada para que los datos (muestras representadas en rojo y líneas azules) pueden separación lineal. Observe cómo la cuadrícula normal en el espacio de entrada (izquierda) es transformada por la capa oculta (la cuadrícula transformada está a la derecha). En este ejemplo, solo se utilizan dos nodos de entrada, dos nodos ocultos y un nodo de salida, pero las redes utilizadas para el reconocimiento de objetos o el procesamiento del lenguaje natural a menudo contienen docenas o cientos de dichos nodos. C Olah y Samsung están desarrollando chips de redes neuronales convolucionales para habilitar sistemas de visión en tiempo real en teléfonos inteligentes, cámaras, robots y vehículos autónomos.
Representación distribuida de características y procesamiento del lenguaje
En comparación con los algoritmos de aprendizaje clásicos que no utilizan representación distribuida, la teoría del aprendizaje profundo muestra que las redes profundas tienen dos grandes ventajas diferentes. Estas ventajas provienen del peso de cada nodo de la red, confiando en la distribución estructural razonable de los datos generados subyacentes. Primero, el aprendizaje de representaciones de características distribuidas se puede generalizar para acomodar combinaciones recién aprendidas de valores de características (por ejemplo, hay 2n combinaciones posibles de características n-arias). En segundo lugar, las capas de representación combinatoria en redes profundas aportan otra ventaja potencial exponencial (profundidad exponencial).
La capa oculta en la red neuronal multicapa utiliza la entrada de datos en la red para realizar el aprendizaje de características, lo que facilita la predicción de la salida objetivo. Aquí hay un buen ejemplo de demostración, como tomar el contenido del texto local como entrada y entrenar una red neuronal multicapa para predecir la siguiente palabra en una oración. Cada palabra del contenido se representa en la red como un vector 1/n, lo que significa que un valor en cada componente es 1 y el resto es cero. En la primera capa, cada palabra crea un estado de activación diferente, o vector de palabra (como se muestra en la Figura 4). En un modelo de lenguaje, las capas restantes en la red predicen la siguiente palabra en una oración aprendiendo a convertir vectores de palabras de entrada en vectores de palabras de salida, lo que puede predecir la probabilidad de que una palabra en el vocabulario aparezca como la siguiente palabra en un texto. oración.
La red aprende vectores de palabras que contienen muchos nodos activos que pueden interpretarse como características independientes de las palabras, al igual que la primera demostración de aprendizaje de texto para representaciones jerárquicas de símbolos de texto. Estas características semánticas no están claramente representadas en la entrada. En su lugar, utilizamos "'microreglas'" descubiertas durante el proceso de aprendizaje como una buena manera de descomponer la estructura de la relación del símbolo de entrada-salida. El aprendizaje de vectores de palabras también puede funcionar bien cuando las oraciones provienen de grandes cantidades de texto real y las microrreglas individuales no son confiables. Cuando se utiliza un modelo entrenado para predecir nuevos casos, algunas palabras con conceptos similares se confunden fácilmente, como martes y miércoles, Suecia y Noruega. Estas representaciones se denominan representaciones de características distribuidas porque sus elementos no son mutuamente excluyentes y su información estructural corresponde a los cambios observados en los datos. Estos vectores de palabras se construyen aprendiendo características que no están determinadas por expertos sino que se descubren automáticamente mediante redes neuronales. Las representaciones vectoriales de palabras aprendidas a partir de un texto se utilizan ahora ampliamente en los lenguajes naturales.
Figura 4 Visualización del aprendizaje de vectores de palabras
El centro del debate sobre la representación de características es el conocimiento basado en inspiración lógica y el conocimiento basado en redes neuronales. En el paradigma inspirado en la lógica, una entidad simbólica representa algo porque sus propiedades únicas son iguales o diferentes de otras entidades simbólicas. Las instancias de símbolos no tienen estructura interna; la estructura depende del uso. En cuanto a comprender la semántica de los símbolos, es necesario corresponderse razonablemente con las reglas de inferencia cambiantes. Por el contrario, las redes neuronales utilizan una gran cantidad de vectores activos, matrices de peso y no linealidades escalares para implementar funciones rápidas "intuitivas" que pueden respaldar un razonamiento simple y fácil de sentido común.
Antes de presentar el modelo neurolingüístico, describamos brevemente el método estándar. Este es un modelo de lenguaje basado en estadísticas. Este modelo no utiliza representación de características distribuidas. Pero según las estadísticas, la frecuencia de secuencias de símbolos cortas aumenta a N (n-grama, N-grama). El número de N-gramas posibles se aproxima a VN, donde V es el tamaño del vocabulario. Teniendo en cuenta que el contenido del texto contiene miles de palabras, se requiere un corpus muy grande. Los N-gramas tratan cada palabra como una unidad atómica y, por lo tanto, no pueden generalizarse entre secuencias de palabras semánticamente relacionadas. Sin embargo, los modelos de lenguaje de redes neuronales pueden hacerlo porque asocian cada palabra con un vector de valores de características reales, y las palabras relacionadas semánticamente están cerca entre sí en el espacio vectorial (Figura 4).
Redes neuronales recurrentes
Cuando se introdujo por primera vez el algoritmo de retropropagación, lo más interesante fue el uso de redes neuronales recurrentes (RNN) para el entrenamiento. Para tareas que implican entrada de secuencia, como el habla y el lenguaje, los RNN pueden lograr mejores resultados. Los RNN procesan elementos de secuencia de entrada uno a la vez, mientras mantienen un "vector de estado" implícito que contiene información histórica sobre los elementos de secuencia a lo largo del tiempo en las unidades implícitas de la red. Si se trata de la salida de diferentes neuronas en una red multicapa profunda, consideraremos la salida de esta unidad implícita en diferentes pasos de tiempo discretos, lo que nos dará una idea más clara de cómo entrenar RNN mediante retropropagación (Figura 5). , imagen derecha ).
Figura 5 Redes neuronales recurrentes
Las RNN son sistemas dinámicos muy potentes, pero entrenarlas resulta problemático porque los gradientes de la retropropagación aumentan o disminuyen en cada intervalo de tiempo, por lo que después de un tiempo el resultado aumenta o cae a cero.
Gracias a la arquitectura avanzada y los métodos de entrenamiento, se ha descubierto que los RNN pueden predecir el siguiente carácter en un texto o la siguiente palabra en una oración y se pueden aplicar a tareas más complejas. Por ejemplo, después de leer las palabras de una oración en inglés en un momento determinado, se entrenará una red "codificadora" en inglés para que el vector de estado final de la unidad oculta pueda representar bien el significado o la idea que se expresará en la oración. Este "vector de pensamiento" puede servir como un estado implícito inicial (o entrada adicional) para entrenar conjuntamente una red "codificadora" francesa, cuyo resultado es una distribución de probabilidad sobre la primera palabra de la traducción francesa. Si se selecciona una primera palabra particular de la distribución como entrada a la red de codificación, se generará una distribución de probabilidad para la segunda palabra en la oración traducida hasta que se detenga la selección. En términos generales, este proceso genera una secuencia de palabras francesas basada en una distribución de probabilidad de oraciones en inglés. El rendimiento de este sencillo método de traducción automática es incluso comparable al de los métodos más modernos (de última generación), y también plantea dudas sobre si es necesario manipular símbolos internos como reglas de inferencia para comprender oraciones. . Esto es consistente con la idea de que el razonamiento cotidiano implica tanto analogías como conclusiones razonables.
El resto supera el límite de palabras...