El entrenamiento en IA es el proceso iterativo que ajusta los pesos de una red neuronal para que sus resultados se acerquen más a los ejemplos etiquetados. A diferencia de interactuar con un modelo ya terminado o escribir prompts, el entrenamiento calcula una pérdida sobre etiquetas reales y actualiza los parámetros con gradientes. Tras leer esta página, podrás seguir un paso de entrenamiento por ti mismo: el paso hacia adelante (forward pass), el cálculo de la pérdida, la retropropagación y, finalmente, la actualización de parámetros, utilizando el mismo bucle que se enseña en los apuntes de Stanford CS231n y en el tutorial oficial de optimización de PyTorch.
La clave es esta: un modelo mental concreto del bucle de entrenamiento, basado en fuentes primarias, no en un discurso comercial. El bucle consiste en datos, luego el paso hacia adelante, después la pérdida, a continuación la retropropagación, luego la actualización de parámetros y, finalmente, la evaluación. Los frameworks ocultan el cálculo, pero los pasos son los mismos, ya sea que sigas el descenso de gradiente manual de CS231n o llames a loss.backward() y optimizer.step() en PyTorch.
Qué significa realmente el entrenamiento en IA
El entrenamiento es optimización. Los apuntes sobre optimización de Stanford CS231n lo definen como la búsqueda de parámetros W que minimicen una función de pérdida, la cual mide la concordancia entre las puntuaciones de clase y las etiquetas de verdad fundamental. La función de puntuación mapea las entradas a predicciones; la pérdida evalúa esas predicciones; la optimización mejora W con el tiempo.
Una red neuronal es una pila de mapas lineales y activaciones no lineales. El ejemplo común de CS231n escribe las puntuaciones como s = W2 max(0, W1 x), donde max(0, ·) es una ReLU. Los pesos se aprenden con descenso de gradiente estocástico; los gradientes provienen de la regla de la cadena a través de la retropropagación. Ahora deberías ver el entrenamiento como «ajustar los pesos a datos etiquetados», no como «instalar una aplicación de IA».
Cómo se ejecuta un paso de entrenamiento
Analicemos una unidad de trabajo tal como la describen la Lección 7 de CS231n y el tutorial básico de PyTorch.
- Muestreo de un mini-lote: Se selecciona un mini-lote de ejemplos etiquetados (los tamaños comunes son potencias de dos, como 32, 64 o 128; la discusión sobre la escala ILSVRC de CS231n también menciona lotes de 256).
- Paso hacia adelante (forward pass): Se procesa el lote a través de las capas (multiplicación de matrices, sesgo, activación) para obtener puntuaciones o logits.
- Cálculo de la pérdida: Se calcula la pérdida que compara esas puntuaciones con las etiquetas (para clasificación, la entropía cruzada Softmax es estándar en CS231n;
nn.CrossEntropyLossde PyTorch combina log softmax y la verosimilitud logarítmica negativa). - Retropropagación (backpropagation): Se aplica la regla de la cadena hacia atrás a través del grafo computacional para que cada peso obtenga un gradiente. Los apuntes de retropropagación de CS231n lo llaman regla de la cadena recursiva en un grafo; cada puerta multiplica el gradiente ascendente por su gradiente local.
- Actualización de parámetros: Se mueven los pesos en dirección opuesta al gradiente,
pesos = pesos - tasa_de_aprendizaje * gradiente_pesos(descenso de gradiente simple en CS231n). En PyTorch, la misma idea se expresa comooptimizer.zero_grad(), paso hacia adelante, pérdida,loss.backward(),optimizer.step(). - Evaluación en datos de reserva: Se evalúa el modelo en datos de validación o prueba sin actualizar los pesos, para poder distinguir el aprendizaje de la memorización.
El tutorial oficial de optimización de PyTorch establece una tasa de aprendizaje de ejemplo de 1e-3, un tamaño de lote de 64 y unas pocas épocas en FashionMNIST. Esos números son valores predeterminados del tutorial, no puntos de referencia universales. Quédate con esto: si puedes nombrar en cuál de los seis pasos te encuentras, ya entiendes el entrenamiento en IA mejor que un glosario de palabras de moda.
La restricción que no puedes obviar
El entrenamiento requiere tres elementos que no se pueden ignorar.
Datos etiquetados (o alguna otra señal de retroalimentación que la funci ón de pérdida pueda interpretar). Un modelo diferenciable para que existan los gradientes. Una tasa de aprendizaje (tamaño de paso) lo suficientemente pequeña para descender y lo suficientemente grande para progresar. CS231n enfatiza que la tasa de aprendizaje es uno de los hiperparámetros más importantes: si es demasiado grande, la pérdida puede dispararse; si es demasiado pequeña, el progreso es muy lento.
El preprocesamiento es crucial. CS231n recomienda centrar a cero las características utilizando estadísticas calculadas solo en la división de entrenamiento, y luego aplicar esa media a la validación y prueba. Fingir que la media de todo el conjunto de datos es justa filtra información futura.
Además, los gradientes en PyTorch se acumulan por defecto. Si olvidas optimizer.zero_grad(), los contarás dos veces. Diseña pensando primero en las restricciones: etiquetas, diferenciabilidad, divisiones honestas entre entrenamiento y prueba, y un tamaño de paso ajustado.
Qué NO es el entrenamiento en IA
| Enfoque | Qué hace | Alojamiento o formato | Cuándo elegirlo |
|---|---|---|---|
| Entrenar una red neuronal | Ajusta pesos con pérdida + gradientes | Tu código, GPU o CPU, conjuntos de datos que controlas | Necesitas un modelo que aprenda de ejemplos etiquetados |
| Usar un modelo de chat terminado | Genera texto a partir de un sistema preentrenado | API de proveedor o pesos locales que no actualizas | Redacción, preguntas y respuestas, copilotos sin ajustar nuevos pesos |
| Flujos de trabajo solo con prompts | Dirige un modelo fijo con instrucciones | Las mismas APIs, sin actualización de parámetros | Experimentos rápidos cuando no hay etiquetas ni capacidad de cómputo para entrenamiento |
| Reglas escritas a mano | Lógica exacta de "si o si no" | Tu base de código | Políticas que ya están completas y claras |
Un chatbot intenta responder con palabras. El entrenamiento intenta mover números dentro de un modelo. El prompting puede ser potente, pero no es el bucle de entrenamiento. Usa la tabla como una regla de selección, no como una clasificación.
¿Para qué tareas sirve el bucle de entrenamiento?
El bucle de entrenamiento es fundamental en una variedad de aplicaciones de inteligencia artificial, desde la clasificación de imágenes hasta la optimización de redes neuronales, permitiendo a los desarrolladores ajustar modelos y experimentar con arquitecturas.
- Clasificación de imágenes: Consiste en asignar píxeles a puntuaciones de clase, como se ilustra en CS231n con el ejemplo de los vectores CIFAR-10 de 3072 elementos.
- Predicción tabular o de sensores: Se utiliza el mismo bucle, pero con diferentes formas de entrada y, a menudo, funciones de pérdida de tipo MSE para objetivos de valor real (como
nn.MSELossen PyTorch). - Ajuste fino de una red preentrenada: Se parte de pesos existentes y se ejecuta el mismo proceso de propagación hacia adelante, cálculo de pérdida, retropropagación y actualización de pesos con las etiquetas propias (el aprendizaje por transferencia es un tema de las clases de entrenamiento de CS231n).
- Experimentos con la tasa de aprendizaje y la arquitectura: Permite modificar la profundidad, el ancho, usar ReLU u otras funciones de activación, y medir la pérdida de validación.
- Entrenamiento de producción regularizado: Se añade decaimiento de peso L2 y dropout (CS231n menciona el dropout invertido y una probabilidad de mantener del 0,5 como un valor predeterminado razonable) para que las redes más grandes no se limiten a memorizar.
- Formación de desarrolladores: Implementar un bucle en PyTorch o siguiendo las notas de CS231n ayuda a comprender el funcionamiento interno de herramientas posteriores (AutoML, entrenadores, MLOps) y evitar que sean una caja negra.
Para una visión más amplia de las herramientas de IA para desarrolladores, consulta Herramientas de IA para desarrolladores. Para rutas de aprendizaje para principiantes, consulta Los mejores cursos de IA para principiantes y el Curso de marketing de IA para principiantes. El centro de recursos es Herramientas de IA.
Si buscas una práctica estructurada que conecte este bucle con habilidades de producción, compara las opciones en Comparativa de programas o profundiza en Ingeniería de IA para desarrolladores y el Bootcamp de programación.
¿Cómo elegir funciones de activación, inicialización y funciones de pérdida?
Para optimizar el rendimiento de las redes neuronales, es crucial seleccionar adecuadamente las funciones de activación, la inicialización de pesos y las funciones de pérdida, siguiendo las recomendaciones de expertos como CS231n.
El consejo práctico de CS231n es usar ReLU, controlar la tasa de aprendizaje y evitar la función sigmoide en las capas ocultas. ReLU se define como f(x) = max(0, x). Las notas mencionan que la convergencia del SGD es aproximadamente 6 veces más rápida con ReLU que con tanh, según Krizhevsky et al., y advierten que una tasa de aprendizaje agresiva puede dejar una gran fracción de unidades "muertas" (se ha observado hasta un 40% de unidades inactivas).
Para redes con ReLU, CS231n recomienda una inicialización tipo He: muestrear ruido gaussiano escalado por sqrt(2/n), donde 'n' es el número de entradas. Los biases (sesgos) suelen inicializarse a cero.
La función de pérdida se elige según la tarea. La entropía cruzada softmax se usa para clases exclusivas. Las funciones de pérdida de estilo logístico independiente son adecuadas cuando múltiples etiquetas pueden ser verdaderas simultáneamente. Es preferible discretizar la regresión en categorías de clasificación siempre que sea posible, ya que la regresión L2 se describe como más difícil de optimizar y menos robusta a los valores atípicos en esas notas.
La normalización por lotes (Batch Normalization, de Ioffe y Szegedy, cubierta en CS231n) es común porque hace que las redes profundas sean menos sensibles a una mala inicialización.
Deberías terminar esta sección con un kit de inicio predeterminado: ReLU, inicialización He, entropía cruzada para clasificación, L2 + dropout, y Batch Normalization cuando la profundidad de la red aumente.
¿Quién debería empezar ahora?
Empieza aquí si:
- Puedes describir el bucle de seis pasos sin consultar ninguna fuente.
- Tienes (o puedes crear) ejemplos etiquetados y una forma de medir la pérdida de validación.
- Quieres leer las notas de CS231n o el tutorial de optimización de PyTorch como fuentes primarias, no solo resúmenes de redes sociales.
Omite o espera si:
- Solo necesitas llamar a una API de chat alojada y no vas a actualizar los pesos.
- No puedes acceder a datos etiquetados ni a capacidad de cómputo, ni siquiera para un lote de prueba.
- Necesitas métricas de producción garantizadas hoy mismo; esta página enseña el bucle, no una clasificación de rendimiento.
Si la primera lista coincide contigo, abre el tutorial de optimización de PyTorch o las notas de redes neuronales de CS231n y ejecuta un minibatch de principio a fin. Luego, explora más en el centro de herramientas de IA, herramientas de IA para desarrolladores y los mejores cursos de IA para principiantes. ¿Quieres una ruta para construir y desplegar sistemas basados en modelos? Consulta la comparativa de programas, Ingeniería de IA para desarrolladores y el Bootcamp de programación.
