도움말 Kaggle에 TensorFlow과 그레이트 배리어 리프 (Great Barrier Reef)를 보호하기 도전에 참여

격자 기반 모델을 사용하여 유연하고 제어 가능하며 해석 가능한 ML

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를 사용하면 도메인 지식을 활용하여 학습 데이터세트에서 다루지 않는 입력 공간 부분에 더 잘 외삽할 수 있습니다. 따라서 서빙 분포가 학습 분포와 다를 때 예기치 못한 모델 동작을 피할 수 있습니다.