Esta página foi traduzida pela API Cloud Translation.
Switch to English

TensorFlow Lattice (TFL)

O TensorFlow Lattice é uma biblioteca que implementa modelos flexíveis, controlados e interpretáveis ​​com base em treliça. A biblioteca permite que você injete conhecimento de domínio no processo de aprendizagem por meio do senso comum ou de restrições de forma orientadas por políticas. Isso é feito usando uma coleção de camadas Keras que podem satisfazer restrições como monotonicidade, convexidade e confiança aos pares. A biblioteca também fornece fácil de configurar estimadores enlatados .

Conceitos

Esta seção é uma versão simplificada da descrição em Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016.

Malhas

Uma estrutura é uma tabela de consulta interpolada que pode aproximar relações arbitrárias de entrada e saída em seus dados. Sobrepõe uma grade regular ao seu espaço de entrada e aprende valores para a saída nos vértices da grade. Para um ponto de teste $ x $, $ f (x) $ é interpolado linearmente a partir dos valores da rede em torno de $ x $.

O exemplo simples acima é uma função com 2 recursos 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 resto da função é interpolado a partir desses parâmetros.

A função $ f (x) $ pode capturar interações não lineares entre recursos. Você pode pensar nos parâmetros de rede como a altura dos postes fixados no solo em uma grade regular, e a função resultante é como um tecido puxado firmemente contra os quatro postes.

Com recursos $ D $ e 2 vértices ao longo de cada dimensão, uma rede regular terá $ 2 ^ D $ parâmetros. Para se ajustar a uma função mais flexível, você pode especificar uma estrutura de granulação mais fina sobre o espaço do recurso com mais vértices ao longo de cada dimensão. As funções de regressão de rede são contínuas e infinitamente diferenciáveis ​​por partes.

Calibração

Digamos que a estrutura de amostra anterior represente a felicidade aprendida do usuário com uma cafeteria local sugerida calculada usando recursos:

  • preço do café, na faixa de 0 a 20 dólares
  • distância para o usuário, na faixa de 0 a 30 quilômetros

Queremos que nosso modelo aprenda a felicidade do usuário com uma sugestão de cafeteria local. Os modelos do TensorFlow Lattice podem usar funções lineares por partes (com tfl.layers.PWLCalibration ) para calibrar e normalizar os recursos de entrada para o intervalo aceito pela estrutura: 0,0 a 1,0 na estrutura de exemplo acima. O seguinte mostra exemplos de funções de calibração com 10 pontos-chave:

Freqüentemente, é uma boa ideia usar os quantis dos recursos como pontos-chave de entrada. Os estimadores de latas TensorFlow Lattice podem definir automaticamente os pontos-chave de entrada para os quantis de recursos.

Para recursos categóricos, o TensorFlow Lattice fornece calibração categórica (com tfl.layers.CategoricalCalibration ) com saída similar limitada para alimentar uma treliça.

Conjuntos

O número de parâmetros de uma camada de rede aumenta exponencialmente com o número de recursos de entrada, portanto, não escalando bem para dimensões muito altas. Para superar essa limitação, o TensorFlow Lattice oferece conjuntos de redes que combinam (em média) várias redes pequenas , o que permite que o modelo cresça linearmente no número de recursos.

A biblioteca oferece duas variações desses conjuntos:

  • Reticuladas minúsculas aleatórias (RTL): cada submodelo usa um subconjunto aleatório de recursos (com substituição).

  • Cristais : O algoritmo Crystals primeiro treina um modelo prefect que estima interações de características em pares. Em seguida, ele organiza o conjunto final de forma que os recursos com mais interações não lineares fiquem nas mesmas redes.

Por que o TensorFlow Lattice?

Você pode encontrar uma breve introdução ao TensorFlow Lattice nesta postagem do TF Blog .

Interpretabilidade

Como os parâmetros de cada camada são a saída dessa camada, é fácil analisar, entender e depurar cada parte do modelo.

Modelos precisos e flexíveis

Usando reticulados de baixa granularidade, você pode obter funções arbitrariamente complexas com uma única camada de reticulado. O uso de várias camadas de calibradores e treliças geralmente funciona bem na prática e pode corresponder ou superar modelos DNN de tamanhos semelhantes.

Restrições de forma de senso comum

Os dados de treinamento do mundo real podem não representar suficientemente os dados de tempo de execução. Soluções flexíveis de ML, como DNNs ou florestas, geralmente agem de maneira inesperada e descontrolada em partes do espaço de entrada não cobertas pelos dados de treinamento. Esse comportamento é especialmente problemático quando a política ou restrições de justiça podem ser violadas.

Embora formas comuns de regularização possam resultar em extrapolação mais sensata, os regularizadores padrão não podem garantir um comportamento razoável do modelo em todo o espaço de entrada, especialmente com entradas de alta dimensão. Mudar para modelos mais simples com um comportamento mais controlado e previsível pode ter um custo severo para a precisão do modelo.

O TF Lattice torna possível continuar usando modelos flexíveis, mas oferece várias opções para injetar conhecimento de domínio no processo de aprendizagem por meio do senso comum semanticamente significativo ou restrições de forma orientadas por políticas:

  • Monotonicidade : Você pode especificar que a saída só deve aumentar / diminuir em relação a uma entrada. Em nosso exemplo, você pode especificar que o aumento da distância a uma cafeteria deve diminuir apenas a preferência prevista do usuário.

  • Convexidade / concavidade : você pode especificar que a forma da função pode ser convexa ou côncava. Misturado à monotonicidade, isso pode forçar a função a representar retornos decrescentes em relação a um determinado recurso.

  • Unimodalidade : Você pode especificar que a função tenha um pico ou vale exclusivo. Isso permite representar funções que têm um ponto ideal em relação a um recurso.

  • Confiança em pares : Essa restrição funciona em um par de recursos e sugere que um recurso de entrada reflita semanticamente a confiança em outro recurso. Por exemplo, um número maior de comentários torna você mais confiante 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 críticas for maior.

Flexibilidade controlada com regularizadores

Além das restrições de formato, a estrutura do TensorFlow fornece vários regularizadores para controlar a flexibilidade e a suavidade da função de cada camada.

  • Regularizador Laplaciano : As saídas da rede / vértices de calibração / pontos-chave são regularizadas para os valores de seus respectivos vizinhos. Isso resulta em uma função mais plana .

  • Regularizador de Hessian : penaliza a primeira derivada da camada de calibração PWL para tornar a função mais linear .

  • Regularizador de rugas : penaliza a segunda derivada da camada de calibração PWL para evitar mudanças repentinas na curvatura. Isso torna a função mais suave.

  • Regularizador de torção : as saídas da rede serão regularizadas para evitar a torção entre os recursos. Em outras palavras, o modelo será regularizado em direção à independência entre as contribuições dos recursos.

Misture e combine com outras camadas Keras

Você pode usar as camadas TF Lattice em combinação com outras camadas Keras para construir modelos parcialmente restritos ou regularizados. Por exemplo, as camadas de calibração de treliça ou PWL podem ser usadas na última camada de redes mais profundas que incluem incorporações ou outras camadas de Keras.

Papéis

Tutoriais e documentos de API

Para arquiteturas de modelo comuns, você pode usar modelos pré - fabricados Keras ou estimadores predefinidos . Você também pode criar modelos personalizados usando camadas TF Lattice Keras ou misturar e combinar com outras camadas Keras. Verifique os documentos completos da API para obter detalhes.