Каталог :: Кибернетика

Курсовая: Создание простейшей нейросети

Элементарная теория процесса обучения нейросетей
Аннотация
Задача представимости функции многих переменных в виде суперпозиции
нескольких функций меньшего числа переменных  поставленная  еще Гильбертом
получила новую жизнь благодаря теореме Хехт-Нильсена “об аппроксимации
функции многих переменных двухслойной однородной нейросетью”. Нейросети на
сегодняшний день являются важным инструментом при решении многих прикладных
задач, а потому представляет большой интерес процесс обучения  сетей. В
работе сделана попытка анализировать этот процесс и представить его
максимально просто и наглядно.
Искусственные (формализованные) нейросети построены по схеме близкой к
естественной нервной системе человека, т.е. достаточно простые структурные
единицы, объединяясь в определенной последовательности, образуют сложную
систему, способную решать огромные классы  задач.
Формализованный нейрон – это математическая модель естественного нейрона
человека. Он включает в себя невырожденные линейные преобразования, а также
некоторую нелинейную функцию, называемую функцией активации, как правило,
сигмоидального типа:
     s =1/(1+ ехр(-a)) ,                                    (1)
где  s - непрерывная, всюду дифференцируемая возрастающая ограниченная
функция. Графически формализованный нейрон (далее просто нейрон) показан на
рис.1:
Рис.1        Схема     формализованного   нейрона.   Х1, Х2,., 
Хn - координаты входного
вектора – исходная информация. Числа w1, w2,., wn – так
называемые веса синапсов (входов нейрона) или сила связи данного входа с
нейроном, b – дополнительный вход, называемый сдвигом, его значения,
как правило, +1, 0. Знак S означает операцию линейных
преобразований. Каждый вход умножается на соответствующий ему вес и все
суммируется, далее полученная величина рассматривается как аргумент функции
(1), значение значение которой является выходом нейрона.
Искусственная нейросеть представляет из себя группу связанных определенным
образом нейронов. Простейший случай – это однослойная нейросеть.
Аналитически ее можно записать следующим образом:
     У=  s(ХW),                                                          (2)
где Х, Y – вектор-строки.
Активационная функция многослойной сети должна быть нелинейной. Если эта
функция будет линейной, легко показать, что любую многослойную сеть можно
свести к однослойной.
В однородной нейросети все нейроны по отдельности выполняют одинаковые
функции. Основным существенным отличием их друг от друга являются веса
синапсов, которые и играют главную роль в работе нейросетей. От правильного
подбора весовых коэффициентов зависит,  корректность  работы сети. Процесс их
подбора и называется обучением.
Процесс обучения можно сравнить с  настройкой.
Известно 2 класса обучающих методов: детерминистские и стохастические.
Детерминистский метод состоит в том, что шаг за шагом осуществляется
процедура коррекции весов сети, основанная на использовании их текущих
значений, а также величин входов и выходов (фактических и ожидаемых).
Стохастические методы по определению предполагают выполнение псевдослучайных
изменений, которые ведут к улучшению результата.
Наиболее распространенным алгоритмом обучения нейросетей является алгоритм
обратного распространения ошибки, основанный на методе градиентного спуска.
Обучение при этом проходит в два этапа. Вначале сеть работает в обычном
режиме, т.е. прямым потоком: на вход подаются начальные данные, и вычисляется
вектор выхода. Затем находят функцию ошибки:
     ,                                        (3)
где yj,p – реальная, а tj,p – ожидаемая j-тая координата выхода,
при подаче на вход р-го образа. А уменьшают ее, напрявляя данные по сети в
обратном порядке, работа проходит через определенные этапы следующим образом:
1.     Подача на вход сети один из возможных образов и в режиме обычного
функционирования нейросети, когда сигнал распространяется от входа к выходу,
рассчет значения последнего.
2.     Рассчет ошибок dN и DwN слоя N.
3.     Рассчет ошибок  dn и Dwn   для всех остальных слоев, n=N-1,.,1.
4.     Корректировка всех весов в сети.
5.     Проверка ошибки сети и переход на шаг 1 или в конец.
Сети на шаге 1 попеременно в случайном порядке предъявляются все образы из
обучающего множества, чтобы сеть не “забывала” одни по мере “запоминания”
других.
Этот алгоритм, после предварительной подготовки, может быть представлен более
наглядно и интерпретирован геометрически.
Пусть Еn – n-мерное евклидово пространство. Множества Х, Y, 
Т – области пространства Еn – множества векторов. Причем, такие что " 
ÎХ $!  соответствующий ему вектор 
ÎT. Y такое что
     = G,                                                                   (4)
где G принадлежит пространству непрерывных операторов. Пусть W -
пространство матриц n´n dim=2, где wÎW 
рассматривается как совокупность вектор-строк, составляющих матрицу w:
                                                                    (w11 w12 .w1n)
(w21 w22 .w2n)                                                       (5)
...
(wn1 wn2 .wnn)
Это делается для геометрической представимости.
Определим вид оператора G½ G: X®Y. Этот
оператор есть ни что иное как суперпозиция двух операторов G = S
°s. Рассмотрим подробнее каждый из составляющих операторов:
1.     Первый оператор:
     S =                                                                           
(6)
Оператор линейных преобразований, где wÎW, x – вектор-столбец из X,
     S – результат умножения – вектор-строка.
В развернутом виде матричное умножение выглядит следующим образом:
        (w11 w12 . w1n)     х1
(w21 w22 .w2n) ´  х2    =||(w11x1+.+w1nxn).(wn1x1+.+wnnxn)|| =S
(7)
...             :
(wn1 wn2 .wnn)    хn
Т.е.
     ,  i=1,.,n.                                              (8)
2.     Второй оператор - нелинейная функция.
Функция s (см. формулу (1)) называется также сжимающей.
Для последующих операций нормализуем вектора множества Х:
     х¢ = х/|х|, где |х| =
, х¢ - нормализованный вектор. Аналогичную операцию произведем над
множеством Т. Поскольку wÎW совокупность вектор-строк,
нормализуем и эти вектора:
     wi : wi = (wi1 wi2 . win ), wi¢ = wi /|wi|.
После нормализации векторов х и wi, вектор S изменит свой вид:
     =wij ¢ xj ¢= wij /|wi| * хj/|х| = wij хj * 1/ |wi||x|, где
1/ |wi||x| = ki =Const. Таким образом,
нормализация векторов х и wi лишь сжимает вектор S
, но не меняет его направления.
Для простоты обозначений, заменим вновь полученные вектора х¢, , wi¢ и S*  соответственно на х, 
t, w и  S. В результате всех преобразований будем иметь
радиус-векторы единичной n-мерной сферы. Пусть для наглядности n =2, тогда весь
процесс можно представить геометрически.
     Овал:                                                                                                       



y
               
Т                                                                         т
s
                                              
w1
w1
                                                 
х                                                                           х
w2
w2
a.                                                                          b.
Рис.2   Радиус-векторы единичной n-мерной сферы, полученные после нормализации
векторов из множеств X, W, T (a). Векторы S и Y,
полученные после всех преобразований (b).
     Х и t – взаимнооднозначная пара векторов из множеств Х и Т
соответственно, эта пара называется обучающей. Кроме того, вектору х
соответствует также вектор уÎY, полученный
“экспериментально”, путем применения изложенных выше преобразований. Задача
обучения состоит в том, чтобы преобразования эти были таковы, что у = 
t, "уÎY, tÎT. А это значит, что все
координаты уj вектора у должны быть равны одноименным
коорданатам вектора t.
Теперь, после того как все вектора  нормализовали линейное преобразование (6)
будет иметь вид:
     Si = wij  xj, i=1,.,n,  где  wij  и xj – координаты новых векторов. Но
     Si – это фактически скалярное произведение векторов wi  и x:
     Si =(wi,х)=|wi||х| Cos ai ,                                                  (9)
где ai – плоский угол между х и wi. Поскольку, |wi|=|х|=1, то
     Si= Cos ai                                                                                                      
(10)
Таким образом, вектор S – это вектор, все координаты которого Cos a
i, i=1,.n, а |S|£ Ön. Получили вектор S, подставим
его в (1) покоординатно в функцию s. Покажем, что векторы S и 
у лежат на одной прямой.
Имеем у= 1/ (1+exp(-s)),  Ехр(-s)=1+(-s)+1/2!(-s)² +1/3!(-s)² (-s)+.
т.е. разложили экспаненту в ряд по степеням (-s).  Этот ряд сходится,
разобьем его на два  подряда, которые также будут иметь предел, как части
сходящегося ряда:
Ехр(-s)=/(2k)!+/(2k+1)!                              (11)
Первое слагаемое  есть Const=C0(s) (за счет четных степеней), а второе
слагаемое –C2(s)s. Получили ехр(-s)=C0(s)-C2(s
)s, поскольку в знаменателе есть еще единица, прибавим ее к C0, получим
C0(s)+1=C1(s). Итак, имеем:
     Y=1/(C1(s)-C2(s))                                                     (12)
Вектор, находящийся в знаменателе - n =  C1(s)-C2(s)
, лежит на одной прямой с  вектором S. Получили (у, n
)=1, а это (в случае, если оба вектора имеют единичную длину, либо длины их
взаимнообратные величины, что также возможно) озночает, что вектора у и 
n совпадают по направлению, т.е. вектор у лежит на одной прямой  с
вектором S. Таким образом процесс обучения нейросети сводится к
“подгону” вектора S под вектор T за счет измнения  углов между
векторами х и wi (рис.2 (b)), поскольку было показано,
что координаты вектора S есть ни что иное, как косинусы этих углов.
На сегодняшний день аппарат нейросетей используется практически во всех
областях науки, экономики и т.д.  Программа нейротомографии была применена к
эксперсс-томографии осесимметричных объектов, которые были изучены с помощью
дискретного моделирования. Результаты работы нейротомографии сравнивались с
результатами, полученными в ходе вычислительного эксперимента. Соответствие
между экспериментом нейротомографии и прямого вычислительного эксперимента
оценивались по различным параметрам правдоподобия.
Рис.3
В данном случае нейротомография используется для реконструкции различных
осесимметричных объектов (b) по единственной радоновской проекции R(s). На
(c) дано сравнение истинного (a) с восстановленным (b).
Было установлено, что нейротомография может быть использована эффективно для
решения различных задач томографии.