Las redes neuronales artificiales con múltiples capas se están convirtiendo en una herramienta fundamental en la vida cotidiana. En los fundamentos de estas técnicas se encuentran conceptos muy cercanos a las disciplinas de la matemática aplicada y computacional entre las que mencionamos el cálculo, la teoría de aproximación, la optimización o el álgebra lineal. En este trabajo el alumno tratará de introducirse en el mundo del aprendizaje profundo desde la perspectiva de un matemático [1], [2]. Se buscará respuesta a las siguientes preguntas:
.¿Qué es una red neuronal?
.¿Cómo se entrena a una red neuronal?
.¿Qué es el algoritmo de la propagación inversa? 4.¿En qué consiste el método del gradiente estocástico?
Inicialmente se ilustrarán estos conceptos con códigos Matlab sencillos que permitan resolver problemas de interés aplicativo tales como el reconocimiento de la escritura. En aplicaciones más exigentes desde el punto de vista computacional tales como la clasificación de imágenes, el alumno usará librerías existentes que permitan implementar estas técnicas así como otros programas de ser necesario.
Si bien en la mayor parte de las aplicaciones las redes neuronales se usan para la clasificación de información o el reconocimiento de patrones, en la actualidad también se plantea su uso para la creación de modelos matemáticos complejos. En efecto en [3] (ver también las referencias incluidas en esa publicación) se propone una metodología basada en redes neuronales que permite resolver ecuaciones en derivadas parciales mediante la integración en un espacio latente de soluciones de baja dimensión que posteriormente se decodifica en el espacio original de soluciones. En este sentido, en la parte final del proyecto y si el tiempo lo permitiera, el alumno abordará este tipo de aplicaciones de gran utilidad cuando se desean modelar/simular fenómenos demasiado complejos para poder ser simulados con técnicas más clásicas.
El presente proyecto abarca múltiples ramas de la matemática y por consiguiente está relacionado con diversas materias obligatorias del Grado en Matemáticas de la Universidad de Santiago de Compostela. Por poner algún ejemplo, la fase de aprendizaje de una red neuronal necesita técnicas de optimización, abordadas en "Métodos numéricos en optimización y ecuaciones diferenciales", el uso y comprensión del método del gradiente estocástico requiere conocimientos adquiridos en la materia "Probabilidad y estadística" y la implementación de las propias redes neuronales necesita competencias en programación adquiridas progresivamente en las materias de "Informática", "Cálculo numérico en una variable" y "Análisis numérico matricial".
Cabe destacar que, si bien en la actualidad el departamento no desarrolla ninguna línea de investigación directamente relacionada con el aprendizaje profundo, estas técnicas sí son de interés para el departamento desde un punto de vista estratégico. Además la parte final del proyecto, destinada a explorar la posibilidad de representar modelos complejos mediante redes neuronales, sería de gran utilidad para el Departamento de Matemática Aplicada con experiencia en modelización y simulación de procesos en el ámbito de la ingeniería.
Bibliografía inicial (puede extenderse de ser preciso):
[1] C. F. Higham, D. J. Higham. Deep Learning: An Introduction for Applied Mathematicians. SIAM Review, vol 61, N4 pp. 860-891 (2019).
[2] G. Strang. Linear Algebra and Learning from Data. Wesley-Cambridge Press, 2019, ISBN978-0-692196-38-0.
[3] J. López García, A. Rivero. Phase space learning with neural networks. arXiv.org > physics > arXiv:2006.12599
[4] R. Sun. Optimization for Deep Learning: theory and algorithms, arXiv.org > cs > arXiv:1912.08957
[5] Y. LeCun, Y. Bengio, G. Hinton. Deep learning, Nature 521 (2015), pp. 436- 444
[6] M. A. Nielsen. Neural Networks and Deep Learning. Determination press, 2015 |