Qué es la inteligencia artificial: aprende desde cero

Qué es la inteligencia artificial: aprende desde cero

La inteligencia artificial (IA) es un campo de la informática que desarrolla sistemas capaces de realizar tareas como reconocer imágenes, interpretar lenguaje, encontrar soluciones o generar contenido.

Pero ¿cómo consigue un programa hacer estas cosas? ¿Qué significa que una máquina aprenda? ¿Y en qué se diferencia de un programa que sigue instrucciones escritas por una persona?

En esta primera lección del curso de inteligencia artificial desde cero encontrarás las respuestas, con ejemplos y un pequeño programa en Python.

No necesitas conocimientos previos de IA ni instalar herramientas para seguir la explicación.

Un programa que sigue reglas

Imagina que queremos detectar mensajes de publicidad no deseada, también llamados spam.

Una primera solución consiste en escribir reglas:

def es_spam(mensaje):
    texto = mensaje.lower()

    if "premio gratis" in texto:
        return True

    if "has ganado" in texto:
        return True

    return False


print(es_spam("Has ganado un teléfono"))
print(es_spam("Nos vemos mañana"))

El resultado es:

True
False

Aunque todavía no conozcas Python, puedes seguir la idea:

  • def define una función: un bloque de instrucciones reutilizable.
  • mensaje.lower() convierte el texto a minúsculas.
  • if comprueba una condición.
  • in comprueba si una expresión aparece dentro del texto.
  • return devuelve el resultado.
  • True significa verdadero y False, falso.

Las reglas las hemos elegido nosotros. El programa no las ha aprendido a partir de ejemplos.

¿Qué limitaciones tiene este método?

Considera estos mensajes:

Mensaje Clasificación del programa Qué sucede
«Has ganado un teléfono» Spam Puede ser una clasificación correcta.
«Has ganado la partida de ajedrez» Spam Un mensaje legítimo activa la regla.
«Recoge tu recompensa exclusiva» No spam Un posible mensaje sospechoso no activa ninguna regla.

Podemos añadir excepciones, pero el número de reglas puede crecer mucho.

Esto no convierte la programación basada en reglas en una mala opción. Es útil cuando las condiciones son claras, estables y fáciles de expresar. El problema aparece cuando necesitamos reconocer patrones con numerosas variaciones.

Qué es la inteligencia artificial y qué incluye

La inteligencia artificial incluye distintos enfoques para resolver tareas.

Algunos sistemas utilizan reglas y lógica. Otros exploran posibles soluciones mediante búsqueda. Otros aprenden patrones a partir de datos.

Por ejemplo:

Tarea Posible enfoque
Resolver un rompecabezas Explorar movimientos hasta encontrar una solución.
Aplicar conocimiento de un dominio Utilizar reglas y deducciones lógicas.
Reconocer animales en fotografías Entrenar un modelo con imágenes.
Generar texto Utilizar un modelo de lenguaje entrenado.

No toda la inteligencia artificial aprende de datos.

Tampoco existe una frontera universal y completamente precisa entre la IA y el resto del software. El término agrupa técnicas y objetivos, no una única clase de programa.

¿La IA piensa como una persona?

Un sistema puede realizar una tarea sin utilizar los mismos mecanismos que una persona.

Reconocer una fotografía, generar una explicación o ganar una partida no demuestra por sí solo que tenga conciencia, emociones o comprensión humana.

Para estudiar estos sistemas conviene empezar por cuestiones observables: qué reciben, cómo procesan la información, qué producen y cómo comprobamos sus resultados.

Qué es el aprendizaje automático

El aprendizaje automático, o machine learning, es una parte de la inteligencia artificial que desarrolla métodos para aprender patrones a partir de datos.

Volvamos al ejemplo del spam. En lugar de escribir todas las reglas, proporcionamos mensajes cuya clasificación conocemos:

Mensaje Etiqueta
«Has ganado un premio, pulsa aquí» Spam
«Oferta exclusiva por tiempo limitado» Spam
«Te envío el documento de clase» No spam
«Nos vemos mañana a las seis» No spam

La respuesta conocida se llama etiqueta.

Utilizar ejemplos con sus respuestas es una forma de aprendizaje supervisado. Existen otros tipos de aprendizaje que estudiaremos más adelante.

Durante el entrenamiento, un procedimiento ajusta un modelo para que sus resultados se acerquen a las etiquetas de los ejemplos.

Después podemos presentar un mensaje nuevo y comprobar si lo clasifica correctamente.

Generalizar: funcionar con datos nuevos

La generalización es la capacidad de un modelo para funcionar con ejemplos distintos de los utilizados para entrenarlo.

Es una idea fundamental: memorizar los mensajes de entrenamiento no basta para construir un buen detector de spam.

Necesitamos evaluar el modelo con datos que no haya utilizado para ajustar sus parámetros.

Qué significa que un modelo aprenda

En muchos modelos, aprender consiste en ajustar valores internos para reducir los errores.

Esos valores se llaman parámetros.

Veamos un ejemplo más sencillo que clasificar texto: estimar la distancia recorrida por un vehículo.

Tenemos estas observaciones:

Tiempo en horas Distancia en kilómetros
1 60
2 120
3 180

Proponemos este modelo:

Distancia estimada = w × tiempo

La letra w representa el parámetro que vamos a ajustar. En este ejemplo equivale a una velocidad en kilómetros por hora.

Si elegimos w = 4, obtenemos:

Tiempo Distancia observada Distancia estimada
1 hora 60 km 40 km
2 horas 120 km 80 km
3 horas 180 km 120 km

Si elegimos w = 60, el modelo coincide con las tres observaciones.

Un procedimiento de entrenamiento puede probar distintos valores y conservar el que produzca menos error.

Ejemplo de aprendizaje automático en Python

Este programa prueba valores enteros de w entre 0 y 100:

datos = [
    (1, 60),
    (2, 120),
    (3, 180),
]

mejor_w = None
menor_error = float("inf")

for w in range(0, 101):
    error_total = 0

    for tiempo, distancia_real in datos:
        distancia_estimada = w * tiempo
        diferencia = distancia_estimada - distancia_real
        error_total += diferencia ** 2

    if error_total < menor_error:
        menor_error = error_total
        mejor_w = w

print("Parámetro aprendido:", mejor_w)
print("Estimación para 4 horas:", mejor_w * 4)

Observando como funciona:

....:::: Iniciamos la iteración ::::....
....:::: Para w=0 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 0
Diferencia: -60
Error total: 3600
Tiempo: 2, Distancia real: 120, Distancia estimada: 0
Diferencia: -120
Error total: 18000
Tiempo: 3, Distancia real: 180, Distancia estimada: 0
Diferencia: -180
Error total: 50400
Mejor W: 0
Mejor Error: 50400
.....:::::::::::::::::::::::.....
....:::: Para w=1 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 1
Diferencia: -59
Error total: 3481
Tiempo: 2, Distancia real: 120, Distancia estimada: 2
Diferencia: -118
Error total: 17405
Tiempo: 3, Distancia real: 180, Distancia estimada: 3
Diferencia: -177
Error total: 48734
Mejor W: 1
Mejor Error: 48734
.....:::::::::::::::::::::::.....
....:::: Para w=2 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 2
Diferencia: -58
Error total: 3364
Tiempo: 2, Distancia real: 120, Distancia estimada: 4
Diferencia: -116
Error total: 16820
Tiempo: 3, Distancia real: 180, Distancia estimada: 6
Diferencia: -174
Error total: 47096
Mejor W: 2
Mejor Error: 47096
.....:::::::::::::::::::::::.....
....:::: Para w=3 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 3
Diferencia: -57
Error total: 3249
Tiempo: 2, Distancia real: 120, Distancia estimada: 6
Diferencia: -114
Error total: 16245
Tiempo: 3, Distancia real: 180, Distancia estimada: 9
Diferencia: -171
Error total: 45486
Mejor W: 3
Mejor Error: 45486
.....:::::::::::::::::::::::.....
....:::: Para w=4 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 4
Diferencia: -56
Error total: 3136
Tiempo: 2, Distancia real: 120, Distancia estimada: 8
Diferencia: -112
Error total: 15680
Tiempo: 3, Distancia real: 180, Distancia estimada: 12
Diferencia: -168
Error total: 43904
Mejor W: 4
Mejor Error: 43904
.....:::::::::::::::::::::::.....
....:::: Para w=5 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 5
Diferencia: -55
Error total: 3025
Tiempo: 2, Distancia real: 120, Distancia estimada: 10
Diferencia: -110
Error total: 15125
Tiempo: 3, Distancia real: 180, Distancia estimada: 15
Diferencia: -165
Error total: 42350
Mejor W: 5
Mejor Error: 42350
.....:::::::::::::::::::::::.....
....:::: Para w=6 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 6
Diferencia: -54
Error total: 2916
Tiempo: 2, Distancia real: 120, Distancia estimada: 12
Diferencia: -108
Error total: 14580
Tiempo: 3, Distancia real: 180, Distancia estimada: 18
Diferencia: -162
Error total: 40824
Mejor W: 6
Mejor Error: 40824
.....:::::::::::::::::::::::.....
....:::: Para w=7 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 7
Diferencia: -53
Error total: 2809
Tiempo: 2, Distancia real: 120, Distancia estimada: 14
Diferencia: -106
Error total: 14045
Tiempo: 3, Distancia real: 180, Distancia estimada: 21
Diferencia: -159
Error total: 39326
Mejor W: 7
Mejor Error: 39326
.....:::::::::::::::::::::::.....
....:::: Para w=8 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 8
Diferencia: -52
Error total: 2704
Tiempo: 2, Distancia real: 120, Distancia estimada: 16
Diferencia: -104
Error total: 13520
Tiempo: 3, Distancia real: 180, Distancia estimada: 24
Diferencia: -156
Error total: 37856
Mejor W: 8
Mejor Error: 37856
.....:::::::::::::::::::::::.....
....:::: Para w=9 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 9
Diferencia: -51
Error total: 2601
Tiempo: 2, Distancia real: 120, Distancia estimada: 18
Diferencia: -102
Error total: 13005
Tiempo: 3, Distancia real: 180, Distancia estimada: 27
Diferencia: -153
Error total: 36414
Mejor W: 9
Mejor Error: 36414
.....:::::::::::::::::::::::.....
....:::: Para w=10 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 10
Diferencia: -50
Error total: 2500
Tiempo: 2, Distancia real: 120, Distancia estimada: 20
Diferencia: -100
Error total: 12500
Tiempo: 3, Distancia real: 180, Distancia estimada: 30
Diferencia: -150
Error total: 35000
Mejor W: 10
Mejor Error: 35000
.....:::::::::::::::::::::::.....
....:::: Para w=11 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 11
Diferencia: -49
Error total: 2401
Tiempo: 2, Distancia real: 120, Distancia estimada: 22
Diferencia: -98
Error total: 12005
Tiempo: 3, Distancia real: 180, Distancia estimada: 33
Diferencia: -147
Error total: 33614
Mejor W: 11
Mejor Error: 33614
.....:::::::::::::::::::::::.....
....:::: Para w=12 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 12
Diferencia: -48
Error total: 2304
Tiempo: 2, Distancia real: 120, Distancia estimada: 24
Diferencia: -96
Error total: 11520
Tiempo: 3, Distancia real: 180, Distancia estimada: 36
Diferencia: -144
Error total: 32256
Mejor W: 12
Mejor Error: 32256
.....:::::::::::::::::::::::.....
....:::: Para w=13 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 13
Diferencia: -47
Error total: 2209
Tiempo: 2, Distancia real: 120, Distancia estimada: 26
Diferencia: -94
Error total: 11045
Tiempo: 3, Distancia real: 180, Distancia estimada: 39
Diferencia: -141
Error total: 30926
Mejor W: 13
Mejor Error: 30926
.....:::::::::::::::::::::::.....
....:::: Para w=14 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 14
Diferencia: -46
Error total: 2116
Tiempo: 2, Distancia real: 120, Distancia estimada: 28
Diferencia: -92
Error total: 10580
Tiempo: 3, Distancia real: 180, Distancia estimada: 42
Diferencia: -138
Error total: 29624
Mejor W: 14
Mejor Error: 29624
.....:::::::::::::::::::::::.....
....:::: Para w=15 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 15
Diferencia: -45
Error total: 2025
Tiempo: 2, Distancia real: 120, Distancia estimada: 30
Diferencia: -90
Error total: 10125
Tiempo: 3, Distancia real: 180, Distancia estimada: 45
Diferencia: -135
Error total: 28350
Mejor W: 15
Mejor Error: 28350
.....:::::::::::::::::::::::.....
....:::: Para w=16 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 16
Diferencia: -44
Error total: 1936
Tiempo: 2, Distancia real: 120, Distancia estimada: 32
Diferencia: -88
Error total: 9680
Tiempo: 3, Distancia real: 180, Distancia estimada: 48
Diferencia: -132
Error total: 27104
Mejor W: 16
Mejor Error: 27104
.....:::::::::::::::::::::::.....
....:::: Para w=17 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 17
Diferencia: -43
Error total: 1849
Tiempo: 2, Distancia real: 120, Distancia estimada: 34
Diferencia: -86
Error total: 9245
Tiempo: 3, Distancia real: 180, Distancia estimada: 51
Diferencia: -129
Error total: 25886
Mejor W: 17
Mejor Error: 25886
.....:::::::::::::::::::::::.....
....:::: Para w=18 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 18
Diferencia: -42
Error total: 1764
Tiempo: 2, Distancia real: 120, Distancia estimada: 36
Diferencia: -84
Error total: 8820
Tiempo: 3, Distancia real: 180, Distancia estimada: 54
Diferencia: -126
Error total: 24696
Mejor W: 18
Mejor Error: 24696
.....:::::::::::::::::::::::.....
....:::: Para w=19 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 19
Diferencia: -41
Error total: 1681
Tiempo: 2, Distancia real: 120, Distancia estimada: 38
Diferencia: -82
Error total: 8405
Tiempo: 3, Distancia real: 180, Distancia estimada: 57
Diferencia: -123
Error total: 23534
Mejor W: 19
Mejor Error: 23534
.....:::::::::::::::::::::::.....
....:::: Para w=20 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 20
Diferencia: -40
Error total: 1600
Tiempo: 2, Distancia real: 120, Distancia estimada: 40
Diferencia: -80
Error total: 8000
Tiempo: 3, Distancia real: 180, Distancia estimada: 60
Diferencia: -120
Error total: 22400
Mejor W: 20
Mejor Error: 22400
.....:::::::::::::::::::::::.....
....:::: Para w=21 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 21
Diferencia: -39
Error total: 1521
Tiempo: 2, Distancia real: 120, Distancia estimada: 42
Diferencia: -78
Error total: 7605
Tiempo: 3, Distancia real: 180, Distancia estimada: 63
Diferencia: -117
Error total: 21294
Mejor W: 21
Mejor Error: 21294
.....:::::::::::::::::::::::.....
....:::: Para w=22 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 22
Diferencia: -38
Error total: 1444
Tiempo: 2, Distancia real: 120, Distancia estimada: 44
Diferencia: -76
Error total: 7220
Tiempo: 3, Distancia real: 180, Distancia estimada: 66
Diferencia: -114
Error total: 20216
Mejor W: 22
Mejor Error: 20216
.....:::::::::::::::::::::::.....
....:::: Para w=23 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 23
Diferencia: -37
Error total: 1369
Tiempo: 2, Distancia real: 120, Distancia estimada: 46
Diferencia: -74
Error total: 6845
Tiempo: 3, Distancia real: 180, Distancia estimada: 69
Diferencia: -111
Error total: 19166
Mejor W: 23
Mejor Error: 19166
.....:::::::::::::::::::::::.....
....:::: Para w=24 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 24
Diferencia: -36
Error total: 1296
Tiempo: 2, Distancia real: 120, Distancia estimada: 48
Diferencia: -72
Error total: 6480
Tiempo: 3, Distancia real: 180, Distancia estimada: 72
Diferencia: -108
Error total: 18144
Mejor W: 24
Mejor Error: 18144
.....:::::::::::::::::::::::.....
....:::: Para w=25 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 25
Diferencia: -35
Error total: 1225
Tiempo: 2, Distancia real: 120, Distancia estimada: 50
Diferencia: -70
Error total: 6125
Tiempo: 3, Distancia real: 180, Distancia estimada: 75
Diferencia: -105
Error total: 17150
Mejor W: 25
Mejor Error: 17150
.....:::::::::::::::::::::::.....
....:::: Para w=26 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 26
Diferencia: -34
Error total: 1156
Tiempo: 2, Distancia real: 120, Distancia estimada: 52
Diferencia: -68
Error total: 5780
Tiempo: 3, Distancia real: 180, Distancia estimada: 78
Diferencia: -102
Error total: 16184
Mejor W: 26
Mejor Error: 16184
.....:::::::::::::::::::::::.....
....:::: Para w=27 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 27
Diferencia: -33
Error total: 1089
Tiempo: 2, Distancia real: 120, Distancia estimada: 54
Diferencia: -66
Error total: 5445
Tiempo: 3, Distancia real: 180, Distancia estimada: 81
Diferencia: -99
Error total: 15246
Mejor W: 27
Mejor Error: 15246
.....:::::::::::::::::::::::.....
....:::: Para w=28 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 28
Diferencia: -32
Error total: 1024
Tiempo: 2, Distancia real: 120, Distancia estimada: 56
Diferencia: -64
Error total: 5120
Tiempo: 3, Distancia real: 180, Distancia estimada: 84
Diferencia: -96
Error total: 14336
Mejor W: 28
Mejor Error: 14336
.....:::::::::::::::::::::::.....
....:::: Para w=29 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 29
Diferencia: -31
Error total: 961
Tiempo: 2, Distancia real: 120, Distancia estimada: 58
Diferencia: -62
Error total: 4805
Tiempo: 3, Distancia real: 180, Distancia estimada: 87
Diferencia: -93
Error total: 13454
Mejor W: 29
Mejor Error: 13454
.....:::::::::::::::::::::::.....
....:::: Para w=30 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 30
Diferencia: -30
Error total: 900
Tiempo: 2, Distancia real: 120, Distancia estimada: 60
Diferencia: -60
Error total: 4500
Tiempo: 3, Distancia real: 180, Distancia estimada: 90
Diferencia: -90
Error total: 12600
Mejor W: 30
Mejor Error: 12600
.....:::::::::::::::::::::::.....
....:::: Para w=31 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 31
Diferencia: -29
Error total: 841
Tiempo: 2, Distancia real: 120, Distancia estimada: 62
Diferencia: -58
Error total: 4205
Tiempo: 3, Distancia real: 180, Distancia estimada: 93
Diferencia: -87
Error total: 11774
Mejor W: 31
Mejor Error: 11774
.....:::::::::::::::::::::::.....
....:::: Para w=32 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 32
Diferencia: -28
Error total: 784
Tiempo: 2, Distancia real: 120, Distancia estimada: 64
Diferencia: -56
Error total: 3920
Tiempo: 3, Distancia real: 180, Distancia estimada: 96
Diferencia: -84
Error total: 10976
Mejor W: 32
Mejor Error: 10976
.....:::::::::::::::::::::::.....
....:::: Para w=33 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 33
Diferencia: -27
Error total: 729
Tiempo: 2, Distancia real: 120, Distancia estimada: 66
Diferencia: -54
Error total: 3645
Tiempo: 3, Distancia real: 180, Distancia estimada: 99
Diferencia: -81
Error total: 10206
Mejor W: 33
Mejor Error: 10206
.....:::::::::::::::::::::::.....
....:::: Para w=34 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 34
Diferencia: -26
Error total: 676
Tiempo: 2, Distancia real: 120, Distancia estimada: 68
Diferencia: -52
Error total: 3380
Tiempo: 3, Distancia real: 180, Distancia estimada: 102
Diferencia: -78
Error total: 9464
Mejor W: 34
Mejor Error: 9464
.....:::::::::::::::::::::::.....
....:::: Para w=35 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 35
Diferencia: -25
Error total: 625
Tiempo: 2, Distancia real: 120, Distancia estimada: 70
Diferencia: -50
Error total: 3125
Tiempo: 3, Distancia real: 180, Distancia estimada: 105
Diferencia: -75
Error total: 8750
Mejor W: 35
Mejor Error: 8750
.....:::::::::::::::::::::::.....
....:::: Para w=36 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 36
Diferencia: -24
Error total: 576
Tiempo: 2, Distancia real: 120, Distancia estimada: 72
Diferencia: -48
Error total: 2880
Tiempo: 3, Distancia real: 180, Distancia estimada: 108
Diferencia: -72
Error total: 8064
Mejor W: 36
Mejor Error: 8064
.....:::::::::::::::::::::::.....
....:::: Para w=37 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 37
Diferencia: -23
Error total: 529
Tiempo: 2, Distancia real: 120, Distancia estimada: 74
Diferencia: -46
Error total: 2645
Tiempo: 3, Distancia real: 180, Distancia estimada: 111
Diferencia: -69
Error total: 7406
Mejor W: 37
Mejor Error: 7406
.....:::::::::::::::::::::::.....
....:::: Para w=38 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 38
Diferencia: -22
Error total: 484
Tiempo: 2, Distancia real: 120, Distancia estimada: 76
Diferencia: -44
Error total: 2420
Tiempo: 3, Distancia real: 180, Distancia estimada: 114
Diferencia: -66
Error total: 6776
Mejor W: 38
Mejor Error: 6776
.....:::::::::::::::::::::::.....
....:::: Para w=39 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 39
Diferencia: -21
Error total: 441
Tiempo: 2, Distancia real: 120, Distancia estimada: 78
Diferencia: -42
Error total: 2205
Tiempo: 3, Distancia real: 180, Distancia estimada: 117
Diferencia: -63
Error total: 6174
Mejor W: 39
Mejor Error: 6174
.....:::::::::::::::::::::::.....
....:::: Para w=40 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 40
Diferencia: -20
Error total: 400
Tiempo: 2, Distancia real: 120, Distancia estimada: 80
Diferencia: -40
Error total: 2000
Tiempo: 3, Distancia real: 180, Distancia estimada: 120
Diferencia: -60
Error total: 5600
Mejor W: 40
Mejor Error: 5600
.....:::::::::::::::::::::::.....
....:::: Para w=41 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 41
Diferencia: -19
Error total: 361
Tiempo: 2, Distancia real: 120, Distancia estimada: 82
Diferencia: -38
Error total: 1805
Tiempo: 3, Distancia real: 180, Distancia estimada: 123
Diferencia: -57
Error total: 5054
Mejor W: 41
Mejor Error: 5054
.....:::::::::::::::::::::::.....
....:::: Para w=42 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 42
Diferencia: -18
Error total: 324
Tiempo: 2, Distancia real: 120, Distancia estimada: 84
Diferencia: -36
Error total: 1620
Tiempo: 3, Distancia real: 180, Distancia estimada: 126
Diferencia: -54
Error total: 4536
Mejor W: 42
Mejor Error: 4536
.....:::::::::::::::::::::::.....
....:::: Para w=43 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 43
Diferencia: -17
Error total: 289
Tiempo: 2, Distancia real: 120, Distancia estimada: 86
Diferencia: -34
Error total: 1445
Tiempo: 3, Distancia real: 180, Distancia estimada: 129
Diferencia: -51
Error total: 4046
Mejor W: 43
Mejor Error: 4046
.....:::::::::::::::::::::::.....
....:::: Para w=44 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 44
Diferencia: -16
Error total: 256
Tiempo: 2, Distancia real: 120, Distancia estimada: 88
Diferencia: -32
Error total: 1280
Tiempo: 3, Distancia real: 180, Distancia estimada: 132
Diferencia: -48
Error total: 3584
Mejor W: 44
Mejor Error: 3584
.....:::::::::::::::::::::::.....
....:::: Para w=45 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 45
Diferencia: -15
Error total: 225
Tiempo: 2, Distancia real: 120, Distancia estimada: 90
Diferencia: -30
Error total: 1125
Tiempo: 3, Distancia real: 180, Distancia estimada: 135
Diferencia: -45
Error total: 3150
Mejor W: 45
Mejor Error: 3150
.....:::::::::::::::::::::::.....
....:::: Para w=46 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 46
Diferencia: -14
Error total: 196
Tiempo: 2, Distancia real: 120, Distancia estimada: 92
Diferencia: -28
Error total: 980
Tiempo: 3, Distancia real: 180, Distancia estimada: 138
Diferencia: -42
Error total: 2744
Mejor W: 46
Mejor Error: 2744
.....:::::::::::::::::::::::.....
....:::: Para w=47 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 47
Diferencia: -13
Error total: 169
Tiempo: 2, Distancia real: 120, Distancia estimada: 94
Diferencia: -26
Error total: 845
Tiempo: 3, Distancia real: 180, Distancia estimada: 141
Diferencia: -39
Error total: 2366
Mejor W: 47
Mejor Error: 2366
.....:::::::::::::::::::::::.....
....:::: Para w=48 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 48
Diferencia: -12
Error total: 144
Tiempo: 2, Distancia real: 120, Distancia estimada: 96
Diferencia: -24
Error total: 720
Tiempo: 3, Distancia real: 180, Distancia estimada: 144
Diferencia: -36
Error total: 2016
Mejor W: 48
Mejor Error: 2016
.....:::::::::::::::::::::::.....
....:::: Para w=49 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 49
Diferencia: -11
Error total: 121
Tiempo: 2, Distancia real: 120, Distancia estimada: 98
Diferencia: -22
Error total: 605
Tiempo: 3, Distancia real: 180, Distancia estimada: 147
Diferencia: -33
Error total: 1694
Mejor W: 49
Mejor Error: 1694
.....:::::::::::::::::::::::.....
....:::: Para w=50 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 50
Diferencia: -10
Error total: 100
Tiempo: 2, Distancia real: 120, Distancia estimada: 100
Diferencia: -20
Error total: 500
Tiempo: 3, Distancia real: 180, Distancia estimada: 150
Diferencia: -30
Error total: 1400
Mejor W: 50
Mejor Error: 1400
.....:::::::::::::::::::::::.....
....:::: Para w=51 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 51
Diferencia: -9
Error total: 81
Tiempo: 2, Distancia real: 120, Distancia estimada: 102
Diferencia: -18
Error total: 405
Tiempo: 3, Distancia real: 180, Distancia estimada: 153
Diferencia: -27
Error total: 1134
Mejor W: 51
Mejor Error: 1134
.....:::::::::::::::::::::::.....
....:::: Para w=52 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 52
Diferencia: -8
Error total: 64
Tiempo: 2, Distancia real: 120, Distancia estimada: 104
Diferencia: -16
Error total: 320
Tiempo: 3, Distancia real: 180, Distancia estimada: 156
Diferencia: -24
Error total: 896
Mejor W: 52
Mejor Error: 896
.....:::::::::::::::::::::::.....
....:::: Para w=53 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 53
Diferencia: -7
Error total: 49
Tiempo: 2, Distancia real: 120, Distancia estimada: 106
Diferencia: -14
Error total: 245
Tiempo: 3, Distancia real: 180, Distancia estimada: 159
Diferencia: -21
Error total: 686
Mejor W: 53
Mejor Error: 686
.....:::::::::::::::::::::::.....
....:::: Para w=54 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 54
Diferencia: -6
Error total: 36
Tiempo: 2, Distancia real: 120, Distancia estimada: 108
Diferencia: -12
Error total: 180
Tiempo: 3, Distancia real: 180, Distancia estimada: 162
Diferencia: -18
Error total: 504
Mejor W: 54
Mejor Error: 504
.....:::::::::::::::::::::::.....
....:::: Para w=55 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 55
Diferencia: -5
Error total: 25
Tiempo: 2, Distancia real: 120, Distancia estimada: 110
Diferencia: -10
Error total: 125
Tiempo: 3, Distancia real: 180, Distancia estimada: 165
Diferencia: -15
Error total: 350
Mejor W: 55
Mejor Error: 350
.....:::::::::::::::::::::::.....
....:::: Para w=56 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 56
Diferencia: -4
Error total: 16
Tiempo: 2, Distancia real: 120, Distancia estimada: 112
Diferencia: -8
Error total: 80
Tiempo: 3, Distancia real: 180, Distancia estimada: 168
Diferencia: -12
Error total: 224
Mejor W: 56
Mejor Error: 224
.....:::::::::::::::::::::::.....
....:::: Para w=57 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 57
Diferencia: -3
Error total: 9
Tiempo: 2, Distancia real: 120, Distancia estimada: 114
Diferencia: -6
Error total: 45
Tiempo: 3, Distancia real: 180, Distancia estimada: 171
Diferencia: -9
Error total: 126
Mejor W: 57
Mejor Error: 126
.....:::::::::::::::::::::::.....
....:::: Para w=58 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 58
Diferencia: -2
Error total: 4
Tiempo: 2, Distancia real: 120, Distancia estimada: 116
Diferencia: -4
Error total: 20
Tiempo: 3, Distancia real: 180, Distancia estimada: 174
Diferencia: -6
Error total: 56
Mejor W: 58
Mejor Error: 56
.....:::::::::::::::::::::::.....
....:::: Para w=59 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 59
Diferencia: -1
Error total: 1
Tiempo: 2, Distancia real: 120, Distancia estimada: 118
Diferencia: -2
Error total: 5
Tiempo: 3, Distancia real: 180, Distancia estimada: 177
Diferencia: -3
Error total: 14
Mejor W: 59
Mejor Error: 14
.....:::::::::::::::::::::::.....
....:::: Para w=60 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 60
Diferencia: 0
Error total: 0
Tiempo: 2, Distancia real: 120, Distancia estimada: 120
Diferencia: 0
Error total: 0
Tiempo: 3, Distancia real: 180, Distancia estimada: 180
Diferencia: 0
Error total: 0
Mejor W: 60
Mejor Error: 0
.....:::::::::::::::::::::::.....
....:::: Para w=61 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 61
Diferencia: 1
Error total: 1
Tiempo: 2, Distancia real: 120, Distancia estimada: 122
Diferencia: 2
Error total: 5
Tiempo: 3, Distancia real: 180, Distancia estimada: 183
Diferencia: 3
Error total: 14
.....:::::::::::::::::::::::.....
....:::: Para w=62 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 62
Diferencia: 2
Error total: 4
Tiempo: 2, Distancia real: 120, Distancia estimada: 124
Diferencia: 4
Error total: 20
Tiempo: 3, Distancia real: 180, Distancia estimada: 186
Diferencia: 6
Error total: 56
.....:::::::::::::::::::::::.....
....:::: Para w=63 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 63
Diferencia: 3
Error total: 9
Tiempo: 2, Distancia real: 120, Distancia estimada: 126
Diferencia: 6
Error total: 45
Tiempo: 3, Distancia real: 180, Distancia estimada: 189
Diferencia: 9
Error total: 126
.....:::::::::::::::::::::::.....
....:::: Para w=64 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 64
Diferencia: 4
Error total: 16
Tiempo: 2, Distancia real: 120, Distancia estimada: 128
Diferencia: 8
Error total: 80
Tiempo: 3, Distancia real: 180, Distancia estimada: 192
Diferencia: 12
Error total: 224
.....:::::::::::::::::::::::.....
....:::: Para w=65 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 65
Diferencia: 5
Error total: 25
Tiempo: 2, Distancia real: 120, Distancia estimada: 130
Diferencia: 10
Error total: 125
Tiempo: 3, Distancia real: 180, Distancia estimada: 195
Diferencia: 15
Error total: 350
.....:::::::::::::::::::::::.....
....:::: Para w=66 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 66
Diferencia: 6
Error total: 36
Tiempo: 2, Distancia real: 120, Distancia estimada: 132
Diferencia: 12
Error total: 180
Tiempo: 3, Distancia real: 180, Distancia estimada: 198
Diferencia: 18
Error total: 504
.....:::::::::::::::::::::::.....
....:::: Para w=67 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 67
Diferencia: 7
Error total: 49
Tiempo: 2, Distancia real: 120, Distancia estimada: 134
Diferencia: 14
Error total: 245
Tiempo: 3, Distancia real: 180, Distancia estimada: 201
Diferencia: 21
Error total: 686
.....:::::::::::::::::::::::.....
....:::: Para w=68 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 68
Diferencia: 8
Error total: 64
Tiempo: 2, Distancia real: 120, Distancia estimada: 136
Diferencia: 16
Error total: 320
Tiempo: 3, Distancia real: 180, Distancia estimada: 204
Diferencia: 24
Error total: 896
.....:::::::::::::::::::::::.....
....:::: Para w=69 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 69
Diferencia: 9
Error total: 81
Tiempo: 2, Distancia real: 120, Distancia estimada: 138
Diferencia: 18
Error total: 405
Tiempo: 3, Distancia real: 180, Distancia estimada: 207
Diferencia: 27
Error total: 1134
.....:::::::::::::::::::::::.....
....:::: Para w=70 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 70
Diferencia: 10
Error total: 100
Tiempo: 2, Distancia real: 120, Distancia estimada: 140
Diferencia: 20
Error total: 500
Tiempo: 3, Distancia real: 180, Distancia estimada: 210
Diferencia: 30
Error total: 1400
.....:::::::::::::::::::::::.....
....:::: Para w=71 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 71
Diferencia: 11
Error total: 121
Tiempo: 2, Distancia real: 120, Distancia estimada: 142
Diferencia: 22
Error total: 605
Tiempo: 3, Distancia real: 180, Distancia estimada: 213
Diferencia: 33
Error total: 1694
.....:::::::::::::::::::::::.....
....:::: Para w=72 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 72
Diferencia: 12
Error total: 144
Tiempo: 2, Distancia real: 120, Distancia estimada: 144
Diferencia: 24
Error total: 720
Tiempo: 3, Distancia real: 180, Distancia estimada: 216
Diferencia: 36
Error total: 2016
.....:::::::::::::::::::::::.....
....:::: Para w=73 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 73
Diferencia: 13
Error total: 169
Tiempo: 2, Distancia real: 120, Distancia estimada: 146
Diferencia: 26
Error total: 845
Tiempo: 3, Distancia real: 180, Distancia estimada: 219
Diferencia: 39
Error total: 2366
.....:::::::::::::::::::::::.....
....:::: Para w=74 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 74
Diferencia: 14
Error total: 196
Tiempo: 2, Distancia real: 120, Distancia estimada: 148
Diferencia: 28
Error total: 980
Tiempo: 3, Distancia real: 180, Distancia estimada: 222
Diferencia: 42
Error total: 2744
.....:::::::::::::::::::::::.....
....:::: Para w=75 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 75
Diferencia: 15
Error total: 225
Tiempo: 2, Distancia real: 120, Distancia estimada: 150
Diferencia: 30
Error total: 1125
Tiempo: 3, Distancia real: 180, Distancia estimada: 225
Diferencia: 45
Error total: 3150
.....:::::::::::::::::::::::.....
....:::: Para w=76 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 76
Diferencia: 16
Error total: 256
Tiempo: 2, Distancia real: 120, Distancia estimada: 152
Diferencia: 32
Error total: 1280
Tiempo: 3, Distancia real: 180, Distancia estimada: 228
Diferencia: 48
Error total: 3584
.....:::::::::::::::::::::::.....
....:::: Para w=77 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 77
Diferencia: 17
Error total: 289
Tiempo: 2, Distancia real: 120, Distancia estimada: 154
Diferencia: 34
Error total: 1445
Tiempo: 3, Distancia real: 180, Distancia estimada: 231
Diferencia: 51
Error total: 4046
.....:::::::::::::::::::::::.....
....:::: Para w=78 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 78
Diferencia: 18
Error total: 324
Tiempo: 2, Distancia real: 120, Distancia estimada: 156
Diferencia: 36
Error total: 1620
Tiempo: 3, Distancia real: 180, Distancia estimada: 234
Diferencia: 54
Error total: 4536
.....:::::::::::::::::::::::.....
....:::: Para w=79 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 79
Diferencia: 19
Error total: 361
Tiempo: 2, Distancia real: 120, Distancia estimada: 158
Diferencia: 38
Error total: 1805
Tiempo: 3, Distancia real: 180, Distancia estimada: 237
Diferencia: 57
Error total: 5054
.....:::::::::::::::::::::::.....
....:::: Para w=80 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 80
Diferencia: 20
Error total: 400
Tiempo: 2, Distancia real: 120, Distancia estimada: 160
Diferencia: 40
Error total: 2000
Tiempo: 3, Distancia real: 180, Distancia estimada: 240
Diferencia: 60
Error total: 5600
.....:::::::::::::::::::::::.....
....:::: Para w=81 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 81
Diferencia: 21
Error total: 441
Tiempo: 2, Distancia real: 120, Distancia estimada: 162
Diferencia: 42
Error total: 2205
Tiempo: 3, Distancia real: 180, Distancia estimada: 243
Diferencia: 63
Error total: 6174
.....:::::::::::::::::::::::.....
....:::: Para w=82 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 82
Diferencia: 22
Error total: 484
Tiempo: 2, Distancia real: 120, Distancia estimada: 164
Diferencia: 44
Error total: 2420
Tiempo: 3, Distancia real: 180, Distancia estimada: 246
Diferencia: 66
Error total: 6776
.....:::::::::::::::::::::::.....
....:::: Para w=83 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 83
Diferencia: 23
Error total: 529
Tiempo: 2, Distancia real: 120, Distancia estimada: 166
Diferencia: 46
Error total: 2645
Tiempo: 3, Distancia real: 180, Distancia estimada: 249
Diferencia: 69
Error total: 7406
.....:::::::::::::::::::::::.....
....:::: Para w=84 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 84
Diferencia: 24
Error total: 576
Tiempo: 2, Distancia real: 120, Distancia estimada: 168
Diferencia: 48
Error total: 2880
Tiempo: 3, Distancia real: 180, Distancia estimada: 252
Diferencia: 72
Error total: 8064
.....:::::::::::::::::::::::.....
....:::: Para w=85 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 85
Diferencia: 25
Error total: 625
Tiempo: 2, Distancia real: 120, Distancia estimada: 170
Diferencia: 50
Error total: 3125
Tiempo: 3, Distancia real: 180, Distancia estimada: 255
Diferencia: 75
Error total: 8750
.....:::::::::::::::::::::::.....
....:::: Para w=86 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 86
Diferencia: 26
Error total: 676
Tiempo: 2, Distancia real: 120, Distancia estimada: 172
Diferencia: 52
Error total: 3380
Tiempo: 3, Distancia real: 180, Distancia estimada: 258
Diferencia: 78
Error total: 9464
.....:::::::::::::::::::::::.....
....:::: Para w=87 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 87
Diferencia: 27
Error total: 729
Tiempo: 2, Distancia real: 120, Distancia estimada: 174
Diferencia: 54
Error total: 3645
Tiempo: 3, Distancia real: 180, Distancia estimada: 261
Diferencia: 81
Error total: 10206
.....:::::::::::::::::::::::.....
....:::: Para w=88 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 88
Diferencia: 28
Error total: 784
Tiempo: 2, Distancia real: 120, Distancia estimada: 176
Diferencia: 56
Error total: 3920
Tiempo: 3, Distancia real: 180, Distancia estimada: 264
Diferencia: 84
Error total: 10976
.....:::::::::::::::::::::::.....
....:::: Para w=89 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 89
Diferencia: 29
Error total: 841
Tiempo: 2, Distancia real: 120, Distancia estimada: 178
Diferencia: 58
Error total: 4205
Tiempo: 3, Distancia real: 180, Distancia estimada: 267
Diferencia: 87
Error total: 11774
.....:::::::::::::::::::::::.....
....:::: Para w=90 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 90
Diferencia: 30
Error total: 900
Tiempo: 2, Distancia real: 120, Distancia estimada: 180
Diferencia: 60
Error total: 4500
Tiempo: 3, Distancia real: 180, Distancia estimada: 270
Diferencia: 90
Error total: 12600
.....:::::::::::::::::::::::.....
....:::: Para w=91 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 91
Diferencia: 31
Error total: 961
Tiempo: 2, Distancia real: 120, Distancia estimada: 182
Diferencia: 62
Error total: 4805
Tiempo: 3, Distancia real: 180, Distancia estimada: 273
Diferencia: 93
Error total: 13454
.....:::::::::::::::::::::::.....
....:::: Para w=92 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 92
Diferencia: 32
Error total: 1024
Tiempo: 2, Distancia real: 120, Distancia estimada: 184
Diferencia: 64
Error total: 5120
Tiempo: 3, Distancia real: 180, Distancia estimada: 276
Diferencia: 96
Error total: 14336
.....:::::::::::::::::::::::.....
....:::: Para w=93 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 93
Diferencia: 33
Error total: 1089
Tiempo: 2, Distancia real: 120, Distancia estimada: 186
Diferencia: 66
Error total: 5445
Tiempo: 3, Distancia real: 180, Distancia estimada: 279
Diferencia: 99
Error total: 15246
.....:::::::::::::::::::::::.....
....:::: Para w=94 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 94
Diferencia: 34
Error total: 1156
Tiempo: 2, Distancia real: 120, Distancia estimada: 188
Diferencia: 68
Error total: 5780
Tiempo: 3, Distancia real: 180, Distancia estimada: 282
Diferencia: 102
Error total: 16184
.....:::::::::::::::::::::::.....
....:::: Para w=95 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 95
Diferencia: 35
Error total: 1225
Tiempo: 2, Distancia real: 120, Distancia estimada: 190
Diferencia: 70
Error total: 6125
Tiempo: 3, Distancia real: 180, Distancia estimada: 285
Diferencia: 105
Error total: 17150
.....:::::::::::::::::::::::.....
....:::: Para w=96 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 96
Diferencia: 36
Error total: 1296
Tiempo: 2, Distancia real: 120, Distancia estimada: 192
Diferencia: 72
Error total: 6480
Tiempo: 3, Distancia real: 180, Distancia estimada: 288
Diferencia: 108
Error total: 18144
.....:::::::::::::::::::::::.....
....:::: Para w=97 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 97
Diferencia: 37
Error total: 1369
Tiempo: 2, Distancia real: 120, Distancia estimada: 194
Diferencia: 74
Error total: 6845
Tiempo: 3, Distancia real: 180, Distancia estimada: 291
Diferencia: 111
Error total: 19166
.....:::::::::::::::::::::::.....
....:::: Para w=98 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 98
Diferencia: 38
Error total: 1444
Tiempo: 2, Distancia real: 120, Distancia estimada: 196
Diferencia: 76
Error total: 7220
Tiempo: 3, Distancia real: 180, Distancia estimada: 294
Diferencia: 114
Error total: 20216
.....:::::::::::::::::::::::.....
....:::: Para w=99 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 99
Diferencia: 39
Error total: 1521
Tiempo: 2, Distancia real: 120, Distancia estimada: 198
Diferencia: 78
Error total: 7605
Tiempo: 3, Distancia real: 180, Distancia estimada: 297
Diferencia: 117
Error total: 21294
.....:::::::::::::::::::::::.....
....:::: Para w=100 ::::....
Tiempo: 1, Distancia real: 60, Distancia estimada: 100
Diferencia: 40
Error total: 1600
Tiempo: 2, Distancia real: 120, Distancia estimada: 200
Diferencia: 80
Error total: 8000
Tiempo: 3, Distancia real: 180, Distancia estimada: 300
Diferencia: 120
Error total: 22400
.....:::::::::::::::::::::::.....
....:::: Fin de la iteración ::::....
Parámetro aprendido: 60
Estimación para 4 horas: 240

