Fixing Lab4

This commit is contained in:
2026-09-13 20:04:33 -06:00
parent ca14164f12
commit fef5d2123e
23 changed files with 382 additions and 342 deletions
+186 -157
View File
@@ -68,15 +68,14 @@ generador es
$\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.}
\answer{Antes de examinar los resultados se esperaría que
$\lambda_{\mathrm{div}}=0.5$ ofreciera un buen equilibrio: suficiente para
incentivar diversidad entre las muestras del generador sin ser tan agresivo
como $\lambda_{\mathrm{div}}=1.0$, que podría distorsionar excesivamente las
imágenes en su intento de maximizar la distancia entre pares generados. El
riesgo esperado era que un $\lambda_{\mathrm{div}}$ demasiado alto sacrificara
realismo visual a cambio de diversidad artificial (por ejemplo, añadiendo
ruido o trazos distorsionados en lugar de dígitos genuinamente distintos).}
\section{Diagnóstico del punto de control colapsado}
@@ -87,50 +86,47 @@ entrenamiento adversarial de base.}
\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.}
\answer{\texttt{collapsed\_samples.png} muestra 64 imágenes, todas dígitos "1"
o "7" perfectamente legibles y con variedad de trazo (rectos, inclinados, con
o sin serifa horizontal); no aparece ningún otro dígito.
\texttt{collapsed\_class\_distribution.png} confirma cuantitativamente que
solo esas dos clases superan el umbral del 1\% (\textasciitilde49\% y
\textasciitilde48.5\% de la masa respectivamente), con el resto prácticamente
en cero. La evidencia distingue ambos fenómenos con claridad: hay 8 clases
completamente ausentes (0, 2, 3, 4, 5, 6, 8, 9 por debajo del umbral),
mientras que dentro de las dos clases representadas sí se observa variedad de
apariencia (distintos estilos de trazo para el "1" y para el "7"); es decir,
el colapso es entre clases, no una repetición monótona de una única imagen.}
\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.}
\answer{El número de modos (2/10) confirma que exactamente dos clases superan
el umbral del 1\%, coincidiendo con los dígitos objetivo del colapso (1 y 7).
La entropía normalizada (0.367) cuantifica además qué tan pareja es la masa
entre esas clases activas: un valor tan por debajo de 1.0 refleja que, aunque
hay 2 modos, la distribución global sigue muy alejada de la uniformidad sobre
las 10 clases, ya que la masa está casi enteramente concentrada en ese
subconjunto (aproximadamente 50/50 entre 1 y 7), dejando 8 clases sin
representación. El conteo de modos aporta una lectura discreta de cobertura;
la entropía aporta la forma continua de toda la distribución, incluyendo cuán
desbalanceada está incluso entre las clases activas.}
\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).}
\answer{Sí, de forma razonablemente confiable: las imágenes en
\texttt{collapsed\_samples.png} son dígitos "1" y "7" claramente legibles, con
variación visible de estilo (inclinación, presencia de barra horizontal en el
"7", grosor del trazo), por lo que se puede juzgar directamente si hay
diversidad dentro de cada clase representada. Como evidencia adicional, la
diversidad intra-clase cuantitativa del punto colapsado (25.954) es
considerablemente menor que la alcanzada tras la recuperación
(\textasciitilde37--38), lo que corrobora numéricamente que la variedad
dentro de esas dos clases también era más limitada en el punto de partida, y
no es solo una impresión visual.}
\section{Resultados de recuperación}
@@ -158,60 +154,73 @@ colapso dirigido).}
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.}
\answer{Las cuatro configuraciones de recuperación
($\lambda_{\mathrm{div}}=0$, $0.1$, $0.5$ y $1.0$) recuperan la totalidad de
las 10 clases (10/10 modos), frente a 2/10 en el punto de partida. Un número
alto de modos no garantiza automáticamente una distribución perfectamente
equilibrada, pero en este caso la entropía normalizada confirma que sí se
logró una cobertura casi uniforme: entre 0.984 y 0.988 en las cuatro
configuraciones, muy cerca del máximo teórico de 1.0, frente a 0.367 en el
punto colapsado. \texttt{class\_distributions.png} corrobora visualmente que
las cuatro configuraciones producen barras de altura similar en las 10
clases (con una ligera sobre-representación del dígito "9" y
sub-representación del "4" en las cuatro), consistente con una recuperación
genuina y no solo nominal.}
\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.}
\answer{La confianza del clasificador baja de 0.971 (colapsado) a un rango
estrecho de 0.909--0.912 en las cuatro configuraciones recuperadas, sin una
tendencia clara respecto a $\lambda_{\mathrm{div}}$ ($\lambda=0.1$ tiene la
confianza más baja, 0.909, mientras que $\lambda=0$ y $\lambda=1.0$ empatan en
la más alta, 0.912). Esta pequeña caída es esperable y saludable: el punto
colapsado concentraba casi toda la probabilidad en solo 2 clases con trazos
muy estereotipados (más fáciles de clasificar con alta confianza), mientras
que al cubrir las 10 clases el clasificador enfrenta dígitos naturalmente más
ambiguos entre sí (por ejemplo 4 frente a 9, o 3 frente a 8). No se observa
aquí un compromiso fuerte entre diversidad y calidad: las cuatro
configuraciones logran cobertura completa sin una penalización de confianza
mayor al \textasciitilde6\% respecto al punto colapsado.}
\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.}
\answer{Ambas métricas suben de forma marcada respecto al punto colapsado
(diversidad de características: 32.059 $\to$ \textasciitilde50.3--51.0;
diversidad intra-clase: 25.954 $\to$ \textasciitilde37.3--38.1), pero entre
las cuatro configuraciones de recuperación las diferencias son mínimas y no
siguen un patrón monótono claro: $\lambda=0.5$ tiene la diversidad de
características más baja (50.256) y la intra-clase más baja (37.341) de las
cuatro, mientras que $\lambda=1.0$ tiene ambas más altas (50.829 y 38.141
respectivamente). No hay una configuración que mejore claramente una medida
sacrificando la otra; las cuatro se comportan de forma muy similar, lo que
sugiere que, una vez corregido el entrenamiento adversarial, la recuperación
de diversidad en este escenario depende más de reanudar el entrenamiento
sobre datos completos que del peso específico de la pérdida de diversidad
explícita.}
\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.}
\answer{En esta corrida la mayor diversidad numérica sí corresponde a
variaciones significativas y no a ruido: en \texttt{recovery\_samples.png},
las cuatro filas de recuperación muestran dígitos completos y reconocibles de
múltiples clases (ejemplo 1: la tercera columna muestra un "9" con trazo
cursivo bien formado en las cuatro configuraciones; ejemplo 2: la octava
columna muestra una forma con un trazo diagonal marcado parecido a un rayo,
consistente entre las cuatro configuraciones). Cabe notar que, como la
evaluación usa la misma semilla de muestreo para las cuatro configuraciones,
las imágenes de una misma columna son decodificaciones del mismo vector
latente por cada generador, y por eso lucen casi idénticas entre filas de
recuperación --lo cual es coherente con que las métricas cuantitativas
también sean casi idénticas entre configuraciones-- y ninguna muestra manchas
de ruido ni dígitos ambiguos.}
\section{Comportamiento durante el entrenamiento}
@@ -223,32 +232,33 @@ no una diversidad semántica real entre dígitos.}
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.}
\mathcal{L}_{\mathrm{div}}$ combina dos términos con escalas y pesos
distintos según la configuración. En \texttt{recovery\_training.png} se
observa que el objetivo total del generador es sistemáticamente más bajo
cuanto mayor es $\lambda_{\mathrm{div}}$ (por ejemplo, $\lambda=1.0$ termina en
\textasciitilde1.07 frente a \textasciitilde1.35 en $\lambda=0$), pero esto no
significa que ese modelo entrene "mejor": $\mathcal{L}_{\mathrm{div}}$ está
definida como una cantidad negativa (más negativa cuanto más diversas son las
salidas), así que un $\lambda_{\mathrm{div}}$ mayor simplemente resta más de
ese término negativo al total, sin que ello implique una pérdida adversarial
menor. Comparar el total directamente confundiría el efecto de la
ponderación con una diferencia real de desempeño adversarial.}
\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ó.}
\answer{No por sí solas. \texttt{recovery\_training.png} muestra que la
pérdida del discriminador sube de forma saludable desde
\textasciitilde0.57--0.61 hasta \textasciitilde0.90--0.98 a lo largo de las 5
épocas de recuperación en las cuatro configuraciones, sin colapsar a 0 ni
dispararse --un patrón consistente con un equilibrio adversarial funcional.
Sin embargo, esta curva por sí sola solo indica que el entrenamiento es
estable; la confirmación de que el colapso de modos realmente se resolvió
requiere las métricas de cobertura (10/10 modos, entropía
\textasciitilde0.98--0.99, Pregunta 5) y la inspección visual de
\texttt{recovery\_samples.png}, que muestran dígitos reconocibles de las 10
clases.}
\section{Decisión y limitaciones}
@@ -256,81 +266,100 @@ preentrenamiento inicial y nunca se recuperó.}
\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.}
\answer{Se recomienda $\lambda_{\mathrm{div}}=1.0$. Evidencia cuantitativa:
(1) alcanza la entropía normalizada más alta de las cuatro configuraciones
(0.988, frente a 0.984 en $\lambda=0$); (2) alcanza la diversidad intra-clase
más alta (38.141) y empata en la confianza de clasificador más alta (0.912)
junto con $\lambda=0$, sin ningún costo aparente respecto a las demás.
Evidencia visual: (3) en \texttt{recovery\_samples.png}, la fila
$\lambda=1.0$ muestra las mismas 16 imágenes nítidas y reconocibles que el
resto de configuraciones, sin manchas de ruido ni distorsiones adicionales
pese a tener el peso de diversidad más alto evaluado; (4) en
\texttt{class\_distributions.png}, su distribución de clases es tan pareja
como la de las demás configuraciones (mismo patrón de ligera
sobre-representación de "9" y sub-representación de "4"). Dado que
$\lambda_{\mathrm{div}}=1.0$ no muestra ninguna penalización visible de
calidad frente a $\lambda_{\mathrm{div}}=0$, y sí una ligera ventaja
consistente en las métricas de diversidad, es la opción mejor respaldada
entre las evaluadas --con la salvedad de que las diferencias entre las
cuatro configuraciones son pequeñas y podrían no ser robustas frente a otra
semilla aleatoria, ya que cada una se evaluó una sola vez (Pregunta 13).}
\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.}
\answer{Sí cambiaría, aunque por poco: se elegiría $\lambda_{\mathrm{div}}=0$,
que logra la confianza de clasificador empatada más alta (0.912, igual que
$\lambda=1.0$) sin necesidad de introducir el término adicional de diversidad
ni su costo de ajuste. Como en este experimento fidelidad y diversidad no
muestran un compromiso fuerte entre sí (las cuatro configuraciones logran
calidad visual y cobertura muy similares), priorizar fidelidad favorecería la
configuración más simple ($\lambda_{\mathrm{div}}=0$) por parsimonia, ya que
no hay evidencia de que agregar la pérdida de diversidad aporte una mejora
de fidelidad adicional en este caso.}
\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.}
\answer{\emph{Clasificador:} se entrenó únicamente con dígitos reales de
MNIST, por lo que su confianza y sus predicciones de clase pueden no ser
completamente fiables frente a imágenes fuera de esa distribución; incluso en
esta corrida corregida, la confianza no debe interpretarse como una medida
absoluta de realismo, solo como un proxy relativo entre configuraciones.
\emph{Diseño experimental:} cada configuración de $\lambda_{\mathrm{div}}$ se
evaluó con una sola semilla y un solo conjunto de 5 épocas de recuperación,
por lo que las pequeñas diferencias entre configuraciones (por ejemplo, 0.984
frente a 0.988 de entropía) podrían no ser estadísticamente robustas frente a
la variación aleatoria de la inicialización o el orden de los datos.
\emph{Nota de depuración:} durante una primera ejecución de este notebook se
detectó que el punto de control "colapsado" y las cuatro recuperaciones
producían únicamente ruido no estructurado, sin relación aparente con
dígitos reales, independientemente de $\lambda_{\mathrm{div}}$. La causa era
un error en la celda \texttt{train\_gan\_epoch}: durante el paso de
actualización del generador, el discriminador se ponía en
\texttt{discriminator.eval()} antes de calcular la pérdida adversarial. Como
el discriminador incluye una capa \texttt{nn.BatchNorm2d}, el modo
\texttt{eval()} lo hace usar estadísticas acumuladas (running mean/var) en
lugar de las del lote actual, desincronizando el discriminador que evalúa al
generador del discriminador que realmente se entrena, e impidiendo que el
generador recibiera una señal de gradiente útil (el discriminador saturaba en
la época 5 de 16 del preentrenamiento). El arreglo --cambiar esa línea a
\texttt{discriminator.train()}-- resolvió el problema por completo: el punto
de control colapsa correctamente hacia los dígitos 1 y 7 (97.2\% de la masa,
Pregunta 2) y las cuatro recuperaciones alcanzan cobertura completa de las 10
clases. Todos los resultados de este informe corresponden a la corrida ya
corregida.}
\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.}
\answer{Se propone repetir las cuatro configuraciones de recuperación con al
menos 3 semillas aleatorias distintas cada una, midiendo la media y
desviación estándar de entropía, confianza y diversidad intra-clase por
configuración. Dado que en esta corrida las diferencias entre
$\lambda_{\mathrm{div}}=0$, $0.1$, $0.5$ y $1.0$ son pequeñas (por ejemplo,
0.984 frente a 0.988 de entropía), este experimento permitiría confirmar si
$\lambda_{\mathrm{div}}=1.0$ realmente aventaja de forma consistente a
$\lambda_{\mathrm{div}}=0$, o si la diferencia observada aquí es ruido de una
sola corrida; si las diferencias desaparecen bajo múltiples semillas, la
recomendación debería simplificarse a $\lambda_{\mathrm{div}}=0$ por
parsimonia.}
\section*{Recomendación final}
Valor recomendado: $\lambda_{\mathrm{div}}=0.1$
Valor recomendado: $\lambda_{\mathrm{div}}=1.0$
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}}$.}
\answer{Tras corregir un error de \texttt{BatchNorm}/modo \texttt{eval()} en
el paso del generador, las cuatro configuraciones de recuperación restauran
por completo las 10 clases de dígitos (entropía \textasciitilde0.98--0.99
frente a 0.367 en el punto colapsado), y $\lambda_{\mathrm{div}}=1.0$ se
recomienda por lograr la mayor entropía y diversidad intra-clase sin
sacrificar confianza de clasificador frente a las demás configuraciones
evaluadas.}
\end{document}