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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.02.2014
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Анализ предметной области

1.1 Классификация лесных пожаров с помощью многослойного персептрона

1.2 Классификация лесных пожаров от показателей силы и площади

2. Математическая модель

2.1 Сети Коханена

2.2 Использование Self-organizing map

3. Проектирование системы

3.1 Выбор языка программирования

3.2 Программная реализация

Заключение

Список использованной литературы

Введение

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

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

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

Также в работе была спроектирована система оценки последствий лесных пожаров, одной из составляющих системы является программа кластеризации.

Программа разработана в среде MATLAB.

1. Анализ предметной области

1.1 Классификация лесных пожаров с помощью многослойного персептрона

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

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

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

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

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

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

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

Классифицируем лесной пожар по двум общим характеристикам: скорости распространения и температуре горения.

При низовом пожаре скорость движения пожара по ветру 0,25-5 км/ч. Температура горения около 700 °C.

При верховом пожаре скорость распространения от 5-70 км/ч. Температура от 900 °C до 1200 °C.

Составим таблицу статистических данных о лесных пожарах в Херсонской области.

Таблица 1.1 - Входные данные

Скорость распространения (км/ч)

Температура горения °C

Класс

1

500

0

15

908

1

10

1000

1

4

650

0

2

590

0

6,2

970

1

3,2

625

0

Примечание: 0 - низовой пожар, 1 - верховой пожар.

Для алгоритма классификации будем использовать нейронную сеть прямого распространения - многослойный персептрон с одним или двумя скрытыми слоями (рис. 1).

Рисунок 1.1 - Архитектурный граф многослойного персептрона с двумя скрытыми слоями

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

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

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

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

, (1.1)

где - выходной сигнал нейрона , предыдущего слоя, - вес связи нейрона слоя с нейроном слоя .

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

. (1.2)

На выходе сети вычисляем сигнал ошибки:

, (1.3)

где - -ый элемент вектора желаемого отклика , - выходной сигнал -го нейрона.

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

, (1.4)

где - производная активационной функции.

Изменение синаптических весов слоя сети выполняется в соответствии с обобщенным дельта правилом:

, (1.5)

где - параметр скорости обучения, - момент инерции.

Последовательно сети предъявляются все примеры обучения. Затем порядок отсчетов меняется, и они снова последовательно предъявляются нейронной сети. Это сделано для того, чтобы нейронная сеть, как бы "не забывала", чему её научили. Параметры момента инерции и скорости обучения настраиваются по мере роста количества итераций.

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

, (1.6)

где - количество классов для распознавания.

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

Алгоритм работы программы с использованием многослойного персептрона представлен на рисунке 1.2.

Размещено на http://www.allbest.ru/

Рисунок 1.2 ? Алгоритм работы программы с использованием многослойного персептрона

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

"% Задача входных векторов с указанием их принадлежности одному из двух классов;

"P= [0.001 0.015 0.01 0.004 0.002 0.0062 0.0032; 0.5 0.908 1 0.65 0.59 0.97 0.625];

"T= [0 1 1 0 0 1 0];

"plotpv (P,T);

"% Графическое представление начальних векторов;

"% Создание персептрона с указанием границ изменений входа и 1 нейроном;

"My_net=newp([-1 1;-1 1],1);

"E=1;

"My_net=init(My_net); % Инициализация персептрона

"% Организация цикла адаптивной настройки персептрона с заключением графика разделяющей;

"% Линии;

"while (sse(E))

[My_net,Y,E]=adapt(My_net,P,T);

linehandle=plotpc(My_net.IW{1},My_net.b{1});

drawnow;

end;

Проверим качество созданного классификатора. С этой целью представим на вход персептрона контрольный вектор p = [0.3; 0.6], т.е. данные низового пожара, распространявшаяся со скоростью 3 км / ч, а температура горения составляла 600 ° C, и проанализируем реакцию сети.

"p = [0.3; 0.6]; % задания контрольного вектора;

"a = sim (My_net, p) % моделирования сети;

"a

a =0

"Классификатор работает правильно, так как пожар отнесена к нулевого класса, то есть класса низовых пожаров

