Ajuda a proteger a Grande Barreira de Corais com TensorFlow em Kaggle Junte Desafio

A Estrutura de Aprendizagem Estruturada Neural

O Neural Structured Learning (NSL) se concentra no treinamento de redes neurais profundas, aproveitando os sinais estruturados (quando disponíveis) junto com as entradas de recursos. Como introduzido por Bui et al. (WSDM'18) , estes sinais estruturados são usados para regularizar a formação de uma rede neural, forçando o modelo para aprender previsões precisas (por minimizando a perda supervisionado), enquanto ao mesmo tempo mantendo a semelhança estrutural de entrada (ao minimizar a perda vizinho , veja a figura abaixo). Esta técnica é genérica e pode ser aplicada em arquiteturas neurais arbitrárias (como NNs feed-forward, NNs convolucionais e NNs recorrentes).

NSL Concept

Observe que a equação generalizada de perda de vizinho é flexível e pode ter outras formas além da ilustrada acima. Por exemplo, nós também pode selecionar\(\sum_{x_j \in \mathcal{N}(x_i)}\mathcal{E}(y_i,g_\theta(x_j))\) ser a perda vizinho, que calcula a distância entre a verdade terrestre \(y_i\)ea previsão do vizinho \(g_\theta(x_j)\). Isto é vulgarmente utilizado na aprendizagem contraditório (Goodfellow et ai., ICLR'15) . Portanto, generaliza NSL para Neural Gráfico de aprendizagem se vizinhos são explicitamente representado por um gráfico, e a aprendizagem se Adversarial vizinhos são induzidas por perturbações implicitamente contraditório.

O fluxo de trabalho geral para Aprendizagem Estruturada Neural é ilustrado abaixo. As setas pretas representam o fluxo de trabalho de treinamento convencional e as setas vermelhas representam o novo fluxo de trabalho introduzido pela NSL para potencializar sinais estruturados. Primeiro, as amostras de treinamento são aumentadas para incluir sinais estruturados. Quando os sinais estruturados não são fornecidos explicitamente, eles podem ser construídos ou induzidos (o último se aplica ao aprendizado adversário). Em seguida, as amostras de treinamento aumentadas (incluindo as amostras originais e seus vizinhos correspondentes) são fornecidas à rede neural para calcular seus embeddings. A distância entre a incorporação de uma amostra e a incorporação de seu vizinho é calculada e usada como a perda do vizinho, que é tratada como um termo de regularização e adicionada à perda final. Para a regularização baseada em vizinho explícito, normalmente calculamos a perda de vizinho como a distância entre a incorporação da amostra e a incorporação do vizinho. No entanto, qualquer camada da rede neural pode ser usada para calcular a perda de vizinho. Por outro lado, para regularização baseada em vizinho induzida (adversarial), calculamos a perda de vizinho como a distância entre a previsão de saída do vizinho adversário induzido e o rótulo de verdade fundamental.

Fluxo de trabalho NSL

Por que usar NSL?

NSL traz as seguintes vantagens:

  • Maior precisão: o sinal estruturado (s) entre as amostras podem fornecer informações que nem sempre está disponível em entradas de recursos; por conseguinte, tem sido mostrado a abordagem da formação da junta (com ambos os sinais e características estruturados) para superar muitos métodos existentes (que se baseiam em formação com apenas características) sobre uma grande variedade de tarefas, tais como a classificação de documentos e classificação intenção semântica ( Bui et al ., WSDM'18 & Kipf et al., ICLR'17 ).
  • Robustez: modelos formados com exemplos contraditórios têm sido mostrados para ser robusto contra perturbações contraditório concebidos para induzir em erro de previsão ou classificação de um modelo ( Goodfellow et ai, ICLR'15. & Miyato et ai, ICLR'16. ). Quando o número de amostras de formação é pequena, formação com exemplos contraditório também ajuda a melhorar a precisão do modelo ( Tsipras et al., ICLR'19 ).
  • Menos dados rotulados necessário: NSL permite que as redes neurais para aproveitar tanto os dados rotulados e não rotulados, que estende o paradigma de aprendizagem ao aprendizado semi-supervisionado . Especificamente, o NSL permite que a rede treine usando dados rotulados como na configuração supervisionada e, ao mesmo tempo, leva a rede a aprender representações ocultas semelhantes para as "amostras vizinhas" que podem ou não ter rótulos. Esta técnica mostrou uma grande promessa para melhorar a precisão do modelo quando a quantidade de dados rotulados é relativamente pequena ( Bui et al., WSDM'18 & Miyato et al., ICLR'16 ).

Tutoriais passo a passo

Para obter experiência prática com Aprendizagem Estruturada Neural, temos tutoriais que cobrem vários cenários onde sinais estruturados podem ser explicitamente fornecidos, construídos ou induzidos. Aqui estão alguns:

Mais exemplos e tutoriais podem ser encontrados no exemplos diretório do nosso repositório GitHub.