Autoencoders empilhados e redes neurais de várias camadas são diferentes. Na prática, você fará com que as duas redes compartilhem pesos e possivelmente compartilhem buffers de memória. Portanto, na sua implementação, as duas redes se entrelaçam.
Normalmente, os auto-codificadores são treinados de maneira não supervisionada, gananciosa e em camadas. (Sem rótulos, comece a treinar apenas com a primeira camada da rede e adicione novas camadas à medida que avança.) Os pesos podem ser aprendidos usando uma variedade de técnicas que variam desde a descida do gradiente em "lote" (não faça isso), a descida de gradiente estocástico de mini-lote (SGD), a métodos quase-Newton como L-BFGS.
A idéia é que os pesos aprendidos de maneira não supervisionada para minimizar o erro de reconstrução da tarefa de aprendizado de representação ofereçam um bom ponto de partida para inicializar uma rede para uma tarefa discriminatória supervisionada, como classificação ou similaridade. Ou seja, a rede aprende algo sobre a distribuição subjacente observando os dados não rotulados, permitindo discriminar entre os dados rotulados. No entanto, os pesos ainda precisam ser "ajustados" para esta nova tarefa. Portanto, adicione uma camada de regressão logística na parte superior da rede e faça um aprendizado supervisionado com um conjunto de dados rotulado. A etapa de ajuste fino fará a descida do gradiente e ajustará os pesos para todas as camadas da rede simultaneamente.
As vantagens dessa maneira de treinar redes neurais são:
- O treinamento não supervisionado permite mostrar mais dados à rede, porque é muito mais fácil obter grandes conjuntos de dados não supervisionados do que os rotulados.
- Você pode usar a rede pré-treinada como um "ponto de partida" para treinar novos classificadores, para que você não precise começar do zero a cada vez.
Para o artigo, consulte Autoencodificadores empilhados de denoising: aprendendo representações úteis em uma rede profunda com um critério de denoising local .