Junior — Senior
O que é profundidade estocástica e por que ela é usada no EfficientNet?
sobes.tech IA
Resposta da IA
Stochastic Depth é uma técnica de regularização utilizada em redes neurais profundas, incluindo o EfficientNet. A ideia é pular (desativar) aleatoriamente algumas camadas ou blocos da rede durante o treino com uma certa probabilidade.
Para que serve isso?
- Permite treinar redes muito profundas, reduzindo o sobreajuste.
- Melhora a capacidade de generalização do modelo.
- Acelera o treino, pois algumas camadas não são calculadas a cada passo.
No EfficientNet, o stochastic depth é aplicado aos blocos residuais: em cada passo de treino, o bloco é ou pulado (passagem direta sem alterações) ou usado normalmente. Durante a inferência, todos os blocos estão ativos.
Isso ajuda o EfficientNet a alcançar alta qualidade com menos parâmetros e cálculos.
Pode-se imaginar assim:
if training:
if random() < drop_prob:
# pular o bloco
output = input
else:
output = block(input)
else:
output = block(input)
Assim, stochastic depth é uma forma de tornar o treino mais robusto e eficiente.