"Plotpv (p, a)

"hold on

"plotpv (P, T);

"plotpc (My_net.IW {1}, My_net.b {1});

"hold off;

Рисунок 1.3 - График классификации лесных пожаров с помощью многослойного персептрона

На рис. 1.3 изображен график классификации лесных пожаров с помощью многослойного персептрона. На данном графике "+" - верховой пожар, "0" - низовой пожар. Введённые для проверки сети данные также отражены на графике.

1.2 Классификация лесных пожаров от показателей силы и площади

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

Классификация лесных пожаров в зависимости от показателей силы пожара представлена в табл. 1.1.

Таблица 1.1 - Классификация лесных пожаров в зависимости от показателей силы пожара

Параметры пожара

Значения показателей силы пожара

Слабого

Среднего

Сильного

Низовой пожар

Скорость распространения огня, м/мин.

до 1

1-3

более 3

Высота пламени, м

до 0,5

0,5-1,5

более 1,5

Верховой пожар

Скорость распространения огня, м/мин.

до 3

3-100

более 100

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

Таблица 1.2 - Классификация лесных пожаров по величине площади, охваченной огнем

Классификация лесных пожаров

Площадь, охваченная огнем, га

Загорание

0,1-0,2

Малый пожар

0,2-2,0

Небольшой пожар

2,1-20

Средний пожар

21-200

Крупный пожар

201-2000

Катастрофический пожар

Более 2000

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

1) слабые низовые пожары;

2) средние низовые пожары;

3) сильные низовые пожары;

4) слабые верховые пожары;

5) средние верховые пожары;

6) сильные верховые пожары.

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

1) загорание;

2) малый пожар;

3) небольшой пожар;

4) средний пожар;

5) крупный пожар;

6) катастрофический пожар.

Следовательно, система классификаторов включает 6 классов, характеризующих силу пожара, и 6 классов, характеризующих площадь, охваченную огнем.

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

Введем множество классов в пространстве классов : .

Пространство классов может не совпадать с пространством объектов X и иметь другую размерность. В простейшем случае, когда пространства классов и объектов совпадают, X=C, классы представляют собой области пространства X, и объект xp будет отнесен к одному из классов m0, если . В общем случае X и C различны.

Определим ядра классов {cm}=c1,..,cm в пространстве классов C, как объекты, типические для своего класса. К примеру, если для классификации лесных пожаров в зависимости от показателей силы пожара выбрать параметры {скорость распространения огня, высота пламени}, то ядро класса "слабый низовой пожар" будет иметь параметры {скорость распространения огня 1 м/мин, высота пламени 0,5 м}.

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

Задавшись числом классов M, можно поставить задачу классификации: найти M ядер классов и разбить объекты на классы , то есть построить функцию таким образом, чтобы минимизировать сумму мер близости:

.

Функция , определяющая номер класса по индексу множества объектов , задает разбиение на классы и является решением задачи классификации.

В простейшем случае , пространство объектов разбивается на области и если , то и объект относят к классу .

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

Алгоритм классификации. Выберем евклидову меру близости. В этом случае ядро класса, минимизирующее сумму мер близости для объектов этого класса, совпадает с центром тяжести объектов [7]:

, (1.7)

где - число объектов в классе .

При разбиении на классы должна быть минимизирована суммарная мера близости для всего множества входных объектов.

. (1.8)

В формуле (3) расписано скалярное произведение. В этой сумме два слагаемых не зависят от способа разбиения и постоянны:

, (1.9)

. (1.10)

Поэтому задача поиска минимума D эквивалентна поиску максимума выражения: .

На рис. 1.2 представлена блок-схема алгоритма классификации для поиска максимума этой функции [7].

Рисунок 1.2 - Блок-схема алгоритма классификации

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

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

Чтобы определить класс, к которому относится объект, нужно выбрать среди всех нейронов данного слоя один с максимальным выходом - это осуществляет интерпретатор.

Опишем структуру нейронной сети [4] (рис. 1.3).