El resultado esperado es:

Parámetro aprendido: 60
Estimación para 4 horas: 240

Cómo funciona el código

Parámetro aprendido: 60
Estimación para 4 horas: 240

datos contiene las observaciones. Cada pareja representa un tiempo y su distancia correspondiente.

mejor_w = None indica que todavía no hemos seleccionado un parámetro.

float(«inf») representa infinito. Lo usamos como error inicial para que el primer candidato pueda sustituirlo.

El primer bucle prueba los candidatos. En Python, range(0, 101) incluye el 0 y llega hasta el 100: el límite final queda excluido.

El segundo bucle calcula las estimaciones para todas las observaciones.

Esta instrucción acumula los errores al cuadrado:

error_total += diferencia ** 2

** 2 significa elevar al cuadrado. Así, los errores positivos y negativos no se cancelan. Además, los errores grandes reciben una penalización mayor.

Finalmente, el programa conserva el candidato que obtiene el menor error.

La regla que utilizamos para medir el error es un ejemplo de función de pérdida.

Qué aprende y qué decidimos nosotros

El programa aprende el valor de w dentro de los candidatos que le permitimos probar.

Nosotros hemos decidido:

  • Qué datos utilizar.
  • La forma del modelo: distancia = w x tiempo.
  • Qué valores candidatos explorar.
  • Cómo medir el error.

Este ejemplo utiliza una búsqueda sencilla. Los modelos grandes requieren métodos de optimización más eficientes.

Además, obtener un ajuste perfecto no garantiza acertar en el futuro. Si el vehículo cambia de velocidad o se detiene, la estimación puede fallar.

Diferencia entre entrenamiento e inferencia

El entrenamiento y la inferencia son dos procesos distintos:

Proceso Qué hace Ejemplo
Entrenamiento Ajusta los parámetros a partir de datos. Encontrar w = 60.
Inferencia Utiliza el modelo ajustado para producir una salida. Estimar la distancia para 4 horas.

Una vez elegido el parámetro, podemos usarlo así:

w = 60

def estimar_distancia(tiempo):
    return w * tiempo

print(estimar_distancia(4))

Esta función realiza una inferencia. No modifica el parámetro ni vuelve a entrenar el modelo.

Muchos sistemas mantienen sus parámetros fijos durante el uso. También existen métodos de aprendizaje continuo, pero requieren mecanismos específicos.

IA, machine learning, deep learning, IA generativa…

que es la ia

Estos términos están relacionados, pero no significan lo mismo:

Aquí tienes todos los conceptos organizados en tablas en formato Markdown, ideales para copiar y pegar directamente en la entrada o editor de tu blog:

🟥 1. Inteligencia Artificial (IA)

Concepto Definición
Aprendizaje por refuerzo
Método donde un agente toma decisiones en un entorno para maximizar recompensas a través de prueba y error.
Programación aumentada
Uso de herramientas de IA para asistir a los desarrolladores en la escritura, optimización y corrección de código.
Reconocimiento de voz
Tecnología que procesa y traduce el habla humana en texto estructurado o comandos ejecutables por máquinas.
Construcción de algoritmos
Proceso de diseñar secuencias paso a paso de reglas lógicas para resolver problemas o procesar datos.
Comportamiento emergente
Respuestas o capacidades complejas que surgen imprevistamente de la interacción de reglas simples en un sistema.
Ética en IA
Conjunto de principios y normativas diseñados para garantizar un uso responsable, transparente y seguro de la IA.

🟧 2. Machine Learning (ML)

Concepto Definición
PCA (Análisis de Componentes Principales)
Técnica para reducir la dimensionalidad de un conjunto de datos simplificando variables sin perder información clave.
Regresión lineal
Algoritmo que modela la relación entre una variable dependiente y una independiente trazando una línea recta de ajuste.
Regresión logística
Modelo estadístico utilizado para predecir la probabilidad de un resultado categórico o binario (ej. sí/no).
K-Vecinos más cercanos (KNN)
Algoritmo que asigna una categoría a un dato según la cercanía con sus «vecinos» más próximos.
Aprendizaje no supervisado
Enfoque de ML que analiza datos sin etiquetar para encontrar patrones o estructuras ocultas.
K-Medias (K-Means)
Algoritmo de agrupamiento (clustering) que divide los datos en $K$ grupos identificando sus centroides.
Aprendizaje supervisado
Enfoque donde el modelo se entrena utilizando datos de entrada previamente etiquetados con la respuesta correcta.
Prueba de hipótesis
Método estadístico que evalúa si hay suficiente evidencia empírica para respaldar una afirmación específica.
Máquinas de vectores de soporte (SVM)
Algoritmo de clasificación que busca el hiperplano óptimo para separar datos en diferentes categorías.
Árboles de decisión
Estructuras en forma de diagrama de flujo que toman decisiones dividiendo los datos en ramas según reglas simples.

