Применения нейронных сетей в задачах прогнозирования финансовых ситуаций и принятия решений

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Аннотация

Данная дипломная работа посвящена исследованию применения нейронных сетей в задачах прогнозирования финансовых ситуаций и принятия решений.

В связи с этим, в этом дипломном проекте проведены исследования применения нейронных сетей для прогнозирования ситуации на фондовом рынке, с помощью программного пакета моделирования нейронных сетей Trajan 3. 0: ввод и обработка данных различными математическими методами, статистический анализ результатов, предсказание на заданный период.

Дипломный проект выполнен Кондрашовым Владимиром Александровичем объемом: записка — 82 листа, приложения — 21 лист.

  • Содержание
  • Введение 4
  • Глава 1. Задача анализа деловой активности 6
    • 1.1 Постановка задачи 6
    • 1.2 Факторы, влияющие на принятие решений 6
    • 1.3 Временные ряды 9
  • Выводы к главе 1 11
    • 2.1 Современные информационные технологии и нейронные сети 12
    • 2.2 Особенности применения нейронных сетей 16
      • 2.2.1 Как работает нейронная сеть 16
      • 2.2.2 Формирование нейронной сети 17
      • 2.2.3 Обучение нейронной сети 19
      • 2.2.4 Имитация функционирования (тестирование) обученной нейронной сети 21
  • Выводы к главе 2 22
  • Глава. 3. Особенности нейронных сетей в программе Trajan 23
    • 3.1 Типы нейронных сетей в программе Trajan 23
      • 3.1.1 Многослойный персептрон 23
        • 3.1.1.1 Обучение MLP сетей в программе Trajan 24
          • 3.1.1.1.1 Алгоритм обратного распространения 26
          • 3.1.1.1.2 Метод сопряженных градиентов 29
          • 3.1.1.1.3 Метод Левенберга-Маркара 29
      • 3.1.2 Радиальные базисные функции 30
      • 3.1.3 Линейные модели 32
      • 3.1.4 Сеть Кохонена 32
      • 3.1.5 Вероятностные нейронные сети (PNN) 34
    • 3.2 Автоматический конструктор сети 35
  • Выводы к главе 3 37
  • Глава 4. Процедуры решения задачи 38
    • 4.1 Преобразование первичных данных 38
      • 4.1.1 Назначение программы и системные требования 38
      • 4.1.2 Описание программы 38
      • 4.1.3. Порядок работы с программой (инструкция пользователя). 40
    • 4.2 Обработка данных в программе Trajan 41
      • 4.2.1 Открытие файла данных 41
    • 4.3 Создание нейронной сети 44
    • 4.4 Инструкция по обучению MLP сети на примере алгоритма обратного распространения 47
      • 4.4.2 Условия остановки обучения 48
    • 4.5 Запуск нейронной сети 49
    • 4.6 Оценка качества работы 52
  • Выводы к главе 4 53
  • Глава 5. Решение поставленной задачи с помощью нейронной сети 54
    • 5.1 Работа с исходными данными 54
    • 5.2 Построение нейронной сети 55
    • 5.3 Обучение нейронной сети 56
      • 5.3.1 Обучение нейронной сети, по алгоритму обратного распространения 56
      • 5.3.3 Обучение нейронной сети, с помощью метода Левенберга-Маркара 61
    • 5.5 Основные результаты экспериментов 65
  • Выводы к главе 5 66
  • Выводы к главе 6 70
  • Заключение 71
  • Список литературы 72
  • Приложение 1. Листинг программы 73
  • Приложение 2. Пример работы программы конвертора 83

Введение

нейронная сеть принятие решение

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

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

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

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

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

Глава 1. Задача анализа деловой активности

1.1 Постановка задачи

Дано:

Временные ряды экономических показателей курсов валют и индексов деловой активности на фондовой бирже за определенный период времени.

Необходимо:

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

1.2 Факторы, влияющие на принятие решений

Курсы валют формируется на основе множества индивидуальных принимаемых решений, которые в свою очередь основаны на совокупности исходных данных. Участники валютно-кредитных и финансовых отношений подвергаются рискам. Основными факторами, которые определяют риски в международных валютных, кредитных и финансовых операциях, выделяют следующие:

1. Макроуровень:

· Снижение темпа экономического роста.

· Усиление инфляции.

· Ухудшение торгового и платежного баланса.

· Увеличение государственного долга.

· Уменьшение официальных золото-валютных резервов.

· Миграция капиталов.

· Изменение в законодательстве.

· Политические события.

2. Микроуровень:

· Ухудшение хозяйственно финансового положения.

· Неплатежеспособность.

· Неустойчивость курса валюты.

· Колебание процентных ставок.

Рассмотрим более подробно экономические показатели, влияющие на решение поставленной задачи, они представлены в таблице 1.2.1.

Day

Gold

Yen

DM

Pound

DowAvg

NYVul

1

365

145

4. 12

. 623

2650

75. 62

2

368

147

4. 10

. 584

2620

56. 34

3

370

150

3. 92

. 614

2635

98. 22

4

365

150

3. 89

. 605

2634

43. 76

5

372

147

3. 78

. 595

2590

52. 33

8

366

146

4. 32

. 583

2588

61. 08

9

373

148

4. 08

. 573

2576

63. 54

10

375

150

3. 88

. 566

2630

48. 22

11

381

150

3. 78

. 546

2633

35. 27

12

380

150

3. 68

. 555

2648

48. 71

15

384

150

3. 72

. 644

2560

88. 24

16

389

150

3. 87

. 623

2674

121. 11

17

390

150

4. 02

. 620

2640

92. 98

18

378

150

4. 18

. 622

2590

78. 22

19

375

150

4. 11

. 600

2580

67. 11

22

374

152

3. 88

. 753

2653

66. 43

23

376

159

3. 76

. 772

2648

45. 24

24

380

158

3. 66

. 741

2672

56. 98

25

390

157

3. 54

. 764

2653

53. 45

26

392

158

3. 67

. 765

2667

48. 12

29

395

160

3. 78

. 771

2660

76. 63

30

401

176

3. 66

. 768

2664

75. 29

31

390

175

3. 52

. 787

2646

66. 98

32

397

170

3. 56

. 757

2662

73. 47

33

405

180

3. 56

. 766

2653

89. 42

Таблица 1.2.1. Показатели курсов валют и индексов деловой активности.

В таблице 1.2.1. представлены следующие показатели: Day — день торгов, Gold — цена на золото, Yen — обменный курс Иены к Доллару, DM — обменный курс Немецкой марки к Доллару, Pound — обменный курс Фунта к Доллару, DowAvg — среднее число Доу Джонса; NYVul — объем обмена на Нью-Йорской Фондовой бирже.

В этой таблице представлены курсы обмена различных валют. Валютные риски — это опасность валютных потерь в результате изменения курса валюты цены по отношению к валюте платежа. В основе валютного риска лежит изменение стоимости денежного обязательства в период между подписанием внешнеторгового или кредитного соглашения и осуществлением платежа по нему. Еще одним параметром влияющим на принятие решения является индекс Доу Джонса. Это индекс деловой активности, рассчитываемый в долларах, является как бы особым курсом акций. Индекс состоит из четырех показателей: среднего курса акций 30 промышленных корпораций, 20 транспортных, 15 компаний коммунального обслуживания и свободного курса по этим вместе взятым 65 корпорациям. Индекс рассчитывается как среднеарифметическая сумма курсов тех долей капитала, которые представляли акции каждой из кампаний в момент включения в индекс. Также в этой таблице представлена цена на золото и объем обмена долларов на Нью-Йорской Фондовой бирже.

В таблице 1.2.1. экономические показатели представлены в виде временных рядов для тридцати трех последовательных дней. Допустим, что первый день является понедельником и исключая четыре выходных, по два дня в каждом, получим двадцать пять рабочих дней, то есть пять рабочих недель. В результате получается таблица 1.1.1., в которой отсутствуют определенные дни, а именно 6, 7, 13, 14, 20, 21, 27, 28.

1.3 Временные ряды

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

На рис. 1.3.1. -рис.1.3.6. представлены графики временных рядов экономических показателей и курсов валют из таблицы 1.2.1.

Рис. 1.3.1. Изменение цены на золото.

Рис. 1.3.2. Изменение курса обмена Йены к Доллару.

Рис. 1.3.3. Изменение курса обмена Немецкой марки к Доллару.

Рис. 1.3.4. Изменение курса обмена Фунта к Доллару.

Рис. 1.3.5. Изменение индекса Доу Джонса. объем обмена фондовой бирже.

Рис. 1.3.5. Изменение объем обмена на Нью-Йорской Фондовой бирже.

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

Выводы к главе 1

1. Даны исходные данные.

2. Рассмотрены экономические факторы, влияющие на решение задачи.

3. Рассмотрены экономические показатели, которые представлены в исходных данных.

Глава 2. Задачи применения современных информационных технологий и нейронных сетей

2.1 Современные информационные технологии и нейронные сети

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

После многих лет почти полного забвения интерес к методам нейросетевой обработки информации возник снова несколько лет тому назад, в частности, в связи с развитием микроэлектронной технологии и разработкой принципиально новых физических принципов реализации элементов и фрагментов нейронных сетей, в том числе сетей с очень большим числом нейронов. Это в свою очередь резко активизировало исследования в области нейроматематики (методов решения задач в нейросетевом базисе) и в области архитектур компьютеров нового типа — нейрокомпьютеров. Основное отличие нейрокомпьютеров от традиционных вычислительных машин состоит в том, что основой вычислений является не алгоритм в классическом его понимании и представлении (например, в виде граф схемы алгоритма или в виде логической схемы алгоритма), а некий способ вычислений в нейросетевом логическом базисе, т. е. в виде нейронной сети определенной структуры определенной схемы настройки.

Именно эта особенность и позволяет рассматривать нейросетевую обработку информации в качестве отдельного направления современной информационной технологии.

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

Главное свойство нейросетей — способность к обучению. Для решения какой-либо задачи на компьютере традиционным методом необходимо знать правила (математические формулы), по которым из входных данных можно получит выходные (найти решение задачи). С помощью нейросети можно найти решение, не зная правил, а имея несколько примеров. Нейросети используют подход к решению задач более близкий к человеческому, чем традиционные вычисления. В самом деле, например, когда человек переходит улицу, он оценивает скорость движения автомобиля исходя из предыдущего опыта не используя математических вычислений. Или, например, как ребенок без труда может отличить кошку от собаки, основываясь на ранее виденных им примерах. При этом часто он не может точно сказать, по каким признакам он их отличает, т. е. он не знает четкого алгоритма.

Другое важное свойство нейросетей — способность находить решение, основываясь на зашумленных, искаженных и даже противоречивых данных!

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

В принципе нейронные сети могут вычислить любую функцию, имеющую решение. Иными словами, делать все, что могут делать традиционные компьютеры.

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

· отсутствует алгоритм или не известны принципы решения задач, но накоплено достаточное число примеров;

· проблема характеризуется большими объемами входной информации;

· данные неполны или избыточны, зашумлены, частично противоречивы.

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

Банки и страховые компании:

* автоматическое считывание чеков и финансовых документов;

* проверка достоверности подписей;

* оценка риска для займов;

* прогнозирование изменений экономических показателей.

Административное обслуживание:

* автоматическое считывание документов;

* автоматическое распознавание штриховых кодов.

Нефтяная и химическая промышленность:

* анализ геологической информации;

* идентификация неисправностей оборудования;

* разведка залежей минералов по данным аэрофотосъемок;

* анализ составов примесей;

* управление процессами.

Военная промышленность и аэронавтика:

* обработка звуковых сигналов (разделение, идентификация, локализация, устранение шума, интерпретация);

* обработка радарных сигналов (распознавание целей, идентификация и локализация источников);

* обработка инфракрасных сигналов (локализация);

* обобщение информации;

* автоматическое пилотирование.

Промышленное производство:

* управление манипуляторами;

* управление качеством;

* управление процессами;

* обнаружение неисправностей;

* адаптивная робототехника;

* управление голосом.

Служба безопасности:

* распознавание лиц, голосов, отпечатков пальцев.

Медицина:

* выявление и идентификация раковых клеток;

* диагностирование и предсказание вероятности возникновения заболеваний;

* обнаружение отклонений в ЭКГ;

* анализ рентгенограмм.

Телевидение и связь:

* адаптивное управление сетью связи;

* сжатие и восстановление изображения.

Представленный перечень далеко не полон.

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

Из выше сказанного можно сделать два основных условия, когда можно применять нейронные сети:

1. Должна быть определенная известная информация для обучения нейронной сети.

