O que é um Codificador/Decodificador em Aprendizagem Profunda?
Um codificador é uma rede (FC, CNN, RNNN, etc) que pega a entrada, e sai um mapa/vetor/tensor de característica. Estes vetores de características retêm a informação, as características, que representam a entrada. O decodificador é novamente uma rede (geralmente a mesma estrutura de rede do codificador mas em orientação oposta) que pega o vetor de característica do codificador, e dá a melhor correspondência possível com a entrada ou saída real.
Os codificadores são treinados com os decodificadores. Não há etiquetas (portanto não supervisionadas). A função de perda é baseada no cálculo do delta entre a entrada real e a entrada reconstruída. O otimizador tentará treinar tanto o codificador quanto o decodificador para diminuir esta perda de reconstrução.
Once treinado, o codificador dará vetor de característica para o input que pode ser usado pelo decodificador para construir o input com as características que mais importam para tornar o input reconstruído reconhecível como o input real.
A mesma técnica está sendo usada em várias aplicações diferentes como em tradução, modelos generativos, etc.
É importante saber que na aplicação real, as pessoas não tentam reconstruir o input real, mas querem mapear/traduzir/associar inputs a certos outputs. Por exemplo, traduzindo frases em francês para inglês, etc.
Artigos semelhantes
- Como implementar o reconhecimento da atividade humana em aprendizagem profunda e me apontar para qualquer conjunto de dados disponíveis publicamente
- Qual é a sua crítica sobre a plataforma de aprendizagem profunda da ACE para a mecânica GATE?
- Como codificador de software, qual foi o melhor 'Ovo de Páscoa' que você colocou em uma aplicação e por quê?
- Você deve usar um codificador de IP para fazer compras do mesmo dispositivo na Shop Disney?