
Livro de receitas de aprendizado de máquina Tensorflow
Um livro de publicação Packt
Por Nick McClure
=================
Construir:
=================
Índice
- CH 1: Introdução ao Tensorflow
- CH 2: The Tensorflow Way
- Ch 3: regressão linear
- CH 4: Suporte Máquinas de Vector
- Ch 5: Métodos de vizinho mais próximo
- Ch 6: Redes Neurais
- CH 7: Processamento de linguagem natural
- CH 8: Redes neurais convolucionais
- Ch 9: Redes Neurais Recorrentes
- CH 10: Levando o Tensorflow para a produção
- Ch 11: mais com Tensorflow
CH 1: Introdução ao Tensorflow

Este capítulo pretende introduzir os principais objetos e conceitos no TensorFlow. Também introduzimos como acessar os dados para o restante do livro e fornecemos recursos adicionais para aprender sobre o TensorFlow.
- Esboço geral dos algoritmos TF
- Aqui, introduzimos o TensorFlow e o esboço geral de como a maioria dos algoritmos do tensorflow funciona.
- Criando e usando tensores
- Como criar e inicializar tensores no tensorflow. Também descrevemos como essas operações aparecem no Tensorboard.
- Usando variáveis e espaço reservado
- Como criar e usar variáveis e espaços reservados no tensorflow. Também descrevemos como essas operações aparecem no Tensorboard.
- Trabalhando com matrizes
- Compreender como o TensorFlow pode funcionar com matrizes é crucial para entender como os algoritmos funcionam.
- Declarando operações
- Como usar várias operações matemáticas no TensorFlow.
- Implementando funções de ativação
- As funções de ativação são funções exclusivas que o TensorFlow incorporou para seu uso em algoritmos.
- Trabalhando com fontes de dados
- Aqui mostramos como acessar todas as várias fontes de dados necessárias no livro. Também existem links descrevendo as fontes de dados e de onde elas vêm.
- Recursos adicionais
- Recursos e papéis principalmente oficiais. Os trabalhos são documentos de tensorflow ou recursos de aprendizado profundo.
CH 2: The Tensorflow Way

Depois de estabelecermos os objetos e métodos básicos no TensorFlow, agora queremos estabelecer os componentes que compõem os algoritmos do tensorflow. Começamos introduzindo gráficos computacionais e depois avançamos para funções de perda e propagação traseira. Terminamos com a criação de um classificador simples e, em seguida, mostramos um exemplo de avaliação de algoritmos de regressão e classificação.
- Uma operação como um gráfico computacional
- Mostramos como criar uma operação em um gráfico computacional e como visualizá -lo usando o Tensorboard.
- Operações aninhadas em camadas
- Mostramos como criar várias operações em um gráfico computacional e como visualizá -las usando o Tensorboard.
- Trabalhando com várias camadas
- Aqui, estendemos o uso do gráfico computacional para criar várias camadas e mostrar como elas aparecem no Tensorboard.
- Implementando funções de perda
- Para treinar um modelo, devemos ser capazes de avaliar o quão bem está. Isso é dado por funções de perda. Ploamos várias funções de perda e conversamos sobre os benefícios e limitações de alguns.
- Implementando a propagação de volta
- Aqui, mostramos como usar as funções de perda para iterar por meio de dados e traseiros propagam erros para regressão e classificação.
- Trabalhando com treinamento estocástico e em lote
- O TensorFlow facilita o uso de treinamento em lote e estocástico. Mostramos como implementar ambos e falar sobre os benefícios e limitações de cada um.
- Combinando tudo
- Agora combinamos tudo o que aprendemos e criamos um classificador simples.
- Avaliando modelos
- Qualquer modelo é tão bom quanto a avaliação. Aqui, mostramos dois exemplos de (1) avaliando um algoritmo de regressão e (2) um algoritmo de classificação.
Ch 3: regressão linear

