Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Celosía TensorFlow (TFL)

TensorFlow Lattice es una biblioteca que implementa modelos basados ​​en redes flexibles, controlados e interpretables. La biblioteca le permite inyectar conocimiento del dominio en el proceso de aprendizaje a través de restricciones de forma de sentido común o impulsadas por políticas. Esto se hace usando 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 Tablas de consulta interpoladas calibradas monotónicas, JMLR 2016.

Enrejados

Un enrejado es una tabla de búsqueda interpolada que puede aproximar relaciones arbitrarias de entrada-salida en sus datos. Se superpone a 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 la red que rodean a $ 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 características. Puede pensar en los parámetros de la celosía 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 celosía regular tendrá parámetros $ 2 ^ D $. Para ajustar una función más flexible, puede especificar una red reticulada más fina sobre el espacio de entidades con más vértices a lo largo de cada dimensión. Las funciones de regresión en celosía son continuas y por partes infinitamente diferenciables.

Calibración

Digamos que el enrejado de muestra anterior representa una felicidad aprendida del usuario con una cafetería local sugerida calculada usando características:

  • precio del café, en el rango de 0 a 20 dólares
  • distancia al usuario, en un 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 de 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 celosía: 0.0 a 1.0 en el ejemplo de celosía anterior. A continuación se muestran ejemplos de tales funciones de calibración con 10 puntos clave:

A menudo es una buena idea usar 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 para los cuantiles de características.

Para las características categóricas, TensorFlow Lattice proporciona una calibración categórica (con tfl.layers.CategoricalCalibration ) con un límite de salida similar para alimentar un enrejado.

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 redes que combinan (promedio) varias redes pequeñas , lo que permite que el modelo crezca linealmente en la cantidad de características.

La biblioteca ofrece dos variaciones de estos conjuntos:

  • Tiny Lattices al azar (RTL): cada submodelo usa un subconjunto aleatorio de características (con reemplazo).

  • Cristales : el algoritmo de cristales primero entrena un modelo de ajuste previo que estima las interacciones de características por pares. Luego organiza el conjunto final de manera que las entidades con más interacciones no lineales estén en las mismas celosías.

¿Por qué TensorFlow Lattice?

Puede encontrar una breve introducción a TensorFlow Lattice en esta publicación de TF Blog .

Interpretabilidad

Dado que los parámetros de cada capa son el resultado 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 celosías a menudo funciona bien en la práctica y puede igualar o superar a 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 en tiempo de ejecución. Las soluciones de aprendizaje automático flexibles, como DNN o bosques, a menudo actúan de forma inesperada e incluso salvaje en partes del espacio de entrada que no cubren los datos de entrenamiento. Este comportamiento es especialmente problemático cuando se pueden violar las restricciones políticas o de 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 costo severo para la precisión del modelo.

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

  • Monotonicidad : puede especificar que la salida solo aumente / disminuya 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 del usuario prevista.

  • Convexidad / Concavidad : puede especificar que la forma de la función puede ser convexa o cóncava. Mezclado con la monotonicidad, esto puede forzar 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 características y sugiere que una característica de entrada refleja semánticamente la confianza en otra característica. Por ejemplo, un mayor número de comentarios te hace tener 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 pendiente mayor 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, TensorFlow lattice proporciona una serie de regularizadores para controlar la flexibilidad y suavidad de la función para cada capa.

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

  • Hessian Regularizer : 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 : esto penaliza la segunda derivada de la capa de calibración PWL para evitar cambios repentinos en la curvatura. Hace la función 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.

Mezclar y combinar con otras capas de Keras

Puede usar capas TF Lattice en combinación con otras capas 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 detalles.