Aprendizado de máquina e redes neurais - página 35

 

CS 198-126: Aula 20 - Estilizando Imagens



CS 198-126: Aula 20 - Estilizando Imagens

O vídeo discute várias técnicas para estilização de imagem, incluindo transferência de estilo neural, GANs e Pix2Pix, que requerem dados pareados, e CycleGAN, que usa dados não pareados para tradução de imagem para imagem. As limitações do CycleGAN podem ser abordadas pelo StarGAN, que pode obter informações de vários domínios para treinar geradores para tarefas de transição de imagens de vários domínios. O palestrante também discute a tradução multimodal não supervisionada de imagem para imagem usando informações de domínio e códigos latentes de baixa dimensão para produzir diversas saídas, exemplificadas pelo modelo BicycleGAN. Por fim, são mencionados os benefícios potenciais do uso de Vision Transformers com GANs para tarefas de tradução de imagens, e a palestra termina com exemplos divertidos de imagens e uma oportunidade para perguntas e discussões.

  • 00:00:00 Nesta seção, o palestrante discute a tradução de imagem para imagem e, especificamente, a transferência de estilo neural. A tarefa envolve transformar imagens do domínio de origem na imagem correspondente no domínio de destino, preservando o conteúdo da imagem original. A transferência de estilo neural é uma técnica usada para mesclar duas imagens, otimizando a imagem de saída para corresponder ao conteúdo de uma imagem e à referência de estilo de outra. Redes convolucionais são usadas para extrair informações relevantes de ambas as imagens e criar uma nova imagem com o estilo desejado. O palestrante detalha os insumos necessários e a arquitetura utilizada para esta técnica.

  • 00:05:00 Nesta seção, a palestra discute o conceito de usar CNNs profundas para representar o conteúdo e o estilo das imagens. Começando com recursos de baixo nível, como arestas e texturas, a CNN abstrai recursos de nível superior antes de produzir representações de objetos. A palestra explora como medir a semelhança de estilo em diferentes mapas de recursos por meio do uso de um cálculo de matriz de grama. A palestra explica como obter conteúdo e estilo de CNNs e o método de cálculo de perda para cada um que ajusta o modelo para produzir a saída desejada.

  • 00:10:00 Nesta seção da palestra, o palestrante discute algumas técnicas diferentes para processamento de imagem. Em primeiro lugar, eles discutem o processo de geração de uma imagem de saída adicionando conteúdo e perda de estilo em um otimizador. Eles mostram um exemplo de imagem de conteúdo e imagem de estilo sendo combinadas para criar a imagem final, com recursos de nível inferior da imagem de conteúdo e recursos de nível superior da imagem de estilo. Em seguida, eles revisam brevemente as GANs, com foco nas partes do discriminador e do gerador. Eles também mencionam o StyleGAN e sua capacidade de separar atributos de nível superior e inferior na imagem. Finalmente, eles discutem um modelo chamado Pix2Pix, que usa uma GAN condicional para gerar imagens de saída com base em informações adicionais fornecidas pelo usuário.

  • 00:15:00 Nesta seção, o vídeo discute várias técnicas para estilização de imagem, incluindo GANs e pix2pix, que requerem dados pareados, e CycleGAN, que usa dados não pareados para tradução de imagem para imagem. No entanto, o CycleGAN tem limitações, que podem ser resolvidas pelo StarGAN, um modelo que pode levar informações de vários domínios para treinar geradores, permitindo assim tarefas de transição de imagens de vários domínios. A ideia-chave por trás do StarGAN é aprender um método de tradução flexível que usa a imagem e as informações de domínio como entrada.

  • 00:20:00 Nesta seção da palestra, o palestrante discute o conceito de tradução multimodal não supervisionada de imagem para imagem e como ela pode ser usada para produzir várias saídas realistas e diversificadas a partir de uma imagem de entrada. O artigo em discussão incorpora informações de domínio e códigos latentes de baixa dimensão para produzir saídas mais precisas e fiéis. O modelo BicycleGAN foi apresentado como um exemplo de como essa abordagem pode funcionar para minimizar o colapso do modo e obter diversos resultados. Além disso, o artigo tenta aprender um codificador para mapear a saída de volta ao espaço latente e minimizar a probabilidade de dois códigos diferentes gerarem o mesmo estilo ou saída.

  • 00:25:00 Nesta seção da palestra, o palestrante discute os desafios do uso de Vision Transformers para tarefas como tradução de imagem para imagem e os benefícios potenciais de usá-los em combinação com GANs. Eles mencionam técnicas recentes que aproveitam os benefícios dos Vision Transformers com GANs para lidar com tarefas de tradução de imagens, embora não seja tão simples quanto usar apenas GANs para essas tarefas. O palestrante conclui compartilhando algumas imagens divertidas mostrando as habilidades dessas técnicas e abrindo espaço para perguntas e discussões.
 

CS 198-126: Aula 21 - Áudio Gerativo



CS 198-126: Aula 21 - Áudio Gerativo

