Phase 00 - Lesson 22

Funciones y Graficos

This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.

Una funcion es una maquina: dale un numero, recibe un numero de vuelta. Un grafico es una foto de todos los pares entrada-salida a la vez.

Tipo: Aprender Lenguajes: Python Requisitos previos: Variables y Algebra (00-21) Tiempo: ~40 minutos

Objetivos de Aprendizaje

  • Leer f(x) como "la salida de la maquina f cuando le das x"
  • Evaluar una funcion en una entrada dada
  • Reconocer las formas de tres funciones por intuicion: lineal, exponencial, sigmoide
  • Conectar cada forma a una cantidad real de IA (una recta de tasa de aprendizaje, decaimiento exponencial, una compuerta sigmoide)

El Concepto

Una funcion es una maquina entrada-salida

En la leccion 00-21 una variable era una incognita por resolver. Una funcion es diferente: es una regla que convierte cualquier entrada en una salida. La escribimos f(x), leida "f de x", que significa "el valor que la maquina f produce cuando se le da x".

f(x) = 2x + 1

Esta maquina duplica la entrada y suma 1. Dale numeros:

f(0) = 2(0) + 1 = 1
f(3) = 2(3) + 1 = 7
f(5) = 2(5) + 1 = 11

El x es una ranura que llenas. Todo el lado derecho es solo la aritmetica del orden de las operaciones de la leccion 00-13, evaluada en lo que pongas. Nota que esto NO es resolver para x; se te DA x y calculas la salida.

Un grafico es una foto de la maquina

Si calculas f(x) para muchas entradas y graficas cada par (entrada, salida) como un punto, los puntos forman una forma. Esa forma es el grafico, y su forma te dice al instante como se comporta la maquina. No necesitas dibujarlo perfectamente; necesitas reconocer tres formas.

Forma 1: lineal (una recta)

f(x) = 2x + 1

Cada paso a la derecha de 1 mueve la salida hacia arriba la misma cantidad (aqui, 2). El cambio constante da una recta. El numero que multiplica x (el 2) es la inclinacion, llamada pendiente. Un "calentamiento" de tasa de aprendizaje que sube una cantidad fija en cada paso es una recta.

Forma 2: exponencial (una curva que explota o decae)

f(x) = 2^x

Esta es la leccion de potencias (00-17) convertida en funcion. Cada paso a la derecha no suma una cantidad fija; MULTIPLICA por 2. Asi que la salida se duplica en cada paso: 1, 2, 4, 8, 16. La curva empieza plana y se dispara hacia arriba. Ejecutala al reves con un signo negativo y decae hacia cero:

f(x) = 2^(-x)     ->   1, 0.5, 0.25, 0.125, ...   (dividiendo a la mitad cada paso)

Los cronogramas de decaimiento de tasa de aprendizaje y la ponderacion exp(-x) en muchas formulas de IA tienen esta forma.

Forma 3: sigmoide (una S que comprime cualquier cosa en 0 a 1)

sigmoide(x) = 1 / (1 + e^(-x))

Parece complicada, pero su comportamiento es simple: toma CUALQUIER entrada, desde un numero negativo enorme hasta uno positivo enorme, y la comprime en el rango entre 0 y 1. Una entrada muy negativa da casi 0, una muy positiva da casi 1, y sigmoide(0) = 0.5 queda exactamente en el medio. La curva es una letra S estirada. Esta es la clasica forma de "compuerta" o "probabilidad": convierte una puntuacion bruta en algo que puedes leer como "que tan encendido, de 0 a 1". Las neuronas, las compuertas de atencion y los clasificadores binarios todos la usan.

El resumen de una linea de las tres formas

lineal:       cambio constante      ->  recta
exponencial:  cambio multiplicativo ->  plana luego explosiva (o decayendo)
sigmoide:     comprimida            ->  curva en S, salida atrapada en 0..1

Recuerdo activo

Produce la respuesta. Lo mas facil primero.

  1. Para f(x) = 2x + 1, cuanto es f(4)?
  2. Para g(x) = 2^x, cuanto es g(3)?
  3. Aproximadamente, cuanto es sigmoide(0), y por que?

Respuestas: 9 (2x4+1); 8 (la escalera de duplicaciones, 2^3); 0.5, porque una entrada 0 cae exactamente en el medio del rango de 0 a 1.

Alerta de error comun

La trampa es confundir el crecimiento lineal y el exponencial. Una recta SUMA la misma cantidad en cada paso; un exponencial MULTIPLICA en cada paso. Se parecen cerca del inicio, pero el exponencial deja a la recta muy atras: en x = 10, la recta 2x es 20 mientras 2^x es 1024. Cuando alguien dice "crece linealmente" frente a "crece exponencialmente", ese factor (50x aqui, y subiendo) es toda la diferencia.

Construyelo

python phases/00-setup-and-tooling/22-functions-and-graphs/code/functions.py

Por que esto importa para la IA

Los modelos son funciones: una red es un enorme f(entradas) = salidas. El entrenamiento remodela esa funcion para ajustarse a los datos. Las tres formas aqui estan en todas partes: las capas lineales hacen Wx + b, los cronogramas de tasa de aprendizaje suben y decaen, y la sigmoide (y su prima softmax) convierte puntuaciones en probabilidades a la salida de casi todo clasificador. Reconocer una forma a partir de su formula es como predices que hara una parte de un modelo antes de siquiera ejecutarla.

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).