Гибкое, контролируемое и интерпретируемое машинное обучение с моделями на основе решетки

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 - это библиотека, которая реализует модели на основе ограниченных и интерпретируемых решеток. Библиотека позволяет вводить знания предметной области в процесс обучения с помощью здравого смысла или политически мотивированных ограничений формы . Это делается с помощью набора Keras слоев , которые могут удовлетворить такие ограничения, как монотонность, выпуклость и как особенности взаимодействуют. Библиотека также предоставляет простой в настройке моделей предварительно сделанных и консервированных оценок .

С TF Lattice вы можете использовать знания предметной области, чтобы лучше экстраполировать на части входного пространства, не охваченные обучающим набором данных. Это помогает избежать неожиданного поведения модели, когда распределение обслуживания отличается от распределения для обучения.