Un healthcheck es un comando que Docker ejecuta de forma periódica dentro del contenedor para decidir si el servicio está sano; su estado pasa de starting a healthy o unhealthy. Combinado con una política de reinicio (no, always, on-failure o unless-stopped) y con depends_on y la condición service_healthy, evita que una aplicación arranque antes que su base de datos.
Docker Compose ofrece tres formas de pasar configuración a un contenedor: la clave environment, el atributo env_file y el archivo .env para interpolar valores. Para datos sensibles no uses variables de entorno; los secretos en Docker Compose se montan como ficheros de solo lectura en /run/secrets/, lejos de los logs y del entorno del proceso.
Un contenedor pierde sus datos cuando lo borras, salvo que los guardes fuera. Docker ofrece dos vías: los volúmenes con nombre, que gestiona él mismo en /var/lib/docker/volumes, y los bind mounts, que enlazan una carpeta del host. Aquí verás cuándo usar cada uno, cómo montarlos en Compose y cómo hacer copias de seguridad.
Docker ofrece seis tipos de red: bridge, host, none, overlay, macvlan e ipvlan. La red bridge por defecto conecta contenedores por IP, pero sin resolución de nombres. Una red bridge personalizada añade un DNS interno para que los servicios se localicen por su nombre, y es la opción recomendada para casi cualquier despliegue.
El dropout es una técnica de regularización que desactiva neuronas al azar durante el entrenamiento, con probabilidad de retención p, y divide las activaciones supervivientes entre p para conservar su escala. En inferencia la red completa actúa sin apagar nada. Matemáticamente equivale a promediar un ensemble enorme de subredes que comparten pesos.
La normalización de capa estabiliza el entrenamiento normalizando cada ejemplo por separado, con la media y la desviación típica de sus propias activaciones. A diferencia de la normalización por lotes, no depende del tamaño del lote, y por eso los transformers la adoptaron. RMSNorm es su variante más ligera y extendida hoy.
La normalización por lotes (batch normalization) es una técnica que normaliza las activaciones de cada capa usando la media y la varianza del minilote, y después las reescala con dos parámetros aprendibles, gamma y beta. Introducida en 2015, permite tasas de aprendizaje más altas, acelera el entrenamiento y estabiliza las redes profundas.
La inicialización de pesos fija la escala de los valores iniciales de la matriz W antes de entrenar. Xavier/Glorot, de 2010, reparte la varianza entre entradas y salidas y sirve para sigmoide y tanh; He, de 2015, la duplica para ReLU, que anula la mitad de las activaciones. Elegir mal frena o rompe el aprendizaje.
Los métodos de segundo orden usan la hessiana, la matriz de segundas derivadas de la pérdida, para orientar mejor cada paso que el gradiente solo. El método de Newton actualiza los pesos restando la inversa de la hessiana por el gradiente, pero invertirla es demasiado costoso en redes grandes, así que se recurre a aproximaciones cuasi-Newton.
La programación de la tasa de aprendizaje cambia el valor de η a lo largo del entrenamiento en lugar de dejarlo fijo. Empieza con un calentamiento que sube η desde casi cero, mantiene un pico y después la reduce con decaimiento por pasos, exponencial o coseno para converger más rápido y con menos oscilación.
Adam combina el momento de primer orden (media móvil del gradiente) y el de segundo orden (media de sus cuadrados) para dar a cada parámetro su propia tasa de aprendizaje. Con la corrección de sesgo y los valores por defecto β1=0,9, β2=0,999 y ε=1e-8, converge rápido y casi sin ajustar nada.
AdaGrad y RMSProp son optimizadores que dan a cada peso su propia tasa de aprendizaje. AdaGrad acumula el cuadrado de todos los gradientes y divide el paso por su raíz, lo que la apaga con el tiempo. RMSProp lo corrige con una media móvil que olvida el pasado con un factor de 0,9.
El gradiente acelerado de Nesterov mejora el momentum clásico calculando el gradiente en un punto adelantado, el que la inercia va a alcanzar, en lugar del punto actual. Ese paso de anticipación corrige la trayectoria antes de pasarse y logra una convergencia O(1/k²) en problemas convexos suaves, la más rápida posible para un método de primer orden.
El momentum es una mejora del descenso de gradiente que acumula una velocidad a partir de los gradientes anteriores en lugar de mirar solo el actual. Con un coeficiente β cercano a 0,9, esa inercia suaviza el zigzag del SGD puro, atraviesa los valles alargados y hace que el entrenamiento converja bastante más rápido.
En redes neuronales grandes la superficie de pérdida casi nunca atrapa al entrenamiento en un mínimo local malo. El obstáculo real son los puntos de silla, mucho más abundantes en alta dimensión. Este artículo explica mínimos locales frente a globales, por qué el descenso de gradiente estocástico los esquiva y qué papel juega la convexidad.
En una capa densa con z igual a Wx más b, la matriz jacobiana de la salida respecto a la entrada es la propia matriz de pesos W. De ahí salen las dos reglas del entrenamiento: el gradiente respecto a los pesos vale delta por x transpuesta, y el gradiente respecto a la entrada vale W transpuesta por delta.
Un grafo computacional representa una función como una red de operaciones elementales. La diferenciación automática recorre ese grafo para calcular derivadas exactas: el modo inverso, base de la retropropagación, obtiene el gradiente de todos los pesos en una sola pasada hacia atrás. Es el mecanismo que hace posible entrenar redes con miles de millones de parámetros.
La retropropagación aplica la regla de la cadena para repartir el error de una red capa por capa. Primero se calcula el error de la última capa, luego se propaga hacia atrás y con él se obtienen los gradientes de todos los pesos y sesgos en una sola pasada, resumidos en cuatro ecuaciones.
La retropropagación reparte la culpa del error entre todos los pesos de una red neuronal. Propaga hacia atrás una señal de error capa por capa, multiplicando por las derivadas locales, y así obtiene el gradiente de cada peso en una sola pasada. Esa idea, publicada en 1986, es la que hace posible entrenar redes profundas.
El descenso de gradiente por lotes usa todos los datos en cada paso, el estocástico usa una sola muestra y el mini-batch escoge un grupo intermedio, casi siempre de 32 a 256 ejemplos. Esta guía compara las tres variantes, su coste, su ruido y por qué el mini-batch se ha convertido en el estándar del entrenamiento.
La tasa de aprendizaje es el hiperparámetro que fija el tamaño de cada paso al ajustar los pesos durante el entrenamiento. Un valor demasiado alto hace que la pérdida diverja; uno demasiado bajo la vuelve lentísima. Los valores típicos van de 0,001 con Adam a 0,1 con descenso de gradiente clásico.
El descenso de gradiente es el algoritmo que entrena casi todas las redes neuronales. Calcula la pendiente de la función de pérdida respecto a cada peso y da un paso pequeño en la dirección contraria, controlado por la tasa de aprendizaje, hasta acercarse a un mínimo donde el error deja de bajar.
La regularización L1 y L2 añade a la función de pérdida un término que penaliza los pesos grandes. La L2, o weight decay, encoge los pesos de forma suave hacia cero; la L1 los lleva exactamente a cero y produce modelos dispersos. Ambas reducen el sobreajuste y mejoran la capacidad de generalización de una red neuronal.
La entropía mide la incertidumbre media de una distribución en bits, la entropía cruzada mide el coste de codificar los datos reales con un modelo equivocado y la divergencia KL es la diferencia entre ambas. Por eso minimizar la entropía cruzada al entrenar equivale a minimizar la divergencia KL frente a las etiquetas.
9 min1
Usamos cookies propias y de terceros para analizar el tráfico del sitio. Puedes aceptarlas, rechazarlas o configurar tu elección.
Más información sobre las cookies
Preferencias de cookies
NecesariasImprescindibles para el funcionamiento del sitio. Siempre activas.
AnalíticasNos ayudan a entender cómo se usa el sitio (Google Analytics).