此页面由 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校准层。

文件

  • 单调形状约束下的道义学伦理学,王颖(Serena Wang),玛雅·古普塔(Maya Gupta),国际人工智能与统计会议(AISTATS),2020年
  • 集合函数的形状约束 ,Andrew Cotter,Maya Gupta,H。Jiang,Erez Louidor,Jim Muller,Taman Narayan,Serena Wang,Tao Zhu。 2019年国际机器学习大会(ICML)
  • 可解释性和正则化的递减形状约束 ,Maya Gupta,Dara Bahri,Andrew Cotter,Kevin Canini,神经信息处理系统(NeurIPS)的发展,2018年
  • Deep Lattice Networks and Partial Monotonon Functions ,Seungil You,Kevin Canini,David Ding,Jan Pfeifer,Maya R.Gupta,神经信息处理系统(NeurIPS)的进展,2017年
  • 带有格子集合的快速灵活的单调函数 ,Mahdi Milani Fard,Kevin Canini,Andrew Cotter,Jan Pfeifer,Maya Gupta,神经信息处理系统(NeurIPS)的发展,2016年
  • 单调校准内插查询表 ,Maya Gupta,Andrew Cotter,Jan Pfeifer,Konstantin Voevodski,Kevin Canini,Alexander Mangylov,Wojciech Moczydlowski,Alexander van Esbroeck,机器学习研究(JMLR),2016年
  • 针对有效功能评估的优化回归 ,Eric Garcia,Raman Arora,Maya R. Gupta,IEEE图像处理事务,2012年
  • 格回归 ,Eric Garcia,Maya Gupta,神经信息处理系统(NeurIPS)的发展,2009年

教程和API文档

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