Compartilhamento de tecnologia

A evolução e aplicação de funções de ativação em aprendizagem profunda: uma revisão

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Resumo

Este artigo revisa abrangentemente o desenvolvimento de funções de ativação no aprendizado profundo, desde as primeiras funções Sigmoid e Tanh, até a amplamente utilizada série ReLU, até as novas funções de ativação recentemente propostas, como Swish, Mish e GeLU. É realizada uma análise aprofundada das expressões matemáticas, características, vantagens, limitações e aplicações de várias funções de ativação em modelos típicos. Através de análise comparativa sistemática, este artigo discute os princípios de design, padrões de avaliação de desempenho e possíveis direções de desenvolvimento futuro de funções de ativação, fornecendo orientação teórica para a otimização e design de modelos de aprendizagem profunda.

1. Introdução

A função de ativação é um componente chave nas redes neurais, que introduz características não lineares na saída dos neurônios, permitindo que as redes neurais aprendam e representem mapeamentos não lineares complexos. Sem uma função de ativação, não importa quão profunda seja uma rede neural, ela só pode representar essencialmente transformações lineares, o que limita bastante a capacidade expressiva da rede.
Com o rápido desenvolvimento da aprendizagem profunda, o design e a seleção de funções de ativação tornaram-se fatores importantes que afetam o desempenho do modelo. Diferentes funções de ativação possuem características diferentes, como fluidez de gradiente, complexidade computacional, grau de não linearidade, etc. Essas características afetam diretamente a eficiência do treinamento, velocidade de convergência e desempenho final da rede neural.
Este artigo tem como objetivo revisar exaustivamente a evolução das funções de ativação, analisar profundamente as características de várias funções de ativação e explorar sua aplicação em modelos modernos de aprendizagem profunda. Discutiremos os seguintes aspectos:

  1. Funções de ativação clássicas: incluindo funções de ativação comumente usadas, como Sigmoid e Tanh.
  2. ReLU e suas variantes: incluindo ReLU, Leaky ReLU, PReLU, ELU, etc.
  3. Novas funções de ativação: funções recentemente propostas como Swish, Mish e GeLU.
  4. Funções de ativação para fins especiais: como Softmax, Maxout, etc.
  5. Comparação e seleção de funções de ativação: Discuta estratégias de seleção de funções de ativação em diferentes cenários.
  6. Perspectivas Futuras: Explore as possíveis direções de desenvolvimento da pesquisa da função de ativação.

Através desta revisão e análise sistemática, esperamos fornecer uma referência abrangente para pesquisadores e profissionais para ajudá-los a selecionar e usar melhor as funções de ativação no design de modelos de aprendizagem profunda.

2. Função de ativação clássica

2.1 Função sigmóide

A função Sigmóide é uma das primeiras funções de ativação amplamente utilizadas e sua expressão matemática é:
σ ( x ) = 1 1 + e − x sigma(x) = frac{1}{1 + e^{-x}}σ(x)=1+ex1
imagem.png

Características e benefícios:
  1. A faixa de saída é limitada: O intervalo de saída da função Sigmóide está entre (0, 1), o que a torna particularmente adequada para lidar com problemas de probabilidade.
  2. Suave e diferenciável: A função é suave e diferenciável em todo o domínio, o que é benéfico para a aplicação do algoritmo de gradiente descendente.
  3. Explicativo: A saída pode ser interpretada como probabilidades, especialmente adequada para a camada de saída de problemas de classificação binária.
Desvantagens e limitações:
  1. problema de gradiente desaparecendo: Quando o valor de entrada é grande ou pequeno, o gradiente é próximo de zero, o que pode levar ao problema do desaparecimento do gradiente em redes profundas.
  2. Centro diferente de zero de saída: A saída do Sigmoid é toda positiva, o que pode fazer com que a entrada do neurônio da próxima camada seja sempre positiva, afetando a velocidade de convergência do modelo.
  3. Complexidade computacional: Envolve operações exponenciais e a complexidade computacional é relativamente alta.
Cena aplicável:
  1. Redes neurais superficiais iniciais.
  2. Camada de saída para problemas de classificação binária.
  3. Cenários onde a saída precisa ser limitada ao intervalo (0, 1).
Comparação com outras funções:

Comparado com funções como ReLU que apareceram mais tarde, a aplicação do Sigmoid em redes profundas tem sido bastante limitada, principalmente devido ao seu problema de gradiente evanescente. No entanto, em algumas tarefas específicas (como a classificação binária), o sigmóide ainda é uma escolha eficaz.

2.2 Função Tanh

A função Tanh (tangente hiperbólica) pode ser considerada uma versão melhorada da função Sigmóide, e sua expressão matemática é:
tanh ⁡ ( x ) = ex − e − xex + e − x tanh(x) = frac{e^x - e^{-x}}{e^x + e^{-x}}Tanh-tã ...(x)=ex+exexex
imagem.png

Características e benefícios:
  1. saída central zero: O intervalo de saída da função Tanh está entre (-1, 1), o que resolve o problema do centro diferente de zero do Sigmóide.
  2. Gradiente mais forte: Em áreas onde a entrada é próxima de zero, o gradiente da função Tanh é maior que a função Sigmóide, o que ajuda a acelerar o aprendizado.
  3. Suave e diferenciável: Semelhante ao Sigmóide, Tanh também é suave e diferenciável.
Desvantagens e limitações:
  1. problema de gradiente desaparecendo: Embora melhorado em relação ao Sigmoid, Tanh ainda tem o problema de desaparecimento de gradientes quando o valor de entrada é grande ou pequeno.
  2. Complexidade computacional: Semelhante ao Sigmoid, Tanh também envolve operações exponenciais e possui alta complexidade computacional.
Cena aplicável:
  1. Melhor que o Sigmoid em cenários que exigem saída centrada em zero.
  2. Frequentemente usado em Redes Neurais Recorrentes (RNN) e Redes de Memória Longa e de Curto Prazo (LSTM).
  3. Usado em alguns cenários onde a saída normalizada é importante.
Melhoria e comparação:

A função Tanh pode ser considerada uma versão melhorada da função Sigmóide. A principal melhoria reside na centralização em zero da saída. Esse recurso faz com que o Tanh tenha um desempenho melhor que o Sigmoid em muitas situações, especialmente em redes profundas. Porém, em comparação com funções como ReLU que apareceram posteriormente, Tanh ainda tem o problema do desaparecimento do gradiente, o que pode afetar o desempenho do modelo em redes muito profundas.
As duas funções de ativação clássicas, Sigmoid e Tanh, desempenharam um papel importante nos primeiros dias do aprendizado profundo, e suas características e limitações também promoveram o desenvolvimento de funções de ativação subsequentes. Embora tenham sido substituídas por funções de ativação atualizadas em muitos cenários, elas ainda têm seu valor de aplicação exclusivo em tarefas e estruturas de rede específicas.

3. ReLU e suas variantes

3.1 ReLU (Unidade Linear Retificada)

A proposta da função ReLU é um marco importante no desenvolvimento de funções de ativação. Sua expressão matemática é simples:
ReLU ( x ) = máx ⁡ ( 0 , x ) texto{ReLU}(x) = máx(0, x)ReLU(x)=máx.(0,x)
imagem.png

Características e benefícios:
  1. O cálculo é simples: A complexidade computacional do ReLU é muito menor que a do Sigmoid e do Tanh, o que é benéfico para acelerar o treinamento da rede.
  2. O gradiente de mitigação desaparece: Para entrada positiva, o gradiente de ReLU é sempre 1, o que efetivamente alivia o problema do gradiente evanescente em redes profundas.
  3. ativação esparsa: ReLU pode fazer com que a saída de uma parte dos neurônios seja 0, levando a uma expressão esparsa da rede, o que é benéfico em determinadas tarefas.
  4. explicação biológica: As propriedades inibitórias unilaterais do ReLU são semelhantes ao comportamento dos neurônios biológicos.
Desvantagens e limitações:
  1. Problema "ReLU morto": Quando a entrada é negativa, o gradiente é zero, o que pode levar à desativação permanente do neurônio.
  2. saída central diferente de zero: As saídas do ReLU são todas valores não negativos, o que pode afetar o processo de aprendizagem da próxima camada.
Cena aplicável:
  1. Amplamente utilizado em redes neurais convolucionais profundas (como ResNet, VGG).
  2. Adequado para a maioria das redes neurais feedforward.
Comparação com outras funções:

Comparado com Sigmoid e Tanh, ReLU apresenta vantagens significativas em redes profundas, principalmente em termos de velocidade de treinamento e mitigação do desaparecimento de gradiente. No entanto, o problema do “ReLU morto” levou os pesquisadores a propor várias versões melhoradas.

3.2 ReLU com vazamento

Para resolver o problema da "morte" do ReLU, o Leaky ReLU foi proposto:
ReLU com vazamento ( x ) = { x , se x > 0 α x , se x ≤ 0 texto{ReLU com vazamento}(x) ={x,sex>0αx,sex0 ReLU com vazamento(x)={ x,αx,sex>0sex0
em, α alfaα é uma pequena constante positiva, geralmente 0,01.
imagem.png

Características e benefícios:
  1. Aliviando o problema do “ReLU morto”: Ainda retém um pequeno gradiente quando a entrada é negativa para evitar a desativação completa dos neurônios.
  2. Mantenha as vantagens do ReLU: Mantém a linearidade no semieixo positivo, o cálculo é simples e ajuda a amenizar o desaparecimento do gradiente.
Desvantagens e limitações:
  1. Apresentando hiperparâmetros α alfaαA seleção de valores requer ajuste, o que aumenta a complexidade do modelo.
  2. saída central diferente de zero: Semelhante ao ReLU, a saída ainda não está centrada em zero.
Cena aplicável:
  1. Como alternativa em cenários onde o ReLU tem um desempenho insatisfatório.
  2. Usado em tarefas que precisam reter alguma informação de valor negativo.

3.3 PReLU (ReLU Paramétrico)

PReLU é uma variante do Leaky ReLU, onde a inclinação do semieixo negativo é um parâmetro que pode ser aprendido:
PReLU ( x ) = { x , se x > 0 α x , se x ≤ 0 texto{PReLU}(x) ={x,sex>0αx,sex0 PRELU(x)={ x,αx,sex>0sex0
aqui α alfaα são parâmetros aprendidos por meio de retropropagação.
imagem.png

Características e benefícios:
  1. aprendizagem adaptativa: Pode aprender automaticamente a inclinação negativa do semi-eixo mais adequada com base nos dados.
  2. potencial de desempenho: Em algumas tarefas, o PReLU pode obter melhor desempenho do que o ReLU e o Leaky ReLU.
Desvantagens e limitações:
  1. Aumente a complexidade do modelo: A introdução de parâmetros adicionais que podem ser aprendidos aumenta a complexidade do modelo.
  2. Possível sobreajuste: Em alguns casos, pode levar a um ajuste excessivo, especialmente em pequenos conjuntos de dados.
Cena aplicável:
  1. Tarefas de aprendizagem profunda em conjuntos de dados em grande escala.
  2. Cenários que requerem funções de ativação adaptativa.

3.4 ELU (Unidade Linear Exponencial)

ELU tenta combinar as vantagens do ReLU e do processamento de entradas negativas. Sua expressão matemática é:
ELU ( x ) = { x , se x > 0 α ( ex − 1 ) , se x ≤ 0 texto{ELU}(x) ={x,sex>0α(ex1),sex0 ELU(x)=