2016-01-05 4 views
1

Я пытаюсь реплицировать бумагу NLP (almost) from scratch используя deeplearning4j. Я сделал следующие шаги:deeplearning4j - используйте Word2Vec для распознавания имен объектов

  1. нагрузки слова SENNA векторов
  2. написать итератор для набора данных CoNLL'03: для каждого слова, я формирую вектор признаков слова путем конкатенации слов векторов его соседние слов (с размером окна = 5)
  3. использовать выше набор данных итератор, чтобы обучить простую регрессию слой, например:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() 
    .seed(seed).iterations(iterations) 
    .learningRate(1e-8f) 
    .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) 
    .list(2) 
    .layer(0, new DenseLayer.Builder() 
     .nIn(wordVecLayers * windowSize).nOut(hiddenSize) 
     .activation("relu") 
     .weightInit(WeightInit.DISTRIBUTION) 
     .dist(new UniformDistribution(-2.83/Math.sqrt(hiddenSize), 2.83/Math.sqrt(hiddenSize))) 
     .biasInit(0.0f).build()) 
    .layer(1, new OutputLayer.Builder(LossFunction.NEGATIVELOGLIKELIHOOD) 
     .nIn(hiddenSize).nOut(types.size()) 
     .activation("softmax").weightInit(WeightInit.DISTRIBUTION) 
     .dist(new UniformDistribution(-2.83/Math.sqrt(hiddenSize), 2.83/Math.sqrt(hiddenSize))) 
     .biasInit(0.0f).build()) 
    .backprop(true).pretrain(false) 
    .build(); 

Я попытался много различных конфигурации, но ни один из них не работал меня. Модель продолжает предсказывать все слова с помощью «O'-тега». Я был бы признателен, если бы вы могли указать, что не так с моим подходом? И какие шаги я должен сделать дальше? Спасибо!

+0

Пожалуйста, присоединяйтесь к нам на GITTER и спросить @ raver119 есть: HTTPS : //gitter.im/deeplearning4j/deeplearning4j – tremstat

ответ