2. Необходима связь между известными входными и неизвестными выходными значениями. Эта связь может быть искажена шумом, но она должна существовать.

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

2.2 Особенности применения нейронных сетей

2.2.1 Как работает нейронная сеть

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

* простой обрабатывающий элемент — нейрон;

* очень большое число нейронов участвует в обработке информации;

* один нейрон связан с большим числом других нейронов (глобальные связи);

* изменяющиеся по весу связи между нейронами;

* массированная параллельность обработки информации.

Упрощенно, можно считать, что нейрон устроен и действует следующим образом. Биологический нейрон имеет тело, совокупность отростков — дендритов, по которым в нейрон поступают сигналы, и отросток — аксон, передающий выходные сигналы другим нейронам. Точка соединения дендрита и аксона называется синапсом. Синапс выполняет функции весового коэффициента, усиливая или ослабляя входной сигнал. Нейрон получает от дендритов набор входных сигналов. В теле нейрона значения входных сигналов суммируется. Однако, влияние входов не равнозначно, а определяется весовыми коэффициентами, которые характеризуют важность поступающей по данному входу информации. В искусственном нейроне вычисляется скалярное произведение вектора входных сигналов и вектора весовых коэффициентов. Затем нейрон формирует выходной сигнал, интенсивность которого зависит от значения вычисленного скалярного произведения. Выходной сигнал поступает на аксон, а через него передается дендритам других нейронов.

2.2.2 Формирование нейронной сети

Для решения разных практических задач требуются различные модели нейронных сетей. Модель нейронной сети определяется моделями нейронов и структурой связей сети.

В зависимости от структуры связей можно выделить несколько групп нейронных сетей:

— Многослойные нейронные сети.

Нейроны в таких сетях делятся на группы с общим входным сигналом — слоем.

— Полносвязные нейронные сети. Каждый нейрон в полносвязных сетях связан со всеми остальными. На каждом такте функционирования сети на входы нейронов подается вешний входной сигнал и выходы нейронов предыдущего такта.

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

(4 или 8) своих топологических соседей.

— Неструктурированные нейронные сети. К этой группе относятся все модели нейронных сетей, которые нельзя отнести ни к одной из предыдущих групп.

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

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

Если в сети все нейроны имеют одинаковые функции активации, то сеть называется однородной (гомогенной). В неоднородных (гетерогенных) сетях нейроны имеют различные функции активации.

Для построения нейронной сети, ориентированной на решение конкретной задачи, используются процедуры формирования (или создания) нейронных сетей. Эти процедуры обеспечивают ввод указанных характеристик моделей нейронов и структур нейронных сетей. Как правило, в каждой отдельной программе реализована лишь часть из описанных моделей нейронов и нейронных сетей.

Каждая группа моделей нейронных сетей может быть использована для решения лишь некоторого ограниченного класса практических задач. Так многослойные и полно связные нейронные сети с сигмоидальными передаточными функциями используются для распознавания образов и адаптивного управления; нейронные сети с локальными связями — для обработки изображений и некоторых других частных задач. Для решения задач линейной алгебры используются многослойные сети с особыми передаточными функциями.

2.2.3 Обучение нейронной сети

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

В зависимости от решаемой задачи в обучающей выборке используются те или иные типы данных и различные размерности входных/выходных сигналов. Входные данные примеров обучающей выборки — изображения, таблицы чисел, распределения. Типы входных данных — бинарные (0 и 1), биполярные (-1 и 1) числа, целые или действительные числа из некоторого диапазона. Выходные сигналы сети — вектора целых или действительных чисел. Для решения практических задач часто требуются обучающие выборки большого объема. Из-за жестко ограниченного объема оперативной памяти компьютера разместить в ней большие обучающие выборки невозможно. Поэтому выборка делится на страницы — группы примеров. В каждый момент времени лишь одна страница примеров располагается в памяти компьютера, остальные — на жестком диске. Страницы последовательно загружаются в память компьютера. Обучение сети происходит по всей совокупности страниц, по всей обучающей выборке.

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

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

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

Для обучения нейронных сетей могут быть использованы различные алгоритмы. Можно выделить две большие группы алгоритмов — градиентные и стохастические. Градиентные алгоритмы обучения сетей основаны на вычислении частных производных функции ошибки по параметрам сети. Среди градиентных различают алгоритмы первого и второго порядков. В стохастических алгоритмах поиск минимума функции ошибки ведется случайным образом.

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

