2 resultados para self-organizing map
em Repositorio Institucional de la Universidad de Málaga
Resumo:
La autoorganización es un proceso de aprendizaje no supervisado mediante el cual se descubren características, relaciones, patrones significativos o prototipos en los datos. Entre los sistemas neuronales autoorganizados más usados destaca el el mapa autoorganizado o SOM (Self-Organizing Map), el cual ha sido aplicado en multitud de campos distintos. Sin embargo, este modelo autoorganizado tiene varias limitaciones relacionadas con su tamaño, topología, falta de representación de relaciones jerárquicas, etc. La red neuronal llamada gas neuronal creciente o GNG (Growing Neural Gas), es un ejemplo de modelo neuronal autoorganizado con mayor flexibilidad que el SOM ya que está basado en un grafo de unidades de proceso en vez de en una topología fija. A pesar de su éxito, se ha prestado poca atención a su extensión jerárquica, a diferencia de muchos otros modelos que tienen varias versiones jerárquicas. El gas neuronal jerárquico creciente o GHNG (Growing Hierarchical Neural Gas) es una extensión jerárquica del GNG en el que se aprende un árbol de grafos, donde el algoritmo original del GNG se ha mejorado distinguiendo entre una fase de crecimiento y una fase de convergencia. Los resultados experimentales demuestran las capacidades de autoorganización y aprendizaje jerárquico de esta red.
Resumo:
En este documento se expondrá una implementación del problema del viajante de comercio usando una implementación personalizada de un mapa auto-organizado basándose en soluciones anteriores y adaptándolas a la arquitectura CUDA, haciendo a la vez una comparativa de la implementación eficiente en CUDA C/C++ con la implementación de las funciones de GPU incluidas en el Parallel Computing Toolbox de Matlab. La solución que se da reduce en casi un cuarto las iteraciones necesarias para llegar a una solución buena del problema mencionado, además de la mejora inminente del uso de las arquitecturas paralelas. En esta solución se estudia la mejora en tiempo que se consigue con el uso específico de la memoria compartida, siendo esta una de las herramientas más potentes para mejorar el rendimiento. En lo referente a los tiempos de ejecución, se llega a concluir que la mejor solución es el lanzamiento de un kernel de CUDA desde Matlab a través de la funcionalidad incluida en el Parallel Computing Toolbox.