Nesta palestra sobre áudio generativo, o apresentador aborda diversos temas como quantização, aliasing, processamento de sinais, projeções, deep learning e Transformers. O palestrante discute como amostrar e quantizar sinais contínuos e a compensação entre a precisão das profundidades de bits e o poder de computação. O teorema de amostragem de Shannon-Nequist e seus efeitos na reconstrução de sinais e a importância das projeções e seu uso para a reconstrução de sinais também são explicados. O aprendizado profundo é explorado para a reconstrução de áudio, e o apresentador apresenta o áudio generativo e como ele pode reconstruir músicas de gravações perdidas ou danificadas. O uso de Transformers é discutido para geração de áudio e o processo de representação da música como uma série de tokens é explicado. O palestrante também enfatiza a importância de ter um conjunto de dados grande e variado e discute a operação do modelo transformador para previsões musicais. A palestra termina com uma demonstração da música gerada, mostrando a capacidade do modelo de prever notas futuras com precisão.

  • 00:00:00 Nesta seção da palestra, o foco é o áudio generativo e como discretizar sinais contínuos, o que é necessário para os computadores processarem o áudio. O processo de amostragem e quantização de um sinal contínuo é usado para gerar sinais digitais. A palestra explica como o conversor analógico para digital usa o circuito Sample and Hold, e como a saída é discretizada, dependendo do nível de precisão requerido. A palestra também discute o conversor digital para analógico e como um filtro passa-baixo é usado para manter a banda passante do sinal, com certas frequências de corte determinando a inclinação do sinal. Esses conceitos são essenciais para o áudio generativo e estabelecem uma base importante para a compreensão do material posterior da palestra.

  • 00:05:00 Nesta seção, a palestra aborda os níveis de quantização e sua correlação com a faixa dinâmica do sinal que está sendo quantizado. Maior profundidade de bits leva a uma aproximação de sinal mais precisa, reduzindo significativamente os erros até atingir uma aproximação quase perfeita em profundidade de 16 bits. No entanto, há uma compensação quando se trata de poder de computação, que pode perguntar se um pitch sem perdas ou um pitch com perdas muito mais rápido seria suficiente para o ouvido do ouvinte. O teorema de amostragem de Shannon-Nequist afirma que um sinal pode ser reconstruído a partir de suas amostras sem qualquer perda de informação se e somente se as frequências do sinal original estiverem abaixo da metade da frequência de amostragem. A falha em atender a esse critério levará ao aliasing, que produz uma aproximação problemática do sinal.

  • 00:10:00 Nesta seção, aprendemos sobre aliasing e seus efeitos no processamento de sinal, particularmente em termos de amostragem ruim, resultando em um sinal de saída modificado em comparação com a entrada original. Vemos exemplos disso por meio de visualizações de formas de onda e amostragem de imagens. Além disso, ouvimos sobre a teoria geométrica do sinal, especificamente o uso de projeções para reconstrução de sinal e o uso de deconvoluções na segmentação de imagens. Por fim, o apresentador compartilha uma divertida demonstração de geração de música de 8 bits usando uma linha de código C.

  • 00:15:00 Nesta seção, o palestrante discute projeções e como elas podem ser usadas para reconstrução. A fórmula de projeção é o produto escalar de dois vetores, e essa medida de similaridade pode ser usada para reconstruir um sinal usando uma combinação linear de projeções em outro conjunto de vetores. No entanto, é necessária uma base e o conjunto de vetores usados deve ser ortogonal entre si para garantir o máximo de informação obtida. Ao tomar a projeção em diferentes bases que são ortogonais entre si, podemos obter informações sobre o vetor que está sendo projetado e, finalmente, reconstruir o sinal.

  • 00:20:00 Nesta seção, o palestrante apresenta o uso de aprendizado profundo para reconstrução de áudio e como ele pode gerar áudio de alta resolução reconstruindo uma forma de onda de baixa qualidade. A arquitetura do modelo se assemelha à de uma unidade que utiliza uma representação unidimensional de uma convolução de sub-pixel para upsampling. A forma de onda com amostragem reduzida passa por oito blocos de amostragem reduzida usando camadas convolucionais com um passo de dois, e a normalização do lote é aplicada com uma função de ativação ReLU. Na camada gargalo, que é construída de forma idêntica a um bloco de downsampling, a forma de onda se conecta a oito blocos de upsampling. Esses blocos têm conexões residuais com os blocos de redução da resolução e usam uma convolução de subpixel para reordenar as informações ao longo de uma determinada dimensão para expandir o ganho de informações, aumentando a resolução da forma de onda enquanto preserva os recursos da forma de onda de baixa resolução. A camada convolucional final tem uma operação de reempilhamento que reordena as informações após a deconvolução de subpixel, e o upsampling da forma de onda de saída é gerado usando a função de perda de erro quadrática média.

  • 00:25:00 Nesta seção, o palestrante discute o uso de áudio generativo e como ele pode ser usado para reconstruir músicas de bandas gravadas entre meados e o final dos anos 1900, cujas gravações podem não ter sido preservadas em qualidade total. Ela fala sobre o espectro reduzido e como ele pode ser melhorado para corresponder à verdadeira forma de onda adicionando clareza e cor a ele. O palestrante então faz a transição para o Transformers para geração de áudio e como a arquitetura do Transformer pode ser usada para prever notas musicais em uma melodia. Isso requer a conversão de dados, que são arquivos de música, em uma sequência de token, um problema único que precisa ser amplamente considerado devido às séries temporais que precisam ser capturadas, como assinatura musical, tom e batidas.

  • 00:30:00 Nesta seção, o palestrante discute o processo de representação da música como uma série de tokens que podem ser inseridos em um modelo de transformação para áudio generativo. Eles explicam como o tom, a duração e outros atributos podem ser usados para capturar informações sobre as notas musicais, mas também observam o desafio de tokenizar os dados do piano roll 2D em uma única dimensão. Abordagens diferentes, como notas um-para-muitos ou mapeamento de muitas notas para um único token, são comparadas e o uso de tokens separadores e um tamanho de vocabulário reduzido são introduzidos. O palestrante conclui abordando o aumento de dados como uma forma de aumentar a diversidade de dados de treinamento para modelos de áudio generativos.

  • 00:35:00 Nesta seção, o palestrante discute a importância de ter um conjunto de dados grande e variado ao usar modelos de áudio generativos. Eles explicam como uma única música pode ser transformada em 12 músicas de tonalidades diferentes e como quanto mais dados e generalização um modelo tiver, melhor será seu desempenho. O palestrante também discute o uso de codificação de batida posicional como uma forma de fornecer metadados ao modelo para dar a ele um melhor senso de tempo musical. Eles observam que o método de estrutura posicional usado no processamento de linguagem natural também pode ser aplicado à música. A seção conclui discutindo a imposição do professor, uma forma de aplicar uma máscara de atenção para evitar que o modelo acesse todas as informações de uma vez e vaze informações sobre os tokens que deve prever em seguida.

  • 00:40:00 Nesta seção, o palestrante discute como funciona o modelo transformador usado em áudio generativo. O transformador XL usado na implementação apresenta codificação de posição relativa e memória de estado oculto, que permitem inferência rápida e precisa para previsões musicais. Como a posição é importante na música, o modelo usa a posição relativa em vez de apenas a posição absoluta. O modelo também captura dois atributos de cada nota, a saber, tom e duração, para armazenar na memória e prever notas futuras com precisão. O palestrante então apresenta uma demonstração do Pachelbel Canon em Ré Maior gerado usando o modelo, o que mostra que, embora as notas geradas se desviem da composição original, elas ainda soam bem.
 

CS 198-126: Aula 22 - Aprendizagem Multimodal



CS 198-126: Aula 22 - Aprendizagem Multimodal

A aprendizagem multimodal envolve a representação de objetos de diferentes maneiras, como por meio de texto, imagens, vídeos ou áudio, embora ainda reconheça que são o mesmo objeto. As palestras explicam a importância do aprendizado multimodal na captura de diversos conjuntos de dados e na solução do problema de mudança de distribuição. O vídeo se concentra no CLIP, um método de pré-treinamento de imagem em linguagem contrastiva, que usa codificadores de texto e imagem para criar incorporações para pares de legendas de imagem semelhantes. As incorporações podem ser usadas para classificação, robótica, geração de texto para imagem e visão 3D. O palestrante enfatiza que a universalidade dos latentes CLIP mostra a importância do aprendizado de representação e sua utilidade no aprendizado de máquina. O método CLIP levou à evolução do campo da aprendizagem multimodal.

  • 00:00:00 Nesta seção do vídeo, o palestrante explica o conceito de aprendizagem multimodal e sua importância. A aprendizagem multimodal envolve representar objetos de muitas maneiras diferentes, como por meio de texto, imagens, vídeos ou áudio, e capturar suas nuances enquanto ainda reconhece que são o mesmo objeto. Os conjuntos de dados multimodais podem abranger todos esses tipos de dados, e o objetivo é manter todas as informações para fornecer mais contexto para o aprendizado. O palestrante argumenta que o aprendizado multimodal é importante porque os dados podem vir de diferentes fontes e conjuntos de dados, e jogar fora toda essa informação extra pode resultar em menos informações para o aprendizado.

  • 00:05:00 Nesta seção, o foco está no problema de mudança de distribuição, que surge quando um modelo de visão computacional é treinado em dados fotorrealistas e testado em dados de desenho animado. O problema é que os conjuntos de dados individuais têm distribuições pequenas em comparação com o que é possível. Devido à diversidade de dados, o problema de mudança de distribuição torna-se um problema significativo, pois existem diversos conjuntos de dados com diferentes objetos, formatos de dados e relacionamentos. O aprendizado multimodal visa resolver esse problema usando todos os dados disponíveis e relacionamentos entre os dados para treinar modelos melhores para dados mais diversos. O objetivo é aprender representações compactadas significativas para tudo, desde imagens até texto e áudio.

  • 00:10:00 Nesta seção, o vídeo discute a importância do aprendizado multimodal e os desafios que acompanham os modelos de treinamento em diversos conjuntos de dados. O artigo em análise chama-se CLIP, sigla para Contrastive Language Image Pre-Training, e tem como objetivo investigar as relações entre as imagens e o texto correspondente. A ideia por trás do modelo CLIP é que, se uma imagem e uma legenda estiverem relacionadas, as representações aprendidas para a imagem e a legenda devem ser semelhantes. O modelo usa dois modelos diferentes: um transformador de visão para processamento de imagens e um transformador para processamento de linguagem natural, e os treina do zero. O procedimento de treinamento envolve o pré-treinamento dos codificadores de texto e imagem usando uma grande quantidade de pares imagem-legenda de várias fontes, com o objetivo de gerar embeddings para ambos que sejam semelhantes para um par imagem-legenda correspondente e diferentes para um par diferente .

  • 00:15:00 Nesta seção, o palestrante explica como o codificador de imagem e o codificador de texto funcionam juntos para criar versões incorporadas de dados de imagem e texto que são muito semelhantes para pares correspondentes e muito diferentes para pares não correspondentes. Os elementos diagonais da matriz resultante representam o produto escalar entre as incorporações para pares correspondentes, que são idealmente muito grandes, enquanto os elementos fora da diagonal representam as semelhanças entre incorporações que não correspondem e devem ser muito pequenas ou negativas. O palestrante explica que esta abordagem é semelhante a uma tarefa de classificação, onde a função de perda tenta tornar os elementos diagonais tão grandes quanto possível, minimizando os elementos fora da diagonal. O codificador de texto e o codificador de imagem trabalham juntos para atingir esse objetivo e criar incorporações semelhantes para pares correspondentes.

  • 00:20:00 Nesta seção, aprendemos sobre uma aplicação de aprendizagem multimodal chamada CLIP, ou Contrastive Language-Image Pre-training. O CLIP usa um codificador de texto e um codificador de imagem para criar incorporações de imagens e legendas. Em seguida, ele executa um produto escalar das incorporações para ver como a imagem corresponde à legenda. Ao fazer isso, o CLIP pode prever o que é a imagem sem nenhum ajuste fino, o que é chamado de previsão zero-shot. Este método mostra que as representações codificadas de texto e imagens são significativas e podem generalizar bem para novos dados.

  • 00:25:00 Nesta seção da palestra, o palestrante discute a aplicabilidade e importância do aprendizado de representação via latentes CLIP. Os latentes são saídas generalizáveis e significativas de codificação de imagem por meio de um modelo pré-treinado congelado. Esses latentes têm vários casos de uso, incluindo classificação de objetos e robótica, onde podem ajudar na representação incorporada de imagens. O palestrante enfatiza que o aprendizado de representação é aplicável em todos os lugares e pode ser útil na geração de texto para imagem e visão 3D. O campo Radiance pode ser otimizado usando a função de perda em que a imagem renderizada corresponde ao clipe latente correspondente às legendas de entrada. O processo de otimização é diferenciável, tornando-se uma ferramenta eficaz para a reconstrução da imagem.

  • 00:30:00 Nesta seção, o palestrante discute o conceito de usar a incorporação de imagens para gerar campos de radiância com base em um prompt fornecido. Embora esse método seja caro, ele demonstra a universalidade dos latentes de clipe, que se baseiam no pré-treinamento de uma variedade de dados e no uso de representações ou relacionamentos para gerar latentes utilizáveis para qualquer domínio. Essa técnica de aprendizado multimodal provou ser eficaz e é considerada um subcampo importante no campo do aprendizado de máquina. O palestrante observa que, embora o método do clipe seja apenas o começo, ele levou a uma maior evolução no campo.
 

