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

 

Desafios em Deep Learning (Dr. Razvan Pascanu - DeepMind)



Desafios em Deep Learning (Dr. Razvan Pascanu - DeepMind)

O Dr. Razvan Pascanu, da DeepMind, discute vários desafios no aprendizado profundo neste vídeo. Ele destaca a importância da adaptabilidade e da mudança de foco das métricas de desempenho e sugere que as limitações de recursos computacionais em sistemas de aprendizado profundo podem realmente ser benéficas. Além disso, ele explora os desafios do aprendizado contínuo e o subcampo do aprendizado de máquina relacionado a isso, incluindo o impacto do tamanho e da arquitetura no desempenho dos modelos de aprendizado profundo. O Dr. Pascanu também discute o papel da descida do gradiente estocástico, a importância dos vieses explícitos e o conceito de pré-treinamento e adição de vieses indutivos em modelos de aprendizado profundo.

O Dr. Razvan Pascanu, da DeepMind, discute a questão do esquecimento no aprendizado profundo e como os modelos podem se recuperar dele. Embora algum conhecimento ainda possa permanecer após o esquecimento, é difícil determinar quanta informação é perdida. O Dr. Pascanu menciona como os artigos recentes sobre o esquecimento direcionado têm se concentrado na privacidade dos dados, mas mais pesquisas e foco são necessários nessa área.

  • 00:00:00 Nesta seção, o Dr. Razvan Pascanu discute suas percepções sobre a importância da adaptação na aprendizagem profunda. Apesar da ênfase nas métricas de desempenho, Pascanu destaca os efeitos limitantes da otimização contínua para essa medida singular. A falta de adaptabilidade em sistemas fixos diante de mudanças imprevisíveis no ambiente, o foco em soluções de tamanho único, a falta de métricas de desempenho bem definidas em cenários mais complexos e o escalonamento de sistemas para superar apenas gargalos, como dados limitados e recursos de computação, são alguns dos problemas que levam à necessidade de uma mudança de foco em direção à adaptação em aprendizado profundo.

  • 00:05:00 Nesta seção, o Dr. Razvan Pascanu discute as limitações de se concentrar apenas no desempenho em aprendizado profundo e sugere a exploração de sistemas que podem se adaptar continuamente às mudanças. Ele destaca questões de cobertura e representatividade de dados ao aprender em grandes conjuntos de dados, bem como o desafio de avaliar a capacidade de generalização fora de distribuição de um sistema. Pascanu sugere que pensar em adaptabilidade muda a perspectiva e pode ajudar a abordar algumas dessas questões. Ele cita o argumento de Thomas Griffiths de que não conseguimos entender certos movimentos feitos pelo AlphaGo porque tendemos a decompor os problemas em subobjetivos, enquanto o agente se preocupa apenas com o desempenho final. Pascanu conclui que mudar de perspectiva pode não resolver todos os problemas, mas pode levar a novos insights e abordagens.

  • 00:10:00 Nesta seção, o Dr. Pascanu discute a ideia de que as limitações podem ser benéficas em sistemas de aprendizado profundo. Enquanto os humanos têm limitações cognitivas que moldam a maneira como pensamos, os sistemas de aprendizado de máquina têm limitações computacionais que moldam como eles aprendem. Se pensarmos nas limitações como um obstáculo que precisa ser superado, podemos perder os benefícios dessas limitações. Limitar os orçamentos computacionais pode forçar o sistema a encontrar soluções combinatórias, o que pode levar a melhores resultados. O Dr. Pascanu acredita que, em vez de focar apenas no desempenho, também devemos levar em consideração o custo do aprendizado, o custo da inferência e a quantidade de informações codificadas. No entanto, ainda há desafios a serem superados em termos da relação entre distribuição de dados e pontos de dados, e o Dr. Pascanu destaca a importância de explorar diferentes ferramentas, como a teoria das categorias, para enfrentar esses desafios.

  • 00:15:00 Nesta seção, o Dr. Razvan Pascanu-DeepMind discute por que o aprendizado contínuo é importante e os desideratos de um sistema que pode aprender continuamente de forma eficiente. Ele destaca que há muitos sabores de aprendizagem contínua, tornando difícil definir e apontar cada questão específica. Além disso, a definição de aprendizagem contínua também pode criar contradições, e alguns dos problemas tornam-se mais visíveis dependendo das tarefas e benchmarks que são usados. O Dr. Pascanu-DeepMind sugere que uma maneira de fundamentar o aprendizado contínuo é focar em problemas reais, como o aprendizado semi-supervisionado contínuo, que tem uma aplicação prática, tornando mais fácil ver se o progresso está sendo feito. Outra maneira é focar no aprendizado por reforço.

  • 00:20:00 Nesta seção, o Dr. Razvan Pascanu discute os desafios do aprendizado contínuo no aprendizado por reforço (RL) e as técnicas que foram desenvolvidas até agora para mitigar esse problema. Como os dados em RL não são estacionários, é necessário lidar com o aprendizado contínuo para que as aproximações de funções funcionem. Várias técnicas foram desenvolvidas com base nos métodos de Força Bruta, como buffers de replay para evitar o esquecimento catastrófico, liga de especialistas em Starcraft e jogo de vendas em AlphaGo. Entretanto, esses métodos podem se tornar caros, havendo sempre a necessidade de reduzir esses custos. Pascanu apresenta um artigo interessante que argumenta que RL e aprendizado supervisionado diferem porque a transferência de recursos não ajuda tanto em sistemas de RL, e o foco deve estar no controle da qualidade dos dados e na centralização do ator e do crítico.

  • 00:25:00 Nesta seção, o palestrante discute os desafios do aprendizado contínuo, apontando que há aspectos do alinhamento contínuo que o aprendizado supervisionado não pode imitar. O palestrante menciona um artigo que lista essas diferenças entre RL e aprendizagem supervisionada. Além disso, o palestrante discute como o aprendizado contínuo pode ser pensado como um problema de rastreamento, em vez de convergência para um ponto. O palestrante menciona a perda de plasticidade que ocorre durante o ajuste fino de novos dados e como isso pode afetar a generalização. Por fim, o palestrante discute a atribuição de créditos em redes neurais e como o gradiente é calculado de forma independente para cada peso, o que pode causar votos conflitantes que afetam a média.

  • 00:30:00 Nesta seção do vídeo, Dr. Razvan Pascanu fala sobre aprender na hora, que é semelhante a um jogo de cabo de guerra onde cada exemplo exerce uma força sobre o peso, e o aprendizado ocorre quando o equilíbrio é alcançado entre essas forças. Os dados de identificação são essenciais nesse processo, pois garantem a presença de todas as forças. Além disso, aprender indiretamente ensina conhecimento, com vários conceitos relacionados aprendidos simultaneamente. Sugere-se que o middleware de dinâmica de aprendizado, otimizador e automação de jogos possa ser aprimorado para criar um processo de aprendizado mais eficiente para obter mais conhecimento com menos dados.

  • 00:35:00 Nesta seção, o Dr. Razvan Pascanu da DeepMind discute os desafios no subcampo do aprendizado de máquina conhecido como aprendizado contínuo, que envolve tentar ensinar coisas novas a um sistema sem que ele esqueça o que aprendeu anteriormente. O campo é subespecificado, os benchmarks não são bem definidos e há discordâncias sobre o que interessa às pessoas. Uma questão é a qualidade dos dados e as compensações entre aprender e esquecer, que dependem muito de como o benchmark é definido. O objetivo é chegar a referências mais naturais, mas mesmo a definição de "natural" não é consensual.

  • 00:40:00 Nesta seção, o Dr. Razvan Pascanu discute o conceito de sistemas AGI e sua relação com a inteligência humana. Ele explica que, embora a construção de um sistema AGI que se assemelhe aos humanos possa ser desejável para facilitar a interpretação, isso não é necessário. Os subobjetivos usados no aprendizado de AGI são eficientes e auxiliam na generalização composicional, permitindo um aprendizado mais rápido de coisas novas. Pascanu também discute como os vieses implícitos dos modelos de aprendizado profundo podem levar a erros e como os vieses explícitos podem ser usados para melhorar os modelos. Ele dá um exemplo de como o aprendizado contínuo pode ser melhorado com o uso de sistemas superparametrizados na área de curvatura muito baixa.

  • 00:45:00 Nesta seção do vídeo, o Dr. Razvan Pascanu discute o impacto do tamanho e da arquitetura de um modelo em seu desempenho em aprendizado profundo. Ele observa que a escala por si só tem um impacto significativo em quão bem um sistema esquece, e escolher a arquitetura certa faz uma enorme diferença. O campo normalmente ignora o impacto das escolhas de arquitetura e frequentemente compara as arquiteturas injustamente. O Dr. Pascanu também destaca o papel da otimização no aprendizado profundo e sugere que a sobreparametrização resulta em muitas soluções com erro de treinamento zero. À medida que o número de soluções aumenta, a solução mais próxima da inicialização converge e o sistema ainda depende das condições de inicialização. Ele cita exemplos de trabalhos de pesquisa que mostram que a superfície baixa pode ter qualquer estrutura e ser arbitrariamente complicada. Por fim, ele explica que o res net tem um bom desempenho devido à conexão de salto que usa para alterar a forma como os gradientes fluem no sistema.

  • 00:50:00 Nesta seção, o Dr. Razvan Pascanu fala sobre alguns resultados recentes que mostram os vieses implícitos na descida do gradiente estocástico (SGD) e a importância dos vieses explícitos. Com relação ao SGD, tradicionalmente se pensava que o ruído no SGD ajudava a escapar de mínimos agudos, mas acontece que há um viés implícito no regularizador usado no SGD. Além disso, o ruído de aumento de dados é prejudicial e eles descobriram que a média do gradiente em diferentes aumentos de dados pode reduzir esse ruído. Além disso, os vieses são superimportantes e um pequeno ajuste no aumento de dados pode levar a grandes melhorias no desempenho. Eles também exploraram a ideia de diferentes inicializações e como elas podem afetar a partição do espaço que é essencial para resolver o problema. Finalmente, o uso de vieses explícitos, como pré-treinamento, também leva a melhorias significativas.

  • 00:55:00 Nesta seção, o Dr. Razvan Pascanu discute o conceito de pré-treinamento e adição de vieses indutivos em modelos de aprendizado profundo. Ele explica que o pré-treinamento pode ajudar a garantir que as informações sejam transmitidas corretamente entre os nós e pode levar a uma melhoria significativa nos dispositivos exclusivos. Além disso, o Dr. Pascanu descreve uma abordagem exclusiva para adicionar vieses indutivos moldando a superfície de perda em vez de adicionar um termo regularizador, o que pode ajudar os pesos a ficarem fixos em zero e melhorar a eficiência do aprendizado. Ele também aborda questões relacionadas ao esquecimento catastrófico e ao desafio de decompor problemas no aprendizado de máquina.

  • 01:00:00 Nesta seção, o Dr. Pascanu discute a ideia de esquecimento no aprendizado profundo e como os modelos são capazes de se recuperar dele. Ele sugere que ainda há algum conhecimento oculto mesmo depois que um modelo esqueceu certas coisas, mas é difícil determinar quanto conhecimento é realmente perdido. O Dr. Pascanu menciona os próximos artigos sobre o esquecimento direcionado, onde certos pontos de dados são removidos do modelo para proteger a privacidade, mas ele acredita que mais pesquisas nessa área são necessárias.
 

CS 198-126: Modern Computer Vision Outono 2022 (Universidade da Califórnia, Berkeley) Aula 1 - Introdução ao Machine Learning



CS 198-126: Aula 1 - Introdução ao Machine Learning

Nesta palestra sobre aprendizado de máquina, o instrutor aborda uma ampla gama de tópicos, incluindo uma introdução ao curso, uma visão geral do aprendizado de máquina, diferentes tipos de aprendizado de máquina, pipeline de aprendizado de máquina, rotulagem de dados e função de perda. O conceito de trade-off viés-variância, overfitting e underfitting também é discutido. O instrutor enfatiza a importância de escolher a função certa durante o processo de aprendizado de máquina e o papel dos hiperparâmetros no processo. O objetivo geral do aprendizado de máquina é prever com precisão novos dados, não apenas ajustar os dados de treinamento. O palestrante incentiva os alunos a assistir às aulas e se esforçar para aprender sobre aprendizado de máquina e aprendizado profundo.

  • 00:00:00 Nesta seção, não há conteúdo adequado para resumir, pois o trecho da transcrição fornecido parece ser uma conversa entre o palestrante e o público sobre a situação do microfone na sala.

  • 00:05:00 Nesta seção, somos apresentados à série de palestras sobre aprendizagem profunda para visão computacional, apresentada por Jake e seus colegas. À medida que a aula começa, Jake repassa a logística do curso e descreve o que eles discutirão na primeira palestra, que é uma visão geral do aprendizado de máquina e como ele é abordado. Apesar de algumas dificuldades técnicas com o equipamento de gravação, Jake está animado para dar a aula e começa com uma apresentação para si mesmo e seus colegas.

  • 00:10:00 Nesta seção, o instrutor apresenta a si mesmo e ao curso, que visa fornecer um treinamento introdutório à visão computacional e aprendizado profundo para calouros que não tiveram muito contato com o material antes. O curso abordará tópicos como tarefas de visão computacional, aprendizado com grandes conjuntos de dados de imagens, visão 3D e arte generativa. O instrutor enfatiza que o curso deve ser divertido e interativo e fornece logística para o curso, como acessar a gravação de slides e tarefas no site e usar o Edstem para interagir com os alunos e a equipe do curso. O programa também está disponível no site, e o primeiro questionário será entregue no final do próximo fim de semana.

  • 00:15:00 Nesta seção, o instrutor fornece uma introdução ao aprendizado de máquina (ML). Ele explica que ML é o processo de usar dados para descobrir a aparência de uma função, em vez de codificá-la você mesmo. Com ML, os dados orientam as funções, e o instrutor dá um exemplo de como uma função para identificar o número 7 a partir de uma imagem é muito mais fácil de criar com ML do que tentar fazê-lo por meio de codificação. O instrutor explica que ML envolve a criação de templates onde se cria a estrutura de uma função e deixa alguns parâmetros que vão determinar como a função se comporta, com os parâmetros aprendidos por meio de dados. A importância de criar os modelos de função corretos é discutida, pois determina o sucesso do modelo de ML.

  • 00:20:00 Nesta seção da palestra, o palestrante explica que a chave para o aprendizado de máquina é descobrir o formato da função que o modelo seguirá. Essa função às vezes é chamada de classe de modelo e certas partes dela estão em branco e são chamadas de parâmetros, que são os valores que podemos aprender. O palestrante enfatiza que a escolha da função é de fundamental importância para a obtenção de resultados precisos. O palestrante também fornece uma breve visão geral e categorização de diferentes tipos de aprendizado de máquina, incluindo aprendizado supervisionado, aprendizado não supervisionado e aprendizado por reforço, e apresenta o vocabulário associado ao aprendizado de máquina, incluindo função, parâmetros, pesos, vieses, hiperparâmetros e recursos.

  • 00:25:00 Nesta seção, o palestrante explica o processo de aprendizado de máquina, com foco no pipeline de ML. Primeiro, é essencial definir o problema, preparar os dados e selecionar o modelo e a função de perda. Também é essencial rotular os dados com um sistema de rotulagem a quente para convertê-los em números que o modelo possa reconhecer. O palestrante enfatiza a importância de bons dados, observando que a entrada de dados ruins resultará em uma saída igualmente ruim. Além disso, ele discute a importância da vetorização dos dados, garantindo que todas as feições estejam na mesma escala e representadas na ordem correta.

  • 00:30:00 Nesta seção, o palestrante explica como rotular dados para aplicativos de aprendizado de máquina e por que é importante representar os dados corretamente. Uma rotulagem a quente é usada onde cada rótulo é representado por um vetor com um na posição correspondente e zeros em outros lugares. Definir um modelo e uma função de perda é crucial ao treinar um modelo de aprendizado de máquina. O modelo deve ser adaptado ao problema e aos dados específicos, e diferentes modelos podem ser testados para ver qual funciona melhor. A função de perda mede a eficácia do modelo, e um valor baixo é desejável.

  • 00:35:00 Nesta seção, o palestrante discute a importância de ter uma métrica para otimizar no aprendizado de máquina e apresenta o conceito de uma função de perda para medir a diferença entre a saída do modelo e o rótulo correto. O erro quadrático médio é fornecido como exemplo de uma função de perda para calcular a distância entre a saída do modelo e o rótulo correto. A função de perda é um hiperparâmetro que precisa ser selecionado previamente. Além disso, o palestrante fala sobre a fase de treinamento, onde o algoritmo seleciona os valores ótimos para os parâmetros do modelo usando a função de perda. Além disso, um conjunto de teste que o modelo não viu antes é usado para avaliar o desempenho do modelo e determinar o quão bem o modelo generaliza para novos dados. Finalmente, é enfatizada a importância de garantir que o modelo não apenas memorize os dados de treinamento, mas generalize bem para novos dados.

  • 00:40:00 Nesta seção, o conceito de compensação de viés e variância é discutido como um aspecto crucial no aprendizado de máquina que aparece no aprendizado profundo e em todas as outras classes de ML. O viés refere-se à tendência do modelo em relação a certas previsões, e a variância é a capacidade de um modelo de capturar as complexidades dos dados sem memorizá-los. Exemplos de alto viés e alta variância são fornecidos, onde o viés alto é um caso em que um modelo não é expressivo o suficiente para aprender um conjunto de dados com precisão, enquanto a alta variância se refere ao overfitting. O modelo ideal é aquele que captura a complexidade dos dados sem memorizá-los, o que é conhecido como zona Goldilocks. A compensação de viés-variância é um conceito crítico no aprendizado de máquina que os usuários devem saber, pois o encontrarão em todas as aulas de aprendizado de máquina que fizerem.

  • 00:45:00 Nesta seção, o palestrante discute o conceito de overfitting e underfitting em modelos de aprendizado de máquina. O objetivo do aprendizado de máquina é modelar e prever com precisão novos dados, não apenas ajustar os dados de treinamento. Se um modelo for capaz de corresponder aos dados de treinamento muito de perto, mas não conseguir prever novos dados com precisão, ele será superajustado. Por outro lado, se um modelo é muito simples e não consegue capturar os padrões nos dados, ele é subajustado. A melhor abordagem é encontrar um equilíbrio entre ajustar o suficiente aos dados de treinamento e ainda ser capaz de generalizar para novos dados. Isso envolve tentativa e erro com ajuste de hiperparâmetros e a seleção de funções de perda apropriadas.

  • 00:50:00 Nesta seção, o instrutor aborda o conceito de viés e variação em modelos de aprendizado de máquina. Um modelo com alto viés terá precisão semelhante entre os dados de treinamento e teste, pois gera consistentemente a mesma saída, independentemente da entrada. Por outro lado, um modelo de alta variância se ajusta muito bem aos dados, resultando em uma grande perda quando testado em novos dados. O instrutor enfatiza a compensação entre a complexidade do modelo e a generalização, que é importante entender ao selecionar um modelo para uma tarefa específica. Por fim, o instrutor incentiva os alunos a assistir às aulas e se esforçar para aprender sobre aprendizado de máquina e aprendizado profundo, mesmo que não seja sua principal prioridade.
 

CS 198-126: Aula 2 - Introdução ao Deep Learning, Parte 1



CS 198-126: Aula 2 - Introdução ao Deep Learning, Parte 1