Перед обучением выполняется инициализация нейронной сети, то есть присваивание параметрам сети некоторых начальных значений. Как правило, эти начальные значения — некоторые малые случайные числа.

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

Обучение — это итерационная процедура, которая при реализации на обычных компьютерах, требует значительного времени. Алгоритмы обучения существенно различаются по скорости сходимости. Одной из самых важных характеристик программ для моделирования нейронных сетей является скорость сходимости алгоритма (или алгоритмов) обучения, которые реализованы в программе.

2.2.4 Имитация функционирования (тестирование) обученной нейронной сети

Для проверки навыков, приобретенных сетью в процессе обучения, используется имитация функционирования сети. В сеть вводится некоторый сигнал, который, как правило, не совпадает ни с одним из входных сигналов примеров обучающей выборки. Далее анализируется получившийся выходной сигнал сети. Тестирование обученной сети может проводиться на одиночных входных сигналах, либо на контрольной выборке, которая имеет структуру, аналогичную обучающей выборке, и также состоит из пар (< вход>, < желаемый выход>). Как правило, обучающая и контрольная выборки не пересекаются. Контрольная выборка строится пользователем индивидуально для каждой решаемой задачи.

Для имитации функционирования в подавляющем большинстве программ моделирования нейронных сетей реализованы специальные процедуры.

Выводы к главе 2

1. Сделаны выводы, где и когда применяются нейронные сети.

2. Объяснение как работает нейронная сеть.

3. Обучение нейронной сети.

4. Тестирование нейронной сети.

Глава. 3. Особенности нейронных сетей в программе Trajan

Для создания нейронной сети воспользуемся программой Trajan, ориентированной на среду Windows и использующей её обычные процедуры. Программа может поддерживать сеть до 128 слоев с соответствующим числом элементов.

3.1 Типы нейронных сетей в программе Trajan

В программе Trajan можно построить и обучить несколько типов нейронных сетей. Основные типы сетей и их характеристики представлены в таблице 3.1.1.

Тип сети

Преимущества

Недостатки

MLP

Небольшие, быстро работают.

Медленно обучаются.

RBF

Быстро обучаются.

Большие по размерам. Не могут экстраполировать.

Линейные

Простые, быстро обучаются.

Не могут решать нелинейные задачи.

Байесовы

Обучаются очень быстро, имеют хорошую теоретическую основу.

Очень большие, медленно работают, не экстраполируют.

Кохонена

Неуправляемое обучение.

Сложность исследования.

Таблице 3.1.1. Типы нейронных сетей и их особенности.

Рассмотрим все эти типы нейронных сетей и методы их обучения в программе Trajan.

3.1.1 Многослойный персептрон

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

3.1.1.1 Обучение MLP сетей в программе Trajan

После того, как определено число слоев и число элементов в каждом из них, нужно найти значения для весов и порогов сети, которые минимизировали бы ошибку прогноза, выдаваемого сетью. Именно для этого служат алгоритмы обучения. С помощью собранных исторических данных веса их пороговые значения автоматически корректируются с целью минимизировать эту ошибку. Этот процесс представляет собой подгонку модели, которая реализуется сетью, к имеющимся обучающим данным. Ошибка для конкретной конфигурации сети определяется путем прогона через сеть всех имеющихся наблюдений и сравнивания реально выдаваемых выходных значений с желаемыми (целевыми) значениями. Все такие разности суммируются в так называемую функцию ошибок, значение которой и есть ошибка сети. Чаще всего для построения функции ошибки все ошибки выходных элементов для всех наблюдений возводятся в квадрат и затем суммируются. При работе с программой Trajan пользователю выдается так называемая среднеквадратичная ошибка — описанная выше величина нормируется на число наблюдений и переменных, после чего из нее извлекается квадратный корень. Это очень хорошая мера ошибки, усредненная по всему обучающему множеству и по всем выходным элементам.

В традиционном моделировании можно алгоритмически определить конфигурацию модели, дающий абсолютный минимум для указанной ошибки. Цена, которую приходиться платить за более широкие (нелинейные) возможности моделирования с помощью нейронных сетей, состоит в том, что, корректировать сеть с целью минимизировать ошибку, мы никогда не можем быть уверены, что нельзя добиться еще меньшей ошибки.

