Я пытаюсь научиться использовать нейронную сеть для соответствия функциям. Я немного изучил тему, но я все еще не уверен, как найти правильную архитектуру (количество нейронов в скрытом слое. Я использую сети с 1 скрытым слоем, и мой алгоритм обучения — «trainlm» и «trainbr»). , В настоящее время я знаю о 4 проблемах, которые могут возникнуть:

+ Алгоритм достигает локального минимума: лучшая производительность обучения (tr.best_perf) слишком велика?

+ Переобучение: лучшая производительность проверки (tr.best_vperf) намного выше, чем лучшая производительность обучения (tr.best_perf)?

+ Недообучение: лучшая производительность проверки (tr.best_vperf), лучшая производительность обучения (tr.best_perf), лучшая производительность теста (tr.best_tperf) имеют одинаковый размер, но они все еще слишком велики.

+ Экстраполяция: лучшая ошибка теста (tr.best_tperf) намного больше двух других.

В настоящее время я написал цикл, который исследует сети с 1 нейроном до 50 нейронов. Каждая сеть (например, сеть с 20 нейронами) обучается 10 раз, и выбирается сеть с наименьшей эффективностью обучения (tr.best_perf), чтобы избежать локального минимума. После этого я сохраняю tr.best_tperf, tr.best_vperf и tr.best_perf этой сети в виде массива. Наконец, я сравниваю эти 50 сетей друг с другом и выбираю ту с наименьшей ошибкой, где error = max([tr.best_tperf, tr.best_vperf, tr.best_perf]).

Другой способ — обучить каждую сеть (например, сеть с 20 нейронами) 10 раз и выбрать наименьшую ошибку с ошибкой = max([tr.best_tperf, tr.best_vperf, tr.best_perf]). Затем я сохраняю эту ошибку для каждой сети в векторе. Наконец, я выбираю сеть с наименьшим элементом этого вектора.

Может ли кто-нибудь сказать мне, какой путь является правильным? Я очень ценю любую помощь, которую вы можете предоставить.

ОТВЕЧАТЬ

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Найдите в НОВОСТЯХ и ОТВЕТАХ, используя

fitnet Hmin Hmax Ntrials

Минимизация количества скрытых узлов с учетом верхней границы MSEtrn

MSEtrn <= 0.01*mean(var(targettrn',1))
        <= 0.01*var(targettrn,1) for 1-dim

это дает обучающее подмножество Rsquaretrn, превышающее 0,99.

Многие посты не имеют индекса обучающего подмножества trn и/или могут использовать t вместо target. Итак, вероятно, опубликовано миллион вариантов, включая

MSEgoal = 0.01*vart1

Лучший способ, который я нашел для получения относительно беспристрастных результатов, — это использовать 2 цикла.

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ

https://www.matlabsolutions.com/resources/how-can-i-find-the-right-neural-network-architecture.php