← Todas las materias

Reconocimiento de Patrones

Ing. Rubén Omar Azuara Domínguez · Grupo 1 · 2027-1 · Lunes y viernes 07:00–08:30 · Salón S227 · ruben.azuara@ingenieria.unam.edu

Evaluación

Ponderación, prácticas, proyecto, Classroom

Material

Enunciados, audio de apoyo, plantilla IEEE, diapositivas del profesor

Entregas

PDFs que ya entregaste

Programa del profesor (2027-1)

Temario que sigue el profesor (difiere del oficial FI de 5 temas). Lenguaje del curso: Python. Google Classroom: tz6dpily.

Núm.Tema
1Conceptos básicos de reconocimiento de patrones
2Extracción de características
3Selección y reducción de dimensionalidad
4Evaluación de modelos
5Funciones de decisión
6Clasificación de patrones por medio de funciones de distancia
7Clasificación de patrones por medio de funciones de similitud
8Clasificadores de Aprendizaje Automático
9Aprendizaje Profundo
10Patrones Estructurales y Procesamiento de Lenguaje Natural
Temario oficial FI (clave 0757) y bibliografía

Objetivo: el alumno aplicará las técnicas modernas del reconocimiento de patrones utilizando computadoras digitales.

Núm.TemaHoras
1Conceptos básicos de reconocimiento de patrones3.0
2Funciones de decisión9.0
3Clasificación de patrones por medio de funciones de distancia12.0
4Clasificación de patrones por medio de funciones de similitud12.0
5Reconocimiento de patrones sintácticos12.0

Bibliografía: Schalkoff — Pattern Recognition; Tou & González — Pattern Recognition Principles; Duda & Hart — Pattern Classification and Scene Analysis; Fukunaga — Introduction to Statistical Pattern Recognition.

Programa del profesor (10 temas, sin desglose de subtemas). En azul, lo que ya se vio en clase (enlaza a la clase). En gris, lo que falta.

Tema 1 — Conceptos básicos de reconocimiento de patrones · presentación del profesor

En corto

  • RdP = asignar una identidad (clase) a un patrón a partir de mediciones; el que decide la clase es el clasificador.
  • Cantidad desconocida continua → teoría de la estimación; discreta → reconocimiento de patrones.
  • Dos partes: extracción de características + clasificación.
  • Vector de características x = (x₁ … xₙ); más dimensiones ≠ mejor (maldición de la dimensionalidad).

🎯 Para el examen

  • Términos: patrón, clase, característica, clasificación, entrenamiento.
  • Los 3 problemas del diseño: representación, extracción / reducción de dimensionalidad, decisión óptima.
  • Maldición de la dimensionalidad: la variabilidad de la distancia cae exponencialmente con las dimensiones (ése es el problema real); se resuelve con reducción de dimensionalidad, que implica pérdida de información.
¿Qué es el reconocimiento de patrones?

Desde hace mucho se busca hacer inferencias de una cantidad desconocida a partir de mediciones relacionadas. Según cómo sea esa cantidad:

  • Continua → teoría de la estimación.
  • Discreta → reconocimiento de patrones.

El RdP se enfoca en determinar una identidad particular (la clase del patrón) con base en información medida. El proceso que selecciona la clase se llama clasificador. En otras palabras: las entradas se miden, analizan y clasifican como pertenecientes a una de un conjunto de clases, extrayendo características significativas frente al fondo o los detalles irrelevantes.

Ocurre a diario: al caminar, ¿qué está frente a ti?, ¿es seguro cruzar?; ¿qué música escuchas?; ¿algo se está quemando en la estufa? Es entrada sensorial detectada, analizada y reconocida (clasificada), consciente o inconscientemente.

Las 2 partes de la tarea central
  1. Extracción de características.
  2. Clasificación.
Términos
  • Patrón: cualquier objeto, proceso o evento que puede describirse y distinguirse de otros.
  • Clase: categoría o etiqueta a la que pertenece un patrón; conjunto de patrones con propiedades similares.
  • Característica: medición individual que describe un aspecto del patrón.
  • Clasificación: asignar un patrón a una de varias clases predefinidas según sus características.
  • Entrenamiento: proceso por el que el sistema aprende a partir de ejemplos conocidos (datos de entrenamiento) para poder clasificar patrones nuevos.
Estructura conceptual

Un patrón es detectado → da lugar a mediciones → se extraen características → se entregan a un clasificador → que selecciona la clase asociada con el patrón detectado.

El vector de características reúne toda la información medida disponible sobre el patrón:

x = (x₁, x₂, x₃, …, xₙ)ᵀ
Problemas fundamentales en el diseño de un sistema de RdP

1. Representación de la información que puede medirse de los objetos. Cada cantidad medida describe una característica; el vector de características las contiene todas. Pregunta clave: ¿tenemos suficiente información? (ej. ¿salmón o robalo?).

2. Extracción de atributos y reducción de dimensionalidad. Ejemplo Breast Cancer Wisconsin: 569 instancias (357 benignos, 212 malignos), 30 características (radio, textura, perímetro, área, suavidad, compacidad, concavidad, puntos cóncavos, simetría, dimensión fractal). ¿Todas aportan? Correlación con la clase:

CaracterísticaCorrelación
Concavidad0.85
Área0.82
Textura0.79
Simetría0.12
Fractal0.05

→ conviene quedarse con área, textura y concavidad. Otro ejemplo: una imagen 3000×1800 aplanada es x ∈ ℝ⁵ ⁴⁰⁰ ⁰⁰⁰; con reducción de dimensionalidad pasa a z ∈ ℝ⁵⁰⁰.

3. Procedimientos de decisión óptimos para la clasificación e identificación.

La maldición de la dimensionalidad

Las "dimensiones" son las características/atributos de los datos. Al añadir más dimensiones, el volumen del espacio crece exponencialmente. Esto provoca: dispersión de los datos, más cómputo, sobreajuste, que las distancias pierdan sentido, degradación del rendimiento y retos de visualización.

Se manifiesta de dos formas:

  1. La distancia media entre los datos aumenta con el número de dimensiones.
  2. La variabilidad de la distancia disminuye exponencialmente con el número de dimensiones — éste es el verdadero problema.

Solución: reducción de dimensionalidad — reducir el número de variables aleatorias hasta un conjunto de variables principales. Conserva la información importante y descarta lo redundante o poco importante, pero eliminar características implica pérdida de información.

Ejemplos de sistemas de RdP
  • Visión computacional: reconocimiento facial.
  • Diagnóstico médico por imagen.
  • Vehículos autónomos.
  • Procesamiento del lenguaje natural: asistentes virtuales, traducción automática.
  • Biometría: reconocimiento de huellas dactilares, de iris.
Tema 2 — Extracción de características · Clase 01

Contenido de la Clase 01 (audio) + diapositivas del profesor I · II · III.

En corto

  • Extracción de características = pasar datos crudos (imagen / audio) a un vector numérico corto que separe clases (y ∈ ℝᴺ → x ∈ ℝᵈ, d ≪ N).
  • Imagen: estadísticas, histogramas, momentos geométricos (Hu = invariante a traslación / escala / rotación), textura GLCM, forma con HOG, puntos clave SIFT / SURF.
  • Audio: temporales (energía, RMS, ZCR), espectrales (centroide, ancho de banda, roll-off, flux, flatness), tiempo-frecuencia (MFCC + Δ / ΔΔ).
  • HOG de una imagen 64×128 → vector de 3 780; audio → vector de 80 dimensiones.

🎯 Para el examen

  • Momentos: espaciales (dependen de la posición) → centrales (invariantes a traslación) → normalizados (+ escala) → Hu (+ rotación).
  • GLCM: parámetros N, d, θ; hacerla simétrica y normalizar antes de sacar descriptores (contraste, ASM / energía, entropía…).
  • MFCC: se descarta obligatoriamente el coeficiente 0 (solo energía promedio); el proceso es irreversible.
  • Δ = velocidad del cambio del timbre; ΔΔ = aceleración.
¿Qué es la extracción de características?

Es el proceso que transforma un conjunto de datos crudos (imágenes, audio, series de tiempo…) en un vector de valores numéricos que describe de forma compacta la información relevante del patrón.

y ∈ ℝᴺ  →  x ∈ ℝᵈ ,   d ≪ N

En lugar de trabajar con los datos originales (alta dimensionalidad, ruidosos, redundantes), se representa cada muestra con un conjunto reducido de atributos que conserven la información discriminante necesaria para separar clases.

¿Por qué tener menos características?
  • Un número finito N de muestras limita la dimensionalidad n para la que las estimaciones estadísticas son confiables.
  • Características correlacionadas entre sí pueden degradar el desempeño.
  • La complejidad del clasificador aumenta con el número n de características.

En qué consiste: analizar la naturaleza del dato → identificar propiedades relevantes del patrón → calcular medidas cuantitativas que las describan → construir un vector de características comparable entre muestras.

Se busca: discriminabilidad (separar clases), compacidad (reducir dimensión), robustez (ruido, variación intra-clase) y bajo costo computacional.

Características estadísticas

Describen la distribución de los datos sin considerar explícitamente su estructura espacial o temporal.

Primer y segundo orden:

μ  = (1/N) Σ xᵢ                    (media)
σ² = (1/N) Σ (xᵢ − μ)²             (varianza)

Orden superior:

skewness       = (1/(N·σ³)) Σ (xᵢ − μ)³
excess kurtosis = (1/(N·σ⁴)) Σ (xᵢ − μ)⁴ − 3
Skewness (asimetría)Curtosis (exceso)
> 0cola alargada a la derechadatos concentrados en la media, colas pesadas
= 0simétricacomo la normal
< 0cola alargada a la izquierdadatos más dispersos, colas más ligeras

Dos señales con la misma media pueden tener varianzas muy distintas; dos señales con misma media y varianza pueden separarse por skewness / curtosis.

Características locales: ventanas

Lo anterior se aplica de forma global (tendencia general), pero también local (estructura espacial o temporal): la señal de tamaño N se divide en L ventanas.

  • Sin traslape — ej. tamaño de ventana L = 4, traslape 0 %.
  • Con traslape — ej. L = 4, traslape 50 %, paso = 2.

¿Qué hacer con todas las ventanas?

  1. Concatenación directa: f = [f₁, f₂, f₃, …]. Conserva la información local; desventaja: la dimensión crece rápido.
  2. Estadísticas sobre estadísticas: para cada característica a lo largo de las ventanas se calcula μ_μ, σ²_μ, μ_σ², σ²_σ², …
  3. Pooling: ej. maxₖ σ²ₖ.
EnfoqueCaptura
GlobalTendencia general
LocalCambios y estructura
Local + poolingEstructura y robustez

Cuándo NO vale la pena usar ventanas locales: señales estacionarias, datos muy ruidosos, ventanas demasiado pequeñas, problemas donde la estructura local no es relevante.

Histograma

Describe cómo se distribuyen los valores de una señal o dato, sin importar su posición exacta. No se usa como gráfica sino como vector de características. Aplica a imágenes, audio y otras señales.

h = [146, 870, 1159, 1394, 1348, 1334, 1289, …]
VentajasDesventajas
Simple; robusto al ruidoPierde información espacial/temporal
Invariante a permutaciones / traslacionesSensible al número de bins
Dimensión controlable; funciona con pocos datosNo captura relaciones entre valores vecinos
Momentos geométricos (formas)

Las medidas geométricas simples son insuficientes para formas complejas o para garantizar invariancia a traslación, escala o rotación. Los momentos geométricos describen cómo se distribuyen espacialmente los píxeles de un objeto.

Momentos espaciales — para una imagen f(x,y) (binaria o en escala de grises):

M(p,q) = Σx Σy  x^p · y^q · f(x, y)        con p, q ≥ 0

Área (imagen binaria) = M(0,0)
Centroide (x̄, ȳ) = ( M(1,0)/M(0,0) ,  M(0,1)/M(0,0) )

Dependen de la posición del objeto.

Momentos centrales — para eliminar la traslación:

μ(p,q) = Σx Σy  (x − x_c)^p · (y − y_c)^q · f(x, y)

Invariantes a traslación; describen la forma alrededor de su centro; aún dependen de la escala.

Momentos normalizados — a partir de los centrales, dividiendo por una potencia del momento de orden cero:

η_ij = μ_ij / μ₀₀^((i+j)/2 + 1)        con i + j ≥ 2

Invariantes a traslación y escala; aún variantes a rotación.

Momentos de Hu — 7 momentos invariantes a rotación, escala y traslación, calculados a partir de los normalizados. Es común aplicarles una escala logarítmica (los valores crudos son minúsculos, del orden de 1e-3 a 1e-15).

Textura: GLCM (Gray Level Co-occurrence Matrix)

Si la forma describe la silueta del objeto, la textura describe la organización interna de los niveles de gris. La GLCM modela qué tan frecuentemente ciertos niveles de gris aparecen juntos.

Para una imagen cuantizada con N niveles de gris, la GLCM es una matriz N×N donde cada elemento

P(i, j | d, θ)

indica cuántas veces un píxel de valor i aparece junto a un píxel de valor j, separados por una distancia d en una dirección θ. Parámetros: niveles de gris N, distancia d, dirección θ.

Cómo se calcula:

  1. Definir distancia d y dirección θ (ej. d = 1, θ = 0° → de izquierda a derecha).
  2. Crear un arreglo N×N para la GLCM.
  3. Contar cuántas transiciones hay de un valor de intensidad a otro según d y θ.
  4. Hacerla simétrica respecto a la diagonal principal: sumar la matriz "oeste→este" con la "este→oeste".
  5. Normalizar: dividir cada celda entre el total de conteos.

A partir de la matriz normalizada se calculan estadísticos que forman el vector de características:

  • Grupo de contraste: Contraste, Dissimilarity, Homogeneity.
  • Relacionados al orden: Angular Second Moment (ASM) / Energía, Entropía.
  • Estadística descriptiva: Media, Varianza, Correlación.
Ejercicios resueltos en clase (Hu y GLCM)

Guardados en Ejercicios de Hu y GLCM (PDF). Resumen de los que se pueden transcribir:

Ejemplo 1 — Momentos geométricos   Mpq = ΣΣ xp yq f(x,y). Imagen 5×5 con cuatro píxeles en 1 (x ∈ {2,3}, y ∈ {1,2}):

M00 = Σ f            = 1+1+1+1                 = 4
M10 = Σ x·f          = 2+3+2+3                 = 10
M01 = Σ y·f          = 1+1+2+2                 = 6
M11 = Σ x·y·f        = 2·1 + 3·1 + 2·2 + 3·2     = 15

M = [ M00  M10 ] = [ 4  10 ]
    [ M01  M11 ]   [ 6  15 ]

Ejemplo 2 — Momentos centrales   μpq = ΣΣ (x−x̄)p (y−ȳ)q f(x,y).

Centroide {x̄, ȳ} = { M10/M00 , M01/M00 } = { 10/4 , 6/4 } = { 2.5 , 1.5 }

μ00 = M00 = 4
μ10 = 0 ,  μ01 = 0            (siempre, por definición del centroide)
μ11 = ΣΣ (x−2.5)(y−1.5) f
     = (−0.5)(−0.5) + (0.5)(−0.5) + (−0.5)(0.5) + (0.5)(0.5)
     = 0.25 − 0.25 − 0.25 + 0.25 = 0
Relación:  μ11 = M11 − x̄·M01 = M11 − ȳ·M10

μ = [ μ00  μ10 ] = [ 4  0 ]
    [ μ01  μ11 ]   [ 0  0 ]

Ejemplo 4 — GLCM (imagen 4×4, niveles de gris 0–3), d = 1. GLCM θ = 0 (izquierda→derecha), sin normalizar — 12 pares en total:

       j=0  j=1  j=2  j=3
 i=0    2    2    1    0
 i=1    0    2    0    0
 i=2    0    0    3    1
 i=3    0    0    0    1

La versión simétrica y la dirección θ = 90° (arriba→abajo) están resueltas celda por celda en el PDF.

HOG — Histogram of Oriented Gradients

Descriptor de forma: codifica los gradientes de intensidad y sus orientaciones dentro de regiones localizadas de la imagen. Captura estructuras locales de bordes. Aplicación estrella: detección de personas y objetos; fue lo más sólido del estado del arte antes de las redes convolucionales.

HOG · A) Preprocesamiento
  • Normalizar las intensidades de los píxeles (escalar los canales a rango 0–1).
  • Recortar la región del objeto y redimensionar obligatoriamente a 64 × 128 px (estándar validado experimentalmente: mejor balance costo / información). Ejemplo de clase: persona de 1090×612 → recorte 196×438 → escalar a 64×128.
HOG · B) Cálculo de gradientes

El gradiente indica la dirección de mayor cambio de luminosidad → un borde. Se calcula en X e Y por convolución con filtros detectores de bordes:

Filtro eje X (Gx):  matriz 1×3   → detecta bordes verticales
Filtro eje Y (Gy):  matriz 3×1   → detecta bordes horizontales

Convolución (A * B): se refleja B sobre sí misma y se va
multiplicando y deslizando sobre A. Aplica en 2D, 3D, etc.

Magnitud:    M = √(Gx² + Gy²)        (nueva imagen de intensidades de cambio)
Orientación: θ = arctan(Gy / Gx)     (dirección del borde en cada píxel)
HOG · C) Histograma por celda
  • Dividir la imagen 64×128 en celdas de 8 × 8 px.
  • Histograma de 0 a 180° en 9 bins de 20°: 0–19, 20–39, 40–59, 60–79, 80–99, 100–119, 120–139, 140–159, 160–180.
  • Cada píxel de la celda aporta su magnitud al bin de su orientación. Ej.: píxel con θ=90°, M=74 → suma 74 al bin 80–99; otro con θ=90°, M=75 → bin queda en 149; otro con θ=0°, M=5 → suma 5 al bin 0–19.
  • Si θ > 180° → restarle 180° (histograma sin signo).
  • Resultado por celda: histograma de 9 valores.
HOG · D) Normalización entre bloques
  • Agrupar 4 celdas de 8×8 en un bloque de 2 × 2 celdas.
  • Concatenar sus 4 histogramas → vector de 36 valores (9 bins × 4 celdas).
  • Normalizar el vector de 36 (divide entre el total, o con norma L2, L1 o L1-sqrt) → robustez ante sombras / iluminación.
  • El bloque se desplaza solapado, celda por celda, por toda la imagen 64×128.
HOG · E) Vector de características final

Se concatenan todos los vectores de bloque normalizados → vector de 3 780 valores para la imagen estándar 64×128. Captura contornos externos y detalles internos del objeto. Es la entrada directa al clasificador; 3 780 es la dimensionalidad óptima validada experimentalmente para este tipo de subimágenes.

SIFT y SURF (puntos clave)

SIFT (Scale-Invariant Feature Transform) — describe características locales invariantes a escala, rotación, luminosidad y cambios moderados de perspectiva. Flujo: aplicar filtros gaussianos sucesivos (suavizar / emborronar) → Diferencia de Gaussianas (DoG) = restar imágenes suavizadas consecutivas para localizar puntos clave robustos → por cada punto clave, histograma de gradientes local → vector descriptor de 128 características por punto.

SURF (Speeded-Up Robust Features, ~2004) — evolución rápida de SIFT: robustez similar con mucho menos cómputo. Además del punto característico, identifica un radio / rango sobre el que ese punto aporta información. Usos de ambos: reconocimiento de objetos, seguimiento en video, reconocimiento facial, realidad aumentada.

Audio — en corto (sin fórmulas)

Un audio es un solo número (la amplitud) que cambia con el tiempo. Para clasificarlo no le pasamos la onda cruda al modelo, sino medidas que la resumen. Hay tres familias:

  • Temporales — se miden sobre la onda tal cual. Responden a "¿qué tan fuerte suena?" (Energía / RMS) y "¿qué tan 'áspero' o ruidoso es?" (ZCR: si la onda cruza el cero muchas veces → ruido; pocas → tono limpio).
  • Espectrales — primero se pasa la ventana a frecuencias (FFT) y ahí se mide: dónde está el "peso" del sonido (centroide = grave o agudo), qué tan repartidas están las frecuencias (ancho de banda), hasta qué frecuencia se junta casi toda la energía (roll-off), cuánto cambia el sonido de una ventana a la siguiente (flux) y si se parece más a un tono o a ruido plano (flatness).
  • Tiempo–frecuencia (MFCC) — el "retrato" más usado: describe el timbre (la forma del sonido) imitando cómo oye el oído humano. Son 12–13 números por ventana.

Delta (Δ) y Delta-Delta (ΔΔ) — la analogía del coche:

  • Los MFCC son como la posición del coche: dónde está el timbre en este instante.
  • El Δ es la velocidad: qué tan rápido está cambiando ese timbre de una ventana a la siguiente (simplemente la resta ventana actual − ventana anterior).
  • El ΔΔ es la aceleración: si ese cambio se está acelerando o frenando (la resta de los Δ consecutivos).

¿Para qué? El timbre por sí solo no distingue bien dos sonidos parecidos; cómo evoluciona en el tiempo sí. Por eso al vector se le añaden Δ y ΔΔ.

Descriptores de audio — categorías

En audio se analizan datos en una dimensión: amplitud vs. tiempo. Tres categorías: temporales, espectrales (frecuencia) y tiempo–frecuencia.

Audio · descriptores temporales

Se calculan directamente sobre la señal en el tiempo X[n]:

Energía   E   = Σ X[n]²                    (intensidad / potencia en la ventana)
RMS           = √( Σ X[n]² / N )           (raíz del promedio de amplitudes²)

ZCR (Zero Crossing Rate) — cuántas veces la señal cambia de signo. Con la función signo (1 si la muestra es positiva, 0 si es negativa) se evalúa |signo(x[i]) − signo(x[i-1])| entre muestras contiguas y se promedia. Ej.: |signo(0.5) − signo(0.3)| = 0 (sin cruce); |signo(-0.2) − signo(0.3)| = 2 (cruce). ZCR alto → sonido ruidoso; bajo → sonido armónico. Sirve para distinguir voz de ruido o de sonidos percusivos.

Autocorrelación — se toma la misma señal, se desplaza sobre sí misma (lag) y se multiplica y suma → mide periodicidad / similitud en el tiempo.

Audio · descriptores espectrales

Se calculan tras pasar al dominio de la frecuencia con la FFT:

X[k] = Σ x[n] · e^(-j·2πkn/N)          N = longitud de la señal

Supuesto clave: la FFT asume que la señal es estacionaria (sus propiedades no cambian en el tiempo) y que la ventana captura un ciclo periódico.

Centroide espectral   C = Σ f_k·|X[k]|  /  Σ |X[k]|     (centro de masa del espectro)
Ancho de banda        BW = √( Σ (f_k − C)²·|X[k]| / Σ |X[k]| )   (dispersión respecto a C)
Spectral roll-off     frecuencia bajo la cual se acumula el 85 % de la amplitud total
Spectral flux         SF = Σ ( X_t[k] − X_{t-1}[k] )²    (cambio entre ventanas consecutivas)
Spectral flatness     media geométrica / media aritmética del espectro  (≈1 → espectro plano)

Ejemplos numéricos de clase — frecuencias {100, 500, 1000, 2000} Hz con amplitudes {0.1, 0.5, 0.3, 0.1}:

  • Centroide: (10 + 250 + 300 + 200) / 1.0 = 760 Hz.
  • Ancho de banda con C = 760 → ≈ 498.4 Hz.
  • Roll-off con bins [0.2, 0.3, 0.4, 0.2, 0.1] (total 1.2; 85 % = 1.02): acumulado llega a 1.1 en el bin 3 → roll-off en el bin 3 (150 Hz).
  • Flux: ventana t-1 [0.2, 0.5, 0.3], t [0.3, 0.4, 0.8] → 0.01 + 0.01 + 0.25 = 0.27.
  • Flatness con [0.1, 0.2, 0.15]: geométrica ∛(0.003) ≈ 0.144, aritmética 0.15 → 0.96 (espectro plano).
Audio · MFCC (tiempo–frecuencia)

Coeficientes que representan la envolvente espectral con base en una escala perceptual adaptada al oído humano (≈15 Hz a 24–25 kHz).

Escala Mel — lineal en bajas frecuencias, logarítmica en altas:

Mel(f) = 2595 · log₁₀( 1 + f/700 )

8 pasos para construir los MFCC:

  1. Preénfasis — filtro paso-altas: Y[n] = X[n] − α·X[n-1]. Amplifica las frecuencias altas que se atenúan en el habla.
  2. Framing — segmentar en ventanas de 20–40 ms con 50 % de solapamiento.
  3. Ventana de Hamming — multiplica cada ventana: amplifica el centro, atenúa los extremos a cero. Motivo: la FFT asume señal periódica infinita; si se corta de golpe se generan discontinuidades en los bordes que meten ruido artificial. Hamming las elimina.
  4. FFT — sobre cada ventana suavizada → espectro de potencia.
  5. Banco de filtros Mel — 20 a 40 filtros triangulares solapados, espaciados en la escala Mel.
  6. Log de la energía — energía que pasa por cada filtro (espectro × filtro, sumado) y se le aplica logaritmo.
  7. DCT (Transformada Coseno Discreta) — sobre el log de las energías. Es discreto→discreto (no es transformada integral) y compacta la información en los primeros coeficientes.
  8. Truncamiento — quedarse solo con los primeros 12 o 13 coeficientes. ⚠️ Se descarta obligatoriamente el coeficiente 0 (solo representa la energía promedio total, no la envolvente). Se usan del 1 al 12 (o al 13).

Representación: matriz [coeficientes × ventanas de tiempo], se visualiza como mapa de calor. ⚠️ Irreversible: no se puede reconstruir el audio original — la DCT trunca coeficientes y se descarta la fase de la FFT; funciona solo como extractor de características.

Delta (Δ) = velocidad: diferencia entre el vector de la ventana actual y la anterior. Delta-Delta (ΔΔ) = aceleración: diferencia de los deltas consecutivos. Cada uno aporta 13 coeficientes por ventana.

Vector de características de audio final

Para meter un audio completo a un clasificador se resume la matriz de coeficientes con estadísticos a lo largo de las ventanas: media, desviación estándar, máximo y mínimo.

(13 MFCC × 4 estadísticos)        = 52
(2 temporales × 4 estadísticos)   =  8      (Energía, ZCR)
(5 espectrales × 4 estadísticos)  = 20      (Centroide, BW, Roll-off, Flux, Flatness)
                                   ----
Dimensión total del vector        = 80
Fórmulas y ejemplos numéricos (diapositivas Clase 4)

Temporales:

Energía  E = Σ x[n]²          RMS = √( (1/N) Σ x[n]² )
ZCR = (1/2N) Σ |sign(x[n]) − sign(x[n−1])|      (alto = ruidoso · bajo = armónico)
Autocorrelación  R(k) = Σ x[n]·x[n−k]

Ej. ventana [0.5, −0.3, 0.8, −0.2]:  E = (1/4)(0.25+0.09+0.64+0.04) = 0.255
Ej. ventana [0.5, 0.3, −0.2, −0.4, 0.1]:  2 cruces  →  ZCR = 4 / (2·5) = 0.4

Espectrales (sobre la FFT X(k) = Σ x[n] e^(−j2πkn/N)):

Centroide     C  = Σ fₖ|X[k]| / Σ|X[k]|                 Ej. → 760 Hz
Ancho de banda BW = √( Σ (fₖ − C)² |X[k]| / Σ|X[k]| )    Ej. → ≈ 498.4 Hz
Roll-off: menor R tal que Σ₀..ᴿ|X[k]| = α Σ₀..ᴷ|X[k]|   (α = 0.85 o 0.95)   Ej. → 1500 Hz
Flux     = Σ ( |Xₜ[k]| − |Xₜ₋₁[k]| )²                    Ej. → 0.27
Flatness = media geométrica / media aritmética           Ej. → ≈ 0.96 (espectro casi plano)

Escala Mel (bajas frecuencias ≈ lineal, altas ≈ logarítmica):

Mel(f) = 2595 · log₁₀(1 + f/700)          f = 700 · (10^(m/2595) − 1)

Etapas MFCC: 1) pre-énfasis y[n] = x[n] − α x[n−1], α ≈ 0.95 · 2) framing 20–40 ms, 50 % de solape · 3) ventana de Hamming w[n] = 0.54 − 0.46 cos(2πn/(N−1)) · 4) FFT y espectro de potencia · 5) banco de 20–40 filtros triangulares Mel, energíaᵢ = Σ P(k) Hᵢ[k] · 6) logaritmo · 7) DCT-II, quedarse con los primeros 12–13 → MFCC. Con Δ y ΔΔ: matriz #ventanas × 39.

Para investigar / siguiente
  • LBP (Local Binary Patterns) — método alternativo de análisis de textura en imágenes (es parte de la Tarea 1).
  • Siguiente sesión: selección de características (Tema 3) — cómo quedarse solo con las dimensiones que más aportan al clasificador.
Tema 3 — Selección y reducción de dimensionalidad · Clases 02–03, 05

Contenido de la Clase 02 y la Clase 03 (esta con audio parcial, completada con el deck) + diapositivas del profesor Clase 5 y Clase 6. Retomado en la Clase 05 del sitio (11 sep) con la presentación y evaluación de la Práctica 1 (PCA/SVD/reconstrucción).

En corto

  • Selección de características = quedarse con un subconjunto de las variables originales (no las transforma). Reducción de dimensionalidad = proyectar a un espacio nuevo donde las variables ya no representan lo mismo.
  • Tres familias de selección: Filtrado (mide relevancia de cada variable por separado, antes de entrenar: Pearson, χ², ANOVA F, información mutua), Wrapper (usan el modelo como caja negra) y Embebidos (seleccionan durante el entrenamiento).
  • Wrapper: Forward (arranca vacío, añade), Backward (arranca con todas, quita), Exhaustive (todas las combinaciones, O(2^d)).
  • Embebidos (seleccionan durante el entrenamiento): Lasso / L1 (penaliza Σ|Wⱼ|; peso → 0 = variable descartada) y árboles (importancia por reducción de impureza, normalizada a suma 1, umbral).
  • PCA: proyecta hacia las direcciones de máxima varianza (vectores/valores propios de la matriz de covarianza). PC1 = máx. varianza; los componentes son ortogonales.
  • SVD (X = UΣVᵀ): forma estable de calcular PCA; V = componentes, valores singulares = √λ.

🎯 Para el examen

  • Varianza explicada en SVD: hay que elevar al cuadrado los valores singulares → σᵢ² / Σσⱼ². Error muy común olvidarlo. (En el método de covarianza los λ se usan directos.)
  • Ortogonalidad en PCA: todos los componentes son estrictamente ortogonales entre sí → no correlacionados, no se obtienen por combinación lineal de los demás (base ortogonal).
  • Los métodos wrapper y embebidos no requieren discriminación previa de variables — el algoritmo de selección es la discriminación.
  • Complejidad de Exhaustive = O(2^d); inviable con más de ~15–20 características.
  • Criterios para elegir K: varianza explicada acumulada · regla del codo · umbral (ej. 90 %) · Kaiser (λ > 1).
Métodos de filtrado

Evalúan cada característica de forma independiente del algoritmo de aprendizaje, antes de entrenar: 1) calcular una medida de relevancia, 2) ordenar por puntuación, 3) quedarse con las k mejores o las que superan un umbral.

Correlación de Pearson — relación lineal entre dos variables cuantitativas continuas.

r = Σ(xᵢ − x̄)(yᵢ − ȳ) / √( Σ(xᵢ − x̄)² · Σ(yᵢ − ȳ)² )
   r > 0 correlación positiva · r = 0 sin correlación lineal · r < 0 negativa

Chi-cuadrado (χ²) — dependencia entre variables categóricas: compara frecuencias observadas Oᵢ vs. esperadas Eᵢ bajo la hipótesis nula de no asociación.

χ² = Σ (Oᵢ − Eᵢ)² / Eᵢ          Eᵢ = (total fila × total columna) / total general

Ejemplo (compra sí/no × hombre/mujer, 200 casos): esperados = 55/45; χ² = 4.09 + 5.00 + 4.09 + 5.00 = 18.18. Grados de libertad gl = (filas−1)(columnas−1) = 1; χ²crítico (α = 0.05) = 3.841. Como 18.18 > 3.841 → variables dependientes → característica relevante.

ANOVA F-score — compara la varianza entre grupos con la varianza dentro de los grupos; F = varianza entre grupos / varianza dentro de los grupos. F alto → las medias de los grupos difieren → la variable aporta.

MétricaTipo de característicaTipo de objetivo
Correlación de PearsonContinuaContinua
Chi-cuadradoCategóricaCategórica
ANOVA F-scoreContinuaCategórica
Información mutuaCualquieraCualquiera
Métodos Wrapper (de envoltura)

Usan un algoritmo de aprendizaje como caja negra para evaluar iterativamente el rendimiento (exactitud del clasificador) de distintos subconjuntos de variables. El orden de las características en la matriz de entrada no importa para el modelo (A+B = B+A).

Forward Selection (hacia adelante): iniciar con subconjunto vacío (o con 1 característica; ej. B → 70 %). Añadir una variable a la vez, entrenar y evaluar; consolidar si mejora (B+A mejora; B+A+C → 80 %). Parar cuando añadir empeora (B+A+C+D baja 1 %). Óptimo: {B, A, C}.

Backward Selection (hacia atrás): iniciar con todas ({A,B,C,D} → 82 %). Quitar una variable a la vez; consolidar la remoción si mejora o mantiene (quitar A → 83 %; quitar D → 84 %). Parar cuando quitar cualquiera de las restantes desploma el desempeño (quitar B −24 %, quitar C −14 %). Óptimo: {B, C} con 84 %.

Exhaustive Feature Selection: evaluar todas las combinaciones (individuales, parejas sin repetir, tríos, todas). Complejidad O(2^d). Ventaja: garantiza el óptimo global ({B,C} 84 % > 82 % con las 4). Desventaja: un modelo entrenado por combinación → inviable con más de ~15–20 características.

MétodoCuándo convieneDesventaja
ForwardSe espera que pocas características sean relevantes; ahorra cómputoUna vez añadida, no la puede quitar → conserva redundantes / omite interacciones
BackwardSe sospecha que la mayoría son relevantes; base sólida, capta interaccionesCostoso (entrenamientos con todas); inviable con miles de características
ExhaustiveSe necesita el óptimo globalSolo viable con un clasificador simple (bayesiano > red neuronal)
Métodos Embebidos

La selección ocurre durante el entrenamiento: el propio modelo tiene un algoritmo de selección intrínseco que asigna pesos / importancias y penaliza o elimina las variables que no aportan.

Regularización Lasso (norma L1)Least Absolute Shrinkage and Selection Operator. Modifica la función de pérdida (qué tanto te equivocas: predicción vs. realidad) añadiendo el término Σ |Wⱼ|.

  • Cada variable tiene un peso Wⱼ. W alto (15–20) → muy importante. Si W baja (0.5) o llega a exactamente 0 → el modelo descarta la variable. El algoritmo ajusta los W dinámicamente para optimizar la clasificación.

Árboles de decisión — reglas de umbral Xⱼ ≤ t (según se cumpla, el flujo va al nodo hijo izquierdo o derecho).

  • En cada nodo se evalúan todas las características y se elige la que da la mayor reducción de impureza (Gini o entropía).
  • Importancia de una característica = Σ (muestras del nodo / total) × reducción de impureza, sumada sobre todos los nodos que usan esa variable.
  • Las importancias se normalizan para que sumen 1.0 y se seleccionan las que superen un umbral (ej. > 0.5) o las top-K.
Criterios de diseño (selección de características)

No hay regla fija: la elección del método depende de los recursos de cómputo y de la naturaleza de los datos. Sin poder de cómputo → usar métodos embebidos o filtrado previo al entrenamiento (wrapper/exhaustive resultan inviables). En la práctica es válido y recomendable comparar 2 o más métodos sobre el mismo problema para contrastar resultados y justificar las decisiones de diseño.

Reducción de dimensionalidad — qué es y por qué

A diferencia de la selección (conserva intactas las variables originales), la reducción de dimensionalidad proyecta los datos a un espacio nuevo de menor dimensión mediante combinaciones matemáticas: las nuevas variables ya no representan lo mismo (ya no son peso, edad o género, sino combinaciones de ellas).

Importa porque operar con vectores de alta dimensión provoca: mucho más tiempo de cómputo, mucho más almacenamiento, y sobre todo degradación del rendimiento de los modelos (maldición de la dimensionalidad).

examenPCA — Análisis de Componentes Principales

Transforma variables posiblemente correlacionadas en componentes principales no correlacionados, ordenados por la varianza que explican. Asume que la dirección de máxima varianza es la más informativa (ahí los patrones de las clases quedan más separados).

Combinación lineal: Z = A₁X₁ + A₂X₂ + …Xᵢ variables originales, Aᵢ coeficientes (escalares), Z variable transformada.

Vectores y valores propios: un vector propio v mantiene su dirección al multiplicarlo por la matriz A, solo cambia de magnitud; ese factor es el valor propio λ.

A v = λ v            (A = matriz de covarianza; v = dirección; λ = varianza en esa dirección)
Z = W · X           (W = matriz de vectores propios; X = datos originales; Z = proyección)

Algoritmo (método de la matriz de covarianza):

  1. Centrar y escalar los datos: restar la media de cada característica (y opcionalmente dividir entre su desviación estándar). Indispensable para que variables con escalas grandes (salarios de 15 000 a 1 000 000) no dominen sobre las pequeñas (edades de 18 a 65).
  2. Matriz de covarianza con X centrada de N×D: Σ = (1/(N−1)) Xᵀ X. Es cuadrada; mide la variabilidad conjunta entre parejas de variables.
  3. Ecuación característica det(Σ − λI) = 0 (evita la solución trivial) → valores propios λ₁, λ₂, … y vectores propios v₁, v₂, …
  4. Ordenar los λ de forma descendente por varianza explicada; tomar los primeros K vectores propios → matriz W_K. Proyección: X_nuevo = X · W_K, dimensiones N×K con K < D.

PC1 = dirección de máxima varianza. PC2 = segunda mayor varianza, estrictamente ortogonal a PC1. Todos los componentes son ortogonales entre sí (base ortogonal; ninguno se obtiene por combinación lineal de los otros).

PCA — ejemplos numéricos (diapositivas Clase 5)

Ejemplo 1: Σ = [[4, 2], [2, 3]]

det(Σ − λI) = (4−λ)(3−λ) − 4 = λ² − 7λ + 8 = 0   →   (λ−1)(λ−8) = 0   →   λ₁ = 8 , λ₂ = 1

λ₁ = 8:  (Σ − 8I) w = 0  →  fila 1:  −4 w₁ + 2 w₂ = 0  →  w₂ = 2 w₁
         v₁ = [1, 2]ᵀ      normalizado:  v₁ = (1/√5) [1, 2]ᵀ
λ₂ = 1:  (Σ − I) w = 0   →  fila 1:  3 w₁ + 2 w₂ = 0   →  w₂ = −(3/2) w₁
         v₂ = [2, −3]ᵀ     normalizado:  v₂ = (1/√13) [2, −3]ᵀ

Ejemplo 2: Σ = [[4, 1], [2, 3]]

det(Σ − λI) = (4−λ)(3−λ) − 2 = λ² − 7λ + 10 = 0   →   λ₁ = 5 , λ₂ = 2
   v₁ = [1, 1]ᵀ ,  v₂ = [1, −2]ᵀ

Recordatorio de las diapositivas: la suma de todos los valores propios = varianza total; varianza explicada acumulada = (Σᵢ₌₁..ₖ λᵢ) / (Σᵢ₌₁..d λᵢ).

examenCómo elegir K (número de componentes)
varianza explicada (individual) = λᵢ / Σ λⱼ        (la acumulada llega a 1.0 = 100 %)
  1. Regla del codo (Elbow): graficar la varianza acumulada por componente; el "codo" es donde la pendiente cambia bruscamente y la curva se aplana. Ej.: 13 componentes, codo en el 5.º → K = 5.
  2. Umbral de varianza: fijar de antemano el % a retener (típico 90 %); tomar los componentes acumulativos necesarios (ej. 8 componentes explican el 91 %).
  3. Criterio de Kaiser: conservar solo los componentes con λ > 1 (aportan más que una sola variable original).
examenPCA por SVD (Descomposición en Valores Singulares)
X = U Σ Vᵀ
   U   = vectores singulares izquierdos
   Vᵀ  = transpuesta de los vectores singulares derechos
   Σ   = matriz DIAGONAL con los valores singulares en orden descendente
  • Los vectores singulares derechos (V) = las direcciones principales (componentes de PCA). Los valores singulares = raíz cuadrada de los valores propios de la matriz de covarianza.
  • Algoritmo: (1) centrar / normalizar X (restar la media); (2) aplicar SVD directo sobre X centrada; (3) obtener Σ y V.
  • ⚠️ Varianza explicada en SVD: hay que elevar al cuadrado los valores singulares → σᵢ² / Σ σⱼ². Olvidarlo da resultados erróneos (error muy común en exámenes y en código).
  • Ventajas: estabilidad numérica muy superior; funciona sobre matrices no cuadradas; evita calcular Xᵀ X (costoso); eficiente para datasets masivos con N ≫ D o D ≫ N. Es lo que usan la mayoría de las bibliotecas.
Diapositivas Clase 6 — Reducción de dimensionalidad II

Deck del profesor, aún sin audio grabado. Puntos que cubre, para no perder de vista la laguna:

  • Reconstrucción con PCA: X̂ = Z·Wₖᵀ + μ; el error ‖X − X̂‖² es mínimo con los k componentes de mayor varianza (mejor aproximación de rango k). EigenFaces como caso de uso.
  • Ventajas/desventajas de PCA: reducción óptima en MSE, elimina redundancia; pero sensible a escala y outliers, solo estructura lineal, no supervisado — no garantiza mejor clasificación.
  • LDA (Análisis Discriminante Lineal) — reducción supervisada: maximiza separación entre clases y minimiza dispersión intra-clase. Dispersión entre clases S_B, dentro de clases S_W; coeficiente de Rayleigh J(w) = (wᵀS_B w)/(wᵀS_W w); se resuelve S_W⁻¹S_B w = λw. Da como máximo min(K−1, d) discriminantes. Si S_W es singular: PCA previo, regularización (1−α)S_W + αI o pseudoinversa por SVD.
  • Otros métodos: t-SNE (no lineal, visualización, divergencia KL), Kernel PCA (truco del kernel), QDA (fronteras cuadráticas, covarianza distinta por clase).

Siguiente clase del deck: Evaluación de modelos (Tema 4).

Tema 4 — Evaluación de modelos · Clase 04

Visto en la Clase 04 (7 sep 2026): matriz de confusión y tipos de error, métricas (precisión, recall, especificidad, F₁, exactitud balanceada), curva ROC / AUC, sesgo–varianza / underfitting–overfitting, datos desbalanceados, esquemas de validación (Hold-out, K-Fold, Stratified K-Fold), fuga de datos y data drift. (El programa del profesor no desglosa subtemas.)

Tema 5 — Funciones de decisión · Clase 06

Visto en la Clase 06 (14 sep 2026): funciones de decisión lineales/cuadráticas/no lineales, estrategias multiclase (1 vs. Resto, 1 vs. 1, Máquina Lineal), interpretación geométrica (espacio de características vs. espacio de pesos), algoritmo de aprendizaje del perceptrón, y sistemas de funciones ortogonales (Legendre, Laguerre, Hermite). (El programa del profesor no desglosa subtemas.)

Tema 6 — Clasificación de patrones por medio de funciones de distancia · sin ver

Sin ver todavía. (El programa del profesor no desglosa subtemas.)

Tema 7 — Clasificación de patrones por medio de funciones de similitud · sin ver

Sin ver todavía. (El programa del profesor no desglosa subtemas.)

Tema 8 — Clasificadores de Aprendizaje Automático · sin ver

Sin ver todavía. (El programa del profesor no desglosa subtemas.)

Tema 9 — Aprendizaje Profundo · sin ver

Sin ver todavía. (El programa del profesor no desglosa subtemas.)

Tema 10 — Patrones Estructurales y Procesamiento de Lenguaje Natural · sin ver

Sin ver todavía. (El programa del profesor no desglosa subtemas.)

Clases grabadas, en orden. Cada tarjeta abre la página completa de esa clase.

Clase 0128 ago 2026 · Tema 2Extracción de características: estadísticas, histograma, momentos de Hu, textura GLCM, HOG (vector de 3 780), SIFT/SURF y descriptores de audio (temporales, espectrales, MFCC + Δ/ΔΔ; vector de 80). Clase 0231 ago 2026 · Tema 3Selección de características (Wrapper: Forward / Backward / Exhaustive · Embebidos: Lasso, árboles) y reducción de dimensionalidad (PCA, cómo elegir K, PCA por SVD). Clase 034 sep 2026 · Tema 3 · audio parcialReducción de dimensionalidad II: reconstrucción con PCA (X̂ = Z·Wₖᵀ + μ, MSE vs. k con Wine), EigenFaces (matriz N×P, rostro promedio, primeras vs. últimas componentes), criterios para elegir K (codo / Kaiser / umbral), LDA y otros métodos (t-SNE, Kernel PCA, QDA) del deck. Del audio: efecto de estandarizar y diferencias de signo entre métodos. Clase 047 sep 2026 · Tema 4Evaluación de modelos: matriz de confusión y tipos de error (I/II), métricas (precisión, recall, especificidad, F₁, exactitud balanceada), curva ROC / AUC, sesgo–varianza y underfitting/overfitting, datos desbalanceados, esquemas de validación (Hold-out, K-Fold, Stratified K-Fold), fuga de datos y data drift. Clase 0511 sep 2026 · Tema 3 (continuación)Presentación y evaluación de la Práctica 1: PCA/SVD, centrado vs. estandarización, criterios para elegir K (codo, Kaiser, umbral) en Iris/Wine, y Eigenfaces con Olivetti Faces. 📝 No grabé mi exposición — el profesor me preguntó y no supe responder. Clase 0614 sep 2026 · Tema 5Funciones de decisión lineales/cuadráticas/no lineales, estrategias multiclase (1 vs. Resto, 1 vs. 1, Máquina Lineal), regiones de ambigüedad, espacio de características vs. espacio de pesos, algoritmo del perceptrón, y polinomios ortogonales (Legendre, Laguerre, Hermite).