|
Один из самых трудных вопросов, который приходится решать разработчику нейросетевых приложений, - это вопрос о том, какие данные взять в качестве входных для нейронной сети. Этот вопрос сложен в силу сразу нескольких причин. - Чаще всего при применении нейронных сетей в реальных зада- чах заранее не бывает точно известно, как прогнозируемый показа- тель связан с имеющимися данными. Поэтому собирают больше разнообразных данных, среди которых предположительно есть и важные, и такие, чья ценность неизвестна или сомнительна. - В задачах нелинейной природы среди параметров могут быть взаимозависимые и избыточные. Например, может случиться так, что каждый из двух параметров сам по себе ничего не значит, но оба они вместе несут чрезвычайно полезную информацию. Это же мо- жет относиться к совокупности из нескольких параметров. Сказан- ное означает, что попытки ранжировать параметры по степени важ- ности могут быть неправильными в принципе. - Из-за «проклятия размерности» иногда лучше просто убрать некоторые переменные, в том числе и несущие значимую информа- цию, чтобы хоть как-то уменьшить число входных переменных, а значит и сложность задачи, и размеры сети. Вопреки здравому смыслу, такой прием иногда действительно улучшает способность сети к обобщению (Bishop, 1995) [10]. Единственный способ получить полную гарантию того, что входные данные выбраны наилучшим образом, состоит в том, чтобы перепробовать все возможные варианты входных наборов данных и архитектур сетей и выбрать из них наилучший. На практике это сде- лать невозможно из-за огромного количества вариантов. Можно попытаться поэкспериментировать в среде пакета ST Neural Networks - последовательно строить сети с различными набо- рами входных переменных, чтобы постепенно составить себе карти- ну того, какие же входные переменные действительно нужны. Мож- но воспользоваться методом регуляризации весов по Вигенду (Weigend Weight Regiilariation) и в окне Редактор сети - Network Editor посмотреть, у каких входных переменных выходящие веса сделаны нулевыми (это говорит о том, что данная переменная игнорируется). Самое действенное средство решения данного вопроса в пакете ST Neural Networks -- это Генетический алгоритм отбора входных данных - Genetic, Algorithm Input Selection. Этот алгоритм выполняет большое число экспериментов с различными комбинациями вход- ных данных, строит для каждой из них вероятностную либо обоб- щенно-регрессионную сеть, оценивает ее результаты и использует их в дальнейшем поиске наилучшего варианта. Генетические алгоритмы являются очень эффективным инстру- ментом поиска в комбинаторных задачах как раз такого типа (где требуется принимать ряд взаимосвязанных решений «да/нет»). |
Генетические алгоритмы отбора входных данных |