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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,36 Mb
  • Опубликовано:
    2011-06-27
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Аннотация

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

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

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

Содержание

Введение.  6

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

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

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

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

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

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

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

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

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

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

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

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

нейронной сети. 23

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

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

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

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

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

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

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

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

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

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

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

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

3.2 Автоматический конструктор сети.       37

Выводы к главе 3:     38

Глава 4. Процедуры решения задачи.         40

4.1 Преобразование первичных данных. 40

4.1.1 Назначение программы и системные требования.   40

4.1.2 Описание программы. 40

4.1.3 Порядок работы с программой (инструкция пользователя).    42

4.2 Обработка данных в программе Trajan.   42

4.2.1 Открытие файла данных.    42

4.2.2 Пре/пост-процессирование.  44

4.3 Создание нейронной сети.       46

4.4 Инструкция по обучению MLP сети на примере алгоритма обратного распространения.        48

4.4.2 Условия остановки обучения.        50

4.5 Запуск нейронной сети.  51

4.6 Оценка качества работы.       53

Выводы к главе 4:     54

Глава 5. Решение поставленной задачи с помощью нейронной сети.    55

5.1 Работа с исходными данными.        55

5.2 Построение нейронной сети.  56

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

5.3.1 Обучение нейронной сети, по алгоритму обратного распространения.      57

5.3.2 Обучение нейронной сети методом сопряженных градиентов. 59

5.3.3 Обучение нейронной сети с помощью метода Левенберга-Маркара.  61

5.4 Запуск и тестирование нейронной сети.   63

5.5 Основные результаты экспериментов.     65

Выводы к главе 5:     66

Глава 6. Эргономическая оценка программы Trajan. 67

Выводы к главе 6:     70

Заключение.      71

Список литературы: 72

Приложение 1. Листинг программы.  73

Приложение 2. Пример работы программы конвертора.     83

Введение

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

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

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

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

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

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

 

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

 

Дано:

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

Необходимо:

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

 

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.      Даны исходные данные.

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Медицина:

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тип сети

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

Недостатки

MLP

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

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

 RBF

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

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

Линейные

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

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

 Байесовы

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

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

Кохонена

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

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

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

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

 

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

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

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

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

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

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

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

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

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

нейронный сеть программа trajan

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 имеет, по меньшей мере, три слоя: входной, радиальный и выходной. Радиальные элементы берутся по одному на каждое обучающее наблюдение. Каждый из них представляет собой гауссову функцию с центром в этом наблюдении. Каждому классу соответствует один выходной элемент. Каждый такой элемент соединен со всеми радиальными элементами, относящимися к его классу, а со всеми остальными радиальными элементами он имеет нулевое соединение. Таким образом, выходной элемент просто складывает отклики всех элементов, принадлежащих к его классу. Значения выходных сигналов получаются пропорциональными ядерным оценкам вероятности принадлежности соответствующим классам, и, пронормировав их на единицу, мы получим окончательные оценки вероятности принадлежности классам.

3.2 Автоматический конструктор сети

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

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

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

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

. Рассмотрены типы нейронных сетей, используемых в программе Trajan, с указанием их преимуществ и недостатков.

. Рассмотрено понятие поверхности ошибки.

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

. Рассмотрен автоматический конструктор сети.

Глава 4. Процедуры решения задачи

4.1 Преобразование первичных данных

Перед началом работы в программе Trajan, необходимо преобразовать файл данных Exchange.dat в формат программы Trajan. Для этого надо воспользоваться конвертером, который был создан студентами группы А-1-96.

 

4.1.1 Назначение программы и системные требования

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

·   формат *.pat - основной формат Trajan

·   формат *.csv - значения атрибутов находятся в колонках и разделены запятыми

·   формат *.txt - значения атрибутов находятся в колонках и символами табуляции.

Программа написана в среде визуального программирования Delphi 5.0 компании Inprise на объектно-ориентированном языке Object Pascal и представляет собой единственный исполняемый файл BM2TRAJ.EXE.

