使用基于 TensorFlow Lattice 的模型实现灵活、可控且可解释的机器学习
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 层实现的,可以满足单调性、凸度和特征相互作用方式等限制条件。该库还提供易于设置的预创建模型和预设 Estimator。
借助 TF Lattice,您可以利用领域知识更好地推断训练数据集未涵盖的输入空间部分。这有助于避免在服务分布与训练分布不同时出现意外模型行为。