Можно ли доверять прогнозам, если кривая обучения показывает ошибку валидации ниже, чем ошибка обучения? - PullRequest
0 голосов
/ 29 января 2019

Я работаю с нейронными сетями (NN) как часть моей диссертации по геофизике, и использую TensorFlow с Keras для обучения моей сети.

Моя текущая задача - использовать NN для аппроксимации термодинамической модели, то есть задачи нелинейной регрессии.Он принимает 13 входных параметров и выдает профиль скорости (скорость в зависимости от глубины) 450 параметров.Мои данные состоят из 100 000 синтетических примеров (т. Е. Шума нет), разбиты на тренировки (80 КБ), валидацию (10 КБ) и тестирование (10 КБ).

Я проверил свою сеть на различные архитектуры: более широкие (5-800 нейронов) и более глубокие (до 10 слоев), разные скорости обучения и размеры пакетов, и даже для многих эпох (5000),В основном все стандартные приемы торговли ...

Но я озадачен тем фактом, что кривая обучения показывает ошибку валидации ниже, чем ошибка обучения (для всех моих тестов), и я никогда не был в состояниисоответствовать тренировочным данным.См. Рисунок ниже:

enter image description here

Ошибка в тестовом наборе, соответственно, низкая, поэтому сеть, по-видимому, может делать достойные прогнозы.Кажется, что достаточно одного скрытого слоя из 50 нейронов.Однако я не уверен, могу ли я доверять этим результатам из-за поведения кривой обучения.Я считал, что это может быть связано с набором проверок, состоящим из примеров, которые «легко» предсказать, но я не понимаю, как мне это изменить.Возможно, больший набор проверок?

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

Возможно ли, что переоснащение просто невозможно для моей проблемы и данных?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Нелегко определить, не зная точного способа настройки эксперимента:

  • какой метод перекрестной проверки вы использовали?
  • как вы разбилиданные?
  • и т. д.

Как вы упомянули, тот факт, что вы наблюдаете ошибку проверки меньше, чем обучение, может быть результатом того факта, что либо обучающий набор данных содержит много "сложных"случаи для изучения или набор для проверки содержит много «простых» случаев для прогнозирования.

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

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

0 голосов
/ 29 января 2019

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

...