O pacote tfestimators é uma interface R para estimadores de tensorflow, uma API de alto nível que fornece implementações de muitos tipos de modelos diferentes, incluindo modelos lineares e redes neurais profundas.
Mais modelos estão chegando em breve, como economia de redes neurais recorrentes, redes neurais recorrentes dinâmicas, máquinas vetoriais de suporte, florestas aleatórias, agrupamento de kmeans, and so forth. Os estimadores de tensorflow também fornecem uma estrutura flexível para definir novos tipos de modelos arbitrários como estimadores personalizados.
A estrutura equilibra as demandas concorrentes de flexibilidade e simplicidade, oferecendo APIs em diferentes níveis de abstração, disponibilizando arquiteturas de modelos comuns na caixa, fornecendo uma biblioteca de serviços públicos projetados para acelerar a experimentação com arquiteturas de modelos.
Essas abstrações orientam os desenvolvedores a escrever modelos de maneira propícia à produção, além de possibilitar escrever infraestrutura a jusante para treinamento distribuído ou ajuste de parâmetros, independentemente da implementação do modelo.
Para criar modelos de caixa flexíveis e utilizáveis em uma ampla gama de problemas, TFestimators Fornece estimadores enlatados que são parametrizados não apenas sobre os hiperparâmetros tradicionais, mas também usando colunas de recursos, uma especificação declarativa que descreve como interpretar dados de entrada.
Para mais detalhes sobre a arquitetura e design de estimadores de tensorflow, consulte o Kdd’17 papel: Estimadores de tensorflow: gerenciamento de simplicidade versus flexibilidade em estruturas de aprendizado de máquina de alto nível.
Início rápido
Instalação
Para usar TFestimatorsvocê precisa instalar os dois TFestimators Pacote e também Tensorflow em si.
Primeiro, instale o pacote TFestimators R da seguinte maneira:
devtools::install_github("rstudio/tfestimators")
Então, use o install_tensorflow()
Função para instalar o TensorFlow (observe que o pacote atual do TFestimators requer a versão 1.3.0 do TensorFlow, portanto, mesmo que você já tenha o TensorFlow instalado, deve atualizar se estiver executando uma versão anterior):
Isso fornecerá uma instalação padrão do TensorFlow adequado para começar. Veja o artigo sobre instalação Para aprender sobre opções mais avançadas, incluindo a instalação de uma versão do TensorFlow que aproveita as GPUs da NVIDIA se você tiver as bibliotecas CUDA corretas instaladas.
Regressão linear
Vamos criar um modelo de regressão linear simples com o DataSet MTCARS para demonstrar o uso de estimadores. Vamos ilustrar como Funções de entrada pode ser construído e usado para alimentar dados para um estimador, como colunas de recursos pode ser usado para especificar um conjunto de transformações para aplicar aos dados de entrada e como essas peças se reúnem na interface do estimador.
Função de entrada
Os estimadores podem receber dados por meio de funções de entrada. As funções de entrada pegam uma fonte de dados arbitrária (conjuntos de dados na memória, dados de streaming, formato de dados personalizados e assim por diante) e geram tensores que podem ser fornecidos aos modelos TensorFlow. O TFestimators O pacote inclui um input_fn()
Função que pode criar funções de entrada do tensorflow a partir de fontes de dados comuns R (por exemplo, quadros de dados e matrizes). Também é possível escrever uma função de entrada totalmente personalizada.
Aqui, definimos uma função auxiliar que retornará uma função de entrada para um subconjunto de nosso mtcars
Conjunto de dados.
library(tfestimators)
# return an input_fn for a given subset of information
mtcars_input_fn <- perform(knowledge) {
input_fn(knowledge,
options = c("disp", "cyl"),
response = "mpg")
}
Colunas de recursos
Em seguida, definimos as colunas do recurso para o nosso modelo. As colunas de recursos são usadas para especificar como os tensores recebidos da função de entrada devem ser combinados e transformados antes de inserir as etapas de treinamento, avaliação e previsão do modelo. Uma coluna de recurso pode ser um mapeamento simples para alguma coluna de entrada (por exemplo column_numeric()
para uma coluna de dados numéricos) ou uma transformação de outras colunas de recursos (por exemplo column_crossed()
Para definir uma nova coluna como a cruz de duas outras colunas de recursos).
Aqui, criamos uma lista de colunas de recursos contendo duas variáveis numéricas – disp
e cyl
:
cols <- feature_columns(
column_numeric("disp"),
column_numeric("cyl")
)
Você também pode definir várias colunas de recursos de uma só vez:
cols <- feature_columns(
column_numeric("disp", "cyl")
)
Usando a família de funções da coluna de recursos, podemos definir várias transformações nos dados antes de usá -los para modelagem.
Estimador
Em seguida, criamos o estimador ligando para o linear_regressor()
função e passando um conjunto de colunas de recursos:
mannequin <- linear_regressor(feature_columns = cols)
Treinamento
Agora estamos prontos para treinar nosso modelo, usando o practice()
função. Vamos particionar o mtcars
Dados definidos em conjuntos de dados de treinamento e validação separados e alimentam o conjunto de dados de treinamento em practice()
. Manteremos 20% dos dados à parte para validação.
Avaliação
Podemos avaliar a precisão do modelo usando o consider()
função, usando nosso conjunto de dados ‘teste’ para validação.
mannequin %>% consider(mtcars_input_fn(take a look at))
Previsão
Depois de terminarmos o treinamento do modelo, podemos usá -lo para gerar previsões a partir de novos dados.
new_obs <- mtcars(1:3, )
mannequin %>% predict(mtcars_input_fn(new_obs))
Aprendendo mais
Depois de se familiarizar com esses conceitos, esses artigos cobrem o básico do uso de estimadores de tensorflow e os principais componentes com mais detalhes:
Esses artigos descrevem tópicos/uso mais avançados:
Uma das melhores maneiras de aprender é revisar e experimentar exemplos. Veja o Exemplos Página para uma variedade de exemplos para ajudá -lo a começar.