Здесь оказывается очень полезным понятие поверхности ошибок. Каждому из весов и порогов сети (то есть свободных параметров модели; их общее число обозначим через N) соответствует одно измерение в многомерном пространстве. (N+1)-е измерение соответствует ошибке сети. Для всевозможных сочетаний весов соответствующую ошибку сети можно изобразить точкой в (N+1)-мерном пространстве, и все такие точки образуют там некоторую поверхность — поверхность ошибок. Цель обучения состоит в том, чтобы найти на этой многомерной поверхности самую низкую точку.

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

Аналитическими средствами невозможно определить положение глобального минимума на поверхности ошибок, поэтому обучение нейронной сети, по сути дела, заключается в исследовании этой поверхности. Отталкиваясь от случайной начальной конфигурации весов и порогов (то есть случайно взятой области на поверхности ошибок), алгоритм обучения постепенно отыскивает глобальный минимум. Как правило, для этого вычисляется градиент (наклон) поверхности ошибок в данной точке, а затем эта информация используется для продвижения вниз по склону. В конце концов алгоритм останавливается в нижней точке, которая может оказаться всего лишь локальным минимумом (а если повезет — глобальным минимумом).

В программе Trajan реализованы основные алгоритмы обучения MLP сетей: метод обратного распространения, сопряженных градиентов и Левенберга-Маркара.

3.1.1.1.1 Алгоритм обратного распространения

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

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

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

Одной из серьезных трудностей данного подхода является в том, что таким образом мы минимизируем не ту ошибку, которую на самом деле нужно минимизировать — ошибку, которую можно ожидать от сети, когда ей будут подаваться на вход совершенно новые наблюдения. Иначе говоря, мы хотели бы, чтобы нейронная сеть обладала способностью обобщать результат на новые наблюдения. В действительности сеть обучается минимизировать ошибку на обучающем множестве, и в отсутствие идеального и бесконечно большого множества это совсем не тоже самое, что минимизировать «настоящую» ошибку на поверхности ошибок в заранее известной модели явления. Сильнее всего это различие проявляется в проблеме переобучения, или излишней подгонки. Сети с большим числом весов моделируют более сложные функции и, следовательно, склонны к переобучению. Сеть же с небольшим числом весов может оказаться недостаточно гибкой, чтобы смоделировать имеющуюся зависимость. Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении.

Для фиксирования переобучения в программе Trajan используется механизм контрольной кросспроверки. Резервируется часть обучающих наблюдений, и они не используются в обучении по алгоритму обратного распространения. Вместо этого, по мере работы алгоритма, они используются для независимого контроля результата. В самом начале работы ошибка сети на обучающем и контрольном множестве будет одинаковой (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородно). По мере того, как сеть обучается, ошибка обучения, естественно, убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком быстро аппроксимировать данные и обучение следует остановить. Это явление чересчур точной аппроксимации и называется переобучением. Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорее всего, не произойдет, и обе ошибки — обучения и проверки — не достигнут достаточного уровня малости.

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

Необходимость многократных экспериментов ведет к тому, что контрольное множество начинает играть ключевую роль в выборе модели, то есть становится частью процесса обучения. Тем самым ослабляя его роль как независимого критерия качества модели — при большом числе экспериментов есть риск выбрать «удачную» сеть, дающую хороший результат на контрольном множестве. Для того, чтобы придать окончательной модели должную надежность в программе Trajan предусмотрено еще одно — тестовое множество. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах реальны. А не являются артефактами процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз.

3.1.1.1.2 Метод сопряженных градиентов

Метод сопряженных градиентов является методом линейного поиска. Алгоритм линейного поиска действует следующим образом: выбирается какое-либо разумное направление движения по многомерной поверхности. В этом направлении проводится линия, и на ней ищется точка минимума (это делается относительно просто с помощью того или иного варианта метода деления отрезка пополам); затем все повторяется с начала. Очевидным разумным направлением является направление скорейшего спуска (именно так действует алгоритм обратного распространения). На самом деле, этот вроде бы очевидный выбор не очень удачен. После того как был найден минимум по некоторой прямой, следующая линия, выбранная для кратчайшего спуска, может «испортить» результаты минимизации по предыдущему направлению. В методе сопряженных градиентов после нахождения точки минимума, вдоль некоторой прямой, производная по этому направлению равна нулю, сопряженное направление выбирается таким образом, чтобы эта производная и дальше оставалась нулевой. Если это условие выполнимо, то до достижения точки минимума достаточно будет N эпох. На реальных, сложно устроенных поверхностях по мере хода алгоритма условие сопряженности портится, и, тем не менее, такой алгоритм, как правило, требует гораздо меньшего числа шагов, чем метод обратного распространения, и дает лучшую точку минимума.

3.1.1.1.3 Метод Левенберга-Маркара

Метод Левенберга-Маркара — это метод доверительных областей, основанный на следующей идее: вместо того чтобы двигаться в определенном направлении поиска, предположим, что поверхность имеет достаточно простую форму, так что точку минимума можно найти непосредственно. Попробуем смоделировать это и посмотреть, насколько хорошей окажется полученная точка. Вид модели предполагает, что поверхность имеет хорошую и гладкую форму, такое предположение выполнено вблизи точек минимума. Вдали от них данное предположение может сильно нарушаться, так что модель будет выбирать для очередного продвижения совершенно не те точки. Правильно работать такая модель будет только в некоторой окрестности минимума, причем размеры этой окрестности заранее не известны. Поэтому выберем в качестве следующей точки для продвижения нечто промежуточное между точкой, которую предлагает наша модель, и точкой, которая получилась бы по обычному методу градиентного спуска. Если эта новая точка оказалась хорошей передвинемся в нее и усилим роль нашей модели в выборе очередных точек; если же точка оказалась плохой, не будем в нее перемещаться и увеличим роль метода градиентного спуска при выборе очередной точки.

3.1.2 Радиальные базисные функции

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

Каждый элемент многослойного персептрона выполняет линейное преобразование входного вектора (набора значений, подаваемого на вход элемента); более точно, берется взвешенная сумма входов, и из нее вычитается пороговое значение. В программе Trajan такое преобразование называется линейной PSP (пост-синаптической потенциальной) функцией. Результат затем пропускается через нелинейную функцию активации. Линейность PSP-функции означает, что многослойный персептрон фактически делит пространство входных векторов на части посредством гиперплоскостей (в двумерном пространстве гиперплоскость — это обычная прямая).

В отличие от многослойного персептрона с его линейным подходом, в сети на радиальных базисных функциях используется радиальная PSP-функция. В каждом элементе вычисляется квадрат расстояния от входного вектора до вектора весов. Затем это расстояние умножается на «пороговое значение» (в действительности, на величину отклонения), после чего результат пропускается через функцию активации. Таким образом, сеть на радиальных базисных функциях делит пространство входов посредством гиперсфер (в двумерном пространстве гиперсфера — это окружность).

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

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

RBF-сеть всегда состоит из трех слоев: входного, промежуточного, состоящего из радиальных элементов, и линейного выходного слоя. Благодаря нелинейности радиальных элементов, этот выходной слой можно брать уже чисто линейным (т.е. с линейной PSP-функцией и линейной функцией активации). В программу Trajan заложены стандартные методы линейной оптимизации, позволяющие оптимизировать параметры выходного линейного слоя при любых заданных параметрах предыдущих слоев сети.

Таким образом, способ обучения RBF сети принципиально отличается от того, который мы имели в случае MLP. Прежде всего, с помощью обучения без учителя (т.е. когда в обучающих данных в расчет принимаются только значения входных переменных) определяются радиальные центры и отклонения (или протяженность). По сути дела, идея состоит в том, чтобы поместить центры в середины кластеров обучающих данных, а отклонения выбрать так, чтобы они отражали плотность данных в кластерах. Затем происходит оптимизация линейного выходного слоя методом псевдообратных матриц.

Можно действовать иначе: изменить вид функций активации элементов выходного слоя на логистические (Logistic) и затем обучить этот слой с помощью метода обратного распространения, сопряженных градиентов или Левенберга-Маркара, соединив таким образом преимущества нелинейности радиальных функций и устойчивость логистических функций активации, правда, ценой увеличения времени обучения.

3.1.3 Линейные модели

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

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