Tensorflow for Deep Learning Research - Lecture 1



Tensorflow for Deep Learning Research - Lecture 1

The video "Tensorflow for Deep Learning Research - Lecture 1" introduces the tutorial on TensorFlow by covering the need for a deep-level tutorial, explaining the library's basics and practical applications. The lecture covers how to build and structure models using TensorFlow from a deep learning perspective. The tutorial also covers the tools used in TensorBoard for visualizing a computational graph model, including how to operate with nodes, edges, and sessions, which provide efficient computation options by running subgraphs. The lecturer recommends learning TensorFlow from scratch to build custom models and efficiently handle resources, with the ability to run on CPU, GPU, Android or iOS, while providing the ability to deploy models.

  • 00:00:00 In this section, the speaker introduces the tutorial on TensorFlow by explaining that there is a need for video tutorials that are not too shallow and address the points which other tutorials miss. He announces that the lecture will follow the Stanford University content of CS 20 and uses the slides created by Chip Huyen, with his personal thoughts. Additionally, he points out that TensorFlow is a library for numerical computation, developed by Google, which allows graphs and numerical computations, making it suitable for building various machine learning models ranging from logistic regression to deep learning models. TensorFlow also provides the ability to deploy models on CPU, GPU, android or iOS.

  • 00:05:00 In this section, the speaker discusses the concept of checkpoints- saved states of models that enable continuation from the same point in case of interruptions. The importance of differentiation in deep learning frameworks is highlighted, and the speaker suggests trying to write backpropagation layers manually to understand the ease Tensorflow brings to the process. The popularity of Tensorflow is attributed to its use by a large community, and various projects such as image style transfer, handwriting generation, and StackGANs are discussed. The lecture aims to cover Tensorflow's computational graph model, building functions, and structuring models from a deep learning perspective. Finally, the speaker advises using the Tensorflow website as a source for the latest APIs and libraries.

  • 00:10:00 In this section, the speaker discusses the importance of learning TensorFlow from scratch. While high-level abstractions can handle more complex tasks, understanding the workings behind the code is crucial for creating custom models. The speaker explains that TensorFlow separates the definition of computation from its execution, assembling a computational graph and using a session to execute operations. The section explains how defining operations in TensorFlow creates a graph that can be visualized using the built-in tool TensorBoard. The sample code used shows nodes for operators and tensors, where the edge values represent tensor values.

  • 00:15:00 In this section, the lecturer discusses the nodes and edges in a TensorFlow graph, as well as the use of sessions to run computations within the graph. Nodes can be operators, variables, or constants, while edges are tensors. A session is used to instantiate the graph and run computations, with the session taking care of necessary resources. Running a specific node in the graph with a session will compute the graph and return the node's value, and the lecturer demonstrates this with an example using addition. The session object encapsulates the resource environment for operators and tensor objects to execute within. The lecturer also mentions the use of the "with" statement as an alternative to explicitly closing the session.

  • 00:20:00 In this section, the video explains the concept of lazy evaluation in Tensorflow. It states that when a graph is created in Tensorflow, it is not pre-calculated or cached somewhere, but calculations are done lazily as and when they are needed. The power of lazy evaluation comes from the fact that not everything needs to be calculated, so it saves a bunch of computation as we follow along deeper into the models. When calling the session dot run method, the first argument is a list of nodes within the fetches list that need to be calculated, and Tensorflow calculates all these different nodes and gives the results back as a list.

  • 00:25:00 In this section, the lecturer discusses the benefits of modeling computations as a graph in TensorFlow, including the ability to run subgraphs in parallel across multiple CPUs or GPUs. They explain how to specify a specific graph to run on a particular GPU using the command TF device GPU, and how to create multiple graphs in TensorFlow, which could be useful in cases like ensemble learning where you might have different models running in parallel. The lecturer also notes that sessions in TensorFlow can be greedy in terms of resource usage, so it may be necessary to manage resources carefully when using multiple graphs.

  • 00:30:00 In this section, the lecturer discusses how to create and manipulate graphs in TensorFlow. They explain that multiple sessions can be created, but it can be complex to pass data between them. It is recommended to use only one session for simplicity. To add nodes to a graph, TF dot Graph API is used, where the instantiated graph can be set as default. When the session is instantiated, the graph can be passed as an argument, and the entire execution environment is created around it. It is important to avoid mixing two graphs, and to obtain a handle on the default graph, the API TF dot get underscore default is used.

  • 00:35:00 In this section, the speaker discusses the advantages of using graphs in TensorFlow. One of the benefits is the ability to run subgraphs and even a single op, rather than having to run the entire graph, making computations more efficient. TensorFlow also has a distributed mode, allowing computations to be run across different devices and machines when the computation is described using subgraphs. The takeaway from this section is the importance of setting up graphs of computation and running subgraphs within a session.
 

Tensorflow para pesquisa de aprendizado profundo - Aula 2



Tensorflow para pesquisa de aprendizado profundo - Aula 2

A palestra sobre TensorFlow for Deep Learning Research abrange uma ampla gama de tópicos, incluindo operações básicas, tipos de tensor, espaços reservados e carregamento lento. A importância de utilizar o TensorBoard para visualizar o gráfico que está sendo executado é enfatizada, e várias funções da API do TensorFlow são discutidas, incluindo random shuffle, random crop, multinomial TF.dot e a função random gamma. O vídeo também aborda os conceitos de definição de 0 para diferentes tipos de dados, inicialização de variáveis, atribuição de valores a elas e os benefícios de usar uma sessão interativa do TensorFlow. Por fim, o uso de espaços reservados no TensorFlow é abordado em detalhes e os possíveis problemas ao usar espaços reservados com formas indefinidas são discutidos.

O palestrante também discute o uso de espaços reservados no TensorFlow, incluindo como alimentar vários pontos de dados e usar dicts gratuitos. A palestra então passa para o carregamento lento, onde a computação é adiada até o tempo de execução para evitar o inchaço do gráfico causado por vários nós da mesma operação em loops. Separar a definição de objetos de operação da computação e estruturar o código para definições de variáveis e funções de computação ajuda a evitar problemas com a chamada de funções no TensorFlow. O palestrante também aborda como o otimizador minimiza a entropia cruzada e atualiza pesos e vieses enquanto usa propriedades para estruturar o código do TensorFlow com eficiência.

  • 00:00:00 Nesta seção da palestra, o instrutor aborda operações básicas, tipos de tensores, espaços reservados e carregamento lento. Eles demonstram como visualizar o gráfico TF usando o TensorBoard com um programa gráfico simples que é visualizado usando o TensorBoard. O processo envolve adicionar um gravador de arquivo de resumo de tabela TF ao contexto da sessão, fornecendo um local para gravar os eventos, especificando o que gravar e, em seguida, fechando o gravador quando terminar. Eles também mostram como tornar o gráfico mais legível adicionando argumentos de nome.

  • 00:05:00 Nesta seção, o palestrante enfatiza a importância de utilizar o TensorBoard para visualizar o gráfico sendo executado, que é um recurso automático do TensorFlow que não está prontamente disponível em outros frameworks. A palestra então se aprofunda na assinatura da função TF.constant e como seu valor, forma e tipo de dados podem ser especificados ou inferidos. Além disso, o palestrante explica o que acontece quando verify_shape é definido como true ou false e como o TensorFlow lida com nomes exclusivos para constantes. Por fim, a palestra demonstra como criar um vetor e uma matriz, somá-los e usar o TensorBoard para visualizar o gráfico.

  • 00:10:00 Nesta seção da palestra, o tópico de transmissão no TensorFlow é apresentado e é demonstrado como ele é semelhante ao NumPy. A difusão é mostrada através de exemplos de adição e multiplicação de constantes a uma matriz. O conceito de criação de tensores pré-preenchidos com determinados valores também é abordado, seja com zeros ou uns, e como criar tensores preenchidos com um valor personalizado usando o método TF.fill. A importância de definir corretamente o tipo de dados para esses tensores é enfatizada. No geral, a palestra enfatiza a importância de entender as semelhanças e diferenças entre o TensorFlow e outras bibliotecas de base numérica, como o NumPy.

  • 00:15:00 Nesta seção, o palestrante discute alguns tipos diferentes de restrições e sequências que podem ser usadas no Tensorflow. Um exemplo é o uso de linspace para criar uma sequência de intervalos equidistantes, onde os valores inicial e final são float 32 ou float 64. Outro exemplo é a função normal aleatória, que gera um tensor de uma forma especificada por amostragem de uma distribuição normal. O normal truncado é semelhante, mas as amostras estão dentro de dois desvios padrão da média. Finalmente, o embaralhamento aleatório é discutido como uma forma de embaralhar os valores de um tensor em uma dimensão específica. O palestrante sugere praticar essas funções para desenvolver a memória muscular e evitar depender constantemente de documentação.

  • 00:20:00 Nesta seção, o palestrante discute várias funções da API do Tensorflow, começando com a função random shuffle, que embaralha dados na quarta dimensão por padrão, tornando-a útil para conjuntos de dados de imagens. A função de corte aleatório corta blocos contíguos de dados de uma forma especificada de um tensor. A função multinomial TF.dot amostra de uma distribuição multinomial com um determinado tensor logit e número de amostras. Por fim, é discutida a função gama aleatória, que é outra distribuição em estatística que possui dois parâmetros: forma e beta.

  • 00:25:00 Nesta seção, o palestrante discute o uso de funções do TensorFlow para gerar constantes e sequências geradas aleatoriamente para pesquisa de aprendizado profundo. A função set_random_seed é introduzida, o que permite aos usuários configurar um feed aleatório para todo o gráfico, tornando os resultados mais deterministicamente aleatórios e permitindo que os usuários repitam experimentos de forma consistente. O palestrante também explica várias funções do TensorFlow para operações básicas, como adição elementar, multiplicação de matrizes e operações de módulo. Além disso, o palestrante enfatiza que alguns dos tipos nativos do Python, como boolean e string, podem ser usados com o TensorFlow.

  • 00:30:00 Nesta seção da palestra, o palestrante discute os conceitos de definição de 0 para diferentes tipos de dados, como vetores, matrizes e strings, no TensorFlow, e qual será a saída esperada para cada tipo. Eles também cobrem os tipos de dados do TensorFlow, que incluem lento 32 64, em 8 16 32 64, e como eles podem ser usados de forma intercambiável com o NumPy. Além disso, o palestrante adverte contra o uso de constantes no TensorFlow, pois elas são armazenadas na definição do gráfico, o que pode causar problemas posteriormente.

  • 00:35:00 Nesta seção, o palestrante discute o uso de variáveis do TensorFlow, explicando que os usuários podem definir uma variável usando TFDOTvariable junto com um valor e um nome opcional. Os tamanhos são inferidos a partir do valor inserido e os usuários podem optar por inicializar suas variáveis usando a função TF.global_variables_initializer(). O palestrante avisa que variáveis não inicializadas levarão a erros, mas que os usuários podem inicializar apenas um subconjunto das variáveis, se necessário. Além disso, o palestrante explica que constantes são diferentes de variáveis, pois constante é um operador enquanto variável é uma classe com múltiplas funções e métodos que os usuários podem chamar.

  • 00:40:00 Nesta seção, o vídeo explica as diferentes formas de inicializar variáveis no TensorFlow, uma delas é chamando a opção "atribuir" nelas com um determinado valor. Essa abordagem pode ser útil ao treinar um modelo usando aprendizado de transferência, em que algumas camadas recebem valores de um modelo pré-treinado, enquanto outras são inicializadas aleatoriamente. O vídeo também discute como inicializar uma única variável e como obter o valor de uma variável usando o método "eval". Além disso, o vídeo explica que, ao atribuir um valor a uma variável, tudo bem se a variável não tiver sido inicializada antes, e a opção "atribuir" pode inicializar a variável antes de atribuir o valor.

  • 00:45:00 Nesta seção, o vídeo aborda a inicialização de variáveis e a atribuição de valores a elas. A operação inicializadora atribui o valor inicial de uma variável à própria variável. Além disso, a operação de atribuição adiciona, subtrai ou multiplica o valor atual de uma variável por um novo valor, enquanto a suboperação de atribuição subtrai o novo valor do valor atual. Várias sessões manterão suas próprias cópias de variáveis e inicializações, e é importante gerenciar e seguir cuidadosamente o caminho de execução ao lidar com várias sessões para evitar resultados inesperados. Por fim, variáveis não inicializadas não terão nenhum efeito em atribuições ou operações e todas as sessões devem ser fechadas para liberar recursos.

  • 00:50:00 Nesta seção, o palestrante discute a inicialização de variáveis na biblioteca TensorFlow. Ao executar o TensorFlow, todas as variáveis usadas no código devem ser inicializadas. Isso pode ser arriscado ao usar várias variáveis, pois elas podem depender umas das outras. Em casos como esses, deve-se usar o valor de inicialização da variável para garantir que o valor da variável seja seguro antes de usá-lo para inicializar outra variável. O palestrante explica os benefícios de usar uma sessão interativa do TensorFlow e como usar a sessão para avaliar uma série de operações dentro do código. Por fim, o palestrante discute a dependência de controle, um método para garantir que todas as operações relevantes sejam executadas antes de chamar a operação final. Isso pode ser útil em modelos complexos de aprendizado de máquina contendo muitas operações.

  • 00:55:00 Nesta seção, o vídeo aborda os placeholders no TensorFlow, que permitem a montagem de um gráfico sem saber os valores dos dados que serão utilizados na computação. Os espaços reservados atuam como espaços reservados para valores reais que serão calculados na linha e são definidos usando o operador TF.placeholder com um tipo e forma definidos. Ao executar operações que envolvem espaços reservados, um dicionário deve ser criado com os espaços reservados e seus valores, e esse dicionário é alimentado na chamada session.run(). É importante observar que, embora os espaços reservados possam ter a forma definida como nenhum, algumas operações exigem que a forma seja definida, o que pode causar erros.

  • 01:00:00 Nesta seção, o vídeo discute os espaços reservados e como eles são operações de primeira classe válidas por conta própria, que podem ser visualizadas no TensorBoard. A seção também aborda como alimentar vários pontos de dados e como usar dict livre para qualquer uma das variáveis ou constantes em seu gráfico. O vídeo passa então para carregamento preguiçoso, onde os objetos são criados apenas quando são necessários, e carregamento normal, onde um nó é criado dentro do grafo antes de executá-lo. O conceito de carregamento lento ajuda no gerenciamento de memória, especialmente ao trabalhar com grandes conjuntos de dados.

  • 01:05:00 Nesta seção, o palestrante explica o carregamento lento e suas implicações para o TensorFlow. O carregamento preguiçoso é uma técnica em que a computação é adiada até o tempo de execução, em vez da construção do gráfico - isso pode levar a vários nós da mesma operação no gráfico de computação, especialmente em loops. Para evitar o inchaço do gráfico e outros problemas associados, o palestrante recomenda separar a definição de objetos de operação da computação e execução das operações. Além disso, o palestrante enfatiza a importância de estruturar o código de modo que as definições de variáveis estejam em um local e as funções de computação em outro.

  • 01:10:00 Nesta seção, o palestrante explica como estruturar o código para evitar problemas com a chamada de funções ao usar o TensorFlow para pesquisas de deep learning. Usando as propriedades do Python, o palestrante demonstra como definir atributos internos como 'start_prediction', 'optimized' e 'error'. A primeira parte do bloco de código calcula o tamanho dos dados, tamanho de destino, peso e viés antes de adicionar uma operação. A saída resultante desta operação é adicionada ao gráfico. A função 'otimizar' segue o mesmo padrão, criando os nós iniciais na primeira vez em que é chamada e retornando alças para esses nós nas vezes seguintes em que é chamada.

  • 01:15:00 Nesta seção, o palestrante discute como o otimizador minimiza a entropia cruzada e atualiza pesos e bias no TensorFlow. Quando o otimizador é chamado pela primeira vez, o TensorFlow faz a retropropagação e atualiza as variáveis que contribuem para a perda. Quando o otimizador é chamado posteriormente, o TensorFlow já tem o gráfico e calcula os nós de entrada para minimizar e atualizar os pesos sem chamar nenhum nó adicional. O uso de propriedades ajuda a estruturar o código do TensorFlow com mais eficiência. A próxima palestra fornecerá um exemplo para entender melhor esse processo.
 

Tensorflow para pesquisa de aprendizado profundo - Aula 3



Tensorflow para pesquisa de aprendizado profundo - Aula 3

A terceira palestra sobre TensorFlow para pesquisa de aprendizado profundo abrange regressão linear e regressão logística usando o conjunto de dados MNIST. O palestrante mostra como treinar um modelo de regressão linear no TensorFlow criando espaços reservados para dados de entrada, inicializando variáveis treináveis para pesos e viés, fazendo previsões, calculando perdas e definindo o otimizador como gradiente descendente com uma taxa de aprendizado específica. A palestra também explica a descida do gradiente estocástico em minilote e a importância de lembrar a forma das variáveis. A precisão do modelo é calculada comparando o índice do valor máximo obtido da função TF argmax com a variável alvo y, calculando o número de previsões corretas usando TF reduce sum e TF float e dividindo-o pelo número total de testes exemplos. Por fim, o palestrante observa que esse modelo não é considerado poderoso e existem modelos mais robustos, como camadas convolucionais, que oferecem maior precisão.

  • 00:00:00 Nesta seção, o palestrante inicia a terceira palestra sobre o TensorFlow para pesquisa em deep learning e começa com uma revisão do material da palestra anterior. Eles explicam como o TensorFlow separa a definição do gráfico de computação de sua execução e como montar um gráfico adicionando várias operações a ele. Eles então discutem constantes, variáveis e espaços reservados de TF e suas funcionalidades dentro de um gráfico. O palestrante enfatiza a importância de evitar carregamento preguiçoso e, em vez disso, separar a montagem do gráfico e executá-lo para eficiência ideal. Em seguida, eles apresentam o primeiro exemplo de regressão linear e explicam como prever a variável dependente Y com base nas variáveis independentes do conjunto de dados. O palestrante recomenda que os ouvintes acompanhem os exemplos e resolvam os problemas por conta própria.

  • 00:05:00 Nesta seção, o palestrante explica os fundamentos da regressão linear e demonstra como treinar um modelo de regressão linear no TensorFlow. Um modelo linear simples é usado onde o valor previsto de y é W multiplicado por X, adicionado a B. A perda é calculada como a diferença entre o valor previsto e o valor real de Y, e o treinamento ocorre minimizando a perda otimizando o variáveis treináveis de W e B. O professor então compartilha o código para um exemplo de regressão linear com os dados de entrada sendo o número de incêndios e a variável de destino de saída sendo o número de testes em uma determinada amostra. O código demonstra como criar espaços reservados para os dados de entrada, inicializar as variáveis treináveis de W e B, fazer previsões, calcular perdas e definir o otimizador como gradiente descendente com uma taxa de aprendizado específica.

  • 00:10:00 Nesta seção, o palestrante descreve o processo de treinamento de um modelo no TensorFlow para pesquisa de aprendizado profundo. Depois de criar o modelo e projetar a função de perda, a próxima etapa é iniciar uma sessão e executar o modelo por um número definido de épocas. Cada época envolve executar repetidamente os dados de treinamento durante a sessão e atualizar as variáveis para minimizar a perda. O processo é visualizado por meio do TensorBoard e o modelo resultante pode ser usado para prever a saída de qualquer valor de entrada. O palestrante também observa a presença de um outlier nos dados que afeta a previsão do modelo.

  • 00:15:00 Nesta seção, o palestrante explica o papel dos otimizadores em modelos de treinamento no TensorFlow e lista vários otimizadores, incluindo gradiente descendente, grad momentum, Adam, RMSprop, proximal gradient e proximal a grad. O palestrante enfatiza a importância de testar o desempenho do modelo em dados que ele nunca viu antes para garantir que o modelo seja generalizável. Para abordar a sensibilidade da função de perda de erro quadrado para outliers, o palestrante apresenta a função de perda de Huber e explica como ela funciona. O palestrante também fornece instruções sobre como codificar a função de perda de Huber no TensorFlow.

  • 00:20:00 Nesta seção, o palestrante explica a implementação da perda de Huber, que é uma função de perda comumente utilizada em aprendizado profundo. A perda de Huber é usada para problemas de regressão e funciona encontrando o resíduo entre previsões e rótulos. Se o residual for menor que o valor Delta, uma função chamada Small Res será retornada. No entanto, se for maior que Delta, Large Res será retornado. O palestrante então passa a discutir a regressão logística usando o conjunto de dados MNIST. A regressão logística é usada para problemas de classificação e funciona calculando o logit como X em W mais B. O resultado disso é passado por uma função softmax, produzindo uma distribuição de probabilidade. A função de perda usada neste caso é a perda de entropia cruzada, que mede a distância entre duas distribuições de probabilidade.

  • 00:25:00 Nesta seção, o instrutor explica o conceito de descida de gradiente estocástico de minilote e o uso de lotes durante o treinamento de modelos para aprendizado profundo. Ao fazer isso, ajuda a fazer o melhor uso da memória da GPU e é eficiente quando não podemos usar o conjunto de treinamento completo. O tutorial inclui etapas para criar um espaço reservado para o modelo, inicializar os valores de peso e desvios para os recursos de entrada e saída e criar um modelo com tensorflow usando a função tf.random.normal para inicialização. A importância de lembrar a forma dessas variáveis ao criá-las também foi enfatizada, especificamente com a última dimensão de recurso de entrada e o número de classes.

  • 00:30:00 Nesta seção, o modelo DF simples com dimensionalidade para tamanho de lote de 10 é discutido, onde a função de perda de entropia cruzada é usada para calcular a perda. Um otimizador é definido e, uma vez que o modelo é treinado, ele é testado para encontrar o número total de previsões corretas. As previsões corretas são calculadas usando o lote de logits e a função softmax, onde os valores de probabilidade são alimentados no modelo e comparados com os rótulos reais para calcular os valores de previsão corretos. É aconselhável não executar o otimizador no conjunto de teste para evitar o overfitting.

  • 00:35:00 Nesta seção, o apresentador explica como calcular a precisão do modelo. A função TF argmax é usada para obter o valor máximo na linha e retorna o índice do dígito que tem a maior probabilidade. Comparamos esse índice com a variável de destino y. Em seguida, calculamos o número de previsões corretas usando TF reduce sum e TF float. Por fim, dividimos o número de previsões corretas pelo número total de exemplos de teste para obter a precisão, que é de 90% para esse modelo linear específico. O apresentador também observa que esse modelo não é considerado poderoso e existem modelos mais robustos, como camadas convolucionais, que fornecem maior precisão.
 

