Modelos convolucionais - Parte I
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:
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?
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.”
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.