Modelos convolucionais - Parte I

Captura de Tela 2025-01-05 às 16.25.40.png

Exercício 1

Nas camadas mais profundas de uma rede neural convolucional, comparando com as camadas iniciais, o que tende a ocorrer com as dimensoes $nH$ (altura/height), $nW$ (largura/width) e $nC$ (número de canais/channels) das saídas?

Resposta:

$nH$ e $nW$ diminuem e $nC$ aumenta.

Exercício 2

Que tipo de camada você pode usar para reduzir (somente) o $nC$ de uma entrada? E qual tipo de camada você usaria para reduzir $nH$ e $nW$?

Resposta:

Para reduzir somente o $nC$, pode-se utilizar uma camada convolucional 1 × 1. Já para reduzir o $nH$ e o $nW$, uma camada de pooling pode ser utilizada.

Exercício 3

Imagine uma arquitetura contendo um volume de entrada 28 x 28 x 192 e 32 filtros 5 x 5.

  • Quantas multiplicações serão executadas com same padding e valid padding?

  • Em uma arquitetura onde são aplicados 16 filtros 1 x 1 antes da convolução com os filtros 5 x 5, mantendo o restante das operações e dimensões de entrada e saída, quantas multiplicações serão feitas agora?

Resposta:

Captura de Tela 2025-01-05 às 16.35.08.png

Exercício 4

Qual é a vantagem de utilizar convoluções 1 x 1 para reduzir o tamanho do volume de dados de entrada antes de aplicar convoluções 3 x 3 e 5 x 5 nos blocos de inception?

Captura de Tela 2025-01-05 às 16.26.33.png

Resposta:

Redes neurais profundas são computacionalmente caras. Assim, para reduzir a complexidade, os criadores da arquitetura limitam o número de canais de entrada adicionando uma convolução 1 × 1 extra antes das convoluções 3 × 3 ou 5 × 5. Embora adicionar uma operação extra possa parecer contra-intuitivo, as convoluções 1 × 1 são muito mais baratas do que as convoluções 5 × 5, e o número reduzido de canais de entrada também ajuda.

Exercício 5

Suponha que você irá criar uma rede com 3 camadas convolucionais (CONV), duas camadas de pooling (POOL) e 2 camadas fully connected (FC), em que ordem você colocaria essas camadas na rede?

Resposta:

Uma possível abordagem pode ser:

Entrada → CONV → CONV → POOL → CONV → POOL → FC → FC

Alternativamente, duas camadas de CONV antes do POOL final:

Entrada → CONV → POOL → CONV → CONV → POOL → FC → FC

Exercício 6

Por que a seguinte afirmação é falsa: “O treinamento de uma rede mais profunda (por exemplo, adicionando camadas extras) permite que a rede ajuste funções mais complexas e, portanto, sempre resulta em menor erro de treinamento.”

Captura de Tela 2025-01-05 às 16.22.47.png

Resposta:

Teoricamente, o erro da rede deveria diminuir ao adicionar mais camadas. Na prática, é muito mais difícil para o algoritmo de otimização treinar uma rede profunda. Isso faz com que o erro aumente na rede com mais camadas. Problemas como vanishing e exploding gradients, por exemplo, se tornam mais comuns.