также гибкая настройка позволяют применять разработанную систему для поддержки веб-представительства практически любого печатного издания.
ПЕРЕЧЕНЬ ССЫЛОК
1. The Java Servlet API (http://java.sun.com/products/servlet/ whitepaper.html).
2. Морган M. Java 2. Руководство разработчика.: Пер. с англ. - М.: Издательский дом "Вильямс", 2000. - 720 с.
3. The Netcraft Web Server Survey (http://www.netcraft.com/ survey/).
4. The Apache JServ Project (http://java.apache.org/jserv/).
5. Apache JServ Protocol Version 1.1 (AJPvl.1) (http:// java.apache.org/jserv/protocol/AJPv11.html).
6. GNU General Public License (GPL) (http://www.gnu.org/copy-left/gpl.html).
7. RFC2319 - Ukrainian Character Set KOI8-U (ftp://ftp.isi.edu/ in-notes/rfc2319.txt)
8. Russian Apache: Как это работает (http://apache.lexa.ru/ internals.html).
Надшшла 23.02.2000 Шсля доробки 22.03.2000
УДК 681.32:007
БЫСТРОЕ ДИФФЕРЕНЦИРОВАНИЕ СЛОЖНЫХ ФУНКЦИЙ МНОГИХ
ПЕРЕМЕННЫХ
М. Ю. Сенашова
Описаны графы вычисления сложных функций многих переменных, изложен принцип двойственности для вычисления градиента сложной функции и градиента от функционалов градиента, выделен класс таких функций, для которых вычисление градиента наиболее просто (он включает нейронные сети, но не только - существуют экстремально простые схемы более общего вида).
The grafs of calculation of composite functions of many variables are described. Principle of duality for calculation of gradient and second derivative of composite function is stated. Class of functions with the most simple calculation of gradient is determined. (Besides the neural networks it includes the extremely simple circuits of a more general kind).
ВВЕДЕНИЕ
Неверно широко распространенное мнение, что вычислительные затраты для градиента функции n переменных в n раз превышают затраты на вычисление значения самой функции. В действительности, для всех функций многих переменных, встречающихся на практике, необходимые вычислительные затраты на поиск их градиента всего лишь в два-три раза превосходят затраты на вычисление одного значения функции.
Поиск gradF удобно представить как некоторый двойственный процесс над структурой вычисления F. Оказывается, что если представить F как сложную функцию, являющуюся суперпозицией функций малого числа переменных, и аккуратно воспользоваться правилом дифференцирования сложной функции, не производя по дороге лишних вычислений и сохраняя полезные промежуточные результаты, то вычисление всей совокуп-
dF .. -.-, „
ности д— (i = 1, n) немногим сложнее, чем одной из
dxi
этих функций - они все собраны из одинаковых блоков. Частным случаем такого рационального подхода к вычислению градиента является метод обратного рас-
пространения ошибки [1].
Эти рассуждения справедливы и для производных более высоких порядков.
1 ВЫЧИСЛЕНИЕ ВТОРЫХ ПРОИЗВОДНЫХ
СЛОЖНЫХ ФУНКЦИЙ МНОГИХ
ПЕРЕМЕННЫХ
Рассматривается сложная функция многих переменных Г. Под "сложной" функцией подразумевается, что Г может быть представлена как суперпозиция некоторого набора "простых" функций ( от меньшего числа
переменных. Для Г требуется вычислить первые и вторые производные. Используемый аппарат позволяет вычислять не всю матрицу вторых производных, что может быть слишком сложно, а некоторый промежуточный вариант - вычислять градиенты от некоторых функцио-
п
налов градиента Г, например от Ф(атаёГ) = V .
^ Э
{ = 1
Рассмотрим процесс вычисления вторых производных функции Г. Этот процесс состоит из трех этапов: на первом этапе строится граф прямого функционирования и вычисляется сама функция Г, на втором этапе строится граф для вычисления ее градиента (граф первого обратного функционирования), и, наконец, на третьем этапе строится граф для вычисления градиента от функционала градиента ("обратно-обратное" функционирование).
Перейдем к более подробному описанию этапов вычисления производных.
Первый этап
Для построения графа, вычисляющего сложную фун-
кцию п переменных Г, нужно представить эту функцию в виде суперпозиции функций меньшего числа переменных ( . Функции ( можно разделить на слои по
глубине вхождения в функцию Г. В нулевом слое будут находиться константы и переменные, в первом слое -функции, зависящие от констант и переменных нулевого слоя, во втором слое - функции, зависящие от констант, переменных и функций первого слоя и т.д.
По этим слоям удобно строить граф функции Г. Вершинами графа будут функции ( . Если значение вершины ( является аргументом вершины (, то они связываются ребром, направленным от вершины к вершине (I. Таким образом, получаем ориентированный связный
граф, соответствующий функции Г. Более подробно построение графа для вычисления сложной функции описано в [2, 3].
Возьмем, например, выражение для сложной функции
Г(х1, х2, х3) = (5((3(х1, ( (х1, Х2)), (4(( (х1, Х2), (2(х2, х3))) .
На рис. 1 изображен граф, соответствующий этой функции. Окружностями изображены вершины графа, - разбиение функций ( на слои по глубине вхождения в функцию Г.
Рисунок 1
С каждой вершиной графа, принадлежащей ненулевому слою, ассоциируется автомат, вычисляющий функцию ( . Автоматы срабатывают по слоям в дискретные
моменты времени (такты). В начальный момент сформированы значения вершин нулевого слоя - известны значения переменных и констант. Они поступают на входы соответствующих автоматов первого слоя. После к-го такта функционирования определены значения вершин, принадлежащих слоям с 0-го по к-ый. На к+1-м такте автоматы к+1-го слоя вычисляют значения вершин к+ 1-го слоя, получая входные сигналы с предыдущих слоев. В результате вычислений получаем значение фун-
кции Г при конкретных значениях вершин нулевого слоя.
Типичным участком графа является его вершина с входными и выходными связями. Для того, чтобы иметь представление о функционировании графа в целом, достаточно выяснить, как функционирует вершина графа. Поэтому в дальнейшем, для простоты рассуждений, мы будем рассматривать не весь граф, а некоторую вершину графа прямого функционирования и соответствующие ей вершины графов обратного функционирования.
Второй этап
Вычисление градиента сложной функции многих переменных представляет собой некоторый вычислительный процесс, в ходе которого сигналы перемещаются в обратном направлении - от выходных элементов графа к входным. При этом каждый элемент графа заменяется на двойственный, с сохранением структуры связей между элементами.
Двойственным элементом к точке ветвления является сумматор. Двойственный элемент к сумматору - точка ветвления. Двойственным к элементу, вычисляющему значение функции, является элемент, умножающий свой входной сигнал на производную функции по входу исходного элемента. Более сложные элементы конструируются из этих элементов.
На рис. 2 изображены вершина графа прямого функционирования и двойственная ей вершина графа первого обратного функционирования. Здесь для простоты функцией ( обозначена одна из функций ( , входящая в
суперпозицию функции Г. Как показано на рисунке, точка ветвления вершины прямого функционирования заменяется сумматором, а элемент, двойственный вычисляющему функцию (, умножает приходящий к нему сигнал на частные производные функции ( по соответствующим входам и посылает их на элементы, двойственные этим входам. Входными сигналами графа прямого функционирования являются компоненты вектора входных сигналов Х]п . Входные сигналы графа обратного функционирования п = 1.
Рисунок 2
Формулы, полученные для вершины графа первого обратного функционирования путем построения двой-
ственных элементов, могут быть получены при помощи формулы для дифференцирования "двухслойной" сложной функции нескольких переменных:
дХф((1 (х1'"' Хп)' (2(х1'-' Хп)'-' /к(х1'"' хп)) = (1) к
= V ЭФ (
= УЭ( Эх;'
] = 1
Для вершины графа первого обратного функционирования такие "двухслойные" функции имеют вид: фД((х 1, ..., хп)) . Так как сигнал от вершины ( поступает
на к вершин ф; следующего слоя, рассмотрим сумму к
У Ф;(((х 1, ..., хп)) . Вычислим частную производную
г = 1
этой суммы по некоторой переменной хт :
к
Э
Эх„
У Ф;(((х 1' "•' хп))
= Х^тФ;(((х 1'.' хп)) =
ЭФ^ШР)
прямого функционирования
функционирования
ЭР/Эх,. Э(ЭР/ Эх,)
ЭР/Эх2 ЭФ^гайР) Э(ЭР/ Эх2 )
ЭР/ Эх„
ЭФ(1гааР) Э(ЭР/ Эх„ )
ЭФ Эх„.
"Развернутый" граф
Граф "обратно-обратного" функционирования
На рис.3 все графы изображены как самостоятельные элементы процесса вычисления вторых производных, входные и выходные сигналы которых никак не связаны между собой. Однако, процесс вычисления вторых производных можно рассматривать как единый граф, по которому сигналы проходят насквозь - от входов графа к его выходам. Для того, чтобы представить процесс вычисления в таком виде, необходимо между графами, изображенными на рис.3, вставить дополнительные элементы, обеспечивающие сквозное прохождение сигналов.
"Развернутый" граф
Граф "обратно-обратного" функционирования
\г = 1 /г = 1
кк
= у Эфг = ( У Эфг
У Э( ' Эхт Эхт У Э( '
; = 1 ; = 1
Эф;
Обозначив э( через ц , получаем формулу для вершины графа первого обратного функционирования.
Третий этап
При вычислении градиента функции Г строился граф, с той же системой связей, что и у графа, вычисляющего значение функции Г, но все элементы графа заменялись на двойственные. Для того, чтобы вычислить вторые производные, нужно "развернуть" графы, вычисляющие значение функции и ее градиента в один граф, а затем построить граф, двойственный всему "развернутому" графу. Общая схема дважды двойственного функционирования показана на рис. 3.
Рисунок 4
На рис.4 изображены графы и соответствующие дополнительные элементы. Здесь, для удобства, введены новые обозначения. Через у обозначено значение сложной функции Г, через г; обозначены частные производ-
ЭГ ЭФ „
ные ^—, а через г - производная . Элемент, двой-
ЭГ
Эх;'
ЭГ
ственный к элементу, вычисляющему д— , перемножает
свой вход г и производную исходного элемента, т.е. 2
Э Г ЭУ2
В процессе первого обратного функционирования участвуют элементы, производящие умножение двух входных сигналов. Это элементы, умножающие ц на частные
производные . Двойственные к ним элементы "обрат-Эх;
но-обратного" функционирования имеют по одному входу и по два выхода. Если исходный элемент У перемножал сигналы А, В, то выходы двойственного элемента У' передают сигналы к элементам, двойственным источникам А и В соответственно. Обозначим здесь эти источники через А' и В'. При этом на А' подается входной сигнал У', умноженный на В (й(АВ)/йА=В), а на В' -входной сигнал У', умноженный на А (й(АВ)/йВ=А). Умножающий элемент х и двойственный ему элемент х' изображены на рис. 5.
Рисунок 3
Р
В
А
Вх ^А'
► х
Ах ^В'
Рисунок 5
Построим вершины графа "обратно-обратного" функционирования .
Покажем, как строится вершина графа "обратно-обратного" функционирования, двойственная вершине графа первого обратного функционирования. Сигналы VI приходят на входы элементов х', двойственных
элементам х вершины графа обратного функционирования, перемножающих сигнал ц и частные производные . Как было описано выше, элемент, двойствен-Э х
ный к перемножающему сигналы, посылает приходящий к нему сигнал к элементам, двойственным исходным, умножая его на сигнал противоположного входа. Следовательно, сигналы vi , умноженные на ц , посылаются к
вершине графа, двойственной вершине графа прямого функционирования, а они же, умноженные на частные
Э(
производные , посылаются на сумматор, двойственный точке ветвления вершины графа обратного функци-
ние функции (. При этом сигнал А умножается на соответствующие частные производные дХ • Поскольку от
входных сигналов элемента, вычисляющего значение функции, ответвлялись сигналы, передающие частные
производные тт*— к элементам х , то к сигналам А^— Э х д Х;
добавляются сигналы viц у
; = 1
Эх;-Эх 1
Входные сигналы
графа "обратно-обратного" функционирования, двойственного графу прямого функционирования А^п = 0 .
Вершины графа "обратно-обратного" функционирования изображены на рис.6.
; дх;дх,
Л/ —1 Е
/Эх2 ч2 Е ;=1 Эх; ^
! /Эчпчп
VпЦ
' 1 Л Хк
ШТЩ_Эхг д*2 .[Е_12_
— Х!л
^Ч/ X-А = Е?=1А; I/ 3x2
Т \ дЧп 2
дхП ЭХ'ЭЧп А ЭЧ'ЭЧп дЧп,
Вершина, двойственная вершине первого Вершина, двойственная вершине прямого
обратного функционирования. функционирования.
функционирования.
Рисунок 6
онирования. Далее полученная сумма V VI ■ ^Х- прихо-
1 = 1 1
дит к точке ветвления, двойственной сумматору вершины графа обратного функционирования.
Входными сигналами графа "обратно-обратного" функционирования являются частные производные некоторого функционала от градиента функции Г (то есть
ЭФ(дтайГ) \ -с ,
V- = —--). В простейшем случае, когда функци-
1п ЭГ/Эх{
онал Ф является просто суммой частных производных
функции Г (Ф(дтайГ) = V ^^ ), входные сигналы гра-
Э х.
Э х1
1 = 1
фа vin будут равны единицам.
Перейдем теперь к вершине графа "обратно-обратного" функционирования, двойственной вершине графа прямого функционирования. Сигналы А^ поступают на
входы сумматора, двойственного точке ветвления вершины графа прямого функционирования. После прохождения сумматора, полученный сигнал А проходит через элемент, двойственный элементу, вычисляющему значе-
Как и для графа первого обратного функционирования, можно показать, что формулы, полученные при помощи двойственных элементов, могут быть получены с использованием формулы дифференцирования сложной функции нескольких переменных. Для вычисления гра-
к
диента функции мы получили формулу V дф1 . По-
= 1
скольку теперь мы двигаемся в обратном направлении, нам требуется вычислить частную производную по неко-
пк
Э( ^ ЭФ1
торой переменной х} от суммы у у _ :
Ох; Э (
] = 1 1 = 1
Э х
V Э Э( V Эф1 =
у Эх1Эх,- у Э( ; = 1 1 = 1
пк
у Эх; у Э( V; = 1 1 = 1 7
п 2 к п к
= У Э(_у Эф1 + у Э( Э у Эф1 =
у Э х;Эх1 У Э ( У Э х;Эх1 У Э(
;=1 1=1 ;=1 1=1 п 2 к п к 2
= У Э( уЭф1 + у (УдJфlдL
у Э х;Эх1 у Э ( у Э х; у Э(2 Эх/ ; = 1 1 = 1 ; = 1 1 = 1
п
А
V
х
п
п
к п к 2
ох ^ ЭФг ^ Э( ^ Э Фг л
Обозначая у — через ц и у ^^ у через Л , г = 1 ] = 1 г = 1
получаем формулу для вершины, двойственной вершине графа прямого функционирования, изображенной на рис. 6. Множитель для "двухслойных" сложных формул равен 1. Отличные от единицы значения множителя V; появляются при большем количестве слоев.
Таким образом, для того, чтобы вычислить градиент от функционала градиента функции Г, нужно сначала по графу прямого функционирования провести вычисление самой функции Г, затем по графу первого обратного функционирования вычислить ее градиент, а затем провести вычисления по графу "обратно-обратного" функционирования.
2 ОЦЕНКА СЛОЖНОСТИ ВЫЧИСЛЕНИЯ НА
ГРАФАХ
Подсчитаем число операций, необходимых для вычисления всех двойственных переменных для вершин и для ребер графа.
Если характерное число переменных у простых функций, соответствующих вершинам графа, равно к, то для вычисляемой по графу сложной функции Г можно оценить отношение затрат на вычисление Г и gradГ следующим образом:
Т
= с|к2 = скЕ, Тг = сЕ, = к,
станты, то функция ( - линейная. И функции вида (2), и соответствующие им вершины будем называть квазилинейными.
Пусть в графе вычислений присутствуют только вершины двух сортов: квазилинейные или с одной входной связью (соответствующие простым функциям одного переменного). Обозначим количества этих вершин V^ и
соответственно. Оценка сложности вычисления градиента для таких графов принципиально меняется. Обратное функционирование в этом случае требует следующих затрат:
Т
дтайГ
= V + 2Е - (V - Vout),
дтай^ ~ к
где Е - число ребер в графе, с - сложность вычисления частной производной для вершины графа.
Если нас интересуют графы с большим числом связей, то для сохранения эффективности вычисления градиентов нужно ограничиваться специальными классами простых функций. Для функций ( следующего вида вычисление частных производных вообще не требуется:
((г1,—гп) = У ^ + У ¿¡гк , (2)
I е Р1 ] е Р2, к е Р3
где множества индексов Р1 , Р2, Р3 не пересекаются и, кроме того, Р2, Р3 имеют одинаковое число элементов.
Значения всех частных производных таких функций уже известны, а источники (адреса) этих значений указываются связями графа. Какие-то значения гк во второй
сумме могут быть константами (значения нулевого слоя), какие-то - независимыми переменными (также нулевой слой) или значениями, найденными при промежуточных вычислениях. В общем случае функции (2) билинейны. Их частный случай - линейные функции: если индексам из Р2 в (2) соответствуют кон-
где V - количество вершин в графе.
Оценим сложность вычислений при прямом распространении:
ТГ = + (Е - V - Vq) .
С ростом числа связей отношение затрат при обратном функционировании к затратам при прямом функционировании стремится к двум.
Графы вычислений, в которых присутствуют только вершины двух сортов: квазилинейные или с одной входной связью (соответствующие простым функциям одного переменного) играют особую роль. Будем называть их существенно квазилинейными. Для функций, вычисляемых с помощью таких графов, затраты на вычисление вектора градиента примерно вдвое больше, чем затраты на вычисление значения функции. При этом число связей и отношение Е/ V могут быть сколь угодно большими. Это достоинство делает использование существенно квазилинейных графов весьма притягательным во всех задачах оптимизации. Их частным случаем являются нейронные сети, для которых роль квазилинейных вершин играют адаптивные линейные сумматоры.
Поэтому для нейронных сетей обратное распространение выглядит особенно просто.
Отличие общего случая от более привычных нейронных сетей состоит в том, что можно использовать билинейные комбинации (2) произвольных уже вычисленных функций, а не только линейные функции от них с постоянными коэффициентами-весами.
ВЫВОДЫ
Изложенные в работе способы вычисления сложных функций многих переменных, а так же градиентов и вторых производных таких функций при помощи графов, позволяют существенно сократить вычислительные затраты. Выделен класс функций, для которых вычисление градиента наиболее просто (нейронные сети являются частным случаем таких функций). Принцип двойственности, описанный в работе, позволяет достаточно
легко конструировать графы, вычисляющие градиент сложной функции и градиент от некоторого функционала градиента этой функции.
2.
Работа поддержана грантом для молодых учёных 3. №1М0034 Красноярского краевого фонда науки.
4.
5.
ПЕРЕЧЕНЬ ССЫЛОК
Горбань А.Н. Обучение нейронных сетей. М.": изд. СССР-США СП "Параграф", 1990. 160 с.
Горбань А.Н., Дунин-Барковский В.Л., Кирдин А.Н. и др. Нейроинформатика. Новосибирск. Наука. 1998. Горбань А.Н., Сенашова М.Ю. Быстрое дифференцирование, двойственность и обратное распространение ошибок //Вычислительные технологии / Издательство СО РАН. -Новосибирск. 1999. Т. 4. С. 55- 68.
Rummelhart D.E., Hinton G.E., Williams R.J. Learning representations by back-propagating errors. // Nature, 1986. V. 323. Pp. 533-536.
Senashova M. Yu., Gorban A. N., Wunsch D. Back-Propagation of Accuracy. // Proc. IEEE/INNS International Coonference of Neural Networks, IEEE, USA, 1997. Pp. 1998-2001.
Надшшла 01.03.2000 П1сля доробки 28.04.2000
УДК 681.5:65.014.1
АНАЛИЗ И СИНТЕЗ СИСТЕМ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ
С. Н. Сердюк, А. А. Поздняков
Рассмотрены проблемы управления информацией в современных организациях. Анализируются различные классы информационных систем и технологии их построения, призванные решить выявленные проблемы и обеспечить поддержку принятия решения управленцами всех уровней. Описан подход к синтезу системы поддержки принятия решений для бизнес-процессов организации, реализованный на базе OLAP-технологии.
Розглянутг проблеми управлгння гнформацгею в сучасних оргатзацгях. Аналгзуються ргзт класи гнформацшних систем i технологи iх побудови, покликан виргшити виявлет проблеми i забезпечити пгдтримку прийняття ргшення кергв-никами всгх ргвнгв. Описан пгдхгд до синтезу системи пгд-тримки прийняття ргшень для бгзнес-процесгв оргатзацп, реалгзований на базг OLAP-технологп.
In article consider the management problems by information in contemporary organizations. Analyse the different classes of information systems and technologies of their construction, called to work out exposed problems and to provide decision support by managers of all of levels. Is Described approach to decisions support system synthesis for organization business-processes, realized on the basis of OLAP-technology.
чающих за определение стратегии развития деятельности организации, вынуждены работать в условиях практически полного отсутствия информации - "вслепую", полагаясь только на собственный опыт и интуицию. Требуемую управленцу нестандартную информацию не удаётся получить быстро вследствие того, что информационные потоки внутри фирмы спланированы заранее, сроки представления отчетности регламентированы. Поэтому, потребность в быстром и нестандартном решении сразу сталкивается с негибкостью механизма доступа к информации. В итоге, возрастает количество отчетов которые готовятся на заказ, по требованию руководства организацией, а это может привести к расширению штата программистов и аналитиков, обеспечивающих генерацию этих отчетов.
Таким образом, в настоящее время существует проблема быстрого поиска требуемой информации и представление её в том виде, в котором она нужна для лиц принимающих решения (ЛПР).
ВВЕДЕНИЕ
В настоящее время, во многих организациях, несмотря на широкое использование различных систем оперативной обработки данных, систем поддержки принятия решений (СППР) сложилась парадоксальная ситуация: информация существует, интенсивно создаётся и используется, но она не структурирована, не согласована, её довольно сложно найти и получить. Такие системы не в состоянии обеспечить хранение исторических данных более чем за несколько месяцев. Массивы данных выгружаются в архивный набор и вычищаются из оперативной базы, следовательно остаются невостребованными. В то же время, высшее звено управляющих, отве-
ПОСТАНОВКА ЗАДАЧИ
Рассмотрим подходы, используемые в современных информационных системах (ИС), и определим класс систем, позволяющий решить описанную проблему.
В настоящее время не существует единой классификации ИС, что обусловлено сложностью систем данного типа. В основу дальнейшего рассмотрения положены результаты работы одного из авторов данной статьи по классификации ИС с точки зрения их исторического развития и способности осуществлять поддержку ЛПР [1]. Проведенный анализ показал, что требованию обеспечения интеллектуальной поддержки ЛПР удовлетворяют два класса ИС - экспертные системы и интеллек-