Elastyczne, kontrolowane i interpretowalne ML z modelami opartymi na siatce

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 to biblioteka, która implementuje ograniczone i możliwe do interpretacji modele oparte na kratach. Biblioteka umożliwia wprowadzenie wiedzy dziedzinowej do procesu uczenia się poprzez ograniczenia kształtu oparte na zdrowym rozsądku lub zasadach. Odbywa się to za pomocą zbioru warstw Keras , które mogą spełniać ograniczenia, takie jak monotoniczność, wypukłość i sposób interakcji obiektów. Biblioteka udostępnia także łatwe w konfiguracji, gotowe modele .

Dzięki TF Lattice możesz wykorzystać wiedzę dziedzinową, aby lepiej ekstrapolować na części przestrzeni wejściowej nieobjęte zbiorem danych szkoleniowych. Pomaga to uniknąć nieoczekiwanego zachowania modelu, gdy dystrybucja obsługi różni się od dystrybucji szkoleniowej.