- •Глава 1
- •Глава 2 первые шаги Начинаем работу с пакетом
- •Создание набора данных
- •Создание новой сети
- •Сохранение набора данных и сети
- •Обучение сети
- •Запуск нейронной сети
- •Проведение классификации
- •Заключение
- •Глава 3 дальнейшие возможности
- •Ирисы Фишера
- •Обучение с кросс-проверкой
- •Условия остановки
- •Восстановление наилучшей сети
- •Решение задач регрессии
- •Радиальные базисные функции
- •Линейные модели
- •Сети Кохонена
- •Вероятностные (pnn) и обобщенно-регрессионные (grnn) сети
- •Автоматический конструктор сети
- •Генетический алгоритм отбора входных данных
- •Временные ряды
- •Глава 4 практические советы по решению задач
- •Представление данных
- •Выделение полезных входных переменных
- •Понижение размерности
- •Выбор архитектуры сети
- •Пользовательские архитектуры сетей
- •Временные ряды
- •Глава 5 краткое руководство
- •Обучение сетей
- •Работа с сетью
- •Пересылка результатов в систему statistica
- •Список литературы
Выбор архитектуры сети
В пакете ST Neural Networks возможны два варианта выбора архитектуры сети: метод проб и ошибок и использование автоматического конструктора сети.
При выборе архитектуры методом проб и ошибок стоит придерживаться определенных описанных ниже эвристических правил. Кроме того, в пакете ST Neural Networks имеется встроенная функция Советник - Network Advisor, которая предложит начальную конфигурацию сети, основываясь на свойствах исходных данных. Пока вы экспериментируете, программа будет автоматически хранить лучшую из сетей, полученных к данному моменту. После окончания поиска ее можно будет снова вызвать и работать с ней. Метод проб и ошибок описан в следующих разделах.
Автоматический конструктор сети позволяет «автоматически» проделать все эти эксперименты. При этом он пробует сети самых разных архитектур, с помощью весьма сложных алгоритмов оптимизации и поиска выделяет наиболее перспективные варианты и. наконец, выдает наилучшую из опробованных сетей. Такой процесс может оказаться весьма долгим, поскольку при этом требуется обучить и протестировать сотни тысяч различных нейросетевых моделей.
Если вы располагаете только входными переменными, необходимо использовать сеть Кохонена. Для всех остальных случаев мы дадим несколько общих советов.
Типы сетей
Тип сети |
Преимущества |
Недостатки |
MLP |
Небольшие, быстро работают. |
Медленно обучаются. |
RBF |
Быстро обучаются. |
Большие по размерам. Не могут экстраполировать. |
Линейные |
Простые, быстро обучаются. |
Не могут решать нелинейные задачи. |
Байесовы |
Обучаются очень быстро, имеют хорошую теоретическую основу. |
Очень большие, медленно работают, не экстраполируют. |
Первый шаг
Высокая скорость обучения делает байесовы сети хорошей начальной точкой в решении задачи: если такая сеть совсем не может решить задачу, то, вероятно, что этого не сможет сделать и сеть другой архитектуры. Сравнение ее с линейной моделью поможет вам представить, насколько в задаче сильны нелинейные эффекты.
Предостережение. Хотя байесова сеть обычно находит примерный путь решения задачи, она, вообще говоря, не выдает результаты такого качества, как сети других архитектур.
Второй шаг
Теперь можно попробовать другие архитектуры сетей. Иногда сети MLP дают гораздо лучшие результаты, чем байесовы (благодаря нерадиальным элементам), в то время как радиальные базисные функции аналогичны по своей структуре байесовым сетям и дают похожие результаты. Поэтому хорошим вторым шагом будет попробовать MLP и посмотреть, есть ли существенная разница. Если MLP-сети дают результаты хуже, чем байесовы, имеет смысл обратиться к RBF: в них используется тот же радиальный подход, что и в байесовых сетях, но они компактнее.
Во всех случаях следует помнить, что на результат обучения сети могут сильно влиять параметры алгоритма обучения, поэтому не стоит отвергать какую-либо архитектуру, не проделав с ней серию экспериментов.
Окончательный выбор зависит и от того, какая требуется скорость выполнения. Как правило, чем меньше сеть, тем дольше она обучается и тем быстрее работает.
Самое трудное - выбрать число промежуточных слоев и число элементов в них. Вот несколько советов, которые могут вам помочь.
• При использовании многослойного персептрона для большинства задач достаточно одного промежуточного слоя. Если даже при большом числе скрытых элементов не удается уменьшить ошибку до приемлемого уровня, можно попробовать сеть с двумя промежуточными слоями.
• Чем больше число скрытых элементов в сети, тем более сложную задачу она может моделировать, но при этом потребуется более длительное обучение и возникнет опасность переобучения. При экспериментировании следите за тем, как меняются обучающая и контрольная ошибки. Если при добавлении новых элементов уменьшаются обе ошибки, то, по-видимому, сеть пока слишком мала. Если же контрольная ошибка стала намного больше, чем ошибка обучения (и, в частности, если она увеличивается при дальнейшем обучении), то, вероятно, что данная сеть слишком большая.
• Общее число весов и пороговых коэффициентов в сети должно быть меньше, а лучше - намного меньше, чем число обучающих наблюдений. В идеале нужно иметь наблюдений в десять или двадцать раз больше, чем имеется весов. Если обучающих наблюдений недостаточно, следует ограничиться сетями небольших размеров, поскольку для моделирования сложной функции попросту недостает данных. Если число наблюдений меньше, чем число входов, умноженное на число выходов, следует использовать только линейные модели. Недостаток данных - одна из возможных причин для удаления некоторых входных переменных. Даже если эти переменные содержали какую-то информацию, их удаление и последующее уменьшение размера сети может улучшить результат.
Автоматический конструктор сети
Одна из наиболее трудных задач при построении нейронной сети - выбор архитектуры, а после того, как архитектура выбрана, - задание ее свободных параметров (количества скрытых элементов и управляющих параметров алгоритма обучения). Правильный выбор свободных параметров в большой степени зависит от сложности задачи, которую нужно решить, и поскольку заранее неизвестно, насколько задача сложна, необходим ряд экспериментов.
Автоматический конструктор сети пакета ST Neural Networks подходит к этому как к задаче оптимизации, и с помощью довольно сложных методов осуществляет автоматический поиск подходящего устройства сети. Этот метод не может уменьшить сложность исходной задачи или присутствующий в ней уровень помех, поэтому нет гарантии, что будет найдено абсолютно лучшее решение. Кроме того, метод требует большого времени счета, потому что при этом выполняется очень большое число экспериментов.
В то же время проведение большого числа экспериментов вручную требует еще большего времени и участия пользователя, тогда как автоматический конструктор сети можно, например, оставить работать в автономном режиме на длительное время, в течение которого он успеет перепробовать сотни тысяч вариантов даже для весьма сложной задачи. Следовательно, этот алгоритм имеет больше шансов построить хорошую сеть, чем даже очень опытный исследователь.
Пользователь может указать, какие типы сетей нужно пробовать и сколько итераций каждого теста проводить. В общем случае автоматический конструктор сети тестирует каждый тип архитектуры в два этапа.
Сначала, путем выявления минимумов, ищется «удовлетворительное» решение задачи. На это уходит обычно 10-20 итераций. На этом этапе могут попадаться локальные минимумы в пространстве поиска, вызванные помехами в данных.
Затем для более тщательного поиска применяется один из вариантов метода «отжига». Здесь последовательно пробуются различные варианты архитектур; и при этом поиск концентрируется на наиболее перспективных участках. Этот алгоритм уже вполне может справиться с локальными минимумами и не подвержен влиянию помех.
При автоматическом конструировании сети можно задать параметр Штраф за элемент - Unit Penalty. Это будет побуждать алгоритм искать нужный вариант среди небольших сетей и даст гарантию того, что в пространстве поиска найден минимум.
При тестировании многослойных персептронов (этот тип сетей сложнее всего для построения) для большей эффективности автоматический конструктор сети использует метод спуска по сопряженным градиентам с ранней остановкой (сразу же после начала переобучение).