Tensorflow para pesquisa de aprendizado profundo - Aula 5_1



Tensorflow para pesquisa de aprendizado profundo - Aula 5_1

A quinta palestra da série TensorFlow for Deep Learning Research aborda vários tópicos, incluindo como gerenciar experimentos de deep learning de maneira eficaz, a importância da diferenciação automática no TensorFlow e o processo de treinar modelos e salvar variáveis. O palestrante explica que a diferenciação automática é fornecida em estruturas de aprendizado profundo como o TensorFlow, tornando mais fácil para os usuários codificar seus modelos sem lidar com gradientes. Embora não seja essencial calcular os gradientes manualmente, ainda é útil trabalhá-los para funções e redes simples. A criação de um modelo de reconhecimento de entidade nomeada com subclasses e os espaços reservados necessários e técnicas de alimentação também é abordada, bem como salvar e restaurar variáveis no TensorFlow e o processo de salvar modelos em diferentes sessões e máquinas.

  • 00:00:00 Nesta seção, o palestrante discute como gerenciar experimentos de aprendizado profundo e a importância da diferenciação automática no TensorFlow. Eles explicam que, ao escrever um modelo, você estará tentando várias coisas e iniciando e reiniciando o treinamento, portanto, o gerenciamento adequado é essencial. A diferenciação automática é fornecida em estruturas de aprendizado profundo como o TensorFlow, facilitando para os usuários codificar seus modelos sem lidar com os gradientes reais. O palestrante fornece um exemplo em que a operação 'gradientes' do TensorFlow permite encontrar os gradientes de Y em relação a cada tensor em uma lista fornecida como o segundo argumento. Eles também mencionam que tudo no TensorFlow e no aprendizado profundo é baseado na diferenciação numérica.

  • 00:05:00 Nesta seção, o palestrante fala se é necessário aprender a calcular gradientes manualmente quando o TensorFlow já possui um recurso de gradientes de pontos. Ele sugere que, embora não seja essencial, ainda é útil trabalhar com gradientes para funções ou redes simples, especialmente ao escrever camadas personalizadas ou lidar com problemas de gradiente, como explosão ou desaparecimento de gradientes. Ele também sugere estruturar o modelo de uma maneira mais orientada a objetos para facilitar o uso e remover totalmente o modelo da função. O palestrante menciona a estrutura de atribuição CS 244 D como um exemplo de como encapsular componentes de um modelo de aprendizado profundo.

  • 00:10:00 Nesta seção, o palestrante discute o aspecto do modelo de criação de um modelo de aprendizado profundo. Eles explicam que o modelo é onde a inferência completa é escrita, pegando uma entrada e executando uma passagem direta para fornecer a saída, adicionando a operação de perda que cria um escalar de perda que compara a saída prevista com os verdadeiros rótulos de saída dos espaços reservados. O palestrante sugere abstrair tudo como uma classe base e criar subclasses para tipos específicos de modelos, como um modelo de linguagem. Por fim, eles explicam como criar um modelo de reconhecimento de entidade nomeada com subclasses e as APIs necessárias, como espaços reservados e tecnologia de alimentação.

  • 00:15:00 Nesta seção, aprendemos sobre o processo de treinamento de modelos de aprendizagem profunda usando o TensorFlow e como gerenciar experimentos de forma eficaz. O processo envolve a criação de matrizes variáveis e a obtenção de incorporações para dados de treinamento antes de executar uma época de dados de treinamento em um loop, que treina as matrizes de incorporação. Para salvar o progresso, o TF para train.saver salva as variáveis do grafo em arquivos binários, que podem ser chamados em execuções futuras para começar de onde parou. O exemplo de código mostra como instanciar o objeto saver e percorrer a etapa de treinamento para executar o otimizador, salvando a sessão e algum nome de diretório.

  • 00:20:00 Nesta seção, o palestrante se aprofunda nos detalhes da classe Save do TensorFlow e nas variáveis associadas a ela. A variável de passo global, definida como uma variável de código não treinável que começa em 0, pode ser incrementada cada vez que a operação de treinamento é chamada, fornecendo-a na função "minimizar". Além disso, a variável "max to keep" limita o número de checkpoints salvos aos mais recentes, e a variável "keep checkpoint every" controla a frequência com que um checkpoint é salvo, tornando-o útil para longos ciclos de treinamento.

  • 00:25:00 Nesta seção, o instrutor discute como salvar e restaurar variáveis no TensorFlow. Ele explica que os usuários podem especificar uma lista de variáveis ou um dicionário para salvar variáveis específicas em vez de salvar tudo. O benefício disso é economizar espaço e aumentar o rendimento, especialmente ao fazer o aprendizado por transferência. Para restaurar variáveis, os usuários podem chamar a função tf.latest_checkpoint, que verificará o ponto de verificação mais recente em um diretório específico e restaurará a partir daí usando a função session.restore(). O instrutor também menciona que os usuários podem salvar o gráfico no TensorFlow 0.11 em diante, criando coleções com chaves e valores correspondentes às variáveis e, em seguida, instanciando o objeto saver com todos os valores padrão.

  • 00:30:00 Nesta seção da palestra, o instrutor explica como salvar e restaurar modelos do TensorFlow em diferentes sessões e até em diferentes máquinas. As etapas envolvem executar o inicializador de variáveis globais, salvar a sessão e utilizar o método "export metagraph" para criar um arquivo de gráfico salvo. Este gráfico salvo pode ser restaurado e as variáveis podem ser reinicializadas em um processo ou máquina completamente diferente se o gráfico original não estiver disponível. O instrutor também menciona TF.summary, que será abordado no próximo vídeo.
 

Tensorflow para pesquisa de aprendizado profundo - Aula 5_2



Tensorflow para pesquisa de aprendizado profundo - Aula 5_2

