TensorFlow Lattice é uma biblioteca que implementa modelos flexíveis, controlados e interpretáveis baseados em reticulados. A biblioteca permite injetar conhecimento do domínio no processo de aprendizado por meio de restrições de forma baseadas em senso comum ou em políticas. Isso é feito usando uma coleção de camadas Keras que podem satisfazer restrições como monotonicidade, convexidade e confiança entre pares. A biblioteca também fornece modelos pré- configurados fáceis de usar.
Conceitos
Esta seção é uma versão simplificada da descrição em Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016.
Redes
Uma grade é uma tabela de consulta interpolada que pode aproximar relações arbitrárias de entrada-saída em seus dados. Ela sobrepõe uma grade regular ao seu espaço de entrada e aprende os valores de saída nos vértices da grade. Para um ponto de teste \(x\), \(f(x)\) é interpolado linearmente a partir dos valores da rede circundante. \(x\).

O exemplo simples acima é uma função com 2 variáveis de entrada e 4 parâmetros:\(\theta=[0, 0.2, 0.4, 1]\), que são os valores da função nos cantos do espaço de entrada; o restante da função é interpolado a partir desses parâmetros.
A função \(f(x)\) É possível capturar interações não lineares entre características. Você pode pensar nos parâmetros da rede como a altura de postes fixados no solo em uma grade regular, e a função resultante é como um tecido esticado contra os quatro postes.
Com \(D\) características e 2 vértices ao longo de cada dimensão; uma treliça regular terá \(2^D\) parâmetros. Para ajustar uma função mais flexível, você pode especificar uma grade mais refinada sobre o espaço de características com mais vértices em cada dimensão. As funções de regressão de grade são contínuas e infinitamente diferenciáveis por partes.
Calibração
Suponhamos que a estrutura de exemplo anterior represente a satisfação do usuário com uma sugestão de cafeteria local, calculada usando características:
- Preço do café, na faixa de 0 a 20 dólares
- distância até o usuário, em um intervalo de 0 a 30 quilômetros
Queremos que nosso modelo aprenda a avaliar a satisfação do usuário com a sugestão de uma cafeteria local. Os modelos TensorFlow Lattice podem usar funções lineares por partes (com tfl.layers.PWLCalibration ) para calibrar e normalizar as características de entrada para o intervalo aceito pela rede: de 0,0 a 1,0 no exemplo acima. A seguir, são apresentados exemplos dessas funções de calibração com 10 pontos-chave:


Geralmente, é uma boa ideia usar os quantis das características como pontos-chave de entrada. Os modelos predefinidos do TensorFlow Lattice podem definir automaticamente os pontos-chave de entrada como os quantis das características.
Para recursos categóricos, o TensorFlow Lattice fornece calibração categórica (com tfl.layers.CategoricalCalibration ) com limites de saída semelhantes para alimentar uma rede.
Conjuntos
O número de parâmetros de uma camada de lattice aumenta exponencialmente com o número de características de entrada, portanto, não escala bem para dimensões muito altas. Para superar essa limitação, o TensorFlow Lattice oferece conjuntos de lattices que combinam (calculam a média) de vários lattices pequenos , o que permite que o modelo cresça linearmente em relação ao número de características.
A biblioteca oferece duas variações desses conjuntos:
Random Tiny Lattices (RTL): Cada submodelo utiliza um subconjunto aleatório de características (com reposição).
Crystals : O algoritmo Crystals primeiro treina um modelo de pré-ajuste que estima as interações entre pares de características. Em seguida, organiza o conjunto final de forma que as características com mais interações não lineares estejam nas mesmas redes.
Por que usar o TensorFlow Lattice?
Você pode encontrar uma breve introdução ao TensorFlow Lattice nesta postagem do blog do TensorFlow .
Interpretabilidade
Como os parâmetros de cada camada são a saída dessa camada, é fácil analisar, compreender e depurar cada parte do modelo.
Modelos precisos e flexíveis
Utilizando reticulados de granularidade fina, é possível obter funções arbitrariamente complexas com uma única camada de reticulado. O uso de múltiplas camadas de calibradores e reticulados geralmente funciona bem na prática e pode igualar ou superar modelos de redes neurais profundas (DNN) de tamanhos semelhantes.
Restrições de forma de senso comum
Os dados de treinamento do mundo real podem não representar adequadamente os dados de tempo de execução. Soluções flexíveis de aprendizado de máquina, como redes neurais profundas (DNNs) ou florestas de aprendizado, frequentemente se comportam de maneira inesperada e até mesmo imprevisível em partes do espaço de entrada não cobertas pelos dados de treinamento. Esse comportamento é especialmente problemático quando as restrições de política ou de equidade podem ser violadas.