Nesta palestra do YouTube sobre introdução ao aprendizado profundo, o instrutor discute os fundamentos dos modelos de aprendizado profundo e como treiná-los usando gradiente descendente, abrangendo diferentes blocos de construção para redes neurais e por que o aprendizado profundo é uma tecnologia tão prevalente. A palestra apresenta o perceptron e o empilhamento de vários perceptrons para criar uma rede neural mais complexa e sofisticada e explica como calcular a saída por multiplicação de matrizes e uma adição final, com a camada do meio usando uma função de ativação ReLU. O palestrante aborda o uso da função Softmax e da função de ativação ReLU, usando funções de perda como métricas para avaliar o desempenho do modelo e o conceito de otimização de gradiente descendente. Por fim, o instrutor discute a ideia de aprendizado profundo e como uma grande rede neural gera baixa perda, apesar de sua capacidade de memorizar os dados. Além disso, o palestrante introduz o conceito de ajuste de hiperparâmetros em redes neurais para melhorar seu desempenho com conjuntos de dados específicos. Ele observa que não há valores universais para hiperparâmetros e sugere explorar diferentes opções, como números de camada e funções de ativação. Devido a limitações de tempo, a palestra termina abruptamente, mas o palestrante garante aos alunos que o próximo questionário não será excessivamente difícil e estará acessível na plataforma GreatScope.

  • 00:00:00 Nesta seção, o instrutor pergunta ao público se eles têm alguma dúvida sobre a palestra anterior, especificamente sobre a compensação de variação de polarização e codificações one-hot. Eles abordam brevemente a análise exploratória de dados e a validação cruzada k-fold, afirmando que esses tópicos não serão muito abordados no curso. O instrutor explica como a validação cruzada k-fold funciona antes de iniciar a segunda palestra sobre aprendizado profundo.

  • 00:05:00 Nesta seção da palestra, o instrutor fornece uma breve visão geral do que os alunos podem esperar aprender, incluindo os fundamentos dos modelos de aprendizagem profunda e como treiná-los usando gradiente descendente. A palestra também aborda diferentes blocos de construção para redes neurais e por que o aprendizado profundo é uma tecnologia tão prevalente. Antes de mergulhar nas especificidades do aprendizado profundo, o instrutor revisa alguns conceitos fundamentais de álgebra linear, como produtos de pontos vetoriais e multiplicação vetorial de matrizes. Esses conceitos são importantes para entender o funcionamento interno dos modelos de aprendizado profundo. O instrutor fornece exemplos e anotações para ajudar os alunos a compreender totalmente o material.

  • 00:10:00 Nesta seção do vídeo, o palestrante discute a notação e a indexação no aprendizado profundo, onde vetores e matrizes são usados para representar os parâmetros da função de caixa preta. O palestrante explica que cada elemento da matriz é um parâmetro e, ao indexar dentro de um vetor, refere-se a um único escalar. Eles enfatizam a facilidade de obter derivadas parciais em relação às entradas e explicam a motivação por trás das redes neurais.

  • 00:15:00 Nesta seção, o palestrante discute os diferentes tipos de problemas que o aprendizado profundo pode resolver, como regressão, classificação e aprendizado por reforço. O objetivo é criar um modelo universal que possa ser usado para todos os tipos de tarefas, semelhantes às capacidades do cérebro humano. Para criar esse modelo, o palestrante apresenta o perceptron, uma formulação matemática semelhante a um neurônio. O perceptron recebe entradas, pondera-as, adiciona-as e depois as ativa por meio de uma função de etapa. O objetivo é criar um minicérebro capaz de resolver problemas complexos, como a regressão não linear de um polinômio que parece complicado.

  • 00:20:00 Nesta seção, o vídeo apresenta o conceito de empilhamento de vários perceptrons para criar uma rede neural mais complexa e sofisticada. O vídeo mostra como a operação do perceptron pode ser escrita de forma mais compacta como um produto escalar entre entradas e pesos e um termo de viés. O vídeo então pega essa operação e a repete para vários perceptrons para criar uma rede neural de camada única. O vídeo observa que os pesos de cada perceptron podem ser aprendidos dependendo do conjunto de dados e do problema em questão.

  • 00:25:00 Nesta seção, o palestrante explica como o produto escalar funciona para calcular a saída do perceptron, onde cada perceptron tem seus próprios pesos e vieses exclusivos. Cada elemento no vetor representa a saída do perceptron, que é o produto escalar com um escalar adicionado. A palestra então apresenta um exemplo de brinquedo, pedindo ao público que se volte para o vizinho e discuta a matemática para prever o resultado.

  • 00:30:00 Nesta seção, o palestrante apresenta uma rede neural básica que consiste em uma camada de entrada com duas entradas, uma camada oculta com três nós e uma camada de saída com uma saída. O palestrante demonstra como calcular a saída por multiplicação de matrizes e uma adição final, com a camada intermediária usando uma função de ativação ReLU. O palestrante então explica como compactar a notação de avanço e aborda uma questão sobre a ordem dos pesos. Por fim, o palestrante apresenta brevemente a classificação usando redes neurais.

  • 00:35:00 Nesta seção da palestra, o palestrante fala sobre a interpretação da saída de um modelo de aprendizado profundo. O falante usa o exemplo de classificar um dígito e representar os rótulos como uma representação única. Para restringir a saída do modelo e garantir que a saída do modelo possa ser interpretada como a probabilidade de o modelo pensar que pertence a uma determinada classe, o palestrante introduz a operação softmax bem no final da rede neural. A função softmax assume a exponencial de todos os valores de saída e então normaliza os resultados, garantindo que todos os elementos estejam entre 0 e 1 e somam 1. Essa função garante que o modelo nunca tenha confiança perfeita, a menos que gere infinito negativo para quase cada valor único, daí o meme de que sempre haverá incerteza no aprendizado profundo.

  • 00:40:00 Nesta seção, o palestrante discute a função Softmax, que recebe um vetor de valores e gera um vetor de valores que somam um e são todos maiores que zero. Esta função é usada no final de uma rede neural se quisermos interpretar as saídas da rede como probabilidades para diferentes classes. A palestra também explica que o motivo de adicionar a função de ativação ReLU, que adiciona complexidade à rede, é permitir a modelagem de funções complexas que uma simples multiplicação de matrizes, na ausência de ReLU, pode não capturar. O palestrante também aborda o uso de funções de perda como métricas para avaliar o desempenho do modelo, como o erro médio quadrado. Finalmente, a metáfora de estar em uma colina e querer ir até o fundo enquanto vê apenas um pé ao redor é introduzida para explicar o conceito de otimização de gradiente descendente.

  • 00:45:00 Nesta seção, o palestrante apresenta o conceito de subida de colina na otimização e como ele se aplica ao aprendizado profundo. A rede neural é uma função vetorial e a direção mais íngreme é o gradiente da função vetorial. O palestrante explica que descobrir a direção da subida mais íngreme pode ser feito usando cálculo multivariável, onde tomar o gradiente de qualquer função de múltiplas variáveis em relação às suas entradas fornecerá a direção mais íngreme. No aprendizado profundo, o problema de encontrar os melhores pesos que otimizam a perda mínima é incrivelmente difícil, então o palestrante propõe que apenas inicializemos todos os pesos e vieses com valores aleatórios e demos pequenos passos na direção da descida mais íngreme. Com avaliação contínua, esse processo deve levar à seleção correta de pesos e vieses.

  • 00:50:00 Nesta seção, o palestrante discute como descer a colina em uma função de perda tomando a derivada parcial da função de perda em relação a todos os parâmetros individuais. O palestrante também menciona que a função de perda depende de todos os parâmetros, como pesos e vieses. Para atualizar esses pesos e vieses, toma-se a derivada da função de perda em relação aos parâmetros avaliados em seu valor atual e dá-se um pequeno passo na direção oposta da maior mudança, escalado por uma taxa de aprendizado. A esperança é que, após a atualização, o valor da função de perda diminua significativamente.

  • 00:55:00 Nesta seção, o palestrante explica como escalonar os pesos para diminuir a perda de um exemplo com o objetivo de diminuir a perda de todo o conjunto de dados. O gradiente de cada exemplo de treinamento é obtido e, quando calculado, é a etapa que pode ser executada para resultar na maior redução de perda em todo o conjunto de dados. Para obter mais eficiência computacional, divida-o e observe apenas os pequenos blocos chamados de descida de gradiente em lote. O palestrante detalha o processo de construção de blocos de rede, como funções de ativação e funções de perda, enfatizando que, no final das contas, tudo o que importa é que a função de perda quantifica o quão bem estamos indo. O palestrante também observa que não há uma maneira concreta de definir os melhores valores para todos os pesos e vieses da rede neural, daí o uso desses métodos preguiçosos. Por fim, é fornecida uma explicação da ideia de aprendizado profundo e de como uma grande rede neural gera baixa perda, apesar de sua capacidade de memorizar os dados, conforme mostram os resultados empíricos.

  • 01:00:00 Nesta seção, o palestrante discute o processo de ajuste de hiperparâmetros em uma rede neural para otimizar seu desempenho com um determinado conjunto de dados. Ele reconhece que não há um conjunto fixo de hiperparâmetros que funcionará para todos os conjuntos de dados e, em vez disso, recomenda testar valores diferentes para parâmetros como o número de camadas, funções de ativação, etc. O palestrante teve que correr até o final da palestra e menciona que um questionário será lançado em breve, mas não será muito desafiador e estará disponível em grande escala.
 

CS 198-126: Aula 3 - Introdução ao Deep Learning, Parte 2



CS 198-126: Aula 3 - Introdução ao Deep Learning, Parte 2

Nesta seção da palestra, é explicado o conceito de retropropagação, que é uma maneira mais rápida de obter todas as derivadas parciais necessárias para o algoritmo de descida do gradiente sem realizar operações redundantes. O palestrante também discute como melhorar a descida de gradiente vanilla para otimização de aprendizagem profunda e apresenta momentum, RMSprop e Adam como métodos de otimização. A importância de acompanhar o histórico de treinamento de um modelo, o uso de normalização em lote e o ensemble como uma técnica para melhorar o desempenho do modelo também são discutidos, bem como as técnicas comumente usadas em aprendizado profundo para ajudar a diminuir o overfitting, como dropout e pular conexões. Por fim, o palestrante aborda brevemente a facilidade de uso do PyTorch e abre espaço para perguntas.

  • 00:00:00 Nesta seção da palestra, o palestrante faz alguns anúncios rápidos sobre o próximo prazo para a tarefa de codificação e o primeiro questionário. A primeira tarefa é uma chance para os alunos aprenderem as ferramentas necessárias para o restante do curso, e o questionário serve como uma verificação de compreensão. O palestrante descreve os tópicos que serão abordados na palestra, incluindo retropropagação e ferramentas modernas de aprendizado profundo, e garante aos alunos que, se eles não entenderem os detalhes matemáticos da retropropagação, tudo bem, desde que entendam a ideia de alto nível. . A segunda metade da palestra é importante, abrangendo as ferramentas que fazem o aprendizado profundo moderno funcionar bem.

  • 00:05:00 Nesta seção da palestra, é discutido o conceito de criar um gráfico computacional para funções e usar a regra da cadeia para calcular derivadas parciais. O gráfico computacional permite o cálculo eficiente de derivadas em relação a nós individuais. Este conceito é então aplicado à retropropagação em um exemplo de rede neural de brinquedo, onde a regra da cadeia é usada para calcular as derivadas parciais da perda em relação a cada parâmetro de peso e viés. Ao multiplicar todas as derivadas parciais ao longo do caminho de cada parâmetro para o nó de perda, a computação redundante pode ser evitada.

  • 00:10:00 Nesta seção, o conceito de retropropagação é explicado, que é uma maneira mais rápida de obter todas as derivadas parciais necessárias para o algoritmo de descida de gradiente sem executar operações redundantes. À medida que a profundidade da rede aumenta, muitos cálculos se tornam repetidos e redundantes, tornando-os inadequados para o treinamento de redes profundas. A retropropagação funciona armazenando valores em cache durante a passagem para frente e reutilizando-os durante a passagem para trás ao calcular derivadas parciais. No entanto, como as derivadas parciais agora envolvem matrizes e matrizes, o armazenamento em cache se torna mais crítico porque economiza operações de multiplicação, que normalmente são mais caras. O vídeo explica que podemos usar ferramentas como pyTorch para armazenar em cache automaticamente os valores necessários para nós.

  • 00:15:00 Nesta seção, o palestrante discute como melhorar a descida de gradiente vanilla para otimização de aprendizado profundo. Um problema com a descida do gradiente vanilla é que ele se esforça em mínimos locais ou pontos planos onde o gradiente é zero, impedindo que o algoritmo encontre soluções melhores. Para resolver isso, o palestrante introduz o conceito de momento, inspirado em uma bola rolando ladeira abaixo. Ao pegar a média ponderada de gradientes anteriores e adicioná-la ao gradiente atual, o momento pode ajudar a ultrapassar pequenos mínimos locais e pontos planos. Embora tecnicamente não seja uma verdadeira descida de gradiente, o momento pode permitir que o algoritmo supere esses obstáculos e, com sorte, encontre soluções melhores. O palestrante também discute como dimensionar a média ponderada de gradientes anteriores para não encolher muito o gradiente atual.

  • 00:20:00 Nesta seção, o conceito de momento na descida do gradiente é discutido. A palestra explica que os betas são usados para controlar os tamanhos dos passos de forma que os tamanhos dos passos não se tornem muito grandes e inconsistentes. A palestra explica o impulso como uma forma de manter os tamanhos dos degraus iguais ao rolar ladeira abaixo, mas também para ser usado para continuar a se mover na direção que o gradiente aponta historicamente. A palestra então apresenta o método de otimização de prop RMS, que armazena uma média ponderada dos componentes quadrados dos gradientes anteriores.

  • 00:25:00 Nesta seção, o instrutor explica o conceito de RMSprop, que é uma forma de gradiente descendente, e como ele funciona em comparação com os métodos tradicionais. Ele explica que o RMSprop divide os gradientes pela raiz quadrada das médias móveis quadradas dos gradientes, o que ele demonstra usando exemplos de gradientes pequenos e grandes. Ao fazer isso, o algoritmo é capaz de ajustar de forma adaptativa a taxa de aprendizado, conhecida como taxa de aprendizado adaptativo. Ele finalmente conclui que Adam é a melhor forma de descida de gradiente, pois tem os benefícios do RMSprop e dos métodos tradicionais.

  • 00:30:00 Nesta seção, o palestrante apresenta Adam, uma combinação de RMSProp e momentum, como o método de otimização preferido para descida de gradiente em modelos de aprendizado profundo. Adam permite os benefícios de ser capaz de evitar mínimos locais com impulso, ao mesmo tempo em que considera problemas com pontos planos que exigem reforço através deles. Não altera a direção do gradiente, mas apenas a escala dele. A palestra sugere o ponto de verificação do modelo como uma forma de combater qualquer comportamento errático que possa surgir com Adam ou RMSProp após atingirem um mínimo local. Os métodos de otimização de segunda ordem também podem ser usados, mas exigem mais poder de computação e são menos comuns.

  • 00:35:00 Nesta seção, o instrutor explica a importância de acompanhar o histórico de treinamento de um modelo e como ele está se saindo em novos dados que não viu antes para determinar efetivamente qual ponto de verificação é o melhor. Uma técnica de normalização chamada normalização em lote também é discutida, que envolve subtrair a média e dividir pelo desvio padrão para cada ativação única em uma rede neural e, em seguida, permitir que a rede redimensione esses valores conforme achar adequado, multiplicando cada peso por um valor gama e adicionando o viés. Essa técnica ajuda a normalizar os dados e cria superfícies perdidas de aparência regular que são muito mais fáceis de enviar com a descida do gradiente, tornando a vida muito mais fácil.

  • 00:40:00 Nesta seção, aprendemos sobre a normalização em lote, que é um método usado para normalizar as ativações dos neurônios de uma rede neural calculando a média e o desvio padrão das saídas de uma determinada camada. Essa normalização faz com que o comportamento padrão da rede neural tenha ativações normalizadas, tornando-as bem comportadas. Embora esse método não adicione expressividade ao modelo, ele permite gradientes melhores e uma faixa de valores mais normalizada como entradas em todas as camadas da rede. Além disso, aprendemos sobre agrupamento como uma técnica usada para melhorar o desempenho do modelo treinando vários modelos e calculando a média de suas previsões.

  • 00:45:00 Nesta seção, a palestra discute duas técnicas comumente usadas em aprendizado profundo para ajudar a diminuir o overfitting: abandono e salto de conexões. O dropout envolve a remoção aleatória de um certo número de neurônios antes do treinamento para forçar cada neurônio a aprender como usar todos os recursos que vieram antes dele, forçando-o a aprender a mesma saída que os outros neurônios. Em contraste, as conexões de salto permitem o aprendizado de uma função de identidade que ajuda a propagar informações sem adicionar ruído ou confusão; envolve aprender zeros para todos os pesos, o que trivialmente permite que boas informações sejam passadas para a última camada classificar corretamente. Ambas as técnicas, juntamente com outras discutidas nesta palestra, ajudam a aumentar o desempenho diminuindo o overfitting e permitindo redes arbitrariamente profundas.

  • 00:50:00 Nesta seção, o palestrante explica como pular conexões pode ser uma ferramenta útil na construção de redes neurais. Essas conexões podem ser adicionadas para aumentar o desempenho, tornando sua rede melhor. O palestrante não teve tempo de discutir o PyTorch completamente, mas está explicado no dever de casa. Eles explicam que o PyTorch pode ser muito fácil de usar se você já souber como usar o numpy. Eles podem criar funções que recebem um valor e o retornam, tornando possível calcular o valor do gradiente em uma determinada entrada. O palestrante finaliza abrindo a palavra para perguntas.
 

