Ваши кривые потерь имеют смысл, так как мы видим, как сеть переходит на тренировочный набор, в то время как мы видим обычную чашеобразную кривую проверки.
Чтобы ваша сеть работала лучше, вы всегда можете углубить ее (больше слоев), расширить ее (больше единиц на скрытый слой) и / или добавить дополнительные функции нелинейной активации для своих слоев, чтобы иметь возможность отображать их наболее широкий диапазон значений.
Кроме того, я полагаю, что причина, по которой вы изначально получили так много повторяющихся значений, связана с размером вашей сети.По-видимому, каждая из точек данных имеет примерно 20 000 объектов (довольно большое пространство объектов);размер вашей сети слишком мал, и возможное пространство выходных значений, которые могут быть сопоставлены, следовательно, меньше.Я провел некоторое тестирование с несколькими большими скрытыми единичными слоями (и увеличил количество слоев) и смог увидеть, что значения прогноза действительно варьируются: [0,519], [0,41], [0,37] ...
Понятно также, что производительность вашей сети варьируется, потому что количество функций, которыми вы обладаете, примерно в 50 раз превышает размер вашего обучения (обычно вы хотели бы меньшую долю).Имейте в виду, что обучение для слишком большого количества эпох (например, более 10) для такого небольшого обучения и тестового набора данных, чтобы увидеть улучшения в потерях, не является хорошей практикой, поскольку вы можете серьезно переоценить и, вероятно, признак того, что ваша сеть должна быть шире / глубже.
Все эти факторы, такие как размер слоя, размер скрытой единицы и четное количество эпох, могут рассматриваться как гиперпараметры.Другими словами, удерживайте некоторый процент ваших данных обучения как часть вашего разделения проверки, проходите один за другим через каждую категорию факторов и оптимизируйте, чтобы получить самую высокую точность проверки.Чтобы быть справедливым, ваш тренировочный набор не слишком высок, но я считаю, что вы должны выдержать 10-20% обучения в качестве своего рода набора для проверки правильности этих гиперпараметров, учитывая, что у вас есть такое большое количество функций на точку данных,В конце этого процесса вы сможете определить свою истинную точность теста.Вот как я бы оптимизировал, чтобы получить максимальную производительность этой сети.Надеюсь это поможет.
Подробнее об обучении, тестировании, расщеплении валов