Adding Lab 4.

This commit is contained in:
2026-09-12 14:53:06 -06:00
parent 8ee80a6a40
commit ca14164f12
27 changed files with 1948 additions and 0 deletions
Binary file not shown.
+336
View File
@@ -0,0 +1,336 @@
\documentclass[11pt,letterpaper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{enumitem}
\usepackage{float}
\usepackage[hidelinks]{hyperref}
\usepackage[strings]{underscore}
\graphicspath{{outputs/gan_mode_collapse/}}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.6em}
\setlist[enumerate]{leftmargin=*,itemsep=0.8em}
\newcommand{\answerbox}[1]{%
\par\noindent\textcolor{gray}{\rule{\linewidth}{0.4pt}}%
\vspace{#1}\par\noindent\textcolor{gray}{\rule{\linewidth}{0.4pt}}%
}
\newcommand{\answer}[1]{\par\noindent\textbf{Respuesta:} #1}
\newcommand{\resultfigure}[2]{%
\begin{figure}[H]
\centering
\IfFileExists{outputs/gan_mode_collapse/#1}{%
\includegraphics[width=0.96\linewidth,height=0.55\textheight,keepaspectratio]{#1}%
}{%
\fbox{\parbox[c][4cm][c]{0.88\linewidth}{\centering
Ejecute el notebook para generar \texttt{\detokenize{#1}}.}}%
}
\caption{#2}
\end{figure}
}
\title{Informe de laboratorio\\Recuperación del colapso de modos en una GAN}
\author{Estudiante: Alejandro Lembke Barrientos}
\date{Carné: 12002840\hfill Fecha: 12 de septiembre de 2026}
\begin{document}
\maketitle
\section{Propósito e hipótesis}
Todos los experimentos de recuperación parten del mismo punto de control con
colapso de modos. La variable independiente es el peso de la pérdida de
diversidad $\lambda_{\mathrm{div}}\in\{0,0.1,0.5,1.0\}$. La función objetivo del
generador es
\[
\mathcal{L}_G
=\mathcal{L}_{\mathrm{adv}}
+\lambda_{\mathrm{div}}\mathcal{L}_{\mathrm{div}},
\qquad
\mathcal{L}_{\mathrm{div}}
=-\mathbb{E}\!\left[
\frac{\lVert G(z_1)-G(z_2)\rVert_1}
{\lVert z_1-z_2\rVert_1+\epsilon}
\right].
\]
\begin{enumerate}
\item Antes de observar los resultados, ¿qué valor de
$\lambda_{\mathrm{div}}$ esperaba que funcionara mejor? Explique el beneficio
esperado y un posible riesgo.
\end{enumerate}
\answer{Antes de examinar los resultados, se esperaría que $\lambda_{\mathrm{div}}=0.5$
ofreciera el mejor equilibrio: suficiente para inducir diversidad entre salidas del
generador sin ser tan agresivo como $\lambda_{\mathrm{div}}=1.0$, que podría penalizar
en exceso la similitud entre salidas y sacrificar realismo. El riesgo esperado era que
un $\lambda_{\mathrm{div}}$ demasiado alto empujara al generador a maximizar la
distancia píxel a píxel mediante ruido o distorsiones en lugar de generar dígitos
genuinamente distintos --- riesgo que, como se detalla más adelante, efectivamente se
materializó, y que además se combinó con una falla mucho más profunda del
entrenamiento adversarial de base.}
\section{Diagnóstico del punto de control colapsado}
\resultfigure{collapsed_samples.png}{Muestras del punto de control común con colapso de modos.}
\resultfigure{collapsed_class_distribution.png}{Distribución de dígitos predicha por el clasificador en el punto colapsado.}
\begin{enumerate}[resume]
\item ¿Qué evidencia visual sugiere colapso de modos? Distinga entre clases
ausentes y apariencias repetidas dentro de una clase representada.
\end{enumerate}
\answer{La evidencia más contundente no es solo el colapso de clases sino que las 64
muestras mostradas en \texttt{collapsed\_samples.png} son, en su totalidad, ruido
granulado de alta frecuencia sin ninguna forma de dígito reconocible: no hay trazos,
curvas ni contornos identificables como escritura a mano en ninguna de ellas. Desde la
perspectiva del clasificador, \texttt{collapsed\_class\_distribution.png} muestra que el
100\% de la masa se concentra en un único dígito predicho ("8"), es decir, colapso
total de clases. Pero además la impresión de diagnóstico del propio notebook confirma
\texttt{mass on [1, 7]=0.000}: el generador ni siquiera colapsó hacia los dígitos 1 y 7
que se pretendía inducir. Aquí no se trata de "una clase repetida con variaciones": es
que ninguna clase real está representada, y la aparente uniformidad visual entre
muestras es simplemente ruido de textura similar, no repetición de un dígito legítimo.}
\begin{enumerate}[resume]
\item Utilice el número de modos y la entropía normalizada para describir el
colapso entre clases. ¿Qué información aporta cada medida?
\end{enumerate}
\answer{El número de modos (1/10) confirma que solo una clase supera el umbral de
frecuencia del 1\%: un colapso binario, todo-o-nada, hacia una sola clase predicha. La
entropía normalizada (0.010, en una escala de 0 a 1 donde 0 significa que toda la masa
recae en una sola clase y 1 significa una distribución perfectamente uniforme entre las
10 clases) cuantifica qué tan extrema es esa concentración: un valor tan cercano a 0
indica una distribución prácticamente degenerada, no solo "dominada" por una clase sino
casi puntual en ella. El conteo de modos aporta una lectura binaria y fácil de
interpretar (¿cuántas clases "cuentan"?), mientras que la entropía aporta la forma
completa de la distribución, incluso entre las clases que sí superan el umbral;
juntas confirman un colapso extremo y no solo parcial.}
\begin{enumerate}[resume]
\item ¿Las muestras mostradas permiten identificar confiablemente el colapso
dentro de cada clase? Explique qué evidencia adicional se necesita.
\end{enumerate}
\answer{No de forma confiable. Como ninguna de las 64 muestras colapsadas se asemeja a
un dígito real, no existe una forma legítima de "8" (o de cualquier otro dígito) contra
la cual comparar variedad interna; no se puede evaluar colapso \emph{dentro} de una
clase que en realidad nunca se materializó visualmente. Además, la confianza del
clasificador (0.981) es engañosa: el clasificador se entrenó únicamente con dígitos
reales de MNIST y nunca vio ejemplos de ruido no estructurado, por lo que puede emitir
predicciones muy seguras sobre entradas fuera de distribución sin que eso refleje
ninguna semántica real. La evidencia adicional necesaria es exactamente la que se usó
aquí para diagnosticar el problema real: inspección visual directa de las muestras, y
las curvas de pérdida del discriminador durante el preentrenamiento (que muestran
$D\approx0.000$ desde la época 5 de 16, evidenciando que el discriminador saturó y el
generador dejó de recibir señal de gradiente útil mucho antes de llegar a la fase de
colapso dirigido).}
\section{Resultados de recuperación}
\IfFileExists{outputs/gan_mode_collapse/summary_table.tex}{%
\begin{table}[H]
\centering
\small
\resizebox{\linewidth}{!}{\input{outputs/gan_mode_collapse/summary_table.tex}}
\caption{Resultados cuantitativos generados por el notebook.}
\end{table}
}{%
\begin{center}
\fbox{\parbox[c][2.2cm][c]{0.88\linewidth}{\centering
Ejecute el notebook para generar
\texttt{outputs/gan\_mode\_collapse/summary\_table.tex}.}}
\end{center}
}
\resultfigure{recovery_samples.png}{Muestras del punto colapsado y de todas las configuraciones de recuperación.}
\resultfigure{class_distributions.png}{Distribuciones de clases predichas; la línea discontinua indica el umbral de modo.}
\resultfigure{recovery_metrics.png}{Comparación cuantitativa de las configuraciones de recuperación.}
\begin{enumerate}[resume]
\item ¿Qué configuraciones recuperan el mayor número de clases? ¿Un número
alto de modos implica necesariamente una distribución equilibrada? Utilice
la entropía como evidencia.
\end{enumerate}
\answer{$\lambda_{\mathrm{div}}=0.1$, $0.5$ y $1.0$ recuperan 2/10 modos cada uno
(frente a 1/10 en "Collapsed start" y en $\lambda_{\mathrm{div}}=0$), pero un número
más alto de modos no implica una distribución equilibrada: incluso con 2 modos, la
entropía normalizada máxima observada es apenas 0.058 ($\lambda_{\mathrm{div}}=0.1$),
muy lejos de 1.0 (uniforme). En \texttt{class\_distributions.png} se ve que la clase
dominante ("8") sigue concentrando más del 95\% de la masa en las tres configuraciones
con 2 modos, y la segunda "moda" detectada corresponde al dígito "2" --- ni siquiera a
las clases objetivo (1 o 7) --- y apenas supera el umbral del 1\%. El conteo de modos
por sí solo sugiere una mejora que la entropía matiza fuertemente: la distribución
sigue siendo extremadamente desequilibrada en las cuatro configuraciones.}
\begin{enumerate}[resume]
\item Compare la confianza del clasificador. Identifique cualquier compromiso
aparente entre diversidad y calidad.
\end{enumerate}
\answer{La confianza del clasificador baja de forma monótona al subir
$\lambda_{\mathrm{div}}$: 0.981 (colapsado) $\to$ 0.954 ($\lambda=0$) $\to$ 0.933
($\lambda=0.1$) $\to$ 0.925 ($\lambda=0.5$) $\to$ 0.909 ($\lambda=1.0$). A primera
vista esto parece el compromiso esperado "más diversidad, menos confianza/calidad".
Sin embargo, dado que ninguna configuración produce imágenes reconocibles como
dígitos (Pregunta 2), esta caída no debe interpretarse como una pérdida real de
fidelidad visual respecto a un buen generador: es simplemente la reacción del
clasificador a texturas de ruido ligeramente distintas entre configuraciones, no un
verdadero compromiso diversidad-calidad sobre dígitos válidos.}
\begin{enumerate}[resume]
\item Compare la diversidad de características con la diversidad dentro de
cada clase. ¿Qué configuraciones mejoran ambas medidas y cuáles mejoran
principalmente una?
\end{enumerate}
\answer{Ambas métricas crecen de forma monótona con $\lambda_{\mathrm{div}}$:
diversidad de características 16.117 $\to$ 16.436 $\to$ 16.687 $\to$ 17.057 $\to$
17.288, y diversidad intra-clase 11.458 $\to$ 11.539 $\to$ 11.854 $\to$ 12.603 $\to$
13.533 (de "Collapsed start" a $\lambda_{\mathrm{div}}=1.0$). No hay una configuración
que mejore una medida sin la otra --- $\lambda_{\mathrm{div}}=1.0$ maximiza ambas
simultáneamente --- pero, como se discute en la Pregunta 8, este incremento conjunto
corresponde a generar ruido cada vez más variado, no dígitos genuinamente más
diversos.}
\begin{enumerate}[resume]
\item Examine las muestras. ¿La mayor diversidad representa variaciones
significativas o solamente ruido, distorsiones o dígitos ambiguos? Describa
dos ejemplos concretos.
\end{enumerate}
\answer{Claramente lo segundo. En \texttt{recovery\_samples.png}, la fila "Collapsed
start" y la fila $\lambda_{\mathrm{div}}=0$ muestran una textura de ruido fino de alta
frecuencia, prácticamente indistinguible entre columnas (ejemplo 1: cualquiera de las
primeras columnas de esas dos filas). En las filas $\lambda_{\mathrm{div}}=0.5$ y
$\lambda_{\mathrm{div}}=1.0$ aparecen algunas manchas de menor frecuencia con un lazo
curvo central, un poco más "gruesas" y menos granuladas que el ruido base (ejemplo 2:
varias columnas de la fila $\lambda_{\mathrm{div}}=1.0$ muestran una forma circular
difusa parecida a un garabato), pero ninguna de estas formas constituye un dígito
reconocible; se trata de ruido de baja frecuencia en vez de ruido de alta frecuencia,
no una diversidad semántica real entre dígitos.}
\section{Comportamiento durante el entrenamiento}
\resultfigure{recovery_training.png}{Pérdidas del generador y discriminador durante la recuperación.}
\begin{enumerate}[resume]
\item ¿Por qué las pérdidas totales del generador para distintos valores de
$\lambda_{\mathrm{div}}$ no deben compararse como si midieran exactamente la
misma función objetivo?
\end{enumerate}
\answer{Porque $\mathcal{L}_G=\mathcal{L}_{\mathrm{adv}}+\lambda_{\mathrm{div}}
\mathcal{L}_{\mathrm{div}}$ combina dos términos con escalas y objetivos distintos,
ponderados por un $\lambda_{\mathrm{div}}$ diferente en cada configuración. Por
construcción, un $\lambda_{\mathrm{div}}$ mayor añade una contribución adicional del
término de diversidad, de modo que dos configuraciones con distinto
$\lambda_{\mathrm{div}}$ no están minimizando la misma función. Comparar sus valores
totales sin separar los componentes adversarial y de diversidad --tal como se ve en
\texttt{recovery\_training.png}, donde $\lambda_{\mathrm{div}}=1.0$ muestra
sistemáticamente el objetivo total más alto-- puede sugerir falsamente que ese modelo
"entrena peor", cuando en realidad solo está pagando un término adicional que los
demás no tienen en la misma magnitud.}
\begin{enumerate}[resume]
\item ¿Las curvas de pérdida demuestran por sí solas que se resolvió el
colapso de modos? Justifique utilizando los demás resultados.
\end{enumerate}
\answer{No. Las curvas muestran que la pérdida del discriminador se mantiene
extremadamente baja (del orden de $10^{-5}$) durante toda la recuperación en las
cuatro configuraciones, y que la pérdida del generador tiende a subir con las épocas
--comportamiento consistente con un discriminador que domina por completo y un
generador que no recibe gradiente útil. Esto concuerda con la evidencia visual (las
salidas siguen siendo ruido, Pregunta 8) y con las métricas de cobertura (máximo 2/10
modos, Pregunta 5). Si solo se miraran las curvas de pérdida, sin las imágenes
generadas ni las métricas de cobertura, se podría malinterpretar la caída suave y
monótona de la pérdida del discriminador como "entrenamiento estable", cuando en
realidad refleja que el generador quedó atrapado en un mínimo degenerado desde el
preentrenamiento inicial y nunca se recuperó.}
\section{Decisión y limitaciones}
\begin{enumerate}[resume]
\item Seleccione un valor de $\lambda_{\mathrm{div}}$. Defienda la elección
con al menos dos resultados cuantitativos y dos observaciones visuales.
\end{enumerate}
\answer{Se recomienda $\lambda_{\mathrm{div}}=0.1$ dentro de las cuatro
configuraciones evaluadas, con la salvedad explícita de que ninguna resolvió el
colapso de modos de forma satisfactoria (ver limitaciones más abajo). Evidencia
cuantitativa: (1) $\lambda_{\mathrm{div}}=0.1$ logra la entropía normalizada más alta
de las cuatro configuraciones recuperadas (0.058, frente a 0.021 en $\lambda=0$, 0.053
en $\lambda=0.5$ y 0.047 en $\lambda=1.0$); (2) mantiene la segunda confianza de
clasificador más alta entre las configuraciones con diversidad activa (0.933, solo por
detrás de $\lambda=0$ con 0.954, y por encima de 0.925 y 0.909 de $\lambda=0.5/1.0$).
Evidencia visual: (3) en \texttt{recovery\_samples.png}, la fila $\lambda=0.1$
conserva una textura similar a la del punto de partida colapsado, sin las manchas de
baja frecuencia más pronunciadas visibles en las filas $\lambda=0.5$ y $\lambda=1.0$;
(4) alcanza el mismo conteo de modos (2/10) que $\lambda=0.5$ y $\lambda=1.0$, por lo
que no hay evidencia de que forzar más diversidad aporte cobertura adicional de
clases, solo más textura de ruido.}
\begin{enumerate}[resume]
\item Si la fidelidad de las imágenes fuera más importante que la cobertura
de clases, ¿cambiaría su elección? Justifique.
\end{enumerate}
\answer{Sí, cambiaría a $\lambda_{\mathrm{div}}=0$, que conserva la mayor confianza
del clasificador (0.954) y la menor diversidad de características añadida respecto al
punto de partida. En este experimento ningún valor de $\lambda_{\mathrm{div}}>0$ logra
fidelidad visual aceptable (todas las salidas siguen siendo ruido no estructurado), y
el único "beneficio" medible de subirlo es una cobertura de clases apenas mayor (2 vs.
1 modos) que ni siquiera corresponde a los dígitos objetivo (1 y 7). Si la prioridad
fuera evitar cualquier degradación adicional mientras se corrige el problema real (la
divergencia del entrenamiento adversarial), $\lambda_{\mathrm{div}}=0$ sería el punto
de partida más conservador para reentrenar con otros ajustes.}
\begin{enumerate}[resume]
\item Indique una limitación de utilizar un clasificador de MNIST para medir
la cobertura de la GAN y una limitación del diseño experimental.
\end{enumerate}
\answer{\emph{Clasificador:} se entrenó únicamente con dígitos reales de MNIST y nunca
vio ejemplos fuera de esa distribución; frente a entradas de ruido no estructurado
(como las de este experimento) puede emitir predicciones con alta confianza (hasta
0.981) que no reflejan ninguna semántica real de dígito, por lo que las métricas de
"modos" y "entropía" derivadas de sus predicciones pueden ser completamente engañosas
cuando el generador no produce imágenes válidas, como ocurrió aquí. \emph{Diseño
experimental:} las cuatro configuraciones de recuperación parten todas del mismo punto
de control ya deteriorado (\texttt{mass on [1,7]=0.000}, discriminador saturado desde
la época 5 de 16 del preentrenamiento) y solo se entrenan 5 épocas adicionales; este
diseño no permite distinguir si $\lambda_{\mathrm{div}}$ es insuficiente o si el punto
de partida está tan degradado que ningún valor de $\lambda_{\mathrm{div}}$ en ese rango
podría recuperarlo en tan pocas épocas.}
\begin{enumerate}[resume]
\item Proponga un experimento posterior que fortalezca o cuestione su
conclusión. Indique la variable que modificaría y la evidencia que recopilaría.
\end{enumerate}
\answer{Se propone repetir la fase de preentrenamiento con técnicas de estabilización
(por ejemplo, suavizado de etiquetas para el discriminador, penalización de gradiente,
o una tasa de aprendizaje/capacidad relativa menor para el discriminador) para evitar
que este domine desde la época 5, verificando mediante la pérdida del discriminador
(que debería mantenerse por encima de un piso razonable, no en 0.000) y mediante
inspección visual de \texttt{collapsed\_samples.png} que el punto de control de
partida realmente produzca dígitos reconocibles concentrados en las clases 1 y 7 antes
de aplicar el experimento de recuperación con $\lambda_{\mathrm{div}}$. Si, una vez
logrado un colapso "limpio" y visualmente legible, $\lambda_{\mathrm{div}}=0.1$ sigue
mostrando la mejor entropía sin sacrificar tanta confianza como valores mayores, esto
confirmaría la conclusión actual; si en cambio valores más altos de
$\lambda_{\mathrm{div}}$ logran recuperar clases adicionales reconocibles una vez
resuelto el problema de fondo, la conclusión debería revisarse.}
\section*{Recomendación final}
Valor recomendado: $\lambda_{\mathrm{div}}=0.1$
Conclusión en una oración:
\answer{Dentro de las cuatro configuraciones evaluadas, $\lambda_{\mathrm{div}}=0.1$
ofrece el mejor equilibrio relativo entre cobertura de clases (mayor entropía) y
confianza del clasificador, pero ninguna resolvió el colapso de modos real, ya que el
generador quedó atrapado en un régimen de ruido no estructurado desde el
preentrenamiento inicial (discriminador saturado), por lo que se recomienda corregir
ese problema de entrenamiento antes de repetir la comparación de
$\lambda_{\mathrm{div}}$.}
\end{document}
Binary file not shown.
Binary file not shown.
+192
View File
@@ -0,0 +1,192 @@
\documentclass[11pt,letterpaper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{enumitem}
\usepackage{float}
\usepackage[hidelinks]{hyperref}
\usepackage[strings]{underscore}
\graphicspath{{outputs/gan_mode_collapse/}}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.6em}
\setlist[enumerate]{leftmargin=*,itemsep=0.8em}
\newcommand{\answerbox}[1]{%
\par\noindent\textcolor{gray}{\rule{\linewidth}{0.4pt}}%
\vspace{#1}\par\noindent\textcolor{gray}{\rule{\linewidth}{0.4pt}}%
}
\newcommand{\resultfigure}[2]{%
\begin{figure}[H]
\centering
\IfFileExists{outputs/gan_mode_collapse/#1}{%
\includegraphics[width=0.96\linewidth,height=0.55\textheight,keepaspectratio]{#1}%
}{%
\fbox{\parbox[c][4cm][c]{0.88\linewidth}{\centering
Ejecute el notebook para generar \texttt{\detokenize{#1}}.}}%
}
\caption{#2}
\end{figure}
}
\title{Informe de laboratorio\\Recuperación del colapso de modos en una GAN}
\author{Estudiante: \rule{8cm}{0.4pt}}
\date{Carné: \rule{4cm}{0.4pt}\hfill Fecha: \rule{3cm}{0.4pt}}
\begin{document}
\maketitle
\section{Propósito e hipótesis}
Todos los experimentos de recuperación parten del mismo punto de control con
colapso de modos. La variable independiente es el peso de la pérdida de
diversidad $\lambda_{\mathrm{div}}\in\{0,0.1,0.5,1.0\}$. La función objetivo del
generador es
\[
\mathcal{L}_G
=\mathcal{L}_{\mathrm{adv}}
+\lambda_{\mathrm{div}}\mathcal{L}_{\mathrm{div}},
\qquad
\mathcal{L}_{\mathrm{div}}
=-\mathbb{E}\!\left[
\frac{\lVert G(z_1)-G(z_2)\rVert_1}
{\lVert z_1-z_2\rVert_1+\epsilon}
\right].
\]
\begin{enumerate}
\item Antes de observar los resultados, ¿qué valor de
$\lambda_{\mathrm{div}}$ esperaba que funcionara mejor? Explique el beneficio
esperado y un posible riesgo.
\end{enumerate}
\answerbox{2.2cm}
\section{Diagnóstico del punto de control colapsado}
\resultfigure{collapsed_samples.png}{Muestras del punto de control común con colapso de modos.}
\resultfigure{collapsed_class_distribution.png}{Distribución de dígitos predicha por el clasificador en el punto colapsado.}
\begin{enumerate}[resume]
\item ¿Qué evidencia visual sugiere colapso de modos? Distinga entre clases
ausentes y apariencias repetidas dentro de una clase representada.
\end{enumerate}
\answerbox{2.5cm}
\begin{enumerate}[resume]
\item Utilice el número de modos y la entropía normalizada para describir el
colapso entre clases. ¿Qué información aporta cada medida?
\end{enumerate}
\answerbox{2.5cm}
\begin{enumerate}[resume]
\item ¿Las muestras mostradas permiten identificar confiablemente el colapso
dentro de cada clase? Explique qué evidencia adicional se necesita.
\end{enumerate}
\answerbox{2.2cm}
\section{Resultados de recuperación}
\IfFileExists{outputs/gan_mode_collapse/summary_table.tex}{%
\begin{table}[H]
\centering
\small
\resizebox{\linewidth}{!}{\input{outputs/gan_mode_collapse/summary_table.tex}}
\caption{Resultados cuantitativos generados por el notebook.}
\end{table}
}{%
\begin{center}
\fbox{\parbox[c][2.2cm][c]{0.88\linewidth}{\centering
Ejecute el notebook para generar
\texttt{outputs/gan\_mode\_collapse/summary\_table.tex}.}}
\end{center}
}
\resultfigure{recovery_samples.png}{Muestras del punto colapsado y de todas las configuraciones de recuperación.}
\resultfigure{class_distributions.png}{Distribuciones de clases predichas; la línea discontinua indica el umbral de modo.}
\resultfigure{recovery_metrics.png}{Comparación cuantitativa de las configuraciones de recuperación.}
\begin{enumerate}[resume]
\item ¿Qué configuraciones recuperan el mayor número de clases? ¿Un número
alto de modos implica necesariamente una distribución equilibrada? Utilice
la entropía como evidencia.
\end{enumerate}
\answerbox{2.5cm}
\begin{enumerate}[resume]
\item Compare la confianza del clasificador. Identifique cualquier compromiso
aparente entre diversidad y calidad.
\end{enumerate}
\answerbox{2.5cm}
\begin{enumerate}[resume]
\item Compare la diversidad de características con la diversidad dentro de
cada clase. ¿Qué configuraciones mejoran ambas medidas y cuáles mejoran
principalmente una?
\end{enumerate}
\answerbox{2.8cm}
\begin{enumerate}[resume]
\item Examine las muestras. ¿La mayor diversidad representa variaciones
significativas o solamente ruido, distorsiones o dígitos ambiguos? Describa
dos ejemplos concretos.
\end{enumerate}
\answerbox{3.0cm}
\section{Comportamiento durante el entrenamiento}
\resultfigure{recovery_training.png}{Pérdidas del generador y discriminador durante la recuperación.}
\begin{enumerate}[resume]
\item ¿Por qué las pérdidas totales del generador para distintos valores de
$\lambda_{\mathrm{div}}$ no deben compararse como si midieran exactamente la
misma función objetivo?
\end{enumerate}
\answerbox{2.5cm}
\begin{enumerate}[resume]
\item ¿Las curvas de pérdida demuestran por sí solas que se resolvió el
colapso de modos? Justifique utilizando los demás resultados.
\end{enumerate}
\answerbox{2.5cm}
\section{Decisión y limitaciones}
\begin{enumerate}[resume]
\item Seleccione un valor de $\lambda_{\mathrm{div}}$. Defienda la elección
con al menos dos resultados cuantitativos y dos observaciones visuales.
\end{enumerate}
\answerbox{3.4cm}
\begin{enumerate}[resume]
\item Si la fidelidad de las imágenes fuera más importante que la cobertura
de clases, ¿cambiaría su elección? Justifique.
\end{enumerate}
\answerbox{2.4cm}
\begin{enumerate}[resume]
\item Indique una limitación de utilizar un clasificador de MNIST para medir
la cobertura de la GAN y una limitación del diseño experimental.
\end{enumerate}
\answerbox{2.8cm}
\begin{enumerate}[resume]
\item Proponga un experimento posterior que fortalezca o cuestione su
conclusión. Indique la variable que modificaría y la evidencia que recopilaría.
\end{enumerate}
\answerbox{2.8cm}
\section*{Recomendación final}
Valor recomendado: $\lambda_{\mathrm{div}}=\rule{2cm}{0.4pt}$
Conclusión en una oración:
\answerbox{1.8cm}
\end{document}
+1355
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

@@ -0,0 +1,23 @@
{
"seed": 42,
"latent_dim": 32,
"diversity_weights": [
0.0,
0.1,
0.5,
1.0
],
"batch_size": 256,
"learning_rate": 0.0002,
"classifier_epochs": 10,
"pretrain_epochs": 16,
"collapse_epochs": 8,
"recovery_epochs": 5,
"collapse_digits": [
1,
7
],
"mode_frequency_threshold": 0.01,
"evaluation_samples": 2500,
"device": "cpu"
}
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,6 @@
epoch,generator,adversarial,diversity,discriminator
1,3.902446909713745,3.9426742090861002,-0.4022729824066162,4.2679691879311577e-05
2,4.145200756327311,4.184955227152506,-0.397544775835673,1.7615805166618278e-05
3,4.139080067443848,4.17894912923177,-0.3986907406489054,1.4372343609769207e-05
4,4.3337121688842775,4.373950477091471,-0.40238287711143494,1.139676257832131e-05
5,4.437606961568196,4.4788080523173015,-0.4120109644730886,9.15210223950756e-06
1 epoch generator adversarial diversity discriminator
2 1 3.902446909713745 3.9426742090861002 -0.4022729824066162 4.2679691879311577e-05
3 2 4.145200756327311 4.184955227152506 -0.397544775835673 1.7615805166618278e-05
4 3 4.139080067443848 4.17894912923177 -0.3986907406489054 1.4372343609769207e-05
5 4 4.3337121688842775 4.373950477091471 -0.40238287711143494 1.139676257832131e-05
6 5 4.437606961568196 4.4788080523173015 -0.4120109644730886 9.15210223950756e-06
@@ -0,0 +1,6 @@
epoch,generator,adversarial,diversity,discriminator
1,3.9779018229166665,4.181639106241862,-0.4074745655536652,3.138090945431031e-05
2,4.384994900258382,4.590004500834147,-0.410019177420934,1.108799576322781e-05
3,4.442870346577962,4.649945588429769,-0.41415047810872396,8.148233926234146e-06
4,4.501311336263021,4.709003438568115,-0.41538419888814293,6.7271921303472485e-06
5,4.567720675404867,4.779216910552979,-0.42299244691530863,5.819472274743021e-06
1 epoch generator adversarial diversity discriminator
2 1 3.9779018229166665 4.181639106241862 -0.4074745655536652 3.138090945431031e-05
3 2 4.384994900258382 4.590004500834147 -0.410019177420934 1.108799576322781e-05
4 3 4.442870346577962 4.649945588429769 -0.41415047810872396 8.148233926234146e-06
5 4 4.501311336263021 4.709003438568115 -0.41538419888814293 6.7271921303472485e-06
6 5 4.567720675404867 4.779216910552979 -0.42299244691530863 5.819472274743021e-06
@@ -0,0 +1,6 @@
epoch,generator,adversarial,diversity,discriminator
1,3.792231286239624,3.792231286239624,-0.39822079056104026,5.601679666045432e-05
2,3.7167933046976724,3.7167933046976724,-0.38705200486183167,2.9127169354857565e-05
3,3.774656072998047,3.774656072998047,-0.3904325690587362,2.4593643052503468e-05
4,4.0028360649108885,4.0028360649108885,-0.39604260533650715,1.812106814662305e-05
5,4.161207312520345,4.161207312520345,-0.404033615175883,1.4115302633338919e-05
1 epoch generator adversarial diversity discriminator
2 1 3.792231286239624 3.792231286239624 -0.39822079056104026 5.601679666045432e-05
3 2 3.7167933046976724 3.7167933046976724 -0.38705200486183167 2.9127169354857565e-05
4 3 3.774656072998047 3.774656072998047 -0.3904325690587362 2.4593643052503468e-05
5 4 4.0028360649108885 4.0028360649108885 -0.39604260533650715 1.812106814662305e-05
6 5 4.161207312520345 4.161207312520345 -0.404033615175883 1.4115302633338919e-05
@@ -0,0 +1,6 @@
epoch,generator,adversarial,diversity,discriminator
1,4.073459280141194,4.48742034072876,-0.4139610550562541,2.2277594858314842e-05
2,4.556306339263916,4.980417476145426,-0.4241111308892568,6.92474058305379e-06
3,4.663601414998372,5.0912053082784015,-0.42760391337076825,4.824752171892518e-06
4,4.601830291493734,5.031373355865479,-0.42954305254618325,4.1199866602255495e-06
5,4.665722238413493,5.104604846191406,-0.4388826152801514,3.713102867671599e-06
1 epoch generator adversarial diversity discriminator
2 1 4.073459280141194 4.48742034072876 -0.4139610550562541 2.2277594858314842e-05
3 2 4.556306339263916 4.980417476145426 -0.4241111308892568 6.92474058305379e-06
4 3 4.663601414998372 5.0912053082784015 -0.42760391337076825 4.824752171892518e-06
5 4 4.601830291493734 5.031373355865479 -0.42954305254618325 4.1199866602255495e-06
6 5 4.665722238413493 5.104604846191406 -0.4388826152801514 3.713102867671599e-06
Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

@@ -0,0 +1,6 @@
Configuration,Lambda diversity,mode_count,normalized_entropy,classifier_confidence,feature_diversity,within_class_diversity,Recovery seconds
Collapsed start,,1,0.010357953608036041,0.9805793166160583,16.11749267578125,11.458220958709717,
lambda=0,0.0,1,0.021068770438432693,0.9541524648666382,16.436365127563477,11.539350509643555,775.4761435985565
lambda=0.1,0.1,2,0.05791272968053818,0.9331758618354797,16.686689376831055,11.85418701171875,772.15576171875
lambda=0.5,0.5,2,0.052982352674007416,0.9251078963279724,17.057252883911133,12.603004455566406,753.808944940567
lambda=1,1.0,2,0.04722726345062256,0.9086208939552307,17.2882137298584,13.533077716827393,775.8287467956543
1 Configuration Lambda diversity mode_count normalized_entropy classifier_confidence feature_diversity within_class_diversity Recovery seconds
2 Collapsed start 1 0.010357953608036041 0.9805793166160583 16.11749267578125 11.458220958709717
3 lambda=0 0.0 1 0.021068770438432693 0.9541524648666382 16.436365127563477 11.539350509643555 775.4761435985565
4 lambda=0.1 0.1 2 0.05791272968053818 0.9331758618354797 16.686689376831055 11.85418701171875 772.15576171875
5 lambda=0.5 0.5 2 0.052982352674007416 0.9251078963279724 17.057252883911133 12.603004455566406 753.808944940567
6 lambda=1 1.0 2 0.04722726345062256 0.9086208939552307 17.2882137298584 13.533077716827393 775.8287467956543
@@ -0,0 +1,11 @@
\begin{tabular}{lrrrrrr}
\toprule
Configuration & $\lambda_{div}$ & Modes & Entropy & Confidence & Feature diversity & Within-class diversity \\
\midrule
Collapsed start & NaN & 1 & 0.010 & 0.981 & 16.117 & 11.458 \\
lambda=0 & 0.000 & 1 & 0.021 & 0.954 & 16.436 & 11.539 \\
lambda=0.1 & 0.100 & 2 & 0.058 & 0.933 & 16.687 & 11.854 \\
lambda=0.5 & 0.500 & 2 & 0.053 & 0.925 & 17.057 & 12.603 \\
lambda=1 & 1.000 & 2 & 0.047 & 0.909 & 17.288 & 13.533 \\
\bottomrule
\end{tabular}
+1
View File
@@ -12,3 +12,4 @@ Repositorio con los laboratorios de la asignatura.
| 1 | MLPs, verosimilitud, entrenamiento y evaluación | [Lab 1 - MLP](Lab1/lab1_mlp.ipynb) | — |
| 2 | Clasificación tabular con MLP (desbalance de clases) | [Lab 2 - Clasificación](Lab2/notebooks/laboratorio_estudiante.ipynb) | [Reporte PDF](Lab2/reporte_laboratorio.pdf) |
| 3 | Selección de la dimensión latente de un autoencoder variacional (VAE) | [Lab 3 - VAE](Lab3/lab_003.ipynb) | [Reporte PDF](Lab3/Informe_Laboratorio_VAE.pdf) |
| 4 | Recuperación del colapso de modos en una GAN | [Lab 4 - GAN](Lab4/lab_new.ipynb) | [Reporte PDF](Lab4/Informe_Laboratorio_GAN.pdf) |