ML flexible, contrôlé et interprétable avec des modèles basés sur des réseaux

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_size=[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 est une bibliothèque qui implémente des modèles contraints et interprétables basés sur des réseaux. Cette bibliothèque vous permet d'injecter la connaissance du domaine dans le processus d'apprentissage par l'intermédiaire de contraintes de forme basées sur le bon sens ou sur des règles. Cela passe par l'utilisation d'un ensemble de couches Keras qui peuvent satisfaire des contraintes telles que la monotonie, la convexité et les interactions entre les caractéristiques. La bibliothèque fournit également des modèles prédéfinis et des Estimators standardisés faciles à configurer.

TF Lattice vous permet d'utiliser la connaissance du domaine pour mieux extrapoler les parties de l'espace d'entrée non couvertes par l'ensemble de données d'entraînement. Cela permet d'éviter un comportement inattendu du modèle lorsque la distribution d'inférence est différente de la distribution d'entraînement.