Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НЕЙРОСЕТИ_уч_Боровков.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.73 Mб
Скачать

Выделение полезных входных переменных

Обсуждение

Довольно часто мы не имеем в своем распоряжении никакой дополни­тельной информации о том, какие входные переменные действительно нужны для решения задачи классификации или регрессии. Важным эта­пом в поиске ответа на этот вопрос будет построение нейронной сети, специально предназначенной для отбора значимых переменных.

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

При работе с пакетом ST Neural Networks в распоряжении пользователя есть два способа отбора переменных: метод проб и ошибок и Генетиче­ский алгоритм отбора входных данных - Genetic Algorithm Input Selection.

Тестирование переменных методом проб и ошибок

При тестировании переменных на вход сети подаются различные комби­нации входных переменных с целью определить, какие из них наиболее полезны. С помощью функций окна Редактор данных - Data Set Editor пакета ST Neural Networks можно делать отдельные переменные неучиты­ваемыми, затем строить нейронную сеть, обучать ее и тестировать, поэто­му поэкспериментировать с различными комбинациями входов не соста­вит большого труда.

При этом можно придерживаться одной из двух стратегий: наращивания или отсечения.

Наращивание. Мы начинаем с одной переменной и по одной добавляем к ней другие переменные. Если результат от этого улучшается, то такая комбинация запоминается. Такая процедура на начальных этапах работает быстро, однако при этом игнорируется то обстоятельство, что две или более переменных могут быть взаимосвязаны (т.е. может оказаться так, что нужно добавить сразу несколько переменных, чтобы улучшить ре­зультат).

Отсечение. Мы берем все имеющиеся переменные и начинаем по одной их убирать. Если результат от этого ухудшается, то возвращаемся к пре­дыдущей комбинации переменных. Этот поначалу очень медленный спо­соб, требующий построения очень больших по размеру сетей, позволяет, как правило, сохранить взаимосвязанные переменные.

Ограничение времени обучения

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

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

Эту процедуру можно ускорить, работая со случайным подмножеством наблюдений. Для этого нужно задать небольшое число обучающих и кон­трольных наблюдений, число тестовых наблюдений положить равным нулю, а затем применить операцию Перемешать все - Shuffle All (меню Правка -Переменные - Edit-Cases или кнопка Перемешать - Shuffle).

Предостережение. Не пренебрегайте кросс-проверкой на этом этапе. Большая сеть скорее подвержена переобучению, чем маленькая, и иногда при уменьшении числа входных переменных показатели на контрольном множестве улучшаются, даже если удаленные переменные несли сущест­венную информацию. Поэтому контрольная ошибка является очень важ­ным показателем.

Генетический алгоритм отбора входных данных

Генетический алгоритм отбора входных данных - Genetic Algorithm Input Selection пакета ST Neural Networks реализует элегантный автоматизированный подход к выбору значимых входных данных. Можно считать его «интеллектуальной» формой метода проб и ошибок.

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

Каждый возможный вариант набора входных переменных можно пред­ставить в виде битовой маски. Ноль в соответствующей позиции означает, что эта входная переменная не включена во входной набор, единица - что включена. Таким образом, маска представляет собой строку битов - по одному на каждую возможную входную переменную - и Генетический алгоритм отбора входных данных - Genetic Algorithm Input Selection оптимизирует такую битовую строку.

Алгоритм следит за некоторым набором таких маскирующих строк, оце­нивая каждую из них по контрольной ошибке (если были заданы кон­трольные наблюдения; если нет, то вместо нее используется ошибка обу­чения). По значениям ошибки производится отбор лучших вариантов ма­сок, которые комбинируются друг с другом с помощью искусственных генетических операций: скрещивания и мутации (случайных изменениях отдельных битов). Поскольку часто бывает желательно иметь как можно меньше входных переменных, даже ценой некоторого увеличения ошиб­ки, можно включить в алгоритм штраф за элемент (Unit Penalty), который будет прибавляться к ошибке при добавлении каждой новой переменной.

Лучшая из найденных маскирующих строк выводится на экран. Вы може­те просмотреть ее, чтобы понять, какие переменные были отобраны, или же просто нажать кнопку Применить - Apply - программа ST Neural Networks автоматически сделает неучитываемыми все отвергнутые алго­ритмом переменные из исходного набора данных. Алгоритм проверяет только те переменные, которые обозначены как входные, поэтому если вы не хотите, чтобы какие-то переменные попали во входной набор, просто пометьте их как неучитываемые до запуска генетического алгоритма.