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
Binary file not shown.
+186 -157
View File
@@ -68,15 +68,14 @@ generador es
$\lambda_{\mathrm{div}}$ esperaba que funcionara mejor? Explique el beneficio $\lambda_{\mathrm{div}}$ esperaba que funcionara mejor? Explique el beneficio
esperado y un posible riesgo. esperado y un posible riesgo.
\end{enumerate} \end{enumerate}
\answer{Antes de examinar los resultados, se esperaría que $\lambda_{\mathrm{div}}=0.5$ \answer{Antes de examinar los resultados se esperaría que
ofreciera el mejor equilibrio: suficiente para inducir diversidad entre salidas del $\lambda_{\mathrm{div}}=0.5$ ofreciera un buen equilibrio: suficiente para
generador sin ser tan agresivo como $\lambda_{\mathrm{div}}=1.0$, que podría penalizar incentivar diversidad entre las muestras del generador sin ser tan agresivo
en exceso la similitud entre salidas y sacrificar realismo. El riesgo esperado era que como $\lambda_{\mathrm{div}}=1.0$, que podría distorsionar excesivamente las
un $\lambda_{\mathrm{div}}$ demasiado alto empujara al generador a maximizar la imágenes en su intento de maximizar la distancia entre pares generados. El
distancia píxel a píxel mediante ruido o distorsiones en lugar de generar dígitos riesgo esperado era que un $\lambda_{\mathrm{div}}$ demasiado alto sacrificara
genuinamente distintos --- riesgo que, como se detalla más adelante, efectivamente se realismo visual a cambio de diversidad artificial (por ejemplo, añadiendo
materializó, y que además se combinó con una falla mucho más profunda del ruido o trazos distorsionados en lugar de dígitos genuinamente distintos).}
entrenamiento adversarial de base.}
\section{Diagnóstico del punto de control colapsado} \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 \item ¿Qué evidencia visual sugiere colapso de modos? Distinga entre clases
ausentes y apariencias repetidas dentro de una clase representada. ausentes y apariencias repetidas dentro de una clase representada.
\end{enumerate} \end{enumerate}
\answer{La evidencia más contundente no es solo el colapso de clases sino que las 64 \answer{\texttt{collapsed\_samples.png} muestra 64 imágenes, todas dígitos "1"
muestras mostradas en \texttt{collapsed\_samples.png} son, en su totalidad, ruido o "7" perfectamente legibles y con variedad de trazo (rectos, inclinados, con
granulado de alta frecuencia sin ninguna forma de dígito reconocible: no hay trazos, o sin serifa horizontal); no aparece ningún otro dígito.
curvas ni contornos identificables como escritura a mano en ninguna de ellas. Desde la \texttt{collapsed\_class\_distribution.png} confirma cuantitativamente que
perspectiva del clasificador, \texttt{collapsed\_class\_distribution.png} muestra que el solo esas dos clases superan el umbral del 1\% (\textasciitilde49\% y
100\% de la masa se concentra en un único dígito predicho ("8"), es decir, colapso \textasciitilde48.5\% de la masa respectivamente), con el resto prácticamente
total de clases. Pero además la impresión de diagnóstico del propio notebook confirma en cero. La evidencia distingue ambos fenómenos con claridad: hay 8 clases
\texttt{mass on [1, 7]=0.000}: el generador ni siquiera colapsó hacia los dígitos 1 y 7 completamente ausentes (0, 2, 3, 4, 5, 6, 8, 9 por debajo del umbral),
que se pretendía inducir. Aquí no se trata de "una clase repetida con variaciones": es mientras que dentro de las dos clases representadas sí se observa variedad de
que ninguna clase real está representada, y la aparente uniformidad visual entre apariencia (distintos estilos de trazo para el "1" y para el "7"); es decir,
muestras es simplemente ruido de textura similar, no repetición de un dígito legítimo.} el colapso es entre clases, no una repetición monótona de una única imagen.}
\begin{enumerate}[resume] \begin{enumerate}[resume]
\item Utilice el número de modos y la entropía normalizada para describir el \item Utilice el número de modos y la entropía normalizada para describir el
colapso entre clases. ¿Qué información aporta cada medida? colapso entre clases. ¿Qué información aporta cada medida?
\end{enumerate} \end{enumerate}
\answer{El número de modos (1/10) confirma que solo una clase supera el umbral de \answer{El número de modos (2/10) confirma que exactamente dos clases superan
frecuencia del 1\%: un colapso binario, todo-o-nada, hacia una sola clase predicha. La el umbral del 1\%, coincidiendo con los dígitos objetivo del colapso (1 y 7).
entropía normalizada (0.010, en una escala de 0 a 1 donde 0 significa que toda la masa La entropía normalizada (0.367) cuantifica además qué tan pareja es la masa
recae en una sola clase y 1 significa una distribución perfectamente uniforme entre las entre esas clases activas: un valor tan por debajo de 1.0 refleja que, aunque
10 clases) cuantifica qué tan extrema es esa concentración: un valor tan cercano a 0 hay 2 modos, la distribución global sigue muy alejada de la uniformidad sobre
indica una distribución prácticamente degenerada, no solo "dominada" por una clase sino las 10 clases, ya que la masa está casi enteramente concentrada en ese
casi puntual en ella. El conteo de modos aporta una lectura binaria y fácil de subconjunto (aproximadamente 50/50 entre 1 y 7), dejando 8 clases sin
interpretar (¿cuántas clases "cuentan"?), mientras que la entropía aporta la forma representación. El conteo de modos aporta una lectura discreta de cobertura;
completa de la distribución, incluso entre las clases que sí superan el umbral; la entropía aporta la forma continua de toda la distribución, incluyendo cuán
juntas confirman un colapso extremo y no solo parcial.} desbalanceada está incluso entre las clases activas.}
\begin{enumerate}[resume] \begin{enumerate}[resume]
\item ¿Las muestras mostradas permiten identificar confiablemente el colapso \item ¿Las muestras mostradas permiten identificar confiablemente el colapso
dentro de cada clase? Explique qué evidencia adicional se necesita. dentro de cada clase? Explique qué evidencia adicional se necesita.
\end{enumerate} \end{enumerate}
\answer{No de forma confiable. Como ninguna de las 64 muestras colapsadas se asemeja a \answer{Sí, de forma razonablemente confiable: las imágenes en
un dígito real, no existe una forma legítima de "8" (o de cualquier otro dígito) contra \texttt{collapsed\_samples.png} son dígitos "1" y "7" claramente legibles, con
la cual comparar variedad interna; no se puede evaluar colapso \emph{dentro} de una variación visible de estilo (inclinación, presencia de barra horizontal en el
clase que en realidad nunca se materializó visualmente. Además, la confianza del "7", grosor del trazo), por lo que se puede juzgar directamente si hay
clasificador (0.981) es engañosa: el clasificador se entrenó únicamente con dígitos diversidad dentro de cada clase representada. Como evidencia adicional, la
reales de MNIST y nunca vio ejemplos de ruido no estructurado, por lo que puede emitir diversidad intra-clase cuantitativa del punto colapsado (25.954) es
predicciones muy seguras sobre entradas fuera de distribución sin que eso refleje considerablemente menor que la alcanzada tras la recuperación
ninguna semántica real. La evidencia adicional necesaria es exactamente la que se usó (\textasciitilde37--38), lo que corrobora numéricamente que la variedad
aquí para diagnosticar el problema real: inspección visual directa de las muestras, y dentro de esas dos clases también era más limitada en el punto de partida, y
las curvas de pérdida del discriminador durante el preentrenamiento (que muestran no es solo una impresión visual.}
$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} \section{Resultados de recuperación}
@@ -158,60 +154,73 @@ colapso dirigido).}
alto de modos implica necesariamente una distribución equilibrada? Utilice alto de modos implica necesariamente una distribución equilibrada? Utilice
la entropía como evidencia. la entropía como evidencia.
\end{enumerate} \end{enumerate}
\answer{$\lambda_{\mathrm{div}}=0.1$, $0.5$ y $1.0$ recuperan 2/10 modos cada uno \answer{Las cuatro configuraciones de recuperación
(frente a 1/10 en "Collapsed start" y en $\lambda_{\mathrm{div}}=0$), pero un número ($\lambda_{\mathrm{div}}=0$, $0.1$, $0.5$ y $1.0$) recuperan la totalidad de
más alto de modos no implica una distribución equilibrada: incluso con 2 modos, la las 10 clases (10/10 modos), frente a 2/10 en el punto de partida. Un número
entropía normalizada máxima observada es apenas 0.058 ($\lambda_{\mathrm{div}}=0.1$), alto de modos no garantiza automáticamente una distribución perfectamente
muy lejos de 1.0 (uniforme). En \texttt{class\_distributions.png} se ve que la clase equilibrada, pero en este caso la entropía normalizada confirma que sí se
dominante ("8") sigue concentrando más del 95\% de la masa en las tres configuraciones logró una cobertura casi uniforme: entre 0.984 y 0.988 en las cuatro
con 2 modos, y la segunda "moda" detectada corresponde al dígito "2" --- ni siquiera a configuraciones, muy cerca del máximo teórico de 1.0, frente a 0.367 en el
las clases objetivo (1 o 7) --- y apenas supera el umbral del 1\%. El conteo de modos punto colapsado. \texttt{class\_distributions.png} corrobora visualmente que
por sí solo sugiere una mejora que la entropía matiza fuertemente: la distribución las cuatro configuraciones producen barras de altura similar en las 10
sigue siendo extremadamente desequilibrada en las cuatro configuraciones.} 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] \begin{enumerate}[resume]
\item Compare la confianza del clasificador. Identifique cualquier compromiso \item Compare la confianza del clasificador. Identifique cualquier compromiso
aparente entre diversidad y calidad. aparente entre diversidad y calidad.
\end{enumerate} \end{enumerate}
\answer{La confianza del clasificador baja de forma monótona al subir \answer{La confianza del clasificador baja de 0.971 (colapsado) a un rango
$\lambda_{\mathrm{div}}$: 0.981 (colapsado) $\to$ 0.954 ($\lambda=0$) $\to$ 0.933 estrecho de 0.909--0.912 en las cuatro configuraciones recuperadas, sin una
($\lambda=0.1$) $\to$ 0.925 ($\lambda=0.5$) $\to$ 0.909 ($\lambda=1.0$). A primera tendencia clara respecto a $\lambda_{\mathrm{div}}$ ($\lambda=0.1$ tiene la
vista esto parece el compromiso esperado "más diversidad, menos confianza/calidad". confianza más baja, 0.909, mientras que $\lambda=0$ y $\lambda=1.0$ empatan en
Sin embargo, dado que ninguna configuración produce imágenes reconocibles como la más alta, 0.912). Esta pequeña caída es esperable y saludable: el punto
dígitos (Pregunta 2), esta caída no debe interpretarse como una pérdida real de colapsado concentraba casi toda la probabilidad en solo 2 clases con trazos
fidelidad visual respecto a un buen generador: es simplemente la reacción del muy estereotipados (más fáciles de clasificar con alta confianza), mientras
clasificador a texturas de ruido ligeramente distintas entre configuraciones, no un que al cubrir las 10 clases el clasificador enfrenta dígitos naturalmente más
verdadero compromiso diversidad-calidad sobre dígitos válidos.} 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] \begin{enumerate}[resume]
\item Compare la diversidad de características con la diversidad dentro de \item Compare la diversidad de características con la diversidad dentro de
cada clase. ¿Qué configuraciones mejoran ambas medidas y cuáles mejoran cada clase. ¿Qué configuraciones mejoran ambas medidas y cuáles mejoran
principalmente una? principalmente una?
\end{enumerate} \end{enumerate}
\answer{Ambas métricas crecen de forma monótona con $\lambda_{\mathrm{div}}$: \answer{Ambas métricas suben de forma marcada respecto al punto colapsado
diversidad de características 16.117 $\to$ 16.436 $\to$ 16.687 $\to$ 17.057 $\to$ (diversidad de características: 32.059 $\to$ \textasciitilde50.3--51.0;
17.288, y diversidad intra-clase 11.458 $\to$ 11.539 $\to$ 11.854 $\to$ 12.603 $\to$ diversidad intra-clase: 25.954 $\to$ \textasciitilde37.3--38.1), pero entre
13.533 (de "Collapsed start" a $\lambda_{\mathrm{div}}=1.0$). No hay una configuración las cuatro configuraciones de recuperación las diferencias son mínimas y no
que mejore una medida sin la otra --- $\lambda_{\mathrm{div}}=1.0$ maximiza ambas siguen un patrón monótono claro: $\lambda=0.5$ tiene la diversidad de
simultáneamente --- pero, como se discute en la Pregunta 8, este incremento conjunto características más baja (50.256) y la intra-clase más baja (37.341) de las
corresponde a generar ruido cada vez más variado, no dígitos genuinamente más cuatro, mientras que $\lambda=1.0$ tiene ambas más altas (50.829 y 38.141
diversos.} 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] \begin{enumerate}[resume]
\item Examine las muestras. ¿La mayor diversidad representa variaciones \item Examine las muestras. ¿La mayor diversidad representa variaciones
significativas o solamente ruido, distorsiones o dígitos ambiguos? Describa significativas o solamente ruido, distorsiones o dígitos ambiguos? Describa
dos ejemplos concretos. dos ejemplos concretos.
\end{enumerate} \end{enumerate}
\answer{Claramente lo segundo. En \texttt{recovery\_samples.png}, la fila "Collapsed \answer{En esta corrida la mayor diversidad numérica sí corresponde a
start" y la fila $\lambda_{\mathrm{div}}=0$ muestran una textura de ruido fino de alta variaciones significativas y no a ruido: en \texttt{recovery\_samples.png},
frecuencia, prácticamente indistinguible entre columnas (ejemplo 1: cualquiera de las las cuatro filas de recuperación muestran dígitos completos y reconocibles de
primeras columnas de esas dos filas). En las filas $\lambda_{\mathrm{div}}=0.5$ y múltiples clases (ejemplo 1: la tercera columna muestra un "9" con trazo
$\lambda_{\mathrm{div}}=1.0$ aparecen algunas manchas de menor frecuencia con un lazo cursivo bien formado en las cuatro configuraciones; ejemplo 2: la octava
curvo central, un poco más "gruesas" y menos granuladas que el ruido base (ejemplo 2: columna muestra una forma con un trazo diagonal marcado parecido a un rayo,
varias columnas de la fila $\lambda_{\mathrm{div}}=1.0$ muestran una forma circular consistente entre las cuatro configuraciones). Cabe notar que, como la
difusa parecida a un garabato), pero ninguna de estas formas constituye un dígito evaluación usa la misma semilla de muestreo para las cuatro configuraciones,
reconocible; se trata de ruido de baja frecuencia en vez de ruido de alta frecuencia, las imágenes de una misma columna son decodificaciones del mismo vector
no una diversidad semántica real entre dígitos.} 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} \section{Comportamiento durante el entrenamiento}
@@ -223,32 +232,33 @@ no una diversidad semántica real entre dígitos.}
misma función objetivo? misma función objetivo?
\end{enumerate} \end{enumerate}
\answer{Porque $\mathcal{L}_G=\mathcal{L}_{\mathrm{adv}}+\lambda_{\mathrm{div}} \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, \mathcal{L}_{\mathrm{div}}$ combina dos términos con escalas y pesos
ponderados por un $\lambda_{\mathrm{div}}$ diferente en cada configuración. Por distintos según la configuración. En \texttt{recovery\_training.png} se
construcción, un $\lambda_{\mathrm{div}}$ mayor añade una contribución adicional del observa que el objetivo total del generador es sistemáticamente más bajo
término de diversidad, de modo que dos configuraciones con distinto cuanto mayor es $\lambda_{\mathrm{div}}$ (por ejemplo, $\lambda=1.0$ termina en
$\lambda_{\mathrm{div}}$ no están minimizando la misma función. Comparar sus valores \textasciitilde1.07 frente a \textasciitilde1.35 en $\lambda=0$), pero esto no
totales sin separar los componentes adversarial y de diversidad --tal como se ve en significa que ese modelo entrene "mejor": $\mathcal{L}_{\mathrm{div}}$ está
\texttt{recovery\_training.png}, donde $\lambda_{\mathrm{div}}=1.0$ muestra definida como una cantidad negativa (más negativa cuanto más diversas son las
sistemáticamente el objetivo total más alto-- puede sugerir falsamente que ese modelo salidas), así que un $\lambda_{\mathrm{div}}$ mayor simplemente resta más de
"entrena peor", cuando en realidad solo está pagando un término adicional que los ese término negativo al total, sin que ello implique una pérdida adversarial
demás no tienen en la misma magnitud.} menor. Comparar el total directamente confundiría el efecto de la
ponderación con una diferencia real de desempeño adversarial.}
\begin{enumerate}[resume] \begin{enumerate}[resume]
\item ¿Las curvas de pérdida demuestran por sí solas que se resolvió el \item ¿Las curvas de pérdida demuestran por sí solas que se resolvió el
colapso de modos? Justifique utilizando los demás resultados. colapso de modos? Justifique utilizando los demás resultados.
\end{enumerate} \end{enumerate}
\answer{No. Las curvas muestran que la pérdida del discriminador se mantiene \answer{No por sí solas. \texttt{recovery\_training.png} muestra que la
extremadamente baja (del orden de $10^{-5}$) durante toda la recuperación en las pérdida del discriminador sube de forma saludable desde
cuatro configuraciones, y que la pérdida del generador tiende a subir con las épocas \textasciitilde0.57--0.61 hasta \textasciitilde0.90--0.98 a lo largo de las 5
--comportamiento consistente con un discriminador que domina por completo y un épocas de recuperación en las cuatro configuraciones, sin colapsar a 0 ni
generador que no recibe gradiente útil. Esto concuerda con la evidencia visual (las dispararse --un patrón consistente con un equilibrio adversarial funcional.
salidas siguen siendo ruido, Pregunta 8) y con las métricas de cobertura (máximo 2/10 Sin embargo, esta curva por sí sola solo indica que el entrenamiento es
modos, Pregunta 5). Si solo se miraran las curvas de pérdida, sin las imágenes estable; la confirmación de que el colapso de modos realmente se resolvió
generadas ni las métricas de cobertura, se podría malinterpretar la caída suave y requiere las métricas de cobertura (10/10 modos, entropía
monótona de la pérdida del discriminador como "entrenamiento estable", cuando en \textasciitilde0.98--0.99, Pregunta 5) y la inspección visual de
realidad refleja que el generador quedó atrapado en un mínimo degenerado desde el \texttt{recovery\_samples.png}, que muestran dígitos reconocibles de las 10
preentrenamiento inicial y nunca se recuperó.} clases.}
\section{Decisión y limitaciones} \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 \item Seleccione un valor de $\lambda_{\mathrm{div}}$. Defienda la elección
con al menos dos resultados cuantitativos y dos observaciones visuales. con al menos dos resultados cuantitativos y dos observaciones visuales.
\end{enumerate} \end{enumerate}
\answer{Se recomienda $\lambda_{\mathrm{div}}=0.1$ dentro de las cuatro \answer{Se recomienda $\lambda_{\mathrm{div}}=1.0$. Evidencia cuantitativa:
configuraciones evaluadas, con la salvedad explícita de que ninguna resolvió el (1) alcanza la entropía normalizada más alta de las cuatro configuraciones
colapso de modos de forma satisfactoria (ver limitaciones más abajo). Evidencia (0.988, frente a 0.984 en $\lambda=0$); (2) alcanza la diversidad intra-clase
cuantitativa: (1) $\lambda_{\mathrm{div}}=0.1$ logra la entropía normalizada más alta más alta (38.141) y empata en la confianza de clasificador más alta (0.912)
de las cuatro configuraciones recuperadas (0.058, frente a 0.021 en $\lambda=0$, 0.053 junto con $\lambda=0$, sin ningún costo aparente respecto a las demás.
en $\lambda=0.5$ y 0.047 en $\lambda=1.0$); (2) mantiene la segunda confianza de Evidencia visual: (3) en \texttt{recovery\_samples.png}, la fila
clasificador más alta entre las configuraciones con diversidad activa (0.933, solo por $\lambda=1.0$ muestra las mismas 16 imágenes nítidas y reconocibles que el
detrás de $\lambda=0$ con 0.954, y por encima de 0.925 y 0.909 de $\lambda=0.5/1.0$). resto de configuraciones, sin manchas de ruido ni distorsiones adicionales
Evidencia visual: (3) en \texttt{recovery\_samples.png}, la fila $\lambda=0.1$ pese a tener el peso de diversidad más alto evaluado; (4) en
conserva una textura similar a la del punto de partida colapsado, sin las manchas de \texttt{class\_distributions.png}, su distribución de clases es tan pareja
baja frecuencia más pronunciadas visibles en las filas $\lambda=0.5$ y $\lambda=1.0$; como la de las demás configuraciones (mismo patrón de ligera
(4) alcanza el mismo conteo de modos (2/10) que $\lambda=0.5$ y $\lambda=1.0$, por lo sobre-representación de "9" y sub-representación de "4"). Dado que
que no hay evidencia de que forzar más diversidad aporte cobertura adicional de $\lambda_{\mathrm{div}}=1.0$ no muestra ninguna penalización visible de
clases, solo más textura de ruido.} 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] \begin{enumerate}[resume]
\item Si la fidelidad de las imágenes fuera más importante que la cobertura \item Si la fidelidad de las imágenes fuera más importante que la cobertura
de clases, ¿cambiaría su elección? Justifique. de clases, ¿cambiaría su elección? Justifique.
\end{enumerate} \end{enumerate}
\answer{Sí, cambiaría a $\lambda_{\mathrm{div}}=0$, que conserva la mayor confianza \answer{Sí cambiaría, aunque por poco: se elegiría $\lambda_{\mathrm{div}}=0$,
del clasificador (0.954) y la menor diversidad de características añadida respecto al que logra la confianza de clasificador empatada más alta (0.912, igual que
punto de partida. En este experimento ningún valor de $\lambda_{\mathrm{div}}>0$ logra $\lambda=1.0$) sin necesidad de introducir el término adicional de diversidad
fidelidad visual aceptable (todas las salidas siguen siendo ruido no estructurado), y ni su costo de ajuste. Como en este experimento fidelidad y diversidad no
el único "beneficio" medible de subirlo es una cobertura de clases apenas mayor (2 vs. muestran un compromiso fuerte entre sí (las cuatro configuraciones logran
1 modos) que ni siquiera corresponde a los dígitos objetivo (1 y 7). Si la prioridad calidad visual y cobertura muy similares), priorizar fidelidad favorecería la
fuera evitar cualquier degradación adicional mientras se corrige el problema real (la configuración más simple ($\lambda_{\mathrm{div}}=0$) por parsimonia, ya que
divergencia del entrenamiento adversarial), $\lambda_{\mathrm{div}}=0$ sería el punto no hay evidencia de que agregar la pérdida de diversidad aporte una mejora
de partida más conservador para reentrenar con otros ajustes.} de fidelidad adicional en este caso.}
\begin{enumerate}[resume] \begin{enumerate}[resume]
\item Indique una limitación de utilizar un clasificador de MNIST para medir \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. la cobertura de la GAN y una limitación del diseño experimental.
\end{enumerate} \end{enumerate}
\answer{\emph{Clasificador:} se entrenó únicamente con dígitos reales de MNIST y nunca \answer{\emph{Clasificador:} se entrenó únicamente con dígitos reales de
vio ejemplos fuera de esa distribución; frente a entradas de ruido no estructurado MNIST, por lo que su confianza y sus predicciones de clase pueden no ser
(como las de este experimento) puede emitir predicciones con alta confianza (hasta completamente fiables frente a imágenes fuera de esa distribución; incluso en
0.981) que no reflejan ninguna semántica real de dígito, por lo que las métricas de esta corrida corregida, la confianza no debe interpretarse como una medida
"modos" y "entropía" derivadas de sus predicciones pueden ser completamente engañosas absoluta de realismo, solo como un proxy relativo entre configuraciones.
cuando el generador no produce imágenes válidas, como ocurrió aquí. \emph{Diseño \emph{Diseño experimental:} cada configuración de $\lambda_{\mathrm{div}}$ se
experimental:} las cuatro configuraciones de recuperación parten todas del mismo punto evaluó con una sola semilla y un solo conjunto de 5 épocas de recuperación,
de control ya deteriorado (\texttt{mass on [1,7]=0.000}, discriminador saturado desde por lo que las pequeñas diferencias entre configuraciones (por ejemplo, 0.984
la época 5 de 16 del preentrenamiento) y solo se entrenan 5 épocas adicionales; este frente a 0.988 de entropía) podrían no ser estadísticamente robustas frente a
diseño no permite distinguir si $\lambda_{\mathrm{div}}$ es insuficiente o si el punto la variación aleatoria de la inicialización o el orden de los datos.
de partida está tan degradado que ningún valor de $\lambda_{\mathrm{div}}$ en ese rango
podría recuperarlo en tan pocas épocas.} \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] \begin{enumerate}[resume]
\item Proponga un experimento posterior que fortalezca o cuestione su \item Proponga un experimento posterior que fortalezca o cuestione su
conclusión. Indique la variable que modificaría y la evidencia que recopilaría. conclusión. Indique la variable que modificaría y la evidencia que recopilaría.
\end{enumerate} \end{enumerate}
\answer{Se propone repetir la fase de preentrenamiento con técnicas de estabilización \answer{Se propone repetir las cuatro configuraciones de recuperación con al
(por ejemplo, suavizado de etiquetas para el discriminador, penalización de gradiente, menos 3 semillas aleatorias distintas cada una, midiendo la media y
o una tasa de aprendizaje/capacidad relativa menor para el discriminador) para evitar desviación estándar de entropía, confianza y diversidad intra-clase por
que este domine desde la época 5, verificando mediante la pérdida del discriminador configuración. Dado que en esta corrida las diferencias entre
(que debería mantenerse por encima de un piso razonable, no en 0.000) y mediante $\lambda_{\mathrm{div}}=0$, $0.1$, $0.5$ y $1.0$ son pequeñas (por ejemplo,
inspección visual de \texttt{collapsed\_samples.png} que el punto de control de 0.984 frente a 0.988 de entropía), este experimento permitiría confirmar si
partida realmente produzca dígitos reconocibles concentrados en las clases 1 y 7 antes $\lambda_{\mathrm{div}}=1.0$ realmente aventaja de forma consistente a
de aplicar el experimento de recuperación con $\lambda_{\mathrm{div}}$. Si, una vez $\lambda_{\mathrm{div}}=0$, o si la diferencia observada aquí es ruido de una
logrado un colapso "limpio" y visualmente legible, $\lambda_{\mathrm{div}}=0.1$ sigue sola corrida; si las diferencias desaparecen bajo múltiples semillas, la
mostrando la mejor entropía sin sacrificar tanta confianza como valores mayores, esto recomendación debería simplificarse a $\lambda_{\mathrm{div}}=0$ por
confirmaría la conclusión actual; si en cambio valores más altos de parsimonia.}
$\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} \section*{Recomendación final}
Valor recomendado: $\lambda_{\mathrm{div}}=0.1$ Valor recomendado: $\lambda_{\mathrm{div}}=1.0$
Conclusión en una oración: Conclusión en una oración:
\answer{Dentro de las cuatro configuraciones evaluadas, $\lambda_{\mathrm{div}}=0.1$ \answer{Tras corregir un error de \texttt{BatchNorm}/modo \texttt{eval()} en
ofrece el mejor equilibrio relativo entre cobertura de clases (mayor entropía) y el paso del generador, las cuatro configuraciones de recuperación restauran
confianza del clasificador, pero ninguna resolvió el colapso de modos real, ya que el por completo las 10 clases de dígitos (entropía \textasciitilde0.98--0.99
generador quedó atrapado en un régimen de ruido no estructurado desde el frente a 0.367 en el punto colapsado), y $\lambda_{\mathrm{div}}=1.0$ se
preentrenamiento inicial (discriminador saturado), por lo que se recomienda corregir recomienda por lograr la mayor entropía y diversidad intra-clase sin
ese problema de entrenamiento antes de repetir la comparación de sacrificar confianza de clasificador frente a las demás configuraciones
$\lambda_{\mathrm{div}}$.} evaluadas.}
\end{document} \end{document}
Executable → Regular
+165 -154
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 70 KiB

