{"id":82,"date":"2025-07-29T13:19:51","date_gmt":"2025-07-29T13:19:51","guid":{"rendered":"https:\/\/kapaitech.com\/blog\/?p=82"},"modified":"2025-07-29T13:19:52","modified_gmt":"2025-07-29T13:19:52","slug":"visualizacion-de-representaciones-de-aprendizaje-con-pca-y-umap","status":"publish","type":"post","link":"https:\/\/kapaitech.com\/blog\/es\/visualizacion-de-representaciones-de-aprendizaje-con-pca-y-umap\/","title":{"rendered":"Visualizaci\u00f3n de Representaciones de Aprendizaje con PCA y UMAP"},"content":{"rendered":"\n<p><code><\/code>Los modelos de aprendizaje profundo, como las redes neuronales, construyen representaciones abstractas de los datos durante la fase de entrenamiento. En esta etapa, el objetivo es optimizar una funci\u00f3n de costo, ya sea minimiz\u00e1ndola o maximiz\u00e1ndola, mediante algoritmos como los de la familia del gradiente descendente.<\/p>\n\n\n\n<p>En las redes neuronales, este proceso se aplica a cada una de las capas del modelo. As\u00ed, cada capa aprende una representaci\u00f3n espec\u00edfica de los datos. Dado que las capas est\u00e1n conectadas entre s\u00ed, se forma una estructura jer\u00e1rquica: las capas m\u00e1s profundas \u2014aquellas m\u00e1s cercanas a la salida\u2014 capturan patrones complejos generados por las capas anteriores.<\/p>\n\n\n\n<p>Un aspecto particularmente interesante es entender c\u00f3mo se estructura la informaci\u00f3n en estas capas profundas. Esta es un \u00e1rea de investigaci\u00f3n activa, ya que las redes neuronales profundas suelen tratarse como cajas negras (<em>black boxes<\/em>).<\/p>\n\n\n\n<p>Durante el desarrollo de nuestra tesis de maestr\u00eda en Ciencia de Datos, nos enfrentamos a este desaf\u00edo. Dise\u00f1amos un modelo de <em>deep learning<\/em> que combinaba informaci\u00f3n de im\u00e1genes y series de tiempo, utilizando una red convolucional y una red convolucional temporal. Este modelo se aplic\u00f3 a un problema de clasificaci\u00f3n binaria.<\/p>\n\n\n\n<p>Con el objetivo de analizar c\u00f3mo influ\u00eda la incorporaci\u00f3n progresiva de informaci\u00f3n en la toma de decisiones del modelo, seleccionamos una variable de inter\u00e9s denominada \\(\\text{Seq}\\), distribuida en cinco columnas: \\(\\text{Seq}_1, \\text{Seq}_2, \\ldots, \\text{Seq}_5\\).<\/p>\n\n\n\n<p>Seleccionamos una muestra representativa de ambas clases y la ingresamos al modelo, registrando las activaciones generadas en la pen\u00faltima capa para cada iteraci\u00f3n, a medida que se agregaban progresivamente las variables \\(\\text{Seq}_i\\).<\/p>\n\n\n\n<p>Esto nos permiti\u00f3 construir una matriz de activaciones:<\/p>\n\n\n\n<p>$$<br>M \\in \\mathbb{R}^{m \\times n}<br>$$<\/p>\n\n\n\n<p>donde \\(m\\) representa el n\u00famero de muestras seleccionadas y \\(n\\) el n\u00famero de neuronas en la pen\u00faltima capa.<\/p>\n\n\n\n<p>Dado que \\(M\\) es de alta dimensionalidad, fue necesario aplicar t\u00e9cnicas de reducci\u00f3n de dimensiones para visualizar las representaciones aprendidas. El objetivo era proyectar \\(M\\) en un nuevo espacio de dimensi\u00f3n \\(k\\), tal que \\(k &lt; n \\):<\/p>\n\n\n\n<p>$$<br>M&#8217; = f(M), \\quad M&#8217; \\in \\mathbb{R}^{m \\times k}<br>$$<\/p>\n\n\n\n<p>Para esta tarea, utilizamos dos algoritmos ampliamente conocidos:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">An\u00e1lisis de Componentes Principales (PCA)<\/h2>\n\n\n\n<p>PCA transforma los datos mediante combinaciones lineales ortogonales que maximizan la varianza. Matem\u00e1ticamente, busca una matriz de proyecci\u00f3n \\(W\\) tal que:<\/p>\n\n\n\n<p>$$<br>M&#8217; = M W<br>$$<\/p>\n\n\n\n<p>donde las columnas de \\(W\\) son los vectores propios de la matriz de covarianza de \\(M\\), asociados a los mayores valores propios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uniform Manifold Approximation and Projection (UMAP)<\/h2>\n\n\n\n<p>UMAP es una t\u00e9cnica no lineal que preserva tanto la estructura local como global de los datos. A diferencia de PCA, UMAP construye un grafo de proximidad en el espacio de alta dimensi\u00f3n y lo proyecta en un espacio de menor dimensi\u00f3n, optimizando la preservaci\u00f3n de la topolog\u00eda. Aunque su formulaci\u00f3n matem\u00e1tica es m\u00e1s compleja, se basa en minimizar la divergencia entre distribuciones de probabilidad en ambos espacios<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Visualizaci\u00f3n<\/h2>\n\n\n\n<p>Para la visualizaci\u00f3n, decidimos considerar un espacio reducido de dimensi\u00f3n \\(k = 2\\). Iteramos de manera incremental por las variables \\(\\text{Seq}_1\\) hasta \\(\\text{Seq}_5\\), capturando las activaciones correspondientes en cada paso.<\/p>\n\n\n\n<p>Los resultados obtenidos al aplicar <strong>PCA<\/strong> se muestran a continuaci\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-zoooom\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"174\" src=\"https:\/\/kapaitech.com\/blog\/wp-content\/uploads\/2025\/07\/image2_pca-1024x174.jpg\" alt=\"\" class=\"wp-image-91\" srcset=\"https:\/\/kapaitech.com\/blog\/wp-content\/uploads\/2025\/07\/image2_pca-1024x174.jpg 1024w, https:\/\/kapaitech.com\/blog\/wp-content\/uploads\/2025\/07\/image2_pca-300x51.jpg 300w, https:\/\/kapaitech.com\/blog\/wp-content\/uploads\/2025\/07\/image2_pca-768x130.jpg 768w, https:\/\/kapaitech.com\/blog\/wp-content\/uploads\/2025\/07\/image2_pca-1536x260.jpg 1536w, https:\/\/kapaitech.com\/blog\/wp-content\/uploads\/2025\/07\/image2_pca-2048x347.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Como se puede observar, a medida que se incrementa el n\u00famero de variables, la separaci\u00f3n entre clases se vuelve m\u00e1s evidente. Adem\u00e1s, se aprecia que la estructura del espacio de clases se transforma progresivamente, siendo con \\(\\text{Seq}_5\\) m\u00e1s diferenciable y clara la separaci\u00f3n entre las clases.<\/p>\n\n\n\n<p>Este comportamiento tambi\u00e9n se manifiesta al aplicar <strong>UMAP<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-zoooom\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"227\" src=\"https:\/\/kapaitech.com\/blog\/wp-content\/uploads\/2025\/07\/image1_umap-1024x227.jpg\" alt=\"\" class=\"wp-image-90\"\/><\/figure>\n\n\n\n<p>En estas visualizaciones, se aprecia c\u00f3mo las clases se separan con mayor claridad conforme se incorpora m\u00e1s informaci\u00f3n de la variable \\(\\text{Seq}\\). Al comparar ambas t\u00e9cnicas, notamos que el modelo mejora su capacidad de diferenciaci\u00f3n entre clases a medida que se enriquece la entrada de datos.<\/p>\n\n\n\n<p>Contar con dos enfoques de visualizaci\u00f3n nos permite evaluar la relevancia de la variable \\(\\text{Seq}\\) desde perspectivas complementarias: PCA desde una visi\u00f3n lineal y global, y UMAP desde una perspectiva no lineal que preserva la topolog\u00eda local.<\/p>\n\n\n\n<p>Finalmente, para observar de forma m\u00e1s din\u00e1mica c\u00f3mo se transforma el espacio de representaciones, decidimos crear una animaci\u00f3n utilizando las visualizaciones obtenidas con UMAP. El resultado se muestra a continuaci\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Class space transformation\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/w4Fd-KlYMXc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusiones<\/h2>\n\n\n\n<p>Este estudio nos permiti\u00f3 explorar c\u00f3mo las representaciones internas de un modelo de <em>deep learning<\/em> evolucionan al incorporar progresivamente informaci\u00f3n relevante. A trav\u00e9s de t\u00e9cnicas de reducci\u00f3n de dimensiones como PCA y UMAP, logramos visualizar c\u00f3mo se estructura el espacio de clases en la pen\u00faltima capa del modelo.<\/p>\n\n\n\n<p>Los resultados muestran que:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La incorporaci\u00f3n incremental de variables mejora la diferenciaci\u00f3n entre clases.<\/li>\n\n\n\n<li>PCA y UMAP ofrecen perspectivas complementarias para analizar la estructura de los datos.<\/li>\n\n\n\n<li>La variable \\(\\text{Seq}\\) tiene un impacto significativo en la capacidad del modelo para discriminar entre clases.<\/li>\n<\/ul>\n\n\n\n<p>Estas visualizaciones no solo enriquecen el an\u00e1lisis t\u00e9cnico, sino que tambi\u00e9n aportan interpretabilidad a modelos que tradicionalmente se consideran cajas negras. En futuras investigaciones, este enfoque podr\u00eda extenderse a otros tipos de variables y arquitecturas, contribuyendo a una comprensi\u00f3n m\u00e1s profunda del aprendizaje representacional en redes neuronales.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los modelos de aprendizaje profundo, como las redes neuronales, construyen representaciones abstractas de los datos durante la fase de entrenamiento. En esta etapa, el objetivo es optimizar una funci\u00f3n de costo, ya sea minimiz\u00e1ndola o maximiz\u00e1ndola, mediante algoritmos como los de la familia del gradiente descendente. En las redes neuronales, este proceso se aplica a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":109,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[43,47],"tags":[28,32],"class_list":["post-82","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deep-learning-2","category-visualization-es","tag-data-science-es","tag-deep-learning-es"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/posts\/82","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/comments?post=82"}],"version-history":[{"count":35,"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/posts\/82\/revisions"}],"predecessor-version":[{"id":145,"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/posts\/82\/revisions\/145"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/media\/109"}],"wp:attachment":[{"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/media?parent=82"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/categories?post=82"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kapaitech.com\/blog\/wp-json\/wp\/v2\/tags?post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}