O autoencoder
pacote é apenas uma implementação do codificador automático descrito nas notas de classe de Andrew Ng , que pode ser um bom ponto de partida para uma leitura mais aprofundada. Agora, para responder às suas perguntas
As pessoas às vezes distinguem entre
parâmetros , que o algoritmo de aprendizado calcula a si próprio, e
hiperparâmetros , que controlam esse processo de aprendizado e precisam ser fornecidos ao algoritmo de aprendizado.
É importante perceber que NÃO HÁ VALORES MÁGICOS para os hiperparâmetros. O valor ideal variará, dependendo dos dados que você está modelando: você precisará experimentá-los com seus dados.
a) Lambda ( ) controla como os pesos são atualizados durante a retropropagação. Em vez de apenas atualizar os pesos com base na diferença entre a saída do modelo e a verdade do terreno), a função de custo inclui um termo que penaliza grandes pesos (na verdade, o valor ao quadrado de todos os pesos). O Lambda controla a importância relativa desse termo de penalidade, que tende a arrastar pesos para zero e ajuda a evitar ajustes excessivos.λ
b) Rho ( e beta ( β ) controlam a escassez. Rho é a ativação esperada de uma unidade oculta (média do conjunto de treinamento). A representação se tornará cada vez mais esparsa à medida que se tornar menor. Essa escassez é imposta pelo ajuste do termo de viés, e o beta controla o tamanho de suas atualizações. (Parece que β na verdade apenas redimensiona a taxa geral de aprendizado α .)ρ )( ββα
c) Epsilon ( controla os valores de peso inicial, que são sorteados aleatoriamente a partir de N ( 0 , ϵ 2 ) .ϵ )N( 0 , ϵ2)
Seus valores de rho não parecem irracionais, pois ambos estão próximos da parte inferior do intervalo da função de ativação (0 a 1 para logística, -1 a 1 para tanh). No entanto, isso obviamente depende da quantidade de escassez desejada e do número de unidades ocultas que você usa também.
m- 1 / 2m
Existem muitas "regras práticas" para escolher o número de unidades ocultas. Seu palpite inicial (entrada 2x) parece estar alinhado com a maioria deles. Dito isto, essas estimativas são muito mais estimativas do que estimativas. Supondo que você tenha o poder de processamento, eu iria errar ao lado de mais unidades ocultas, depois impor a escassez com um baixo valor rho.
Um uso óbvio dos codificadores automáticos é gerar representações de recursos mais compactas para outros algoritmos de aprendizado. Uma imagem bruta pode ter milhões de pixels, mas um codificador automático (esparso) pode representá-la em um espaço muito menor.
Geoff Hinton (e outros) mostraram que eles geram recursos úteis para a classificação subsequente. Parte do trabalho de aprendizado profundo usa codificadores automáticos ou similares para pré-treinar a rede.
Vincent et al. use codificadores automáticos diretamente para executar a classificação.
A capacidade de gerar representações sucintas de recursos também pode ser usada em outros contextos. Aqui está um pequeno projeto em que os estados produzidos pelo autoencoder são usados para guiar um algoritmo de aprendizado por reforço nos jogos da Atari .
Finalmente, pode-se também usar auto-codificadores para reconstruir entradas ruidosas ou degradadas, assim , o que pode ser um final útil por si só.
beta = 6
noautoencoder
código de exemplo?Alguma parte da resposta de Matt Krause não me parece correta (Lambda e Beta), também não é mencionado o epsilon. Na verdade, este post deve ser um comentário, mas estou respondendo à pergunta por causa da restrição de 50 reputação. Sinta-se livre para comentar se você encontrar algum erro.
De http://web.stanford.edu/class/archive/cs/cs294a/cs294a.1104/sparseAutoencoder.pdf Lambda é um termo do coeficiente de redução de peso que desencoraja os pesos a atingir grandes valores, pois pode se super-ajustar. O termo de redução de peso (ou termo de regularização de peso) faz parte da função de custo, como o termo de escarsidade, explicado abaixo.
rho é uma restrição de escarsidade que controla o número médio de ativação na camada oculta. Ele está incluído para fazer o autoencoder funcionar mesmo com um número relativamente grande de unidades ocultas em relação às unidades de entrada. Por exemplo, se o tamanho da entrada for 100 e o tamanho oculto for 100 ou maior (ainda menor, mas próximo a 100), a saída poderá ser construída sem perda, pois as unidades ocultas podem aprender a função de identidade. Beta é coeficiente do termo escarsidade, que faz parte da função de custo. Controla a importância relativa do termo escarsidade. Lambda e Beta especificam a importância relativa de seus termos na função de custo.
Epsilon (se eles usaram a mesma notação com Andrew Ng) é o parâmetro de regularização para o processo de clareamento, que tem efeito de filtro passa-baixo na entrada. Isso tem alguns efeitos importantes nos métodos de reconstrução. Verifique o link em modelos baseados em reconstrução. Eu acho que eles usaram a ativação linear para a camada de saída e usaram algum tipo de clareamento (recursos univariados).
A taxa de atualização dos parâmetros (pesos e vieses) é denominada taxa de aprendizado e denotada por eta em geral. No entanto, tem sido usado como alfa por Andrew Ng. Verifique o primeiro link.
fonte