Embora formas comuns de regularização possam resultar em extrapolações mais sensatas, os regularizadores padrão não garantem um comportamento razoável do modelo em todo o espaço de entrada, especialmente com entradas de alta dimensionalidade. A mudança para modelos mais simples, com comportamento mais controlado e previsível, pode ter um custo significativo em termos de precisão do modelo.
O TF Lattice permite continuar usando modelos flexíveis, mas oferece diversas opções para inserir conhecimento do domínio no processo de aprendizado por meio de restrições de forma semanticamente significativas, baseadas no senso comum ou em políticas:
- Monotonicidade : Você pode especificar que a saída deve apenas aumentar/diminuir em relação a uma entrada. Em nosso exemplo, você pode querer especificar que o aumento da distância até uma cafeteria deve apenas diminuir a preferência prevista do usuário.




Convexidade/Concavidade : Você pode especificar que a forma da função pode ser convexa ou côncava. Combinada com a monotonicidade, isso pode fazer com que a função represente retornos decrescentes em relação a uma determinada característica.
Unimodalidade : Você pode especificar que a função deve ter um pico ou um vale únicos. Isso permite representar funções que possuem um ponto ideal em relação a uma característica.
Confiança entre pares : Essa restrição funciona com base em um par de características e sugere que uma característica de entrada reflete semanticamente a confiança em outra característica. Por exemplo, um número maior de avaliações aumenta a confiança na classificação média por estrelas de um restaurante. O modelo será mais sensível em relação à classificação por estrelas (ou seja, terá uma inclinação maior em relação à classificação) quando o número de avaliações for maior.
Flexibilidade controlada com regularizadores
Além das restrições de forma, o TensorFlow Lattice fornece diversos regularizadores para controlar a flexibilidade e a suavidade da função em cada camada.
Regularizador Laplaciano : Os valores de saída dos vértices/pontos-chave da grade/calibração são regularizados em direção aos valores de seus respectivos vizinhos. Isso resulta em uma função mais plana .
Regularizador Hessiano : Este regularizador penaliza a primeira derivada da camada de calibração PWL para tornar a função mais linear .
Regularizador de Rugas : Esta função penaliza a segunda derivada da camada de calibração PWL para evitar mudanças bruscas na curvatura, tornando-a mais suave.
Regularizador de Torção : As saídas da rede serão regularizadas para evitar a torção entre as características. Em outras palavras, o modelo será regularizado para garantir a independência entre as contribuições das características.
Combine e misture com outras camadas do Keras.
Você pode usar camadas TF Lattice em combinação com outras camadas Keras para construir modelos parcialmente restritos ou regularizados. Por exemplo, camadas de calibração Lattice ou PWL podem ser usadas na última camada de redes mais profundas que incluem embeddings ou outras camadas Keras.
Documentos
- Ética Deontológica por Restrições de Forma de Monotonicidade , Serena Wang, Maya Gupta, Conferência Internacional sobre Inteligência Artificial e Estatística (AISTATS), 2020
- Restrições de forma para funções de conjunto , Andrew Cotter, Maya Gupta, H. Jiang, Erez Louidor, Jim Muller, Taman Narayan, Serena Wang, Tao Zhu. Conferência Internacional de Aprendizado de Máquina (ICML), 2019
- Retornos decrescentes moldam restrições para interpretabilidade e regularização , Maya Gupta, Dara Bahri, Andrew Cotter, Kevin Canini, Advances in Neural Information Processing Systems (NeurIPS), 2018
- Redes de treliça profundas e funções monotônicas parciais , Seungil You, Kevin Canini, David Ding, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2017
- Funções Monotônicas Rápidas e Flexíveis com Conjuntos de Reticulados , Mahdi Milani Fard, Kevin Canini, Andrew Cotter, Jan Pfeifer, Maya Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2016
- Tabelas de consulta interpoladas calibradas monotônicas , Maya Gupta, Andrew Cotter, Jan Pfeifer, Konstantin Voevodski, Kevin Canini, Alexander Mangylov, Wojciech Moczydlowski, Alexander van Esbroeck, Journal of Machine Learning Research (JMLR), 2016
- Regressão otimizada para avaliação eficiente de funções , Eric Garcia, Raman Arora, Maya R. Gupta, IEEE Transactions on Image Processing, 2012
- Regressão em Rede , Eric Garcia, Maya Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2009
Tutoriais e documentação da API
Para arquiteturas de modelos comuns, você pode usar modelos predefinidos do Keras . Você também pode criar modelos personalizados usando camadas TF Lattice do Keras ou combinar com outras camadas do Keras. Consulte a documentação completa da API para obter mais detalhes.