У меня есть набор данных с 150 строками, 45 функциями и 40 выходами. Я могу переполнить данные, но я не могу получить приемлемые результаты для моего набора перекрестных проверок.Как улучшить выход моей нейронной сети?
С 25 скрытыми слоями и довольно большим количеством итераций я смог получить точность ~ 94% на моем тренировочном наборе; положите улыбку на мое лицо. Но результат перекрестной проверки оказался менее 15%.
Итак, чтобы смягчить переобучение, я начал играть с параметром регуляризации (лямбда), а также количеством скрытых слоев. Лучший результат (CV), который я мог получить, составил 24% на тренировочном наборе и 34% на тренировочном наборе с лямбда = 1, 70 скрытых слоев и 14000 итераций. Увеличение количества инерций также ухудшило его; Я не могу понять, почему я не могу улучшить результаты CV с увеличенной лямбдой и итерами?
Вот это лямбда-hiddenLayer-ITER комбинации я пытался:
https://docs.google.com/spreadsheets/d/11ObRTg05lZENpjUj4Ei3CbHOh5mVzF7h9PKHq6Yn6T4/edit?usp=sharing
Любой предложенный способ (ы) пытается умнее regulationParameter-hiddenLayer-Iters комбинации? Или другие способы улучшения моего NN? Я использую мой MatLab код из класса ML Эндрю Нг (использует алгоритм обратного распространения.)
Чтобы улучшить свой вопрос, вы можете добавить: 1. Тип NN, который вы используете (kohonen, backpropagation, новый SDR один, ...) 2. Если вы запрограммировали его самостоятельно или используете библиотеку или инструмент или без разницы. – BitTickler
Он использует алгоритм обратного распространения; Я добавил это к моему вопросу. Благодаря! –
Рассмотрите возможность перемещения этого вопроса в [Stats] (http://stats.stackexchange.com/help/on-topic), поскольку он не имеет ничего общего с программированием, по крайней мере, напрямую. –