Modelos convolucionais - Parte II
Exercício 1
Considere um bloco em uma ResNet, expresse a saída desse bloco como $a^{[l+3]}$ em termos de $W^{[l+1]}$, $W^{[l+2]}$, $b^{[l+1]}$, $b^{[l+2]}$, $a^{[l]}$, $a^{[l+1]}$, $a^{[l+1]}$ e a função de ativação $g(x)$.
Resposta:
Exercício 2
Por que as skip-connections (conexões de salto) melhoram o desempenho da rede? Considere os casos de forward e back-propagation.
Resposta:
As skip-connections permitem que os gradientes fluam mais facilmente pelas camadas, mitigando o problema de vanishing gradient, onde o gradiente da função de perda torna-se muito pequeno nas camadas mais profundas da rede, dificultando o aprendizado. Outro problema é o exploding gradient, quando o gradiente da função de perda torna-se muito grande, levando a instabilidade no aprendizado. As skip-connections podem ajudar a regularizar o aprendizado e reduzir a probabilidade de explosoes de gradiente.
Durante o forward pass, as saídas de uma camada rasa são somadas as saídas de uma camada mais profunda antes de serem passadas para a próxima camada. Isso significa que as informações de ambas as camadas são combinadas para formar a entrada da próxima camada. Durante o backward pass, os erros são propagados de volta através da rede. As skip-connections permitem que os erros sejam propagados de volta para as camadas mais rasas da rede, o que ajuda a melhorar o aprendizado nestas camadas.
Exercício 3
Suponha um volume de entrada com dimensões 64 x 64 x 16:
Quantos parâmetros possui um filtro 1 x 1 (incluindo o bias)?
Quantos parâmetros possui um filtro 5 x 5 (incluindo o bias)?
Quantos parâmetros possui um filtro 9 x 9 (incluindo o bias)?
Resposta:
Exercício 4
Quais são motivos mais comuns para o uso de implementações de código aberto de ConvNets (o modelo e/ou pesos)?
Resposta:
Se você estiver usando uma arquitetura CNN específica que tenha sido treinada anteriormente, poderá usar seus parâmetros/pesos pré-treinados em vez de inicialização aleatória para resolver seu problema (os modelos pré-treinados podem ter sido treinados em grandes conjuntos de dados, como ImageNet, e a reutilização de seus pesos, principalmente nas camadas iniciais pode economizar muito tempo). Além disso, é uma maneira conveniente de trabalhar e implementar arquiteturas mais complexas baseados em redes convolucionais.
Exercício 5
Qual sequência de dois filtros você pode utilizar para atingir o mesmo campo receptivo efetivo de um filtro 9 x 9? Qual seria a vantagem de fazer essa mudança?
Resposta:
Dois filtros 5 × 5 possuem o mesmo campo efetivo do filtro 9 × 9. A combinação de dois filtros menores geralmente englobam um menor número de parâmetros. Mais especificamente, dois filtros 5 × 5 possuem em conjunto 52(26 ∗ 2) parâmetros enquanto um único filtro 9 × 9 contem 82 parâmetros. Uma vantagem de utilizar mais filtros menores é o fato de introduzir mais não-linearidade (através das funções de ativação) na rede.
Exercício 6
Na GoogLeNet existe mais de uma camada SoftMax. Como elas melhoram o desempenho da rede?
Resposta:
GoogLeNet incorpora dois classificadores auxiliares colocados estrategicamente na arquitetura da rede. Estas são essencialmente mini versões do classificador final, anexadas a camadas intermediárias após módulos Inception específicos. Cada classificador auxiliar possui sua própria camada SoftMax, responsável por gerar probabilidades de classe durante o processo de treinamento.
Esses classificadores auxiliares têm dois propósitos:
(i) Regularização: Ajudam a prevenir o overfitting ao introduzir objetivos de treinamento adicionais, orientando a rede para uma melhor generalização.
(ii) Fluxo de gradiente: Eles podem melhorar o fluxo de gradientes durante a retropropagação, especial- ̃ mente em redes mais profundas, garantindo que as camadas anteriores recebam atualizações informativas durante o treinamento.
Ao combinar módulos Inception, classificadores auxiliares e outras técnicas, o GoogLeNet alcançou avanços significativos na precisão da classificação de imagens e eficiência computacional em comparação com modelos anteriores.