Esta entrada es parte del curso de Deep learning con PyTorch. En este post vamos a ver la librería PyTorch-NLP, una librería abierta para procesamiento de lenguaje natural basada en PyTorch y que viene con módulos interesantes de datasets, embeddings preentrenados, codificadores de texto, redes neuronales, etc. El paquete torchnlp.datasets tiene módulos para descargar, almacenar... Seguir leyendo →
Procesamiento de lenguaje, de los word embeddings hasta BERT
Nuevas representaciones con contexto En posts pasados vimos las representaciones distribuidas de palabras y cómo han mejorado la eficiencia en tareas de procesamiento de lenguaje. Estas representaciones mapean cada palabra del espacio original en un elemento de un espacio vectorial en el que la proximidad entre vectores se corresponde con la proximidad sintáctica y semántica... Seguir leyendo →
Introducción a los mecanismos de atención
En este post vamos a hacer una introducción al mecanismo de atención usado en modelos seq2seq de deep learning y concretamente en procesamiento de lenguaje natural. La descripción va a tener el nivel de detalle suficiente para que se entienda la esencia y el concepto de atención. Los modelos seq2seq (sentence to sentence), utilizados para... Seguir leyendo →
Perspectivas del deep symbolic learning
La historia de la inteligencia artificial siempre ha estado marcada por el debate entre el enfoque simbólico y el enfoque conexionista. Este debate ha marcado las distintas etapas del machine learning y del procesamiento del lenguaje natural: Un primer período a partir de los años 50 marcado por el Test de Turing, el racionalismo y... Seguir leyendo →
Nueva sección de Machine learning & Business
El machine learning está posibilitando y va a posibilitar grandes oportunidades tanto para el sector público como privado. La transición de la investigación y desarrollo en machine learning a casos de negocio concretos es un proceso delicado que va más allá de lo puramente técnico. Hemos creado una nueva sección dedicada a todos los aspectos... Seguir leyendo →
El potencial del aprendizaje no supervisado de representaciones
En los últimos años, gracias en parte al incremento de las capacidades de computación, hemos visto un gran progreso en el uso de algoritmos supervisados de machine learning. Reconocimiento de imágenes, procesamiento de lenguaje natural, detección de patrones, predicción de series temporales, etc. son algunas de las aplicaciones que han visto mejorada su eficiencia con... Seguir leyendo →
Word embeddings y skip-gram
En posts anteriores vimos que las representaciones distribuidas de las palabras permiten extraer mucha información y han mejorado el rendimiento de las aplicaciones de procesamiento de lenguaje natural. Los Word embeddings son un claro ejemplo de la importancia y el potencial del aprendizaje no supervisado de representaciones. A partir de un cuerpo de texto de... Seguir leyendo →
Problema del desvanecimiento del gradiente (vanishing gradient problem)
Como hemos comentado en otros posts, en los modelos de machine learning el objetivo es encontrar los parámetros del modelo que minimizan una función de coste. En redes neuronales se usa el algoritmo de descenso por gradiente, que va realizando sobre los parámetros iteraciones proporcionales al valor negativo del gradiente en el punto actual. El... Seguir leyendo →
Ejemplo de Word Embeddings con Gensim
En posts anteriores vimos como las representaciones distribuidas permiten extraer mucha información de las palabras y mejorar el rendimiento de las aplicaciones de procesamiento de lenguaje natural. Uno de los modelos más usados es Word2vec, creado en 2013 por Tomas Mikolov en Google, que se basa en redes neuronales de varias capas y tiene dos... Seguir leyendo →
Word2vec, representaciones distribuidas en procesamiento de lenguaje
En un post anterior vimos como el uso de representaciones distribuidas en procesamiento de lenguaje natural permite extraer mucha más información y realizar un procesado más eficiente que las representaciones locales. El objetivo de las representaciones distribuidas del lenguaje es encontrar una función f que sea capaz de convertir cada palabra en un vector de... Seguir leyendo →