Системные требования: IBM-совместимый ПК с ОС Windows95, Windows98, WindowsNT или их более поздние версии.

 

4.1.2 Описание программы

Основное окно программы содержит две строки выбора исходного и результирующего файла, а также кнопки “Конвертировать ” и “Выход”.

 

Рис. 4.1.2.1. Основное окно программы.

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

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

части строки ввода. При этом появится следующее окно:

Рис.4.1.2.2. Открытие файла.

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

В случае успешной конвертации выдается соответствующее

уведомление:

Рис.4.1.2.3. Успешная конвертации.

Листинг программы представлен в Приложении 1.

 

4.1.3 Порядок работы с программой (инструкция пользователя)

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

.        Указать имя результирующего файла и его формат в строке “Файл в формате Trajan”.

3.      Нажать кнопку конвертировать для начала процесс преобразования форматов.

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

Пример преобразования файла в форматы Trajan представлен в Приложении 2.

 

4.2 Обработка данных в программе Trajan

4.2.1 Открытие файла данных

Откроем программу Trajan, запустив файл trajan.exe . Для того, чтобы открыть файл данных надо зайти в меню File выбрать Open Data Set и указав на файл нажать кнопку открыть. В результате этих действий откроется таблица с нужными данными.

Рис.4.2.1. Открытие данных.

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

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

·        Перемещение активной ячейки. Осуществляется клавишами: стрелка влево, стрелка вправо, стрелка вверх, стрелка вниз, Home, End, Page Up, Page Down.

·        Выделение диапазонов ячеек. Производится перетаскиванием указателя мыши или клавишами курсора при нажатой клавише Shift.

·        Копирование и вставка. Чтобы скопировать выделенный диапазон ячеек в буфер обмена, нажмите Ctrl+C, чтобы вставить содержимое буфера обмена в таблицу - нажмите Ctrl+V. Можно копировать и вставлять целые строки и столбцы целиком. Также возможен обмен с другими приложениями.

·        Вставка. В любом месте таблицы можно вставить новую строку или столбец. Поместите курсор мыши на линию, разделяющую метки двух соседних строк или столбцов (при этом курсор превратится в двухстороннюю стрелку), и щелкните кнопкой - откроется полоса вставки. После нажатия клавиши Insert будет вставлена новая строка/столбец.

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

·        Чтобы задать номинальную переменную (например, пол={муж, жен}), выберите переменную, щелкнув на метке соответствующего столбца, затем нажмите правую кнопку мыши и выберите команду Определение - Definition... из контекстного меню.

·        Чтобы задать тип подмножества Обучающее - Training, Контрольное - Verification, Тестовое - Test или Неучитываемое - Ignored, выбирайте наблюдения, щелкая на метках их строк, нажимайте правую кнопку мыши и выбирайте нужный тип из контекстного меню.

·        Все перечисленные возможности доступны также через команды Наблюдения - Cases... и Переменные - Variables... меню Правка - Edit.

4.2.2 Пре/пост-процессирование

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

1.      Шкалирование. Числовые значения должны быть приведены в масштаб, подходящий для сети. Обычно исходные данные масштабируются по линейной шкале. В программе Trajan реализованы алгоритмы минимакса и средне/стандартного отклонения, которые автоматически находят масштабирующие параметры для преобразования числовых значений в нужный диапазон.

2.      Номинальные переменные. Номинальные переменные могут быть двузначными ( например, пол = {муж/жен}) или многозначными (то есть принимать более двух значений и состояний). Двузначную номинальную переменную легко преобразовать в числовую (например, муж = 0, жен = 1). С многозначными номинальными переменными дело обстоит сложнее. Их тоже можно представить числовыми значениями (например, собака = 0, овца = 1, кошка = 2), однако при этом может возникать ложное упорядочивание значений: в рассмотренном примере овца окажется чем-то средним между собакой и кошкой. Существует более точный способ, известный как кодирование 1-из-N, в котором одна номинальная переменная представляется несколькими числовыми переменными. Количество числовых переменных равно числу возможных значений номинальных переменных; при этом всякий раз ровно одна из N переменных принимает нулевое значение (например, собака = {1,0,0}, овца = {0,1,0}, кошка = {1,0,0}). В программе Trajan имеются возможности преобразования как двух-, так и многозначных номинальных переменных для последующего использования в нейронной сети.

