En este post de nuestro tutorial de deep learning con PyToch vamos a ver como extender PyTorch. Si quieremos implementar un nuevo módulo o función no disponible en las librerías de PyTorch tenemos varias opciones dependiendo del caso: Si queremos añadir primitivas clásicas (if, while,...) en un módulo, simplemente insertaremos las primitivas en el método... Seguir leyendo →
Ponencia “Del deep learning a la programación diferenciable”
El pasado viernes 31 de febrero, estuvimos en el Instituto Centro de Investigación Operativa de la Universidad Miguel Hernández, impartiendo un seminario sobre la evolución del deep learning y la programación diferenciable. En la ponencia, se dió una introducción a las redes neuronales y el mecanismo de aprendizaje utilizando descenso por gradiente. Se revisó porque... Seguir leyendo →
Programación diferenciable y sistemas dinámicos
En un post pasado vimos que la programación diferenciable (differentiable programming) es una extensión del deep learning con nuevos bloques parametrizables en modelos diferenciables extremo a extremo usando diferenciación automática. Estos bloques añaden nuevas capacidades como razonamiento, atención, memoria, modelos físicos, etc. y permiten que el modelo se adapte a cada situación y tarea concreta.... 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 →
Interpretabilidad en machine learning y los mecanismos de atención
Como comentamos en un post pasado, la interpretabilidad y explicabilidad son dos de las limitaciones más mencionadas del machine learning. La interpretabilidad trata de explicar la relación causa-efecto del algoritmo y saber cómo variará la salida ante cambios en la entrada o en los parámetros. La explicabilidad proporciona un conocimiento del funcionamiento interno del algoritmo... Seguir leyendo →
Expresividad, potencial y necesaria, de las redes neuronales
El deep learning ha proporcionado grandes avances en problemas que hace unos años tenían tasas de errores considerables. Sin embargo, ese éxito no ha venido acompañado de una justificación teórica y formal de la eficacia del deep learning. Sabemos, por el teorema de aproximación universal, que una red neuronal de una capa y un número... Seguir leyendo →
Programación diferenciable, una evolución del deep learning
En este blog hemos descrito multitud de modelos de deep learning en los que varias capas de redes neuronales procesan la información de la entrada produciendo representaciones cada vez más abstractas y apropiadas para resolver una tarea. Estos modelos podían tener recurrencia como las RNN, filtros usando redes convoluciones o word embeddings para poder reflejar... 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 →
Autograd, clave de la flexibilidad de PyTorch
Esta entrada es parte del curso de Deep learning con PyTorch. En los últimos dos años hemos visto como PyTorch, el framework basado en Torch para Deep Learning creado por Facebook, está siendo una alternativa potente a Tensorflow. Una de las principales ventajas de PyTorch es que es un framework imperativo, en el que las... Seguir leyendo →