Red TensorFlow (TFL)

TensorFlow Lattice es una biblioteca que implementa modelos basados ​​en retículos flexibles, controlados e interpretables. Permite incorporar conocimiento del dominio al proceso de aprendizaje mediante restricciones de forma basadas en el sentido común o en políticas. Esto se logra utilizando una colección de capas de Keras que pueden satisfacer restricciones como monotonicidad, convexidad y confianza entre pares. La biblioteca también proporciona modelos predefinidos fáciles de configurar.

Conceptos

Esta sección es una versión simplificada de la descripción que aparece en Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016.

Redes

Una retícula es una tabla de búsqueda interpolada que puede aproximar relaciones arbitrarias de entrada-salida en sus datos. Superpone una cuadrícula regular sobre su espacio de entrada y aprende valores para la salida en los vértices de la cuadrícula. Para un punto de prueba \(x\), \(f(x)\) se interpola linealmente a partir de los valores de la red circundante \(x\).

El ejemplo sencillo anterior es una función con 2 características de entrada y 4 parámetros:\(\theta=[0, 0.2, 0.4, 1]\), que son los valores de la función en los extremos del espacio de entrada; el resto de la función se interpola a partir de estos parámetros.

La función \(f(x)\) Puede capturar interacciones no lineales entre elementos. Se pueden imaginar los parámetros de la red como la altura de postes colocados en el suelo sobre una cuadrícula regular, y la función resultante es como una tela tensada contra los cuatro postes.

Con \(D\) características y 2 vértices a lo largo de cada dimensión, una red regular tendrá \(2^D\) parámetros. Para ajustar una función más flexible, puede especificar una malla más fina sobre el espacio de características con más vértices a lo largo de cada dimensión. Las funciones de regresión de malla son continuas e infinitamente diferenciables por partes.

Calibración

Digamos que la muestra anterior representa la satisfacción aprendida del usuario con una cafetería local sugerida, calculada utilizando características:

  • Precio del café, en un rango de 0 a 20 dólares.
  • distancia al usuario, en un rango de 0 a 30 kilómetros

Queremos que nuestro modelo aprenda el nivel de satisfacción del usuario con la sugerencia de una cafetería local. Los modelos TensorFlow Lattice pueden usar funciones lineales por partes (con tfl.layers.PWLCalibration ) para calibrar y normalizar las características de entrada al rango aceptado por la red: de 0,0 a 1,0 en el ejemplo anterior. A continuación se muestran ejemplos de dichas funciones de calibración con 10 puntos clave:

A menudo es recomendable usar los cuantiles de las características como puntos clave de entrada. Los modelos predefinidos de TensorFlow Lattice pueden establecer automáticamente los puntos clave de entrada según los cuantiles de las características.

Para características categóricas, TensorFlow Lattice proporciona calibración categórica (con tfl.layers.CategoricalCalibration ) con límites de salida similares para alimentar una red.

conjuntos

El número de parámetros de una capa de red aumenta exponencialmente con el número de características de entrada, por lo que no se adapta bien a dimensiones muy altas. Para superar esta limitación, TensorFlow Lattice ofrece conjuntos de redes que combinan (promedian) varias redes pequeñas , lo que permite que el modelo crezca linealmente con el número de características.

La biblioteca ofrece dos variantes de estos conjuntos:

  • Retículos pequeños aleatorios (RTL): Cada submodelo utiliza un subconjunto aleatorio de características (con reemplazo).

  • Crystals : El algoritmo Crystals primero entrena un modelo de preajuste que estima las interacciones entre pares de características. Luego, organiza el conjunto final de manera que las características con más interacciones no lineales se encuentren en las mismas redes.

¿Por qué TensorFlow Lattice?

Puedes encontrar una breve introducción a TensorFlow Lattice en esta entrada del blog de TF .

Interpretabilidad

Dado que los parámetros de cada capa son la salida de esa capa, es fácil analizar, comprender y depurar cada parte del modelo.

Modelos precisos y flexibles

Mediante el uso de redes de grano fino, se pueden obtener funciones de complejidad arbitraria con una sola capa de red. En la práctica, el uso de múltiples capas de calibradores y redes suele dar buenos resultados y puede igualar o superar el rendimiento de modelos DNN de tamaño similar.

Restricciones de forma de sentido común

Los datos de entrenamiento del mundo real pueden no representar adecuadamente los datos de ejecución. Las soluciones de aprendizaje automático flexibles, como las redes neuronales profundas (DNN) o los bosques aleatorios, suelen comportarse de forma inesperada e incluso errática en partes del espacio de entrada no cubiertas por los datos de entrenamiento. Este comportamiento resulta especialmente problemático cuando se pueden infringir las restricciones de política o de equidad.

Si bien las formas comunes de regularización pueden dar lugar a extrapolaciones más sensatas, los regularizadores estándar no garantizan un comportamiento razonable del modelo en todo el espacio de entrada, especialmente con entradas de alta dimensionalidad. Optar por modelos más simples con un comportamiento más controlado y predecible puede tener un coste considerable para la precisión del modelo.

TF Lattice permite seguir utilizando modelos flexibles, pero ofrece varias opciones para inyectar conocimiento del dominio en el proceso de aprendizaje a través de restricciones de forma semánticamente significativas, basadas en el sentido común o en políticas:

  • Monotonicidad : Puedes especificar que la salida solo aumente o disminuya con respecto a una entrada. En nuestro ejemplo, podrías especificar que una mayor distancia a una cafetería solo debería disminuir la preferencia prevista del usuario.

  • Convexidad/Concavidad : Se puede especificar que la forma de la función sea convexa o cóncava. Combinado con la monotonicidad, esto puede forzar a que la función represente rendimientos decrecientes con respecto a una característica dada.

  • Unimodalidad : Puedes especificar que la función tenga un pico o un valle únicos. Esto te permite representar funciones que tienen un punto óptimo con respecto a una característica.

  • Confianza por pares : Esta restricción funciona con un par de características y sugiere que una característica de entrada refleja semánticamente la confianza en otra. Por ejemplo, un mayor número de reseñas genera mayor confianza en la calificación promedio de estrellas de un restaurante. El modelo será más sensible a la calificación de estrellas (es decir, tendrá una pendiente mayor con respecto a la calificación) cuando el número de reseñas sea mayor.

Flexibilidad controlada con regularizadores

Además de las restricciones de forma, TensorFlow Lattice proporciona una serie de regularizadores para controlar la flexibilidad y la suavidad de la función para cada capa.

  • Regularizador laplaciano : Las salidas de los vértices/puntos clave de la red/calibración se regularizan hacia los valores de sus vecinos respectivos. Esto da como resultado una función más plana .

  • Regularizador Hessiano : Esto penaliza la primera derivada de la capa de calibración PWL para hacer que la función sea más lineal .

  • Regularizador de arrugas : Este componente penaliza la segunda derivada de la capa de calibración PWL para evitar cambios bruscos en la curvatura. Esto suaviza la función.

  • Regularizador de torsión : Las salidas de la red se regularizarán para evitar la torsión entre las características. En otras palabras, el modelo se regularizará para lograr la independencia entre las contribuciones de las características.

Combina con otras capas de Keras.

Puedes usar capas de TF Lattice en combinación con otras capas de Keras para construir modelos parcialmente restringidos o regularizados. Por ejemplo, las capas de calibración de Lattice o PWL se pueden usar en la última capa de redes más profundas que incluyan incrustaciones u otras capas de Keras.

Papeles

Tutoriales y documentación de la API

Para arquitecturas de modelos comunes, puedes usar modelos predefinidos de Keras . También puedes crear modelos personalizados usando capas de TF Lattice Keras o combinarlas con otras capas de Keras. Consulta la documentación completa de la API para obtener más detalles.