Investigadores de IA de ETH Zurich presentan ‘tntorch’: una biblioteca de Python de aprendizaje de tensor impulsada por PyTorch que admite múltiples descomposiciones en una interfaz unificada

Estás leyendo la publicación: Investigadores de IA de ETH Zurich presentan ‘tntorch’: una biblioteca de Python de aprendizaje de tensor impulsada por PyTorch que admite múltiples descomposiciones en una interfaz unificada

Los tensores son un método efectivo para manejar y representar arreglos de datos multidimensionales. Sin embargo, tienen una limitación en términos de almacenamiento y cómputo. Las descomposiciones de tensores son cruciales en el aprendizaje automático porque factorizan los pesos de las redes neuronales. Esta investigación presenta tntorch, un paquete de Python de código abierto para el aprendizaje de tensores que admite varias descomposiciones a través de una sola interfaz de usuario. En contraste con los paquetes de última generación, tntorch enfatiza una interfaz fácil de usar e independiente de la descomposición heredada de PyTorch.

tntorch admite varios modelos de descomposición que son cruciales en el aprendizaje automático, como CANDEDOMP/ PARAFAC (CP), la descomposición de Tucker y el tren tensorial (TT). La Fig. 1 ilustra ejemplos de redes de tensores que tntorch puede ensamblar. Los tensores en tntorch pueden integrar más de un formato; por ejemplo, se pueden intercalar núcleos CP y TT, conectar factores Tucker a núcleos TT o incluso combinar los tres formatos de manera diferente.

Fuente: https://arxiv.org/pdf/2206.11128v1.pdf

Las descomposiciones básicas representadas por tntorch emplean CP, TT y Tucker. CP representa una serie de matrices de factores 2D, TT representa una serie de núcleos de tren de tensores 3D y Tucker representa núcleos similares a TT que se han elegido cuidadosamente para que no contengan errores. La Tabla 1 muestra una comparación de características de tntorch y seis bibliotecas relacionadas. tntorch utiliza la técnica de aproximación cruzada para extraer un tensor TT comprimido de una función de caja negra. Para problemas discretos, la aproximación cruzada también se ha adaptado como un optimizador global sin gradiente. Esta investigación implementa la descomposición de matrices TT así como la descomposición de matrices CP. Ambos Matrix se implementan como una clase separada CPMatrix ya que necesitan operaciones personalizadas que no son accesibles para los tensores CP.

🔥 Recomendado:  ¿Qué es la narración de datos? Componentes, beneficios y ejemplos
Fuente: https://arxiv.org/pdf/2206.11128v1.pdf

Para aprender tensores incompletos, tensores con restricciones o para agregar otros términos de pérdida, se puede utilizar tntorch. Se puede acceder a los tensores en tntorch utilizando varios métodos, incluida la indexación básica, la indexación elegante, la indexación mediante Numpy Arrays y la inserción de dimensiones ficticias. La biblioteca tntorch admite varias operaciones aritméticas que incluyen productos de matriz de tensor y vector de tensor, operaciones de elementos, productos de punto, convolución, concatenación, reordenación de modo, relleno, ortogonalización y truncamiento de rango. La técnica TT-SVD se usa en este estudio para descomponer múltiples tensores en núcleos TT simultáneamente. En este estudio se utilizan numerosas técnicas de descomposición de matrices TT, que incluyen operaciones de álgebra lineal inversa de matriz rápida y algoritmos determinantes para matrices TT de rango 1 que son equivalentes a los productos de Kronecker.

Las cuatro modalidades probadas en este trabajo son CPU frente a GPU y bucle frente a procesamiento por lotes vectorizado en ambas situaciones. Excepto por el experimento TT-SVD, que usa N = 4, todos los experimentos utilizan tensores inicializados aleatoriamente con TTrank R = 20, tamaños de dimensión física I = 15;::; 45, y N = 8 dimensiones. Los autores utilizaron PyTorch 1.13.0a0+git87148f2 y NumPy 1.22.4 en un procesador Intel(R) Core(TM) i7-7700K con 64 GB de RAM y una GPU NVIDIA GeForce RTX 3090. Los resultados experimentales demuestran cómo la GPU funciona mejor en los modos por lotes y sin lotes. Además, las escalas de tntorch relacionadas con el tamaño del tensor son mejores (o de manera similar, para la aproximación cruzada) que la línea de base, por lo que es una opción adecuada para las aplicaciones de aprendizaje automático que requieren una gran cantidad de datos.

🔥 Recomendado:  Cómo iniciar un negocio de lavandería: costos, marketing y más

Para concluir, la biblioteca impulsada por PyTorch está diseñada para integrar muchos formatos de tensor capaces en una sola interfaz de usuario y proporcionar varias herramientas y metodologías analíticas. Brinda acceso al aprendizaje automático al poder de las descomposiciones de tensores de bajo rango mientras mantiene la excelente apariencia y sensación de los tensores de PyTorch. En la biblioteca se incluyen muchas características estándar de los marcos de aprendizaje automático modernos, como la diferenciación automática, el procesamiento por lotes y GPU, y la indexación avanzada.

Este artículo está escrito como un artículo de resumen en papel por el personal de investigación de Marktechpost basado en el artículo ‘TNTORCH: APRENDIZAJE EN RED TENSOR CON PYTORCH‘. Todo el crédito de esta investigación es para los investigadores de este proyecto. Revisar la papel y github.

Por favor, no olvides unirte a nuestro Subreddit de aprendizaje automático

Echa un vistazo a https://aitoolsclub.com para encontrar 100 de Cool AI Tools