5. Autoencoders y PCA: reducir dimensiones
Nivel 11: Redes Neuronales para Trading
Cuando tienes cuarenta indicadores técnicos correlacionados entre sí, alimentar todos a un modelo es una receta para el sobreajuste. Hace falta comprimir esa información en unas pocas dimensiones que conserven lo importante. Hay dos caminos, y conviene entender exactamente en qué se diferencian.
Autoencoders. Son uno de los modelos de aprendizaje profundo no supervisado. Su objetivo es la reducción de dimensionalidad y el descubrimiento de características. Un autoencoder se entrena para predecir su propia entrada, pero para evitar que aprenda simplemente la función identidad, se aplican restricciones a las unidades ocultas — típicamente que la capa oculta tenga muchas menos unidades que la entrada, o penalizaciones de dispersión.
La codificación automática es un algoritmo de compresión de datos donde las funciones de compresión y descompresión son: primero, específicas de los datos; segundo, con pérdida; y tercero, aprendidas automáticamente de ejemplos en lugar de diseñadas por un humano. Además, en prácticamente todos los contextos donde se usa el término, esas funciones se implementan con redes neuronales.
Para construir un autoencoder hacen falta tres cosas: una función de codificación, una función de decodificación y una función de distancia que mida cuánta información se pierde entre la representación comprimida y la descomprimida — es decir, una función de pérdida. La forma más simple es una red hacia delante donde la entrada alimenta la capa oculta y la salida de esa capa oculta se usa para reconstruir la entrada original.
Los autoencoders mapean los datos a un espacio de menor dimensión combinando sus características más importantes, y además deciden ellos mismos cómo se combinan — de ahí el "auto" del nombre. A esas características codificadas las llamamos variables latentes. Esto es útil por dos razones: reduce el tiempo de entrenamiento y las representaciones latentes pueden mejorar el rendimiento del modelo.
PCA. Al igual que el autoencoder, el Análisis de Componentes Principales se usa ampliamente para reducir dimensiones, pero mapea la entrada de una forma distinta.
PCA funciona proyectando los datos de entrada sobre los autovectores de la matriz de covarianzas de los datos. La matriz de covarianzas cuantifica la varianza de los datos y cuánto varía cada variable respecto a las demás. Los autovectores son simplemente vectores que conservan su dirección al aplicarles una transformación lineal: apuntan en la misma dirección antes y después. La matriz de covarianzas orienta los vectores base originales en la dirección de la covarianza entre variables. En términos más simples, el autovector nos permite reencuadrar la orientación de los datos originales para verlos desde otro ángulo sin transformarlos realmente. Estamos extrayendo la componente de cada variable que produce más varianza al proyectar los datos sobre esos vectores. Podemos entonces seleccionar los ejes dominantes usando los autovalores de la matriz de covarianzas, porque reflejan la magnitud de la varianza en la dirección de su autovector correspondiente.
Estas proyecciones dan lugar a un espacio nuevo donde cada vector base encapsula la mayor varianza posible: las proyecciones sobre el autovector de mayor autovalor tienen la máxima varianza, las del segundo la segunda mayor, y así sucesivamente. Estos nuevos vectores base son las componentes principales. Queremos que apunten en la dirección de máxima varianza porque una mayor varianza en los valores de un atributo puede llevar a una mejor capacidad de predicción. Piensa en predecir el precio de un coche con dos atributos: color y marca. Si todos los coches son del mismo color, adivinar el precio a partir del color — una característica con varianza cero — sería imposible; con la marca, que sí varía, las estimaciones mejoran mucho. Las componentes principales son combinaciones lineales de las variables de entrada, y esa linealidad es lo que permite interpretar los datos transformados.
Ojo con una distinción importante: tanto PCA como el autoencoder son compresión con pérdida, algo de la información original se pierde. Y ambos son distintos de la selección de características: los algoritmos de selección descartan unas variables y conservan otras tal cual, elegidas por razones estadísticas como su correlación con la etiqueta. El autoencoder, como algoritmo de extracción de características, proyecta los datos en un espacio nuevo.
Ventajas de PCA: reduce dimensionalidad, es interpretable y es rápido de ejecutar. Inconveniente de PCA: es incapaz de aprender representaciones no lineales.
Ventajas del autoencoder: puede aprender representaciones no lineales y reduce dimensionalidad. Inconvenientes del autoencoder: es costoso de entrenar, extremadamente poco interpretable, las matemáticas subyacentes son más complicadas, y es propenso al sobreajuste, aunque esto último se puede mitigar con regularización.