此页面由 Cloud Translation API 翻译。
Switch to English

TensorFlow格子(TFL)

TensorFlow Lattice是一个库,可实现灵活,受控和可解释的基于网格的模型。该库使您可以通过常识或策略驱动的形状约束将领域知识注入学习过程。这是通过使用Keras图层集合来完成的,这些图层可以满足诸如单调性,凸性和成对信任之类的约束。该库还提供易于设置的固定估计器

概念

本节是单调校准内插查找表 (JMLR 2016)中描述的简化版本。

格子

晶格是一个内插的查询表,可以近似计算数据中的任意输入-输出关系。它会将常规网格重叠到您的输入空间上,并在网格的顶点中学习输出的值。对于测试点$ x $,从$ x $周围的晶格值线性内插$ f(x)$。

上面的简单示例是一个具有2个输入要素和4个参数的函数:$ \ theta = [0,0.2,0.4,1] $,这是函数在输入空间的角上的值;这些参数的其余部分将通过这些参数进行插值。

函数$ f(x)$可以捕获要素之间的非线性相互作用。您可以将晶格参数看作是在常规网格上设置在地面上的极点高度,其结果就像是将布料紧紧地绑在四个极点上。

借助$ D $特征和沿每个维2个顶点,规则晶格将具有$ 2 ^ D $参数。要适合更灵活的功能,您可以在特征空间上指定一个更细粒度的晶格,每个维上都有更多的顶点。格回归函数是连续的且分段无限可微的。

校准

假设前面的示例晶格代表使用功能计算的建议本地咖啡店的学习到的用户幸福感

  • 咖啡价格,范围从0到20美元
  • 到用户的距离,范围从0到30公里

我们希望我们的模型通过本地咖啡店的建议来学习用户的满意度。 TensorFlow Lattice模型可以使用分段线性函数 (带有tfl.layers.PWLCalibration )将输入特征校准和规范化为晶格接受的范围:在上述示例晶格中为0.0到1.0。以下显示了具有10个关键点的此类校准功能的示例:

将要素的分位数用作输入关键点通常是个好主意。 TensorFlow Lattice 固定估计器可以自动将输入关键点设置为特征分位数。

对于分类特征,TensorFlow Lattice提供分类校准(使用tfl.layers.CategoricalCalibration ),并具有类似的输出边界以馈入晶格。

合奏

晶格层的参数数量随输入特征的数量呈指数增长,因此无法很好地缩放到非常高的尺寸。为了克服此限制,TensorFlow格子提供了将多个格子组合(平均)的格子集合,这使模型的特征数量线性增长。

该库提供了这些合奏的两种变体:

  • 随机小格 (RTL):每个子模型使用特征的随机子集(带有替换)。

  • 晶体 :Crystals算法首先训练一个预拟合模型,该模型估计成对特征相互作用。然后,它安排最终的合奏,以使具有更多非线性相互作用的要素位于同一晶格中。

为什么选择TensorFlow Lattice?

您可以在TF Blog帖子中找到TensorFlow Lattice的简要介绍。

可解释性

由于每一层的参数都是该层的输出,因此很容易分析,理解和调试模型的每个部分。

准确而灵活的模型

使用细粒度的晶格,您可以使用单个晶格层获得任意复杂的函数。在实践中,使用多层校准器和晶格通常会很好地工作,并且可以匹配或优于相似大小的DNN模型。

常识形状约束

实际训练数据可能不足以代表运行时数据。诸如DNN或森林之类的灵活ML解决方案通常在训练数据未涵盖的部分输入空间中行为异常甚至疯狂。当违反政策或公平约束时,此行为尤其成问题。

即使常见形式的正则化可以导致更合理的外推,但标准正则化器无法保证整个输入空间(尤其是高维输入)的合理模型行为。切换到具有更多可控和可预测行为的更简单模型可能会给模型准确性带来沉重的代价。

TF Lattice使得可以继续使用灵活的模型,但是提供了几种选择,可以通过语义上有意义的常识或策略驱动的形状约束将领域知识注入学习过程:

  • 单调性 :您可以指定输出仅应相对于输入增加/减少。在我们的示例中,您可能希望指定到咖啡店的距离增加只会降低预测的用户偏好。

  • 凸度/凹度 :您可以指定函数形状可以是凸形或凹形。与单调性混合,这可以迫使函数表示相对于给定特征的递减收益。

  • :您可以指定函数应具有唯一的峰或唯一的谷。这样,您就可以表示对某个功能有最佳评价的功能。

  • 逐对信任 :此约束对一对要素有效,并建议一个输入要素在语义上反映对另一个要素的信任。例如,评论数量越高,您对餐厅的平均星级就会越有信心。当评论的数量更多时,该模型将相对于星级更敏感(即相对于星级具有更大的斜率)。

正则化器可控制的灵活性

除了形状限制外,TensorFlow晶格还提供了许多正则化器来控制每一层功能的灵活性和平滑性。

  • 拉普拉斯正则化器 :将晶格/校准顶点/关键点的输出朝其各自的邻居的值进行正则化。这导致功能更平坦

  • Hessian正则化器 :这会惩罚PWL校准层的一阶导数,以使函数更线性

  • 皱纹调节器:这会惩罚PWL校准层的二阶导数,以避免曲率突然变化。使功能更流畅。

  • 扭转规则化器 :将对栅格的输出进行正则化,以防止特征之间发生扭转。换句话说,该模型将朝着特征贡献之间的独立性进行正则化。

与其他Keras图层混合并匹配

可以将TF Lattice图层与其他Keras图层结合使用,以构建部分约束或规则化的模型。例如,可以在包括嵌入或其他Keras层的更深层网络的最后一层使用晶格或PWL校准层。

文件

教程和API文档

对于常见的模型架构,您可以使用Keras预制模型固定估计器 。您也可以使用TF Lattice Keras图层创建自定义模型,或与其他Keras图层混合并匹配。查看完整的API文档以获取详细信息。