@@ -19,5 +19,5 @@
], ],
"mode_frequency_threshold": 0.01, "mode_frequency_threshold": 0.01,
"evaluation_samples": 2500, "evaluation_samples": 2500,
"device": "cpu" "device": "cuda"
} }
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
epoch,generator,adversarial,diversity,discriminator epoch,generator,adversarial,diversity,discriminator
1,3.902446909713745,3.9426742090861002,-0.4022729824066162,4.2679691879311577e-05 1,1.9428215772191684,1.9722177728096644,-0.29396197570165,0.5681033275604248
2,4.145200756327311,4.184955227152506,-0.397544775835673,1.7615805166618278e-05 2,1.4548880971908569,1.4849848041216533,-0.30096709435780844,0.8620665185292562
3,4.139080067443848,4.17894912923177,-0.3986907406489054,1.4372343609769207e-05 3,1.3750368096669514,1.4050493458429973,-0.3001254108428955,0.8815570115407307
4,4.3337121688842775,4.373950477091471,-0.40238287711143494,1.139676257832131e-05 4,1.3534313842296601,1.3834585751533508,-0.3002719212214152,0.9456387358347574
5,4.437606961568196,4.4788080523173015,-0.4120109644730886,9.15210223950756e-06 5,1.3344955165227255,1.3643748208999633,-0.2987930631637573,0.9085257977485657
1 epoch generator adversarial diversity discriminator
2 1 3.902446909713745 1.9428215772191684 3.9426742090861002 1.9722177728096644 -0.4022729824066162 -0.29396197570165 4.2679691879311577e-05 0.5681033275604248
3 2 4.145200756327311 1.4548880971908569 4.184955227152506 1.4849848041216533 -0.397544775835673 -0.30096709435780844 1.7615805166618278e-05 0.8620665185292562
4 3 4.139080067443848 1.3750368096669514 4.17894912923177 1.4050493458429973 -0.3986907406489054 -0.3001254108428955 1.4372343609769207e-05 0.8815570115407307
5 4 4.3337121688842775 1.3534313842296601 4.373950477091471 1.3834585751533508 -0.40238287711143494 -0.3002719212214152 1.139676257832131e-05 0.9456387358347574
6 5 4.437606961568196 1.3344955165227255 4.4788080523173015 1.3643748208999633 -0.4120109644730886 -0.2987930631637573 9.15210223950756e-06 0.9085257977485657
@@ -1,6 +1,6 @@
epoch,generator,adversarial,diversity,discriminator epoch,generator,adversarial,diversity,discriminator
1,3.9779018229166665,4.181639106241862,-0.4074745655536652,3.138090945431031e-05 1,1.8402496170361837,1.9872969957669575,-0.29409476148287456,0.5767448663711547
2,4.384994900258382,4.590004500834147,-0.410019177420934,1.108799576322781e-05 2,1.341480024846395,1.4922449136734008,-0.30152977444330853,0.8037996379534403
3,4.442870346577962,4.649945588429769,-0.41415047810872396,8.148233926234146e-06 3,1.2664997817357382,1.4169845746358236,-0.3009695855140686,0.9125254613876342
4,4.501311336263021,4.709003438568115,-0.41538419888814293,6.7271921303472485e-06 4,1.2546948420206705,1.4045818595250448,-0.29977403044700623,0.9266978068669637
5,4.567720675404867,4.779216910552979,-0.42299244691530863,5.819472274743021e-06 5,1.2052594385147095,1.3549157900174458,-0.2993127013524373,0.9047481880187989
1 epoch generator adversarial diversity discriminator
2 1 3.9779018229166665 1.8402496170361837 4.181639106241862 1.9872969957669575 -0.4074745655536652 -0.29409476148287456 3.138090945431031e-05 0.5767448663711547
3 2 4.384994900258382 1.341480024846395 4.590004500834147 1.4922449136734008 -0.410019177420934 -0.30152977444330853 1.108799576322781e-05 0.8037996379534403
4 3 4.442870346577962 1.2664997817357382 4.649945588429769 1.4169845746358236 -0.41415047810872396 -0.3009695855140686 8.148233926234146e-06 0.9125254613876342
5 4 4.501311336263021 1.2546948420206705 4.709003438568115 1.4045818595250448 -0.41538419888814293 -0.29977403044700623 6.7271921303472485e-06 0.9266978068669637
6 5 4.567720675404867 1.2052594385147095 4.779216910552979 1.3549157900174458 -0.42299244691530863 -0.2993127013524373 5.819472274743021e-06 0.9047481880187989
@@ -1,6 +1,6 @@
epoch,generator,adversarial,diversity,discriminator epoch,generator,adversarial,diversity,discriminator
1,3.792231286239624,3.792231286239624,-0.39822079056104026,5.601679666045432e-05 1,1.8845427894274394,1.8845427894274394,-0.2938156750679016,0.6103333305994669
2,3.7167933046976724,3.7167933046976724,-0.38705200486183167,2.9127169354857565e-05 2,1.467399939886729,1.467399939886729,-0.3004071984608968,0.8552583735783895
3,3.774656072998047,3.774656072998047,-0.3904325690587362,2.4593643052503468e-05 3,1.3906279939015707,1.3906279939015707,-0.3001615686416626,0.9186650776545207
4,4.0028360649108885,4.0028360649108885,-0.39604260533650715,1.812106814662305e-05 4,1.3625147614161173,1.3625147614161173,-0.2994904435475667,0.9339748060862223
5,4.161207312520345,4.161207312520345,-0.404033615175883,1.4115302633338919e-05 5,1.3512904654184976,1.3512904654184976,-0.29837757102648416,0.917125739256541
1 epoch generator adversarial diversity discriminator
2 1 3.792231286239624 1.8845427894274394 3.792231286239624 1.8845427894274394 -0.39822079056104026 -0.2938156750679016 5.601679666045432e-05 0.6103333305994669
3 2 3.7167933046976724 1.467399939886729 3.7167933046976724 1.467399939886729 -0.38705200486183167 -0.3004071984608968 2.9127169354857565e-05 0.8552583735783895
4 3 3.774656072998047 1.3906279939015707 3.774656072998047 1.3906279939015707 -0.3904325690587362 -0.3001615686416626 2.4593643052503468e-05 0.9186650776545207
5 4 4.0028360649108885 1.3625147614161173 4.0028360649108885 1.3625147614161173 -0.39604260533650715 -0.2994904435475667 1.812106814662305e-05 0.9339748060862223
6 5 4.161207312520345 1.3512904654184976 4.161207312520345 1.3512904654184976 -0.404033615175883 -0.29837757102648416 1.4115302633338919e-05 0.917125739256541
@@ -1,6 +1,6 @@
epoch,generator,adversarial,diversity,discriminator epoch,generator,adversarial,diversity,discriminator
1,4.073459280141194,4.48742034072876,-0.4139610550562541,2.2277594858314842e-05 1,1.698524040857951,1.99391873254776,-0.295394695409139,0.6109893366177876
2,4.556306339263916,4.980417476145426,-0.4241111308892568,6.92474058305379e-06 2,1.1882508003234864,1.4905863542874653,-0.3023355525970459,0.8262079038302104
3,4.663601414998372,5.0912053082784015,-0.42760391337076825,4.824752171892518e-06 3,1.1038317825317383,1.4053670434633891,-0.3015352600415548,0.8900910706837972
4,4.601830291493734,5.031373355865479,-0.42954305254618325,4.1199866602255495e-06 4,1.0793432936350504,1.379725065612793,-0.30038177541097005,0.9296226150830587
5,4.665722238413493,5.104604846191406,-0.4388826152801514,3.713102867671599e-06 5,1.0750859638214112,1.3745220242182414,-0.2994360567092896,0.9623658214886983
1 epoch generator adversarial diversity discriminator
2 1 4.073459280141194 1.698524040857951 4.48742034072876 1.99391873254776 -0.4139610550562541 -0.295394695409139 2.2277594858314842e-05 0.6109893366177876
3 2 4.556306339263916 1.1882508003234864 4.980417476145426 1.4905863542874653 -0.4241111308892568 -0.3023355525970459 6.92474058305379e-06 0.8262079038302104
4 3 4.663601414998372 1.1038317825317383 5.0912053082784015 1.4053670434633891 -0.42760391337076825 -0.3015352600415548 4.824752171892518e-06 0.8900910706837972
5 4 4.601830291493734 1.0793432936350504 5.031373355865479 1.379725065612793 -0.42954305254618325 -0.30038177541097005 4.1199866602255495e-06 0.9296226150830587
6 5 4.665722238413493 1.0750859638214112 5.104604846191406 1.3745220242182414 -0.4388826152801514 -0.2994360567092896 3.713102867671599e-06 0.9623658214886983
Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