Нейроны слоя Кохонена генерируют сигналы . Интерпретатор выбирает максимальный сигнал слоя Кохонена и выдает номер класса m, соответствующий номеру входа, по которому интерпретатором получен максимальный сигнал. Это соответствует номеру класса объекта, который был предъявлен на входе, в виде вектора xp.

Рисунок 1.3 - Структура сети Кохонена

Нейронная сеть, используемая для классификации, будет иметь N выходов, равное числу классов. В сети, приведенной на рис. 1.3, ядра cm являются весовыми коэффициентами нейронов. Каждый нейрон запоминает одно ядро класса, и отвечает за определение объектов в своем классе, т.е. величина выхода нейрона тем больше, чем ближе объект к данному ядру класса. Общее количество классов совпадает с количеством нейронов.

Рассмотрим задачу автоматического выявления центров кластеров входов для двумерного случая с использованием слоя Кохонена (слоя "соревнующихся" нейронов). Решение данной задачи приведено ниже.

% Create P.

X = [0 1; 0 1]; % Задание диапазонов возможного положения центров кластеров.

% Задание параметров для моделирования исходных данных, принадлежащих 6.

% классам (кластерам).

clusters = 6;

points = 10;

std_dev = 0.05;

P = nngenc(X,clusters,points,std_dev);

% Моделирование входных данных

h=newc([0 1; 0 1], 6,.1);

% Создание слоя Кохонена.

h.trainParam.epochs=500;

% Задание количества циклов обучения.

h=init(h);

% Инициализация сети.

h=train(h,P)

% Обучение сети.

w=h.IW{1};

% Вывод графика исходных данных и выявление центров кластеров.

plot(P(1,:),P(2,:),'+r');

hold on; plot(w(:,1),w(:,2),'ob');

xlabel(`p(1)');

ylabel(`p(2)');

p= [0;0.2];

% Задание нового входного вектора.

y=sim(h,p)

%Опрос сети

y=

(5,1) 1

Работу обученной сети иллюстрирует рис. 1.4 и результат ее опроса (который выдается в форме разряженной матрицы). В условиях примера предъявленный вектор отнесен к третьему классу (кластеру).

Рисунок 1.4 - Обучение сети

Рисунок 1.5 - Входные данные

Рисунок 1.6 - Выявленные центры кластеров

2. Математическая модель

2.1 Сети Коханена

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

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

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

Идея сети Кохонена принадлежит финскому ученому Тойво Кохонену (1982 год). Основной принцип работы сетей - введение в правило обучения нейрона информации относительно его расположения.

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

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

Сеть Кохонена, в отличие от многослойной нейронной сети, очень проста; она представляет собой два слоя: входной и выходной. Элементы карты располагаются в некотором пространстве, как правило, двумерном.

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

Обозначим m - размерность входного пространства, x = [x1, x2, … xm]T - входной вектор. Пусть l - количество нейронов сети, тогда wj = [wj1, wj2, …, wjm]T, j = 1, 2,…, l - вектор синаптических весов нейрона j (рис. 2.1).

Размещено на http://www.allbest.ru/

Рисунок 2.1 - Топологическая карта сети Кохонена

Для того, чтобы выбрать наиболее подходящий для входного вектора х вектор wj, необходимо сравнить скалярные произведения для j=1,2,…,l и выбрать максимальное значение, что эквивалентно минимизации Евклидова расстояния между векторами x и wj. Пусть i(x) - индекс нейрона, который лучше всего соответствует входному сигналу х, тогда:

, j = 1, …, l. (2.1)

При этом нейрон i называется "победившим". Формула (2.1) отображает процесс конкуренции между нейронами.

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

1) быть симметричной относительно точки-максимума (в победившем нейроне);

2) монотонно уменьшаться с увеличением расстояния между нейронами.

Для определения топологической окрестности чаще всего используют функцию Гаусса, которая удовлетворяет вышеперечисленным условиям [26]:

, (2.2)

где hj,i(x) - топологическая окрестность с центром в победившем нейроне i, di,j - латеральное расстояние между победившим (i) и вторично возбужденным (j) нейронами, - эффективная ширина топологической окрестности, определяет уровень, до которого нейроны из топологической окрестности победившего участвуют в процессе обучения.

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

, n = 0, 1, 2…, (2.3)

где - начальное значение величины , - некоторая временная константа.

Следовательно, топологическую окрестность (функцию окрестности) можно представить в виде формулы:

, n = 0, 1, 2… (2.4)

Понятие топологической окрестности сотрудничающих нейронов отражает процесс кооперации между нейронами.

Основной процесс обучения сети Кохонена - изменение синаптических весов нейрона-победителя и нейронов, входящих в его топологическую окрестность. Этот процесс называют процессом адаптации. Изменение синаптических весов нейронов определяется по формуле [26]:

, (2.5)

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

Таким образом, обновленный вектор wj(n + 1) в момент времени n + 1 можно определить в следующем виде:

, (2.6)

Для описания зависимости параметра скорости обучения от времени предлагается экспоненциальная функция [26]:

, n = 0, 1, 2,…, (2.7)

где - временная константа алгоритма Кохонена.

Алгоритм обучения сети Кохонена можно представить в виде последовательности следующих шагов.

1. Инициализация. Для исходных векторов синаптических весов wj(0) (j = 1, …, l, где l - общее количество нейронов в решетке) выбираются случайные значения. Значения весов должны находиться в пределах, в которых изменяются значения входных векторов.

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

3. Поиск максимального подобия. Определяется наиболее подходящий (победивший) нейрон i(x) на шаге n с использованием критерия минимума Евклидова расстояния:

, j = 1, …, l. (2.8)

4. Корректировка векторов синаптических весов. Векторы синаптических весов всех нейронов корректируются с использованием формулы:

, (2.9)

где - параметр скорости обучения, hj,i(x)(n) - функция окрестности с центром в побудившем нейроне i(x).

5. Возврат к шагу 2 до тех пор, пока в карте не перестанут происходить заметные изменения.

2.2 Использование Self-organizing map

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

1) нейроны распределяются некоторым пространственным образом (по одному из трех возможных вариантов: в узлах прямоугольной решетки, гексагональной решетки или случайно);

2) на этапе самообучения корректируется вес не только нейрона-"победителя", но и группы нейронов в его некоторой пространственной окрестности.

Назначение карт, самоорганизующихся, такое же, как и у слоя Кохонена, - выявление в режиме самообучения центров кластеров предъявленной на входе сети совокупности входных векторов. Для двумерного случая кластерам можно дать геометрическую интерпретацию как сгущением, "облакам" точек, отображающим векторы на плоскости, а их центрам - как центрам таких сгущений. Структура SOM отражена на рис. 2.2.

Размещено на http://www.allbest.ru/

Рисунок 2.2 - Структура SOM

Нейрон является единицей обработки информации в сети. На рис. 2.3 показана модель нейрона.

В модели, представленной на рис. 2.3 можно выделить три основных элемента:

1. Набор синапсов (synapse) или связей (connecting link), каждый из которых характеризуется своим весом (weight) или силой (strength). В частности, сигнал на входе синапса, связанного с нейроном, умножается на вес. Индексы синаптического веса указаны в определенном порядке. Первый индекс относится к данному нейрона, а второй - к входному окончанию синапса, с которым связан данный вес. Синаптический вес нейрона может иметь как положительные, так и отрицательные значения.

Рисунок 2.3 - Модель нейрона

2. Сумматор (adder) составляет входные сигналы, взвешенные по соответствующим синапсам нейрона.

3. Функция активации (activation function) определяет выходной сигнал нейрона в зависимости от индуцированного локального поля. Функция активации нейрона сети Кохонена имеет область значений от -1 до +1, то есть она симметрична относительно начала координат. Это означает, что функция активации является нечеткой функцией индуцированного локального поля. Функцию в данном случае можно определить следующим образом:

(2.10)

Эта функция называется сигмоидальной. В данном случае она будет иметь форму гиперболического тангенса (рис. 2.4):

. (2.11)

Рисунок 2.4 - Сигмоидальная функция активации (гиперболический тангенс)

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

Функционирования нейрона можно описать следующей парой уравнений:

, (2.12)

, (2.13)

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

