Closed BlancaCC closed 2 years ago
Hay bastantes cosas hechas sobre la convergencia de redes neuronales multicapa. Las redes de una sola capa se modelizan a través de operadores lineales entre espacios de Banach. Sin embargo, cuando hay varias capas normalmente aparecen operaciones que no son lineales (en los artículos que he leído suele ser tomar valor absoluto) y otras que sí lo son, de modo que la actuación de una red neuronal se interpreta como la composición de una serie de operadores lineales y no lineales (pero sí Lipschitzianos) entre espacios de Banach (normalmente C(K) o Lp). Hay dos líneas de referencias que me llamaron la atención en su momento:
Tiene un par de artículos en los que se explica cómo se modelizan redes covolucionales multicapa. Uno es un resumen explicativo del otro en el que están todos los detalles matemáticos y es mucho más duro (adjunto los archivos por telegram)
Tienen un artículo en el que demuestran el que creo que es el teorema más general hasta ahora sobre convergencia de redes neuronales. Trabajan en ambiente no lineal y lo aplican a ecuaciones diferenciales.
Haciendo uso del resultado anterior Lu Lu1, Pengzhan Jin, and George Em Karniadakis hacen un análisis cuantitativo de la precisión y de la convergencia de redes aplicadas a sistemas dinámicos no lineales y ecuaciones en derivadas parciales. (creo que este artículo te lo pasé Blanca, pero lo adjunto por telegram)
Quizás sería conveniente que añadieras una serie de tareas estándar para issues de este tipo. Se me ocurre a bote pronto sólo ñadir la entrada del artículo a .bib, pero igual hay alguno más (como, no sé, probar un teorema o un lema o algo)
En todo caso, yendo al meollo del asunto, generalizar a más de una capa por lo pronto aumenta mucho el espacio de búsqueda (añade un parámetro libre nuevo) y lo que buscamos es justamente lo contrario, restringir el espacio de búsqueda en todo lo que se pueda (para poder usar algoritmos de búsqueda de forma más eficiente, sean globales o locales). En la práctica, además, en artículos tales como este:
@inproceedings{DBLP:conf/iwann/Linan-Villafranca21,
author = {Luis Li{\~{n}}{\'{a}}n{-}Villafranca and
Mario Garc{\'{\i}}a{-}Valdez and
Juan Juli{\'{a}}n Merelo and
Pedro Castillo{-}Valdivieso},
editor = {Ignacio Rojas and
Gonzalo Joya and
Andreu Catal{\`{a}}},
title = {EvoMLP: {A} Framework for Evolving Multilayer Perceptrons},
booktitle = {Advances in Computational Intelligence - 16th International Work-Conference
on Artificial Neural Networks, {IWANN} 2021, Virtual Event, June 16-18,
2021, Proceedings, Part {II}},
series = {Lecture Notes in Computer Science},
volume = {12862},
pages = {330--342},
publisher = {Springer},
year = {2021},
url = {https://doi.org/10.1007/978-3-030-85099-9\_27},
doi = {10.1007/978-3-030-85099-9\_27},
timestamp = {Thu, 26 Aug 2021 10:23:24 +0200},
biburl = {https://dblp.org/rec/conf/iwann/Linan-Villafranca21.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
Se ve que aumentar a varias capas no mejora en nada el resultado.
Buenas tardes @JJ, he leído en diagonal el artículo y me surgen ciertas dudas:
Por lo que veo:
Pero tengo entendido que en otras áreas por poner un ejemplo, en visión por computador se han ido mejorando los resultados conforme se usaban mayor número de capas ocultas ( ejemplo: https://arxiv.org/abs/1409.4842 )
Por lo tanto no termino de entender porqué debiera descartarse por precisión el aumentar el número de capas. Además de que no hay ningún resultado teórico que avale una hipótesis ni otra y eso a mi parecer lo hace interesante.
Dicho esto, no tengo ni idea de algoritmos genéticos aplicados a RRNN ¿por dónde se podría empezar a aprender del tema? ¿Podría ser de interés para nuestro objetivo?
Buenas tardes @JJ, he leído en diagonal el artículo y me surgen ciertas dudas:
Por lo que veo:
* Es un artículo puramente experimental
Si, no pretende ser otra cosa. Pero extender a varias capas era precisamente lo que queríamos probar a ver qué tal iba con respecto al "original", la tesis de Pedro Castillo, que evolucionaba sólo una capa. Y no dio mejores resultados.
* Trata caso particular de MLP utilizando algoritmos genéticos.
Bueno, algoritmos genéticos + retropropagación. Pero tengo entendido de todas formas que el teorema de aproximación universal funciona con solo una capa.
Pero tengo entendido que en otras áreas por poner un ejemplo, en visión por computador se han ido mejorando los resultados conforme se usaban mayor número de capas ocultas ( ejemplo: https://arxiv.org/abs/1409.4842 )
Cuantas más capas usas, más incomprensible es (menos "democrático"). También necesitas más recursos. En cualquier caso, lo que buscamos nosotros es justamente lo contrario, que se usen menos recursos.
Por lo tanto no termino de entender porqué debiera descartarse por precisión el aumentar el número de capas. Además de que no hay ningún resultado teórico que avale una hipótesis ni otra y eso a mi parecer lo hace interesante.
En general, porque lo que intentamos es restringir el espacio de búsqueda, no aumentarlo. Aumentar las capas lo aumenta mucho.
Dicho esto, no tengo ni idea de algoritmos genéticos aplicados a RRNN ¿por dónde se podría empezar a aprender del tema? ¿Podría ser de interés para nuestro objetivo?
Son algoritmos de búsqueda global, que usan operadores específicos. De interés puede ser el crossover, por ejemplo, que crea una nueva solución combinando dos. En este caso también los sistemas con número variable de capas son "malos": no puede hacerse crossover entre sistemas que sean estructuralmente diferentes... En fin, que si no te queda otro remedio ve por ahí, pero yo no veo que ganemos nada y sí que se pueda perder.
Creo que hay dos puntos de vista en este asunto, no son incompatibles pero sí que tienen distinta línea temporal. El primero va en la línea que comenta @JJ, la idea del TFG es conseguir redes neuronales más democráticas. En la práctica las aportaciones matemáticas que podamos hacer van a ser muy específicas en redes lo más sencillas posible haciendo suposiciones bastante restrictivas/favorables (lo que se suele hacer en las modelizaciones más básicas), con mayor motivo si pretendemos hacer un análisis cuantitativo. Ese fue el motivo de elegir para el análisis de las demostraciones un artículo sobre redes con una sola capa. Me parece que los mayores esfuerzos deben ir en esta línea.
El segundo punto de vista, que va en la línea del comentario que he hecho antes, habrá que enmarcarlo dentro del TFG en posible trabajo futuro. No está de más que quede claro que conoces la existencia de otros acercamientos y que valoras la posibilidad de abordarlos. Creo que esta línea, combinada con el acercamiento a través de distribuciones, da para un TFM y, si se consiguen resultados, incluso para una tesis. Los artículos que te he mandado son duros y requieren un estudio muy profundo, a efectos de los comentarios que quieras poner en el TFG sobre posibles trabajos futuros lo que más te va a ayudar es leer las introducciones para hacerte una idea somera de lo que abordan.
Si se observa cuidadosamente la abstracción de red neuronal dada en el artículo, se da uno cuenta que tal formulación
\begin{equation} \begin{split} \sum \prod^r(G) = { &f: \R^r \longrightarrow \R | \ & f(x) = \sum_{j = 1} ^q \betaj \cdot \prod{k=1}^{lj} G(A{jk}(x)), \ &x \in \R^r, \betaj \in \R, A{jk}\in A^r, l_j,q \in \N ) } \end{split} \end{equation}
solo representa la clase de las redes neuronales con una capa oculta. Si queremos ampliar nuestro conocimiento sobre las redes neuronales de más de una capa oculta sería necesario ofrecer una generalización que contemple este tipo de clases.
Desconozco si existe tal generalidad, pero en la actualidad cuando se presenta una rrnn nueva, por ejemplo una GAN, una recurrente ... acaban apareciendo artículos que prueban su convergencia, podríamos ver cómo realizan en ellos tal abstracción y si existe algún patrón que podamos tomar.
Si no encontramos nada decente ¿Cómo se podría generalizar? ¿Existen estructuras de espacios vectoriales que tengan "recursividad"? ¿Sería trabajable con series? (esta última me parece una opción razonable, una serie donde ciertos términos dependan de anteriores y llegado a un convenio el valor solo sea la salida.) ¿Tendrían esas series unas propiedades "buenas"?
Como matemática me gustaría contemplar la viabilidad de esta idea #51 . Se añadirá como mínimo una reflexión al respecto en el capítulo de la abstracción y convergencia universal de las redes neuronales (ya se encuentra añadido, ver commits del issue #40).
El criterio de cerrar será uno de los siguientes: (i) No sea viable o no tenia provecho o no se haya formulado correctamente la pregunta o observación.
(ii) Se acepte
El criterio para aceptar será: