@NortaBirdo

Как лучше изменить нейронную сеть?

Добрый день. Мы с товарищем делаем небольшой pet-project.

Задача формулировалась следующим образом.
Есть 7 классов объектов. У каждого 437 бинарных признаков. Есть обучающая выборка на ~400 случаев. Из-за особенностей предметной области количество экземпляров каждого класса отличается. Требуется сделать классификатор, который по вновь введенным данным определит к какому классу относится новый объект.

Наши действия
Мы решили сделать ИНС. Выборку подравняли искусственно (там, где было очень мало случаев - раскопировали).
ИНС у нас с одним слоем. И все вроде нормально получилось, если бы не одно но:

Проблема
Один из классов определяется постоянно не верно. Т.е. по шести из них процент попаданий 94-96%. Нас устраивает. Но по одному ИНС упорно врет. Причем по этому классу изначально количества случаев было завались.

Перепроверили выборку - нет по признакам все правильно.
Переучили сеть - результат тот же.

Видимо надо менять архитектуру сети. И вот тут у нас встал вопрос. На какую? Можете что-то посоветовать?
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
@imageman
> 437 бинарных признаков. Есть обучающая выборка на ~400 случаев.

Это означает, что нейросеть у вас будет переобучена. Для любого машинного обучения число строк обучения должно быть намного больше числа колонок. Если будете сокращать число колонок, это (по моему) в данном случае ничего кардинально не изменит.

В нейросети лучше минимум один скрытый слой, если есть возможность то увеличивайте число скрытых слоев. Пробуйте различные конфигурации слоев ("бочка", "рюмка", "прямоугольник"). Выходной слой можно пробовать дискретное число (номер класса), а можно пробовать в выходном слое число выходов = числу классов (все нули, кроме одной единицы напротив нужного класса).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы