# Aprendizaje de características

En el aprendizaje automático, el aprendizaje de características o aprendizaje de representación es un conjunto de técnicas que permite que un sistema descubra automáticamente las representaciones necesarias para la detección o clasificación de características a partir de datos sin procesar. Esto reemplaza la ingeniería de característica manual y permite que una máquina aprenda características y las use para realizar una tarea específica.
El aprendizaje de característica está motivado por el hecho de que la máquina que aprende tareas como la clasificación a menudo requiere entrada que es matemáticamente y computacionalmente conveniente de procesar. Aun así, datos del mundo real como imágenes, vídeos, y datos de sensor no permiten definir algorítmicamente características específicas. Una alternativa es descubrir tales características o representaciones a través de exámenes, sin depender de algoritmos explícitos.
El aprendizaje de características puede ser supervisado o no supervisado.
* En el aprendizaje de características supervisado, las características se aprenden utilizando datos de entrada etiquetados. Los ejemplos incluyen redes neuronales supervisadas, perceptrón multicapa y aprendizaje de diccionario (supervisado) .
* En el aprendizaje de características no supervisado, las características se aprenden con datos de entrada sin etiqueta. Los ejemplos incluyen aprendizaje de diccionario, análisis de componentes independientes, autoencoders, factorización matricial y varias formas de agrupamiento.

## Supervisado

El aprendizaje supervisado de características es aprender las características de los datos etiquetados. La etiqueta de datos permite que el sistema calcule un término de error, el grado en que el sistema no puede producir la etiqueta, que luego puede usarse como retroalimentación para corregir el proceso de aprendizaje (reducir / minimizar el error). Los enfoques incluyen:

### Aprendizaje de diccionario supervisado

El aprendizaje de diccionario desarrolla un conjunto (diccionario) de elementos representativos a partir de los datos de entrada, de modo que cada punto de datos puede representarse como una suma ponderada de los elementos representativos. Los elementos del diccionario y los pesos se pueden encontrar minimizando el error de representación promedio (sobre los datos de entrada), junto con la regularización L1 en los pesos para habilitar la dispersión (es decir, la representación de cada punto de datos tiene solo unos pocos pesos distintos de cero).
El aprendizaje de diccionario supervisado explota tanto la estructura subyacente a los datos de entrada como las etiquetas para optimizar los elementos del diccionario. Por ejemplo, una técnica de aprendizaje de diccionario supervisado aplicó aprendizaje de diccionario sobre problemas de clasificación optimizando conjuntamente los elementos del diccionario, pesos para representar puntos de datos y parámetros del clasificador basados en los datos de entrada. En particular, se formula un problema de minimización, donde la función objetivo consiste en el error de clasificación, el error de representación, una regularización L1 en los pesos de representación para cada punto de datos (para permitir la representación dispersa de datos) y una regularización L2 en los parámetros del clasificador.

### Redes neuronales

Las redes neuronales son una familia de algoritmos de aprendizaje que utilizan una "red" que consta de múltiples capas de nodos interconectados. Está inspirado en el sistema nervioso animal, donde los nodos se ven como neuronas y las aristas se ven como sinapsis. Cada arista tiene un peso asociado, y la red define reglas de cálculo para pasar datos de entrada desde la capa de entrada de la red a la capa de salida. Una función de red asociada a una red neuronal caracteriza la relación entre las capas de entrada y salida, que se parametriza mediante los pesos. Con funciones de red adecuadamente definidas, se pueden realizar varias tareas de aprendizaje al minimizar una función de costo sobre la función de la red (pesos).
Las redes neuronales multicapa se pueden utilizar para llevar a cabo el aprendizaje de características, ya que aprenden una representación de su entrada en la(s) capa(s) oculta(s) que posteriormente se usa para la clasificación o regresión en la capa de salida.

## No supervisado

El aprendizaje de funciones sin supervisión es el aprendizaje de características de datos no etiquetados. El objetivo del aprendizaje de funciones no supervisadas suele ser descubrir características de baja dimensión que capturen cierta estructura subyacente a los datos de entrada de gran dimensión. Cuando el aprendizaje de características se realiza de forma no supervisada, permite una forma de aprendizaje semisupervisado donde las funciones aprendidas de un conjunto de datos sin etiqueta se emplean para mejorar el rendimiento en un entorno supervisado con datos etiquetados. Varios enfoques se introducen en lo siguiente.

### K-means clustering

K-means clustering es un enfoque para la cuantificación vectorial. En particular, dado un conjunto de n vectores, k-means clustering los agrupa en k clusters (es decir, subconjuntos) de tal manera que cada vector pertenece al cluster con la media (mean, en inglés) más cercana. El problema es computacionalmente NP-hard, aunque se han desarrollado algoritmos codiciosos subóptimos.
El agrupamiento de K-means se puede usar para agrupar un conjunto de entradas no etiquetadas en k clusters, y luego usar los centroides de estos clusters para producir características. Estas características se pueden producir de varias maneras. Lo más simple es agregar k características binarias a cada muestra, donde cada característica j tiene valor uno si y solo si el j-ésimo centroide aprendido por k-means es el más cercano a la muestra bajo consideración. También es posible utilizar las distancias a los clústeres como características, quizás después de transformarlas a través de una función de base radial (una técnica que se ha utilizado para entrenar redes RBF). Coates y Ng notan que ciertas variantes de k-means se comportan de manera similar a los algoritmos de codificación dispersos.
En una evaluación comparativa de métodos de aprendizaje de características no supervisadas, Coates, Lee y Ng encontraron que k-means clustering con una transformación adecuada supera a los auto-encoders y RBM inventados más recientemente en una tarea de clasificación de imágenes. K-means también mejora el rendimiento en el dominio de NLP, específicamente para el reconocimiento de entidad nombrada; allí compite con la agrupación de Brown, así como con las representaciones de palabras distribuidas (también conocidas como incrustaciones de palabras neurales).

### Análisis de componentes principals

Análisis de componentes principaes (PCA) es a menudo utilizado para reducción de dimensión. Dado un conjunto no etiquetado de n vectores de datos de entrada, PCA genera p (que es mucho más pequeño que la dimensión de los datos de entrada) vectores singulares correctos correspondientes a los p mayores valores singulares de la matriz de datos, donde la k-ésima fila de la matriz de datos es el k-ésimo vector de datos de entrada desplazado por la media de la muestra de la entrada (es decir, restando la media de la muestra del vector de datos). De forma equivalente, estos vectores singulares son los vectores propios que corresponden a los valores propios p más grandes de la matriz de covarianza de muestra de los vectores de entrada. Estos p vectores singulares son los vectores de características aprendidos de los datos de entrada, y representan direcciones a lo largo de las cuales los datos tienen las mayores variaciones.
PCA es un enfoque lineal de aprendizaje de características ya que los vectores en singular son funciones lineales de la matriz de datos. Los vectores singulares se pueden generar a través de un algoritmo simple con iteraciones. En la i-ésima iteración, se resta la proyección de la matriz de datos en el vector propio (i-1) y el i-ésimo vector singular se encuentra como el vector singular derecho correspondiente al vector singular más grande de la matriz de datos residuales.
PCA tiene varias limitaciones. Primero, asume que las direcciones con gran varianza son de mayor interés, lo que puede no ser el caso. PCA solo depende de las transformaciones ortogonales de los datos originales, y solo aprovecha los momentos de primer y segundo orden de los datos, que pueden no caracterizar la distribución de datos. Además, PCA puede reducir la dimensión de manera efectiva solo cuando los vectores de datos de entrada están correlacionados (lo que da como resultado unos pocos valores propios dominantes).

### Incrustación lineal local

La incrustación lineal local (LLE, por sus siglas en inglés) es un enfoque de aprendizaje no lineal para generar representaciones de preservación de vecinos de baja dimensión a partir de entradas de gran dimensión (sin etiqueta). El enfoque fue propuesto por Roweis y Saul (2000). La idea general de LLE es reconstruir los datos originales de alta dimensión usando puntos de menor dimensión manteniendo algunas propiedades geométricas de los vecindarios en el conjunto de datos original.
LLE consta de dos pasos principales. El primer paso es para "la conservación de vecinos", donde cada punto de datos de entrada Xi se reconstruye como una suma ponderada de los K vecinos más cercanos en los puntos de datos, y los pesos óptimos se encuentran minimizando el error de reconstrucción cuadrático medio (es decir, la diferencia entre un punto de entrada y su reconstrucción) bajo la restricción de que los pesos asociados con cada punto suman uno. El segundo paso es para "la reducción de dimensión", al buscar vectores en un espacio de menor dimensión que minimice el error de representación utilizando los pesos optimizados en el primer paso. Tenga en cuenta que en el primer paso, los pesos se optimizan con datos fijos, que se pueden resolver como un problema de mínimos cuadrados. En el segundo paso, los puntos de dimensiones inferiores se optimizan con pesos fijos, que se pueden resolver a través de la descomposición dispersa de valores propios.
Los pesos de reconstrucción obtenidos en el primer paso capturan las "propiedades geométricas intrínsecas" de un vecindario en los datos de entrada. Se supone que los datos originales se encuentran en una variedad suave de dimensiones inferiores, y también se espera que las "propiedades geométricas intrínsecas" capturadas por los pesos de los datos originales estén en el colector. Esta es la razón por la que se usan los mismos pesos en el segundo paso de LLE. Comparado con PCA, LLE es más poderoso en la explotación de la estructura de datos subyacente.