CS 198-126: Aula 4 - Introdução ao pré-treinamento e aprimoramentos



CS 198-126: Aula 4 - Introdução ao pré-treinamento e aprimoramentos

Nesta palestra, o palestrante explica a evolução da extração de recursos no aprendizado de máquina, as vantagens do aprendizado profundo e como o aprendizado de transferência pode ser usado para melhorar a precisão e a velocidade dos modelos. Eles também discutem o conceito de congelamento e ajuste fino de camadas em redes neurais e a importância de incorporações na redução da dimensionalidade de variáveis categóricas. A palestra apresenta o aprendizado auto-supervisionado e suas diferentes tarefas, incluindo quebra-cabeças, rotação e tarefas de previsão de palavras mascaradas, que podem ser usadas para pré-treinar modelos e transferir representações aprendidas para tarefas posteriores. Por fim, é discutido o interesse renovado no aprendizado auto-supervisionado em visão computacional, e a palestra incentiva os alunos a fazerem a lição de casa no notebook Crush.

  • 00:05:00 Nesta seção da palestra, o autor discute a aprendizagem por representação e a aprendizagem superficial. Com o aprendizado superficial, o pipeline de aprendizado de máquina começa com uma entrada X, os recursos são extraídos dele usando um extrator de recursos e, em seguida, os recursos extraídos são passados para um algoritmo de aprendizado de máquina para obter uma saída Y. O facilitador explica que a extração de recursos depende nos dados e pode ser
    direto para dados tabulares, mas complexo para dados como texto, áudio ou imagens. No entanto, para imagens, existem extratores de recursos especializados disponíveis na visão computacional clássica.

  • 00:10:00 Nesta seção, o palestrante explica o conceito de extração de recursos e como ele evoluiu no aprendizado de máquina. No aprendizado de máquina clássico, um extrator de recursos programado manualmente, como o Hog, que captura informações de borda em uma imagem, é usado para criar modelos. No entanto, esse processo é desafiador, pois os extratores de recursos variam para diferentes tarefas. O aprendizado profundo fornece um processo de ponta a ponta, aprendendo tanto a extração de recursos quanto a previsão de saída. O palestrante explica que esse processo permite o aprendizado de representações abstratas dos dados de entrada, que são passadas por camadas de extratores de características aprendidas em uma rede neural, resultando em representações hierárquicas. A palestra fornece um exemplo de como redes neurais profundas aprendem representações de imagens de carros.

  • 00:15:00 Nesta seção, o palestrante explica como a profundidade nas redes neurais ajuda a refinar as representações. As primeiras camadas da rede detectam detalhes de baixo nível, como bordas, enquanto as camadas posteriores se concentram em recursos mais concretos, como portas ou janelas em uma imagem. As camadas finais estão tentando determinar se a imagem de entrada é realmente o que o modelo aprendeu a reconhecer, criando um modelo mental abstrato. Os palestrantes discutem o aprendizado por transferência como uma forma de alavancar modelos pré-treinados e evitar a necessidade de treinar modelos do zero, o que pode ser caro em termos de tempo, computação e dados.

  • 00:20:00 Nesta seção, o palestrante discute o conceito de camadas em redes neurais e como o pré-treinamento e o aprendizado por transferência podem ser usados para melhorar a precisão e a velocidade dos modelos. O palestrante explica como as camadas anteriores capturam recursos gerais, como formas e padrões, enquanto as camadas posteriores capturam recursos mais abstratos, como objetos e humanos. O conceito de congelamento, no qual certas camadas são preservadas e usadas em modelos subsequentes, também é discutido como uma forma de customizar modelos para tarefas específicas. A técnica de congelamento pode acelerar o treinamento do modelo e melhorar a precisão, mas deve-se tomar cuidado para garantir que as camadas sejam congeladas no nível apropriado.

  • 00:25:00 Nesta seção, o instrutor discute o aprendizado de transferência em redes neurais, especificamente a técnica de ajuste fino em que o modelo pré-treinado é treinado posteriormente em camadas de saída e camadas não congeladas. Eles enfatizam a importância de considerar o tamanho e a semelhança do novo conjunto de dados com o conjunto de dados original ao decidir congelar ou ajustar o modelo pré-treinado. Além disso, eles explicam a importância das incorporações em redes neurais e como elas podem reduzir a dimensionalidade de variáveis categóricas, tornando-as mais fáceis de representar em um espaço de transformação. O uso de embeddings é ilustrado por meio de um exemplo envolvendo o mapeamento de gêneros de livros para um espaço vetorial de dimensão inferior.

  • 00:30:00 Nesta seção da palestra, o professor fala sobre dados de alta dimensão e as dificuldades que surgem ao tentar representá-los. O professor apresenta o conceito de espaço latente de dimensão inferior, que envolve a codificação de todas as informações importantes que representam os dados de alta dimensão em um espaço de dimensão inferior. O objetivo é capturar essas informações por meio de algo chamado espaço latente de recursos e, em muitos casos, pode ser obtido por meio de embeddings. O professor dá um exemplo de como uma estrutura unidimensional pode ser representada usando apenas uma variável em vez de três variáveis em um espaço 3D para que os dados não fiquem esparsamente espalhados em um espaço de alta dimensão. Por fim, o professor explica como aprender embeddings treinando um modelo para classificar imagens no conjunto de dados MNIST usando a função de perda softmax e obter a saída de algumas camadas do modelo como uma representação da imagem.

  • 00:35:00 Nesta seção, o palestrante discute as vantagens de redes pré-treinadas e aprendizagem por transferência, que podem economizar tempo e poder computacional enquanto alcançam melhores resultados. Redes pré-treinadas podem ser treinadas em conjuntos de dados maiores, o que pode levar a melhores representações. O aprendizado por transferência permite a aplicação do conhecimento aprendido de uma rede pré-treinada para outra tarefa, tornando-o especialmente útil no processamento de linguagem natural. O pré-treinamento auto-supervisionado é então introduzido, o que permite aprender sem supervisão de rótulos, aprendendo com dados brutos.

  • 00:40:00 Nesta seção, o palestrante discute o aprendizado não supervisionado, que é um tipo de aprendizado em que nenhum rótulo é fornecido, mas o modelo ainda aprende padrões e relacionamentos dentro do conjunto de dados. Exemplos de aprendizado não supervisionado incluem análise de componentes principais (PCA) e agrupamento. O palestrante então fala sobre o aprendizado autossupervisionado, que envolve o fornecimento de supervisão a partir dos próprios dados, e não de rótulos externos. A técnica envolve a previsão de partes ocultas ou propriedades dos dados das partes observadas. O aprendizado autossupervisionado é benéfico em situações em que os dados rotulados são escassos ou caros para coletar.

  • 00:45:00 Nesta seção da palestra, o palestrante discute o aprendizado auto-supervisionado e as diferentes tarefas envolvidas, como a tarefa de pretexto e a tarefa a jusante. Essas tarefas podem ser usadas em vários domínios, como visão computacional, NLP e RL. O palestrante então dá exemplos de tarefas de aprendizagem auto-supervisionadas, como a tarefa do quebra-cabeça, em que uma imagem é dividida em nove patches, embaralhada e o modelo é solicitado a prever a ordem original. Outra tarefa é a tarefa de rotação, em que uma imagem é girada em algum ângulo e o modelo é solicitado a prever o ângulo de rotação. Essas tarefas podem ser usadas para pré-treinar modelos e transferir as representações aprendidas para tarefas posteriores, como classificação de imagens e detecção de objetos.

  • 00:50:00 Nesta seção da palestra, é apresentado o conceito de modelos de pré-treinamento usando aprendizado auto-supervisionado (SSL). Um exemplo de SSL em visão computacional é treinar um modelo para prever o ângulo de rotação de uma imagem e focar na orientação, localização, pose e tipo do objeto, em vez de detalhes de baixo nível. Essa ideia não se restringe ao CV, pois o SSL também pode ser aplicado ao NLP e ao áudio, como prever uma ou várias palavras de frases. Um modelo famoso em PNL chamado BERT usa um modelo Transformer para prever palavras mascaradas de duas sentenças simultaneamente e aprende uma incorporação no nível da palavra e no nível da sentença. BERT foi um enorme sucesso em PNL.

  • 00:55:00 Nesta seção da palestra, o palestrante discute o interesse renovado na aprendizagem auto-supervisionada (SSL) em visão computacional (CV) após o sucesso do BERT no processamento de linguagem natural (NLP). O atual estado da arte em CV é semelhante ao BERT. A palestra fornece uma visão geral do aprendizado de representação, aprendizado de transferência e SSL, e apresenta diferentes conceitos e metodologias. Embora esta palestra não tenha lição de casa, há uma lição de casa para todo o cluster no notebook Crush que deve ser entregue na próxima terça-feira, e uma palestra futura sobre SSL avançado para CV terá uma lição de casa. O conjunto de slides pode ser acessado no site para revisão.
 

CS 198-126: Aula 5 - Introdução à Visão Computacional



CS 198-126: Aula 5 - Introdução à Visão Computacional

Esta palestra sobre visão computacional aborda vários tópicos, incluindo a história da visão computacional e seu desenvolvimento ao longo dos anos. O instrutor também explica o aprendizado profundo e como ele melhora os métodos clássicos de visão computacional. A palestra aprofunda o conceito de convoluções e como elas são usadas como extratores de recursos em visão computacional, levando à criação de redes neurais convolucionais (CNNs). Além disso, a palestra discute o papel dos campos receptivos e apresenta camadas de agrupamento como um método para aumentar o campo receptivo das CNNs. No geral, a palestra fornece uma visão geral da visão computacional como um campo e as técnicas usadas para extrair informações de imagens. Na segunda parte da palestra, são discutidas várias técnicas para preservar o tamanho de uma imagem durante as convoluções, incluindo preenchimento e mesmo preenchimento. O conceito de stride em camadas convolucionais também é abordado, demonstrando como ele pode imitar o efeito de uma camada de agrupamento. A anatomia de uma CNN e seus hiperparâmetros, incluindo tamanho do kernel, passo, preenchimento e camadas de pooling, são explicadas, com ênfase em como uma camada convolucional atua como um extrator de recursos que passa blocos de recursos de baixa dimensão para um totalmente conectado rede para classificação. As palestras também cobrem a arquitetura de rede LeNet para classificar dígitos manuscritos e a importância de normalizar dados de imagem antes de passá-los por uma rede neural. Finalmente, o aumento de dados é discutido como uma técnica para criar dados de treinamento adicionais, e a importância do ponto de verificação do modelo durante o treinamento é enfatizada.

  • 00:00:00 Nesta seção, o instrutor apresenta a visão computacional como um campo da IA que lida com a extração de informações de uma imagem em um nível semântico. Eles descrevem classificação, detecção e segmentação como tarefas que um modelo de aprendizado de máquina pode executar. Para permitir que uma máquina entenda uma imagem e execute essas tarefas, ela deve ter um entendimento de nível superior do conteúdo da imagem, portanto, os modelos são projetados para extrair recursos como arestas para classificar imagens. O instrutor explica que o campo da visão computacional tem suas raízes na ciência cognitiva e na psicologia, com desenvolvimentos em extratores de recursos como o porco provenientes de um experimento realizado em gatos em 1959.

  • 00:05:00 Nesta seção da palestra, o instrutor discute como o aprendizado profundo substituiu os métodos clássicos de visão computacional, em que os extratores de recursos eram programados manualmente. O aprendizado profundo permite que os modelos aprendam não apenas os mapeamentos de recursos para saídas, mas também os próprios extratores de recursos, e esse avanço ocorreu em 2012 com a rede neural de Alex Krajevski. O instrutor fala sobre o desafio de reconhecimento visual do ImageNet e como o AlexNet reduziu drasticamente a taxa de erro, tornando-se um ponto de virada para o aprendizado profundo. A palestra então discute como as imagens são representadas digitalmente como matrizes e o uso de valores de brilho para representar imagens em tons de cinza.

  • 00:10:00 Nesta seção da palestra, o instrutor discute o conceito de dimensões e canais de cores em imagens. Cada pixel colorido pode ser dividido em três valores diferentes, o que significa que uma imagem RGB pode ser representada por três matrizes para cada componente. Essas matrizes podem ser empilhadas umas sobre as outras para formar uma matriz 3D chamada tensor. O instrutor observa que este é um conceito importante para a compreensão das redes neurais convolucionais (CNNs), porque redes neurais regulares ou perceptrons multicamadas não são úteis para processar imagens grandes devido à necessidade de converter o tensor 3D em um vetor, resultando em uma enorme número de elementos.

  • 00:15:00 Nesta seção, o palestrante discute o número de parâmetros para uma camada totalmente conectada em visão computacional. A camada recebe uma entrada de 120.000 dimensões e gera um vetor de 10 dimensões, o que significa que a matriz de peso precisa ter dimensões de 10 por 120.000, resultando em 1,2 milhão de pesos e 10 parâmetros do vetor de viés. Esse número de parâmetros tornaria a rede muito grande e difícil de treinar, especialmente se uma saída de dimensão superior for desejada. Além disso, tratar cada pixel como um recurso separado não é ortodoxo na classificação de imagens, pois os humanos tendem a dividir as imagens em diferentes partes e usar essas informações para construir um modelo mental. O palestrante sugere olhar para regiões locais da imagem em vez de pixels individuais para dar mais sentido aos dados.

  • 00:20:00 Nesta seção, o palestrante discute a importância de observar os pixels vizinhos em uma imagem para coletar informações e como isso representa um desafio para as redes neurais, que normalmente tratam cada pixel separadamente. Ele introduz o conceito de regiões locais, que é relevante para a visão computacional e se preocupa com a estrutura de uma imagem. A palestra também fala sobre a necessidade de extrair representações hierárquicas de uma entrada e como essas representações dependem umas das outras, permitindo que o modelo aprenda conceitos abstratos como a aparência de um rosto. Por fim, a palestra explica o conceito de equivalência translacional, onde as representações de uma imagem devem ser traduzidas junto com seus pixels para manter a consistência.

  • 00:25:00 Nesta seção, o conceito de invariância translacional e processamento de região local é discutido em visão computacional. A arquitetura de rede tradicional não pode acomodar esses requisitos, levando os pesquisadores a desenvolver redes neurais convolucionais (CNNs). A operação de convolução envolvida em CNNs é explicada usando um filtro de peso que pode deslizar sobre uma imagem e calcular produtos de ponto para criar novas saídas. A técnica de compartilhamento de peso também é introduzida, onde cada patch é passado por uma camada com os mesmos pesos e bias para produzir a mesma representação, tornando as CNNs capazes de satisfazer os critérios estabelecidos para a visão computacional.

  • 00:30:00 Nesta seção da palestra, o palestrante explica o processo de convoluções, que envolve pegar um produto elementar de um filtro em um patch de entrada e somar os resultados. Esse processo permite que os algoritmos de visão computacional se concentrem em patches únicos da imagem de entrada, em vez de na imagem inteira, e usem o mesmo filtro para cada patch, compartilhando pesos. Ao projetar estrategicamente os filtros, os algoritmos podem extrair diferentes tipos de informações, como a detecção de bordas. O alto-falante fornece um exemplo de filtro projetado para detectar bordas verticais, destacando as altas ativações no meio da saída convoluída, com baixas ativações nas bordas.

  • 00:35:00 Nesta seção da palestra, o instrutor explica o conceito de convoluções na visão computacional e como elas são usadas como extratores de recursos. As Redes Neurais Convolucionais (CNNs) usam filtros que podem extrair diferentes recursos de uma imagem, e esses filtros podem ser aprendidos por meio do processo de aprendizado profundo. Ao usar mais filtros, as CNNs podem extrair diferentes tipos de recursos de uma imagem de entrada e usar informações sobre todos eles. O instrutor também discute como generalizar o processo de convolução para uma imagem de entrada com vários canais e a saída desse processo é chamada de mapa de ativação, que representa a ativação de diferentes recursos.

  • 00:40:00 Nesta seção, o palestrante discute o conceito de representação de imagens em formato RGB e como o mapa de ativação pode ter uma estrutura 3D. O processo envolve extrair diferentes recursos e congregá-los para obter uma saída 3D. Essa operação de convolução é geral e pode ser aplicada a qualquer entrada 3D, o que permite empilhar camadas convolucionais umas sobre as outras, levando a redes neurais profundas. Além disso, o palestrante entra em detalhes de implementação sobre o conceito de campo receptivo, que não se limita apenas a redes neurais convolucionais.

  • 00:45:00 Nesta seção, o conceito de campos receptivos em mapas de ativação é discutido. O campo receptivo refere-se à região da entrada que influencia cada elemento de um mapa de ativação. Esta seção explica como os campos receptivos funcionam e como o aumento do tamanho do campo receptivo pode afetar o desempenho da rede. Também é observado que os campos receptivos podem ser influenciados por diferentes filtros convolucionais e que ter um campo receptivo excessivamente grande ou pequeno pode levar à perda de informações importantes na entrada.

  • 00:50:00 campo receptivo, nesta seção da palestra, o professor explica como o tamanho do campo receptivo afeta a capacidade de uma rede neural convolucional (CNN) de classificar uma imagem. Ter um campo receptivo pequeno pode fazer com que a rede não consiga processar informações suficientes para a tarefa de classificação da imagem, enquanto um campo receptivo grande pode levar ao overfitting. A palestra também aborda a importância da introdução de não linearidades por meio do uso de funções de ativação em uma CNN. O professor explica que, embora duas convoluções diferentes possam ter o mesmo campo receptivo, suas saídas não serão as mesmas devido à introdução de não linearidades por meio de funções de ativação.

  • 00:55:00 Nesta seção, o palestrante apresenta o agrupamento de camadas como um método para aumentar o campo receptivo de redes neurais convolucionais sem adicionar muitas camadas que possam tornar o modelo muito grande. O agrupamento de camadas envolve a observação de regiões quadradas de entradas e a aplicação de operações máximas ou médias. Por exemplo, um agrupamento máximo de dois por dois permite que o modelo escolha apenas um valor de cada bloco de quatro pixels, reduzindo assim as dimensões da entrada em dois. O palestrante também explica como o max pooling preserva informações cruciais de uma área local, tornando-o comum na redução das dimensões espaciais de ativação.
  • 01:00:00 Nesta seção, o palestrante discute diferentes técnicas para preservar a altura e a largura de uma imagem durante as convoluções, incluindo o processo de preenchimento e mesmo preenchimento. O mesmo preenchimento ocorre quando você aumenta artificialmente o tamanho da entrada envolvendo-a com zeros ou outras constantes para manter as dimensões espaciais do mapa de ativação. Essa é uma preferência na comunidade de aprendizado profundo, mas não há evidências empíricas de que isso leve a um melhor desempenho em relação ao preenchimento regular. Além disso, o palestrante discute o conceito de passo em convoluções e como ele pode ter o mesmo efeito que uma camada de agrupamento.

  • 01:05:00 Nesta seção, o palestrante discute o uso de stride em camadas convolucionais que podem atuar como uma aproximação a uma camada de pooling em visão computacional. Ele explica que usar um passo maior do que um é semelhante a combinar convolução e agrupar camadas, mas não oferece nenhuma vantagem particular em fazê-lo. Ele também apresenta uma fórmula para determinar as dimensões da ativação de saída, que dependem de fatores como as dimensões originais de entrada, tamanho do filtro, tamanho do preenchimento e passos. O palestrante explica como a retropropagação de gradientes pode ser feita por meio de camadas convolucionais, enfatizando que o PyTorch facilita a definição de camadas convolucionais usando vários parâmetros.

  • 01:10:00 Nesta seção, o palestrante discute os hiperparâmetros das camadas convolucionais e como eles compõem a anatomia de uma CNN. Esses hiperparâmetros incluem o tamanho do kernel, passo, preenchimento e camadas de agrupamento. O palestrante explica que uma camada convolucional pode ser vista como um extrator de recursos que converte entradas de alta dimensão em blocos de recursos de baixa dimensão que podem ser passados para uma rede totalmente conectada para uma tarefa de classificação. A saída da camada convolucional no final é um bloco de características de baixa dimensão, que pode ser passado para o MLP dentro da caixa vermelha, que é o classificador. Por fim, o palestrante explica que existem diferentes tipos de camadas de agrupamento, mas a norma na comunidade de Deep Learning é usar o agrupamento máximo em vez do agrupamento médio.

  • 01:15:00 Nesta seção, o vídeo explica a estrutura de uma Rede Neural Convolucional (CNN) usando um exemplo da vida real. A rede, chamada LeNet, foi desenvolvida por Jan Lacun para classificar dígitos manuscritos. O vídeo explica que a rede LeNet pega uma entrada e a transforma em mapas de recursos, puxa esses mapas para tamanhos menores, aplica outra convolução e agrupa até obter uma representação menor da entrada, antes de passá-la por camadas totalmente conectadas para obter uma saída representando um dos dez dígitos possíveis. O vídeo continua explicando as opções de design para arquiteturas CNN, como empilhamento de convolução, ReLU e camadas de pooling, e o uso de camadas de normalização em lote para tornar o treinamento mais estável. Por fim, o vídeo discute alguns dos conjuntos de dados comumente usados em visão computacional, como o conjunto de dados de classificação de dígitos manuscritos MNIST e o conjunto de dados CIFAR-10.

  • 01:20:00 Nesta seção da palestra, o instrutor discute vários conjuntos de dados populares de visão computacional, incluindo MNIST, CIFAR-10 e ImageNet. O conjunto de dados ImageNet, em particular, é um conjunto de dados de um milhão de imagens que tem sido amplamente utilizado como referência para avaliar algoritmos de visão computacional. O instrutor também enfatiza a importância de normalizar os dados da imagem antes de passá-los para uma rede neural e o desafio de coletar e rotular dados, o que requer consideração cuidadosa para garantir que os dados venham de uma distribuição semelhante. Além disso, mais dados podem ajudar a evitar o overfitting, mas a coleta de grandes conjuntos de dados pode ser cara e demorada.

  • 01:25:00 Nesta seção, a palestra aborda o tópico de aumento de dados, onde é possível criar artificialmente mais dados a partir de uma única imagem, fazendo pequenas alterações em seu brilho, contraste, cor, corte, inversão ou rotação da imagem e atribuição a eles o mesmo rótulo para criar novos conjuntos de dados de treinamento. Este método é uma maneira muito barata e fácil de criar novos dados a partir de conjuntos de dados pré-existentes. Além disso, a palestra também enfatiza a importância do ponto de verificação do modelo durante o treinamento de redes neurais de convolução, pois o tempo de treinamento geralmente leva de horas a dias ou até semanas, e a perda de progresso devido a uma interrupção repentina, como travamento da máquina ou desligamento acidental, pode custar caro. É essencial armazenar instantâneos de taxa de modelo em diferentes pontos do processo de treinamento para continuar a partir do instantâneo mais recente se o treinamento for interrompido.
 

