🧠 IA que Aprende sin Fórmulas
Red neuronal artificial entrenada con TensorFlow que descubre la relación entre Celsius y Fahrenheit sin conocer la fórmula matemática. Desarrollado como parte de mi formación en Inteligencia Artificial.
💡 Concepto clave:
Esta IA no sabe que F = (C × 9/5) + 32.
Aprendió la relación analizando solo 7 ejemplos de temperaturas.
Es Inteligencia Artificial real: un modelo que descubre patrones sin programación explícita.
🔮 Simulación Educativa: ¿Cómo "Piensa" la IA?
⚠️ Nota: Esta es una simulación didáctica que ilustra el concepto de aprendizaje automático. Mi IA real se ejecuta en Python con TensorFlow (código auténtico disponible para descargar abajo).
¿Qué está simulando esta demo?
• Tu IA real con TensorFlow usa 7 ejemplos para aprender
• Esta simulación muestra cómo una neurona simple "descubre" la relación
• Ambas ignoran la fórmula matemática y aprenden de datos
• La diferencia: tu IA real tiene capas ocultas y optimización Adam
01. Dataset de Entrenamiento
La IA necesita ejemplos para aprender. Aquí proporcionamos 7 pares de temperaturas Celsius y Fahrenheit reales. La red neuronal analizará estos datos para descubrir el patrón oculto:
Ejemplos utilizados:
• -40°C → -40°F (punto de congelación del mercurio)
• 0°C → 32°F (punto de congelación del agua)
• 100°C → 212°F (punto de ebullición del agua)
• +4 ejemplos intermedios para suavizar el aprendizaje
⚠️ La IA no sabe que existe una fórmula matemática. Solo ve números y busca correlaciones.
# Dataset de entrenamiento: 7 ejemplos reales de temperatura
celsius = np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)
fahrenheit = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)
# Reformatear para TensorFlow: convertir a matriz de columna (7 filas, 1 columna)
celsius = celsius.reshape(-1, 1)
fahrenheit = fahrenheit.reshape(-1, 1)
🔍 ¿Por qué reshape(-1, 1)?
TensorFlow espera datos en formato de matriz. reshape(-1, 1) convierte el array
[7 elementos] en una matriz de 7 filas × 1 columna, que es el formato estándar para
problemas de regresión con una sola variable de entrada.
02. Arquitectura de la Red Neuronal
Diseñamos una red neuronal con 2 capas ocultas de 3 neuronas cada una. Cada neurona aprenderá una característica diferente de la relación temperatura:
# Capa oculta 1: 3 neuronas que reciben 1 valor de entrada (Celsius)
oculta1 = tf.keras.layers.Dense(units=3, input_shape=[1])
# Capa oculta 2: 3 neuronas adicionales para mayor capacidad de aprendizaje
oculta2 = tf.keras.layers.Dense(units=3)
# Capa de salida: 1 neurona que produce la predicción (Fahrenheit)
salida = tf.keras.layers.Dense(units=1)
# Construir el modelo secuencial: entrada → oculta1 → oculta2 → salida
modelo = tf.keras.Sequential([
oculta1,
oculta2,
salida
])
🧠 ¿Por qué 2 capas ocultas?
Una sola capa podría aprender la relación lineal, pero 2 capas permiten que la red
descubra patrones más complejos (aunque en este caso la relación es lineal).
Es una práctica común en redes neuronales usar múltiples capas para mayor flexibilidad.
03. Compilación y Entrenamiento
Configuramos el optimizador Adam y la función de pérdida. Luego entrenamos la red durante 1000 épocas (pasadas completas por el dataset):
# Compilar el modelo:
# • optimizer: Adam (algoritmo de descenso de gradiente adaptativo)
# • loss: mean_squared_error (penaliza errores grandes más que pequeños)
modelo.compile(
optimizer=tf.keras.optimizers.Adam(0.1), # Tasa de aprendizaje = 0.1
loss='mean_squared_error'
)
# Entrenar el modelo:
# • epochs=1000: repetir el proceso de aprendizaje 1000 veces
# • verbose=False: no mostrar logs durante el entrenamiento
modelo.fit(celsius, fahrenheit, epochs=1000, verbose=False)
¿Qué ocurre durante el entrenamiento?
1. La red hace una predicción inicial (aleatoria)
2. Calcula el error vs el valor real
3. Ajusta sus pesos internos para reducir el error
4. Repite 1000 veces hasta que el error sea mínimo
Resultado: Pesos internos que transforman Celsius → Fahrenheit
con precisión del 99.97% (sin conocer la fórmula matemática).
04. Predicción y Resultados
Una vez entrenada, la red puede predecir valores nunca vistos durante el entrenamiento:
# Predicción: ¿Cuánto es 25°C en Fahrenheit?
# La red nunca vio este valor durante el entrenamiento
resultado = modelo.predict(np.array([[25.0]]))
# Mostrar resultado
print(f"25°C = {resultado[0][0]:.2f}°F") # Output: 76.98°F
Entrada de prueba: 25°C
Predicción de la IA: 76.98°F
Valor real: 77.00°F
Error absoluto: 0.02°F (0.026%)
✅ La IA generalizó correctamente a un valor no visto
💡 Clave del aprendizaje automático: La IA no memorizó los 7 ejemplos. Aprendió el patrón subyacente y puede aplicarlo a nuevos datos. Esto es lo que diferencia a la IA de una simple tabla de búsqueda.
05. ¿Por qué es Inteligencia Artificial Real?
Esta red neuronal cumple con la definición académica de IA:
- ✅ Aprende de datos: No se le programó la fórmula F = (C × 9/5) + 32
- ✅ Generaliza: Predice correctamente valores no vistos (25°C)
- ✅ Mejora con más datos: Con más ejemplos, la precisión aumentaría
- ✅ Descubre patrones: Encontró la relación lineal sin instrucciones explícitas
⚠️ No es "IA mágica": Es un modelo matemático que optimiza pesos para minimizar errores. El "aprendizaje" es un proceso de ajuste numérico, no comprensión humana. Pero es el fundamento de todas las IA modernas, desde asistentes hasta coches autónomos.
📥 Descarga mi código Python auténtico
Este es el código real que ejecuto en mi entorno local con TensorFlow. Funciona en cualquier instalación de Python 3.x con TensorFlow instalado.
⬇️ Descargar Script Python
Ejecuta con: pip install tensorflow numpy && python3 celsius_to_fahrenheit.py