Descubra como as camadas de abandono evitam o sobreajuste em redes neurais, melhorando a generalização, a robustez e o desempenho do modelo.
Uma camada de abandono é uma técnica de regularização poderosa, mas simples, utilizada em redes neurais (NN) para combater o sobreajuste. O sobreajuste ocorre quando um modelo aprende os dados de treinamento muito bem, incluindo seu ruído e idiossincrasias, o que prejudica sua capacidade de generalizar para dados novos e não vistos. A ideia central por detrás do dropout, introduzida por Geoffrey Hinton e os seus colegas num artigo inovador de 2014, consiste em "abandonar" aleatoriamente - ou remover temporariamente - os neurónios e as suas ligações durante cada etapa de treino. Isto evita que os neurónios se tornem demasiado dependentes uns dos outros, forçando a rede a aprender representações mais robustas e redundantes.
Durante o processo de treino do modelo, uma camada de abandono coloca aleatoriamente a zero as activações de uma fração de neurónios da camada anterior. A "taxa de abandono" é um hiperparâmetro que define a probabilidade de um neurónio ser abandonado. Por exemplo, uma taxa de desistência de 0,5 significa que cada neurónio tem 50% de hipóteses de ser ignorado durante uma determinada iteração de treino. Esse processo pode ser considerado como o treinamento de um grande número de redes reduzidas que compartilham pesos.
Ao alterar constantemente a arquitetura da rede, o abandono evita co-adaptações complexas, em que a saída de um neurónio é altamente dependente da presença de alguns outros neurónios específicos. Em vez disso, cada neurónio é encorajado a ser um detetor de caraterísticas mais útil e independente. Durante a fase de teste ou de inferência, a camada de abandono é desligada e todos os neurónios são utilizados. Para compensar o facto de estarem activos mais neurónios do que durante o treino, as saídas da camada são reduzidas pela taxa de desistência. Isto assegura que a saída esperada de cada neurónio permanece consistente entre o treino e o teste. Estruturas como o PyTorch e o TensorFlow tratam este escalonamento automaticamente nas suas implementações da camada de desistência.
O abandono é amplamente utilizado em vários domínios da inteligência artificial (IA) e da aprendizagem automática (ML):
O abandono é uma das várias técnicas utilizadas para regularização na aprendizagem profunda. Outras incluem:
Em resumo, a camada de Dropout é uma técnica de regularização simples, mas poderosa, essencial para treinar modelos robustos de aprendizagem profunda em várias aplicações, desde a visão computacional avançada até à PNL.