4.3 Создание нейронной сети

 

Создать новую сеть в программе Trajan можно либо средствами диалогового окна Создать сеть - Create Network, доступ к которой осуществляется через команду Сеть… - Network... меню Файл-Создать - File-New, либо с помощи кнопки  на панели инструментов. Кроме того, можно создать сеть, пользуясь автоматическим конструктором сети

(кнопка  ). Диалоговое окно Создать сеть - Create Network показано на рисунке 4.3.1..

Рис.4.3.1. Диалоговое окно Создать сеть.

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

Диалоговое окно Creatr Network содержит две таблицы: левая предназначена для пре/пост-процессирования переменных, позволяет привести исходные данные в числовую форму, пригодную для обработки нейронной сети, а правая - собственно для задания параметров сети. Нажав кнопку Advise, вы можете быть уверенны, что пре/пост-процессирование переменных будет произведено в соответствии с типом данных и что число слоев в сети и элементов в каждом слое выбрано разумным образом. Обычно от пользователя требуется выполнить несколько действий:

1.      Изменить, если потребуется, преобразующую функцию для пре/пост-процессирования.

2.      Задать число слоев и скрытых элементов в сети. В программе Trajan на экран также выдается число элементов во входном и выходном слоях. Однако два последних параметра полностью определяются числом входных и выходных переменных, и их нельзя менять (они отображаются черным цветом).

Также в окне Сreate Network можно задать и некоторые другие параметры, в том числе; тип сети - Type, параметры временного ряда (Time Series) Временное окно - Steps и Горизонт - Lookahead, тип сети, параметры преобразования и подстановки пропущенных значений при пре/пост-процессировании, ширину слоев сети. После задания всех нужных параметров для создания нейронной сети нужно нажать кнопку Create.

Если при создании сети пользователь неуверен в типе нейронной сети, для решения конкретной задачи, то можно воспользоваться автоматическим конструктором нейронной сети; окно параметров этого конструктора представлено на рис. 4.3.2..

Рис. 4.3.2. Автоматический конструктор сети.

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

Одна из трудностей, связанная с автоматическим построением сети, заключается в том, что сеть большего размера может давать такое же качество результата, как и небольшая и, следовательно, более предпочтительная сеть. Чтобы учесть это обстоятельство, можно задать специальный коэффициент Unit Penalty. Он определяет величину штрафа, которая умножается на число элементов в сети и прибавляется к ее ошибке перед решением вопроса о том, какая сеть лучше. Тем самым сеть с большим числом элементов должна оправдать свой размер, то есть давать существенно меньшую ошибку. Даже очень маленький коэффициент (например, 0,001) будет оказывать серьезное влияние на то, чтобы при прочих равных предпочтение отдавалось сетям, чьи размеры меньше. Также, при решении задач анализа временных рядов, нужно задать значения параметров Steps, число копий одной переменной, и Lookahed, величина прогнозирования.

 

4.4 Инструкция по обучению MLP сети на примере алгоритма обратного распространения

Параметры, влияющие на процесс обучения с использованием алгоритма обратного распространения, задаются в окне Back Propagation, которое открывается из меню Train /Back Propagation.

Рис. 4.4.1. Окно обучения методом обратного распространения.

Epochs - число эпох обучения, задаваемое при каждом нажатии кнопки Train. По умолчанию принимается равным 100.

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

Momentum - инерция, показатель темпа обучения может способствовать ускорению процесса настройки при медленном изменении значений ошибки. Значение показателя выбирается в пределах [0.0, 1.0). Аналогично предыдущему Trajan в состоянии постепенно увеличивать значение показателя относительно задаваемого в левой части поля начального значения до предельного, задаваемого а правой части поля.

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

