Introdução aos Autoencodificadores

É o caso da malha neural artificial usada para descobrir codificação de dados eficaz de maneira autônoma. O objetivo do Autoencoder é usado para aprender a apresentação de um grupo de dados, especialmente para diminuir a dimensionalidade. Os codificadores automáticos têm um recurso exclusivo, onde sua entrada é igual à sua saída, formando redes de encaminhamento de feeds. O codificador automático transforma a entrada em dados compactados para formar um código de baixa dimensão e, em seguida, refaça novamente a entrada para formar a saída desejada. O código de entrada compactado também é chamado de representação de espaço latente. Em simples, o objetivo principal é reduzir a distorção entre os circuitos.

Existem três componentes principais no Autoencoder. Eles são codificador, decodificador e código. O codificador e o decodificador são completamente conectados para formar uma malha de encaminhamento de alimentação. O código atua como uma camada única que atua de acordo com a própria dimensão. Para desenvolver um Autoencoder, você deve definir um hiperparâmetro, ou seja, o número de nós na camada principal. De uma maneira mais detalhada, a rede de saída do decodificador é uma imagem espelhada do codificador de entrada. O decodificador produz a saída desejada apenas com a ajuda da camada de código.

Verifique se o codificador e o decodificador têm os mesmos valores dimensionais. O parâmetro importante para definir o autoencoder é o tamanho do código, o número de camadas e o número de nós em cada camada.

O tamanho do código é definido pela quantidade total de nós presentes na camada intermediária. Para obter uma compactação efetiva, é recomendável o tamanho pequeno de uma camada intermediária. O número de camadas no codificador automático pode ser profundo ou raso, conforme desejado. O número de nós no codificador automático deve ser o mesmo no codificador e no decodificador. A camada do decodificador e do codificador deve ser simétrica.

No codificador automático empilhado, você tem uma camada invisível no codificador e no decodificador. Consiste em imagens manuscritas com um tamanho de 28 * 28. Agora você pode desenvolver o codificador automático com 128 nós na camada invisível com 32 como tamanho de código. Para adicionar muitos números de camadas, use esta função

model.add(Dense(16, activation='relu'))
model.add(Dense(8, activation='relu'))

para conversão,

layer_1 = Dense(16, activation='relu')(input)
layer_2 = Dense(8, activation='relu')(layer_1)

Agora, a saída desta camada é adicionada como uma entrada para a próxima camada. essa é a camada que pode ser chamada nesse método denso. O decodificador executa esta função. Ele usa o método sigmoide para obter uma saída entre 0 e 1. Como a entrada está entre 0 e 1

A reconstrução da entrada por um Autoencoder neste método é feita por previsão. O teste de imagem individual é realizado e a saída não é exatamente como entrada, mas é semelhante à entrada. Para superar essas dificuldades, você pode tornar o autoencoder mais eficiente adicionando várias camadas e adicionando vários nós às camadas. Mas, ao torná-lo mais poderoso, resulta em uma cópia de dados semelhante à entrada. Mas este não é o resultado esperado.

Arquitetura do Autoencoder

Nesta arquitetura empilhada, a camada de código possui um valor dimensional pequeno do que as informações de entrada, nas quais se diz estar sob o autoencoder completo.

1. Autoencodificadores Denoising

Neste método, você não pode copiar o sinal de entrada no sinal de saída para obter o resultado perfeito. Porque aqui o sinal de entrada contém ruído que precisa ser subtraído antes de obter o resultado que é o dado necessário subjacente. Esse processo é chamado de autoencoder denoising. A primeira linha contém imagens originais. Para torná-los sinal de entrada barulhento, alguns dados barulhentos são adicionados. Agora você pode projetar o autoencoder para obter uma saída sem ruído da seguinte maneira

autoencoder.fit(x_train, x_train)

Um Autoencoder modificado é o seguinte,

autoencoder.fit(x_train_noisy, x_train)

Portanto, você pode obter uma saída sem ruído facilmente.

O autoencoder de convolução é usado para manipular sinais complexos e também obter um resultado melhor do que o processo normal

2. Autoencodificadores esparsos

Para usar os codificadores automáticos de maneira eficaz, você pode seguir duas etapas.

Defina um tamanho de código pequeno e o outro é o codificador automático denoising.

Então outro método eficaz é a regularização. Para aplicar essa regularização, você precisa regularizar as restrições de dispersão. Para ativar algumas partes dos nós na camada, adicione alguns termos extras à função de perda, que pressiona o autoencoder para fazer cada entrada como nós menores combinados e faz com que o codificador encontre algumas estruturas exclusivas nos dados fornecidos. Também é aplicável a um grande número de dados, porque apenas uma parte dos nós está ativada.

O valor da restrição de dispersão está mais próximo de zero

Para gerar uma camada de código,

code = Dense(code_size, activation='relu')(input_img)

Para adicionar valor de regularização,

code = Dense(code_size, activation='relu', activity_regularizer=l1(10e-6))(input_img)

Nesse modelo, apenas 0, 01 é a perda final, também devido ao prazo de regularização.

Nesse modelo esparso, vários valores de código são verdadeiros para o resultado esperado. Mas tem valores de variação razoavelmente baixos.

Autoencodificadores regularizados têm propriedades únicas, como robustez para entradas ausentes, representação esparsa e valor mais próximo de derivativos em apresentações. Para usar com eficiência, mantenha o tamanho mínimo do código e o codificador e decodificador rasos. Eles descobrem uma alta capacidade de entradas e não precisam de nenhum termo extra de regularização para que a codificação seja eficaz. Eles são treinados para dar efeito maximizado em vez de copiar e colar.

3. Autoencoder variacional

É usado em casos complexos e encontra as chances de distribuição projetando os dados de entrada. Esse autoencoder variacional usa um método de amostragem para obter sua saída efetiva. Segue a mesma arquitetura dos autoencodificadores regularizados

Conclusão

Portanto, os autoencodificadores são usados ​​para aprender dados e imagens do mundo real, envolvidos em classificações binárias e de várias classes. Seu processo simples para redução de dimensionalidade. É aplicado em uma máquina Restricted Boltzmann e desempenha um papel vital nela. Também é usado na indústria bioquímica para descobrir a parte não revelada do aprendizado e para identificar o padrão de comportamento inteligente. Cada componente do aprendizado de máquina tem um caráter auto-organizado, o Autoencoder é um dos que obtém sucesso no aprendizado de inteligência artificial

Artigos recomendados

Este é um guia para codificadores automáticos. Aqui discutimos os principais componentes do Autoencoder, que são um codificador, decodificador e código, e a arquitetura do Autoencoder. Você também pode consultar os seguintes artigos para saber mais -

  1. Arquitetura de Big Data
  2. Codificação vs Decodificação
  3. Arquitetura de aprendizado de máquina
  4. Tecnologias de Big Data

Categoria: