Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

ML flessibile, controllato e interpretabile con modelli a 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_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 è una libreria che implementa modelli basati su reticoli vincolati e interpretabili. La libreria consente di inserire conoscenze di dominio nel processo di apprendimento attraverso vincoli di forma basati sul buonsenso o sulla politica. Questo viene fatto usando una raccolta di livelli di Keras in grado di soddisfare vincoli come la monotonia, la convessità e il modo in cui le caratteristiche interagiscono. La libreria fornisce anche modelli premade e stimatori predefiniti facili da configurare.

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