AA flexible, controlado e interpretable con modelos basados en cuadrículas

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 cuadrículas que son limitados e interpretables. La biblioteca te permite incorporar conocimiento de área en el proceso de aprendizaje mediante restricciones de forma basadas en el sentido común o en políticas. Esto se logra mediante una colección de capas de Keras que pueden satisfacer restricciones como la monotonía, la convexidad y la forma en que interactúan las funciones. La biblioteca también proporciona modelos prediseñados y estimadores estándar fáciles de configurar.

Con TF Lattice, puedes usar el conocimiento del dominio para extrapolar mejor las secciones del espacio de entrada que no estén cubiertas por el conjunto de datos de entrenamiento. Esto ayuda a evitar el comportamiento imprevisto del modelo cuando la distribución de la deriva es diferente de la distribución del entrenamiento.