🟩 3. Redes Neuronales (RN)

Concepto Definición
Feed Forward
Red neuronal directa donde la información fluye únicamente en un sentido, desde la entrada hacia la salida.
Perceptrón
La unidad básica (neurona artificial) que toma entradas ponderadas para producir una salida mediante una función de activación.
Retropropagación (Backpropagation)
Algoritmo de entrenamiento que ajusta los pesos de las neuronas calculando el error desde la salida hacia atrás.
Máquinas de estado líquido
Tipo de red neuronal recurrente basada en «reservorios» que procesa datos temporales con dinámica de fluidos.
Red de creencia profunda (DBN)
Red generativa compuesta por múltiples capas de variables latentes no supervisadas para representar patrones complejos.
Red de vectores de soporte
Adaptación entre estructuras neuronales y clasificadores SVM para optimizar márgenes de decisión.
Máquina de Boltzmann
Red neuronal estocástica con conexiones bidireccionales capaz de aprender distribuciones de probabilidad.
Red de Hopfield
Red neuronal recurrente autoasociativa que actúa como un sistema de memoria direccionable por contenido.

🟦 4. Deep Learning (DL)

Concepto Definición
Épocas
Número total de pasadas completas que realiza el algoritmo de entrenamiento sobre todo el conjunto de datos.
CNN (Redes Convolucionales)
Arquitecturas especializadas en el procesamiento de datos con estructura de cuadrícula, como imágenes y video.
RNN (Redes Recurrentes)
Redes diseñadas para procesar secuencias de datos (texto o audio) reteniendo información en ciclos de memoria.
Transformers
Arquitectura basada en mecanismos de atención (self-attention) que procesa secuencias completas en paralelo.
Aprendizaje por refuerzo profundo
Combinación de redes profundas con aprendizaje por refuerzo para tomar decisiones en entornos complejos.
LSTM (Memoria Corto-Largo Plazo)
Tipo de RNN capaz de aprender dependencias a largo plazo superando la pérdida de gradiente.
Autocodificadores (Autoencoders)
Redes diseñadas para comprimir la entrada en un código latente y luego reconstruir la salida.
GPT
Modelo de lenguaje autorregresivo basado en Transformers preentrenado con grandes volúmenes de texto.
BERT
Modelo bidireccional mediante Transformers que analiza el contexto previo y posterior de cada palabra.

⬜ 5. IA Generativa

Concepto Definición
Aprendizaje N-Shot
Capacidad de un modelo para realizar tareas tras ver solo unos pocos ejemplos de referencia (few-shot).
Modelos fundacionales
Grandes modelos entrenados con volúmenes masivos de datos capaces de adaptarse a múltiples tareas secundarias.
QLoRA
Técnica eficiente de ajuste fino (fine-tuning) que cuantiza el modelo para reducir el uso de memoria.
IA multimodal
Sistemas entrenados para procesar y combinar simultáneamente diferentes tipos de datos (texto, imágenes, audio).
BigGAN
Modelo de Red Generativa Antagónica a gran escala capaz de sintetizar imágenes de alta resolución.
Agentes
Sistemas autónomos impulsados por IA que pueden planificar, razonar y ejecutar acciones para cumplir objetivos.
ZSL (Zero-Shot Learning)
Capacidad del modelo para clasificar o resolver tareas sin haber visto ningún ejemplo previo durante el entrenamiento.
RLHF
Aprendizaje por refuerzo con retroalimentación humana para ajustar los modelos según la preferencia humana.
OSL (One-Shot Learning)
Clasificación o generación de contenido a partir de un único ejemplo proporcionado.
GANs (Redes Antagónicas)
Par de redes (generador y discriminador) que compiten para crear datos sintéticos hiperrealistas.
Grandes modelos de lenguaje (LLMs)
Modelos de aprendizaje profundo con miles de millones de parámetros entrenados para comprender y generar lenguaje.
Aprendizaje por transferencia
Reutilización de un modelo preentrenado en una tarea general para adaptarlo a un problema específico.

Los sistemas generativos modernos suelen utilizar aprendizaje profundo. Sin embargo, una red neuronal también puede clasificar imágenes o estimar cantidades sin generar contenido.

Errores frecuentes al empezar con inteligencia artificial

Pensar que más datos siempre solucionan el problema

También importan su calidad, diversidad y relación con la tarea. Muchos datos incorrectos pueden producir un modelo poco útil.

Confundir un buen entrenamiento con un buen modelo

Un modelo puede memorizar los ejemplos de entrenamiento y fallar con otros nuevos. Esta dificultad está relacionada con el sobreajuste, que estudiaremos en profundidad.

Confundir una relación con una causa

Que dos variables cambien juntas no demuestra que una provoque la otra.

Creer que los modelos sustituyen la programación

Los sistemas de IA necesitan código para preparar datos, entrenar modelos, evaluar resultados e integrarlos en aplicaciones.

Dar por correcta una respuesta convincente

Una respuesta puede estar bien redactada y contener errores. La evaluación depende de la tarea y de evidencias comprobables.

Ejercicios de autoevaluación

Antes de leer las soluciones, intenta responder:

  1. Una tienda aplica una tarifa de envío escrita manualmente. ¿Necesita aprendizaje automático?
  2. Un sistema ajusta sus parámetros utilizando correos etiquetados. ¿Está entrenando o realizando inferencia?
  3. El sistema clasifica un correo nuevo sin modificar sus parámetros. ¿Qué proceso realiza?
  4. En el ejemplo del vehículo, ¿qué aprende el programa?
  5. Si un modelo acierta todos sus ejemplos de entrenamiento, ¿qué falta comprobar?

Soluciones explicadas

1. No lo necesita. Si las condiciones están definidas, pueden implementarse directamente mediante reglas.

2. Está entrenando. Utiliza ejemplos para ajustar sus parámetros.

3. Realiza inferencia. Aplica el modelo ya ajustado a una entrada nueva.

4. Aprende el valor del parámetro w. La forma de la fórmula y el procedimiento para medir el error los hemos elegido nosotros.

5. Falta evaluar su generalización. Debemos comprobar su funcionamiento con datos que no haya utilizado para ajustarse.

Preguntas frecuentes sobre inteligencia artificial

¿Toda automatización es inteligencia artificial?

No. Una tarea puede automatizarse mediante instrucciones fijas sin utilizar técnicas que normalmente se consideran IA.

¿Es necesario saber matemáticas para aprender IA?

Puedes empezar comprendiendo las ideas y los ejemplos. Para profundizar necesitarás álgebra, probabilidad, estadística y cálculo, que se introducirán progresivamente en el curso.

¿Un modelo aprende cada vez que lo utilizamos?

No necesariamente. Muchos modelos generan resultados sin modificar sus parámetros. Guardar información o utilizar el contexto de una conversación tampoco equivale, por sí solo, a entrenarlos.

¿Por qué empezamos con un ejemplo tan sencillo?

Porque permite identificar las piezas que después aparecerán en sistemas más complejos: datos, modelo, parámetros, pérdida, entrenamiento y predicción.

Próxima lección del curso

En la lección 0.2 — Las piezas de un sistema de aprendizaje: datos, modelo, objetivo y evaluación veremos cómo se relacionan estos componentes y cómo definir un problema antes de elegir una técnica de inteligencia artificial.