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