Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Управление большими системами. УБС-2017

.pdf
Скачиваний:
3
Добавлен:
12.11.2023
Размер:
17.48 Mб
Скачать

Информационные технологии в управлении техническими системами и технологическими процессами

n_exp.up = Math.Exp(Value.up); return n_exp;

}

public static iInterval CEXP(iInterval Value)

{

iInterval c_exp = new iInterval(); iInterval pr_exp = new iInterval(); pr_exp = NEXP(Value);

c_exp = ISUUM.SUUM((IMMULT.MMULT(pr_exp, (IRAZN.RAZN(Value, IMID.MID(Value))))), Math.Exp((double)IMID.MID(Value)));

return c_exp;

}

public static iInterval EXP(iInterval Value)

{

iInterval n_exp = new iInterval(); iInterval c_exp = new iInterval(); iInterval exp = new iInterval(); n_exp = NEXP(Value);

c_exp = CEXP(Value);

if (n_exp.down > c_exp.down) exp.down = n_exp.down;

else

exp.down = c_exp.down; if (n_exp.up < c_exp.up)

exp.up = n_exp.up; else

exp.up = c_exp.up; return exp;

}

}

Ниже приведен запрос для вывода результата интервального расширения экспоненциальной функции интервалов из табл. 1.

SELECT dbo.IEXP(interval) FROM Intervals.

Результат расчета данного расширения представлен в табл. 3.

363

401

Управление большими системами. Выпуск XX

Таблица 3. Интервальное расширение функции ex

id

interval_e^x

 

 

1

1,64872127;7,38905609

 

 

2

3,66929667;33,11545196

 

 

3

1,34985881;60,34028759

 

 

 

Над созданным интервальным типом данных были реализо-

ваны операции, представленные в табл. 4.

Таблица 4. Операции над интервалами

 

Класс

 

Операция

ISUM

 

Сложениевсехинтервалов

IMULT

 

Умножениевсехинтервалов

ISUMA(iInterval Value1, iInterval

 

Сложениедвухинтервалов

Value2)

 

 

IVCH(iInterval Value1, iInterval

 

Разностьдвухинтервалов

Value2)

 

 

IMMULT(iInterval Value1, iInterval

Умножениедвухинтервалов

Value2)

 

 

IDDEL(iInterval Value1, iInterval

 

Делениедвухинтервалов

Value2)

 

 

ISUUM(iInterval Value1,

 

Прибавлениечислакинтервалу

SqlDouble a)

 

 

IRAZN(iInterval Value1,

 

Вычитаниечислаизинтервала

SqlDouble a)

 

 

ISCALAR_MULT(iInterval Value1,

Умножениеинтерваланачисло

SqlDouble a)

 

 

Можно привести пример реализации такой операции, как сложение всех интервалов.

public struct ISUM

{

private double d, u;

public void Init()

{

364

402

Информационные технологии в управлении техническими системами и технологическими процессами

d = 0.0; u = 0.0;

}

public void Accumulate(iInterval Value)

{

d += Value.down; u += Value.up;

}

public void Merge(ISUM Group)

{

d += Group.d; u += Group.u;

}

public iInterval Terminate()

{

return new iInterval(d, u);

}

}

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

SELECT dbo.ISUM (interval) FROM Intervals.

Результат расчета данной операции представлен в табл. 5.

Таблица 5. Функция сложения интервалов id interval

1 6,66787675; 100,84479564

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

Исследование выполнено при финансовой поддержке РФФИ и Липецкойобластиврамкахнаучногопроекта16-47-480929-р_а.

365

403

Управление большими системами. Выпуск XX

Литература

1.ГАЛКИН А.В., МИРОШНИКОВ А.И., ПОГОДАЕВ А.К.

Разработка интервального типа данных и операций над ним в системе MS SQL Server // Системы управления и информационные технологии. – 2017. – № 1(67). – С. 48–51.