Aqui mostramos como implementar várias técnicas de regressão linear no Tensorflow. As duas primeiras seções mostram como fazer resolução de regressão linear de matriz padrão no tensorflow. As seis seções restantes descrevem como implementar vários tipos de regressão usando gráficos computacionais no TensorFlow.
- Usando o método inverso da matriz
- Como resolver uma regressão 2D com uma matriz inversa no tensorflow.
- Implementando um método de decomposição
- Resolvendo uma regressão linear 2D com decomposição de Cholesky.
- Aprendendo a maneira tensorflow de regressão linear
- Regressão linear iterando através de um gráfico computacional com perda de L2.
- Entendendo as funções de perda em regressão linear
- L2 vs L1 Perda na regressão linear. Falamos sobre os benefícios e limitações de ambos.
- Implementando a regressão de Deming (regressão total)
- Regressão de Deming (total) implementada no Tensorflow alterando a função de perda.
- Implementando regressão de lasso e cume
- A regressão Lasso e Ridge são maneiras de regularizar os coeficientes. Implementamos ambos no TensorFlow através da alteração das funções de perda.
- Implementando regressão líquida elástica
- A rede elástica é uma técnica de regularização que combina a perda L2 e L1 para coeficientes. Mostramos como implementar isso no TensorFlow.
- Implementando a regressão logística
- Implementamos a regressão logística pelo uso de uma função de ativação em nosso gráfico computacional.
CH 4: Suporte Máquinas de Vector

Este capítulo mostra como implementar vários métodos SVM com o TensorFlow. Primeiro, criamos um SVM linear e também mostramos como ele pode ser usado para regressão. Em seguida, introduzimos kernels (kernel gaussiano rbf) e mostramos como usá-lo para dividir dados não lineares. Terminamos com uma implementação multidimensional de SVMs não lineares para trabalhar com várias classes.
- Introdução
- Introduzimos o conceito de SVMS e como vamos implementá -los na estrutura do tensorflow.
- Trabalhando com SVMs lineares
- Criamos um SVM linear para separar I. sesaa com base no comprimento do sépal e na largura do pedal no conjunto de dados da IRIS.
- Redução à regressão linear
- O coração do SVMS está separando classes com uma linha. Mudamos um pouco o algoritmo para executar a regressão SVM.
- Trabalhando com kernels em tensorflow
- Para estender o SVMS em dados não lineares, explicamos e mostramos como implementar diferentes kernels no tensorflow.
- Implementando SVMs não lineares
- Usamos o kernel gaussiano (RBF) para separar classes não lineares.
- Implementando SVMs multi-classes
- Os SVMs são preditores inerentemente binários. Mostramos como estendê-los em uma estratégia de um-VS-All no TensorFlow.
Ch 5: Métodos de vizinho mais próximo

Os métodos vizinhos mais próximos são um algoritmo ML muito popular. Mostramos como implementar vizinhos mais antigos, vizinhos mais pesados e vizinhos mais parecidos com as funções de distância mista. Neste capítulo, também mostramos como usar a distância de Levenshtein (distância de edição) no tensorflow e usá -lo para calcular a distância entre as cordas. Terminamos este capítulo com mostrar como usar os vizinhos mais antigos da previsão categórica com o reconhecimento de dígitos manuscritos do MNIST.
- Introdução
- Introduzimos os conceitos e métodos necessários para a realização de vizinhos mais parecidos em Tensorflow.
- Trabalhando com vizinhos mais próximos
- Criamos um algoritmo vizinho mais próximo que tenta prever o valor da habitação (regressão).
- Trabalhando com distâncias baseadas em texto
- Para usar uma função de distância no texto, mostramos como usar as distâncias de edição no tensorflow.
- Funções de distância de mistura de computação
- Aqui, implementamos a escala da função de distância pelo desvio padrão do recurso de entrada para os vizinhos mais antigos.
- Usando correspondência de endereço
- Usamos uma função de distância mista para corresponder aos endereços. Usamos a distância numérica para códigos postais e a distância de edição de cordas para nomes de ruas. Os nomes das ruas podem ter erros de digitação.
- Usando vizinhos mais próximos para reconhecimento de imagem
- A coleção de imagens do Mnist Digit é um ótimo conjunto de dados para ilustração de como executar vizinhos mais antigos para uma tarefa de classificação de imagem.
Ch 6: Redes Neurais