3. Проектирование системы

3.1 Выбор языка программирования

MATLAB - это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической. Типичное использование MATLAB - это: математические вычисления создание алгоритмов моделирование анализ данных, исследования и визуализация научная и инженерная графика разработка приложений, включая создание графического интерфейса MATLAB - это интерактивная система, в которой основным элементом данных является массив. Это позволяет решать различные задачи, связанные с техническими вычислениями, особенно в которых используются матрицы и вектора, в несколько раз быстрее, чем при написании программ с использованием скалярных языков программирования, таких как Си или Фортран. MATLAB развивался в течении нескольких лет, ориентируясь на различных пользователей. В университетской среде, он представлял собой стандартный инструмент для работы в различных областях математики, машиностроении и науки. В промышленности, MATLAB - это инструмент для высокопродуктивных исследований, разработок и анализа данных. В MATLAB важная роль отводится специализированным группам программ, называемых toolboxes. Они очень важны для большинства пользователей MATLAB, так как позволяют изучать и применять специализированные методы. Toolboxes - это всесторонняя коллекция функций MATLAB (М-файлов), которые позволяют решать частные классы задач. Toolboxes применяются для обработки сигналов, систем контроля, нейронных сетей, нечеткой логики, вылетов, моделирования и т.д. Система MATLAB состоит из пяти основных частей. Язык MATLAB. Это язык матриц и массивов высокого уровня с управлением потоками, функциями, структурами данных, вводом-выводом и особенностями объектно-ориентированного программирования. Среда MATLAB - это набор инструментов и приспособлений, с которыми работает пользователь или программист MATLAB. Она включает в себя пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris (начиная с версии R2010b поддержка Solaris прекращена) и Microsoft Windows.

Основной особенностью языка MATLAB являются его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге "думай векторно" (англ. Think vectorized).

Основные преимущества MATLAB, выгодно выделяющие ее среди существующих ныне математических систем и пакетов (MathCad, Mathe- matica и др.), заключаются в следующем:

1) система MATLAB специально создана для проведения именно инженерных расчетов: математический аппарат, используемый ею, предельно приближен к современному математическому аппарату инженера и ученого и опирается на вычисления с матрицами, векторами и комплексными числами; графическое представление функциональных зависимостей здесь организовано в форме, требуемой именно инженерной документацией;

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

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

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

5) последние версии MATLAB позволяют легко интегрировать ее с текстовым редактором Word, что дает возможность использовать при составлении текстовых документов вычислительные и графические средства MATLAB.

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

3.2 Программная реализация

Решим задачу кластеризации лесных пожаров с помощью SOM.

"P= [0.001 0.015 0.01 0.004 0.002 0.0062 0.0032; 0.5 0.908 1 0.65 0.59 0.97 0.625];

"Plot (P (1,:), P (2,:), '+ r');

% Визуальное изображение входных векторов

"Net = newsom ([0 1; 0 1], [5 6]);

% Создание НМ с 5 Ч 6 = 30 нейронами

"Net = train (net, P);

% Обучение сети;

"Plotsom (net.iw {1,1}, net.layers {1}. Distances)

% Выявление центров кластеров;

"P = [0.5; 0.3];

"A = sim (net, p)

a =

(3,1) 1

"W=net.IW{1}

W =

0.0137 0.9953

0.0118 0.9872

0.0070 0.8656

0.0041 0.7063

0.0038 0.6498

0.0127 0.9677

0.0092 0.8739

0.0043 0.7504

0.0034 0.6816

0.0031 0.6373

0.0136 0.9185

0.0140 0.9149

0.0097 0.8307

0.0038 0.6969

0.0031 0.6282

0.0139 0.8728

0.0133 0.8587

0.0041 0.6638

0.0030 0.6185

0.0031 0.6126

0.0126 0.8355

0.0114 0.7998

0.0069 0.7108

0.0028 0.6191

0.0025 0.5907

0.0087 0.7434

0.0073 0.7133

0.0030 0.6319

0.0020 0.5786

0.0016 0.5466.

Алгоритм работы программы с использованием SOM представлен на рисунке 3.1.

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

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

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

На этапе обучения производится кластеризация обучающей выборки. Для этого сначала задаются данные о лесном пожаре, последствия которого нужно оценить (блок 2), то есть устанавливаются начальные значения узлов сети. Затем выбирается обучающее множество из базы данных, содержащей историю лесных пожаров (обучающая выборка) (блок 3). Блоки 4-7 схемы отображают непосредственно процесс обучения, который осуществляется в цикле. Остановка обучения происходит, когда в базе данных обнаружено максимально подобные данные. Проверка этого условия осуществляется в блоке 7.

Размещено на http://www.allbest.ru/

Рисунок 3.1 ? Алгоритм работы программы с использованием карт Кохонена

Рисунок 3.2 - Схема алгоритма оценки последствий лесного пожара с помощью карты Кохонена

После обучения сеть должна быть протестирована. Во время тестирования с помощью тестовой выборки осуществляется проверка, правильно ли обучена нейронная сеть. Перед тестированием необходимо выбрать тестовое множество из базы данных, содержащей историю пожаров (блок 9). Тестовое множество не должно пересекаться с обучающей выборкой. Блоки 10-14 схемы отображают процесс тестирования, который, также, как и обучение, происходит в цикле.

Этап использования обученной сети (блоки 17,18) наступает после этапа тестирования только в том случае, если сеть обучена правильно, то есть если тестирование произошло успешно.

Схема прогноза поведения пожара представлена на рисунке 3.3.

Рис. 3.3 - Схема прогноза поведения пожара

На рис. 3.4 показаны входные данные программы, то есть данные о лесных пожарах, которые были в Херсонской области.

Рисунок 3.4 - Входные данные

Рисунок 3.5 - Обучение сети

На рис. 3.5 представлен процесс обучения сети

Рисунок 3.6 - Топология

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

Рисунок 3.7 - Подключение соседа (нейрона)

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

На рис. 3.7 серо-голубые пятна - это нейроны, а прямые красные линии - отношение между нейронами (соседями).

Рисунок 3.8 - Сосед расстояния

На рис. 3.8 показано расстояние между соседними нейронами.

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

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

Рисунок 3.9 - Самолеты

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

Рисунок 3.10 - Просмотры

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

Рисунок 3.11 - Вес позиций

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

Рисунок 3.12 - Вес векторов

На рис. 3.12 представлена результирующая сетка.

Заключение

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

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

Список использованной литературы

1. Chumsamrong W., Thitimajshima P., Rangsanseri Y. Using stationary wavelet transform in the classification of SAR images. Thailand, 1998.

2. Haralick R.M., Shanmugam K., Distein I. Textural features for image classification. IEEE Transactions on systems, man and cybernetics, 1973, V. SMC-3. № 6, p. 610-621.

3. Xiaomei Y., Chenghu Z. Recognition of flooded area in radar image using texture feature analysis, LREIS, Institute of Geography, Chinese Academy of Science, Beijing, China, 1998.

4. Мясников В.В. Автоматическая классификация [Текст]: методические указания / В.В. Мясников, А.Ю. Баврина. - Самара, 2005. - 20 c.

5. Мицель А.А. Непараметрический алгоритм текстурного анализа аэрокосмических снимков [Teкст]/ А.А. Мицель, Н.В. Колодникова, К.Т. Протасов// Известия Томского политех. ун-та. - 2005. - Т. 308. № 1. - С. 65-70.

6. Miyamoto E., Merryman Th. Fast calculation of haralick texture features, Human Computer Interaction Institute, Carnegie Mellon University, Pittsburgh, 2005.

7. Мясников В.В. Выбор признаков в задачах классификации [Текст]: методические указания / В.В. Мясников, А.Ю. Баврина. - Самара, 2005. - 26 с.

8. M.A. Fosberg, J.G. Goldammer, D. Rind, and C. Price. Global change: effects on forest ecosystems and wildfire severity. In: Fire in the tropical biota. Ecosystem processes and global challenges. (J.G. Goldammer, ed.), 463-486. Ecological Studies 84, Springer-Verlag. Berlin.

9. Flannigan M.D. and Van Wagner, C.E. 1991.Climate change and wildfire in Canada.Can. J. For. Res. 21, 66-72.

10. Emanuel W.R., Shugart,H.H. and Stevenson, M.P. 1985. Climate change and the broad-scale distribution of terrestrial ecosystem complexes. Climatic Change 7, 29-43.

11. Воробьев О.Ю. Среднемерное моделирование. - М.: Наука, 1984. - 136 с.

12. Воробьев О.Ю. Вероятностное множественное моделирование распространения лесных пожаров /О.Ю. Воробьев, Э.Н. Валендик. - Новосибирск: Наука, 1978. - 160 с.

13. Граб М.В. Модели, методы и алгоритмы распространения лесных пожаров: Дисс. канд. техн. наук: 01.05.02 - математическое моделирование и вычислительные методы /ХНУРЭ. - Харьков, 2004. - 230 с.

14. Anderson H.E., Rothermal R.S. Influence of Moisture and Wind upon the Characteristics of Free Burning Fires //Tenth Symposium (International) on Combustion, The Combustion Institute. - Pittsburg. - 1965. - P.1009-1019.

15. Andrews P.L., Bevins C.D. BEHAVE fire modeling system: redesign and expansion //Fire management notes. - 1999. - Vol. 59, №2. - P.16-19.

16. Mitchell Z.M. Rule of thumb determining rate of spread //Fire Control Notes. - 1937. - Vol. 6. - P.395-396.

17. Davis K.P., Byram G.M., Krumm W.R. Forest Fire: Control and Use. - N.Y.: McGray-Hill, 1959. - 584 p.

18. Амосов Г.А. Некоторые закономерности развития лесных низовых пожаров //Возникновение лесных пожаров. - М.: Наука, 1964. - С. 152-183.

19. Амосов Г.А. Некоторые особенности горения при лесных пожарах. - Ленинград: ЛенНИИЛХ, 1958. - 29 с.

20. Вонский С.М. Интенсивность огня низовых лесных пожаров и ее практическое значение. - Ленинград: ЛенНИИЛХ, 1957. - 52 с.

21. Вонский С.М. Лесные пожары и способы их тушения /С.М. Вонский, В.Б. Наумов, В.А. Жданко. - Ленинград: Ленинградский НИИ лесного хозяйства, 1989. - 56 с.

22. Доррер Г.А. Математические модели динамики лесных пожаров. - М.: Лесн. пром-сть, 1979. - 161 с.

23. Гришин А.М. Математическое моделирование лесных пожаров и новые способы борьбы с ними. - Новосибирск: Наука. Сибирское отделение, 1992. - 408 с.

24. Гришин А.М. Математическое моделирование процесса распространения верховых лесных пожаров /А.М. Гришин, А.Д. Грузин, В.Г. Зверев //Физика горения и взрыва. - 1983. - Т.269, №4. - C.822-826.

25. Гришин А.М. Математическое моделирование зажигания крон деревьев /А.М. Гришин, В.А. Перминов //Физика горения и взрыва. - 1998. - Т.34, № 4 - C.13-22.

26. Хайкин Саймон. Нейронные сети: полный курс, 2-е издание: Пер. с англ. - М.: Издательский дом "Вильямс", 2006. - 1104 с.

27. Миркес Е.М. Нейрокомпьютер. Проект стандарта. - Новосибирск, 1998. - 188 с.

28. Лбов Г.С. Методы обработки разнотипных экспериментальных данных. - Новосибирск: Наука, 1981. - 157 с.

29. Н.Н. Мартынов Matlab 7. Элементарное введение. М.: Кудиц-образ, 2005. - 416 стр.

30. С.В. Поршнев MATLAB 7. Основы работы и программирования. Учебник. М.: Бином. Лаборатория знаний, 2006. -320 стр.

31. Курбатова Екатерина Анатольевна MATLAB 7. Самоучитель - М.: "Диалектика", 2005. - С. 256.

32. Алексеев Е.Р., Чеснокова О.В. MATLAB 7. Самоучитель. - Пресс, 2005. - С. 464.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.