O tutorial em vídeo discute a implementação de operações de resumo do TF, que permitem a visualização de dados no TensorBoard. O tutorial abrange três tipos de operações de resumo - TF.summary.scalar, TF.summary.histogram e TF.summary.image - e explica como mesclá-los em um e gravá-los em um arquivo de evento usando a classe FileWriter. O palestrante demonstra como usar escopos de nome para visualizar o gráfico no TensorBoard e define um redator de teste e um redator treinado para escrever resumos em arquivos separados. Eles enfatizam o aproveitamento dos recursos de visualização do TensorBoard para entender melhor o desempenho do modelo. No geral, o TensorBoard é uma ferramenta crucial para acompanhar o progresso do treinamento, e a API para adicionar operações e mesclá-las é direta.

  • 00:00:00 Nesta seção, o tutorial em vídeo discute como usar operações de resumo do TF, que são funções que anexam informações a nós no gráfico computacional para gerar dados de resumo para visualização no TensorBoard. O tutorial abrange três tipos de operações de resumo: TF.summary.scalar, para anexar a nós de valor escalar no gráfico, como perda, entropia cruzada e taxas de aprendizado; TF.summary.histogram, para visualizar a distribuição de um tensor, como os pesos de uma determinada camada; e TF.summary.image, para visualizar imagens, entradas ou mesmo algumas camadas intermediárias. O tutorial explica como mesclar todas as operações de resumo em uma e gravá-las em um arquivo de evento usando a classe FileWriter.

  • 00:05:00 Nesta seção, o palestrante explica como configurar um gravador de arquivo e um resumo no TensorFlow para visualizar dados no TensorBoard. Eles recomendam configurar o gravador para ser executado em intervalos específicos, pois executá-lo a cada etapa pode produzir muitos dados. Ao fornecer ao gravador de arquivo o objeto gráfico, o gráfico computacional pode ser salvo como um gráfico def e visualizado no TensorBoard. O palestrante demonstra como visualizar escalares e histogramas no TensorBoard selecionando etapas específicas no eixo x para ver os valores correspondentes no eixo y. Eles incentivam os usuários a aproveitar os recursos de visualização do TensorBoard para entender melhor o desempenho de seus modelos.

  • 00:10:00 Nesta seção, o palestrante discute a definição de uma função chamada variable_summary, que pega um tensor e adiciona um nó de resumo. A função abrange média, desvio padrão, máximo, mínimo e histograma; cada variável terá o escopo definido a partir de uma perspectiva de nomenclatura. Eles também discutem a ideia de desordem nas distribuições onde as perdas são maiores quando o modelo não é treinado o suficiente, e conforme o tamanho do passo aumenta, as perdas diminuem. Diferentes gravadores de arquivos podem ser usados para vários experimentos e podem ser salvos na engrenagem de log. A opção de residência densa permite selecionar e alternar entre diferentes opções.

  • 00:15:00 Nesta seção, o vídeo se concentra na implementação de operações de resumo e no uso de escopos de nome no TensorFlow para visualização. O código define escopos de nome para entropia cruzada e precisão para ajudar na visualização do gráfico no TensorBoard. A operação mesclada é obtida chamando TF.summary.merge_all e esta operação é usada ao executar a sessão. O código também define um gravador de teste e um gravador treinado para gravar os resumos resultantes em arquivos separados. Para cada etapa, o código treina o modelo e grava os resumos. Se o número de etapas mod 10 for igual a zero, o resumo será gravado no redator do teste e, para todas as outras etapas, será gravado no redator treinado.

  • 00:20:00 Nesta seção, o palestrante discute o método para executar o TensorBoard para visualizar eventos no gravador de teste e no gravador de trem simultaneamente. O comando "s about - - clock there is equal to the path" ajuda a visualizar tudo, e o host atual é localhost dois pontos seis zero zero seis, que podem ser navegados pelo navegador. Além disso, a imagem de ponto de resumo do ponto TF tem um nome tensor max outputs por padrão e interpreta um tensor quadridimensional com a largura e os canais da altura, tamanho do caminho da forma. O argumento max outputs determina quantas imagens de offset back serão renderizadas e mostradas no TensorBoard. No geral, o TensorBoard é uma ferramenta crucial para acompanhar o progresso do treinamento, e a API para adicionar várias operações e mesclá-las é direta.
 

Intuição por trás da retropropagação como um gráfico computacional



Intuição por trás da retropropagação como um gráfico computacional

A intuição por trás da retropropagação como um grafo computacional é explicada neste vídeo. O palestrante discute como uma função substituta é usada para estimar a função empírica que mapeia entradas para saídas e que o objetivo é encontrar os parâmetros que minimizam a função de perda. A retropropagação permite o cálculo do gradiente da função de perda em relação a cada parâmetro por meio de uma passagem para trás do gráfico. Os gradientes locais para cada porta no gráfico são calculados e podem ser usados para calcular o gradiente da saída final em relação a cada entrada. O palestrante também explica como lidar com gradientes para operações de ramificação e vetorizadas e como garantir que a dimensionalidade funcione ao calcular derivadas.

  • 00:00:00 Nesta seção, a retropropagação permite que o treinamento de redes neurais converja rapidamente, e compreendê-lo em profundidade pode ser benéfico para os pesquisadores. A palestra começa explicando que o objetivo de uma rede neural é encontrar a função que mapeia entradas para saídas, denotada por F(x), que é uma função empírica que pode não ser detectável. A palestra descreve que uma função substituta G(x,θ) é usada para estimar F, onde θ denota os parâmetros da rede neural, e o objetivo é encontrar os parâmetros que minimizam uma função de perda J. A palestra discute como a técnica de retropropagação permite que a rede encontre os parâmetros ideais calculando o gradiente da função de perda em relação a cada parâmetro por meio de uma passagem reversa do gráfico.

  • 00:05:00 Nesta seção, o palestrante discute como encontrar a derivada de G em relação a theta, que é crucial no treinamento de uma rede neural. O exemplo usado é uma função simples de X, Y e Z, onde a derivada parcial de F em relação a X, Y e Z deve ser calculada. É introduzido o conceito de gradientes locais, que são as derivadas da saída em relação à entrada para uma determinada operação. No entanto, a regra da cadeia é necessária para calcular a saída final em relação à variável distante, que neste caso são X, Y e Z.

  • 00:10:00 Nesta seção, vemos como encontrar os gradientes no gráfico computacional usando o fluxo reverso do gradiente. O gradiente do nó de saída é trivialmente 1 e, para calcular o gradiente em cada nó, multiplicamos o gradiente local pelo gradiente recebido do nó anterior. O programa pode então calcular os gradientes finais de del F por Del X, del F por Del Y e del F por Del V. É crucial ter em mente que estamos sempre calculando o gradiente em relação à função de perda final, que no caso de uma rede neural, é a função de perda J. Por fim, aprendemos como um neurônio em uma rede neural executa uma função simples durante o avanço e como, durante a retropropagação, podemos calcular e usar localmente os gradientes.

  • 00:15:00 Nesta seção, o palestrante explica a intuição por trás da retropropagação como um gráfico computacional para um neurônio. O gradiente local é obtido multiplicando a função inversa pelos valores del Z por Del X e del Z por Del Y. O fluxo reverso vai na direção da saída do neurônio, onde outros neurônios que estão enviando dados para ele obtêm Del J por Del X. A técnica do gráfico computacional também é usada para funções mais complexas, como a função sigmoide, onde o gradiente reverso é calculado numericamente. O gradiente local para cada nó é calculado tomando a derivada da função e, em seguida, multiplicando-a pelo fluxo de gradiente.

  • 00:20:00 Nesta seção, o palestrante explica como calcular os gradientes locais de cada porta em um gráfico computacional e como eles podem ser usados para obter o gradiente da saída final em relação a cada entrada. O exemplo usado no vídeo envolve um pequeno gráfico computacional que consiste em várias portas, como portas de adição e multiplicação, e o palestrante explica a intuição por trás do algoritmo de retropropagação usando este exemplo. O palestrante detalha como calcular os gradientes locais para cada porta no gráfico e mostra como eles podem ser combinados para calcular o gradiente da saída final em relação a cada entrada.

  • 00:25:00 Nesta seção, o palestrante discute a intuição por trás da retropropagação como um gráfico computacional. Eles explicam como os gradientes são calculados para diferentes tipos de portas, como adicionar portas e portas multiplicativas, e o padrão que surge ao calcular o fluxo reverso. O palestrante também explica como definir as funções de avanço e retrocesso para cada porta e, uma vez definidas, essas funções podem ser utilizadas para qualquer gráfico computacional, tornando o processo mais eficiente.

  • 00:30:00 Nesta seção, o conceito de passes para frente e para trás na retropropagação é discutido como um gráfico computacional. A passagem direta calcula a saída que se torna a entrada para o próximo nó até que a perda seja alcançada. Na passagem para trás, DZ é inicialmente definido como um e os cálculos são feitos na direção inversa. Ao lidar com vetores, o gradiente local é obtido usando matrizes jacobianas e a multiplicação à esquerda é usada na regra da cadeia. Del L por Del X ou Del L por Del Y é calculado usando as duas matrizes Jacobianas, del Z por Del X ou del Z por Del Y e del L por Del V.

  • 00:35:00 Nesta seção, o palestrante explica como calcular o avanço e retropropagação de uma determinada função usando o gráfico computacional. Usando uma função de exemplo, o locutor percorre o processo de criação de variáveis intermediárias e cálculo do passe para frente. Em seguida, o palestrante mostra como calcular a passagem reversa calculando os gradientes em relação à entrada e saída de cada portão. O palestrante enfatiza a utilidade de se ter em mente as derivadas da função sigmóide.

  • 00:40:00 Nesta seção, o palestrante explica como lidar com os gradientes para ramificação e operações vetorizadas na retropropagação. Quando ocorre a ramificação, os gradientes são adicionados e, ao computar os gradientes para funções, os gradientes intermediários anteriores podem ser reutilizados. As operações vetorizadas, como a multiplicação de matrizes, podem ser tratadas de maneira semelhante, calculando os gradientes em relação a cada elemento separadamente e usando operações de matriz para combiná-los. A dimensionalidade dos gradientes é determinada pela dimensionalidade da saída da operação que está sendo executada.

  • 00:45:00 Nesta seção, o palestrante explica como garantir que a dimensionalidade funcione ao calcular del D/del W e del D/del X em uma função, usando o exemplo de multiplicação de matrizes no TensorFlow. As dimensões de W e DD são conhecidas e, como a única maneira de fazer a multiplicação funcionar é usar W ponto ponto ponto X, é uma boa ideia memorizar essa fórmula. O palestrante lembra aos espectadores que entender as operações gráficas computacionais no TensorFlow é importante, mesmo que estruturas como o TensorFlow abstraiam essa complexidade. Esse conhecimento será útil ao lidar com camadas personalizadas, que exigem que o usuário escreva seus passes para frente e para trás.
 

