ИСПОЛЬЗОВАНИЕ ПСЕВДООБРАЩЕНИЯ В ЗАДАЧАХ ОБУЧЕНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
Сараев П.В.([email protected]) Липецкий государственный технический университет
Введение
В настоящее время искусственные нейронные сети прямого распространения являются мощным инструментом анализа информации различного рода. Прежде чем использовать их для решения каких-либо задач, вначале необходимо произвести их обучение, то есть настроить веса по набору входных данных и соответствующих им указаний учителя. Веса сети определяются таким образом, чтобы минимизировать некоторый функционал качества, оценивающий меру близости указаний учителя и модельных откликов сети, в качестве которого в подавляющем большинстве случаев берется сумма квадратов их отклонений. В такой постановке задача обучения нейронной сети оказывается нелинейной задачей о наименьших квадратах. Для ее решения может применяться богатый аппарат теории оптимизации, что обычно и делается при обучении искусственных нейронных сетей.
Широко распространенные в обучении нейронных сетей методы сопряженных градиентов, хотя и являются эффективным средством решения задач оптимизации, рассчитаны на довольно большой класс оптимизируемых функций, а потому не учитывают то обстоятельство, что в качестве минимизируемого функционала выступает сумма квадратов. Существуют, однако, и методы, принимающие во внимание специфику задачи [1]. Одним из методов данного класса является метод Гаусса-Ньютона, при использовании которого приходится обращать некоторую матрицу. В случае вырожденности матрицы можно прибегнуть к одному из двух способов: использовать регуляризацию, что приводит к методу Левенберга-Маркварта, либо применять механизм псевдообращения [2]. В данной работе рассмотрены возможности использования псевдообратных матриц для обучения искусственных нейронных сетей прямого распространения. Предполагается знакомство читателя с базовыми понятиями теории нейронных сетей (структурой, методом обратного распространения ошибки), оптимизации и псевдообращением.
1 Блочные рекуррентно-итерационные алгоритмы
Рассмотрим т-слойную сеть прямого распространения, учитывая входной слой отдельно, то есть не включая его в т слоев. Пусть у(т,х) - выход сети, зависящий от вектора параметров (весов) т Е Ега и входного вектора х € К1. Без существенного ограничения общности будем предполагать, что выход является скалярным, то есть у(т,х) Е К1. Задачу обучения нейронной сети можно сформулировать следующим образом.
Пусть задано к обучающих пар вход-выход (хг,Ьг),г = 1 ,...,к, хг Е К1 - некоторый входной вектор, а Ьг Е К1 - соответствующий ему выход (указание учителя). Тогда гг(т) = у(т,хг) — Ьг,г = 1 ,...,к - ошибка работы сети на г-ом обучающем при-
мере, а Я(ад) = [ п(ад) г2(ад) ... гк(ад) ]т = у(ад) — Ь - невязка нейронной сети, где у(ад) = [ у(ад,ж1) у(ад,ж2) ... у(ад,жк) ]т - вектор выходов сети на обучающих данных,
а Ь - вектор указаний учителя. Требуется минимизировать квадратичный функционал
к
качества f (ад) = ||Я(ад)||2 = Я(ад)тЯ(ад) = ^ Г2(ад), то есть решить нелинейную задачу о
г=1
наименьших квадратах: найти
ад* = агд шт f (ад). (1)
Алгоритм Гаусса-Ньютона - модификация метода Ньютона, учитывающая квадратичность минимизируемого функционала - может быть получен двумя способами. Суть первого состоит в аппроксимации матрицы Гессе, возникающей в методе Ньютона, путем замены функционала качества f(ад) на его квадратичную модель [3] и дальнейшим применением необходимого условия оптимума. Другой подход к построению подобных методов состоит в предварительной линеаризации функции невязки Я(ад) в окрестности текущей точки адс [1] итерационного процесса решения нелинейной оптимизационной задачи:
Я(ад) и Я(адс) + У^Я(адс)Дад,
здесь У^) - транспонированная матрица Якоби. Задача (1) заменяется линейной: найти
ад* = агд шт ||у(адс) — Ь + У^у(адс)ДИ|2,
где адс - вектор весов на текущей итерации, ад+ - на следующей. В данной записи учтено, что У^Я(ад) = Уту(ад). В соответствии с [4], решение данной задачи (эквивалентное псевдорешению уравнения У^у(адс)Д^ = Ь — у(адс)), с использованием псевдообращения записывается в виде
Дад = (У£ у(адс))+(Ь — у(адс)),ад+ = адс + Дад. (2)
Вывод алгоритма Гаусса-Ньютона опирается на квадратичность функционала. Метод обратного распространения ошибки [3, 5], как хорошо известно, является по существу способом эффективного нахождения градиента минимизируемого функционала по вектору весов, учитывающим суперпозиционный характер сети. Нетрудно заметить, что для вычисления матрицы У^у(^с) может быть применена процедура, аналогичная методу обратного распространения ошибки. При этом процедура построения матрицы Якоби в (2) даже несколько упрощается, в связи с тем, что ищется производная не функционала, а выхода сети.
Дальнейшая реализация алгоритма (2) может быть выполнена без учета структуры сети: вычисляется псевдообратная матрица (У^у(тс))+ с последующей корректировкой весов сети. Однако подход, предложенный в [4], позволяет более полно использовать суперпозиционный характер структуры нейронной сети. В его основе лежит формула блочного псевдообращения матрицы - формула Клайна [2]:
[А В]
где
+
А+(/ — ВЬ) Ь
Ь = С+ + (I — С+С)КВт (А+)т А+(1 — ВС+), С = (I — АА+)В,К = (I + Мт М )-1,М = А+В(/ — С+С).
Формула Клайна может быть использована для рекуррентного нахождения блочной псевдообратной матрицы, что может рекомендоваться преимуществами вычислительного характера, имеющими место при псевдообращения небольших матриц. В [4] были рассмотрены алгоритмы, основанные на блочном псевдообращении, в применении к задачам пошаговой регрессии, связанным с добавлением новых параметров в регрессионную модель. В применении к нейронным сетям разработанные алгоритмы приобретают новые акценты. В то время как в [4] разбиение вектора параметров модели мотивировалось расширением модели путем суперпозиции исходной модели и новых параметров, нейронные сети по своей природе обладают суперпозиционной структурой, позволяющей естественным образом разбивать вектор сети на составные части.
В случае двухслойной сети (т = 2) формула (2) может быть представлена в следующем виде:
= [ ^у(тс)) у(тс)) ]+ (6- уЫ), а с учетом формулы Клайна:
" Дт1
Дт2
где Дт1 - вектор весов 1-го (скрытого) слоя, а Дт2 - вектор весов 2-го (выходного) слоя. Тогда
Дт2 = ¿(6 - у(тс)),
Дт1 = у(тс))+(6 - у(тс) - (У^2у(тс))Дт2).
В принципе, вектор т может быть разбит на подвекторы произвольным образом. Рассмотрим один из вариантов разбиения, позволяющий эффективно организовать процесс добавления новых нейронов, то есть наращивания нейронной сети.
Рассмотрим случай стандартных нейронных сетей. Стандартной сетью прямого распространения, или полутораслойным предиктором, называется сеть с двумя слоями, у которой в скрытом слое у каждого нейрона одна и та же нелинейная функция активации, а в выходном слое, состоящем из одного элемента, имеется только адаптивный сумматор,
то есть его функция активации является линейной. Такая сеть реализует функцию вида
ч I
у(т,х) = Wif (^ х3-). Сети данной структуры, являющиеся универсальными аппрок-
г=1 3=1
симаторами нелинейных непрерывных функций, играют важную роль в мире нейронных сетей.
Предположим, что мы обучаем такую сеть и на определенном шаге обучения понимаем, что данная сеть не способна обеспечить желаемую точность. Возникает необходимость во введении дополнительных весов, что может быть реализовано добавлением нейрона в скрытый слой. Новый нейрон приводит к появлению аддитивной добавки
I
у(т,х) = тд+1/(^ ху), где т = [ тд+1Д тд+1,2 ... т^+у тд+1 ]. В результате
3 = 1
получившаяся сеть будет иметь вид упег(т,гт; х) = у(т,х) + у(т,х). Алгоритм Гаусса-Ньютона с псевдообращением для оптимизации новой сети примет вид:
= [ V'Wупе'т(тс,тс) VWynew(тс,тс) ]+ (6 - у-ег(тс,тс)).
Дт1
Дт2
(^у(тс))+(/ - (У^2у(тс))Ь) I
(6 - У(wc)),
Дт Дт
Благодаря тому, что вводится аддитивная добавка, корректировка весов может быть представлена в следующей форме [4]:
Ди = Ь(Ь — (ис, ис)) = Ь(Ь — у(ис, ис) — у(ис, ис)), (4)
Ди = (Дад)у — (Уш у(ис,ис))+(у(ис,ис) + У1- у(ис,ис)Ди),
где (Ди)у - приращение, полученное для первоначальной сети у(и,х), обозначенное так для отличия его от Ди.
Данные формулы легче понять, если иметь в виду те обстоятельства, что с одной стороны, у нас имеется одна сеть (с выходом упе1 (и,и,ж)), а с другой - то, что она состоит из двух частей: исходной (у(и,х)) и добавочной (у(и,ж)). На каждой итерации обучения производится следующая последовательность действий:
1) определяется вектор (Ди)у, считая, что существует только исходная сеть, а никаких нейронов не добавлялось; при этом никакие веса не корректируются;
2) определяется величина Ди для настройки весов добавленного нейрона (при вычислении которой необходимы, однако, и результаты работы исходной сети);
3) с учетом ранее найденных приращений (Ди)у и Ди рассчитывается величина Ди для настройки весов исходной сети, являющейся теперь частью совокупной сети;
4) вычисляется следующее значение весов [ и+ и+ ].
Следует обратить внимание на следующее: если исходная сеть была полностью обучена (то есть величина коррекции на определенном этапе получилась столь малой, что итерационный процесс обучения был прекращен), при добавлении нового нейрона может возникнуть желание считать, что всегда (Ди)у = 0. Данное предположение является, однако, неверным, так как корректировка весов составной сети осуществляется не после 1-го шага процесса, а после 3-го.
2 Метод Голуба-Перейры
В обучении нейронных сетей стандартной структуры аппарат псевдообращения может получить и другое интересное применение [6, 7]. Определяющим моментом является разделение весов стандартной сети на две части: линейно входящие в модель веса иг,г = 1,..., д, и нелинейно входящие и^-, г = 1,..., п,] = 1,..., /. Как указывалось в [1], задача параметрической идентификации такой линейно-нелинейной модели рассматривалась в [8]. В данной работе мы приведем вывод метода обучения нейронных сетей, использующего линейно-нелинейную структуру стандартной нейронной сети.
Введем следующие обозначения ьг = [ ьг0 ьг1 ... ьц ]т = [ иг0 иг1 ... ]т, г = 1,...,д - вектор весов г-го нейрона скрытого слоя, ь = [ ьт ьт ... ьТ ]т € - совокупный вектор весов скрытого слоя, и = [ и1 и2 ... и ]т = [ и1 и2 ... и ]т -вектор весов выходного нейрона. В приведенных обозначениях функционирование может быть представлено в виде
у(и, ь; х) = ^(ь, х)ти,
где
^(ь,ж)т =[ f(ь1,х) f(ь2,х) ... f(ьг,х) ],
здесь f (vj,x) - выход i-го нейрона скрытого слоя. Так как веса u входят в модель линейно, при минимизации квадратичного функционала f(u,v) = ||Ф(^)и — b||2, Ф(г>) = [ -0(v,x2) ... -0(v,xk) ]T - матрица, построенная из на массиве данных,
то для любого фиксированного v* справедливо следующее:
min f (u, v*)
u
достигается при
u* = Ф^*)+b. (5)
При этом задача минимизации функционала f (u,v) = ||Ф(v)u—b|2 является эквивалентной задаче минимизации
g(v) = ||Ф^)Ф^)+Ь — b||2. (6)
Как видно, можно настраивать лишь нелинейно входящие веса v для минимизации (6), веса u после этого получатся автоматически. Естественно, снижение размерности оптимизационной задачи не получается бесплатно: теперь мы должны оптимизировать более сложную, чем исходная, функцию.
Самая большая трудность при реализации алгоритма обучения состоит в нахождении матрицы Якоби функции H(v) = Ф^)Ф^)+Ь — b = (Ф^)Ф^)+ — I)b по вектору v. Сложность состоит в том, что производную по вектору приходится брать от матрицы Ф^)Ф^)+. К счастью, для этого необязательно переходить в класс кубических матриц, для этого можно использовать обычные блочные матрицы, если воспользоваться операцией 0 тензорного произведения матриц. Так, в общем случае для производной произведения двух матриц по третьей, верна следующая формула [3]:
^ = dB(Ip 0 C) + (Is 0 A)dC = A'(/p 0 C) + (Is 0 A)C',
где B G Rsxp, Ip - единичная матрица порядка p. Производную матрицы по вектору будем рассматривать как производную по вектор-строке, а не по вектор-столбцу. Это связано с характером вычисления матрицы Якоби - там градиенты элементов вектора заносятся в получающуюся матрицу транспонированными - для получения матрицы, а не вектора-столбца. Далее мы не будем указывать аргументы у матриц .
Вначале найдем производную обратной матрицы по вектору(-строке). Так как (ZZ-1)' = Z'(Ip 0 Z-1) + Z(Z-1)' = I' = 0, следовательно,
(Z-1)' = —Z-1Z'(Ip 0 Z-1). (7)
Будем предполагать, что матрица Ф имеет полный столбцовый ранг. В этом случае Ф+ = (ФтФ)-1ФТ. Заметим, что данное предположение не является каким-либо ограничением при реализации нейронных сетей. Дело в том, что матрица Ф будет иметь хотя бы два линейно зависимых столбца, если на всех обучающих примерах хотя бы два нейрона скрытого слоя будут давать всегда одни и те же значения на выходе. А это возможно практически лишь в том случае, когда у этих нейронов все веса будут одинаковыми, но так как далее выходы нейронов скрытого слоя адаптивно суммируются, то оставив лишь один из таких нейронов, мы ничего не потеряем. Итак,
(Ф+)' = [(ФтФ)-1ФТ]' = [(ФтФ)-1]'(Ip 0 Фт) + (ФтФ)-1(ФТ)'.
Учитывая (7), получаем
(Ф+)' = — (ФтФ)-1(Фт)'(/р 0 Ф)(/р 0 (ФтФ)-1 )(/р 0 Фт) —
— (ФтФ)-1ФтФ'(/р 0 (ФтФ)-1)(/р 0 Фт) + (ФтФ)-1(Фт)'.
Используя известное свойство (А0В)(С0Д) = (АС)0(ВД), видим, что (/р0В)(/р0Д) = (/р/р) 0 (ВД) = /р 0 (ВД), и поэтому
(Ф+)' = Ф+Ф+т(Фт)'(/кр — (/р 0 ФФ+)) — Ф+Ф'(/р 0 Ф+).
Но /кр = 1р 0 /к, тогда 4р — (1р 0 ФФ+) = 1р 0 /к — (1р 0 ФФ+) = 1р 0 (1к — ФФ+), а значит,
(Ф+)' = Ф+Ф+т(Фт)'(/р 0 (/к — ФФ+)) — Ф+Ф'(/р 0 Ф+). (8)
В случае, если ранг матрицы Ф меньше ее столбцового и строчного размеров, необходимо использовать скелетное разложение Ф = ВС, где В - матрица полного столбцового, а С - матрица полного строкового ранга. Для В справедлива формула (8), для С можно аналогично вывести формулу
(С+)' = (/к — С +С)(Ст)'(/р 0 (С+)тС+) — С+С'(/р 0 С+). (9)
Известно, что в случае скелетного разложения А+ = С+ В+, а потому используя правило дифференцирования произведения, а также формулы (8) и (9), получается, что
(Ф+)' = Ф+(Ф+)т(Фт)'(/р 0 (/к — ФФ+))+ (10)
+(/к — Ф+Ф)(Фт)'(/р 0 (Ф+)тФ+) — Ф+Ф'(/р 0 Ф+).
Для решения задачи нам нужно знать производную не самой матрицы, а произведения; используя свойство ФФ+Ф+т = Ф+т, получим
(ФФ+)' = (/к — ФФ+)Ф'(/р 0 Ф+) + Ф+т(Фт)'(/р 0 (/к — ФФ+)). (11)
Отметим интересный факт: выражение (11) справедливо и в том случае, если Ф является матрицей полного столбцового ранга! Теперь мы можем найти производную И(ь):
И' = (/к — Ф+)Ф'(/р 0 Ф+Ь) + Ф+т(Фт)'(/р 0 (/к — ФФ+)Ь). (12)
Приведем полностью алгоритм Гаусса-Ньютона-Голуба-Перейры с псевдообращением:
ь+ = ьс + д+(ьс)Р (ьс)Ь, (13)
где
д(ьс) = Р(ьс)(Ф(ьс)')(/р 0 Ф+ (ьс)Ь) + (Ф+(ьс))т(Фт(ьс))'(/р 0 Р(ьс)Ь),
Р (ьс) = /к — Ф(ьс)Ф+(ьс).
3 Синтез методов и их распространение на многослойные сети
Метод Голуба-Перейры можно модифицировать, использовав идею блочного псевдообращения. Так, алгоритм Гаусса-Ньютона для нейронной сети с разделяющимися параметрами и и ь, можно записать в следующей форме:
Дь
Ди
= [ УтУ(ьс, ис) Утис) ] + (Ь — Ус)
или же, что аналогично, как
Ди Дь
[ Уиис) Утис) ] + (Ь — Ус)
Запишем формулу Клайна в более удобном для нас виде:
[ Уиу(ьс,ис) УтУ(ьс,ис) ]
+
[Уи У(ьс,ис)]+(/ — (Ут у(ьс,ис ))Ь) Ь
где матрица Ь определена в (3). Заметим, что Уту(и,ь) = Фт(ь). Как видно, и в формуле Клайна, и в соотношении Голуба-Перейры требуется знать одну и ту же матрицу Ф+. Исходя из этого, определяющее соотношение переменных Голуба-Перейры можно использовать в следующем итерационном алгоритме:
1) г = 0: задается начальный вектор весов ь0, 5 = Уиу(и0,ь0)+ = Ф(ь0)+ и следовательно, и0 = 5Ь (из соотношения Голуба-Перейры);
2) с помощью 5т (используемой для вычисления Ь) находится Дь и модифицируется вектор весов ь» до ь»+1;
3) вычисляется 5 = У^и», ь»+1)+ = Ф(ь»+1)+ и определяется вектор и»+1;
4) если не достигнута заданная точность, полагаем г = г + 1 и переходим к пункту 3. Использование данного алгоритма позволяет:
• двигаться по оптимальной траектории в том смысле, что на каждом этапе выполняется соотношение Голуба-Перейры;
• вместо большой матрицы У[ад^у(и,ь) мы псевдообращаем матрицу Ф(ь) меньшего размера.
Описанные выше блочные рекуррентно-итерационные алгоритмы для обучения нейронных сетей могут быть успешно распространены на многослойные сети. Рассматривая весовой вектор сети как составленный из векторов слоев, шаг алгоритма Гаусса-Ньютона с псевдообращением для оптимизации (2) можно представить в следующем виде:
Ди1
Ди2
Дит
[ У1 У(ис) УЦ2у(ис) ... У1ту(ис) ]+(Ь — у(ис)),
(14)
где = 1,...,т - вектор-столбец весов ¿-го слоя. Псевдообращение такой блочной матрицы производится на базе рекуррентного использования формулы Клайна. Подстройка весов может быть организована в виде последовательной корректировки подвекторов: сначала определяются величина коррекции Дит, затем - Дит-1, используя рассчитанное значение Дит и т.д.
Метод Голуба-Перейры также может быть применен не только к обучению нейронных сетей стандартного вида. Этот метод можно распространить и на многослойные сети с адаптивным суммированием в последнем слое. Функционирование сети данной структуры можно записать в таком виде:
у(и^; ж) = [ут-1 Кх)]ти = ^ Угm-1(v,жK,
г=1
где
[ут-1Кж)]т =[ уГ>,ж) УГ-1Кж) ... ут->,ж)],
т-1
н
т— 1 /
а уГ М - выход ¿-го нейрона т — 1-го слоя. Как видим, структура аналогично структуре стандартной сети. На массиве обучающих данных выходы у™-1(^,ж) образуют все ту же матрицу Ф(г>). Таким образом, метод Голуба-Перейры для обучения стандартных сетей расширяется практически без изменений на область многослойных сетей. Изменения касаются только процесса нахождения производной матрицы Ф(г>) (и, соответственно, Фт(^)) по вектору весов V. В отличие от стандартных сетей, где дифференцирование этих матриц элементарно, в случае многослойных сетей опять приходится применять методику, схожую с методом обратного распространения ошибки.
Конечно, в случае обучения многослойных сетей метод Голуба-Перейры не является столь эффективным, как в случае стандартных. Связано это с тем, что доля линейно входящих весов в многослойных сетях при решении реальных задач обычно невелика по сравнению с количеством весов скрытых слоев.
Рассматриваемый метод Голуба-Перейры может быть использован и в случае, когда функция активации нейрона выходного слоя является нелинейной (вследствие того, что такие функции, как правило, имеют ограниченную область значений, на практике они редко применяются). Функционирование сети такой структуры может быть представлено в виде:
у(и^ ; ж) = ^(ут-1(^,ж)Ти).
На практике в качестве функций активации наиболее часто берется сигмоидная функция вида ^(ж) = 1/(1 + е-х). Одним из ее свойств является то, что она является строго возрастающей, а потому существует обратная к ней функция (у) = — 1п(1/у — 1), определенная, правда, на интервале у € (0,1). Идея состоит в том, чтобы в качестве указаний учителя Ък использовать преобразованные значения ^-1(Ък) (для этого Ък необходимо "нормализовать" для попадания в интервал (0,1)). После этого мы можем считать, что нейронная сеть не содержит нелинейности в выходном нейроне и применять приведенные выше алгоритмы.
4 Некоторые вопросы программной реализации
Рассмотрим получившиеся алгоритмы с точки зрения программной реализации. При организации вычислений блочных рекуррентно-итерационных алгоритмов с применением
формулы Клайна предварительно требуется псевдообратить некоторую матрицу меньших размеров. Для этого (впрочем, как и для обычного обращения) могут быть применены, например, алгоритмы Гревиля, Фаддеева, Р^алгоритм.
При реализации метода Голуба-Перейры для корректировки весов необходимо знать матрицы Ф(ьс), Ф'(ьс) и (Фт(ьс))'. Ф(ьс) - это матрица, каждая строка которой представляет вектор выходов нейронов скрытого слоя, полученный при входном векторе данной обучающей пары. У Ф'(ьс) каждая строка представляет собой составной вектор - производные выходов нейронов скрытого слоя по всем весам скрытого слоя:
/>1,Х1) 0 / >1,^) 0
0 0
0 />2,Х1) 0 / >2,^)
0 0
00 00
/ '(ь1,х1) //(ьг,х2)
_[ /'(гл,ж*) 0 ... 0 ] [ 0 /'(ь2,Жк) ... 0 ] ... [ 0 0 ... /'(ы,^) ]_ у (Фт(ьс))' эти элементарные блоки составляет не строку, а записываются в матрицу:
/'(Ы,Х1) 0 0 />2,^1)
0 0
/'(ы,Х2) 0 0 />2,^)
0 0
//(ь1,хк) 0 0 / >2,^ )
0 0
[ 0 0 ... />1 ,Х1) ] [ 0 0 ... /'(ьг,Х2) ] ... [ 0 0 ... />1 ,Хк) ]
Заметим, что операции транспонирования матрицы по вектору и дифференцирования неперестановочны, то есть (Ф'(ь))т = (Фт(ь))' в обычном смысле этого понятия. В данном случае применяется "блочное" транспонирование. Матрицы Ф'(ь) и (Фт(ь))' получились весьма разреженными. При компьютерной реализации этот факт необходимо учитывать, чтобы уменьшить объем занимаемой памяти и сократить количество лишних операций.
Заключение
Псевдообращение является мощным инструментом решения задач оптимизации, в которых оптимизируемый функционал представляет собой сумму квадратов. Фактически, "псевдообращение" является эквивалентом понятия "метод наименьших квадратов", позволяющее при этом записывать решение задачи о наименьших квадратах в аналитической, а не в алгоритмической форме.
Как показано в данной работе, псевдообращение имеет обширную область применения в обучении искусственных нейронных сетей прямого распространения. Учет структуры минимизируемого функционала, а также структуры самой сети приводит к эффективным алгоритмам настройки весов. Конечно, псевдообращение не является панацеей от всех бед: очень многое зависит от программной реализации алгоритмов, а также и от самой задачи (имеется в виду структура сети, множество обучающих пар, выбор начального вектора весов). Здесь есть следующие пути для дальнейшего развития:
• реализация эффективного способа формирования и хранения матриц;
• выбор эффективных методов псевдообращения в соответствии с решаемой задачей;
• более тесный синтез блочных процедур псевдообращения и взаимозависимостей между весами сети (аналогичное соотношению, используемому в методе Голуба-Перейры);
• исследование псевдообращения матриц, элементы которых является не числами, а функциями.
Выражаю благодарность профессору Блюмину С.Л., под руководством которого выполнена данная работа.
Список литературы
1. Дэннис Дж., Шнабель Р. Численные методы безусловной оптимизации и решения нелинейных уравнений.-М.: Мир, 1988.-440 с.
2. Алберт А. Регрессия, псевдоинверсия и рекуррентное оценивание /Пер. с англ.- М.: Наука, 1977.-224 с.
3. Аведьян Э.Д. Алгоритмы настройки многослойных нейронных сетей //Автоматика и телемеханика.- 1995.- №4.- С. 106-118.
4. Блюмин С.Л., Погодаев А.К. Суперпозиционная регрессия //Журнал вычислительной математики и математической физики.- 1995.- Том 35, №10.- С. 1576-1581.
5. Нейроинформатика/ Горбань А.Н., Дунин-Барковский В.Л., Кирдин А.Н. и др.- Новосибирск: Наука. Сибирское предприятие РАН, 1998.- 296 с.
6. Блюмин С.Л., Сараев П.В. Псевдообращение в обучении искусственных нейронных сетей// Современные проблемы информатизации в непромышленной сфере и экономике: Труды V Международной электронной научной конференции.- Воронеж: ЦентральноЧерноземное книжное издательство, 2000.- С. 112-113.
7. Блюмин С.Л., Сараев П.В. Алгоритм Голуба-Перейры в обучении искусственных нейронных сетей// Нейроинформатика и ее приложения: Материалы VIII Всероссийского семинара. Красноярск: ИПЦ КГТУ, 2000. С. 18-19.
8. Golub G.H., Pereyra V. The Differentiation of Pseudo-Inverses and Nonlinear Least Squares Problems Whose Variables Separate// SIAM J. Num. Anal.- 1973.- V.10,- P.413-432.