2.МИРОШНИКОВ А.И., НИКОЛЬСКАЯ А.А. Исследование методов организации интервальных баз данных и выполнения интервальных запросов // Современные проблемы ин-

форматизации, 2017. – С. 273–278.

3.ПЕТКОВИЧ Д. Microsoft SQL Server 2012. Руководство для на-

чинающих/ пер. сангл. – СПб.: БХВ-Петербург, 2013. – 816 с.

4.ТРОЕЛСЕН Э. Язык программирования C#5.0 и платформа

.NET 4.5. – М.: Вильямс, 2013. – 1310 с.

5.ШАРЫЙ С.П. Конечномерный интервальный анализ [Электрон-

ный ресурс] / Институт вычислительных технологий СО РАН. –

Новосибирск, 2016. – 617 с. – URL: http://www.nsc.ru/ interval.

OBJECT PROCESSING INTERVAL TYPE IN THE DATABASE MANAGEMENT SYSTEM SQL SERVER

Saraev Pavel Viktorovich, Lipetsk State Technical University, Lipetsk, doctor of technical Sciences, associate Professor (psraev@yandex.ru). Galkin Alexander Vasil’evich, Lipetsk State Technical University, Lipetsk, candidate of technical Sciences, associate Professor (avgalkin82@mail.ru).

Miroshnikov Artem Igorevich, Lipetsk State Technical University, Lipetsk, assistant (a.i.miroshnikov@yandex.ru).

Nikol’skaya Alina Aleksandrovna, Lipetsk State Technical University, Lipetsk, the student (nikol-pm13@mail.ru).

Abstract: Modern information systems have the ability to account for data that contains uncertainty in the form of intervals. This can be implemented in the form of the creation of interval data type in the DBMS. Processing objects of interval type are easy to make by using methods of interval analysis. The paper presents the designed interval type in SQL Server and processing functions of the objects of interval type.

Keywords: interval analysis, database management system, the interval data type.

366

404

Информационные технологии в управлении техническими системами и технологическими процессами

УДК 519.67 ББК 22.18

ИСПОЛЬЗОВАНИЕ РАЗЛИЧНЫХ ФУНКЦИЙ АКТИВАЦИИ В СТРУКТУРНОЙ ИДЕНТИФИКАЦИИ ДУАЛЬНОПАРАМЕТРИЧЕСКИХ

НЕЙРОННЫХ СЕТЕЙ

Сараев П.В.1, Полозова Ю.Е.2

(Липецкий государственный технический университет, Липецк)

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

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

1. Введение

Дуальнопараметрическая нейросетевая (ДНС) модель представляет собой частный случай интервальной нейронной сети с параметрами (весами) двух типов: вещественными и интервальными. Алгоритм обучения вещественных весов в такой модели представляет собой интервальный аналог метода обратного распространения ошибки. В связи с этим возникает вопрос

1 Павел Викторович Сараев, доктор технических наук, доцент

(psaraev@yandex.ru).

2 Юлия Евгеньевна Полозова, аспирантка (julipolozova@yandex.ru).

367

405

Управление большими системами. Выпуск XX

о возможности использования разных функций активации (ФА) при обучении ДНС.

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

2. Теоретическая справка

Дуальнопараметрическая нейросетевая модель с одним интервальным выходом содержит n входных интервальных нейронов и m скрытых слоев. Веса нейронов всех слоев от первого до m – 1 представляют собой вещественные числа. Веса нейронов в скрытом слое m задаются интервальными значениями. Обучение ДНС производится в два этапа [1].

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

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

Обучение модели на первом этапе производится методом обратного распространения ошибки для случая интервальнозначных входов и выходов [3–7]. При этом ошибка обучения для модели с одним выходом определяется квадратичным функционалом качества:

(1)

J (w) =

12

Qi (w) =

12

{(yi (w) yi )2

+ (yi (w) yi )2 },

 

 

 

k

 

k

 

 

 

 

 

 

 

 

i=1

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где k – число примеров обучающего множества, w – вектор весов, Qi(w) – значение ошибки обучения на i-м примере обучающего множества; yi (w) – нижняя граница выходного интервала ИНС

на i-м примере; yi – нижняя граница выходного интервала указа-

ния учителя на i-м примере; yi (w) – верхняя граница выходного

интервала ИНС на i-м примере; yi – верхняя граница выходного интервала указания учителя на i-м примере.

368

406

Информационные технологии в управлении техническими системами и технологическими процессами

Границы выходного интервала i-го нейрона l-го слоя вычисляются по формулам [6]:

 

y(l,i) = σ (net

 

 

Nl1

 

(2)

(l ,i) ) = σ

w(jl ,i)

y(l 1, j)

 

 

 

 

 

 

 

 

 

 

 

 

 

j=0, wj 0

 

 

 

 

 

 

 

Nl1

 

(3)

y(l,i) = σ (net

(l ,i) )= σ

w(jl ,i)

y(l 1, j)

 

 

 

 

 

 

 

 

 

 

 

 

 

j=0, wj 0

 

Nl1

+ w(jl,i) j=0, wj <0

N1

+l w(jl,i)

j=0, wj <0

y

y

(l 1, j )

(l 1, j )

,

,

где

y(l,i)

– нижняя граница

выходного интервала i-го нейрона

 

 

 

σ ( ) – функция

 

l-го

слоя;

активации нейрона скрытого слоя;

net (l,i) – нижняя граница уровня активации i-го нейрона l-го слоя; Nl1 – число нейронов слоя l 1; w(jl,i) j-й вес i-го нейрона l-го

слоя;

y(l1, j) – нижняя граница выхода j-го нейрона слоя

l 1;

 

 

 

 

 

 

 

y(l1, j)

– верхняя граница выхода j-го нейрона слоя l 1;

y(l,i)

 

верхняя граница выходного интервала i-го нейрона l-го

слоя;

net (l,i) – верхняяграницауровняактивацииi-гонейронаl-гослоя. Градиент функционала качества обучения интервальной

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

 

 

 

 

 

 

 

 

 

(l1, j)

 

 

 

 

 

 

 

 

 

 

 

 

(l,i)

 

 

(l,i)

 

y

+ s

(l,i)

(l,i)

 

 

(l 1, j)

,

 

 

s

σ 'net

(net

 

)

 

σ 'net (net

 

)y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q(w)

 

(l,i)

0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если wj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4)

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(l,i)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(net(l,i) ) y(l1, j)

+ s(l,i)σ 'net (net(l,i) )y(l 1, j) ,

 

wj

s(l,i)σ 'net

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(l,i)

< 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если wj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где s(l,i) , s(l,i) – нижняя и верхняя границы множителя, определяемого с помощью рекуррентной процедуры

 

 

Nm+1

(l +1, j)σ 'net (net(l +1, j ) )wi(l +1, j ) +

s(l,i) =

 

 

s

 

 

 

 

 

 

 

 

 

(5)

j=1,wj 0

 

 

 

 

 

 

 

 

 

 

 

 

 

Nm+1

 

 

 

 

 

 

 

+

 

s(l +1, j )σ

'net

(net

(l +1, j) )wi(l +1, j) ,

j=1,wj <0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

369

407

Управление большими системами. Выпуск XX

 

 

 

 

 

Nm+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

(l,i) =

 

s

(l

+1, j)σ 'net (net(l +1, j ) )wi(l +1, j ) +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(6)

 

 

 

j=1,wj ≥0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nm+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

s

(l +1, j)σ 'net (net(l +1, j ) )wi(l +1, j )

 

 

 

 

 

 

j=1,wj <0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(L,1)

~

s

(L,1)

 

 

~

. Здесь

 

 

 

 

 

 

 

 

