Ajuda a proteger a Grande Barreira de Corais com TensorFlow em Kaggle Junte Desafio

TensorFlow Lattice (TFL)

TensorFlow Lattice é uma biblioteca que implementa modelos baseados em rede flexíveis, controlados e interpretáveis. A biblioteca permite injectar conhecimentos de domínio no processo de aprendizagem através de senso comum ou orientados por políticas constrangimentos forma . Isso é feito usando uma coleção de camadas Keras que podem satisfazer restrições, como monotonicity, convexidade e confiança em pares. A biblioteca também oferece fácil instalação enlatados estimadores .

Conceitos

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

Treliças

A estrutura é uma tabela look-up interpolada que pode aproximar as relações de entrada-saída arbitrários em seus dados. Ele se sobrepõe a uma grade regular em 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)\) é linearmente interpolado a partir dos valores de treliça circundantes \(x\).

O exemplo simples acima é uma função com 2 características de entrada e parâmetros de 4:\(\theta=[0, 0.2, 0.4, 1]\), que são 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 as 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 \(D\) características e 2 vértices ao longo de cada dimensão, uma rede regular terá \(2^D\) parâmetros. Para ajustar-se 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

Vamos dizer que a estrutura da amostra anterior representa uma felicidade usuário aprendeu com um café local sugeriu 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. Modelos TensorFlow treliçadas podem utilizar funções lineares por partes (com tfl.layers.PWLCalibration ) para calibrar e normalizar a entrada apresenta para o intervalo aceite pela estrutura: 0,0 a 1,0 no exemplo da estrutura acima. O seguinte mostra exemplos de funções de calibrações com 10 pontos-chave:

Geralmente, é uma boa ideia usar os quantis dos recursos como pontos-chave de entrada. TensorFlow Malha estimadores enlatados pode configurar automaticamente os pontos-chave de entrada para os quantis metragens.

Para todas as características categóricas, TensorFlow estrutura proporciona calibração categórica (com tfl.layers.CategoricalCalibration ) com uma saída semelhante que limita a alimentação numa estrutura.

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 esta limitação, TensorFlow Lattice oferece conjuntos de reticulados que combinam (média) várias treliças minúsculos, que permite que o modelo a crescer linearmente no número de recursos.

A biblioteca oferece duas variações desses conjuntos:

  • Aleatórios Grades minúsculas (RTL): Cada submodelo utiliza um subconjunto aleatório de recursos (com substituição).

  • Cristais: Os cristais algoritmo primeiros trens um modelo prefitting que as estimativas aos pares interações metragens. Em seguida, ele organiza o conjunto final de modo que os recursos com mais interações não lineares estejam nas mesmas redes.

Por que o TensorFlow Lattice?

Você pode encontrar uma introdução breve para TensorFlow Malha neste Blog post TF .

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 treliças de grão fino, você pode obter funções arbitrariamente complexas com uma camada de rede única. O uso de várias camadas de calibradores e retículos geralmente funciona bem na prática e pode corresponder ou superar os 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 de ML flexíveis, como DNNs ou florestas, geralmente agem de forma inesperada e até descontrolada em partes do espaço de entrada não cobertas pelos dados de treinamento. Esse comportamento é especialmente problemático quando as políticas ou restrições de justiça podem ser violadas.

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

TF Malha torna possível continuar usando modelos flexíveis, mas fornece várias opções para o conhecimento de domínio injetar no processo de aprendizagem através de senso comum semanticamente significativa ou orientados por políticas constrangimentos forma :

  • Monotonicidade: Você pode especificar que a saída só deve aumentar / diminuir no que diz respeito 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 do usuário prevista.

  • Convexidade / concavidade: Você pode especificar que a forma 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 deve ter um único pico ou vale único. Isso permite que você representam funções que têm um ponto doce em relação a um recurso.

  • Pairwise confiança: Esta restrição trabalha em um par de características e sugere que um recurso de entrada reflete semanticamente confiança em uma outra característica. Por exemplo, um número maior de avaliações torna você mais confiante na classificação média por estrelas de um restaurante. O modelo será mais sensível em relação à avaliação com estrelas (ou seja, terá uma inclinação maior em relação à avaliação) quando o número de avaliações 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 suavidade da função para cada camada.

  • Laplaciano Regularizer: Saídas da rede / calibração vértices / keypoints são regularizadas para os valores de seus respectivos vizinhos. Isso resulta em uma função mais plana.

  • Hessian Regularizer: Este penaliza o primeiro derivado da camada de calibração PWL para fazer a função mais linear.

  • Rugas Regularizer: Este penaliza a segunda derivada da camada de calibração PWL para evitar alterações bruscas na curvatura. Isso torna a função mais suave.

  • Torção Regularizer: Saídas da rede será regularizado para a prevenção de torção entre os recursos. Em outras palavras, o modelo será regularizado no sentido de independência entre as contribuições dos recursos.

Misture e combine com outras camadas 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 treliça ou de calibração PWL podem ser usadas na última camada de redes mais profundas que incluem embeddings ou outras camadas Keras.

Papéis

Tutoriais e documentos de API

Para arquiteturas modelo comum, você pode usar modelos premade Keras ou Estimators enlatados . Você também pode criar modelos personalizados usando camadas TF Malha Keras ou misturar e combinar com outras camadas Keras. Confira os docs API completa para mais detalhes.