Lista abrangente de funções de ativação em redes neurais com prós / contras


95

Existe algum documento de referência que forneça uma lista abrangente de funções de ativação em redes neurais, juntamente com seus prós / contras (e, idealmente, alguns indicadores para publicações em que foram bem-sucedidos ou não tão bem-sucedidos)?


Não sei o suficiente sobre RNAs, mas, a menos que as funções de ativação diferam substancialmente de forma, será muito difícil diferenciá-las. Para uma discussão de uma situação análoga, você pode ver minha resposta aqui: Diferença entre os modelos logit e probit .
gung

1
não, faz uma grande diferença.
Viliami 21/04/19

pt.wikipedia.org/wiki/Activation_function é um bom recurso; você pode usar muitos outros, inclusive sin(x), consulte openreview.net/pdf?id=Sks3zF9eg .
Piotr Migdal

Para vídeo tutorial sobre funções de ativação, visite: quickkt.com/tutorials/artificial-intelligence/deep-learning/...
Vinay Kumar

Respostas:


144

Vou começar a fazer uma lista aqui das que aprendi até agora. Como @marcodena disse, prós e contras são mais difíceis, porque na maioria das vezes são apenas heurísticas aprendidas ao tentar essas coisas, mas acho que pelo menos ter uma lista do que elas são não pode machucar.

Primeiro, definirei a notação explicitamente para que não haja confusão:

Notação

Esta notação é do livro de Neilsen .

Uma Rede Neural Feedforward é formada por várias camadas de neurônios conectados. Ele recebe uma entrada e, em seguida, ela entra pela rede e a rede neural retorna um vetor de saída.

Mais formalmente, chamar a activação (aka saída) do j t h neurónio no i t h camada, em que um 1 j é o j t h elemento no vector de entrada.umajEujthEuthumaj1jth

Em seguida, podemos relacionar a entrada da próxima camada com a anterior por meio da seguinte relação:

umajEu=σ(k(WjkEuumakEu-1)+bjEu)

Onde

  • é a função de ativação,σ
  • é o peso doneurônio k t h nacamada ( i - 1 ) t h para oneurônio j t h nacamada i t h ,WjkEukth(Eu-1)thjthEuth
  • é o viés doneurônio j t h nacamada i t h , ebjEujthEuth
  • representa o valor de ativação do j t h neurônio nacamada i t h .umajEujthEuth

Às vezes, escrevemos para representar k ( w i j ka i - 1 k ) + b i j , em outras palavras, o valor de ativação de um neurônio antes de aplicar a função de ativação.zjEuk(WjkEuumakEu-1)+bjEu

insira a descrição da imagem aqui

Para uma notação mais concisa, podemos escrever

umaEu=σ(WEu×umaEu-1+bEu)

Para utilizar esta fórmula para calcular a saída de uma rede de alimentação de entrada para alguma entrada , definir um 1 = I , em seguida, calcular um 2 , um 3 , ... , um m , em que m é o número de camadas.EuRnuma1=Euuma2,uma3,...,umamm

Funções de Ativação

(a seguir, escreveremos vez de e x para facilitar a leitura)exp(x)ex

Identidade

Também conhecida como função de ativação linear.

umajEu=σ(zjEu)=zjEu

Identidade

Degrau

umajEu=σ(zjEu)={0 0E se zjEu<0 01E se zjEu>0 0

Degrau

Linear por partes

xminxmax

umajEu=σ(zjEu)={0 0E se zjEu<xminmzjEu+bE se xminzjEuxmax1E se zjEu>xmax

Onde

m=1xmax-xmin

e

b=-mxmin=1-mxmax

Linear por partes

Sigmoid

ajEu=σ(zjEu)=11+exp(-zjEu)

Sigmoid

Log-log complementar

umajEu=σ(zjEu)=1-exp(-exp(zjEu))

Log-log complementar

Bipolar

umajEu=σ(zjEu)={-1E se zjEu<0 0   1E se zjEu>0 0

Bipolar

Sigmoide bipolar

umajEu=σ(zjEu)=1-exp(-zjEu)1+exp(-zjEu)
Sigmoide bipolar

Tanh

umajEu=σ(zjEu)=tanh(zjEu)

Tanh

LeCun's Tanh

Consulte Backprop eficiente .

umajEu=σ(zjEu)=1.7159tanh(23zjEu)

LeCun's Tanh

Escalado:

O Tanh de LeCun em Escala

Hard Tanh

umajEu=σ(zjEu)=max(-1,min(1,zjEu))

Hard Tanh

Absoluto

umajEu=σ(zjEu)= ∣zjEu

Absoluto

Retificador

Também conhecida como Unidade Linear Retificada (ReLU), Max ou Função de Rampa .

umajEu=σ(zjEu)=max(0 0,zjEu)

Retificador

Modificações do ReLU

Estas são algumas funções de ativação com as quais eu tenho tocado que parecem ter um desempenho muito bom para o MNIST por razões misteriosas.

umajEu=σ(zjEu)=max(0 0,zjEu)+porque(zjEu)

ReLU cos

Escalado:

ReLU cos dimensionado

umajEu=σ(zjEu)=max(0 0,zjEu)+pecado(zjEu)

ReLU sin

Escalado:

ReLU sin redimensionado

Retificador Suave

Também conhecida como Unidade linear retificada suave, Smooth Max ou Soft plus

umajEu=σ(zjEu)=registro(1+exp(zjEu))

Retificador Suave

Logit

umajEu=σ(zjEu)=registro(zjEu(1-zjEu))

Logit

Escalado:

Logit Scaled

Probit

umajEu=σ(zjEu)=2erf-1(2zjEu-1)
.

Onde é a função de erro . Não pode ser descrito por meio de funções elementares, mas você pode encontrar maneiras de aproximar sua inversão nessa página da Wikipedia e aqui .erf

Alternativamente, pode ser expresso como

umajEu=σ(zjEu)=ϕ(zjEu)
.

Onde é a função de distribuição cumulativa (CDF). Veja aqui meios de aproximar isso.ϕ

Probit

Escalado:

Probit Scaled

Cosine

Veja Pias de cozinha aleatórias .

umajEu=σ(zjEu)=porque(zjEu)
.

Cosine

Softmax

Também conhecido como Exponencial Normalizado.

umajEu=exp(zjEu)kexp(zkEu)

Este é um pouco estranho, porque a saída de um único neurônio depende dos outros neurônios nessa camada. Também fica difícil calcular, pois pode ser um valor muito alto; nesse caso, provavelmente . Da mesma forma, se for um valor muito baixo, ele ficará abaixo e se tornará .zjEuexp(zjEu)zjEu0 0

Para combater isso, calcularemos . Isso nos dá:registro(umajEu)

registro(umajEu)=registro(exp(zjEu)kexp(zkEu))

registro(umajEu)=zjEu-registro(kexp(zkEu))

Aqui precisamos usar o truque log-sum-exp :

Digamos que estamos computando:

registro(e2+e9+e11+e-7+e-2+e5)

Primeiro, ordenaremos nossos exponenciais por magnitude, por conveniência:

registro(e11+e9+e5+e2+e-2+e-7)

Então, como é o mais alto, multiplicamos por :e11e-11e-11

registro(e-11e-11(e11+e9+e5+e2+e-2+e-7))

registro(1e-11(e0 0+e-2+e-6+e-9+e-13+e-18))

registro(e11(e0 0+e-2+e-6+e-9+e-13+e-18))

registro(e11)+registro(e0 0+e-2+e-6+e-9+e-13+e-18)

11+registro(e0 0+e-2+e-6+e-9+e-13+e-18)

Podemos então calcular a expressão à direita e registrar o log. Não há problema em fazer isso porque essa soma é muito pequena em relação a , portanto, qualquer sub-fluxo para 0 não seria significativo o suficiente para fazer diferença de qualquer maneira. O estouro não pode acontecer na expressão à direita, porque temos a garantia de que, após multiplicar por , todos os poderes serão .registro(e11)e-110 0

Formalmente, chamamos . Então:m=max(z1Eu,z2Eu,z3Eu,...)

registro(kexp(zkEu))=m+registro(kexp(zkEu-m))

Nossa função softmax passa a ser:

umajEu=exp(registro(umajEu))=exp(zjEu-m-registro(kexp(zkEu-m)))

Também como nota lateral, a derivada da função softmax é:

dσ(zjEu)dzjEu=σ(zjEu)=σ(zjEu)(1-σ(zjEu))

Maxout

Este também é um pouco complicado. Essencialmente, a idéia é que dividamos cada neurônio em nossa camada máxima em muitos sub-neurônios, cada um com seus próprios pesos e preconceitos. Em seguida, a entrada de um neurônio vai para cada um dos seus sub-neurônios, e cada sub-neurônio simplesmente gera seus (sem aplicar nenhuma função de ativação). O desse neurônio é então o máximo de todas as saídas de seu sub-neurônio.zumajEu

Formalmente, em um único neurônio, digamos que temos sub-neurônios. Entãon

umajEu=maxk[1,n]sjkEu

Onde

sjkEu=umaEu-1WjkEu+bjkEu

( é o produto escalar )

Para nos ajudar a pensar sobre isso, considere a matriz de pesos para a camada de uma rede neural que está usando, digamos, uma função de ativação sigmóide. é uma matriz 2D, em que cada coluna é um vetor para o neurônio contém um peso para cada neurônio na camada anterior .WEuEuºWEuWjEujEu-1

Se tivermos sub-neurônios, precisaremos de uma matriz de pesos 2D para cada neurônio, pois cada sub-neurônio precisará de um vetor que contenha um peso para cada neurônio na camada anterior. Isso significa que é agora uma matriz de peso 3D, onde cada é a matriz de peso 2D para um único neurônio . E então é um vetor para o sub-neurônio no neurônio que contém um peso para cada neurônio na camada anterior .WEuWjEujWjkEukjEu-1

Da mesma forma, em uma rede neural que novamente usa, digamos, uma função de ativação sigmóide, é um vetor com um viés para cada neurônio na camada .bEubjEujEu

Para fazer isso com sub-neurônios, precisamos de uma matriz de viés 2D para cada camada , onde é o vetor com viés para cada subneurônio no neurônio.bEuEubjEubjkEukjº

Ter uma matriz de pesos e um vetor de viés para cada neurônio torna as expressões acima muito claras, é simplesmente aplicar os pesos de cada sub-neurônio às saídas de camada , aplicando seus desvios e obtendo o máximo deles.WjEubjEuWjkEuumaEu-1Eu-1bjkEu

Redes de funções de base radial

As Redes de funções de base radial são uma modificação das redes neurais feedforward, onde, em vez de usar

umajEu=σ(k(WjkEuumakEu-1)+bjEu)

temos um peso por nó na camada anterior (como normal) e também um vetor médio e um vetor de desvio padrão para cada nó em a camada anterior.WjkEukμjkEuσjkEu

Então chamamos nossa função de ativação para evitar confundi-la com os vetores de desvio padrão . Agora, para calcular , primeiro precisamos calcular um para cada nó na camada anterior. Uma opção é usar a distância euclidiana:ρσjkEuumajEuzjkEu

zjkEu=__(umaEu-1-μjkEu__=(umaEu-1-μjkEu)2

Onde é o elemento de . Este não usa o . Alternativamente, há a distância de Mahalanobis, que supostamente tem um desempenho melhor:μjkEuºμjkEuσjkEu

zjkEu=(umaEu-1-μjkEu)TΣjkEu(umaEu-1-μjkEu)

onde é a matriz de covariância , definida como:ΣjkEu

ΣjkEu=diag(σjkEu)

Em outras palavras, é a matriz diagonal com como elementos diagonais. Definimos e como vetores de coluna aqui, porque essa é a notação normalmente usada.ΣjkEuσjkEuumaEu-1μjkEu

Eles estão realmente dizendo que a distância de Mahalanobis é definida como

zjkEu=(umaEu-1-μjkEu)2σjkEu

Onde é o elemento de . Observe que deve sempre ser positivo, mas esse é um requisito típico para o desvio padrão; portanto, isso não é tão surpreendente.σjkEuºσjkEuσjkEu

Se desejado, a distância de Mahalanobis é suficientemente geral para que a matriz de covariância possa ser definida como outras matrizes. Por exemplo, se a matriz de covariância é a matriz de identidade, nossa distância de Mahalanobis se reduz à distância euclidiana. é bastante comum e é conhecida como distância euclidiana normalizada .ΣjkEuΣjkEu=diag(σjkEu)

De qualquer forma, uma vez que nossa função de distância tenha sido escolhida, podemos calcular viaumajEu

umajEu=kWjkEuρ(zjkEu)

Nessas redes, eles optam por se multiplicar por pesos após aplicar a função de ativação por motivos.

Isso descreve como criar uma rede com função de base radial de várias camadas; no entanto, geralmente há apenas um desses neurônios e sua saída é a saída da rede. Ele é desenhado como múltiplos neurônios porque cada vetor médio e cada vetor de desvio padrão desse neurônio único é considerado um "neurônio" único e, depois de todas essas saídas, existe outra camada que leva a soma desses valores calculados vezes os pesos, assim como acima. Dividi-lo em duas camadas com um vetor "soma" no final parece estranho para mim, mas é o que eles fazem.μjkEuσjkEuumajEu

Veja também aqui .

Função de base radial Funções de ativação de rede

Gaussiano

ρ(zjkEu)=exp(-12(zjkEu)2)

Gaussiano

Multiquadratic

Escolha algum ponto . Então calculamos a distância de a :(x,y)(zjEu,0 0)(x,y)

ρ(zjkEu)=(zjkEu-x)2+y2

Isto é da Wikipedia . Não é limitado e pode ter qualquer valor positivo, embora eu esteja me perguntando se existe uma maneira de normalizá-lo.

Quando , isso é equivalente a absoluto (com um deslocamento horizontal ).y=0 0x

Multiquadratic

Multiquadratic Inverso

O mesmo que quadrático, exceto invertido:

ρ(zjkEu)=1(zjkEu-x)2+y2

Multiquadratic Inverso

* Gráficos dos gráficos da intmath usando SVG .


12
Bem-vindo ao CV. +6 isto é fabulosamente informativo. Espero que vejamos mais coisas assim no futuro.
gung

1
há também a função linear retificada suave da forma e probit. registro(1+exp(x))
Memming

Ok, acho que adicionei o logit, o probit e o log complementar, no entanto, não tenho um entendimento profundo desses tópicos, por isso posso ter entendido mal a forma escrita. Isso está correto?
Phylliida

3
Este seria um artigo interessante com uma boa lista de referências. Por exemplo, arxiv.org/abs/1505.03654 . Sinta-se à vontade para entrar em contato comigo se decidir escrever um artigo e quiser outras referências.
Hunaphu 3/06

9
alguém deve atualizar isso com Elu, Leaky ReLU, PReLU e RReLU.
Viliami 21/04/19

24

Uma dessas listas, embora não seja muito exaustiva: http://cs231n.github.io/neural-networks-1/

Funções de ativação comumente usadas

Toda função de ativação (ou não linearidade ) pega um único número e executa uma certa operação matemática fixa nela. Existem várias funções de ativação que você pode encontrar na prática:

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Esquerda: a não linearidade sigmóide esmaga os números reais para variar entre [0,1] Direita: A não linearidade tanh esmaga os números reais para variar entre [-1,1].

Sigmoide. A não linearidade sigmóide tem a forma matemática e é mostrada na imagem acima à esquerda. Como mencionado na seção anterior, ele pega um número com valor real e o "esmaga" na faixa entre 0 e 1. Em particular, grandes números negativos se tornam 0 e grandes números positivos se tornam 1. A função sigmoide tem sido frequentemente usada historicamente uma vez que tem uma boa interpretação como a taxa de disparo de um neurônio: de não disparar (0) a disparo totalmente saturado em uma frequência máxima assumida (1). Na prática, a não linearidade sigmóide caiu recentemente em desuso e raramente é usada. Ele tem duas desvantagens principais:σ(x)=1/(1+e-x)

  • Os sigmóides saturam e matam gradientes . Uma propriedade muito indesejável do neurônio sigmóide é que, quando a ativação do neurônio satura na cauda de 0 ou 1, o gradiente nessas regiões é quase zero. Lembre-se de que durante a retropropagação, esse gradiente (local) será multiplicado pelo gradiente da saída desse gate para todo o objetivo. Portanto, se o gradiente local for muito pequeno, ele efetivamente "matará" o gradiente e quase nenhum sinal fluirá através do neurônio para seus pesos e recursivamente para seus dados. Além disso, é preciso ter cuidado extra ao inicializar os pesos dos neurônios sigmóides para evitar a saturação. Por exemplo, se os pesos iniciais forem muito grandes, a maioria dos neurônios ficará saturada e a rede mal aprenderá.
  • As saídas sigmóides não são centralizadas em zero . Isso é indesejável, uma vez que neurônios em camadas posteriores de processamento em uma rede neural (mais sobre isso em breve) receberiam dados que não são centralizados em zero. Isso tem implicações na dinâmica durante a descida do gradiente, porque se os dados que entram no neurônio são sempre positivos (por exemplo, elementwise em )), então o gradiente nos pesos durante a retropropagação se torna: todos são positivos ou todos negativos (dependendo do gradiente de toda a expressão x>0 0f=WTx+bWf) Isso poderia introduzir uma dinâmica indesejável de zigue-zague nas atualizações de gradiente para os pesos. No entanto, observe que, depois que esses gradientes são somados em um lote de dados, a atualização final dos pesos pode ter sinais variáveis, mitigando um pouco esse problema. Portanto, isso é um inconveniente, mas tem consequências menos graves em comparação com o problema de ativação saturada acima.

Tanh. A não linearidade tanh é mostrada na imagem acima à direita. Ele comprime um número com valor real no intervalo [-1, 1]. Como o neurônio sigmóide, suas ativações saturam, mas, diferentemente do neurônio sigmóide, sua produção é centrada em zero. Portanto, na prática, a não linearidade de tanh é sempre preferida à não linearidade sigmóide. Observe também que o neurônio tanh é simplesmente um neurônio sigmóide em escala, em particular o seguinte: .tanh(x)=2σ(2x)-1

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Esquerda: Função de ativação da Unidade Linear Retificada (ReLU), que é zero quando x <0 e, em seguida, linear com a inclinação 1 quando x> 0. Direita: Um gráfico de Krizhevsky et al. (pdf) documento indicando a melhoria de 6x na convergência com a unidade ReLU em comparação com a unidade tanh.

ReLU. A Unidade Linear Retificada se tornou muito popular nos últimos anos. Ele calcula a função . Em outras palavras, a ativação é simplesmente limiar a zero (veja a imagem acima à esquerda). Existem vários prós e contras no uso das ReLUs:f(x)=max(0 0,x)

  • (+) Verificou-se que acelera bastante (por exemplo, um fator 6 em Krizhevsky et al. ) A convergência da descida do gradiente estocástico em comparação com as funções sigmoides / tanh. Argumenta-se que isso se deve à sua forma linear e não saturante.
  • (+) Comparado aos neurônios tanh / sigmóides que envolvem operações caras (exponenciais, etc.), a ReLU pode ser implementada simplesmente limitando uma matriz de ativações a zero.
  • (-) Infelizmente, as unidades ReLU podem ser frágeis durante o treinamento e podem "morrer". Por exemplo, um grande gradiente que flui através de um neurônio ReLU pode fazer com que os pesos sejam atualizados de forma que o neurônio nunca seja ativado novamente em nenhum ponto de dados novamente. Se isso acontecer, o gradiente que flui através da unidade será para sempre zero a partir desse ponto. Ou seja, as unidades ReLU podem morrer irreversivelmente durante o treinamento, pois podem ser eliminadas do coletor de dados. Por exemplo, você pode achar que até 40% da sua rede pode estar "morta" (por exemplo, neurônios que nunca são ativados em todo o conjunto de dados de treinamento) se a taxa de aprendizado estiver muito alta. Com uma configuração adequada da taxa de aprendizado, isso é menos frequente.

ReLU com vazamento. ReLUs com vazamento são uma tentativa de corrigir o problema "ReLU que está morrendo". Em vez de a função ser zero quando x <0, uma ReLU com vazamento terá uma pequena inclinação negativa (de 0,01 ou mais). Ou seja, a função calcula que é uma constante pequena. Algumas pessoas relatam sucesso com essa forma de função de ativação, mas os resultados nem sempre são consistentes. A inclinação na região negativa também pode ser transformada em um parâmetro de cada neurônio, como visto nos neurônios PReLU, introduzidos em Delving Deep into Rectifiers , por Kaiming He et al., 2015. No entanto, atualmente, a consistência do benefício entre as tarefas é atualmente claro.f(x)=1(x<0 0)(αx)+1(x> =0 0)(x)α

insira a descrição da imagem aqui

Maxout . Outros tipos de unidades foram propostos que não possuem a forma funcional onde uma não linearidade é aplicada no produto escalar entre os pesos e os dados. Uma escolha relativamente popular é o neurônio Maxout (introduzido recentemente por Goodfellow et al. ) Que generaliza o ReLU e sua versão com vazamento. O neurônio Maxout calcula a função . Observe que ReLU e Leaky ReLU são um caso especial desse formulário (por exemplo, para ReLU, temosf(WTx+b)max(W1Tx+b1,W2Tx+b2)W1,b1=0 0) O neurônio Maxout, portanto, desfruta de todos os benefícios de uma unidade ReLU (regime linear de operação, sem saturação) e não tem suas desvantagens (ReLU moribundo). No entanto, diferentemente dos neurônios da ReLU, ele dobra o número de parâmetros para cada neurônio, levando a um número total alto de parâmetros.

Isso conclui nossa discussão sobre os tipos mais comuns de neurônios e suas funções de ativação. Como último comentário, é muito raro misturar e combinar diferentes tipos de neurônios na mesma rede, mesmo que não haja nenhum problema fundamental em fazê-lo.

TLDR : " Que tipo de neurônio devo usar? " Use a não linearidade da ReLU, tenha cuidado com suas taxas de aprendizado e, possivelmente, monitore a fração de unidades "mortas" em uma rede. Se isso lhe interessar, experimente o Leaky ReLU ou o Maxout. Nunca use sigmoide. Tente tanh, mas espere que funcione pior que ReLU / Maxout.


Licença:


A Licença MIT (MIT)

Copyright (c) 2015 Andrej Karpathy

A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para negociar no Software sem restrições, incluindo, sem limitação, os direitos de uso, cópia, modificação, fusão , publicar, distribuir, sublicenciar e / ou vender cópias do Software e permitir que as pessoas a quem o Software é fornecido o façam, sob as seguintes condições:

O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "TAL COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO MAS NÃO SE LIMITANDO A GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA E NÃO INFRACÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM AÇÃO DE CONTRATO, TORT OU OUTRA FORMA, proveniente, fora ou em conexão com o software ou o uso ou outros acordos no PROGRAMAS.*

Outros links:


10

Eu não acho que exista uma lista com prós e contras. As funções de ativação são altamente dependentes da aplicação e também dependem da arquitetura da sua rede neural ( aqui, por exemplo, você vê a aplicação de duas funções do softmax, semelhantes à sigmóide).

Você pode encontrar alguns estudos sobre o comportamento geral das funções, mas acho que você nunca terá uma lista definida e definitiva (o que você pergunta ...).

Ainda sou estudante, por isso aponto o que sei até agora:

  • aqui você encontra algumas reflexões sobre os comportamentos de tanh e sigmoides com retropropagação. Tanh é mais genérico, mas sigmóide ... (sempre haverá um "mas")
  • Nas redes neurais do retificador escasso profundo de Glorot Xavier et al., Eles afirmam que as unidades retificadoras são mais biologicamente plausíveis e têm desempenho melhor que as outras (sigmóide / tanh)

Essa é a resposta correta. Pode-se produzir uma lista, mas os prós e os contras dependem completamente dos dados. De fato, aprender funções de ativação é muito mais razoável em teoria. A razão pela qual não há muita pesquisa é o sigmoide "simplesmente funciona". No final, o seu único ganho é a velocidade de convergência que é muitas vezes sem importância
runDOSrun

4

Apenas por uma questão de completude na grande resposta de Danielle, existem outros paradigmas, nos quais alguém aleatoriamente gira a roda sobre os pesos e / ou o tipo de ativações: máquinas de estado líquido , máquinas de aprendizado extremo e redes de estado de eco .

Uma maneira de pensar sobre essas arquiteturas: o reservatório é uma espécie de núcleo, como nos SVMs, ou uma grande camada oculta em um FFNN simples, onde os dados são projetados em algum hiperespaço. Não há aprendizado real, o reservatório é gerado novamente até que uma solução satisfatória seja alcançada.

Veja também esta boa resposta .


2

Um artigo revisando funções de ativação recentes pode ser encontrado em

" Funções de ativação: comparação de tendências na prática e pesquisa para aprendizagem profunda ", de Chigozie Enyinna Nwankpa, Winifred Ijomah, Anthony Gachagan e Stephen Marshall

As redes neurais profundas foram usadas com sucesso em diversos domínios emergentes para resolver problemas complexos do mundo real, com arquiteturas de aprendizado mais profundo (DL), sendo desenvolvidas até o momento. Para obter essas performances de ponta, as arquiteturas de DL usam funções de ativação (AFs), para executar cálculos diversos entre as camadas ocultas e as camadas de saída de qualquer arquitetura DL. Este artigo apresenta uma pesquisa sobre os AFs existentes usados ​​em aplicativos de aprendizado profundo e destaca as tendências recentes no uso das funções de ativação para aplicativos de aprendizado profundo. A novidade deste artigo é que ele compila a maioria dos AFs usados ​​no DL e descreve as tendências atuais nas aplicações e no uso dessas funções em implantações práticas de aprendizado profundo em relação aos resultados da pesquisa de ponta. Essa compilação ajudará a tomar decisões efetivas na escolha da função de ativação mais adequada e apropriada para qualquer aplicativo, pronta para implantação. Este artigo é oportuno porque a maioria dos trabalhos de pesquisa em FA destaca trabalhos e resultados semelhantes, enquanto este será o primeiro a compilar as tendências dos aplicativos de AF na prática contra os resultados de pesquisa da literatura, encontrados em pesquisas de aprendizado profundo até o momento.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.