с начальным условием s

 

= y(w) y ,

 

 

= y(w) y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L – количество слоев нейросетевой модели.

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

 

k

k

 

(7)

J ([w]) = Qi

([w]) = pi bi

,

 

i=1

i=1

 

(8)bi = [bi1

(9)pi = [pi1

T

~

 

 

 

 

 

 

~

T

 

 

 

 

 

 

 

 

 

yi ([w])

yi ([w]) yi ] ,

bi2 ] = [y

 

 

i

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

pi2 ], piq

1,

biq

 

 

 

 

 

q = 1,2 .

=

biq < 0;

 

 

 

biq / N ,

 

 

 

 

Здесь k – число примеров обучающего множества; [w] – интервальный вектор весов; Qi([w]) – значение ошибки обучения на i-м примере обучающего множества; pi – вектор-строка весовых коэффициентов для отклонения границ интервала выхода сети от границ интервала указания учителя на i-м примере

обучающего множества; bi – вектор отклонений границ интер-

вала выхода сети от указания учителя на i-м примере;

~

y

i

нижняя граница интервала указания учителя на i-м примере; yi ([w]) – нижняя граница интервала выхода сети на i-м приме-

ре; yi ([w]) – верхняя граница интервала выхода сети на i

примере; ~ – верхняя граница интервала указания учителя на yi

i-м примере; piq q-й элемент вектора-строки pi; biq q-й элемент вектора bi; q – номер элемента вектора; N – уровень то-

лерантности, показывающий порядок отклонения границы

370

408

Информационные технологии в управлении техническими системами и технологическими процессами

интервала, который признается допустимым (например, 0,1, 0,01, 0,001).

3. Алгоритм структурной идентификации ДНС

сразными ФА

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

Шаг 1. Производится обучение интервальной нейросетевой модели первого этапа с вещественными весами. Задается L – максимально возможное число нейронов скрытого слоя. Производится последовательно наращивание структуры нейросетевой модели путем последовательного добавления нейронов в скрытый слой при уменьшении ошибки обучения.

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

Шаги 1б и последующие. В скрытый слой добавляется еще один нейрон. Выполняется цикл из K итераций, соответствующих количеству разных ФА. На каждой итерации производится серия из N обучений интервальной нейросетевой модели первого этапа с вещественными весами. Выбирается наименьшая из ошибок обучения, полученных в серии, соответствующие ей веса нейронов скрытого слоя и ФА. Если ошибка обучения, полученная на текущем шаге, оказывается меньше ошибки обучения, полученной на предыдущем шаге, то выполняется переход на следующий шаг цикла. Иначе количество нейронов скрытого слоя устанавливается равным числу нейронов предыдущего шага, а значения весов нейронов скрытого слоя устанавливаются равными соответствующим значениям, полученным на преды-

371

409

Управление большими системами. Выпуск XX

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

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

4. Результаты численного моделирования

Для проведения экспериментов рассматриваются два набора исходных данных, включающие 30 интервальных значений. По исходным данным производится построение прогноза на 5 значений вперед. Уровень толерантности N = 0,00001. Результаты эксперимента приведены в таблице и на рис. 1, 2.

Результаты эксперимента

 

Номер эксперимента

 

1

2

Числовходныхней-

3

5

ронов

 

 

Числонейроновскры-

3

3

тогослоя

 

 

ФАнейроновскрыто-

σ (net) = arctg(net) ,

σ (net) =1/ (1+ enet ) ,

гослоя

σ (net) = arctg(net) ,

σ (net) =1/ (1+ enet ) ,

 

σ (net) =1/ (1+ enet )

σ (net) = arctg(net)

Времяобучения, с

1378

1194

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

1,31

5,48

Среднееотноситель-

 

 

ноеотклонениегра-

 

 

ницинтерваловпро-

0,20

3,79

гнозныхзначенийот

 

 

фактических

 

 

372

 

 

410