Для более наглядного представления процесса обучения есть окно Training Eror Graph, которое открывается с помощью команды Training Graph... меню Statistics.

Рис.4.4.2. График процесса обучения.

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

Окно обучения по методу сопряженных градиентов и методу Левенберга-Маркара тем же способом из меню Train, но в самом окне есть только параметр Epochs - число эпох обучения и возможность кросспроверки.

 

4.4.2 Условия остановки обучения

В программе Trajan есть возможность задать определенные условия остановки обучения сети. Это делается в окне Stopping Conditions, которое изображено на Рис. 4.4.2.1.(доступ через пункт Stopping Conditions… меню Train-Auxiliary).

Рис. 4.4.2.1. Условия остановки обучения.

 

Те или иные условия остановки используются во всех алгоритмах обучения программы Trajan. Кроме максимального числа эпох (Epochs), можно задать уровень допустимой ошибки (Target Error), при достижении которой обучение должно прекращаться, или величину минимального улучшения (Minimum Improvement) ошибки за фиксированное число эпох.

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

4.5 Запуск нейронной сети

После обучения сеть нужно запустить на исполнение. Это можно сделать в нескольких вариантах:

1.      На текущем наборе данных - в целом или на отдельных наблюдениях; окно Run Single Case, доступ к которому осуществляется через команду Single Case меню Run.

Рис. 4.5.1. Окно запуска на одном наблюдении.

В поле Case No задается номер наблюдения, подлежащего обработке. Чтобы обработать текущее наблюдение, нажмите кнопку Run, а для обработки каково- либо другого наблюдения пользуются стрелками прокрутки на кнопке микропрокрутки, которая расположена справа от поля Case No. Значения входных переменных для текущего наблюдения отображаются в таблице, расположенной в верхней части окна, а выходные значения - в нижней таблице. Помимо фактического выходного значения, которое выдает сеть, выводится также целевое значение и ошибка, то есть разность между первым и вторым. Кроме того, ошибка, соответствующая данному наблюдению, выводится отдельно в верхней части окна (поле Error).

2.      На другом наборе данных - в целом или на отдельных наблюдениях (такой набор данных уже может не содержать выходных значений и предназначаться исключительно для тестирования); окно Run Data Set, доступ к которому осуществляется через команду Data Set меню Run.

Рис. 4.5.2. Окно запуска на все наблюдениях.

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

3.      На одном конкретном наблюдении, для которого значения переменных введены пользователем, а не взяты из какого-то файла данных; окно Run One-off Case, доступ к которому осуществляется через команду One-off меню Run.

Рис. 4.5.3. Окно запуска на одном наблюдении, которое введено пользователем.

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

·        Обученная сеть используется для построения прогнозов на новых данных с неизвестными выходными значениями.

·        Вы хотите поэкспериментировать с сетью, например, проверить чувствительность результата к малым изменением данных.

Тестирование заданных пользователем наблюдений производится из окна Run One-off Case, в котором нужно ввести входные значения в таблицу, расположенную в верхней части окна, и нажать кнопку Run, результаты будут выведены в нижнюю таблицу.

. Из другого приложения.

 

4.6 Оценка качества работы

После того как сеть обучена, стоит проверить, насколько хорошо она работает. Среднеквадратичная ошибка, которая выдается в окне Train Error Graph, представляет лишь грубую меру производительности. Более полезные характеристики выдаются в окне Regression Statistics,которое открывается через пункт Regression... меню Statistics.

Рис. 4.6.1. Окно статистик регрессии.

В этом окне подсчитываются среднее и стандартное отклонение для выходных переменных и ошибки сети, а также отношение стандартного отклонения ошибки к стандартному отклонению данных. Последняя статистика является хорошим показателем качества регрессии. Если величина S.D. Ratio меньше 0,1, это означает хорошее качество регрессии.

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

1.      Даны инструкции для работы в программе конвертора.

2.      Даны инструкции по работе с данными, созданию нейронной сети, обучению нейронной сети, тестированию нейронной сети в программе Trajan.

Глава 5. Решение поставленной задачи с помощью нейронной сети

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

 

5.1 Работа с исходными данными

 

Откроем таблицу с исходными данными файл Exchange.pat. В этой таблице пометим первый столбец как Ignore, а остальные как Input. Создадим в этой таблице еще один столбец и скопируем в него значения столбца Yen, начиная со 2. Озаглавим его как Exit и пометим его как Output. Также отметим 15 строк для тренировки сети, 5 строк для проверки, за обучением, а оставшиеся 4 для тестирования и еще 1 строку для предсказания. В результате должна получается таблица:

Рис. 5.1.1. Преобразованная таблица исходных данных.

5.2 Построение нейронной сети

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

1.      Выберем все возможные типы сетей.

2.      Выберем значение Unit Penalty равное 0,001.

.        Параметр Steps равный 1.

.        Параметр Lookahead равный 1.

После запуска автоматического конструктора нейронной сети с данными параметрами, он построил, на основе данных, нейронную сеть, которая представлена на рис. 5.2.1..

Рис. 5.2.1. Нейронная сеть, построенная автоматическим конструктором.

Из рис. 5.2.1. видно, что автоматический конструктор выбрал для решения поставленной задачи MLP сеть с четырьмя слоями.

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

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

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

5.3.1 Обучение нейронной сети по алгоритму обратного распространения

В окне настроек параметров алгоритма обратного распространения, смотри рис. 3.4.1., выставим следующие начальные параметры обучения: число эпох равное 500, скорость обучения равной 0,6, инерцию в начале равной 0,6, а в конце 0,1, и обучим нашу нейронную сеть.

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

Рис. 5.3.1.1. График обучения методом обратного распространения.

Изменим структуру нейронной сети, убрав из нее 3 слой. Сеть, полученная после удаления 3 слоя, представлена на рис. 5.3.1.4.

Рис.5.3.1.4. Измененная структура нейронной сети.

Обучим измененную сеть тем же методом и с теми же начальными параметрами. Как видно из рис.5.3.1.5. качество процесса обучения ухудшается, так как обе ошибки увеличиваются.

Рис.5.3.1.5. График обучения измененной сети методом обратного распространения.

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

5.3.2 Обучение нейронной сети методом сопряженных градиентов

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

Рис.5.3.2.1. График обучения методом сопряженных градиентов.

Изменим структуру нейронной сети, убрав из нее 3 слой (рис.5.3.1.4.) и обучим ее методом сопряженных градиентов. На рис.5.3.2.3. показан график обучения измененной нейронной сети.

Рис.5.3.2.3. График обучения методом сопряженных градиентов измененной нейронной сети.

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

Изменим нейронную сеть (рис.5.3.1.4.) убрав из среднего слоя один элемент. Полученная таким образом нейронная сеть представлена на рис.5.3.2.4..

Рис.5.3.2.4. Нейронная сеть, полученная из измененной нейронной сети.

Обучим нейронную сеть (рис.5.3.2.4.) методом сопряженных градиентов.

На рис.5.3.2.5. показан график обучения нейронной сети.

Рис.5.3.2.5. График обучения нейронной сети, полученной из измененной нейронной сети.

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

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

5.3.3 Обучение нейронной сети, с помощью метода Левенберга-Маркара

Обучим нейронную сеть, которая изображена на рис.5.2.1., методом Левенберга-Маркара. Как видно из рис.5.3.3.1., на котором изображен процесс обучения, ошибка обучения более, если сравнивать с другими методами

Рис.5.3.3.1. График обучения методом Левенберга-Маркара.

Изменим структуру сети так же, как и в предыдущем методе и обучим ее методом Левенберга-Маркара. На рис.5.3.3.3. и рис.5.3.3.4. показаны графики обучения нейронной сетей (структуры сетей соответственно изображены на рис.5.3.1.4. и рис.5.3.2.4.). При сравнении этих двух графиков можно заметить, что при дальнейшем упрощении сети качество обучения нейронной сети методом ней Левенберга-Маркара вначале улучшается, а потом ухудшается.

Рис.5.3.3.2. График обучения измененной нейронной сети методом Левенберга-Маркара.

Рис.5.3.3.3. График обучения методом Левенберга-Маркара измененной нейронной сети.

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

5.4 Запуск и тестирование нейронной сети

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

Рис.5.4.1. Прогон всего набора данных.

Оценим качество регрессии полученной нейронной сети. Окно со значениями представлено на рис.5.4.2.

Рис. 5.4.2. Статистики регрессии.

Величина S.D. Ratio является хорошим показателем качества регрессии, так как она меньше 0,1, то это означает хорошее качество регрессии.

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

Рис.5.4.3. Предсказание на будущий день.

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

5.5 Основные результаты экспериментов

Результаты проведенных экспериментов сведены в таблицу 5.5.1..

Сеть

Структура сети

Метод обучения

 n эпох

Ошибка обучения

Ошибка контроля

MLP

6; 2; 2; 1;

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

2400

0,433

0,8044

MLP

6; 2; 1;

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

2400

0,03873

1,874

MLP

6; 2; 2; 1;

2

0,2414

2,045

MLP

6; 2; 1;

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

25

0,08532

2,373

MLP

6; 1; 1;

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

20

0,08402

2,262

MLP

6; 2; 2; 1;

по методу Левенберга-Маркара

100

0,01016

1,223

MLP

6; 2; 1;

по методу Левенберга-Маркара

100

0,000084

0,819

MLP

6; 1; 1;

по методу Левенберга-Маркара

200

0,0775

1,869

Таблица 5.5.1. Результаты экспериментов.

В таблице 5.5.1. указаны следующие данные: сеть - тип нейронной сети; структура сети - число слоев и элементов в этих слоях; метод обучения - метод использованный при обучении нейронной сети; n эпох - число эпох обучения; ошибка обучения - ошибка получаемая при обучении нейронной сети; ошибка контроля - контрольная ошибка получаемая при обучении нейронной сети.

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

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

1.      Сделан начальный выбор типа нейронной сети.

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

.        Проведено тестирование построенной сети.

.        Сделан вывод о соответствии построенной сети нашей задачи.

. Указаны основные результаты экспериментов.

Глава 6. Эргономическая оценка программы Trajan

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

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

Анализ нормативных и рекомендованных материалов показывает, что основным методом, применяемым для эргономической оценки, является экспертный метод. Оценку проводит экспертная комиссия, состав которой, задачи, организация и порядок проведения работы определяются в соответствии с ГОСТ 23554.0-79, ГОСТ 23554.1-79 и Р8 50-418 - 83.

Экспертная группа должна включать 5 - 7 специалистов, в число которых входит ведущий эксперт. В отдельных случаях (например, при невысокой сложности системы «человек - машина») допускается состав экспертной группы менее 5 человек. В представленном проекте принимали участие 5 экспертов.

Мнение экспертов по поводу оценки эргономических показателей выявляют путём опроса.

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

Рекомендуется следующая градация показателей шкалы оценки:

баллов (отлично) - параметры объекта соответствуют оптимальным значениям нормативных требований; оцениваемый элемент при его функциональном применении оказывает благоприятное влияние на работоспособность, развитие физических и психических функций человека, создаёт необходимое удобство в работе;

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

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

баллов (плохо) - состояние объекта соответствует недопустимому уровню.

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

В процессе выполнения задания предстояло оценить с эргономической точки зрения программу Trajan. Эта программа предназначена для работы с нейронными сетями и позволяет на основе статистических данных сформировать нейронную сеть, обучить ее и использовать в дальнейшем для прогнозирования. Исходя из вышесказанного, становится очевидным, что интерфейс этой программы должен быть понятен и легок в обращении людям работающим в этой области. На основе собственного опыта работы, а также рекомендаций, изложенных в литературе [1], был произведён выбор базовых эргономических показателей. Они же были сведены в три однородные группы, значимость которых определена цифровой последовательностью.

Список базовых эргономических показателей:

1.     

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!