В программе Trajan линейные модели строятся с помощью специального типа нейронных сетей — линейных. Линейная сеть имеет всего два слоя: входной и выходной слой, имеющий линейные PSP-функции и функции активации. Как и выходной слой RBF сети, линейная сеть оптимизируется непосредственно с помощью метода псевдообратных.

3.1.4 Сеть Кохонена

Сеть Кохонена сильно отличается от всех других типов сетей, реализованных в программе Trajan. В то время как все остальные сети предназначены для задач с управляемым процессом обучения, сети Кохонена главным образом рассчитаны на неуправляемое обучение.

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

Одно из возможных применений таких сетей — разведочный анализ данных. Сеть Кохонена может распознавать кластеры в данных, а также устанавливать близость классов. Таким образом, пользователь может улучшить свое понимание структуры данных, чтобы затем уточнить нейросетевую модель. Если в данных распознаны классы, то их можно обозначить, после чего сеть сможет решать задачи классификации. Сети Кохонена можно использовать и в тех задачах классификации, где классы уже заданны, — тогда преимущество будет в том, что сеть сможет выявить сходство между различными классами. Другая возможная область применения — обнаружение новых явления. Сеть Кохонена распознает кластеры в обучающих данных и относит все данные к тем или иным кластерам. Если после этого сеть встретится с наблюдениями, непохожими ни на один из известных образцов, то она не сможет классифицировать такой набор и тем самым выявит его новизну. Сеть Кохонена имеет всего два слоя: входной и выходной, составленный из радиальных элементов (выходной слой также называют слоем топологической карты). Элементы топографической карты располагаются в некотором пространстве, как правило, двумерном.

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

Обучение сети Кохонена происходит по определенному алгоритму. Обычно работа алгоритма Кохонена разбивается на два этапа: упорядочивания и тонкой настройки, на каждом из которых скорость обучения и размер окрестности, параметры влияющие на обучение, постепенно меняются от своих начальных значений к конечным В связи со специфичностью сетей Кохонена программа Trajan, имеет специальные средства для работы с ними, в том числе:

· Окно Частоты выигрышей — Win Freguencies. В диалоговом окне Частоты выигрышей — Win Freguencies, которое открывается командой меню Статистки — Statistics, можно наблюдать за тем, где на топологической карте формируются кластеры. Это окно прогоняет сеть по всем наблюдениям из обучающего множества и подсчитывает, сколько раз каждый элемент выиграл (то есть оказывался ближайшим к обрабатываемому наблюдению). Большие значения частоты выигрышей указывают на центры кластеров в топологической карте. Элементы с нулевой частотой выигрышей вообще не были использованы, и часто это считается признаком того, что обучение не было особенно успешным (так как сеть не использовала все свои ресурсы).

· Окно Топологическая карта — Topological Map. В окне Топологическая карта — Topological Map выходной слой представлен графически в пространстве двух измерений.

3.1.5 Вероятностные нейронные сети (PNN)

Вероятностные нейронные сети (PNN) или по другому Байесовы сети, применяются в задачах классификации, поэтому набор данных для них должен иметь одну номинальную выходную переменную.

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

К задаче можно подойти иначе: попытаться моделировать искомое отображение более или менее непосредственно по обучающим данным. Преимущество такого подхода в том, что здесь не требуется обучения (не считая, быть может, некоторых простых действий, которые практически сводятся к изменениям формы представления обучающих данных), а недостаток — в том, что в результате может получиться очень громоздкая модель, которая будет занимать много памяти и медленно работать.

Сеть PNN как раз и представляет собой метод такого типа, «замаскированный» под нейронные сети, предназначенный для задач классификации. Сеть PNN имеет, по меньшей мере, три слоя: входной, радиальный и выходной. Радиальные элементы берутся по одному на каждое обучающее наблюдение. Каждый из них представляет собой гауссову функцию с центром в этом наблюдении. Каждому классу соответствует один выходной элемент. Каждый такой элемент соединен со всеми радиальными элементами, относящимися к его классу, а со всеми остальными радиальными элементами он имеет нулевое соединение. Таким образом, выходной элемент просто складывает отклики всех элементов, принадлежащих к его классу. Значения выходных сигналов получаются пропорциональными ядерным оценкам вероятности принадлежности соответствующим классам, и, пронормировав их на единицу, мы получим окончательные оценки вероятности принадлежности классам.

ПоказатьСвернуть
Заполнить форму текущей работой