Sobes.tech
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.