Перепроектирование сети
Часто хорошей идеей является создание третьего набора данных, называемого экзаменационным или верификационным набором. Этот набор данных содержит примеры, которые не входят ни в тренировочный, ни в тестовый наборы. Вы можете сравнить известные Вам правильные ответы с ответами сети.
Если Ваша сеть не дает хороших результатов, возможно, Вы захотите прислушаться к следующим советам. Пробуйте выполнять рекомендации по одной, всякий раз давая сети обучаться заново.
А. Установка минимумов и максимумов вплотную к данным
Убедитесь, что минимумы и максимумы установлены достаточно близко к Вашим данным. Эти значения могут быть установлены автоматически в модуле Выбор входов и выходов, или Вы можете ввести в этом модуле свои собственные значения, если Вы хотите слегка расширить границы на случай возможного появления данных в более широком диапазоне при применении сети к новым примерам.
Б. Добавление нейронов в скрытом слое
При добавлении нейронов в скрытый слой нейронной сети с обратным распространением ошибки Вы увеличиваете число степеней свободы, и сеть становится способной к запоминанию более сложных образов. Время обучения при этом, однако, возрастает, так как значительно увеличивается количество необходимых вычислений. (Есть ситуации, когда добавление скрытых нейронов сокращает время обучения. Если количество скрытых нейронов недостаточно для запоминания всех сложных примеров, содержащихся в данных, сеть будет осциллировать и никогда не сможет запомнить эти примеры. Добавление скрытых нейронов позволит сети сделать это.)
Помимо увеличения времени обучения, увеличение количества нейронов в скрытом слое сети может нести в себе еще одну опасность. По мере добавления нейронов к сети Вы будете получать все более и более точные приближения к данным. Другими словами, "кривые", которые нейронная сеть пытается "провести" через точки, соответствующие данным, становятся все ближе и ближе к этим точкам, пока сеть не перейдет к фактическому выучиванию примеров. Когда это происходит, обобщение на новых данных
становится плохим.
Однако нам хотелось бы подчеркнуть, что это не было проблемой для большинства приложений, построенных нами с умеренным количеством скрытых нейронов, особенно при использовании Калибровки. Основным критерием качества является не то, насколько хорошо сеть выучила тренировочный набор примеров, а то, насколько хорошо сеть предсказывает ответы для экзаменационного или верификационного набора, который она никогда не видела прежде.
В. Изменение скорости обучения и момента или использование TurboProp
При использовании сетей с обратным распространением ошибки наилучшие результаты для некоторых задач могут быть получены с низкими скоростью обучения и моментом. Для других задач лучшие результаты дают высокие скорость обучения и момент. TurboProp - это модель, которая совсем не требует от Вас установки скорости обучения и момента.
Г. Изменение порядка предъявления примеров
Часто использование случайного порядка предъявления примеров дает сети возможность найти состояния с более низким значением средней ошибки, что свидетельствует о том, что найдены лучшие решения. Однако в процессе обучения сеть сильнее осциллирует. В других ситуациях медленное, но устойчиво прогрессирующее обучение с поочередным предъявлением оказывается наилучшим.
Д. Увеличение или уменьшение параметра сглаживания
Для сетей НСОР и ВНС Вы, возможно, получите лучшие результаты путем увеличения или уменьшения параметра сглаживания при применении сети. Для автоматического вычисления наилучшего параметра сглаживания Вы можете использовать Калибровку. За подробностями обращайтесь к разделам Обучение НСОР и Обучение ВНС.
Е. Изменение Ваших переменных
Наиболее вероятной причиной, по которой Ваша сеть может не давать хороших результатов, является тот факт, что Ваши переменные выбраны неверно или предъявляются сети не в самом удачном виде. В примере с предсказанием фондового рынка мы могли пропустить какую-нибудь отлично работающую техническую переменную. Пакет Рыночных
индикаторов предоставляет богатый выбор и даже позволяет делать индикаторы из индикаторов. Вы можете захотеть добавить какие-либо существенные переменные, или даже какие-либо чисто субъективные переменные, отражающие "ощущение рынка". Даже Ваша личная оценка новостей дня может стать еще одной переменной, которую Вы можете
использовать. Возможно, у Вас есть Ваши собственные индикаторы, или Вы хотите использовать что-либо из других программ. NeuroShell 2 может стоять на плечах гигантов и использовать для предсказаний даже мнения других экспертов. Вы можете использовать модуль Графики зависимостей для определения входных переменных, соответствующих трендам того, что Вы пытаетесь предсказать (например, в системе для предсказаний на фондовом рынке), или искать корреляции с использованием Корреляционной точечной
диаграммы.
Ж. Размер сети
Если сеть обучается слишком долго, Вам, возможно, стоит подумать о разбиении задачи на более мелкие задачи, так, чтобы решением каждой мелкой части исходной задачи занималась отдельная сеть.
Содержание раздела