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

 

CS480/680 Aula 15: Redes neurais profundas



CS480/680 Aula 15: Redes neurais profundas

Este vídeo aborda os fundamentos do aprendizado profundo, incluindo os conceitos de redes neurais profundas, o problema do gradiente de fuga e a evolução das redes neurais profundas em tarefas de reconhecimento de imagem. O palestrante explica como as redes neurais profundas podem ser usadas para representar funções de forma mais sucinta e como elas calculam recursos que se tornam cada vez mais de nível superior à medida que a rede se torna mais profunda. São abordadas soluções para o problema do gradiente de fuga, incluindo o uso de unidades lineares retificadas (ReLU) e normalização em lote. A palestra também aborda unidades de máximo e suas vantagens como uma generalização de ReLUs que permite várias partes lineares.

A palestra sobre redes neurais profundas discute dois problemas que requerem resolução para um aprendizado profundo eficaz: a questão do overfitting devido à expressividade da rede de múltiplas camadas e a exigência de alto poder computacional para treinar redes complexas. O palestrante propõe soluções como regularização e abandono durante o treinamento, bem como computação paralela durante a computação. A palestra também detalha como o dropout pode ser usado durante o teste, dimensionando a entrada e as magnitudes das unidades ocultas. Por fim, a palestra termina apresentando algumas aplicações inovadoras de redes neurais profundas em reconhecimento de fala, reconhecimento de imagem e tradução automática.

  • 00:00:00 Nesta seção, aprendemos sobre os fundamentos do aprendizado profundo, especificamente o que é uma rede neural profunda e como ela difere de uma rede neural comum. Descobrimos que o termo "aprendizagem profunda" é usado principalmente para fins de marketing, já que o conceito de redes neurais com muitas camadas ocultas foi proposto pela primeira vez na década de 1980. No entanto, a vantagem de usar redes neurais profundas é que elas tendem a ser altamente expressivas, permitindo que se ajustem bem aos dados. O desafio está em treiná-los de forma eficaz, e é aí que entra o "grande e evanescente problema".

  • 00:05:00 Nesta seção, o palestrante discute as questões de treinamento de grandes redes neurais e o problema de overfitting devido ao alto número de pesos e parâmetros. Os pesquisadores costumavam se inclinar para redes neurais de camada oculta única porque podiam aproximar qualquer função com unidades ocultas suficientes. No entanto, as redes neurais de múltiplas camadas ocultas têm a vantagem de diminuir o tamanho geral da rede, que pode ser reduzido exponencialmente, conforme demonstrado por um exemplo da função de paridade. O palestrante mostra uma arquitetura de rede neural que codifica a função de paridade, onde a camada oculta é um perceptron de limite que codifica a função lógica "e", enquanto a unidade de saída é uma função lógica "ou".

  • 00:10:00 Nesta seção, o palestrante explica como uma rede neural pode ser configurada para detectar se o número de entradas ativadas é ímpar ou par. Cada unidade oculta na rede totalmente conectada é responsável por verificar um padrão específico em que as entradas são ímpares e a unidade de saída é apenas o OU das unidades ocultas. Existem 8 padrões com 4 entradas ímpares e cada unidade oculta é responsável por um desses padrões. No entanto, o palestrante observa que, em geral, ter n entradas resultará em muitas unidades ocultas exponencialmente, tornando essa abordagem não escalável e sugerindo uma abordagem alternativa.

  • 00:15:00 Nesta seção, o palestrante fala sobre o conceito de redes neurais profundas, que envolvem múltiplas camadas e podem ser usadas para representar funções de forma mais sucinta. A palestra fornece um exemplo de função, a função de paridade, que só pode ser representada por uma rede exponencialmente maior com apenas uma camada oculta ou uma rede de tamanho linear com várias camadas ocultas. O palestrante discute como redes neurais profundas podem ser usadas na prática para tarefas de visão computacional, como reconhecimento facial, onde entradas (como intensidades de pixel) são alimentadas na rede e valores intermediários são calculados para produzir uma classificação na saída.

  • 00:20:00 Nesta seção, o vídeo discute como as redes neurais profundas calculam recursos que são simples no início da rede e se tornam progressivamente de nível superior à medida que nos aprofundamos. Na visão computacional, antes do aprendizado profundo, os profissionais projetavam manualmente os recursos para suas tarefas. No entanto, o aprendizado profundo permite que os recursos sejam aprendidos como parte da rede, possibilitando o trabalho com dados brutos. Esse avanço foi iniciado por Geoff Hinton em 2006, que projetou a primeira rede neural profunda eficaz.

  • 00:25:00 Nesta seção, a história das redes neurais profundas e seus avanços no reconhecimento de fala e classificação de imagens são discutidos. O primeiro avanço ocorreu em 2009, quando Geoff Hinton desenvolveu uma maneira de treinar redes neurais profundas camada por camada usando máquinas Boltzmann restritas, levando a uma melhoria significativa nos benchmarks de reconhecimento de fala. As redes neurais recorrentes substituíram as máquinas restritas de Boltzmann por volta de 2013, levando a resultados ainda melhores. O segundo avanço ocorreu na classificação de imagens quando o ImageNet Large Scale Visual Recognition Challenge foi proposto em 2010. Apesar de anos de pesquisa, os computadores não conseguiam classificar imagens com precisão entre 1.000 categorias. No entanto, em 2012, os algoritmos de aprendizado profundo reduziram a taxa de erro de 26% para 15% e, em 2016, a Microsoft alcançou uma taxa de erro de 3,1%, superando o desempenho humano.

  • 00:30:00 Nesta seção, o palestrante discute a história e evolução das redes neurais profundas, particularmente em tarefas de reconhecimento de imagem. A taxa de erro para tarefas de classificação de imagens foi significativamente reduzida em 2012 com a introdução de uma rede neural convolucional chamada AlexNet pelo grupo de Jeff Hinton. Isso levou ao entendimento de que as redes neurais podem alcançar resultados notáveis, e arquiteturas mais sofisticadas foram projetadas para melhorar ainda mais a taxa de erro. Com o tempo, a profundidade das redes aumentou e houve uma clara tendência para redes mais profundas. A capacidade de aplicar e usar redes neurais profundas para tarefas de reconhecimento de imagem foi resultado de várias inovações, incluindo melhores técnicas de treinamento e prevenção de overfitting.

  • 00:35:00 Nesta seção, é abordado o problema de desaparecimento de gradientes em redes neurais profundas, que ocorre quando as derivadas parciais de pesos associados a arestas em camadas anteriores são menores em magnitude, resultando em valores desprezíveis à medida que a rede se aprofunda. Isso tornou difícil para os pesquisadores treinar redes neurais com várias camadas porque as camadas inferiores não estavam sendo treinadas, portanto, não fornecendo uma saída significativa para melhorar as previsões da rede. Isso se deveu em parte às funções de ativação utilizadas, como uma função sigmóide ou uma função tangente hiperbólica cujo gradiente era sempre menor que 1, dificultando a otimização dos pesos e o ajuste do cálculo inicial.

  • 00:40:00 Nesta seção, o palestrante explica o problema do desaparecimento do gradiente em uma rede neural profunda. Ele cria uma rede neural de brinquedo com uma unidade de ativação sigmóide e mostra como o gradiente consiste em derivadas parciais que são produtos de fatores, cada fator sendo a derivada parcial do sigmóide ou um peso. Como as derivadas parciais do sigmóide são sempre menores que um e os pesos são inicializados para magnitudes menores que um, a multiplicação desses fatores tende a tornar as derivadas parciais cada vez menores. Isso resulta em pesos tendo cada vez menos impacto à medida que voltamos para as camadas, dando origem ao problema de desaparecimento do gradiente. O palestrante apresenta algumas soluções comuns, como pré-treinamento, diferentes funções de ativação, conexões de salto e normalização de lote, e se concentra em unidades lineares retificadas e unidades máximas como soluções possíveis.

  • 00:45:00 Nesta seção, o palestrante discute soluções para o problema de desaparecimento de gradientes que surgem devido a funções de ativação problemáticas. Uma possível solução é usar funções de ativação que tenham derivadas maiores que zero, como a unidade linear retificada (ReLU), que retorna uma combinação linear de entradas ou zero. Outra solução é a normalização em lote, que garante que os dados estejam efetivamente em uma faixa em que o gradiente tende a ser próximo a um. Essas soluções permitem alguns caminhos com gradientes de fuga, desde que caminhos suficientes tenham gradientes de um, o que propaga o gradiente pela rede neural.

  • 00:50:00 Nesta seção, o palestrante discute unidades lineares retificadas (ReLUs) e suas vantagens e desvantagens. Os ReLUs foram inicialmente criticados por terem uma descontinuidade em zero, o que causa problemas com a computação de gradientes usando gradiente descendente. No entanto, esta questão não é significativa na prática, uma vez que os valores numéricos raramente são exatamente zero. Em contraste, a função de perda suave, que se aproxima de ReLUs, é suave e contínua, mas seu gradiente é menor que um em todos os lugares. Portanto, tornar os ReLUs suaves não ajuda a eliminar o problema de desaparecimento do gradiente. Apesar dos ReLUs terem uma parte que poderia ter sido ignorada, eles ainda são úteis porque existem entradas para as quais cada unidade produzirá algo na parte linear.

  • 00:55:00 Nesta seção, o palestrante discute as vantagens das unidades lineares retificadas (ReLUs) e apresenta o conceito de unidades max-out. Ele explica que os ReLUs se tornaram populares porque nos casos em que o gradiente não desaparece, eles podem ser treinados mais rapidamente, exigindo menos descida do gradiente. O palestrante então apresenta as unidades de saída máxima como uma generalização de ReLUs que permite várias partes lineares, em vez de apenas uma parte zero e uma parte linear, e demonstra como elas são construídas tomando o máximo de diferentes combinações lineares. A forma de uma unidade máxima mostra ter múltiplas combinações lineares, cada uma correspondendo a uma linha, e se torna uma agregação de uma camada oculta de unidades de identidade com uma unidade máxima.

  • 01:00:00 Nesta seção da palestra, o professor discute dois problemas que precisam ser resolvidos para que o aprendizado profundo seja eficaz. O primeiro problema é a questão do overfitting, que surge devido à alta expressividade das redes de múltiplas camadas. A regularização é uma solução que envolve minimizar a magnitude dos pesos para mantê-los pequenos e restritos. Outra solução é o dropout, onde algumas unidades de rede são descartadas aleatoriamente durante o treinamento para forçar a rede a ser robusta e evitar o overfitting. O segundo problema é a necessidade de alto poder computacional para treinar redes complexas, o que pode ser alcançado por meio de computação paralela usando GPUs ou computação distribuída.

  • 01:05:00 Nesta seção, o palestrante discute o uso de dropout durante o tempo de teste para redes neurais profundas. Durante o treinamento, o dropout é uma técnica em que algumas das unidades de entrada ou ocultas são descartadas aleatoriamente da rede para evitar o overfitting. No entanto, durante o teste, toda a rede é utilizada, o que pode fazer com que as magnitudes das combinações lineares sejam maiores. Para resolver este problema, as unidades de entrada são redimensionadas multiplicando-as por 1 menos a probabilidade de descartá-las, e o mesmo é feito para as unidades ocultas. O palestrante fornece um exemplo de uma rede totalmente conectada com três entradas, quatro unidades ocultas e uma saída e explica o uso de um gerador de números aleatórios para descartar algumas das unidades de entrada e ocultas durante o treinamento.

  • 01:10:00 Nesta seção, o instrutor discute o que acontece se todas as entradas ou unidades ocultas forem removidas em uma rede neural e como a regularização de abandono pode resolver esse problema. Embora seja improvável que todas as unidades sejam removidas, isso pode afetar a precisão se forem. A regularização de abandono ajuda a evitar o overfitting e força a rede a se tornar robusta em relação aos recursos descartados. O algoritmo para regularização de dropout envolve a amostragem de variáveis de Bernoulli para criar uma rede mutilada onde algumas unidades são descartadas e multiplicar as magnitudes das unidades restantes por 1 menos a probabilidade de serem descartadas. Durante o treinamento, o gradiente é calculado em relação à rede mutilada.

  • 01:15:00 Nesta seção, o apresentador discute a técnica de dropout usada em redes neurais profundas para tornar a rede robusta e evitar o overfitting. Dropout é uma forma de aprendizado aproximado e amostral, onde cada iteração computa uma rede mutilada eliminando nós específicos, resultando em uma hipótese ou função que pode codificar o que está sendo aprendido. A rede inteira pode ser pensada como a média de todas as redes mutiladas, com o ajuste do que está sendo computado. Este método é semelhante ao aprendizado bayesiano e provou aproximar alguns cálculos em relação a um processo gaussiano profundo. Isso ajuda a justificar por que o abandono pode funcionar bem na prática. O apresentador conclui apresentando algumas aplicações em que as redes neurais profundas experimentaram avanços, incluindo reconhecimento de fala, reconhecimento de imagem e tradução automática.

  • 01:20:00 Nesta seção, o palestrante descreve o método histórico de última geração para reconhecimento de fala, que era um modelo oculto de Markov que usava uma mistura de gaussianos. No entanto, em 2009, Geoff Hinton e seu grupo de pesquisa propuseram substituir a mistura gaussiana por uma rede neural profunda que usava uma máquina Boltzmann restrita empilhada. Este modelo híbrido entre um modelo probabilístico e uma rede neural profunda levou a uma redução significativa na taxa de erro, observada em vários benchmarks. Devido a esse avanço, várias empresas, incluindo Google e Microsoft, começaram a alavancar redes neurais profundas, levando a um renascimento no campo de aprendizado profundo.

  • 01:25:00 Nesta seção, o palestrante discute os avanços nas redes neurais, começando com o avanço no reconhecimento de imagem ocorrido em 2012. O avanço ocorreu devido ao desenvolvimento de redes neurais convolucionais que recebem matrizes 2D de intensidades de pixel como entrada, têm camadas de convolução que calculam recursos em diferentes granularidades e camadas densas que estão totalmente conectadas. O aumento de dados também foi usado para melhorar o reconhecimento, tornando-o invariante à rotação e outros fatores. O resultado foi uma redução significativa na taxa de erro de 26,2% para 16,4% para o primeiro colocado em uma competição. Embora 16% ainda seja relativamente alto, é difícil classificar as imagens com precisão entre milhares de classes, e as cinco principais precisão de previsão foram medidas em vez da primeira.

  • 01:30:00 Nesta seção, o palestrante discute o desempenho de um algoritmo de rede neural profunda usando uma imagem de uma força como exemplo. O algoritmo retorna cinco classes potenciais e atribui uma pontuação de confiança a cada uma para determinar a probabilidade de ser a classe correta. A rede geralmente tem um bom desempenho, reconhecendo corretamente objetos como um navio porta-contêineres e uma motoneta com alta confiança, mas há casos em que ela classifica incorretamente um objeto.
 

CS480/680 Aula 16: Redes neurais convolucionais



CS480/680 Aula 16: Redes neurais convolucionais

Este vídeo apresenta as redes neurais convolucionais (CNNs) e explica sua importância no processamento de imagens como um tipo específico de rede neural com propriedades importantes. O palestrante discute como a convolução pode ser usada para processamento de imagens, como na detecção de bordas, e como as CNNs podem detectar recursos de maneira semelhante. O conceito de camadas convolucionais e seus parâmetros é explicado, juntamente com o processo de treinamento de CNNs usando backpropagation e gradiente descendente com pesos compartilhados. O palestrante também fornece princípios de design para criar arquiteturas CNN eficazes, como o uso de filtros menores e ativação não linear após cada convolução.

Nesta palestra sobre Redes Neurais Convolucionais (CNNs), o palestrante discute o conceito de conexões residuais como uma solução para o problema do gradiente de fuga enfrentado pelas redes neurais profundas. Essas conexões de salto permitem encurtar os caminhos da rede e ignorar as camadas inúteis enquanto ainda podem usá-las, se necessário, para evitar a produção de saídas próximas de zero. O uso de técnicas de normalização em lote também é introduzido para mitigar o problema de desaparecimento de gradientes. Além disso, o palestrante destaca que as CNNs podem ser aplicadas a dados sequenciais e tensores com mais de duas dimensões, como em sequências de vídeo, e que as CNNs 3D também são uma possibilidade para determinadas aplicações. A estrutura do TensorFlow é destacada por ser projetada para computação com matrizes multidimensionais.

  • 00:00:00 Nesta seção, o apresentador apresenta as redes neurais convolucionais (CNNs) e explica sua importância no processamento de imagens como um tipo específico de rede neural com propriedades importantes. A palestra discute como as CNNs podem ser dimensionadas para lidar com grandes conjuntos de dados e sequências. O apresentador explica que as CNNs recebem o nome da operação matemática de convolução, que modifica duas funções para produzir uma terceira função, com um exemplo de uso da convolução para suavização. As notas de aula também fazem uso de gaussianas como funções de ponderação para a operação de convolução.

  • 00:05:00 Nesta seção, o conceito de convolução em casos contínuos e discretos é discutido, onde a saída, Y, é uma combinação ponderada de X's em uma vizinhança. Quando aplicada a imagens, esta é uma função bidimensional, onde cada pixel é uma medida dessa função em uma coordenada específica nas direções x e y. Os pesos aplicados a cada intensidade de pixel podem produzir uma nova imagem, Y. Como exemplo, uma convolução simples pode ser usada para detecção de borda em uma imagem em tons de cinza para detectar bordas verticais.

  • 00:10:00 Nesta seção, o palestrante discute como as convoluções podem ser usadas para detectar recursos em redes neurais. Uma convolução é essencialmente uma combinação linear de um subconjunto de unidades com base em um padrão específico de pesos, que pode ajudar a detectar recursos como arestas ou outros padrões que podem ser importantes para uma determinada tarefa. O palestrante também explica que um padrão de pesos determina o filtro para detectar uma feição em uma vizinhança, e uma função de ativação não linear amplifica a saída. O gab ou filtros são uma classe popular de filtros que correspondem a mapas de recursos comuns inspirados no funcionamento do córtex visual humano.

  • 00:15:00 Nesta seção, o palestrante explica como funcionam as redes neurais convolucionais. A ideia é detectar pequenas arestas em uma imagem aplicando manchas de pesos que correspondem a uma característica específica, e a magnitude de cada mancha é determinada por sua cor. Esses patches são aplicados a uma imagem alternando entre camadas de convolução e agrupamento. A camada convolucional funciona calculando uma convolução que corresponde a outro vetor usando um filtro de tamanho específico com os mesmos pesos. Os elementos-chave de uma rede neural convolucional são essas camadas de convolução e agrupamento que se alternam para detectar diferentes recursos em uma imagem.

  • 00:20:00 Nesta seção, o conceito de camadas convolucionais em redes neurais é explicado. Camadas convolucionais usam uma janela de tamanho fixo, ou patch, com um conjunto de pesos, ou filtro, aplicado a ela. Esse filtro é reutilizado em cada janela da camada, gerando uma representação muito mais esparsa de conexões entre entradas e saídas em comparação com uma camada totalmente conectada. Em um exemplo 1D, um patch de tamanho 3 por 1 é obtido e um filtro é aplicado a cada janela de entradas. Da mesma forma, em um exemplo 2D, um patch de tamanho 3 por 3 é obtido, com o mesmo conjunto de pesos aplicado em janelas deslizantes para detectar recursos específicos, como bordas. Ao reutilizar o mesmo filtro nas instâncias da janela, as camadas convolucionais permitem um design de rede mais compacto e eficiente.

  • 00:25:00 Nesta seção, o palestrante explica as redes neurais convolucionais e como elas funcionam com sinais de imagem e áudio usando o mesmo conjunto de pesos para cada patch da imagem ou sinal. A rede detecta recursos aplicando um filtro de agrupamento, que calcula uma variância igual local, permitindo que a rede reconheça recursos independentemente de sua localização. Este método pode ser usado para reconhecimento de dígitos, com uma imagem bitmap como entrada e produzindo uma etiqueta de 0 a 9 como saída. O palestrante observa que a retropropagação e a diferenciação automática lidam com os pesos compartilhados, atualizando os pesos para as arestas que têm o mesmo peso.

  • 00:30:00 Nesta seção do vídeo, o palestrante explica como as redes neurais convolucionais (CNNs) funcionam. O primeiro passo é aplicar uma convolução 5x5 à imagem de entrada usando um filtro, que permite detectar características maiores do que filtros menores. Isso produz um mapa de recursos de tamanho 28x28, que pode ser usado para verificar a presença ou ausência de recursos em diferentes locais. Em seguida, uma camada de pool máximo é aplicada para reduzir o tamanho do mapa de recursos para 14x14, obtendo o máximo de cada patch 2x2. Outra convolução é então aplicada usando um filtro 5x5 para detectar recursos de nível superior, o que produz 12 mapas de recursos que passam novamente pelo pooling máximo. A intuição por trás do pooling máximo é que a localização exata de alguns recursos, como olhos ou nariz no reconhecimento facial, pode variar um pouco.

  • 00:35:00 Nesta seção, o palestrante discute a segunda parte de uma rede neural projetada para classificação. A abordagem comum é pegar uma camada totalmente conectada, nivelar os recursos e construir um vetor de nós para calcular as classes com os pesos ajustados por meio de retropropagação. A beleza das redes neurais convolucionais é que os pesos dos filtros convolucionais não são projetados por humanos, mas são inicializados aleatoriamente e atualizados à medida que a rede é treinada, permitindo que a rede aprenda a extrair recursos relevantes. A rede é capaz de otimizar e apresentar recursos que funcionam melhor na prática por meio de uma solução baseada em dados.

  • 00:40:00 Nesta seção, o palestrante discute o conceito de conexões esparsas em redes neurais convolucionais, que se refere ao fato de que os nós possuem apenas algumas conexões em vez de estarem totalmente conectados. Isso permite um número muito menor de pesos e uma computação mais esparsa. O palestrante também explica como parâmetros como número de filtros, tamanho do kernel, passo e preenchimento são especificados na camada convolucional de uma rede neural. Os exemplos fornecidos ajudam a esclarecer melhor como esses parâmetros são usados na definição de camadas convolucionais.

  • 00:45:00 Nesta seção, o palestrante explica como funcionam as redes neurais convolucionais. O palestrante demonstra como uma camada convolucional processa uma imagem de entrada aplicando um kernel a ela. O tamanho do kernel determina o tamanho da saída e o passo determina quanto o kernel se move na entrada. O preenchimento também pode ser usado para manter o tamanho original da entrada. O palestrante fornece exemplos de como diferentes tamanhos de kernel e passos afetam o tamanho de saída da camada convolucional.

  • 00:50:00 Nesta seção, o palestrante discute o processo de treinamento de redes neurais convolucionais (CNNs) usando retropropagação e gradiente descendente, com os pesos sendo compartilhados entre as variáveis. O processo de cálculo da derivada parcial não é diferente se uma variável aparecer várias vezes na função, e algoritmos como Adam e RMSprop podem ser usados para treinamento. Quando se trata de projetar uma arquitetura de rede neural, ela depende do problema e é mais uma arte do que uma ciência. No entanto, algumas regras práticas mostraram bons resultados, como usar uma pilha de pequenos filtros em vez de um único filtro grande para menos parâmetros e uma rede mais profunda.

  • 00:55:00 Nesta seção do vídeo, o instrutor explica uma regra prática para projetar arquiteturas de rede neural convolucional (CNN). Ele sugere que o uso de filtros menores tende a funcionar melhor e produz menos parâmetros em comparação com filtros maiores. Usando uma pilha de filtros menores no lugar de um filtro maior, o campo receptivo permanece o mesmo enquanto reduz o número de parâmetros necessários. Além disso, adicionar ativação não linear após cada convolução pode melhorar o desempenho das CNNs. Esses princípios de design podem ser úteis para criar arquiteturas eficazes para vários aplicativos.

  • 01:00:00 Nesta seção, o uso de camadas residuais em redes neurais convolucionais é discutido. As camadas residuais foram propostas em 2015 como forma de evitar a degradação da qualidade das redes causada pela adição de muitas camadas. A ideia é criar conexões de salto para encurtar os caminhos na rede, reduzindo efetivamente a profundidade e propagando o gradiente de forma mais eficaz. A conexão residual ignora algumas camadas e adiciona a entrada X à saída das camadas ignoradas. Desta forma, se as camadas adicionais não forem úteis, elas podem ser ignoradas sem prejudicar o desempenho da rede.

  • 01:05:00 Nesta seção, o palestrante apresenta o conceito de conexões residuais em redes neurais convolucionais (CNNs) e explica como elas podem resolver o problema de desaparecimento de gradientes. Ao usar conexões de salto, que essencialmente adicionam a função de identidade à saída de uma camada, a rede tem a opção de ignorar certas camadas que não são úteis, enquanto ainda pode usá-las se desejar. Isso evita o problema de camadas produzindo saídas próximas de zero, o que pode resultar na rede ignorar essas camadas completamente. O palestrante também menciona que as conexões de salto não afetam o tamanho do gradiente e sugere o uso da normalização em lote como outra abordagem para mitigar o problema de desaparecimento de gradientes.

  • 01:10:00 Nesta seção do vídeo, o palestrante discute técnicas para lidar com questões como o problema do gradiente de fuga e normalização em redes neurais convolucionais. A normalização de lote é uma heurística comumente usada em que os valores são normalizados de acordo com qualquer lote de dados que esteja sendo usado com uma variação de 1 e centralizado em 0, separadamente para cada dimensão. Além disso, as conexões de salto podem ajudar a propagar gradientes mais rapidamente, pois fornecem caminhos mais curtos para retropropagação. Por fim, o palestrante observa que as redes neurais convolucionais podem ser usadas para mais do que apenas visão computacional, incluindo dados sequenciais e tensores com mais de duas dimensões, como visto em aplicações como sequências de vídeo. A estrutura TensorFlow foi projetada para realizar cálculos com relação a matrizes multidimensionais, em vez de ser restrita a apenas vetores ou matrizes.

  • 01:15:00 Nesta seção, é mencionado que existem redes neurais convolucionais 3D e, embora não sejam tão comuns, existem algumas aplicações em que podem ser usadas.
 

CS480/680 Aula 17: Modelos ocultos de Markov


CS480/680 Aula 17: Modelos ocultos de Markov

A palestra apresenta os Modelos Ocultos de Markov (HMM), um tipo de modelo gráfico probabilístico usado para explorar correlações em dados de sequência que podem melhorar a precisão. As suposições do modelo envolvem um processo estacionário e um processo Markoviano em que um estado oculto depende apenas do estado anterior. As três distribuições no HMM são a distribuição de estado inicial, a distribuição de transição e a distribuição de emissão, com o último tipo usado dependendo do tipo de dados. O algoritmo pode ser usado para monitoramento, previsão, filtragem, suavização e tarefas de explicação mais prováveis. O HMM tem sido usado para reconhecimento de fala e aprendizado de máquina, como prever a sequência mais provável de saídas com base em uma sequência de entradas e estados ocultos para pessoas mais velhas que usam dispositivos de caminhada para correlação de estabilidade. Um experimento envolvendo sensores e câmeras modificados em um andador foi conduzido para reconhecer automaticamente as atividades realizadas por idosos com base na coleta de dados sobre as atividades de idosos em uma casa de repouso. A demonstração em aprendizagem supervisionada e não supervisionada no contexto de reconhecimento de atividades também foi discutida.

A palestra enfoca o uso de distribuições gaussianas de emissão em Hidden Markov Models (HMMs), que é comumente usado em aplicações práticas onde os dados coletados são contínuos. O palestrante explica que esse método envolve calcular os parâmetros de média e variância que correspondem à média e à variância empírica dos dados e usá-los para calcular a solução para as distribuições inicial e de transição. A distribuição de transição corresponde a contagens de frequência relativa, e máxima verossimilhança é usada para obter as soluções. Esta abordagem é semelhante à solução para misturas de gaussianas, onde também são utilizadas uma distribuição inicial e uma distribuição de emissão.

  • 00:00:00 Nesta seção, o palestrante introduz o conceito de Hidden Markov Models (HMM) que são diferentes das redes neurais que foram discutidas até agora. O palestrante explica que o HMM pode ser usado quando os dados vêm de sequências em vez de pontos de dados independentes, e as previsões para um ponto de dados são correlacionadas com as previsões para o próximo ponto de dados. O palestrante fornece o exemplo de reconhecimento de fala em que a predição de um fonema ou palavra é correlacionada com o próximo fonema ou palavra. Explorar essas correlações pode melhorar a precisão das previsões. O palestrante também explica que o HMM pode ser generalizado em uma rede neural recorrente (RNN) que pode lidar com dados de sequência e propagar informações entre diferentes pontos de uma sequência, o que será discutido posteriormente.

  • 00:05:00 Nesta seção da palestra, o palestrante apresenta modelos ocultos de Markov como uma generalização de misturas de gaussianas. Ele explica que os modelos ocultos de Markov exploram correlações em dados sequenciais para aumentar a precisão e são usados para expressar uma distribuição sobre y, que segue a distribuição de probabilidade condicional x dado y. Isso é diferente de uma mistura de gaussianos, onde uma distribuição condicional de classe para a entrada x é expressa depois que y é amostrado de uma distribuição multinomial. O palestrante também faz uma comparação entre esse modelo e o campo aleatório condicional e as redes neurais recorrentes.

  • 00:10:00 Nesta seção, o palestrante explica as suposições feitas ao projetar um modelo oculto de Markov. A primeira suposição é que o processo é estacionário, o que significa que as distribuições de transição e emissão são independentes do tempo. A segunda suposição é que o processo é Markoviano, o que significa que um determinado estado oculto depende apenas do estado oculto anterior. Essas suposições criam um modelo gráfico probabilístico com uma distribuição inicial, uma distribuição de transição e uma distribuição de emissão, que juntas formam uma distribuição conjunta. A distribuição inicial descreve a distribuição para o primeiro estado oculto e é tipicamente um multinomial.

  • 00:15:00 Nesta seção, aprendemos sobre as três distribuições nos modelos ocultos de Markov: distribuição de estado inicial, distribuição de transição e distribuição de emissão. A distribuição de emissão gaussiana é usada para dados contínuos, enquanto a distribuição de emissão multinomial é útil para dados discretos, como sequências de palavras para processamento de linguagem natural. Ao multiplicar essas distribuições, podemos derivar a distribuição conjunta, que pode ser usada para várias aplicações, como localização de robôs.

  • 00:20:00 Nesta seção, aprendemos sobre o problema de um robô se perder devido à deriva e imprecisões nas leituras do odômetro. Uma solução para este problema é a utilização de um modelo oculto de Markov, onde os Y's, o estado oculto, correspondem às coordenadas de localização do robô e as entradas correspondem a algumas medições dos sensores. A distribuição de transição captura a probabilidade de o robô parar em locais diferentes devido a incertezas no movimento, enquanto a distribuição de emissão tem uma distribuição sobre as medições obtidas pelos sensores para contabilizar imprecisões de medição. O modelo oculto de Markov pode ser usado para localização, o que envolve calcular a probabilidade da localização do robô em qualquer intervalo de tempo.

  • 00:25:00 Nesta seção, o palestrante explica as quatro grandes categorias nas quais as tarefas relacionadas aos Modelos Ocultos de Markov (HMM) podem ser classificadas. Essas categorias incluem monitoramento, previsão, eliminação de ambiguidades e explicação mais provável. Para a tarefa de monitoramento, o algoritmo utilizado é conhecido como algoritmo de encaminhamento. Envolve a decomposição recursiva da consulta em termos da probabilidade do estado oculto anterior, dadas todas as medições anteriores, o que permite o cálculo da probabilidade de Y para um determinado X. O algoritmo funciona calculando o primeiro estado oculto, dado o primeiro medição e, em seguida, calculando o próximo estado oculto dado as medições até aquele intervalo de tempo e continua aumentando a sequência avançando no tempo.

  • 00:30:00 Nesta seção, o palestrante discute a tarefa de previsão usando Hidden Markov Models (HMMs), que envolve prever o estado futuro de um sistema dado o estado atual. Exemplos dessa tarefa incluem previsão do tempo e do mercado de ações. A computação é feita de forma semelhante ao monitoramento, usando um algoritmo direto com duas fases: monitoramento e predição. No exemplo fornecido, o professor mostra como calcular a probabilidade de Y4 dados apenas X1 e X2. O palestrante também menciona que HMMs com previsão podem ser usados para geração de texto, onde o modelo prevê o próximo texto observável dado o texto atual.

  • 00:35:00 Nesta seção, o palestrante discute as tarefas dos modelos ocultos de Markov (HMMs), que incluem filtragem, suavização e raciocínio retrospectivo. A filtragem refere-se à previsão do estado atual de um sistema com base em observações anteriores, enquanto a suavização refere-se à previsão de estados anteriores usando observações antes e depois desse estado. O raciocínio retrospectivo envolve calcular a propriedade de um estado no passado, dadas observações antes e depois desse estado. O palestrante destaca que os HMMs não são mais o estado da arte para essas tarefas, mas são precursores de redes neurais recorrentes que tendem a ser mais eficazes. A computação para essas tarefas é feita de forma recursiva, levando à criação do algoritmo forward-backward.

  • 00:40:00 Nesta seção, o palestrante discute o uso de Hidden Markov Models (HMMs) para reconhecimento de fala e tradução automática. Os HMMs são usados para calcular a sequência mais provável de saídas com base em uma sequência de entradas e estados ocultos. O algoritmo de Viterbi é aplicado a este procedimento de programação dinâmica para realizar a maximização. Também é discutida uma aplicação de reconhecimento de atividade usando medições de sensores e dispositivos Walker que os idosos usam para caminhar. Inferir as atividades de uma pessoa com andador ajuda a determinar as manobras mais prováveis que podem levar a uma queda ou desencadear uma queda, o que foi observado em algumas situações, apesar do uso de andadores para estabilidade.

  • 00:45:00 Nesta seção, o palestrante discute um estudo em que um andador modificado com sensores e câmeras foi usado para coletar dados sobre as atividades de idosos em uma casa de repouso. O andador tinha sensores como um acelerômetro 3D e sensores de carga que mediam o peso em cada perna do andador e uma câmera que olhava para trás, para as pernas. O experimento envolvia fazer os participantes passarem por uma pista de obstáculos que simulava atividades diárias comuns. Os dados coletados foram usados para desenvolver um modelo oculto de Markov que reconheceu automaticamente as atividades realizadas pelos participantes. O modelo tinha oito canais para os sensores e usou aprendizado de máquina para estimar os parâmetros da transição inicial e distribuições de emissão.

  • 00:50:00 Nesta seção, o palestrante discute uma demonstração de um algoritmo que prevê a atividade de uma pessoa com base nas medições do sensor. O algoritmo usa um modelo oculto de Markov ou campo aleatório condicional para rastrear a atividade da pessoa e as previsões de saída, que são então comparadas a comportamentos corretos rotulados manualmente. A atividade da pessoa é representada visualmente como curvas flutuantes, e o painel direito do vídeo exibe 13 atividades separadas indicadas por um quadrado vermelho para o comportamento correto e um quadrado azul para a previsão do algoritmo. O palestrante explica que, embora teoricamente possível, fazer com que a pessoa que usa os sensores indique sua atividade não é prático, pois a pessoa nem sempre é um juiz confiável de seus próprios movimentos e pode ser estranho ter alguém anunciando continuamente suas ações. Além disso, se o aprendizado não supervisionado fosse usado, o algoritmo inferiria uma atividade, mas não seria capaz de nomeá-la com precisão.

  • 00:55:00 Nesta seção, o palestrante discute a abordagem adotada para o aprendizado supervisionado e não supervisionado no contexto do reconhecimento de atividades. Para aprendizado supervisionado, os Y's são conhecidos e o objetivo é maximizar a verossimilhança dos dados. Uma abordagem discutida é calcular a derivada, defini-la como zero, isolar os parâmetros e obter valores e estimativas para pi theta e phi. No caso de duas atividades e medições binárias, é possível expandir a distribuição conjunta do modelo e definir a derivada como zero. As respostas resultantes são naturais e envolvem a razão do número de classes nos dados.

  • 01:00:00 Nesta seção, o palestrante discute o uso de distribuições gaussianas de emissão, que é uma prática comum em aplicações práticas porque os dados coletados geralmente são contínuos. Este método envolve o uso de parâmetros de média e variância que correspondem à média e à variância empírica dos dados coletados. A solução para as distribuições inicial e de transição é a mesma de antes, enquanto a distribuição de transição corresponde a contagens de frequência relativa. A máxima verossimilhança é então usada para obter essas soluções. Esta técnica é semelhante à solução para misturas de gaussianas, onde também temos uma distribuição inicial e de emissão.
 

CS480/680 Aula 18: Redes neurais recorrentes e recursivas



CS480/680 Aula 18: Redes neurais recorrentes e recursivas

Nesta palestra, o palestrante apresenta redes neurais recorrentes e recursivas como modelos adequados para dados sequenciais sem comprimento fixo. Redes neurais recorrentes podem lidar com sequências de qualquer comprimento devido a certos nós com saídas realimentadas como entradas, e a forma como o H em cada passo de tempo é calculado é através do uso da mesma função f, que envolve compartilhamento de peso. No entanto, eles podem sofrer de limitações, como não lembrar informações de entradas anteriores e desvios de previsão. O palestrante também explica a arquitetura da rede neural recorrente bidirecional (BRNN) e o modelo codificador-decodificador, que utiliza dois RNNs - um codificador e um decodificador, para aplicações em que as sequências de entrada e saída não coincidem naturalmente. Além disso, o palestrante descreve os benefícios das unidades de memória de longo prazo (LSTM), que podem mitigar o problema do gradiente de desaparecimento, facilitar dependências de longo alcance e permitir ou bloquear seletivamente o fluxo de informações.

Esta palestra sobre redes neurais recorrentes e recursivas abrange uma variedade de tópicos, incluindo o uso de unidades de Long Short-Term Memory (LSTM) e Gated Recurrent Unit (GRU) para evitar problemas de gradiente, bem como a importância dos mecanismos de atenção na tradução automática para preservar o significado da frase e o alinhamento das palavras. O palestrante também discute como as redes neurais recorrentes podem ser generalizadas para redes neurais recursivas para sequências, gráficos e árvores, e como analisar sentenças e produzir incorporações de sentenças usando árvores de análise.

  • 00:00:00 Nesta seção do vídeo, o palestrante apresenta redes neurais recorrentes e recursivas como modelos adequados para dados sequenciais sem comprimento fixo. As redes neurais feedforward, discutidas anteriormente, assumem uma entrada de comprimento fixo, o que apresenta problemas ao lidar com dados de comprimento variável, como dados de séries temporais ou tradução automática. As redes neurais recorrentes, que possuem certos nós com saídas realimentadas como entradas, podem lidar com sequências de qualquer tamanho. O palestrante explica isso usando um modelo e uma versão desenrolada da rede. Redes neurais recursivas, que generalizam para árvores ou grafos, também são discutidas.

  • 00:05:00 Nesta seção, o palestrante discute como as redes neurais recorrentes se conectam em diferentes intervalos de tempo e como são treinadas. Para treinar RNNs, o palestrante explica que o gradiente descendente é usado junto com uma técnica conhecida como retropropagação ao longo do tempo, que envolve desenrolar a rede ao longo do tempo e criar uma rede neural feed-forward. O palestrante também observa que a forma como o H em cada etapa de tempo é calculada é por meio do uso da mesma função f, que envolve o compartilhamento de peso. A função f recebe entrada do H anterior e do X atual e os pesos usados para ela são os mesmos em cada intervalo de tempo.

  • 00:10:00 Nesta seção, o palestrante explica redes neurais recorrentes (RNNs) e compartilhamento de peso. RNNs são redes que usam a mesma função repetidamente a cada intervalo de tempo, compartilhando os mesmos pesos. Isso significa que há algum compartilhamento de peso ocorrendo, o que pode tornar diferente a derivação do gradiente durante a retropropagação. O palestrante também menciona que H geralmente é um vetor, sendo F uma função que produz um vetor. Esse efeito cria desafios para o treinamento, incluindo o problema de desaparecimento e explosão de gradiente, em que multiplicar fatores menores ou maiores que um pode levar a um gradiente de desaparecimento ou explosão.

  • 00:15:00 Nesta seção da palestra, o palestrante discute as limitações das redes neurais recorrentes (RNNs) e como elas podem não se lembrar de informações de entradas iniciais. Isso pode ser problemático para aplicativos como tradução automática, em que a primeira palavra é tão importante quanto a última. No entanto, para atividades como reconhecimento de atividade, pode ser bom se o RNN esquecer as medições do sensor que ocorreram há algum tempo porque as medições recentes são mais importantes. Outro problema com RNNs é o desvio de previsão, onde os erros nas previsões se acumulam ao longo do tempo, fazendo com que as previsões se desviem. O palestrante também compara RNNs com modelos ocultos de Markov (HMMs) e explica como RNNs podem ser usados para generalizar HMMs.

  • 00:20:00 Nesta seção, o palestrante explica a diferença entre um modelo oculto de Markov e uma rede neural recorrente. Em um modelo oculto de Markov, as setas indicam dependências probabilísticas, enquanto em uma rede neural recorrente, as setas indicam dependências funcionais. O palestrante apresenta estados ocultos e saídas em uma rede neural recorrente e explica que o gráfico corresponde à computação
    sendo feito. O estado oculto é calculado usando uma função que usa o estado oculto anterior e a entrada, e a saída é obtida usando outra função que usa o estado oculto como entrada. Em última análise, o objetivo é usar essa computação para computar probabilidades ou reconhecer atividades.

  • 00:25:00 N esta seção, o conceito de usar Redes Neurais Recorrentes para emular um Modelo Oculto de Markov no contexto de classificação, especificamente reconhecimento de atividade, é discutido. O RNN é usado para desacoplar o estado oculto da saída, o que significa que a saída depende apenas do estado oculto transformado por meio de alguma função. Um exemplo disso é mostrado usando uma função de ativação não linear aplicada a HT e diferentes conjuntos de pesos para transformar a saída. O algoritmo direto da RNN pode calcular y1 com base em X1, y2 com base em X1 e X2, e assim por diante, semelhante ao Modelo Oculto de Markov, no entanto, a RNN tem um problema ao calcular y2, que é abordado posteriormente na palestra.

  • 00:30:00 Nesta seção, o palestrante discute as limitações da arquitetura de rede neural recorrente unidirecional que permite apenas computação direta e apresenta a arquitetura de rede neural recorrente bidirecional (BRNN) como uma solução para este problema. O palestrante desenha um diagrama da arquitetura BRNN, que inclui estados ocultos, entradas e saídas para frente e para trás. Ao agregar informações de antes e depois por meio dos estados ocultos de avanço e retrocesso, a arquitetura BRNN permite computação bidirecional e pode calcular previsões com base em entradas em ambas as direções.

  • 00:35:00 Nesta seção do vídeo, o palestrante discute como redes neurais recorrentes podem ser usadas em aplicações onde as sequências de entrada e saída não coincidem naturalmente, como tradução automática, resposta a perguntas e agentes de conversação. Para lidar com esses problemas, uma arquitetura diferente, conhecida como modelo de decodificador de codificador, ou modelo de sequência para sequência, é frequentemente usada. Essa arquitetura utiliza dois RNNs - um codificador e um decodificador. O codificador codifica a sequência de entrada em um vetor de contexto, que é uma incorporação da entrada, e o decodificador usa o vetor de contexto para produzir a sequência de saída correspondente. Essa abordagem permite sequências de entrada e saída de comprimentos diferentes e nenhuma sincronização entre as palavras na entrada e na saída.

  • 00:40:00 Nesta seção da palestra, o instrutor descreve a arquitetura de um modelo de sequência a sequência em tradução automática, que usa uma rede neural recorrente para resumir as sentenças de entrada em um vetor de contexto (C) que serve como o memória do modelo. O vetor de contexto é usado para decodificar e produzir uma sequência de palavras traduzidas, com cada palavra correspondendo a uma saída diferente. O modelo também usa estados ocultos para acompanhar o progresso da tradução e garantir que as informações do vetor de contexto não sejam esquecidas com o tempo. O instrutor explica que é útil alimentar o vetor de contexto e o estado oculto anterior em cada etapa do processo de decodificação para garantir a coerência da frase traduzida.

  • 00:45:00 Nesta seção do vídeo, o professor discute o uso de redundância no fluxo de informações em redes neurais. O vetor usado para codificar informações geralmente é de alta dimensão e pode ter valores de 500 a 1.000, tornando-o ideal para codificar sentenças inteiras. O vídeo também mostra exemplos de traduções realizadas usando um modelo que usa uma rede neural recorrente. O modelo foi treinado em um grande corpus de dados e conseguiu igualar o estado da arte em tradução automática sem precisar de muito conhecimento sobre linguística ou as complexidades da tradução automática, tornando-se um avanço significativo. Além disso, a unidade Long Short-Term Memory (LSTM) foi proposta na década de 1990 para melhorar as dependências de longo alcance em redes neurais.

  • 00:50:00 Nesta seção, o palestrante discute os benefícios das unidades de Long Short-Term Memory (LSTM), que podem mitigar o problema do gradiente de fuga e facilitar o aprendizado de dependências de longo alcance devido à sua capacidade de lembrar informações por tempo prolongado períodos de tempo. A chave para a unidade LSTM é a introdução de portas, incluindo entrada, esquecimento e portas de saída. Essas portas regulam o fluxo de informações tomando um valor entre 0 e 1 e multiplicando-o pela entrada, o estado oculto ou a saída. O palestrante também desenrola a arquitetura da célula LSTM e introduz gates em cada link para regular as conexões entre eles. Essas modificações permitem que a unidade LSTM permita ou bloqueie seletivamente o fluxo de informações e facilite a memória de longo prazo em tarefas como tradução automática.

  • 00:55:00 Nesta seção, o palestrante explica a estrutura e as variações das unidades de Long Short-Term Memory (LSTM), um tipo de rede neural recorrente. As unidades LSTM são construídas usando uma combinação de várias portas que regulam o fluxo de informações, como porta de entrada, porta de saída, porta de esquecimento e porta de memória. Essas portas recebem o X atual e o estado oculto anterior como entrada e geram um valor entre 0 e 1 que decide se permite a entrada de novas informações ou esquece as informações antigas. O palestrante também menciona que as unidades LSTM mais recentes usam estados de célula em vez de estados ocultos para armazenamento de memória e têm H como saída em vez de Y. A palestra termina descrevendo equações específicas que governam os diferentes portões da unidade LSTM.

  • 01:00:00 Nesta seção, o instrutor explica como as unidades de memória de longo prazo (LSTM) funcionam e como elas são úteis na prevenção de problemas de gradiente, como desaparecimento e explosão de gradientes. É explicado que as portas são usadas para determinar o que pode influenciar o estado da célula, que carrega a memória da rede. O instrutor também observa que as unidades fechadas conhecidas como Gated Recurrent Unit (GRU) foram propostas em 2014 como uma versão simplificada das unidades LSTM. A GRU remove uma das portas utilizadas nas unidades LSTM.

  • 01:05:00 Nesta seção, o palestrante apresenta a unidade recorrente fechada (GRU), que simplifica a unidade de memória de curto prazo (LSTM) por ter apenas dois portões: o portão de reinicialização e o portão de atualização. O portão de atualização determina se a nova entrada vai para o estado oculto ou preserva o que já estava nela. Isso reduz a complexidade da unidade e a torna mais eficiente, resultando em melhor desempenho. No entanto, mesmo com a utilização de GRU, ainda existe alguma memória que fica perturbada a cada passo, pelo que foram desenvolvidos mecanismos de atenção, particularmente úteis na tradução automática, para alinhar cada palavra de saída com algumas palavras na sequência de entrada, permitindo ao modelo preservar o significado da frase original e verificar o alinhamento palavra a palavra.

  • 01:10:00 Nesta seção, foi introduzida a ideia de vetores de contexto para decodificar uma sequência de palavras. O vetor de contexto é baseado em uma combinação ponderada de todos os estados ocultos associados a cada intervalo de tempo no processo de codificação. Os pesos são obtidos através de um softmax que produz maior probabilidade quando há um alinhamento entre a saída pretendida e uma palavra de entrada. O alinhamento é calculado usando um produto escalar e transformado em probabilidade por meio de um softmax que permite calcular uma combinação ponderada de entradas possíveis. Ao fazer isso, criamos um vetor de contexto que resume o contexto importante para as próximas palavras que queremos produzir, em vez de resumir a frase inteira.

  • 01:15:00 Nesta seção, o palestrante discute o uso de mecanismos de atenção na tradução automática. O mecanismo de atenção envolve a obtenção de uma combinação convexa de estados ocultos calculados a cada intervalo de tempo, em vez de apenas usar o último estado oculto como vetor de contexto. Os pesos usados para a combinação são probabilidades obtidas de um softmax e são usados para computar alinhamentos entre o estado oculto anterior e todas as entradas anteriores. Isso permite que o modelo de tradução automática alinhe os conceitos que está prestes a traduzir com a parte correta da entrada. O uso da atenção aprimorou a tradução automática, e o palestrante apresenta alguns resultados obtidos por autores que a utilizaram em 2015.

  • 01:20:00 Nesta seção da palestra, o palestrante aborda a questão das frases longas na tradução automática e a importância de ter um mecanismo que permita olhar para trás durante o processo de tradução. O pesquisador compara a precisão de uma rede neural recorrente com e sem atenção e mede as diferenças de precisão usando a pontuação da avaliação bilíngue em estudo (BLEU). A curva superior, que usa atenção, mostra um nível consistente de precisão, mesmo quando o comprimento da frase aumenta. Isso pode ser atribuído ao mecanismo de atenção que permite que todas as palavras na sequência de entrada influenciem o vetor de contexto para a próxima etapa da decodificação, independentemente de sua posição.

  • 01:25:00 Nesta seção, o palestrante discute as limitações das redes neurais recorrentes ao trabalhar com frases longas e a importância dos mecanismos de atenção para resolver esse problema. Redes neurais recorrentes tendem a sobrescrever palavras iniciais com palavras subsequentes, resultando em qualidade de tradução degradada ao lidar com sequências longas. Os mecanismos de atenção resolvem esse problema concentrando-se em palavras específicas, permitindo que a rede neural lide com sequências mais longas de comprimento arbitrário. Mecanismos de atenção também ajudam no processamento de diferentes idiomas, onde o alinhamento de palavras não é necessariamente um a um. O palestrante dá exemplos de como funcionam os mecanismos de atenção na produção de mapas de tradução que mostram o alinhamento de palavras em diferentes idiomas.

  • 01:30:00 Nesta seção, o palestrante explica como as redes neurais recorrentes podem ser generalizadas para redes neurais recursivas, que podem ser usadas para sequências, gráficos e árvores. A chave é transformar as entradas e combiná-las recursivamente de forma a produzir uma saída ou incorporação que capte o significado da entrada. Para lidar com comprimentos variados de entradas, o palestrante enfatiza a importância do compartilhamento de peso entre as diferentes aplicações de regras para combinar diferentes nós no grafo. O palestrante também sugere o uso de árvores de análise ou gráficos de dependência para construir um gráfico que reflita a sintaxe e possa ser útil em computação e incorporação.

  • 01:35:00 Nesta seção, o palestrante discute como analisar uma sentença usando árvores de análise de constituintes e como produzir embeddings para sentenças inteiras. A ideia é criar partes de tags de fala e combiná-las em frases e árvores de análise para entender a estrutura da frase. Ao associar regras a cada transformação e compartilhar pesos em todas as aplicações da mesma regra, podemos produzir incorporações mais promissoras e consistentes com a forma como os humanos entendem as sentenças. Alguns pesquisadores mostraram que, construindo embeddings dessa maneira, podemos obter resultados muito bons.

  • 01:40:00 Nesta seção do vídeo, o palestrante discute o potencial para obter uma melhor incorporação de sentenças por meio do uso de uma árvore de análise correta. Eles concluem o conjunto anterior de slides e passam para o próximo.
 

CS480/680 Aula 19: Atenção e Redes Transformadoras



CS480/680 Aula 19: Atenção e Redes Transformadoras

Nesta palestra, o conceito de atenção em redes neurais é introduzido e seu papel no desenvolvimento de redes transformadoras é discutido. A atenção foi inicialmente estudada em visão computacional, permitindo a identificação de regiões cruciais semelhantes à forma como os humanos se concentram naturalmente em áreas específicas. A aplicação da atenção à tradução automática levou à criação de redes transformadoras, que utilizam apenas mecanismos de atenção e produzem resultados tão bons quanto as redes neurais tradicionais. As redes transformadoras têm vantagens sobre as redes neurais recorrentes, resolvendo problemas associados a dependências de longo alcance, gradientes desaparecendo e explodindo e computação paralela. A palestra explora a atenção multicabeçal em redes de transformadores, o que garante que cada posição de saída atenda à entrada. O uso de máscaras, camadas de normalização e a camada Donora em redes transformadoras é discutido, e o conceito de usar a atenção como um bloco de construção é explorado.

Nesta palestra sobre atenção e redes transformadoras, o palestrante explica a importância da normalização para desacoplar gradientes em diferentes camadas, bem como a importância da incorporação posicional para manter a ordem das palavras nas frases. O palestrante compara as estimativas de complexidade de redes transformadoras com redes neurais recorrentes e convolucionais, destacando a capacidade da rede transformadora de capturar dependências de longo alcance e processar palavras simultaneamente. As vantagens das redes transformadoras em melhorar a escalabilidade e reduzir a concorrência também são discutidas, juntamente com a introdução de redes transformadoras como GPT, BERT e XLNet, que mostraram desempenho impressionante em precisão e velocidade, levantando questões sobre o futuro das redes neurais recorrentes.

  • 00:00:00 Nesta seção, o palestrante apresenta o conceito de atenção em redes neurais e seu papel no desenvolvimento de redes transformadoras. A atenção foi estudada pela primeira vez em visão computacional, com a ideia de que um mecanismo de atenção poderia identificar regiões de interesse em uma imagem semelhante à forma como os humanos focam naturalmente em regiões específicas. Esse conceito foi então aplicado à tradução automática e acabou levando à criação de redes transformadoras, que consistem apenas em mecanismos de atenção e demonstraram produzir resultados pelo menos tão bons quanto os das redes neurais tradicionais. A atenção também pode ser usada para destacar recursos importantes em uma imagem que contribuem para a saída desejada, como a localização de objetos na detecção de objetos.

  • 00:05:00 Nesta seção, o palestrante discute como a atenção pode ser usada como um bloco de construção no processo de reconhecimento, como visto no trabalho inovador de tradução automática de 2015, onde o decodificador foi capaz de olhar para trás na frase de entrada. Em 2017, os pesquisadores demonstraram o uso da atenção para desenvolver técnicas gerais de modelagem de linguagem, permitindo a previsão e recuperação de palavras ausentes em uma sequência. A rede transformadora, que usa exclusivamente blocos de atenção, torna-se o estado da arte para processamento de linguagem natural e supera as redes neurais recorrentes devido à sua capacidade de lidar com dependências de longo alcance e otimizar a computação paralela em GPUs. As redes de transformação são, portanto, uma escolha eficiente para tarefas de processamento de linguagem natural.

  • 00:10:00 Nesta seção, o palestrante explica as vantagens das redes de atenção e transformação sobre as redes neurais recorrentes tradicionais. Os blocos de atenção ajudam a estabelecer conexões entre qualquer parte da sequência, evitando o problema de dependências de longo alcance. Além disso, as redes transformadoras fazem a computação simultaneamente para toda a sequência, permitindo mais paralelização e menos etapas para treinar e resolvendo o problema de desaparecimento e explosão de gradientes. O palestrante também revisa a atenção como forma de aproximação para recuperação de banco de dados e apresenta a equação utilizada em mecanismos de atenção para redes neurais.

  • 00:15:00 Nesta seção, o palestrante explica como a função de similaridade calcula uma distribuição e como o mecanismo de atenção pode ser generalizado para uma arquitetura neural. O palestrante sugere várias funções que podem ser usadas para medir a similaridade, incluindo produto escalar e produto escalar, e explica como elas podem ser aplicadas para calcular a similaridade entre as chaves e a consulta. O locutor também introduz a ideia de uma combinação ponderada de valores com alta similaridade no processo de recuperação, que corresponde ao mecanismo de atenção.

  • 00:20:00 Nesta seção da palestra, o professor explica em detalhes a primeira camada do mecanismo de atenção. A camada calcula a similaridade entre uma consulta e cada chave na memória. A maneira mais comum de calcular a similaridade é por meio de um produto escalar ou dimensionar o produto escalar dividindo pela raiz quadrada da dimensionalidade. Outra maneira é projetar a consulta em um novo espaço usando uma matriz de peso e, em seguida, obter um produto escalar. Esta etapa permitirá que a rede neural aprenda um mapeamento W para comparar a similaridade entre a consulta e a chave mais diretamente.

  • 00:25:00 Nesta seção, discutimos como os valores de atenção são calculados em uma rede totalmente conectada que usa a função softmax. Os pesos são calculados usando uma expressão que compara uma consulta com várias chaves para obter uma medida de similaridade, e isso é usado para atribuir um peso a cada chave. O valor de atenção é calculado usando uma combinação linear dos valores associados a cada chave. Os pesos, representados pela matriz W, são aprendidos pela rede neural por retropropagação, otimizando a projeção de Q no espaço gerado por W. Os pesos resultantes são usados para produzir uma saída, com um peso por palavra de saída e os vetores ocultos associado a cada palavra de entrada usada como o VI.

  • 00:30:00 Nesta seção, a palestra discute o mecanismo de atenção e as redes transformadoras. O mecanismo de atenção é uma forma de combinar vetores ocultos para uma palavra de saída com vetores ocultos para palavras de entrada, permitindo a produção de um vetor de contexto. A rede transformadora, apresentada em 2017, elimina a recorrência nos dados sequenciais, o que agiliza a otimização e paraleliza as operações. A rede transformadora na tradução automática tem duas partes: um codificador e um decodificador. O codificador processa toda a sequência de palavras em paralelo por meio de atenção multicabeçal e uma rede neural de feedforward, com a adição de codificação posicional para contabilizar o posicionamento da palavra.

  • 00:35:00 Nesta seção, a palestra descreve o mecanismo de atenção de várias cabeças, que calcula a atenção entre todas as posições e todas as outras posições. A atenção multicabeça pega cada palavra e a combina com algumas das outras palavras na frase por meio de um mecanismo de atenção, produzindo uma melhor incorporação que mescla informações de pares de palavras. A palestra também discute uma camada Donora que adiciona uma conexão residual, que leva a entrada original para o que sai da atenção multicabeça e então normaliza isso. O bloco é repetido várias vezes para que o modelo possa combinar pares de palavras, pares de pares e assim por diante. A saída desse processo é uma sequência de incorporações e há uma incorporação por posição na frase. A palestra então explora o decodificador, que produz alguma saída usando um softmax que produz probabilidades de saída de um rótulo em cada posição. O decodificador também inclui duas camadas de atenção, a primeira das quais é a autoatenção entre as palavras de saída e a segunda combina as palavras de saída com as palavras de entrada.

  • 00:40:00 Nesta seção, o palestrante discute o mecanismo de atenção multi-head em Transformer Networks, que é usado para garantir que cada posição na saída esteja atendendo a posições na entrada. A atenção multicabeça funciona decompondo pares chave-valor com consultas, comparando-os com as chaves para encontrar os pesos mais altos e obtendo uma combinação ponderada dos valores correspondentes para produzir a saída. Este processo é repetido várias vezes com diferentes combinações lineares para calcular diferentes projeções e melhorar os embeddings até que uma distribuição sobre as palavras no dicionário seja produzida.

  • 00:45:00 Nesta seção da palestra, o professor discute o conceito de atenção multicabeça e como ela pode ser comparada a mapas de recursos em redes neurais convolucionais. As diferentes combinações lineares na atenção multicabeça podem ser pensadas como diferentes filtros, projetando ou alterando o espaço em que residem os valores. Isso resulta em atenções de produto de escala múltipla, que correspondem a vários mapas de recursos em CNNs. A camada de contato concatena essas diferentes atenções e, ao final, uma combinação linear delas resulta em uma atenção multicabeça. Além disso, o professor explica a máscara de atenção multicabeça, que anula ou remove links que criariam dependências de palavras futuras, tornando-a adequada para tarefas de tradução automática.

  • 00:50:00 Esta seção do vídeo discute o uso de máscaras no contexto da rede Transformer. O apresentador explica como as máscaras são usadas para anular certas conexões na função softmax e como o uso de máscaras com valores de menos infinito garante a manutenção de uma distribuição adequada. O apresentador também discute como o uso de máscaras permite a computação paralela durante o treinamento e como a técnica de forçamento do professor separa a entrada e a saída durante o treinamento.

  • 00:55:00 Nesta seção do vídeo, é discutida a importância da camada de normalização em Redes de Transformadores. A camada de normalização ajuda a reduzir o número de etapas necessárias para a descida do gradiente para otimizar a rede, pois garante que a saída de cada camada, independentemente de como os pesos são definidos, terá uma média de 0 e variância de 1. Ao fazer isso , a escala das saídas é a mesma, o que reduz a competição de gradiente entre as camadas e torna a convergência mais rápida. Observa-se que a normalização da camada é diferente da normalização do lote, pois normaliza no nível de uma camada em vez de uma única unidade oculta, tornando-a adequada para lotes menores ou até mesmo um ponto de dados por vez em uma configuração online ou de streaming.

  • 01:00:00 Nesta seção do vídeo, o palestrante discute a importância da normalização para separar como os gradientes evoluem em diferentes camadas. Eles também se aprofundam no tópico de incorporação posicional, que é adicionado após a incorporação de entrada na rede do transformador. A incorporação posicional garante que o mecanismo de atenção possa capturar informações posicionais, o que é importante para reter a ordem das palavras em uma frase. O palestrante explica que a incorporação posicional é um hack de engenharia e discute a fórmula usada para calculá-la, embora observe que pode haver diferentes maneiras de abordar esse aspecto da rede.

  • 01:05:00 Nesta seção da palestra, o palestrante compara as estimativas de complexidade de uma rede transformadora com as de uma rede neural recorrente ou rede neural convolucional. A rede transformadora, também conhecida como rede de auto-atenção, tem uma complexidade de ordem n ao quadrado porque o mecanismo de atenção atende a todas as outras posições para cada posição em uma camada, enquanto também computa seus embeddings. No entanto, a rede do transformador não perde informações da primeira palavra e permite que as informações fluam entre pares de palavras imediatamente, tornando-a eficaz na captura de dependências de longo alcance. Além disso, não há operações sequenciais em uma rede de transformadores, o que significa que todas as palavras podem ser processadas simultaneamente e em paralelo. Em contraste, uma rede neural recorrente tem operações sequenciais e comprimento de caminho que pode ser de até n.

  • 01:10:00 Nesta seção da palestra, o palestrante discute as vantagens das redes transformadoras, especificamente sua capacidade de reduzir a concorrência e melhorar a escalabilidade. O palestrante então compara diferentes modelos de tradução automática, especificamente inglês para alemão e inglês para francês, e mostra que, embora os modelos transformadores não necessariamente produzam resultados excelentes, eles reduziram drasticamente o tempo de computação, tornando-os uma opção mais eficiente para o treinamento . O palestrante também discute outros tipos de redes transformadoras, como GPT e GPT-2, que foram propostas em 2018 para modelagem de linguagem não supervisionada.

  • 01:15:00 Nesta seção, o vídeo apresenta dois tipos de redes de transformadores chamadas GPT e BERT. GPT é um modelo de linguagem que pode ser usado para uma variedade de tarefas, incluindo compreensão de leitura, tradução, resumo e resposta a perguntas. O modelo atende as saídas anteriores para gerar uma sequência de palavras sem atender à saída futura. Os pesquisadores aplicaram isso a diferentes tarefas sem adaptar a rede à tarefa específica e descobriram que, de maneira totalmente não supervisionada, conseguiram chegar perto do estado da arte. BERT significa representações codificadas bidirecionais de transformadores e seu principal avanço é que ele prevê uma palavra com base na palavra anterior e nas palavras futuras, tornando-o melhor que o GPT.

  • 01:20:00 Nesta seção, o palestrante aborda os avanços ocorridos nas redes de transformadores, especificamente BERT e XLNet. O BERT possui a capacidade de ajustar modelos com dados específicos de tarefas, resultando em uma grande melhoria no estado da arte em onze tarefas. No entanto, o XLNet apresentou um desempenho ainda mais impressionante, superando o BERT na maioria das tarefas devido à permissão de entradas ausentes e consequente melhor desempenho ao generalizar. Essas redes de transformadores provaram ter um bom desempenho em termos de precisão e velocidade, causando questionamentos sobre o futuro das redes neurais recorrentes.
 

CS480/680 Aula 20: Autoencoders



CS480/680 Aula 20: Autoencoders

Os autoencoders referem-se a uma família de redes intimamente relacionadas aos codificadores-decodificadores, com a diferença de que os autoencoders recebem uma entrada e produzem a mesma saída. Eles são importantes para compactação, redução de ruído, obtenção de uma representação esparsa e geração de dados. Os autoencoders lineares alcançam a compactação mapeando vetores de alta dimensão para representações menores, garantindo que nenhuma informação seja perdida e usando matrizes de peso para calcular uma transformação linear da entrada para a representação compactada e vice-versa. Além disso, os autoencoders profundos permitem mapeamentos sofisticados, enquanto os autoencoders probabilísticos produzem distribuições condicionais sobre a representação e entrada intermediárias, que podem ser usadas para geração de dados. O uso de funções não lineares por autoencoders tira proveito do manifold não linear, uma projeção em um espaço dimensional inferior que captura a dimensionalidade intrínseca dos dados, levando a uma compressão sem perdas da entrada.

  • 00:00:00 Nesta seção da palestra sobre Autoencoders, o apresentador explica que são uma família de redes intimamente relacionadas aos codificadores-decodificadores, com a diferença de que os Autoencoders recebem uma entrada e produzem a mesma saída. Autoencoders são importantes para tarefas como compactação, redução de ruído, obtenção de uma representação esparsa e geração de dados. A compactação envolve o mapeamento de vetores de alta dimensão para representações menores, garantindo que nenhuma informação seja perdida. Para conseguir isso, a entrada é alimentada a um codificador que produz uma representação menor, que é então decodificada de volta para a entrada para garantir que a representação comprimida tenha todas as informações da entrada. Os Autoencoders lineares usam matrizes de peso para calcular uma transformação linear da entrada para a representação comprimida e de volta para a entrada.

  • 00:05:00 Nesta seção, o palestrante explica a conexão entre autoencoders e análise de componentes principais (PCA). Ele observa que o uso típico do PCA é projetar dados em um hiperplano dimensional inferior, preservando a variação nos dados. No entanto, ele também explica que quando um autoencoder (com mapeamentos lineares) é usado para minimizar a distância euclidiana, ele produz a mesma solução que o PCA, tornando-o uma ferramenta útil para redução de dimensionalidade. O palestrante destaca que as matrizes WF e WG no autoencoder são essencialmente as inversas (ou pseudo-inversas) uma da outra, pois WG x WF resulta em X.

  • 00:10:00 Nesta seção, o palestrante explica a beleza dos autoencoders, que é que eles não se restringem a mapeamentos lineares ao contrário do PCA. Em vez disso, os autoencoders podem usar funções não lineares para encontrar a representação oculta dos dados, que podem ser projetados em um espaço dimensional inferior por meio de uma variedade não linear. Esse coletor pode capturar a dimensionalidade intrínseca dos dados, o que pode levar a uma compressão sem perdas da entrada. No entanto, determinar a dimensionalidade ideal de H exigiria técnicas específicas para o aprendizado da estrutura.

  • 00:15:00 Nesta seção, o vídeo apresenta autoencoders profundos e representações esparsas. Os autoencoders profundos têm várias camadas antes de atingir a camada oculta, permitindo mapeamentos sofisticados, enquanto as representações esparsas impõem estrutura às representações intermediárias, minimizando o número de entradas diferentes de zero no vetor produzido por F. Isso pode ser feito por meio de otimização não convexa ou usando a regularização l1 para minimizar a norma l1 da saída. Além disso, o vídeo fornece um exemplo de uso de um autoencoder para redução de ruído, alimentando uma versão corrompida da entrada e tentando recuperar o arquivo X.

  • 00:20:00 Nesta seção, o palestrante descreve autoencoders probabilísticos ou estocásticos, que são diferentes dos determinísticos porque focam em distribuições condicionais. Em um autoencoder determinístico, o codificador produz uma representação intermediária que o decodificador pode usar diretamente para reconstruir a entrada, enquanto um autoencoder probabilístico produz distribuições condicionais sobre a representação intermediária e a entrada. Ao projetar uma rede neural com as últimas funções de ativação apropriadas, a última camada pode ser usada para produzir padrões que podem ser interpretados como distribuições. Unidades lineares na camada de saída podem ser usadas para codificar distribuições condicionais para dados reais, enquanto unidades sigmoides podem funcionar com dados binários. O palestrante enfatiza que esses autoencoders probabilísticos permitem a geração de dados, o que é uma diferença significativa dos determinísticos.

  • 00:25:00 Nesta seção da palestra, o palestrante explica o modelo gráfico probabilístico de um autoencoder. A entrada X é considerada uma variável aleatória e a saída X til é uma versão aproximada da entrada. H é outra variável aleatória que representa a camada oculta e as setas indicam dependências condicionais. Os pesos são representados por distribuições condicionais e o decodificador é uma distribuição condicional. Diferentes funções de ativação são usadas para produzir diferentes tipos de saída. O palestrante também discute como calcular uma distribuição sobre X com base em uma distribuição sobre H para vetores binários e gaussianos.

  • 00:30:00 Nesta seção, o palestrante explica como uma arquitetura como um autoencoder probabilístico pode ser usada para gerar dados. Com um autoencoder determinístico, o decodificador faz alguma incorporação e gera um ponto de dados. No entanto, por ter uma distribuição, podemos amostrar de alguma distribuição sobre a representação intermediária e usá-la para gerar um ponto de dados. Por exemplo, se treinarmos o autoencoder probabilístico com faces, poderíamos facilmente amostrar da representação oculta e, em seguida, produzir uma nova face diferente, mas semelhante às do conjunto de dados. Amostrando da distribuição sobre as imagens, obtemos uma imagem.

  • 00:35:00 Nesta seção, o palestrante discute a geração de novas imagens usando autoencoders probabilísticos. O palestrante explica como o autoencoder pode gerar novas imagens mapeando pontos de dados de entrada em incorporações em um espaço onde pontos próximos podem ser decodificados em novas imagens. No entanto, o palestrante observa que, para gerar imagens verdadeiramente novas, é preciso haver uma distribuição que permita a amostragem de incorporações adequadas. A distribuição utilizada no autoencoder está condicionada ao ponto de dados de entrada X, o que pode levar à geração de imagens semelhantes. Para superar essa limitação, o próximo conjunto de slides discutirá os mecanismos para amostragem direta com um H e geração de novas imagens.
 

CS480/680 Aula 21: Redes generativas (autoencoders variacionais e GANs)



CS480/680 Aula 21: Redes generativas (autoencoders variacionais e GANs)

Esta palestra se concentra em redes generativas, que permitem a produção de dados como saída por meio de redes como autoencoders variacionais (VAEs) e redes adversárias generativas (GANs). Os VAEs usam um codificador para mapear os dados do espaço original para um novo espaço e, em seguida, um decodificador para recuperar o espaço original. O palestrante explica o conceito por trás dos VAEs e os desafios de calcular a integral das distribuições necessárias no treinamento. As GANs consistem em duas redes - uma geradora e uma discriminadora - onde a rede geradora cria novos pontos de dados e a rede discriminadora tenta distinguir entre os gerados e os reais. Os desafios na implementação da GAN são discutidos, incluindo garantir um equilíbrio entre os pontos fortes das redes e alcançar a convergência global. A palestra termina com exemplos de imagens geradas e uma prévia para a próxima aula.

  • 00:00:00 Nesta seção da palestra, o foco está nas redes generativas e como elas podem ser usadas para geração de dados. Embora a classificação e a regressão tenham sido as principais técnicas abordadas no curso até agora, as redes generativas permitem a produção de dados como saída. Isso é particularmente útil para geração de linguagem natural, síntese de fala e geração de imagem e vídeo. Autocodificadores variacionais e redes contraditórias generativas estão entre as redes mais populares usadas atualmente para geração de dados. Essas redes são usadas para produzir dados realistas semelhantes aos encontrados em um conjunto de dados.

  • 00:05:00 Nesta seção, o palestrante discute a ideia de autoencoders probabilísticos, onde ao invés de um codificador determinístico, temos um codificador probabilístico que codifica uma distribuição condicional. Da mesma forma, o decodificador também é uma distribuição condicional e pode ser pensado como um gerador que cria uma distribuição sobre os dados, possibilitando a geração de novos pontos de dados. Um autoencoder variacional é usado para amostrar um vetor oculto, H, de uma distribuição fixa, um Gaussiano com média 0 e variância 1, e então construir um objetivo que tente fazer a distribuição do codificador sobre H condicionada em X o mais próximo possível disso distribuição fixa, garantindo bons resultados amostrais.

  • 00:10:00 Nesta seção, o palestrante explica o conceito por trás dos autoencoders variacionais (VAEs). Os VAEs usam um codificador para mapear os dados do espaço original para um novo espaço e, em seguida, um decodificador para recuperar o espaço original. O codificador produz uma distribuição que pode ser usada para amostrar novos pontos, que podem ser mapeados de volta ao espaço original pelo decodificador. No entanto, a distribuição do codificador precisa ser o mais próximo possível de uma distribuição fixa para garantir que os pontos de dados gerados sejam do mesmo tipo dos dados originais. A palestra aborda a função objetivo para VAEs e como otimizar a rede para atingir esse objetivo.

  • 00:15:00 Nesta seção, o palestrante discute os desafios de calcular a integral da distribuição do codificador sobre H e a distribuição sobre X para cada H. Essa integral não pode ser calculada de forma fechada, pois o codificador e o decodificador são complexos redes neurais. Para resolver isso, o palestrante propõe o uso de uma única amostra para aproximar a integral e produzir um H por amostragem do codificador e, em seguida, aproximar a distribuição resultante pela distribuição do decodificador. A aproximação é feita em treinamento, e o palestrante destaca que isso é diferente dos autoencoders comuns, pois há uma etapa de amostragem que requer consideração cuidadosa para ainda calcular um gradiente.

  • 00:20:00 Nesta seção do vídeo, o palestrante explica o truque de repriorização usado no treinamento de redes generativas como autoencoders variacionais. As arquiteturas de rede do codificador e do decodificador envolvem etapas de amostragem, o que dificulta o cálculo dos gradientes durante a otimização. Para resolver isso, uma distribuição gaussiana fixa é introduzida para permitir a amostragem de uma nova variável, H til, que é multiplicada pela saída do codificador, H, para obter a distribuição com a média e a variância ideais para a variável latente. O H transformado é então usado na rede do decodificador para gerar o til X de saída reconstruído.

  • 00:25:00 Nesta seção, o palestrante explica um truque chamado "reparametrização" que permite que redes neurais gerem amostras de uma distribuição de dados sem impedir a retropropagação de gradientes. O truque envolve a amostragem de uma distribuição diferente, mas corrigível (como uma gaussiana) e, em seguida, o uso de algumas operações matemáticas para transformar a amostra em uma amostra da distribuição desejada. Dessa forma, a amostra é uma entrada para a rede, que permite que gradientes passem por ela durante a retropropagação. O palestrante explica como esse truque é usado no treinamento de uma rede generativa e na geração de novos pontos de dados a partir da rede treinada.

  • 00:30:00 Nesta seção, o palestrante discute o uso da divergência da biblioteca de retorno, uma medida de distância usada para minimizar a diferença entre uma distribuição fixa e uma distribuição de codificador em redes generativas. O alto-falante usa Gaussian com variância de unidade média zero como a distribuição fixa e treinou o codificador para produzir uma distribuição próxima a ela. Ao utilizar o termo de regularização, o decodificador pode gerar um ponto de dados semelhante ao que está no conjunto de treinamento, que neste caso são imagens de faces. São mostrados exemplos de imagens geradas por um autoencoder variacional, que estão ligeiramente desfocadas devido à natureza probabilística do autoencoder. Em seguida, o palestrante apresenta redes adversárias generativas (GANs), que usam duas redes - um gerador e um discriminador - para produzir imagens mais nítidas e realistas que não são construídas probabilisticamente.

  • 00:35:00 Nesta seção, o palestrante explica como funcionam as Generative Adversarial Networks (GANs). As GANs consistem em duas redes: uma rede geradora e uma rede discriminadora. A rede geradora cria novos pontos de dados, enquanto a rede discriminadora tenta distinguir entre os pontos de dados gerados e os reais. O discriminador atua como um tutor, fornecendo feedback ao gerador, ajudando-o a gerar pontos de dados mais realistas. O treinamento é feito otimizando uma função objetivo, onde a rede discriminadora tenta maximizar a probabilidade de reconhecer pontos de dados reais e falsos, enquanto a rede geradora tenta minimizar essas probabilidades e enganar o discriminador. A função objetivo pode ser reescrita como a probabilidade de um ponto de dados ser falso.

  • 00:40:00 Nesta seção, o instrutor explica a arquitetura de Generative Adversarial Networks (GANs), que consiste em um gerador e um discriminador. O gerador recebe um vetor de amostra e produz dados simulados, enquanto o discriminador é um classificador que recebe dados reais e gerados para classificá-los como reais ou falsos. O objetivo da GAN é otimizar essas duas redes usando retropropagação com diferentes conjuntos de pesos para o gerador (WG) e o discriminador (WD). O instrutor continua explicando que os pesos são atualizados dando passos na direção do gradiente para minimizar o objetivo do GAN.

  • 00:45:00 Nesta seção, o palestrante discute um algoritmo para treinar uma rede adversária generativa. O algoritmo envolve um loop externo onde os pesos são otimizados para o discriminador e então K passos são executados para otimizar o objetivo. Depois disso, uma única etapa é realizada para otimizar o gerador. O objetivo é que o gerador aprenda a distribuição usada para gerar o conjunto de treinamento para que possa produzir dados reais indistinguíveis do ambiente real. Se for bem-sucedido, o discriminador terá uma taxa de erro de 50% e será impossível dizer se um ponto de dados é real ou falso.

  • 00:50:00 Nesta seção do vídeo, o palestrante discute os desafios que surgem na implementação de Generative Adversarial Networks (GANs), uma abordagem de modelagem generativa que utiliza duas redes chamadas geradora e discriminadora que funcionam em um ambiente adversário para gerar novos dados. Uma questão fundamental é garantir um equilíbrio entre os pontos fortes de ambas as redes, pois uma pode dominar a outra. Outra dificuldade é alcançar a convergência global durante a otimização, pois a otimização não convexa pode levar a ótimos locais que não são ótimos. Apesar desses desafios, alguns aspectos das GANs funcionam bem na prática, pois as imagens geradas de dígitos e rostos se assemelham a pontos de dados reais em seu conjunto de treinamento, embora alguns ajustes ainda possam ser necessários.

  • 00:55:00 Nesta seção do vídeo, o palestrante fala sobre redes adversárias generativas (GANs) e como elas podem gerar rostos semelhantes, mas diferentes. Ele fornece exemplos de imagens geradas, incluindo um cavalo, um cachorro e uma imagem borrada. O palestrante também menciona que a próxima aula abordará um tópico diferente em aprendizado de máquina.
 

CS480/680 Aula 22: Ensemble learning (bagging e boosting)



CS480/680 Aula 22: Ensemble learning (bagging e boosting)

A palestra discute o aprendizado conjunto, onde vários algoritmos se combinam para melhorar os resultados do aprendizado. As duas principais técnicas revisadas são bagging e boosting, e o palestrante enfatiza a importância de combinar hipóteses para obter uma hipótese mais rica. A palestra detalha o processo de votação por maioria ponderada e sua probabilidade de erro, além de como o aumento funciona para melhorar a precisão da classificação. O palestrante também aborda as vantagens de impulsionar e ensemble learning, observando a aplicabilidade do ensemble learning a muitos tipos de problemas. Por fim, o vídeo segue o exemplo do desafio da Netflix para demonstrar o uso do ensemble learning em competições de ciência de dados.

Nesta palestra sobre aprendizado conjunto, o palestrante enfatiza o valor de combinar hipóteses de diferentes modelos para obter um aumento na precisão, uma abordagem que pode ser particularmente útil ao começar com soluções já razoavelmente boas. Ele discute a importância de fazer uma combinação ponderada de previsões, observando que deve-se tomar cuidado, pois a média de duas hipóteses às vezes pode ser pior do que as hipóteses individuais sozinhas. O palestrante também explica que a normalização dos pesos pode ser necessária, dependendo se a tarefa é de classificação ou regressão.

  • 00:00:00 É apresentada a importância do ensemble learning, que é o processo de combinar vários algoritmos e hipóteses para melhorar os resultados do aprendizado. A palestra discute técnicas de bagging e boosting e destaca a dificuldade de determinar qual algoritmo individual é mais adequado para um problema específico. Muitas vezes, é uma questão de tentativa e erro, mas a combinação de hipóteses imperfeitas pode levar a um resultado geral melhor, semelhante a como as eleições combinam as escolhas dos eleitores ou os comitês combinam opiniões de especialistas. Ao combinar vários algoritmos, o objetivo é obter uma previsão ou classificação mais robusta e precisa.

  • 00:05:00 O palestrante discute o ensemble learning e como ele pode ser usado para melhorar a precisão dos modelos de aprendizado de máquina. O aprendizado conjunto envolve a combinação de várias hipóteses imperfeitas para obter uma hipótese mais rica que é potencialmente melhor. A palestra menciona dois métodos de aprendizado conjunto: bagging e boosting. A técnica de bagging envolve pegar um saco de hipóteses produzidas por diferentes algoritmos e combiná-las por meio de votação, enquanto o boosting envolve ajustar os pesos das hipóteses para dar mais peso àquelas com melhor desempenho. O palestrante explica como essas técnicas são usadas para generalizar separadores lineares para obter limites não lineares e fornece um exemplo de politopo.

  • 00:10:00 É introduzido o conceito de votação por maioria para classificação, em que múltiplas hipóteses fazem previsões e a classe que recebe mais votos é escolhida. Quanto maior o número de hipóteses, mais improvável é que a maioria esteja incorreta. Quando as hipóteses são independentes, a votação majoritária se torna mais robusta. Uma equação matemática é introduzida para calcular a probabilidade da maioria cometer um erro com base no número de hipóteses e na probabilidade de erro. É fornecido um exemplo em que cinco hipóteses com erros de 10% fornecem uma probabilidade inferior a 1% do voto da maioria estar incorreto, demonstrando a robustez do método de voto da maioria.

  • 00:15:00 O vídeo discute as limitações das técnicas básicas de aprendizado conjunto, como a suposição de hipóteses independentes. Para lidar com essas limitações, um voto de maioria ponderada pode ser usado para ajustar as correlações e dar pesos maiores a melhores hipóteses. Essa técnica é conhecida como boosting e é feita usando um aprendiz de base que produz classificadores, que são agrupados para obter uma maior precisão. A estrutura de reforço foi capaz de superar a crença de que algoritmos ruins devem ser abandonados em favor de projetar melhores, combinando suas hipóteses para melhorar a precisão geral.

  • 00:20:00 O palestrante discute o conceito de reforço no aprendizado conjunto, que envolve o uso de um aprendiz básico para produzir hipóteses e, em seguida, perturbar os pesos do conjunto de treinamento para obter uma hipótese diferente. Ao aumentar os pesos das instâncias mal classificadas, há uma chance maior de obter uma hipótese mais precisa. O palestrante explica que as técnicas de aprendizado supervisionado podem ser ajustadas para trabalhar com um conjunto de treinamento ponderado, e isso pode ser feito simplesmente alterando o objetivo e introduzindo um peso para cada ponto de dados. Este método permite a criação de uma combinação ponderada da função de perda de cada ponto de dados.

  • 00:25:00 O palestrante explica o conceito de boosting no ensemble learning. Boosting envolve aprender com um conjunto de treinamento ponderado onde as instâncias com pesos altos são tendenciosas para a classificação correta. A estrutura de reforço inclui um loop em que uma hipótese é aprendida repetidamente a partir do conjunto de dados com pesos correspondentes, as instâncias são verificadas quanto à classificação incorreta e seus pesos são aumentados e, no final, a hipótese dentro da amostra é uma maioria ponderada das hipóteses geradas usando pesos que são proporcionais à sua precisão. Existem dois tipos de pesos, aqueles para os pontos de dados e aqueles para as hipóteses. O palestrante enfatiza que a ideia é melhorar a precisão da classificação e que qualquer algoritmo que trabalhe com conjuntos de dados ponderados pode ser usado como aprendizado base para reforço.

  • 00:30:00 O palestrante discute o conceito de aumentar os pesos de pontos de dados mal classificados em algoritmos de reforço. Eles explicam que isso tem o efeito de diminuir implicitamente os pesos dos pontos de dados classificados corretamente, mas é a magnitude relativa dos pesos que importa. O algoritmo então minimiza a perda e tenta classificar corretamente para evitar pagar um preço mais alto pela classificação incorreta. O palestrante também observa que, se o conjunto de treinamento não seguir a mesma distribuição do conjunto de teste, pesos podem ser usados para perturbar a distribuição. No entanto, o reforço normalmente não é usado para essa finalidade, pois aumentar os pesos das hipóteses imperfeitas pode evitar o superajuste e melhorar a generalização.

  • 00:35:00 O instrutor explica o funcionamento do algoritmo de reforço adaptativo com um exemplo visual de geração de várias hipóteses usando um conjunto de dados simples. Usando votos majoritários ponderados, o algoritmo atribui pesos proporcionais à precisão de cada hipótese, e eles são usados para calcular uma combinação ponderada das hipóteses de melhor desempenho. O conjunto formado a partir dessa combinação é então usado para fazer previsões.

  • 00:40:00 O palestrante explica o conceito de combinar várias hipóteses para evitar o overfitting. Eles argumentam que, mesmo que tenhamos uma hipótese perfeita, ainda é melhor combinar várias hipóteses para evitar o overfitting. O palestrante observa que uma rede neural profunda pode levar a uma precisão perfeita no conjunto de treinamento, mas não é simples e rápida, que é o que queremos em um aprendiz básico usado em conjunto com o aprendizado conjunto. O palestrante também descreve o algoritmo Adaboost e como ele funciona para atribuir pesos a hipóteses e instâncias de dados.

  • 00:45:00 O palestrante explica a teoria por trás do boosting e suas vantagens. Boosting funciona bem com aprendizes fracos, que são algoritmos que produzem hipóteses que são pelo menos tão boas quanto um classificador aleatório. O objetivo é melhorar a precisão e o desempenho. O palestrante explica como calcular os pesos para instâncias de dados e hipóteses e como normalizá-los. O boosting tende a ser robusto ao overfitting e é simples de implementar, tornando-o aplicável a muitos problemas. Além disso, o aumento gera várias hipóteses, não apenas uma, o que leva a uma melhor precisão.

  • 00:50:00 Aprendemos sobre boosting e ensemble learning, que é uma técnica usada para combinar previsões de vários modelos. Boosting é um método de geração de múltiplas hipóteses com diferentes pesos, combinando todas elas e selecionando a melhor. Como uma aproximação ao aprendizado bayesiano, é uma maneira tratável de gerar uma hipótese por vez, sendo seletiva na combinação de várias hipóteses para generalização. Boosting tem várias aplicações industriais, incluindo o Kinect produzido pela Microsoft e o desafio Netflix, onde foi usado para melhorar seu sistema de recomendação em 10%. O boosting geralmente é muito bom para combinar previsões de especialistas, ao contrário de outras heurísticas, que nem sempre funcionam e vêm sem nenhuma teoria.

  • 00:55:00 O palestrante discute as origens do Kaggle e como eles começaram a organizar competições de ciência de dados. Ele remonta a 2006, quando a Netflix lançou uma competição para melhorar a precisão em 10%. A primeira equipe, Bellcore, obteve uma melhoria de 8,43%, mas não atingiu o limite. O palestrante então descreve como, ao longo dos anos, as equipes começaram a colaborar, usando o aprendizado conjunto, e como a equipe do grande prêmio foi formada. As equipes se uniram para dividir um milhão de dólares do grande prêmio, proporcional à melhoria na pontuação da equipe que cada algoritmo aporta. A equipe do grande prêmio conseguiu chegar a 9,46% formando um grande exemplo de muitos pesquisadores, e no último dia Bellcore, pragmática e caótica se apresentou, ganhando o prêmio.

  • 01:00:00 O orador discute a importância e o valor da aprendizagem coletiva, particularmente no contexto de vitórias em competições. Ele usa o exemplo da equipe Pragmatic Chaos da BellKor, vencedora do Prêmio Netflix, utilizando técnicas de aprendizado conjunto para melhorar sua precisão em alguns pontos percentuais. Ele observa que o aprendizado conjunto é particularmente útil ao começar com soluções já razoavelmente boas, em vez de alunos fracos e que, combinando hipóteses de diferentes modelos, é possível obter um aumento na precisão. Além disso, ele menciona que o aprendizado conjunto se presta bem à computação distribuída e pode ser alcançado por meio de várias máquinas ou núcleos.

  • 01:05:00 O instrutor explica o conceito de fazer uma combinação ponderada de previsões em vez de hipóteses para evitar custos mais altos. A ideia é que toda hipótese fará uma previsão e essas previsões serão combinadas de acordo com os pesos. No entanto, deve-se ter cuidado ao combinar hipóteses, pois às vezes a média de duas hipóteses pode realmente ser pior do que as hipóteses individuais por conta própria. O instrutor também menciona que os pesos podem precisar ser normalizados dependendo se a tarefa é de classificação ou regressão.
 

CS480/680 Aula 23: Normalizando fluxos (Priyank Jaini)



CS480/680 Aula 23: Normalizando fluxos (Priyank Jaini)

Nesta palestra, Priyank Jaini discute fluxos de normalização como um método para estimativa de densidade e apresenta como eles diferem de outros modelos generativos, como GANs e VAEs. Jaini explica o conceito de conservação da massa de probabilidade e como ele é usado para derivar a fórmula de mudança de variáveis em fluxos de normalização. Ele explica ainda o processo de construção da estrutura triangular na normalização de fluxos usando famílias de transformações e o conceito de matrizes de permutação. Jaini também introduz o conceito de fluxos de soma de quadrados (SOS), que usam polinômios de ordem superior e podem capturar qualquer densidade alvo, tornando-os universais. Por fim, Jaini discute o espaço latente e seus benefícios em métodos baseados em fluxo para geração de imagens e pede ao público que reflita sobre as possíveis desvantagens dos modelos baseados em fluxo.

Nesta palestra sobre fluxos normalizados por Priyank Jaini, ele discute os desafios de capturar transformações de alta dimensão com um grande número de parâmetros. A normalização dos fluxos exige que ambas as dimensões sejam iguais para obter uma representação exata, ao contrário das GANs que usam gargalos para superar tais problemas. Jaini destaca que aprender os parâmetros associados com conjuntos de dados de alta dimensão em experimentos de normalização de fluxos pode ser difícil. Ele também aborda questões sobre como a normalização de fluxos pode capturar distribuições multimodais e oferece um código para implementar transformações afins lineares.

  • 00:00:00 O aluno de doutorado Priyank Jaini discute fluxos de normalização como uma família de modelos generativos profundos para resolver o problema de estimativa de densidade, que constitui um problema central no aprendizado não supervisionado. Jaini explica que a estimativa de densidade tem uma ampla gama de aplicações em aprendizado de máquina, como amostragem importante, inferência bayesiana e síntese de imagens. Jaini também faz uma breve introdução sobre como os fluxos de normalização são diferentes dos autoencoders variacionais (VAEs) e das redes adversárias generativas (GANs), que foram discutidos em palestras anteriores. Ele propõe que os fluxos de normalização são úteis para modelos generativos condicionais e podem ser usados para estimativa de densidade.

  • 00:05:00 O palestrante discute a estrutura para modelos generativos, incluindo Generative Adversarial Networks (GANs) e Variational Autoencoders (VAEs), e apresenta fluxos de normalização como uma abordagem alternativa. Ambos GANs e VAEs usam uma distribuição de origem e uma transformação para gerar exemplos sintéticos ou reconstruir dados, mas eles representam as funções de densidade implicitamente em vez de explicitamente. Em contraste, os fluxos de normalização fornecem uma representação explícita das funções de densidade e trabalham com o princípio da conservação da massa de probabilidade. O objetivo é aprender uma transformação que transforma uma distribuição de origem simples (por exemplo, gaussiana) em uma distribuição de destino mais complicada para aproximar a verdadeira distribuição de dados.

  • 00:10:00 Priyank Jaini apresenta o conceito de conservação da massa de probabilidade e como ele é usado para derivar a fórmula de mudança de variáveis. Ele dá um exemplo de variável aleatória no intervalo 0-1 e aplica a função T de Z, que resulta em uma variável aleatória uniforme com densidade de probabilidade 1/3. Ele explica que a fórmula de mudança de variáveis é usada para encontrar a densidade de uma variável aleatória de destino X em termos da variável aleatória de origem Z e da função T. Ele estende a fórmula para o caso multivariado, onde a função T é aprendida de Rd para Rd, e a fórmula se torna QX = PZ vezes o determinante do gradiente de T vezes o inverso.

  • 00:15:00 O palestrante explica o conceito de fluxos de normalização, que envolve aprender uma função que mapeia um determinado vetor de entrada, X, para outro vetor, Z. A função, denotada como D, é composta de funções univariadas, T1 a TD , que recebe os componentes de X e produz os componentes de Z. O objetivo é aproximar a densidade do conjunto de dados de entrada, QX, usando uma densidade de fonte simples PZ e maximizando a probabilidade dos pontos de dados usando a mudança de variáveis Fórmula. No entanto, surgem alguns problemas, incluindo a função D que precisa ser invertível e bijetiva.

  • 00:20:00 O palestrante discute como calcular o espaço latente dados apenas os dados observados. Para fazer isso, a função inversa da função de mapeamento é necessária. No entanto, calcular o determinante na prática é caro, então o palestrante introduziu o conceito de mapas triangulares, onde o cálculo do determinante é fácil. A palestra então explica que a pesquisa de fluxo de normalização é focada principalmente na construção dessas transformações que são triangulares, para que a estimativa de densidade possa ser feita e como essas transformações podem ser usadas em diferentes fluxos de normalização.

  • 00:25:00 O palestrante explica o processo de construção de uma estrutura triangular para normalização de fluxos. A estrutura envolve a escolha de uma densidade simples, P(Z), para aproximar uma dada densidade, Q(X). A densidade P(Z) pode ser qualquer distribuição de probabilidade, como uma distribuição normal ou uniforme. Inicialmente, uma transformação t1 é usada para obter X1 do Conjunto 1. Então, à medida que as iterações continuam, a transformação t2 toma placas em 1 e Z2 como entrada, fornecendo X2. O processo continua até que TD tome Z1, Z2, ..., até ZD como entrada e forneça XT como saída. O objetivo é maximizar a verossimilhança otimizando uma verossimilhança de log negativo, o que envolve encontrar a soma do logaritmo dos elementos diagonais da matriz. O palestrante fornece exemplos de famílias de transformações que podem ser usadas para construir a estrutura triangular e explica como a densidade conjunta pode ser escrita como um produto das distribuições marginais e condicionais.

  • 00:30:00 O palestrante discute o conceito de normalização de fluxos. As distribuições normais são condicionadas aos dados e são funções dos dados. Uma transformação é aprendida de gaussiana padrão para esta distribuição normal. A transformação é feita iterativamente e a função resultante é triangular. Ao empilhar essas transformações, forma-se um fluxo auto-regressivo de máscara, permitindo uma transformação mais complexa com múltiplas variáveis aleatórias. O determinante de cada transformação e a transformação final podem ser facilmente calculados tomando o Jacobiano e o inverso. Os parâmetros que definem a transformação são treinados minimizando uma verossimilhança logarítmica.

  • 00:35:00 O apresentador explica como usar uma matriz de permutação para mudar a ordem de variáveis aleatórias e quebrar correlações para criar uma transformação mais complexa na estimativa de densidade. Ao empilhar várias transformações, a complexidade da transformação é aumentada, permitindo a capacidade de capturar qualquer densidade na vida real, mesmo que não siga uma boa forma. No entanto, uma vez que a permutação é aplicada, a transformação não é mais triangular, tornando o Jacobiano computacionalmente caro. O método de usar uma matriz de permutação economiza tempo e aproxima a transformação completa.

  • 00:40:00 O palestrante discute os vários métodos de transformação usados na normalização de fluxos. Ele explica que o Real NVP é um método de transformação linear que divide a entrada em duas partes, aplica uma transformação linear a uma parte e deixa a outra parte inalterada. Eles então empilham várias camadas disso para construir transformações mais complicadas. O palestrante também menciona que os fluxos autorregressivos neurais usam redes neurais profundas em vez de transformações lineares e são universais. Além disso, ele fala sobre seu trabalho que propõe o uso de soma de quadrados de polinômios em vez de transformações lineares ou redes neurais. Este método usa polinômios de alto grau com coeficientes que vêm de outra rede neural e também é universal.

  • 00:45:00 O palestrante discute as propriedades dos fluxos de soma de quadrados (SOS), que são uma generalização da soma de quadrados de polinômios anteriormente explorada em ciência da computação e otimização. Ao contrário de outros métodos, os fluxos SOS usam polinômios de ordem superior que podem controlar momentos de ordem superior da distribuição de destino, como curtose e assimetria, sem nenhuma restrição no coeficiente. Os fluxos SOS são mais fáceis de treinar e podem capturar qualquer densidade alvo, tornando-os universais, com aplicações em simulação estocástica. O palestrante também apresenta uma arquitetura chamada "Glow" que usa convoluções cruzadas invertíveis e camadas de acoplamento afim para produzir imagens que podem interpolar rostos para uma versão mais antiga.

  • 00:50:00 Priyank Jaini explica a arquitetura dos fluxos de normalização e como eles podem ser usados para geração de imagens. O algoritmo funciona usando uma camada de acoplamento afim com múltiplas expressões e uma matriz de rotação aleatória, W. Eles fixam o determinante da matriz usando uma decomposição LU. Usando isso, eles podem interpolar entre imagens de idosos e jovens, transformando uma imagem de entrada em uma representação latente e, em seguida, movendo-se em uma direção específica dentro do espaço latente para alcançar o resultado desejado. Os resultados mostram que as imagens geradas são nítidas, contradizendo as suposições anteriores de que as imagens geradas com probabilidade logarítmica seriam borradas.

  • 00:55:00 O palestrante discute o conceito de espaço latente, que captura certas propriedades da entrada e é uma distribuição oculta usada em métodos baseados em fluxo para geração de imagens. O palestrante fornece um exemplo de interpolação linear usando o espaço latente para criar uma imagem de uma pessoa envelhecendo. O palestrante também destaca os benefícios dos modelos de fluxo normalizados, como a representação explícita de densidades e o uso de transformações triangulares eficientes para capturar o determinante jacobiano. No entanto, o palestrante também questiona o público sobre as possíveis desvantagens dos métodos baseados em fluxos, sendo uma delas a complexidade da computação.

  • 01:00:00 O palestrante discute os desafios de capturar transformações de alta dimensão com um grande número de parâmetros na normalização de fluxos. Enquanto as GANs usam um gargalo para superar esse problema, a normalização dos fluxos exige que ambas as dimensões sejam iguais para obter a representação exata. O palestrante destaca que as dimensões dos conjuntos de dados utilizados nos experimentos de normalização de fluxos são altas, o que dificulta o aprendizado dos parâmetros associados. O palestrante também responde a perguntas sobre como os fluxos de normalização podem capturar distribuições multimodais e como o treinamento nos pesos das redes neurais treina implicitamente nos parâmetros da rede.

  • 01:05:00 Priyank Jaini explica que forneceu cerca de cem linhas de código para implementar transformações lineares afins, que aprendeu com um tutorial de Eric Jack. Ele comenta que é um processo simples treinar essas redes e oferece o código para os interessados.
 

CS480/680 Aula 24: Aumento de gradiente, ensacamento, florestas de decisão



CS480/680 Aula 24: Aumento de gradiente, ensacamento, florestas de decisão

Esta palestra aborda aumento de gradiente, ensacamento e florestas de decisão em aprendizado de máquina. O aumento de gradiente envolve a adição de novos preditores com base no gradiente negativo da função de perda para o preditor anterior, levando a uma maior precisão nas tarefas de regressão. A palestra também explora como evitar o overfitting e otimizar o desempenho usando a regularização e interrompendo os processos de treinamento antecipadamente. Além disso, a palestra aborda bagging, que envolve subamostragem e combinação de diferentes aprendizes de base para obter uma previsão final. O uso de árvores de decisão como aprendizes básicos e a criação de florestas aleatórias também é discutido, e um exemplo da vida real do Microsoft Kinect usando florestas aleatórias para reconhecimento de movimento é fornecido. Os benefícios dos métodos ensemble para computação paralela são discutidos e a importância de entender as atualizações de peso em sistemas de aprendizado de máquina é enfatizada. Esta palestra aborda os possíveis problemas com pesos médios na combinação de preditores em redes neurais ou modelos ocultos de Markov, recomendando, em vez disso, a combinação de previsões por meio de um voto majoritário ou método de média. O professor também sugere vários cursos relacionados disponíveis na Universidade de Waterloo, vários cursos de pós-graduação em otimização e álgebra linear e um programa de ciência de dados de graduação focado em IA, aprendizado de máquina, sistemas de dados, estatística e tópicos de otimização. A palestra enfatiza a importância das abordagens algorítmicas sobre a sobreposição com estatísticas e a especialização em tópicos de ciência de dados em comparação com cursos gerais de ciência da computação.

  • 00:00:00 O instrutor discute o aumento de gradiente. Ele menciona que o algoritmo adaboost é excelente para classificação, mas não para regressão. Ele introduz o aumento de gradiente, onde o gradiente negativo da função de perda é calculado e o próximo preditor é ajustado a esse gradiente. Isso é um pouco contra-intuitivo, pois não ajusta o preditor à saída desejada, mas sim ao gradiente negativo. Isso emulará uma etapa de gradiente descendente e, ao aplicá-lo repetidamente, o preditor final será a soma de todos os preditores. Este método é particularmente útil para regressão. O instrutor explica que esse algoritmo pode ser usado com uma ampla gama de funções de perda e é uma solução para aumentar a regressão.

  • 00:05:00 É explicado o conceito de gradient boosting, onde a cada passo do algoritmo, um preditor com alguma função de perda acompanha a diferença entre o alvo e o valor predito. O gradiente negativo é então levado para aproximar os resíduos, e o próximo preditor é treinado para o conjunto de dados residual. O objetivo é reduzir o erro adicionando este novo preditor ao anterior. O pseudocódigo do algoritmo é então fornecido, onde inicialmente, o primeiro preditor é definido como uma constante minimizando as perdas para cada ponto de dados.

  • 00:10:00 O professor explica o aumento de gradiente, um conceito poderoso em aprendizado de máquina que combina vários alunos fracos em um único aluno forte. A ideia é começar com um preditor simples que é apenas uma constante e, em seguida, calcular um novo preditor a cada iteração, calculando um pseudo resíduo para cada ponto de dados, formando um novo conjunto de dados residuais, treinando um novo aprendiz básico com relação a esses dados definir e adicionar a nova hipótese multiplicada por algum comprimento de passo ao preditor. O comprimento do passo é selecionado minimizando uma expressão de otimização para dar um passo na direção do gradiente negativo para reduzir o erro. A atualização do peso ocorre quando o gradiente negativo é calculado, mas não é uma atualização do peso per se.

  • 00:15:00 O palestrante explica o processo de atualização de peso durante a fase de treinamento de um aprendiz base, que pode ser uma rede neural, árvore de decisão ou qualquer outro tipo de regressor. Eles esclarecem que ao otimizar o preditor, não há atualização de pesos, pois todas as funções, ou seja, FK-1, HK e Etha k, já estão otimizadas e com pesos fixos. A combinação das previsões dessas funções leva a um preditor que melhora gradualmente a cada passo, levando a uma função de menor perda. No entanto, o processo pode não levar a uma perda de zero a longo prazo.

  • 00:20:00 O instrutor discute o potencial de reduzir o erro gradualmente com aumento de gradiente, mas observa que isso pode levar ao overfitting, dependendo do espaço dos preditores e da quantidade de ruído presente nos dados. O algoritmo envolve a adição de mais hipóteses para criar uma amostra maior sem alterar os pesos. O instrutor questiona a turma sobre o risco de overfitting com o gradient boosting e conclui que existe o risco de overfitting, mas é possível prevenir essa ocorrência usando técnicas como regularização ou parada antecipada.

  • 00:25:00 O palestrante discute maneiras de reduzir o overfitting, incluindo a introdução de randomização e a interrupção do processo de treinamento antecipadamente usando um conjunto de validação. A palestra então apresenta a técnica de aumento de gradiente e menciona o pacote popular, XG boost, que foi otimizado para desempenho e precisão. O palestrante também destaca as principais diferenças entre bagging e boosting, incluindo o uso de hipóteses independentes e uma maioria de votos no bagging em comparação com a criação sequencial de hipóteses e sua combinação no boosting.

  • 00:30:00 O palestrante discute as técnicas de boosting e bagging no aprendizado de máquina. Boosting envolve previsões ponderadas, que permitem algumas hipóteses correlacionadas e hipóteses com precisão desequilibrada. O boosting é flexível e pode determinar os pesos de diferentes hipóteses para combater a questão da correlação. Em contraste, bagging envolve amostragem bootstrap, que envolve o treinamento de um aprendiz básico em um subconjunto de dados para reduzir a correlação entre as hipóteses. O palestrante indica que essas técnicas oferecem uma maneira prática de projetar algumas configurações em que as suposições relativas à independência da hipótese podem ser mantidas ou aproximadamente válidas, reduzindo restrições arbitrárias e tornando o modelo mais confiável.

  • 00:35:00 O palestrante discute a ideia de obter um preditor simples que seja melhor do que aleatório no paradigma de aprendizado in-sample, subamostrando os recursos para reduzir a correlação. Ao sub-amostrar ambos os pontos de dados e características, um conjunto de dados menor é obtido, que é alimentado ao aprendiz base, e o processo é repetido para cada preditor. As hipóteses resultantes são menos correlacionadas, o que torna o ensacamento uma opção melhor. O algoritmo bagging consiste em um loop onde K preditores são criados e, para cada preditor, os dados são subamostrados e o aprendiz base produz diferentes hipóteses dependendo da sobreposição.

  • 00:40:00 Aprendemos sobre bagging, que é uma técnica que funciona extraindo várias amostras aleatórias dos dados de treinamento para construir vários modelos. A ideia é gerar uma hipótese de cada um dos alunos base e depois combiná-los para fazer uma previsão final. Se o objetivo for a classificação, a previsão é feita pela maioria dos votos, enquanto que para a regressão, a decisão é tomada pela média da previsão. A prática popular na literatura é usar uma árvore de decisão como um aprendiz básico e, uma vez que várias árvores de decisão são treinadas em vários subconjuntos de dados, nós as chamamos de floresta aleatória. Florestas aleatórias também podem ser usadas para computação distribuída. O exemplo da vida real do Microsoft Kinect usando floresta aleatória para reconhecimento de postura e movimento é fornecido.

  • 00:45:00 O vídeo discute o Kinect e como ele produz um mapa de profundidade projetando uma nuvem de pontos no espectro infravermelho e usando uma câmera infravermelha para perceber os pontos. A Microsoft incorporou algum hardware para permitir a inferência em tempo real das informações de profundidade com base na distribuição de pontos. O Kinect tem a capacidade de rotular pixels para identificar partes do corpo e movimentos com uma abordagem de floresta aleatória, onde os pixels adjacentes são comparados ao valor de profundidade do pixel atual. A técnica de subamostragem é usada para simplificar os pixels vizinhos, e a comparação de distâncias com base no tamanho da parte do corpo fornece pistas para classificar o pixel atual, embora esse método seja considerado fraco.

  • 00:50:00 O palestrante discute os benefícios de bagging, boosting e outros métodos de ensemble, que permitem que vários classificadores leves sejam distribuídos e utilizados em paralelo, dimensionando bem para dados grandes. As GPUs se tornaram a chave para paralelizar a computação, e existem vários frameworks para manipular vetores, matrizes e tensores sem se preocupar com a paralelização. No entanto, o palestrante adverte contra o método intuitivo, mas não confiável, de calcular a média dos poderes de classificadores ou preditores, pois camadas e variáveis ocultas podem causar problemas com essa abordagem.

  • 00:55:00 O apresentador explica como tirar a média de sistemas individuais em uma arquitetura pode ser problemático. O apresentador desenha um exemplo no quadro em que usa variáveis booleanas que assumem valores de 0 e 1 para codificar um ou exclusivo. O apresentador configura pesos para as variáveis booleanas que são projetadas para calcular o ou do que entra. Os pesos configurados funcionam para encontrar cada um dos dois padrões e, desde que um deles seja acionado, o apresentador calcula o e/ou combinando-os através de outra unidade de retenção de lixo. O apresentador continua explicando como a alteração dos pesos pode afetar a saída do sistema.

  • 01:00:00 O palestrante discute os perigos dos pesos médios ao combinar preditores em redes neurais ou modelos ocultos de Markov. O perigo reside no fato de que pode haver soluções simétricas que não calculam a mesma coisa, e tirar a média dos pesos pode resultar em um preditor que não calcula a coisa correta. Em vez disso, a coisa mais segura a fazer é combinar as previsões, o que pode ser feito por meio de votação majoritária para classificação ou tomando a média para regressão. O palestrante também indica outros cursos relacionados a aprendizado de máquina oferecidos na Universidade de Waterloo para os interessados em aprender mais.

  • 01:05:00 O professor discute outros cursos que complementariam o curso atual sobre aprendizado de máquina. Em primeiro lugar, ele sugere fazer o curso de Álgebra Linear Computacional antes de fazer o curso atual, pois a álgebra linear é uma base crucial para o aprendizado de máquina. Além disso, ele menciona o curso chamado Theoretical Foundations of Machine Learning, que se concentra em um fator importante no aprendizado de máquina, ou seja, a complexidade dos dados. Ele explica como determinar o nível de precisão alcançável com uma certa quantidade de dados é uma questão complexa, portanto, o curso visa derivar princípios que determinam a quantidade de dados necessária para atingir o nível desejado de precisão. Por fim, o professor menciona outros cursos de pós-graduação, como Otimização para Ciência de Dados e Fundamentos de Otimização, que são benéficos para a compreensão dos algoritmos de aprendizado de máquina.

  • 01:10:00 O palestrante discute os cursos e programas disponíveis relacionados à ciência de dados que os alunos podem fazer. Esses cursos variam de cursos de nível 800 que não são oferecidos regularmente a programas de ciência de dados nos níveis de graduação e pós-graduação. O palestrante aponta que, embora possa haver alguma sobreposição entre este curso e os cursos de estatística, a abordagem aqui é mais algorítmica. Os programas de ciência de dados abrangem tópicos na interseção de IA, aprendizado de máquina, sistemas de dados, estatísticas e otimização. Os cursos que os alunos fazem nesses programas enfatizam a especialização em tópicos de ciência de dados, enquanto um mestrado geral em ciência da computação exige amplitude em diferentes tópicos.