Attend the Women in ML Symposium on December 7 Register now
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

ML flexible, controlado e interpretable con modelos basados ​​en celosía

import numpy as np
import tensorflow as tf
import tensorflow_lattice as tfl

model = tf.keras.models.Sequential()
model.add(
    tfl.layers.ParallelCombination([
        # Monotonic piece-wise linear calibration with bounded output
        tfl.layers.PWLCalibration(
            monotonicity='increasing',
            input_keypoints=np.linspace(1., 5., num=20),
            output_min=0.0,
            output_max=1.0),
        # Diminishing returns
        tfl.layers.PWLCalibration(
            monotonicity='increasing',
            convexity='concave',
            input_keypoints=np.linspace(0., 200., num=20),
            output_min=0.0,
            output_max=2.0),
        # Partially monotonic categorical calibration: calib(0) <= calib(1)
        tfl.layers.CategoricalCalibration(
            num_buckets=4,
            output_min=0.0,
            output_max=1.0,
            monotonicities=[(0, 1)]),
    ]))
model.add(
    tfl.layers.Lattice(
        lattice_sizes=[2, 3, 2],
        monotonicities=['increasing', 'increasing', 'increasing'],
        # Trust: model is more responsive to input 0 if input 1 increases
        edgeworth_trusts=(0, 1, 'positive')))
model.compile(...)

TensorFlow Lattice es una biblioteca que implementa modelos basados ​​en celosías restringidos 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 usando una colección de capas de Keras que pueden satisfacer restricciones como la monotonicidad, la convexidad y cómo interactúan las características. La biblioteca también proporciona modelos prefabricados fáciles de configurar y estimadores enlatados .

Con TF Lattice puede usar el conocimiento del dominio para extrapolar mejor a las partes del espacio de entrada que no cubre el conjunto de datos de entrenamiento. Esto ayuda a evitar un comportamiento inesperado del modelo cuando la distribución de servicio es diferente de la distribución de entrenamiento.