CS 198-126: Aula 6 - Arquiteturas avançadas de visão computacional



CS 198-126: Aula 6 - Arquiteturas avançadas de visão computacional

Esta palestra sobre arquiteturas avançadas de visão computacional se concentra em redes neurais convolucionais (CNNs) e suas várias técnicas. O palestrante explica a arquitetura de AlexNet e VGG antes de se aprofundar em técnicas avançadas, como resíduos, para manter valores residuais anteriores para maior precisão e arquiteturas mais simples. O uso de gargalos e convoluções um a um são discutidos, bem como a importância de aprender a identidade em arquiteturas de visão computacional. A palestra também aborda as questões de desaparecimento de gradientes em redes neurais e como isso pode ser aliviado com normalização em lote e redes residuais. Técnicas como agrupamento de média global e convolução separável em profundidade são explicadas em profundidade, seguidas de discussão sobre a arquitetura de rede móvel e seus benefícios.

Além disso, o palestrante examina arquiteturas avançadas de visão computacional e se concentra na otimização de modelos de rede neural convolucional usando convoluções locais passo a passo e convoluções uma a uma. Ele enfatiza a importância de entender essas otimizações e os problemas que podem surgir com certas otimizações na construção de redes futuras com eficiência. A palestra termina com uma discussão sobre a compensação entre precisão, desempenho e tamanho do modelo, destacada pela comparação do modelo de rede eficiente com outras redes. Os alunos são informados sobre um próximo questionário e uma tarefa de casa para entrega na sexta-feira seguinte.

  • 00:05:00 Nesta seção, o palestrante começa recapitulando a palestra anterior antes de se aprofundar em arquiteturas de CNN mais avançadas. Eles pedem desculpas pela introdução grosseira na última palestra e fazem algumas edições de última hora antes de começar. Há uma breve conversa sobre um microfone, mas então o orador pula para a palestra.

  • 00:10:00 Nesta seção, o palestrante analisa a arquitetura de uma rede neural convolucional (CNN) e como ela difere de uma rede neural densa padrão. O palestrante esclarece que a camada convolucional em uma CNN é semelhante a uma camada em uma rede neural densa, com parâmetros aprendidos como filtros e termos de viés. O palestrante explica como um filtro gera um mapa de saída para cada local na entrada e vários filtros geram diferentes canais de saída. O palestrante também explica como uma camada de agrupamento pode ser usada para diminuir o tamanho do volume de saída. No geral, o palestrante enfatiza que a mecânica de uma CNN é semelhante a uma rede neural densa, com convoluções substituindo a multiplicação de matrizes.

  • 00:15:00 Nesta seção, o palestrante explica o uso de pooling máximo em redes neurais convolucionais para reduzir o tamanho do volume do recurso e acelerar as convoluções. Essa técnica envolve pegar o valor máximo em cada pequeno quadrado do volume do recurso e usá-lo como saída. O palestrante também aborda o conceito de segmentação, que envolve rotular cada pixel de uma imagem com uma classificação específica, e destaca que, para essa tarefa, o tamanho da saída será igual ao tamanho da entrada. A seção termina com uma breve introdução às arquiteturas avançadas de CNN, com foco na ResNet como a mais importante a ser retirada da palestra.

  • 00:20:00 Nesta seção, o palestrante discute várias arquiteturas de visão computacional, com foco em redes neurais convolucionais (CNNs). A palestra começa discutindo a motivação por trás das CNNs, que envolve o empilhamento de camadas convolucionais e o agrupamento de camadas para sintetizar informações de recursos de baixo nível e trabalhar até recursos superiores. A palestra então discute a arquitetura do AlexNet, que foi um feito inovador que alcançou uma taxa de erro de cerca de 17% no ImageNet em 2012. No entanto, o palestrante observa que essas arquiteturas não são mais de ponta, pois houve avanços nas arquiteturas de transformadores que serão discutidos em palestras posteriores.

  • 00:25:00 Nesta seção, o palestrante discute a arquitetura de AlexNet e VGG, duas redes neurais de visão computacional amplamente utilizadas. AlexNet envolve cinco camadas convolucionais, com a saída final sendo um vetor unidimensional achatado passado por três camadas densas e uma função softmax para produzir uma classe prevista. Por outro lado, o VGG possui 23 camadas convolucionais e três camadas densas. Além disso, o palestrante destaca o uso de convoluções um a um como forma de preenchimento e adição e redução de dimensionalidade.

  • 00:30:00 Nesta seção, o palestrante discute arquiteturas avançadas de visão computacional, com foco em redes neurais convolucionais (CNNs). A palestra enfatiza o uso de convoluções um por um para manter o tamanho da entrada, bem como a combinação de convoluções em profundidade e em ponto para aumentar a eficiência computacional. A palestra também destaca a importância de aprender recursos de baixo nível nos estágios anteriores do classificador e descreve os problemas com o empilhamento cego de camadas. Para abordar essas questões, a palestra explica o uso de resíduos para manter os valores residuais anteriores, levando a uma maior precisão e arquiteturas mais simples.

  • 00:35:00 Nesta seção, a palestra discute o conceito de resíduos em redes neurais convolucionais profundas. Embora adicionar mais camadas não diminua a precisão porque a transformação de identidade pode ser aprendida, na prática, adicionar mais camadas afeta as identidades anteriores da pós-transformação, resultando em gradientes desaparecendo, gradientes explosivos e gradientes fragmentados. Os resíduos abordam esse problema mantendo as informações dos estágios anteriores na computação futura, facilitando o aprendizado da transformação de identidade. A palestra também discute gargalos no processamento de resíduos, onde a adição de resíduos aumentará o tempo de convergência, mas não necessariamente os resultados. Uma solução para isso é ajustar o tamanho e a frequência do gargalo.

  • 00:40:00 Nesta seção da palestra, o palestrante discute a importância de poder aprender a identidade em arquiteturas de visão computacional. Eles explicam que se os pesos e vieses de uma rede forem todos zero, a rede produzirá exatamente a mesma coisa que recebe, tornando mais fácil para a rede reconhecer quando possui informações suficientes para fazer uma boa classificação e parar de aprender. características mais complicadas. O palestrante também aborda a questão da escolha do número de camadas em uma rede, sendo duas uma escolha comum na arquitetura ResNet.

  • 00:45:00 Nesta seção da palestra, o apresentador discute a questão do desaparecimento de gradientes em redes neurais e como isso pode afetar as atualizações de peso. O problema do gradiente de fuga ocorre quando as derivadas parciais de etapas individuais se tornam muito pequenas em uma cadeia de multiplicação ou muito grandes, o que pode causar problemas com a atualização consistente dos pesos. A apresentação também fala sobre como a normalização de lotes e as redes residuais ajudam a aliviar o problema de desaparecimento do gradiente. A palestra então passa a discutir o agrupamento de média global, que é usado para substituir camadas totalmente conectadas em Redes Neurais Convolucionais (CNNs) e gerar mapas de recursos para cada categoria em tarefas de classificação.

  • 00:50:00 Nesta seção da palestra, o palestrante discute como o uso de camadas densas em redes neurais geralmente resulta em overfitting e redução no desempenho. Para evitar isso, eles sugerem o uso do agrupamento de média global (GAP), que gera mapas de recursos, calcula a média deles e os alimenta em uma função softmax sem ajustar nenhum parâmetro. O palestrante também apresenta o conceito de convoluções separáveis em profundidade, que usam mapas de recursos de dimensão inferior em cada canal separadamente antes de combiná-los de forma inteligente para reduzir a computação e reter dados de cada canal. Essa técnica é particularmente importante para dimensionar cálculos em uma ampla gama de filtros em redes neurais profundas.

  • 00:55:00 Nesta seção da palestra, o palestrante discute a arquitetura de rede móvel, que usa profundidade e convolução pontual para reduzir o número de cálculos necessários para uma imagem. Ao aplicar uma camada um por um por três a cada canal da imagem e, em seguida, concatenar os resultados e aplicar uma convolução pontual menor a ela, a saída é alcançada, reduzindo significativamente o número de cálculos. A arquitetura de rede móvel tem menos parâmetros e converge mais rápido enquanto combina a precisão do Inception of D3. O palestrante também discute redes compactadas e emocionantes, nas quais você pode compactar e expandir mapas de recursos usando camadas densas e redimensionamento, que é menos intensivo computacionalmente.

  • 01:00:00 Nesta seção, o palestrante discute como usar convoluções locais de passo e convoluções uma a uma para otimizar um modelo de rede neural convolucional (CNN). Ele também menciona como entender as otimizações e os problemas enfrentados por certas otimizações pode ajudar a construir redes futuras com mais eficiência. A palestra termina com uma comparação da precisão, desempenho e tamanho do modelo de rede eficiente com outras redes, destacando que sempre há uma compensação entre essas métricas.
 

CS 198-126: Aula 7 - Detecção de objetos



CS 198-126: Aula 7 - Detecção de objetos

A palestra discute a detecção de objetos, especificamente adicionando localização a uma CNN de classificação simples, o método IOU para detecção de objetos, o sistema R-CNN e otimizando algoritmos de detecção de objetos para minimizar o tempo de processamento com YOLO. O vídeo explica o YOLO cortando uma imagem e discute os desafios da detecção de objetos YOLO, incluindo o uso de caixas de ancoragem para eliminar a ambiguidade. Por fim, é explorada a arquitetura YOLO, que é uma rede neural totalmente convolucional para detecção de objetos, e o armazenamento de um grande número de classes para classificação é apresentado como uma questão de pesquisa em andamento. O palestrante recomenda a leitura de "The Yellow Paper" enquanto desaconselha o RCNN devido à ilegibilidade.

  • 00:00:00 Nesta seção, o palestrante discute o processo de adição de localização a uma CNN de classificação simples para detecção de pontos de referência. Ao adicionar uma saída X e Y à rede, a rede gera a localização exata de um recurso específico em uma imagem, como o nariz do animal. O palestrante explica como expandir essa rede adicionando mais saídas para criar uma caixa delimitadora para o gato como um todo. O palestrante também explora diferentes ideias de expansão de rede para criar uma caixa delimitadora e o processo de treinamento da rede nessa tarefa expandida.

  • 00:05:00 Nesta seção, o palestrante discute o método IOU (intersection over Union) para detecção de objetos. Essa abordagem visa maximizar a sobreposição entre a caixa delimitadora prevista e a caixa delimitadora real, calculando a área de interseção e dividindo-a pela área da União. O palestrante explica que quanto mais próximo esse valor estiver de 1, melhor será a detecção. Além disso, o palestrante aborda os desafios de detectar vários objetos na mesma imagem, mencionando a solução básica de usar uma busca exaustiva ou janelas deslizantes. No entanto, esta abordagem tem problemas significativos, incluindo ineficiência e exigindo muito poder de processamento.

  • 00:10:00 Nesta seção, o palestrante discute a solução proposta para a questão das baixas proporções na detecção de objetos, que é o sistema chamado R-CNN. Sua ideia básica é adivinhar as caixas delimitadoras prováveis e executar a classificação nelas usando algoritmos clássicos de aprendizado sem máquina para segmentar uma imagem e propor várias caixas delimitadoras para objetos. Essa abordagem funciona porque as bordas de uma imagem provavelmente são os limites de uma caixa delimitadora. O algoritmo também usa supressão não máxima para remover a redundância causada pela classificação potencial do mesmo objeto várias vezes. No entanto, esse sistema ainda é lento porque a maioria das imagens possui milhares de regiões de segmentação diferentes, dependendo de como o algoritmo clássico é definido.

  • 00:15:00 Nesta seção, o palestrante explica como otimizar os algoritmos de detecção de objetos para minimizar o tempo de processamento. Uma maneira é criar um mapa de recursos que extraia as principais informações da imagem e, em seguida, realizar a classificação apenas na seção do mapa de recursos necessária para cada detecção de objeto, eliminando a necessidade de executar novamente a rede neural convolucional completa a cada vez. O palestrante então apresenta o YOLO, um algoritmo de detecção de objetos que utiliza uma única rede neural convolucional para gerar a localização e caixas delimitadoras de vários objetos em uma imagem. A arquitetura do YOLO consiste em camadas convolucionais e uma camada de classificação, permitindo um tempo de processamento mais rápido e detecção de vários objetos ao mesmo tempo.

  • 00:20:00 Nesta seção, o vídeo explica como o YOLO (You Only Look Once) funciona dividindo uma imagem em uma grade, com cada grade representando um vetor de classificação ou caixa delimitadora. Isso teoricamente significa que o número de objetos que podem ser classificados é igual ao número de grades na imagem. YOLO também usa largura e altura XY, com a coordenada XY sendo o ponto médio da caixa delimitadora e a largura e altura sendo o tamanho da caixa. O vídeo continua explicando a supressão não máxima, um processo que elimina sobreposições e escolhe a melhor caixa delimitadora com a maior confiança para cada plotagem de classificação.

  • 00:25:00 Nesta seção, aprendemos sobre os desafios da detecção de objetos YOLO, incluindo a questão de vários objetos serem centralizados na mesma célula e como gerar várias classificações e caixas delimitadoras em uma célula. A solução para isso é usar caixas âncora, onde caixas delimitadoras genéricas são definidas antes da classificação e o conjunto de dados é classificado com base na semelhança com essas caixas âncora. Isso permite uma maneira determinística de determinar qual objeto deve ser classificado em qual vetor e elimina a ambiguidade de caixas delimitadoras duplicadas.

  • 00:30:00 Nesta seção, a arquitetura YOLO é discutida, que é uma rede neural totalmente convolucional para detecção de objetos. A rede YOLO executa uma passagem sobre a imagem e é simples em design, eliminando componentes clássicos, como janelas deslizantes. Ao utilizar caixas de ancoragem e outras técnicas, o YOLO é capaz de igualar a precisão do RCNN enquanto melhora drasticamente sua velocidade. Adicionalmente, é explorado o conceito de caixas âncora, que são formas geométricas que correspondem a objetos em uma imagem. É um desafio detectar objetos com caixas de ancoragem que têm a mesma forma e tamanho e estão sobrepostos. No entanto, existem algoritmos que podem encontrar caixas de ancoragem matematicamente ótimas para separar esses objetos. Por fim, a discussão aborda o armazenamento de um grande número de classes para classificação, que ainda é uma questão de classificação atualmente explorada por pesquisadores.

  • 00:35:00 Nesta seção, o palestrante recomenda um artigo técnico chamado "The Yellow Paper" para os interessados em ler sobre detecção de objetos. Por outro lado, o palestrante desaconselha a leitura de RCNN devido à sua ilegibilidade. O palestrante convida o público a fazer qualquer pergunta antes de encerrar a palestra.
 

CS 198-126: Aula 8 - Segmentação Semântica



CS 198-126: Aula 8 - Segmentação Semântica

A palestra discute segmentação de imagem, incluindo segmentação semântica e segmentação de instância. O principal objetivo da segmentação é detectar todos os objetos em uma imagem e separá-los. O palestrante explica como uma rede neural convolucional (CNN) pode ser usada para segmentação semântica e como o downsampling pode ajudar com imagens de alta resolução computacionalmente caras. Diferentes abordagens para transformar um pequeno volume de volta em um tamanho de imagem também são discutidas. A palestra apresenta o U-Net, um modelo de segmentação semântica que combina melhorias anteriores com conexões de salto e explica como ele pode ser expandido para segmentação de instância usando a abordagem Mask R-CNN. Um modelo de segmentação semântica pré-treinado é demonstrado e o palestrante fala sobre o pré-treinamento e as próximas atribuições do curso.

  • 00:00:00 Nesta seção, a palestra aborda a segmentação de imagem, especificamente segmentação semântica e segmentação de instância. A segmentação semântica envolve encontrar os pixels específicos onde um objeto está presente na imagem, enquanto a segmentação de instância identifica onde cada instância de cada classe está na imagem. O objetivo final da segmentação é detectar todos os objetos em uma imagem e separá-los. Essa técnica é útil porque os humanos percebem os objetos por meio de uma combinação de componentes individuais, e ser capaz de identificar e classificar esses componentes de forma mais específica é essencial. A segmentação oferece aplicações úteis, como detecção de objetos e identificação de relacionamentos de objetos.

  • 00:05:00 Nesta seção, o palestrante discute o conceito de segmentação e como abordá-lo. A ideia é criar segmentos conectados agrupando com base em algum tipo de critério de similaridade. A abordagem clássica para isso era definir uma função para agrupar pixels com base em sua similaridade em alguma métrica, como intensidade. No entanto, o palestrante menciona novas abordagens de aprendizado profundo, como janelas deslizantes, que podem aprender a realizar a segmentação em vez de usar um algoritmo fixo.

  • 00:10:00 Nesta seção, o palestrante explica como uma rede neural convolucional (CNN) pode ser usada para segmentação semântica. Em vez de executar a abordagem de janela deslizante CNN várias vezes, uma operação convolucional pode ser usada. Isso permite os efeitos desejados sem a ineficiência de recalcular recursos compartilhados. A camada convolucional pode ser executada como um filtro sobre a imagem, e a camada de saída será mapeada individualmente com a imagem original, independentemente do tamanho. O preenchimento também pode ser usado para lidar com casos em que o tamanho da entrada é menor que o tamanho do filtro.

  • 00:15:00 Nesta seção, o palestrante discute a questão do downsampling de imagens grandes para tornar a segmentação semântica mais viável, já que o processamento de imagens em resolução total pode ser computacionalmente caro. A solução é diminuir gradualmente a resolução da imagem a cada camada de convolução e remover informações redundantes, criando um volume menor para trabalhar. Essa imagem reduzida é então aumentada no final para criar um mapa de segmentação da imagem original, com cada pixel segmentado em uma classe específica com base na saída de classificação máxima. A palestra também discute brevemente diferentes abordagens para preenchimento e tratamento das bordas das imagens.

  • 00:20:00 Nesta seção, o instrutor discute diferentes abordagens para transformar um pequeno volume, como um mapa de segmentação, de volta em uma imagem do tamanho da imagem de entrada original. A abordagem clássica envolve ampliar a imagem e usar funções de interpolação, como vizinho mais próximo ou interpolação linear para preencher o espaço extra. No entanto, essa abordagem pode levar a alguma perda de detalhes. O instrutor sugere uma abordagem aprendida que utiliza a deconvolução, que envolve a passagem da camada de entrada sobre a camada de saída e a remoção de pixels da imagem de entrada original, um por um. O instrutor fornece uma breve revisão das convoluções e explica como a deconvolução funciona invertendo as posições das camadas de entrada e saída.

  • 00:25:00 Nesta seção, o palestrante desenha um exemplo de uma imagem de entrada simples e explica um método de decomposição que envolve olhar para cada pixel da imagem de entrada e usar um filtro para projetá-lo na imagem de saída. O palestrante observa uma limitação desse método, pois ele pode sobrescrever valores que já foram escritos. Para resolver isso, o palestrante apresenta uma abordagem incremental envolvendo convoluções convolucionais para reduzir a resolução da imagem de entrada em uma representação de baixa resolução e, em seguida, usar convoluções D para aumentar a resolução de volta ao seu tamanho original. O palestrante observa que esse método é benéfico porque a amostragem ascendente é aprendida em vez de apenas um algoritmo clássico, que permite mais adaptabilidade e refinamento de formas.

  • 00:30:00 Nesta seção, aprendemos sobre o U-Net, um modelo de segmentação semântica que combina melhorias anteriores com conexões de salto. As conexões de salto permitem extrair informações de diferentes níveis do caminho de redução de amostragem durante a amostragem. Existem também diferentes variações do U-Net, como modelos de família plana profunda e modelos baseados em transformadores como o Sendformer. A U-Net também pode ser expandida para resolver o problema de segmentação de instâncias usando a abordagem Mask R-CNN, que prevê a localização de objetos dentro do valor identificado.

  • 00:35:00 Nesta seção, o palestrante discute a segmentação de instância completa usando Mask R-CNN, que é útil para carros autônomos detectando os contornos de objetos como carros, pedestres ou mochilas. O palestrante explica como a caixa delimitadora potencial é compactada em uma imagem de tamanho fixo e classificada. Os rótulos dos objetos são coletados por meio de uma variedade de métodos, como fazer com que humanos o façam ou empregar métodos assistivos. A matriz é aprendida da mesma forma que um filtro e, ao descomissionar uma imagem, o palestrante explica que é uma projeção em que o filtro é multiplicado por cada valor de pixel correspondente e, em seguida, iterado sobre a imagem, que na verdade não está invertendo uma convolução .

  • 00:40:00 Nesta seção, o professor e um aluno demonstram um modelo de segmentação semântica pré-treinado que foi treinado no Cloud GPU. O modelo é executado em uma imagem do Japão e os resultados mostram que o modelo pode detectar vários objetos com precisão variável. O aluno também menciona que um limite de pontuação pode ser aplicado ao modelo para filtrar informações com pontuações de baixa precisão. No geral, a demonstração serve como um exemplo de como a segmentação semântica pode ser aplicada a imagens do mundo real.

  • 00:45:00 Nesta seção, o palestrante fala sobre pré-treinamento e como o modelo pode ser pré-treinado na AWS e outros serviços transferidos. Eles também mencionam uma atribuição de residência obrigatória e uma unidade opcional recomendada que envolve segmentação. As datas de entrega e os links estão no site do curso e incentivam os alunos a comparecerem ao horário de expediente em caso de dúvidas. No geral, esta seção forneceu algumas informações logísticas sobre o curso e as próximas tarefas.
 

CS 198-126: Aula 9 - Autoencoders, VAEs, Modelagem Generativa



CS 198-126: Aula 9 - Autoencoders, VAEs, Modelagem Generativa

Nesta palestra, é apresentado o conceito de modelagem generativa, que envolve o uso de aprendizado de máquina para criar novas imagens com base em um conjunto de dados. Autoencoders, um tipo de rede neural usada para aprendizado de recursos, são explicados, com foco em sua estrutura e como eles podem aprender recursos de dados de entrada por meio de compressão e reconstrução. A palestra também abrange autoencoders variacionais e seus benefícios, bem como o uso de espaços latentes estruturados em autoencoders para interpolar entre imagens. A importância da quantização vetorial para trabalhar com dados discretos é discutida e a função de perda para um autoencoder variacional é explicada, o que inclui uma perda de reconstrução e uma perda de compromisso para impedir a codificação permanente dos dados de entrada. A palestra termina com uma recapitulação dos tópicos abordados.

  • 00:00:00 Nesta seção, a palestra apresenta o tópico de modelagem generativa, que envolve o uso de aprendizado de máquina para gerar novas imagens com base em um conjunto de dados. No entanto, pode ser um problema difícil para as máquinas entender o que distingue objetos diferentes, como gatos, uns dos outros. A palestra apresenta o conceito de autoencoders e como eles podem ser usados para compactar e descompactar imagens, conforme visto no exemplo de compactação JPEG. A palestra também aborda o tópico de autoencoders variacionais, que será discutido na próxima palestra.

  • 00:05:00 Nesta seção, o palestrante discute a compactação de imagem e como ela depende da compreensão dos dados em algum nível. A compactação pode economizar espaço e reduzir o número de bits necessários para enviar uma imagem por uma rede. O algoritmo JPEG funciona descartando algumas das informações de frequência mais alta e as relações pixel a pixel que não são cruciais para a percepção humana. O palestrante então sugere que para tipos específicos de imagens, como imagens de gatos, esquemas de compressão mais avançados podem ser desenvolvidos com conhecimento mais profundo de como a imagem é estruturada além de apenas correlações de pixel. No geral, os algoritmos de compactação destacam a importância de entender os dados no aprendizado de máquina.

  • 00:10:00 Nesta seção, o palestrante discute o conceito de autoencoders, um tipo de rede neural usada para aprendizado de recursos que usa uma estrutura codificador-decodificador para compactar os dados de entrada e posteriormente reconstruí-los. Ele o compara a técnicas anteriores, como autoenfaces que usavam PCA para extração de recursos, e mostra a estrutura de uma rede de autoencoder. A parte do codificador reduz os dados de entrada em uma camada de gargalo, enquanto a parte do decodificador os reconstrói de volta à sua forma original. O objetivo é minimizar a diferença entre os dados originais e reconstruídos. O palestrante questiona por que uma rede que produz a mesma saída como entrada seria útil e explica que a chave está nos recursos aprendidos dos dados que podem ser usados para outras tarefas.

  • 00:15:00 Nesta seção da palestra, o instrutor explica o conceito de camada de gargalo em autoencoders e como ela força a rede a compactar os dados de entrada, aprendendo, portanto, algumas características dos dados. Ele também discute as limitações dessa estrutura de rede e as propriedades desejáveis do código, como seu pequeno tamanho e a semelhança de códigos para imagens semelhantes. O instrutor apresenta o conceito de autoencoders variacionais que se baseiam nos autoencoders, mas fornecem propriedades mágicas que permitem resultados sensatos quando diferentes operações são aplicadas aos vetores latentes. Ele então discute a estrutura generativa para geração de imagem e texto que envolve a amostragem do vetor latente contendo as informações da imagem ou texto a ser gerado.

  • 00:20:00 Nesta seção da palestra, o palestrante discute o uso de vetores latentes como forma de representar traços ou "genes" em um conjunto de dados de faces. O vetor latente atua como uma espécie de distribuição de probabilidade sobre possíveis conjuntos de genes para um indivíduo, e a estrutura facial é uma função dos genes nesse conjunto. O codificador pega uma imagem de entrada e produz um vetor latente, e o decodificador pega esse vetor latente e produz uma estimativa da imagem original. Para impor estrutura ao espaço latente, são usadas codificações probabilísticas.

  • 00:25:00 Nesta seção da palestra, o palestrante explica o uso de distribuições de probabilidade no mapeamento de entradas para uma região de possíveis saídas, a fim de forçar vetores próximos no espaço latente a serem decodificados em imagens semelhantes. Esse conceito é importante em autoencoders variacionais (VAEs), que usam uma distribuição gaussiana para gerar os parâmetros de um círculo no espaço latente do qual um código é amostrado. A perda VAE inclui um termo de reconstrução e um termo que força a saída do codificador a se parecer com uma distribuição normal, impedindo-o de aprender apenas um ponto para a saída e, em vez disso, encorajando grandes conjuntos que devem ser codificados para o mesmo ponto. O palestrante observa os objetivos contrastantes nessa perda, em que o autoencoder prefere mapear cada entrada para um único ponto, mas o termo adicional força os pontos a ficarem próximos ao centro do plano e ter alguma variação, resultando em discos em vez de pontos individuais.

  • 00:30:00 Nesta seção da palestra, o palestrante discute os benefícios do uso de espaços latentes estruturados em autoencoders. Ao reforçar a estrutura no espaço latente, os autoencoders podem efetivamente interpolar entre as imagens, o que é mostrado em uma demonstração online popular onde os usuários podem deslizar um controle deslizante entre dois rostos de celebridades e ver o controle deslizante interpolar entre os dois rostos de maneira sensata. O palestrante explica que isso é possível usando um autoencoder variacional, que força os vetores latentes a viverem juntos no mesmo espaço e decodifica pontos próximos de vetores próximos. O palestrante observa que, embora os detalhes de treinamento de autoencoders variacionais possam ser complicados devido à amostragem envolvida, a abordagem é arbitrária e pode ser modificada para atender a vários aplicativos.

  • 00:35:00 Nesta seção da palestra, o palestrante discute como o uso de tokens discretos é necessário para determinados campos, como processamento de linguagem natural (NLP), pois é difícil definir o que significa alterar uma palavra por um determinado percentagem. Como resultado, ele discute o uso da quantização vetorial como um hack para estender autoencoders variacionais (VAEs) para trabalhar com tokens discretos. Na quantização vetorial, um livro de códigos de tokens válidos é usado para arredondar quaisquer vetores de saída do VAE para o token mais próximo, permitindo uma melhor representação de dados discretos. No entanto, a seleção do livro de códigos continua sendo um desafio.

  • 00:40:00 Nesta seção, o palestrante discute a função de perda para um Variational Autoencoder (VAE), que é usado para aprender as localizações das palavras de código que correspondem a diferentes clusters dentro de uma distribuição de dados. A função de perda inclui uma perda de reconstrução, que garante que a saída do decodificador seja semelhante à entrada, e uma perda de compromisso, que garante que os vetores de saída do codificador estejam próximos das palavras de código que representam os centros desses clusters. Para evitar que a rede codifique os dados de entrada, o codificador produz várias palavras de código para cada entrada, o que resulta em um conjunto maior de palavras de código e permite que a rede gere uma diversidade maior de saídas.

  • 00:45:00 Nesta seção do vídeo, o apresentador discute um método para gerar novas imagens com VQ-VAE, amostrando algum C de uma distribuição normal e passando-o pelo decodificador, o que resulta em uma nova imagem que não foi visto antes. Além disso, o apresentador explica que a amostragem uniforme dos elementos do livro de código pode não ser eficaz porque algumas palavras de código são mais comuns de usar do que outras na verdadeira distribuição de dados. Portanto, aprender o anterior sobre as palavras de código pode ser útil na geração de novos dados. Por fim, o apresentador fornece uma recapitulação da palestra, começando com autoencoders, passando para autoencoders variacionais e terminando com autoencoders variacionais quantizados por vetor.