### Análisis de componentes independientes

Análisis de componentes independientes (ICA, por sus siglas en inglés) es una técnica para formar una representación de datos utilizando una suma ponderada de componentes no gaussianos independientes. Se impone la suposición de no gaussiano, ya que los pesos no se pueden determinar de manera única cuando todos los componentes siguen la distribución de Gauss.

### Aprendizaje de diccionario sin supervisión

El aprendizaje de diccionarios no supervisado no utiliza etiquetas de datos y explota la estructura subyacente de los datos para optimizar los elementos del diccionario. Un ejemplo de aprendizaje de diccionario no supervisado es la codificación dispersa, que tiene como objetivo aprender las funciones de base (elementos de diccionario) para la representación de datos a partir de datos de entrada sin etiqueta. La codificación dispersa se puede aplicar para aprender diccionarios sobrecompletados, donde la cantidad de elementos del diccionario es mayor que la dimensión de los datos de entrada. Aharon et al. propone el algoritmo K-SVD para aprender un diccionario de elementos que permite una representación dispersa.

## Arquitecturas multicapa / profundas

La arquitectura jerárquica del sistema neuronal biológico inspira arquitecturas de aprendizaje profundo para el aprendizaje de características al apilar varias capas de nodos de aprendizaje. Estas arquitecturas a menudo se diseñan con base en la suposición de representación distribuida: los datos observados se generan por las interacciones de muchos factores diferentes en múltiples niveles. En una arquitectura de aprendizaje profundo, la salida de cada capa intermedia se puede ver como una representación de los datos de entrada originales. Cada nivel usa la representación producida por el nivel anterior como entrada, y produce nuevas representaciones como salida, que luego se alimenta a niveles más altos. La entrada en la capa inferior es datos en bruto, y la salida de la capa final es la característica o representación final de baja dimensión.

### Máquina restringida de Boltzmann

La máquina de Boltzmann restringida (RBMs, por sus siglas en inglés) es usada a menudo como un bloque de construcción para arquitecturas de aprendizaje de múltiples capas. Un RBM se puede representar mediante un gráfico bipartito no dirigido que consiste en un grupo de variables ocultas binarias, un grupo de variables visibles y bordes que conectan los nodos ocultos y visibles. Es un caso especial de las máquinas de Boltzmann más generales con la restricción de que no hay conexiones intranodo. Cada borde en un RBM está asociado con un peso. Los pesos junto con las conexiones definen una función de energía, con base en la cual se puede diseñar una distribución conjunta de nodos visibles y ocultos. Según la topología del RBM, las variables ocultas (visibles) son independientes, condicionadas a las variables visibles (ocultas). Tal independencia condicional facilita los cálculos
Un RBM se puede ver como una arquitectura de capa única para el aprendizaje de funciones no supervisadas. En particular, las variables visibles corresponden a los datos de entrada, y las variables ocultas corresponden a los detectores de características. Los pesos se pueden entrenar maximizando la probabilidad de variables visibles usando divergencia contranstiva de Hinton (CD) algoritmo.
En general, el entrenamiento de RBM al resolver el problema de maximización tiende a generar representaciones no dispersas. RBM dispersa se propuso para permitir representaciones dispersas. La idea es agregar un término de regularización en la función objetivo de la verosimilitud de los datos, que penaliza la desviación de las variables ocultas esperadas de una pequeña constante p.

### Autoencoder

Un autoencoder que consiste en un codificador y un decodificador es un paradigma para las arquitecturas de aprendizaje profundo. Hinton y Salakhutdinov proporcionan un ejemplo en el que el codificador utiliza datos en bruto (por ejemplo, imagen) como entrada y produce características o representaciones como salida y el decodificador utiliza la función extraída del codificador como entrada y reconstruye los datos brutos de entrada originales como salida. El codificador y el decodificador se construyen mediante el apilamiento de múltiples capas de RBM. Los parámetros que intervienen en la arquitectura se formaron originalmente de una manera codiciosa capa por capa: después de aprender una capa de detectores de características, estas son retornadas como variables visibles para entrenar la RBM correspondiente. Los enfoques actuales generalmente aplican un entrenamiento de punta a punta con métodos de descenso por gradiente estocásticos. El entrenamiento puede repetirse hasta que se satisfagan algunos criterios de parada.