RNN работает хуже, чем случайные угадывания на больших наборах данных.

Вопрос или проблема

Я должен начать с того, что я здесь 100% новичок.

Я обучал модель RNN на наборе данных из 30 классов с более чем 90000 образцов, и она достигла менее 2% точности. Обучив ту же модель на небольшом подмножестве тех же данных (только с 3 классами), точность возросла до 97%. Я не уверен, почему она показывает такое плохое качество на большом наборе данных.

Я подозреваю, что модель может быть слишком маленькой, чтобы найти достаточно обобщаемых признаков, но результаты заставляют меня отказаться от вложения ресурсов в обучение большей модели. В настоящее время у меня есть два слоя с 256 скрытыми единицами.
Вот статья, в которой подробно описана архитектура модели: http://manikvarma.org/pubs/kusupati18.pdf

Пожалуйста, дайте мне любые советы, которые могут помочь мне с этим. Меня в основном озадачивает, как она продолжает показывать результаты хуже случайных.

Ответ или решение

Обучение рекуррентной нейронной сети (RNN) на большом наборе данных и получение точности менее 2% действительно вызывает удивление и вопросы. Рассмотрим ряд факторов, которые могут стать причиной такой низкой производительности вашей модели, что в свою очередь позволит вам лучше понять проблему и сделать необходимые корректировки.

### 1. Архитектура модели

Ваша модель состоит из двух слоёв с 256 скрытыми единицами. Хотя это может показаться достаточным для выполнении задач с меньшим количеством классов, для 30-классовой задачи может потребоваться более сложная архитектура. Возможно, модель не способна выделять достаточно разнообразные и обобщённые признаки из данных. Рассмотрите возможность увеличения числа слоёв или скрытых узлов, что может помочь улучшить способность модели к обучению.

### 2. Проблема с дисбалансом классов

Если в вашем наборе данных преобладают некоторые классы, это может привести к тому, что сеть будет обучаться склоняться к более представленным классам, игнорируя менее распространённые. Проверьте распределение классов в вашем наборе данных. Если оно неравномерно, рассмотрите методы, такие как увеличение данных (data augmentation) для меньшинств или использование взвешенных потерь (weighted loss) в процессе обучения.

### 3. Переобучение

На маленьком наборе данных ваша модель достигает 97% точности, но такая высокая точность может указывать на переобучение. В этом случае RNN запоминает данные вместо того, чтобы обобщать их. С увеличением объема данных модель может столкнуться с трудностями при обобщении и начать показывать худшие результаты. Попробуйте использовать регуляризацию, такие как dropout или L2-регуляризацию, чтобы уменьшить вероятность переобучения.

### 4. Предобработка данных

Качество входных данных критически важно для работы нейронных сетей. Убедитесь, что ваши данные надлежащим образом нормализованы и очищены. Проверьте, нет ли в данных выбросов или значительных шумов. Попробуйте различные методы предобработки, такие как нормализация значений, устранение пропусков или применение методов извлечения признаков.

### 5. Гиперпараметры

Настройка гиперпараметров может оказать большое влияние на результаты обучения. Попробуйте варьировать такие параметры, как скорость обучения, число итераций, размер батча и использование различных функций активации. Используйте кросс-валидацию для повышения надежности своей модели и оценки её производительности на отложенном наборе данных.

### 6. Проблемы с обучением

Убедитесь, что вы используете подходящий метод оптимизации. Адаптивные методы, такие как Adam, могут помочь в более эффективном обучении по сравнению с традиционными методами, такими как SGD. Также важно контролировать уменьшение скорости обучения, если вы используете подход к обучению с фиксированной скоростью.

### Заключение

Ситуация, когда RNN показывает низкую точность на большом наборе данных, может быть результатом нескольких факторов, включая архитектурные, данные и гиперпараметры. Рассмотрите возможность тщательной настройки архитектуры модели, обработки данных, настройки гиперпараметров и анализа распределения классов. Запуск нескольких экспериментов и итеративная настройка помогут вам достигнуть лучших результатов в обучении RNN.

Продолжайте исследовать и учиться, и удачи в ваших дальнейших проектах!

Оцените материал
Добавить комментарий

Капча загружается...