ML flessibile, controllato e interpretabile con modelli basati su reticolo

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 è una libreria che implementa modelli basati su reticoli vincolati e interpretabili. La libreria consente di iniettare conoscenza del dominio nel processo di apprendimento attraverso il buon senso o basati su policy vincoli di forma . Questo viene fatto utilizzando un insieme di strati Keras in grado di soddisfare i vincoli come la monotonia, convessità e come caratteristiche interagiscono. La libreria fornisce anche facile da installare modelli già pronti e stimatori in scatola .

Con TF Lattice puoi utilizzare la conoscenza del dominio per estrapolare meglio le parti dello spazio di input non coperte dal set di dati di addestramento. Ciò consente di evitare comportamenti imprevisti del modello quando la distribuzione di servizio è diversa dalla distribuzione di addestramento.