Conceptos de IA en Python

Propagación hacia adelante y funciones de pérdida en Python

Una red neuronal está formada por capas de neuronas. En la propagación hacia adelante, la entrada recorre cada capa para producir una predicción, y una función de pérdida puntúa cuánto se aleja esa predicción de la respuesta correcta.

El concepto en palabras sencillas

Una red neuronal está formada por capas de neuronas. En la propagación hacia adelante, la entrada recorre cada capa para producir una predicción, y una función de pérdida puntúa cuánto se aleja esa predicción de la respuesta correcta.

Pasa entradas capa por capa por una pequeña red neuronal y mide el error con el error cuadrático y la entropía cruzada.

Ideas clave

  • Una capa densa conecta cada entrada con cada neurona de la capa.
  • La salida de una capa es la entrada de la siguiente.
  • La pérdida es un único número, y cuanto más baja, mejores son las predicciones.
  • Usa el error cuadrático para números y la entropía cruzada para probabilidades y clases.

¿Cuándo se utiliza?

  • Entender qué pasa dentro de las redes neuronales y las bibliotecas de IA.
  • Aprender la idea antes de implementarla en los retos correspondientes.
  • Prepararte para cursos de aprendizaje automático, entrevistas y proyectos.

Pruébalo en acción

Cambia las entradas y el objetivo. Sigue los valores a través de la capa oculta y mira cómo reaccionan ambas pérdidas a la predicción.

Código de ejemplo

Ejecutar código →
main.py
import math

def dense(inputs, weights, biases, activation):
    # Each row of weights belongs to one neuron in the layer.
    return [activation(sum(x * w for x, w in zip(inputs, row)) + b) for row, b in zip(weights, biases)]

relu = lambda z: max(0.0, z)
sigmoid = lambda z: 1 / (1 + math.exp(-z))

x = [1.0, 2.0]
hidden = dense(x, [[0.5, -0.2], [0.3, 0.8]], [0.0, -0.5], relu)
output = dense(hidden, [[1.0, -1.0]], [0.2], sigmoid)
print("hidden layer:", [round(h, 3) for h in hidden])
print("prediction:", round(output[0], 3))

# A loss function measures how wrong the prediction is.
target = 1.0
mse = (output[0] - target) ** 2
bce = -(target * math.log(output[0]) + (1 - target) * math.log(1 - output[0]))
print("squared error:", round(mse, 3))
print("cross-entropy:", round(bce, 3))

Resultado esperado

hidden layer: [0.1, 1.4]
prediction: 0.25
squared error: 0.563
cross-entropy: 1.387

Cómo funciona

dense() calcula una capa, en la que cada fila de pesos es una neurona. La capa oculta usa ReLU y la de salida usa sigmoid para dar una probabilidad. El error cuadrático y la entropía cruzada miden la distancia entre la predicción 0.25 y el objetivo 1.0; el entrenamiento intenta reducirlos.

Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.

Ejercicios prácticos

Modifica las entradas y prueba casos límite antes de usar conjuntos de datos mayores.

  1. Cambia las entradas o los pesos y predice la salida antes de ejecutar.
  2. Imprime los valores intermedios para seguir cada paso del cálculo.
  3. Resuelve los retos enlazados abajo para implementar la idea por tu cuenta.
Ejecutar en el IDE de Python →

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos