Ayuda a proteger la Gran Barrera de Coral con TensorFlow en Kaggle Únete Challenge

Celosía TensorFlow (TFL)

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

Conceptos

Esta sección es una versión simplificada de la descripción en las Tablas Monotónica calibrado interpolada de consulta , JMLR 2016.

Celosías

Una red es una tabla de consulta interpolada que puede aproximarse a las relaciones de entrada-salida arbitrarias 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 celosía que rodean \(x\).

El simple ejemplo 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 las 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 \(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 celosía de grano más fino sobre el espacio de entidades con más vértices a lo largo de cada dimensión. Las funciones de regresión de celosía son continuas y por partes infinitamente diferenciables.

Calibración

Digamos que la celosía de ejemplo anterior representa una felicidad usuario recibido con una cafetería local sugerido calculado utilizando 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. Modelos TensorFlow de celosía pueden utilizar funciones lineales a trozos (con tfl.layers.PWLCalibration ) para calibrar y normalizar la entrada de características para el rango aceptado por la red: de 0,0 a 1,0 en el ejemplo de celosía anteriormente. A continuación se muestran ejemplos de funciones de calibración con 10 puntos clave:

A menudo es una buena idea utilizar los cuantiles de las entidades como puntos clave de entrada. TensorFlow Lattice estimadores enlatados pueden establecer automáticamente los puntos clave de entrada a los cuantiles de características.

Para las características categóricas, TensorFlow enrejado proporciona calibración categórica (con tfl.layers.CategoricalCalibration ) con una salida similar que limita a la alimentación en 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 del enrejado ofrece conjuntos de celosías que combinan (promedio) varias celosías pequeñas, lo que permite el modelo de crecer de forma lineal en el número de características.

La biblioteca ofrece dos variaciones de estos conjuntos:

  • Rejas al azar diminutos (RTL): Cada sub-modelo utiliza un subconjunto aleatorio de características (con reemplazo).

  • Cristales: Los cristales algoritmo primeros trenes un modelo prefitting que las estimaciones por parejas las interacciones entre características. 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?

Se puede encontrar una breve introducción a TensorFlow de celosía en este TF Blog post .

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

El uso de 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 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 costo severo para la precisión del modelo.

TF del enrejado hace posible seguir usando modelos flexibles, pero ofrece varias opciones para el conocimiento del dominio inyectar en el proceso de aprendizaje a través semánticamente significativa de sentido común o basados en políticas limitaciones forma :

  • Monotonicidad: Usted puede especificar que la salida sólo debería 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 del usuario predicha.

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

  • Unimodalidad: Usted puede especificar que la función debe tener un pico único o singular valle. Esto permite representar funciones que tienen un punto dulce con respecto a una función.

  • Por parejas confianza: Esta restricción trabaja en un par de características y sugiere que una característica de entrada refleja semánticamente confianza en otra función. Por ejemplo, una mayor cantidad de reseñas le 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 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 suavidad de la función para cada capa.

  • Laplaciano regularizador: Las salidas de la red / calibración vértices / puntos significativos se regularizan hacia los valores de sus respectivos vecinos. Esto resulta en una función más plano.

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

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

  • Regularizador de torsión: Salidas de la red se regularizará en la prevención de 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 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 modelo comunes, puede utilizar modelos prefabricados Keras o estimadores enlatados . También se pueden crear modelos personalizados utilizando capas TF del enrejado Keras o mezclar y combinar con otras capas Keras. Echa un vistazo a los documentos de la API completo para más detalles.