+5 -5
View File
@@ -1,6 +1,6 @@
Configuration,Lambda diversity,mode_count,normalized_entropy,classifier_confidence,feature_diversity,within_class_diversity,Recovery seconds 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, Collapsed start,,2,0.36685988306999207,0.9706274271011353,32.05898666381836,25.954302549362183,
lambda=0,0.0,1,0.021068770438432693,0.9541524648666382,16.436365127563477,11.539350509643555,775.4761435985565 lambda=0,0.0,10,0.9840676784515381,0.9123238325119019,50.957305908203125,37.81598720550537,18.872541427612305
lambda=0.1,0.1,2,0.05791272968053818,0.9331758618354797,16.686689376831055,11.85418701171875,772.15576171875 lambda=0.1,0.1,10,0.9851677417755127,0.9086157083511353,50.7574577331543,37.948602485656735,18.69113826751709
lambda=0.5,0.5,2,0.052982352674007416,0.9251078963279724,17.057252883911133,12.603004455566406,753.808944940567 lambda=0.5,0.5,10,0.9865411520004272,0.9114605188369751,50.256011962890625,37.34092845916748,18.764385223388672
lambda=1,1.0,2,0.04722726345062256,0.9086208939552307,17.2882137298584,13.533077716827393,775.8287467956543 lambda=1,1.0,10,0.9875771999359131,0.9121829867362976,50.82931900024414,38.14074840545654,18.40188217163086
1 Configuration Lambda diversity mode_count normalized_entropy classifier_confidence feature_diversity within_class_diversity Recovery seconds
2 Collapsed start 1 2 0.010357953608036041 0.36685988306999207 0.9805793166160583 0.9706274271011353 16.11749267578125 32.05898666381836 11.458220958709717 25.954302549362183
3 lambda=0 0.0 1 10 0.021068770438432693 0.9840676784515381 0.9541524648666382 0.9123238325119019 16.436365127563477 50.957305908203125 11.539350509643555 37.81598720550537 775.4761435985565 18.872541427612305
4 lambda=0.1 0.1 2 10 0.05791272968053818 0.9851677417755127 0.9331758618354797 0.9086157083511353 16.686689376831055 50.7574577331543 11.85418701171875 37.948602485656735 772.15576171875 18.69113826751709
5 lambda=0.5 0.5 2 10 0.052982352674007416 0.9865411520004272 0.9251078963279724 0.9114605188369751 17.057252883911133 50.256011962890625 12.603004455566406 37.34092845916748 753.808944940567 18.764385223388672
6 lambda=1 1.0 2 10 0.04722726345062256 0.9875771999359131 0.9086208939552307 0.9121829867362976 17.2882137298584 50.82931900024414 13.533077716827393 38.14074840545654 775.8287467956543 18.40188217163086
@@ -2,10 +2,10 @@
\toprule \toprule
Configuration & $\lambda_{div}$ & Modes & Entropy & Confidence & Feature diversity & Within-class diversity \\ Configuration & $\lambda_{div}$ & Modes & Entropy & Confidence & Feature diversity & Within-class diversity \\
\midrule \midrule
Collapsed start & NaN & 1 & 0.010 & 0.981 & 16.117 & 11.458 \\ Collapsed start & NaN & 2 & 0.367 & 0.971 & 32.059 & 25.954 \\
lambda=0 & 0.000 & 1 & 0.021 & 0.954 & 16.436 & 11.539 \\ lambda=0 & 0.000 & 10 & 0.984 & 0.912 & 50.957 & 37.816 \\
lambda=0.1 & 0.100 & 2 & 0.058 & 0.933 & 16.687 & 11.854 \\ lambda=0.1 & 0.100 & 10 & 0.985 & 0.909 & 50.757 & 37.949 \\
lambda=0.5 & 0.500 & 2 & 0.053 & 0.925 & 17.057 & 12.603 \\ lambda=0.5 & 0.500 & 10 & 0.987 & 0.911 & 50.256 & 37.341 \\
lambda=1 & 1.000 & 2 & 0.047 & 0.909 & 17.288 & 13.533 \\ lambda=1 & 1.000 & 10 & 0.988 & 0.912 & 50.829 & 38.141 \\
\bottomrule \bottomrule
\end{tabular} \end{tabular}