As redes neurais são muito importantes no aprendizado de máquina e no crescimento em popularidade devido aos principais avanços em problemas anteriores não resolvidos. Devemos começar com a introdução de redes neurais 'rasas', que são muito poderosas e podem nos ajudar a melhorar nossos resultados anteriores do algoritmo ML. Começamos introduzindo a unidade NN muito básica, o portão operacional. Gradualmente, adicionamos cada vez mais à rede neural e terminamos com o treinamento de um modelo para jogar tic-tac-toe.
- Introdução
- Introduzimos o conceito de redes neurais e como o TensorFlow é construído para lidar facilmente com esses algoritmos.
- Implementando portões operacionais
- Implementamos um portão operacional com uma operação. Em seguida, mostramos como estender isso a várias operações aninhadas.
- Trabalhando com portões e funções de ativação
- Agora temos que introduzir funções de ativação nos portões. Mostramos como diferentes funções de ativação operam.
- Implementando uma rede neural de uma camada
- Temos todas as peças para começar a implementar nossa primeira rede neural. Fazemos isso aqui com regressão no conjunto de dados da IRIS.
- Implementando camadas diferentes
- Esta seção apresenta a camada de convolução e a camada máxima de pool. Mostramos como acorrentá -los em um exemplo 1D e 2D com camadas totalmente conectadas também.
- Usando redes neurais de várias camadas
- Aqui, mostramos como funcionalizar camadas e variáveis diferentes para uma rede neural de várias camadas mais limpas.
- Melhorando previsões de modelos lineares
- Mostramos como podemos melhorar a convergência de nossa regressão logística anterior com um conjunto de camadas ocultas.
- Aprendendo a jogar tic-tac-toe
- Dado um conjunto de placas TIC-TAC-TOE e movimentos ótimos correspondentes, treinamos um modelo de classificação de rede neural para jogar. No final do script, você pode tentar jogar contra o modelo treinado.
CH 7: Processamento de linguagem natural

O processamento de linguagem natural (PNL) é uma maneira de processar informações textuais em resumos, recursos ou modelos numéricos. Neste capítulo, motivaremos e explicaremos a melhor maneira de lidar com o texto no Tensorflow. Mostramos como implementar o clássico 'Bag de palavras' e mostramos que pode haver maneiras melhores de incorporar texto com base no problema em questão. Existem incorporações de rede neural chamadas Word2Vec (CBOW e SKIP-GRAM) e DOC2VEC. Mostramos como implementar tudo isso no TensorFlow.
- Introdução
- Introduzimos métodos para transformar o texto em vetores numéricos. Apresentamos o recurso TensorFlow 'incorporação' também.
- Trabalhando com saco de palavras
- Aqui, usamos o Tensorflow para fazer uma codificação de palavras em um e-mail chamada saco de palavras. Usamos esse método e regressão logística para prever se uma mensagem de texto é spam ou presunto.
- Implementando TF-IDF
- Implementamos a frequência de texto - frequência inversa de documentos (TFIDF) com uma combinação de Sci -Kit Learn e TensorFlow. Realizamos a regressão logística nos vetores do TFIDF para melhorar nossas previsões de messagem de texto de spam/presunto.
- Trabalhando com Skip-Gram
- Nossa primeira implementação do Word2vec chamou "Skip-Gram" em um banco de dados de revisão de filmes.
- Trabalhando com CBOW
- Em seguida, implementamos uma forma de Word2vec chamada "CBOW" (saco contínuo de palavras) em um banco de dados de revisão de filmes. Também introduzimos o método para salvar e carregar incorporações de palavras.
- Implementando o exemplo do Word2vec
- Neste exemplo, usamos as incorporações anteriores de Word CBOW salvas para melhorar nossa regressão logística TF-IDF do sentimento de revisão de filmes.
- Realizando análise de sentimentos com doc2vec
- Aqui, introduzimos um método DOC2VEC (concatenação de incorporação de DOC e Word) para melhorar o modelo logístico de sentimento de revisão de filmes.
CH 8: Redes neurais convolucionais

As redes neurais convolucionais (CNNs) são maneiras de obter redes neurais para lidar com dados de imagem. A CNN deriva seu nome do uso de uma camada convolucional que aplica um filtro de tamanho fixo em uma imagem maior, reconhecendo um padrão em qualquer parte da imagem. Existem muitas outras ferramentas que eles usam (max-pooling, abandono, etc ...) que mostramos como implementar com o TensorFlow. Também mostramos como treinar uma arquitetura existente e levar os CNNs mais com a Stynet e o Deep Dream.
- Introdução
- Introduzimos redes neurais convolucionais (CNN) e como podemos usá -las no TensorFlow.
- Implementando uma CNN simples.
- Aqui, mostramos como criar uma arquitetura da CNN que tenha um bom desempenho na tarefa de reconhecimento de dígitos do MNIST.
- Implementando uma CNN avançada.
- Neste exemplo, mostramos como replicar uma arquitetura para a tarefa de reconhecimento de imagem CIFAR-10.
- RETENHANDO UMA ARQUITETURA EXISTENTE.
- Mostramos como baixar e configurar os dados do CIFAR-10 para o tutorial de reciclagem de tensorflow/ajuste fino.
- Usando Stynet/Neuralstyle.
- Nesta receita, mostramos uma implementação básica do uso de Stynet ou NeuralStyle.
- Implementando um sonho profundo.
- Este script mostra uma explicação de linha a linha do tutorial DeepDream do TensorFlow. Retirado de DeepDream no Tensorflow. Observe que o código aqui é convertido para Python 3.
Ch 9: Redes Neurais Recorrentes

As redes neurais recorrentes (RNNs) são muito semelhantes às redes neurais regulares, exceto que permitem conexões 'recorrentes' ou loops que dependem dos estados anteriores da rede. Isso permite que os RNNs lidem com eficiência com dados seqüenciais, enquanto outros tipos de redes não podem. Em seguida, motivamos o uso de redes LSTM (memória de curto prazo) como uma maneira de abordar problemas regulares da RNN. Em seguida, mostramos como é fácil implementar esses tipos de RNN no TensorFlow.
- Introdução
- Introduzimos redes neurais recorrentes e como elas são capazes de alimentar uma sequência e prever um alvo fixo (categórico/numérico) ou outra sequência (sequência à sequência).
- Implementando um modelo RNN para previsão de spam
- Neste exemplo, criamos um modelo RNN para melhorar as previsões de texto SPAM/HAM SMS.
- Implementando um modelo LSTM para geração de texto
- Mostramos como implementar um LSTM (memória de curto prazo) para a geração de idiomas Shakespeare. (Vocabulário no nível da palavra)
- Empilhar várias camadas LSTM
- Empilhamos várias camadas LSTM para melhorar nossa geração de idiomas Shakespeare. (Vocabulário no nível do personagem)
- Criando um modelo de tradução de sequência para sequência (SEQ2SEQ)
- Aqui, usamos os modelos de sequência para sequência do TensorFlow para treinar um modelo de tradução inglesa-alemã.
- Treinando uma medida de similaridade siamesa
- Aqui, implementamos um RNN siamês para prever a semelhança de endereços e usá -lo para correspondência de registros. O uso de RNNs para correspondência de registros é muito versátil, pois não temos um conjunto fixo de categorias de destino e pode usar o modelo treinado para prever semelhanças entre novos endereços.
CH 10: Levando o Tensorflow para a produção

É claro que há mais no Tensorflow do que apenas criar e ajustar modelos de aprendizado de máquina. Depois de termos um modelo que queremos usar, precisamos movê -lo para o uso da produção. Este capítulo fornecerá dicas e exemplos de testes de unidade de implementação, usando vários processadores, usando várias máquinas (distribuídas de tensorflow) e terminar com um exemplo completo de produção.
- Implementando testes de unidade
- Mostramos como implementar diferentes tipos de testes de unidade em tensores (espaço reservado e variáveis).
- Usando vários executores (dispositivos)
- Como usar uma máquina com vários dispositivos. Por exemplo, uma máquina com uma CPU e uma ou mais GPUs.
- Paralleling Tensorflow
- Como configurar e usar o TensorFlow distribuído em várias máquinas.
- Dicas para Tensorflow na produção
- Várias dicas para o desenvolvimento do TensorFlow
- Um exemplo de produção de tensorizador de produção
- Mostramos como fazer o modelo RNN para prever presunto/spam (do capítulo 9, receita nº 2) e o colocamos em dois arquivos de nível de produção: treinamento e avaliação.
Ch 11: mais com Tensorflow

Para ilustrar o quão versátil é o tensorflow, mostraremos exemplos adicionais neste capítulo. Começamos mostrando como usar a ferramenta de log/visualização Tensorboard. Em seguida, ilustramos como fazer agrupamento de means K, usamos um algoritmo genético e resolvemos um sistema de ODEs.
- Visualizando gráficos computacionais (com Tensorboard)
- Um exemplo de uso de histogramas, resumos escalares e criação de imagens no Tensorboard.
- Trabalhando com um algoritmo genético
- Criamos um algoritmo genético para otimizar um indivíduo (matriz de 50 números) em direção à função da verdade do solo.
- Agrupamento usando K-Means
- Como usar o TensorFlow para fazer cluster de K-Means. Usamos o conjunto de dados da IRIS, definimos k = 3 e usamos K-Means para fazer previsões.
- Resolvendo um sistema de odes
- Aqui, mostramos como usar o TensorFlow para resolver um sistema de ODEs. O sistema de preocupação é o sistema Lotka-Volterra Predator-Prey.
- Usando uma floresta aleatória
- Ilustramos como usar as árvores de regressão e classificação aumentadas de gradiente do TensorFlow.
- Usando o tensorflow com keras
- Aqui, mostramos como usar a construção de modelos sequenciais Keras para uma rede neural totalmente conectada e um modelo CNN com retornos de chamada.