Модель не может учиться - PullRequest
       35

Модель не может учиться

0 голосов
/ 20 апреля 2019

Я пытаюсь сделать алгоритм анализа настроений для музыки с лирикой в ​​качестве входных данных. Я пробовал некоторые модели, но, кажется, я не могу получить хорошую. Мне нужна помощь, чтобы добраться в правильном направлении. Вот некоторые подробности о проблеме:

1. Набор данных (около 11 тыс. Образцов): -80% обучение - 20% проверка -Я использую в качестве входных данных 4 песни для каждой песни. Тексты песен с самой большой частотой в песне (я выбрал их без дубликатов) -Я их предварительно обрабатываю (используйте строчные буквы, удаляйте не буквы и бесполезные пробелы. -Я пытаюсь предсказать 2 числа: возбуждение и валентность. Я могу вычислить чувство, зная эти - Я также пробовал проблему классификации (преобразовал метки непосредственно в настроения) с 12 классами, но я все еще не получил хороших результатов. - после предварительной обработки я встраиваю слова в каждый текст. Например, если после встраивания у меня 50 слов, я получаю тензор 50 x embedding_size. Встраивание также обучены. Я думал об использовании некоторых предварительно обученных, таких как word2vec или GloVe.

2. Архитектура - у меня были такие подходы: - используя только ГРУ, а затем выходной линейный слой слой с выходным линейным слоем -пренеть с использованием двухслойного NN с узким местом (размер 256 - 128), CNN и затем линейного слоя -CNN, ГРУ, линейный слой -модуль с набором сверток разных размеров ядра (2,3,4) с последующим GRU и линейным слоем - еще несколько с похожими результатами

3.Больше примечаний: -В основном я использую ReLU в качестве активации и tanh в последнем слое. После применения tanh я умножаю результат на 3, чтобы получить числа между -3,3 (валентность и возбуждение находятся между этими значениями). используется MSE как функция потерь. Я заметил, что потеря составляет около 1 (возможно, 0,6 в счастливых случаях), а затем остается там. Точность не может быть лучше, чем 20%, и после некоторых итераций она обычно достигает 5-10%. Потеря поезда и потеря проверки обычно уменьшаются. -обучены мини-партиями (32/64/128) -Я использовал в качестве оптимизатора SGD или Adam. -пробовал много курсов обучения, но никакая ценность не помогла или доказала лучшие результаты. - Я тренировал свои модели в течение 10-30 эпох. Я не пошел дольше, потому что заметил, что это не поможет.

Я просмотрел свой код и не думаю, что есть ошибка. Вот мой код (поскольку здесь довольно сложно показать все, но я это сделаю, если это действительно необходимо): https://github.com/BogdanAngh/Poorify/tree/RegressionModel/AI -> все начинается с train.py

Мне интересно, если моя архитектура плохая или проблема слишком сложна с тем, что я предложил. Я использовал архитектуру, с которой встречался, читал газеты. Я ожидал получить довольно лучшую модель (скажем, где-то около 40-50% точности) Мне нужны советы, потому что я не знаю, куда отсюда двигаться. Большое спасибо за чтение, я знаю, это довольно долго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...