English · Español
Phase 09 — Quiz (espejo legible)¶
🇪🇸 Espejo legible del fichero canónico
data/quizzes/phase-09-mlp-modules.yaml. El portal (Phase 41) consume el YAML; este.mdes para repaso rápido fuera del portal. No edites aquí — edita el YAML y este archivo es regenerable.
Source: data/quizzes/phase-09-mlp-modules.yaml. Schema en src/miniportal/BLUEPRINT.md §1.
q-09-01 — ¿Por qué la clase Module registra los Parameters explícitamente? (single)¶
En la clase Module que construiste, ¿por qué hay que registrar _parameters explícitamente en lugar de depender de la introspección de __dict__?
- Porque el
__dict__de Python era no ordenado antes de 3.7 - Para permitir módulos anidados y semántica de movimiento a dispositivo perezosa ✓
- Porque los objetos
Parameterno tienen__hash__ - Es una convención de PyTorch copiada por familiaridad
El registro explícito permite que un
Modulepadre recorra a sus hijos de forma determinista, de modo que.parameters()y.to(device)funcionen sin sorpresas en tiempo de ejecución. PyTorch tomó la misma decisión por la misma razón.
q-09-02 — ¿Qué inicializaciones se usan habitualmente para los pesos ocultos de un MLP? (multi)¶
Selecciona cada esquema de inicialización que sea apropiado como default para las capas lineales ocultas de un MLP con activación ReLU.
- Ceros para cada peso
- Kaiming (He) normal ✓
- Kaiming (He) uniforme ✓
- Constante 1.0 para cada peso
Kaiming normal/uniforme preservan la varianza de activación bajo ReLU. Las inicializaciones todo-ceros o todo-unos rompen la simetría o saturan la red en el step 1.
q-09-03 — ¿Qué suele alternar Module.train(False)? (free)¶
En una frase, ¿qué cambia llamar a module.train(False) (modo eval) en módulos como Dropout y BatchNorm?
Se espera que contenga: eval, dropout.
El modo eval desactiva el dropout estocástico y conmuta BatchNorm para usar las estadísticas running, de modo que la inferencia es determinista.
q-09-04 — Shape del backward para el gradiente del peso de Linear (single)¶
En un Linear(in=23, out=16) cuyo forward es Z = X @ W.T + b con X.shape == (4, 23), ¿qué shape tiene el gradiente del peso ∇_W L?
(4, 23)(16, 23)✓(23, 16)(16, 4)
∇_W = (∇_Z)^T @ Xtiene shape(16, 4) @ (4, 23) = (16, 23)— exactamente la shape deW. La teoría §04 de la Phase 9 avisa de que en shapes cuadradas el bug∇_W = ∇_Z @ X^Ttambién cuadra.
q-09-05 — Encuentra el bug: dos Linears sin activación (free)¶
Un learner escribe Sequential(Linear(23, 16), Linear(16, 5)) para el clasificador de tiempos verbales de §A13. La accuracy de validación es aceptable pero el modelo generaliza ligeramente peor que un gemelo equipado con GELU. ¿Qué propiedad del mapeo compuesto explica esto?
Se espera que contenga: linear.
La composición de dos mapeos afines es afín — el stack colapsa a un único mapeo lineal de rango ≤ 5. La tarea de §A13 es linealmente separable, así que la accuracy sobrevive, pero se pierde la capacidad de ajustar acuerdos sutiles. Cross-link:
break/00-break-gelu-as-identity.md.