Posit AI Weblog: Introdução com Keras de R



Posit AI Weblog: Introdução com Keras de R

Se você está pensando em mergulhar no aprendizado profundo por um tempo – usando R, preferencialmente -, agora é um bom momento. Para o Tensorflow / Keras, uma das estruturas predominantes de aprendizado profundo do mercado, no ano passado foi um ano de mudanças substanciais; Para os usuários, isso às vezes significa ambiguidade e confusão sobre a maneira “certa” (ou: recomendada) de fazer as coisas. Agora, Tensorflow 2.0 tem sido a versão estável atual há cerca de dois meses; Os névoos se limparam e os padrões surgiram, permitindo um código mais magro e modular que realiza muito em apenas algumas linhas.

Para fornecer os novos recursos o espaço que eles merecem e montar contribuições centrais de pacotes relacionados, tudo em um só lugar, remodelamos significativamente o Tensorflow para r web site. Portanto, este submit realmente tem dois objetivos.

Primeiro, gostaria de fazer exatamente o que é sugerido pelo título: Level New Usuários para os recursos que contribuem para um início eficaz para o assunto.

Segundo, pode ser lido como um “melhor do novo conteúdo do web site”. Assim, como usuário existente, você ainda pode estar interessado em dar um desnatado rápido, verificando os ponteiros para novos recursos que aparecem em contextos familiares. Para facilitar isso, adicionaremos notas laterais para destacar novos recursos.

No geral, a estrutura do que se segue é isso. Começamos a partir da questão principal: Como você constrói um modelo?em seguida, enquadre -o de ambos os lados; ou seja: O que vem antes? (carregamento de dados / pré -processamento) e O que vem depois? (Salvamento / implantação do modelo).

Depois disso, rapidamente criamos modelos para diferentes tipos de dados: imagens, texto, tabular.

Em seguida, abordamos onde encontrar informações em segundo plano, como: Como adicionar um retorno de chamada personalizado? Como faço para criar uma camada personalizada? Como posso definir meu próprio loop de treinamento?

Finalmente, reunimos algo que parece uma pequena adição técnica, mas tem um impacto muito maior: integrar módulos do Hub Tensorflow (TF).

Começando

Como construir um modelo?

Se a regressão linear é o Howdy World of Machine Studying, a regressão não linear deve ser o Howdy World of Neural Networks. O Tutorial de regressão básica Mostra como treinar uma rede densa no conjunto de dados da Boston Housing. Este exemplo usa as keras API funcionaluma das duas abordagens de construção de modelos “clássicas”-a que tende a ser usada quando é necessário algum tipo de flexibilidade. Nesse caso, o desejo de flexibilidade vem do uso de colunas de recursos – Uma nova e agradável adição ao TensorFlow que permite a integração conveniente da normalização do recurso EG (mais sobre isso na próxima seção).

Esta introdução à regressão é complementada por um tutorial sobre classificação de várias lessons Usando “moda mnist”. É igualmente adequado para um primeiro encontro com as Keras.

Um terceiro tutorial nesta seção é dedicado a Classificação de texto. Aqui também, há uma jóia escondida na versão atual que facilita o pré -processamento de texto: layer_text_vectorizationum dos novos Keras de pré -processamento de camadas. Se você usou Keras para PN antes: não há mais bagunça com text_tokenizer!

Esses tutoriais são boas apresentações explicando código e conceitos. E se você estiver familiarizado com o procedimento básico e só precisar de um lembrete rápido (ou: algo para copiar rapidamente)? O documento splendid para consultar para esses propósitos é o Visão geral.

Agora – o conhecimento de como criar modelos é bom, mas como na ciência de dados em geral, não há modelagem sem dados.

Ingestão de dados e pré -processamento

Dois tutoriais detalhados e de ponta a ponta mostram como carregar Dados do CSV e
imagensrespectivamente.

Nas keras atuais, dois mecanismos são centrais para a preparação de dados. Um é o uso de TFDatasets Pipelines. tfdatasets Permite carregar dados de forma de streaming (lote por lote), opcionalmente aplicando transformações à medida que avança. O outro dispositivo útil aqui é especificações de recursos ecolunas de recursos. Juntamente com uma camada de Keras correspondente, eles permitem transformar os dados de entrada sem ter que pensar no que o novo formato significará para as Keras.

Embora existam outros tipos de dados não discutidos nos documentos, os princípios-oleodutos de pré-processamento e extração de recursos-generalizam.

Economia de modelo

O modelo de melhor desempenho é de pouco uso, se efêmero. Maneiras diretas de salvar os modelos Keras são explicados em um tutorial.

E a menos que alguém esteja mexendo, a pergunta geralmente será: como posso implantar meu modelo? Há uma nova seção completa sobre Implantaçãoapresentando opções como plumberPorção brilhante e tensorflow e rstudio Join.

Após esse execução orientado para o fluxo de trabalho, vamos ver sobre diferentes tipos de dados que você pode querer modelar.

Redes neurais para diferentes tipos de dados

Nenhuma introdução ao aprendizado profundo está completo sem classificação de imagem. O tutorial de classificação “Moda MNIST” mencionado no início é uma boa introdução, mas usa uma rede neural totalmente conectada para facilitar o foco na abordagem geral. Modelos padrão para reconhecimento de imagem, no entanto, geralmente são baseados em uma arquitetura convolucional. Aqui é um bom tutorial introdutório.

Para dados de texto, o conceito de incorporação – Representações distribuídas dotadas de uma medida de similaridade – é central. Como no tutorial de classificação de texto acima mencionado, as incorporações podem ser aprendidas usando a respectiva camada de Keras (layer_embedding); De fato, quanto mais idiossincrático o conjunto de dados, mais recomendável é essa abordagem. Muitas vezes, porém, faz muito sentido usar incorporações pré-treinadasobtido de grandes modelos de idiomas treinados em enormes quantidades de dados. Com o Tensorflow Hub, discutido em mais detalhes na última seção, incorporações pré-treinadas podem ser usadas simplesmente integrando um adequado camada de cubocomo mostrado em Um dos tutoriais do hub.

Ao contrário de imagens e texto, “Regular”, também conhecido como tabulartambém conhecido como estruturado Os dados geralmente parecem menos candidatos a aprendizado profundo. Historicamente, o combine de tipos de dados – numérico, binário, categórico -, juntamente com o manuseio diferente na rede (“deixar em paz” ou incorporado) usada para exigir uma quantidade razoável de brincadeiras manuais. Por outro lado, o Tutorial de dados estruturado Mostra a maneira moderna, de uma maneira moderna, novamente usando colunas de recursos e especificações de recursos. A conseqüência: se você não tem certeza de que, na área de dados tabulares, o aprendizado profundo levará a um desempenho aprimorado – se for tão fácil assim, por que não tentar?

Antes de arredondar um especial no Tensorflow Hub, vamos ver rapidamente onde obter mais informações sobre questões técnicas imediatas e em nível de fundo.

O Seção de guia tem muitas informações adicionais, cobrindo perguntas específicas que surgirão ao codificar modelos de Keras

bem como conhecimento e terminologia de fundo: o que são tensoresAssim, Variablescomo é diferenciação automática Trabalhar no Tensorflow?

Como para o básico, acima apontamos um documento chamado “Quickstart”, para tópicos avançados aqui também é um Investir rápido Isso em um exemplo de ponta a ponta, mostra como definir e treinar um modelo personalizado. Um aspecto especialmente agradável é o uso de tfautografiaum pacote desenvolvido por T. Kalinowski que – entre outros – permite conciso de iteração de um conjunto de dados em um for laço.

Finalmente, vamos falar sobre o TF Hub.

Um destaque especial: camadas de hub

Um dos aspectos mais interessantes das arquiteturas de rede neural contemporânea é o uso do aprendizado de transferência. Nem todo mundo tem os dados, ou instalações de computação, para treinar grandes redes em large knowledge do zero. Através do aprendizado de transferência, os modelos pré-treinados existentes podem ser usados ​​para aplicações semelhantes (mas não idênticas) e em domínios semelhantes (mas não idênticos).

Dependendo dos requisitos de alguém, construir um modelo existente pode ser mais ou menos pesado. Algum tempo atrás, o Tensorflow Hub foi criado como um mecanismo para compartilhar publicamente modelos, ou módulosisto é, blocos de construção reutilizáveis ​​que podem ser utilizados por outros. Até recentemente, não havia uma maneira conveniente de incorporar esses módulos.

A partir do Tensorflow 2.0, os módulos de hub agora podem ser integrados aparentemente nos modelos Keras, usando layer_hub. Isso é demonstrado em dois tutoriais, para texto e imagensrespectivamente. Mas, na verdade, esses dois documentos são apenas pontos de partida: pontos de partida em uma jornada de experimentação, com outros módulos, combinação de módulos, áreas de aplicações…

Em suma, esperamos que você se divirta com as keras “Novo” (TF 2.0) e ache a documentação útil. Obrigado pela leitura!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *