Eu sou um graduado em CS (mas não sei muito sobre IA, mas não fiz nenhum curso sobre ela, e definitivamente nada sobre NN até recentemente), que está prestes a fazer um projeto escolar em AI, então escolho alguns tópicos sobre indução gramatical (da linguagem livre de contexto e talvez de algum subconjunto da linguagem sensível ao contexto) usando o aprendizado por reforço em uma rede neural. Comecei a estudar a abordagem bem-sucedida anterior primeiro para ver se elas podem ser aprimoradas e agora estou tentando entender a abordagem usando o aprendizado supervisionado com a Memória de Longo Prazo. Estou lendo "Aprendendo a esquecer: previsão contínua com LSTM". Também estou lendo o jornal no olho mágico, mas parece ainda mais complicado e estou apenas tentando algo mais simples primeiro. Acho que entendi corretamente como a célula de memória e a topologia de rede funcionam. O que não entendo agora é o algoritmo de treinamento. Então, eu tenho algumas perguntas a fazer:
Como exatamente diferentes entradas são distinguidas? Aparentemente, a rede não é redefinida após cada entrada e não há símbolo especial para delimitar entradas diferentes. A rede apenas recebe um fluxo contínuo de strings sem nenhuma pista sobre onde a entrada termina e a próxima começa?
Qual é o intervalo de tempo entre a entrada e a saída alvo correspondente? Certamente, é necessária alguma quantidade de tempo decorrido e, portanto, a rede nunca pode ser treinada para obter uma saída de destino de uma entrada que ela não tem tempo suficiente para processar. Se não foi usada a gramática Reber, mas algo mais complicado que poderia exigir muito mais informações para serem armazenadas e recuperadas, a quantidade de tempo necessária para acessar as informações variava dependendo da entrada, algo que provavelmente não pode ser previsto enquanto decidimos o tempo para fazer o treinamento.
Existe uma explicação mais intuitiva do algoritmo de treinamento? Acho difícil descobrir o que está acontecendo por trás de todas as fórmulas complicadas e preciso entender porque preciso ajustá-lo em um algoritmo de aprendizado reforçado posteriormente.
Além disso, o artigo não mencionou nada sobre dados de treinamento barulhentos . Li em outro lugar que a rede pode lidar com dados de teste muito barulhentos. Você sabe se o LSTM pode lidar com situações em que os dados de treinamento têm algumas chances de serem corrompidos / sobrecarregados com informações supérfluas?
Respostas:
O LSTM foi projetado para processar um fluxo de blocos de dados (cada bloco é o conjunto de entradas para a rede neste momento) que chegam ao longo do tempo e observam os recursos que ocorrem nos dados e produzem a saída de acordo. O intervalo de tempo (atraso) entre a ocorrência de recursos a serem reconhecidos pode variar e pode ser prolongado.
Seria possível treinar a rede transmitindo exemplos de treinamento em ordem aleatória, que também deve ter algum ruído de mudança de horário adicionado na forma de passes inativos (a rede será ativada quando as entradas estiverem com valores inativos padrão, por exemplo: quando não houver áudio no caso de uma fala) processador) [exceção: se algum dado de treinamento obedecer a padrões periódicos de desvio de tempo, como música, o ruído do desvio de horário deve manter o desvio de tempo sincronizado, por exemplo: na música, para garantir que um exemplo de treinamento no início da medida não seja alterado para a metade da medida e, portanto, adiante]
Também é possível ter uma configuração semi-supervisionada, em que a rede está sempre em uma configuração de treinamento e é treinada com exemplos que esperam uma saída de um valor inativo quando não há uma decoração presente ou o valor esperado apropriado quando um recurso é apresentado para o treinamento).
Se o treinamento em formato de feedback for desejado, ele pode ser emulado por:
assim, implementa-se um sistema de estilo de feedback, pois os exemplos de treinamento são basicamente criados apenas enquanto a rede está "entendendo errado". O formato de feedback é útil se alguém quiser que a rede tente improvisar (como o exemplo da música de Schmidhuber).
Foi mencionado pelo OP que [não há separação de entradas], exceto que realmente existe. Se alguém pensa em um cenário de reconhecimento de voz, possui períodos de enunciados (recursos que o LSTM deve detectar) intercalados com longos períodos de silêncio. Portanto, para lidar com a preocupação, seria justo dizer que esses períodos de silêncio estão de fato separando os grupos de entradas seqüenciados (esses silêncios também são, na verdade, um recurso que a rede precisa detectar e aprender a responder com resultados valiosos ociosos, ou seja: aprenda a fazer nada quando o silêncio).
Uma observação sobre a redefinição da rede
Qualquer redefinição ou recuperação de um estado de rede salvo no sentido LSTM tem o significado de "voltar no tempo", desfazendo assim qualquer aprendizado que o LSTM executou antes da redefinição.
Portanto, você estava certo ao afirmar que os LSTMs não são redefinidos antes de cada amostra de treinamento nem da época de transição. Os LSTMs desejam que seus dados sejam transmitidos ou fornecidos de maneira "on-line", por assim dizer.
fonte