Red TensorFlow (TFL)

TensorFlow Lattice es una biblioteca que implementa modelos basados ​​en celosías flexibles, controlados e interpretables. La biblioteca le permite inyectar conocimiento de dominio en el proceso de aprendizaje a través de restricciones de forma basadas en políticas o de sentido común. Esto se hace utilizando una colección de capas de Keras que pueden satisfacer restricciones como la monotonicidad, la convexidad y la confianza por pares. La biblioteca también proporciona estimadores enlatados fáciles de configurar.

Conceptos

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

celosías

Una red es una tabla de búsqueda interpolada que puede aproximar relaciones arbitrarias de entrada y salida en sus datos. Superpone una cuadrícula regular en 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 red que rodean \(x\).

El ejemplo simple 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 las esquinas 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 entidades. Puede pensar en los parámetros de la red como la altura de los postes colocados en el suelo en una cuadrícula regular, y la función resultante es como una tela apretada contra los cuatro postes.

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

Calibración

Digamos que el entramado de muestra anterior representa la felicidad de un usuario aprendido con una cafetería local sugerida calculada usando características:

  • precio del cafe, en rango de 0 a 20 dolares
  • distancia al usuario, en el rango de 0 a 30 kilómetros

Queremos que nuestro modelo aprenda la felicidad del usuario con una sugerencia de 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: 0,0 a 1,0 en la red de ejemplo anterior. A continuación se muestran ejemplos de tales funciones de calibración con 10 puntos clave:

Suele ser una buena idea utilizar los cuantiles de las características como puntos clave de entrada. Los estimadores enlatados de TensorFlow Lattice pueden establecer automáticamente los puntos clave de entrada en los cuantiles de 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 celosía aumenta exponencialmente con el número de entidades de entrada, por lo que no se escala bien a dimensiones muy altas. Para superar esta limitación, TensorFlow Lattice ofrece conjuntos de celosías que combinan (en promedio) varias celosías diminutas , lo que permite que el modelo crezca linealmente en la cantidad de características.

La biblioteca proporciona dos variaciones de estos conjuntos:

  • Random Tiny Lattices (RTL): cada submodelo utiliza un subconjunto aleatorio de características (con reemplazo).

  • Crystals : el algoritmo Crystals primero entrena un modelo de ajuste previo que estima las interacciones de características por pares. A continuación, organiza el conjunto final de forma que las entidades con más interacciones no lineales estén en las mismas redes.

¿Por qué TensorFlow Lattice?

Puede encontrar una breve introducción a TensorFlow Lattice en esta publicación 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

Usando celosías de grano fino, puede obtener funciones arbitrariamente complejas con una sola capa de celosía. El uso de múltiples capas de calibradores y retículas a menudo funciona bien en la práctica y puede igualar o superar los modelos DNN de tamaños similares.

Restricciones de forma de sentido común

Es posible que los datos de entrenamiento del mundo real no representen suficientemente los datos de tiempo de ejecución. Las soluciones de ML flexibles, como las DNN o los bosques, a menudo actúan de forma inesperada e incluso salvaje en partes del espacio de entrada que no están cubiertas por los datos de entrenamiento. Este comportamiento es especialmente problemático cuando se pueden violar las restricciones de política o equidad.

Aunque las formas comunes de regularización pueden resultar en una extrapolación más sensata, los regularizadores estándar no pueden garantizar un comportamiento razonable del modelo en todo el espacio de entrada, especialmente con entradas de alta dimensión. Cambiar a modelos más simples con un comportamiento más controlado y predecible puede tener un alto costo para la precisión del modelo.

TF Lattice hace posible seguir usando modelos flexibles, pero proporciona varias opciones para inyectar conocimiento del dominio en el proceso de aprendizaje a través de restricciones de forma semánticamente significativas de sentido común o impulsadas por políticas:

  • Monotonicidad : puede especificar que la salida solo debe aumentar/disminuir con respecto a una entrada. En nuestro ejemplo, es posible que desee especificar que una mayor distancia a una cafetería solo debería disminuir la preferencia prevista del usuario.

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

  • Unimodalidad : puede especificar que la función debe tener un pico único o un valle único. Esto le permite representar funciones que tienen un punto óptimo con respecto a una característica.

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

Flexibilidad Controlada con Regularizadores

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

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

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

  • Wrinkle Regularizer : Este penaliza la segunda derivada de la capa de calibración PWL para evitar cambios bruscos en la curvatura. Hace que la función sea más suave.

  • 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á hacia la independencia entre las contribuciones de las características.

Mezcla y combina con otras capas de Keras

Puede usar capas 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 celosía o PWL se pueden usar en la última capa de redes más profundas que incluyen incrustaciones u otras capas de Keras.

Documentos

Tutoriales y documentos de API

Para arquitecturas de modelos comunes, puede usar modelos prefabricados de Keras o estimadores enlatados . También puede crear modelos personalizados usando capas TF Lattice Keras o mezclar y combinar con otras capas Keras. Consulte los documentos completos de la API para obtener más información.