O que é uma camada convolucional 1D em aprendizado profundo?

13

Eu tenho uma boa compreensão geral do papel e mecanismo das camadas convolucionais no Deep Learning para processamento de imagens no caso de implementações 2D ou 3D - elas "simplesmente" tentam capturar padrões 2D nas imagens (em 3 canais no caso de 3D).

Mas, recentemente, esbarrei em camadas convolucionais 1D no contexto do Processamento de linguagem natural, o que é uma espécie de surpresa para mim, porque, no meu entendimento, a convolução 2D é especialmente usada para capturar padrões 2D que são impossíveis de revelar na forma 1D (vetor) de pixels da imagem. Qual é a lógica por trás da convolução 1D?

Hendrik
fonte

Respostas:

16

Em resumo, não há nada de especial no número de dimensões para convolução. Qualquer dimensionalidade da convolução pode ser considerada, se for adequada.

O número de dimensões é uma propriedade do problema que está sendo resolvido. Por exemplo, 1D para sinais de áudio, 2D para imagens, 3D para filmes. . .

Ignorando brevemente o número de dimensões, pode-se considerar os pontos fortes de uma rede neural convolucional (CNN), em comparação com modelos totalmente conectados, ao lidar com certos tipos de dados:

  1. O uso de pesos compartilhados para cada local que a convolução processa reduz significativamente o número de parâmetros que precisam ser aprendidos, em comparação com os mesmos dados processados ​​por meio de uma rede totalmente conectada.

  2. Pesos compartilhados são uma forma de regularização.

  3. A estrutura de um modelo convolucional faz fortes suposições sobre os relacionamentos locais nos dados, que quando verdadeiros o tornam um bom ajuste para o problema.

    3.1 Padrões locais fornecem bons dados preditivos (e / ou podem ser combinados de maneira útil em padrões preditivos mais complexos em camadas superiores)

    3.2 Os tipos de padrão encontrados nos dados podem ser encontrados em vários locais. Encontrar o mesmo padrão em um conjunto diferente de pontos de dados é significativo.

Essas propriedades das CNNs são independentes do número de dimensões. As CNNs unidimensionais trabalham com padrões em uma dimensão e tendem a ser úteis na análise de sinais sobre sinais de comprimento fixo. Eles funcionam bem para análise de sinais de áudio, por exemplo. Também para algum processamento de linguagem natural - embora as redes neurais recorrentes, que permitem diferentes comprimentos de sequência, possam ser mais adequadas, especialmente aquelas com arranjos de porta de memória, como LSTM ou GRU. Ainda assim, uma CNN pode ser mais fácil de gerenciar e você pode simplesmente preencher a entrada com um comprimento fixo.

Neil Slater
fonte
2D é apenas para imagens em escala de cinza? O que acontece quando você introduz o RGB?
Mohammad Athar
1
@MohammadAthar: RGB é representado como canais (ou mapas de recursos ) de informações 2D separadas, e geralmente considerado 2D também ao descrever camadas da CNN. Se você estivesse usando o TensorFlow ou o Keras, definitivamente usaria uma definição de camada Conv2D para lidar com imagens coloridas. No entanto, as implementações geralmente possuem estruturas 3D e 4D internamente para armazenar os pesos. . . e uma convolução 2D em vários canais é efetivamente um caso especial de uma convolução 3D matematicamente (onde as dimensões de entrada e de kernel devem corresponder à última camada). Portanto, esta é uma convenção de nomenclatura, tanto quanto qualquer outra coisa.
Neil Slater