70. Aplicaciones en inteligencia artificial

La inteligencia artificial utiliza álgebra para representar datos, combinar variables, ajustar pesos y producir predicciones.

70.1 Introducción

Los sistemas de inteligencia artificial trabajan con datos numéricos. Para procesarlos, usan expresiones algebraicas, vectores, matrices, funciones y optimización.

Datos de entrada → modelo → salida estimada
El álgebra describe cómo se transforma la información.

Aunque los modelos reales pueden ser complejos, muchas ideas básicas se entienden con álgebra elemental.

70.2 Datos como vectores

Un vector es una lista ordenada de números. En inteligencia artificial, un vector puede representar características de un objeto.

const vivienda = [80, 3, 2];

console.log(vivienda[0]); // metros cuadrados
console.log(vivienda[1]); // habitaciones
console.log(vivienda[2]); // baños

Cada posición del vector representa una característica distinta.

70.3 Pesos del modelo

Un peso indica la importancia de una característica dentro de un cálculo.

salida = x₁w₁ + x₂w₂ + x₃w₃

Si un peso es grande, esa característica influye más en el resultado.

70.4 Producto punto

El producto punto combina dos vectores multiplicando valores correspondientes y sumando los resultados.

[x₁, x₂, x₃] · [w₁, w₂, w₃]
= x₁w₁ + x₂w₂ + x₃w₃

Esta operación es central en muchos modelos de aprendizaje automático.

70.5 Producto punto en JavaScript

El producto punto se implementa recorriendo ambos vectores al mismo tiempo.

function productoPunto(a, b) {
  let suma = 0;

  for (let i = 0; i < a.length; i++) {
    suma += a[i] * b[i];
  }

  return suma;
}

const entrada = [80, 3, 2];
const pesos = [1200, 15000, 10000];

console.log(productoPunto(entrada, pesos));

El resultado combina todas las características en un solo valor.

70.6 Sesgo o bias

Además de los pesos, muchos modelos agregan un valor constante llamado sesgo o bias.

salida = x₁w₁ + x₂w₂ + b

El sesgo ajusta la salida aunque las entradas valgan cero.

70.7 Predicción lineal

Una predicción lineal combina entradas, pesos y sesgo.

function productoPunto(a, b) {
  let suma = 0;

  for (let i = 0; i < a.length; i++) {
    suma += a[i] * b[i];
  }

  return suma;
}

function predecir(entrada, pesos, sesgo) {
  return productoPunto(entrada, pesos) + sesgo;
}

const entrada = [80, 3, 2];
const pesos = [1200, 15000, 10000];
const sesgo = 50000;

console.log(predecir(entrada, pesos, sesgo));

Este ejemplo simplificado muestra cómo un modelo convierte características en una estimación.

70.8 Matrices de datos

Cuando hay muchos registros, las entradas se organizan como una matriz: cada fila es un ejemplo y cada columna es una característica.

const datos = [
  [80, 3, 2],
  [60, 2, 1],
  [120, 4, 3]
];

console.log(datos[0]);
console.log(datos[2][1]);

Esta forma permite aplicar el mismo modelo a muchas entradas.

70.9 Predicciones para varios registros

Un ciclo puede aplicar una función de predicción a cada fila de una matriz de datos.

function productoPunto(a, b) {
  let suma = 0;

  for (let i = 0; i < a.length; i++) {
    suma += a[i] * b[i];
  }

  return suma;
}

function predecir(entrada, pesos, sesgo) {
  return productoPunto(entrada, pesos) + sesgo;
}

function predecirLote(datos, pesos, sesgo) {
  const resultados = [];

  for (let i = 0; i < datos.length; i++) {
    resultados.push(predecir(datos[i], pesos, sesgo));
  }

  return resultados;
}

const datos = [[80, 3, 2], [60, 2, 1], [120, 4, 3]];
const pesos = [1200, 15000, 10000];

console.log(predecirLote(datos, pesos, 50000));

Procesar lotes es común cuando se evalúan muchos datos a la vez.

70.10 Función de activación

Una función de activación transforma la salida de un cálculo. Puede limitarla, suavizarla o convertirla en una decisión.

Si salida ≥ 0, devolver 1.
Si salida < 0, devolver 0.

Este tipo de regla puede convertir un cálculo numérico en una clasificación simple.

70.11 Clasificación simple

Una clasificación binaria puede decidir entre dos clases usando una frontera algebraica.

function activar(valor) {
  return valor >= 0 ? 1 : 0;
}

function clasificar(x, y) {
  const salida = 2 * x + 3 * y - 10;
  return activar(salida);
}

console.log(clasificar(1, 1));
console.log(clasificar(3, 2));

La expresión 2x + 3y - 10 define una frontera de decisión.

70.12 Error de predicción

Para mejorar un modelo, se compara la predicción con el valor real.

error = valorReal - predicción

El error indica cuánto se equivocó el modelo y en qué dirección.

70.13 Error cuadrático

Elevar el error al cuadrado evita signos negativos y penaliza errores grandes.

function errorCuadratico(real, prediccion) {
  const error = real - prediccion;
  return error ** 2;
}

console.log(errorCuadratico(100, 90));
console.log(errorCuadratico(100, 130));

Esta idea aparece en funciones de pérdida usadas para entrenar modelos.

70.14 Entrenamiento como ajuste

Entrenar un modelo significa ajustar pesos para reducir errores. En modelos reales, este proceso se repite muchas veces con algoritmos de optimización.

Pesos iniciales → predicción → error → ajuste de pesos
El ciclo se repite hasta mejorar el resultado.

La base algebraica está en calcular salidas, medir errores y actualizar valores.

70.15 Conclusión

La inteligencia artificial utiliza álgebra para representar datos, combinar variables, calcular predicciones y medir errores. Vectores, matrices, pesos y funciones forman el lenguaje básico de muchos modelos.

La IA no reemplaza el álgebra: la usa como una de sus herramientas fundamentales.

Con este tema se completa el recorrido de Álgebra Básica para Programación.