Produção de deep learning para visão computacional



Produção de deep learning para visão computacional

O CTO e cientista-chefe da Jumio, Lavash Patel, discute como sua empresa usa uma mistura de especialistas em IA e ID para estabelecer confiança online e verificar a autenticidade dos documentos de identidade. O processo de verificação de identidade é desafiador pela variedade de IDs e subtipos, bem como pela necessidade de retificação e rejeição de imagens ilegíveis. Para manter a precisão, é adotada uma abordagem humana em loop, em que os modelos de IA detectam problemas e um humano verifica os resultados. Patel também discute como o Jumio produz aprendizado profundo usando um algoritmo de aprendizado ativo híbrido, que se adapta a novos subtipos e melhora ao se retreinar. Além disso, ele enfatiza a importância de dados limpos no reconhecimento facial e na manutenção da conformidade com o PCI ao lidar com dados confidenciais para fins de aprendizado de máquina.

  • 00:00:00 Nesta seção, Lavash Patel, CTO e cientista-chefe da Jumio, descreve o negócio da empresa de estabelecer confiança online por meio da combinação de especialistas em IA e ID para verificar a autenticidade de um documento de identidade. O problema com esse tipo de processo de verificação é desafiador pelo fato de que eles aceitam tráfego de todos os tipos de canais, incluindo telefones celulares, webcams e chamadas de API simples. Para resolver esses problemas, o Jumio usa uma mistura de modelos de classificação e Facemash para ajudar a verificar a autenticidade de uma identidade e a identidade da pessoa na frente da câmera.

  • 00:05:00 Nesta seção, o palestrante discute os desafios do uso de IA para verificação de identidade, dada a variedade de IDs e subtipos existentes. Ressalta-se a importância da retificação, ou alinhamento das imagens, bem como a necessidade de rejeitar imagens ilegíveis por desfoque ou ofuscamento. A aprovação de imagens de identificação é um processo mais rigoroso do que a rejeição, pois todos os componentes devem passar para serem considerados válidos. A fim de manter a precisão e a rejeição rigorosas de usuários fraudulentos, é adotada uma abordagem humana em loop, na qual modelos de IA são usados para detectar problemas e um humano é usado para verificar a sanidade dos resultados. Essa abordagem permite a precisão líder do setor em termos de conversão e detecção de fraudes.

  • 00:10:00 Nesta seção, o palestrante discute o aspecto de classificação da produção de aprendizado profundo para visão computacional. Embora a classificação de imagens tenha sido resolvida nos últimos anos usando uma rede pré-treinada como Inception versão 4 ou Viji 16, o problema é um pouco diferente devido às tags agregadas em vez de tags granulares. Com mais de 100 milhões de imagens marcadas, descobrir as diferentes classes tornou-se um problema de descoberta de classe transformado, que o aprendizado ativo pode resolver. O aprendizado ativo híbrido envolve uma etapa de aprendizado não supervisionado ou agrupamento integrado, começando com as classes mais populares com exemplos rotulados para obter um punhado de classes.

  • 00:15:00 Nesta seção, o palestrante explica como produzir aprendizado profundo para visão computacional usando um algoritmo de aprendizado ativo híbrido. O algoritmo coleta um grande número de amostras por classe e treina um classificador para classificar imagens com confiança em 50 classes, com níveis de confiança de saída. O algoritmo agrupa automaticamente as imagens nas quais o classificador não confia e um agente humano as revisa para adicionar novas classes conforme necessário. Depois que o modelo é criado, ele é implantado como uma API e, se houver regulamentos de conformidade, podem ser adicionados registros, monitoramento e verificações de integridade. Além disso, o palestrante observa que o algoritmo se adapta a novos subtipos e continua melhorando ao se retreinar, como aconteceu quando um novo ID com grafia incorreta foi detectado e o agente humano o rejeitou.

  • 00:20:00 Nesta seção, o palestrante discute como eles produzem novos modelos sempre tendo um modelo campeão e avaliando novos modelos com base em seu desempenho em comparação com o campeão. Esse método também permite a melhoria contínua usando uma infraestrutura híbrida de aprendizado ativo que coleta e limpa conjuntos de dados continuamente. O pipeline de produção é sensível à limpeza dos conjuntos de dados, com uma taxa de erro de destino para treinamento não superior a 20%. Todo o processo também deve ser compatível com PCI e GDP, o que significa que tudo deve ser criptografado e trazido para os dados em vez de dados para o treinamento. Em seguida, o palestrante apresenta um segundo estudo de caso sobre correspondência de rostos, no qual eles usam vieses de dados sobre idade, gênero e etnia a seu favor na comparação de selfies com identidades.

  • 00:25:00 Nesta seção, o palestrante discute uma possível abordagem para lidar com o problema de detecção de usuários fraudulentos por meio do uso de incorporações faciais e da função de perda de tripleto em uma rede de convolução profunda. O processo envolve recortar rostos usando um detector facial e usar conjuntos de dados públicos para treinar o modelo, seguido de ajuste fino nos dados de produção. O modelo é ajustado por meio do processo de aprendizado ativo, que envolve o uso de uma infraestrutura supervisionada para coletar amostras informativas e aumentar continuamente os dados. O palestrante enfatiza a eficácia do aprendizado ativo em uma ampla gama de casos de uso.

  • 00:30:00 Nesta seção, o palestrante enfatiza a importância de dados limpos na visão computacional, especialmente no reconhecimento facial. Ele ressalta que a produção de deep learning envolve muito mais do que apenas modelagem e mesmo problemas simples como classificação podem acabar tendo inúmeras complexidades na etapa de produção. A inteligência colaborativa ou os fluxos de trabalho human-in-the-loop também podem ser úteis para melhorar os algoritmos e são especialmente importantes no reconhecimento facial, pois requerem conjuntos de dados limpos. O palestrante também mencionou que sua empresa está contratando para suas equipes de P&D baseadas em Viena e Montreal.

  • 00:35:00 Nesta seção, o palestrante discute os desafios de manter a conformidade com o PCI ao lidar com dados confidenciais para fins de aprendizado de máquina e IA. O palestrante explica que os dados devem ser usados apenas para o fim a que se destinam e que locais e procedimentos altamente seguros devem estar em vigor para impedir qualquer acesso não autorizado. O palestrante também explica que os dados são colocados em baldes do Amazon S3 dentro do PCI DMZ e que as imagens ofuscadas são criadas para fins de aprendizado de máquina, que são supervisionadas remotamente para garantir que não haja vazamento de dados pessoais.
Razão: