Para citar este trabalho use um dos padrões abaixo:
Apesar de observarmos um aumento expressivo no volume de informações disponíveis em algumas áreas do conhecimento, existem ainda alguns problemas em que há uma escassez de dados para o treinamento de modelos de aprendizado de máquina. Por exemplo, no projeto de interfaces cérebro-computador (BCIs, do inglês brain-computer interfaces), a quantidade e a duração dos registros de EEG costumam ser bastante limitadas. Neste contexto, uma perspectiva interessante consiste em usar modelos generativos de redes neurais para tentar sintetizar novos dados cujas características sejam compatíveis com aquelas encontradas nos padrões vistos na realidade. Dentre os modelos existentes na literatura, destacamos os variational autoencoders (VAE), que aprendem a modelar uma distribuição de probabilidades na camada de código, e as generative adversarial networks (GANs), as quais desenvolvem a habilidade de gerar dados consistentes por meio de um jogo estabelecido entre a rede geradora e uma rede discriminadora. Este projeto de iniciação científica estudou os principais modelos de redes neurais generativas e, ademais, investigou sua aplicação no contexto de sistemas BCI. Inicialmente, foi realizada a análise do funcionamento destas técnicas considerando bases de dados consolidadas na literatura e, por fim, utilizou o modelo de maior destaque para sintetizar novos sinais de EEG no tempo e em frequência.
Apoio/Financiamento da Pesquisa: PIBIC/CNPq
DANIEL CANDELORO CUNHA
Primeiramente, parabéns pelo trabalho. O texto está muito bem escrito e demonstra domínio sobre o tema. Gostaria de colocar algumas questões.
1) Você poderia explicar como é a função de ativação selu, quais suas vantagens em relação a outras funções de ativações mais corriqueiras, como relu, tanh, sigmoide? Diferentes ativações foram testadas?
2) Você poderia me explicar brevemente como funciona o otimizador RMSprop?
3) Alguma técnica de regularização foi utilizada? Ou essas redes já são robustas a problemas de overfitting?
4) Você poderia explicar com mais detalhes como é a técnica de minibatch discrimination?
5) Não entendi muito bem como funciona a AAE, a rede discriminadora vai tentar dizer se a imagem codificada foi gerada a partir de uma imagem real? Nesse caso, como você gera as imagens codificadas artificiais, que a discriminadora deve identificar como 'não reais'? Você poderia me explicar com mais detalhes?
6) Na Figura 7, parece-me que a AAE gerou sempre a mesma saída, para qualquer entrada da rede, por que você acha que isso ocorreu? O que você acha que poderia alterar nos hiperparâmetros, ou no treinamento da AAE para que ela produzisse resultados mais razoáveis para este problema da LSUN:Bedroom?
7) O ganho de desempenho dos classificadores apresentados nas Tabelas 1 e 2 são relativos ao problema final? Quer dizer, a rede generativa foi usada para aumentar o conjunto de treino dos classificadores, e então o desempenho desses classificadores foi avaliado em relação a um conjunto de validação/teste composto somente por dados reais?
Com ~200 mil publicações revisadas por pesquisadores do mundo todo, o Galoá impulsiona cientistas na descoberta de pesquisas de ponta por meio de nossa plataforma indexada.
Confira nossos produtos e como podemos ajudá-lo a dar mais alcance para sua pesquisa:
Esse proceedings é identificado por um DOI , para usar em citações ou referências bibliográficas. Atenção: este não é um DOI para o jornal e, como tal, não pode ser usado em Lattes para identificar um trabalho específico.
Verifique o link "Como citar" na página do trabalho, para ver como citar corretamente o artigo
THIAGO SOARES LAITZ
Olá, Daniel, tudo bem ? desculpe pela demora, vou tentar responder suas perguntas de forma resumida:
1)A função SELU, diferentemente das outras funções de ativação como a ReLU e LeakyReLU não possui pontos onde a derivada não existe, então se você olhar alguma imagem no GOOGLE comparando essas funções vai perceber que ela tem uma curvatura mais suave. Mas o motivo pelo qual utilizamos essa função foram sugestões em artigos, nos quais é relatado que para aumentar a estabilidade da GAN deveríamos utilizar essa função de ativação, além de outros detalhes como remover toda camada densa da rede geradora (pode perceber que elas apenas foram usadas como uma forma de "reshape" (sem função de ativação). Com relação aos testes, sim, foi realizado testes com outras funções em especial a ReLU e tangente hiperbólica, mas de fato a selu se mostrou mais estável durante o treinamento.
2)O otimizador RSMProp era considerado um dos principais antes do surgimento do Adam, e o princípio de funcionamento dele se baseia em um decaimento exponencial dos últimos gradientes utilizados, então a ideia é direcionar os pesos com base não apenas no último gradiente calculado, mas também nos anteriores (com mais relevância para os mais recentes). A grande questão de termos utilizado o RMSProp tem a ver com a convergência do treinamento, em diversas situações que pude experimentar no Mnist e LSUN:bedroom o Adam não foi muito bom para convergir (os dados gerados ficavam ruins) e tive que usar ou o RMSProp ou o SGD (se quiser entender melhor como esses otimizadores funcionam recomendo fortemente o capítulo 11 do livro "hands on machine learning v2" do Gerón).
3)Com relação às técnicas de regularização, no AAE e VAE foi testado o uso da regularização l1 e l2, com destaque para a l1, mas para uma rede como a GAN (que obteve o melhor desempenho) que recebe como entrada ruídos aleatórios, não faz muito sentido aplicar essas regularizações no ruído, já que o overfitting da rede se dá em um estad o chamado "colapso de modo da rede geradora", onde a rede geradora gera imagens que são todas idênticas (semelhante ao que aconteceu na imagem do AAE que você comentou) e para evitarmos que isso acontecesse usamos técnicas como: remover camadas densas do gerador, utilizar a função selu e a técnica do mini batch discrimination (apenas no lsun:bedroom).
4)O minibatch discrimination foi descrito no artigo "Improved techniques for training GANs" e de forma bem resumida, a ideia é fazer com que a rede discriminadora tenha acesso a várias características ao mesmo tempo, então multiplicamos a entrada da rede discriminadora por um tensor (para misturar as features) e depois se calcula a distância L1 entre as linhas dessa matriz. Nas palavras do autor: "any discriminator model that looks at multiple examples in combination, rather than in isolation, could potentially help avoid collapse of the generator".
5)Diferentemente da GAN, o discriminador do AAE não busca diferenciar se a imagem é real ou falsa (até porque a imagem fictícia não é gerada durante o treinamento, apenas após esse processo ao enviar um vetor de amostras de uma função de probabilidade como a Gaussiana) e sim diferenciar se o vetor de entrada é proveniente do codificador ou se é uma amostra da função escolhida. Em outras palavras, ele deve dizer se esse vetor é de uma amostragem da distribuição real ou se ele foi gerado pelo codificador. Basicamente o treinamento tenta fazer com que o codificador forneça dados que se pareçam muito com a distribuição escolhida.
6)Diferentemente do que acontece com a GAN no colapso de modo, acredito que gerar imagens exatamente iguais aconteceram devido a limitações do modelo por si só, não encontramos nenhum artigo que conseguiu usar um AAE para gerar imagens tão complexas como as do LSUN:bedroom, portanto não acredito que simplesmente mudar um hiperparâmetro resolveria (e tentamos muito). Mas é válido dizer que esse modelo funcionou muito bem para imagens mais simples como os do Mnist.
7)É exatamente como você disse a rede generativa foi apenas usada para expandir o banco de dados de treinamento dos classificadores, mas os dados de teste eram constituidos exclusivamente de dados reais, então de fato houve uma melhoria nos classificadores relativos ao problema final (classificar em 12 Hz ou 15 Hz).
DANIEL CANDELORO CUNHA
Muito obrigado pelas respostas Thiago. Mais uma vez, parabéns pelo trabalho, ficou excelente!
THIAGO SOARES LAITZ
Obrigado pelo interesse, Daniel !!