Até onde eu sei, as redes neurais têm um número fixo de neurônios na camada de entrada.
Se redes neurais são usadas em um contexto como PNL, frases ou blocos de texto de tamanhos variados são alimentados para uma rede. Como o tamanho da entrada variável é reconciliado com o tamanho fixo da camada de entrada da rede? Em outras palavras, como essa rede é flexível o suficiente para lidar com uma entrada que pode estar em qualquer lugar de uma palavra a várias páginas de texto?
Se minha suposição de um número fixo de neurônios de entrada estiver errada e novos neurônios de entrada forem adicionados / removidos da rede para corresponder ao tamanho da entrada, não vejo como eles podem ser treinados.
Dou o exemplo da PNL, mas muitos problemas têm um tamanho de entrada inerentemente imprevisível. Estou interessado na abordagem geral para lidar com isso.
Para imagens, é claro que você pode aumentar / diminuir a amostra para um tamanho fixo, mas, para o texto, isso parece ser uma abordagem impossível, pois adicionar / remover texto altera o significado da entrada original.
fonte
Respostas:
Três possibilidades vêm à mente.
O mais fácil é o preenchimento zero . Basicamente, você pega um tamanho de entrada bastante grande e apenas adiciona zeros se sua entrada de concreto for muito pequena. Obviamente, isso é bastante limitado e certamente não será útil se sua entrada variar de algumas palavras a textos completos.
NNs recorrentes (RNN) são um NN muito natural para escolher se você tem textos de tamanho variável como entrada. Você insere palavras como vetores de palavras (ou incorporação) apenas uma após a outra e o estado interno da RNN deve codificar o significado de toda a cadeia de palavras. Este é um dos artigos anteriores.
Outra possibilidade é usar NNs recursivos . Essa é basicamente uma forma de pré-processamento na qual um texto é recursivamente reduzido a um número menor de vetores de palavras até que apenas um seja deixado - sua entrada, que deve codificar todo o texto. Isso faz muito sentido, do ponto de vista linguístico, se a sua entrada consistir em frases (que podem variar muito em tamanho), porque as frases são estruturadas recursivamente. Por exemplo, o vetor de palavras para "o homem" deve ser semelhante ao vetor de palavras para "o homem que confundiu sua esposa com um chapéu", porque as frases substantivas agem como substantivos etc. Muitas vezes, você pode usar informações linguísticas para orientar sua recursão na sentença. Se você quiser ir muito além do artigo da Wikipedia, provavelmente este é um bom começo .
fonte
Outros já mencionados:
então adicionarei outra possibilidade: usando convoluções diferentes vezes, dependendo do tamanho da entrada. Aqui está um excelente livro que apóia essa abordagem:
Extraído da página 360. Você pode ler mais para ver outras abordagens.
fonte
Na PNL, você tem uma ordem inerente das entradas, portanto as RNNs são uma escolha natural.
Para entradas de tamanho variável em que não há pedido específico entre as entradas, pode-se projetar redes que:
A estrutura tem a seguinte aparência:
Redes semelhantes foram usadas para aprender as relações entre objetos ( arxiv: 1702.05068 ).
Um exemplo simples de como aprender a variação da amostra de um conjunto de valores de tamanho variável é apresentado aqui (aviso: sou o autor do artigo vinculado).
fonte