Path: blob/master/site/pt-br/lattice/tutorials/canned_estimators.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Estimadores predefinidos do TF Lattice
Aviso: os Estimadores não são recomendados para novos códigos. Os Estimadores executam código
v1.Session
, que é mais difícil de escrever corretamente e pode se comportar de forma inesperada, ainda mais quando usado em conjunto com código do TF 2. Os Estimadores são abarcados pelas garantias de compatibilidade, mas não recebem mais correções, exceto para vulnerabilidades de segurança. Confira mais detalhes no guia de migração.
Visão geral
Os estimadores predefinidos são maneiras rápidas e fáceis de treinar modelos do TFL para casos de uso típicos. Este guia descreve as etapas necessárias para criar um estimador predefinido do TFL.
Configuração
Instale o pacote do TF Lattice:
Importe os pacotes necessários:
Baixe o dataset UCI Statlog (Heart):
Configure os valores padrão usados para treinamento neste guia:
Colunas de características
Como qualquer outro estimador do TF, os dados precisam ser passados para o estimador, o que geralmente ocorre por uma input_fn, e processados usando FeatureColumns.
Os estimadores predefinidos do TFL usam o tipo de coluna de característica para decidir o tipo de camada de calibração que deve ser utilizado. Usamos uma camada tfl.layers.PWLCalibration
para colunas de características numéricas e uma camada tfl.layers.CategoricalCalibration
para colunas de características categóricas.
Observe que as colunas de características categóricas não são envolvidas por uma coluna de característica de embedding. Elas são alimentadas diretamente ao estimador.
Criação da input_fn
Como qualquer outro estimador, você pode usar uma input_fn para alimentar os dados no modelo para treinamento e avaliação. Os estimadores do TFL podem calcular automaticamente os quantis das características e usá-los como keypoints de entrada para a camada de calibração PWL. Para isso, eles precisam passar uma feature_analysis_input_fn
, que é semelhante a input_fn de treinamento, mas com uma única época ou uma subamostra dos dados.
Configurações de características
A calibração de características e as configurações por característica são definidas usando tfl.configs.FeatureConfig
. As configurações de características incluem restrições de monotonicidade, regularização por recurso (ver tfl.configs.RegularizerConfig
) e tamanhos de lattice para modelos lattice.
Se nenhuma configuração for definida para uma característica de entrada, será usada a configuração padrão em tfl.config.FeatureConfig
.
Modelo linear calibrado
Para criar um estimador predefinido do TFL, primeiro construa uma configuração de modelo a partir de tfl.configs
. Um modelo linear calibrado é criado usando a tfl.configs.CalibratedLinearConfig
. Ela aplica a calibração categórica e por partes nas características de entrada e, em seguida, uma combinação linear e uma calibração linear por partes de saída opcional. Ao usar a calibração de saída ou especificar limites de saída, a camada linear aplicará a média ponderada nas saídas calibradas.
Este exemplo cria um modelo linear calibrado nas primeiras 5 características. Usamos tfl.visualization
para plotar o grafo do modelo com os plots do calibrador.
Modelo lattice calibrado
Um modelo lattice calibrado é criado usando tfl.configs.CalibratedLatticeConfig. Esse tipo de modelo aplica calibração linear por partes e categórica nas características de entrada e, em seguida, um modelo lattice e uma calibração linear por partes de saída opcional.
Este exemplo cria um modelo lattice calibrado nas primeiras 5 características.
Ensemble lattice calibrado
Quando o número de características for grande, você pode usar um modelo ensemble, que cria vários lattices menores para subconjuntos de características e calcula a média da saída deles, em vez de só criar um lattice grande. Os modelos lattice ensemble são criados usando tfl.configs.CalibratedLatticeEnsembleConfig. Um modelo ensemble lattice calibrado aplica a calibração linear por partes e categórica na característica de entrada e, em seguida, um ensemble de modelos lattice e uma calibração linear por partes de saída opcional.
Ensemble lattice aleatório
A seguinte configuração de modelo usa um subconjunto aleatório de características para cada lattice.
Ensemble lattice aleatório de camada RTL
A seguinte configuração de modelo usa uma camada tfl.layers.RTL
que utiliza um subconjunto aleatório de características para cada lattice. Ressaltamos que tfl.layers.RTL
só é compatível com as restrições de monotonicidade, precisa apresentar o mesmo tamanho de lattice para todas as características e não pode ter regularização por característica. Observe que o uso de uma camada tfl.layers.RTL
permite escalar para ensembles muito maiores em comparação com o uso de instâncias tfl.layers.Lattice
.
Ensemble lattice do Crystals
O TFL também fornece um algoritmo de arranjo de características heurístico chamado Crystals. Primeiro, o algoritmo Crystals treina um modelo de prefitting que estima as interações de características por partes. Em seguida, ele arranja o ensemble final para que as características com mais interações não lineares fiquem nos mesmos lattices.
Para modelos Crystals, você também precisará fornecer uma prefitting_input_fn
que é usada para treinar o modelo de prefitting, conforme descrito acima. O modelo de prefitting não precisa ser totalmente treinado, então algumas épocas deve ser o suficiente.
Em seguida, você pode criar um modelo Crystal ao definir lattice='crystals'
na configuração do modelo.
Você pode plotar os calibradores de características com mais detalhes usando o módulo tfl.visualization
.