Главная страница

Алгоритм увеличения точности нейронных сетей и его приложения


Скачать 3.63 Mb.
НазваниеАлгоритм увеличения точности нейронных сетей и его приложения
Дата24.06.2022
Размер3.63 Mb.
Формат файлаpdf
Имя файлаdiss_avrutskiy.pdf
ТипДиссертация
#613262
страница2 из 13
1   2   3   4   5   6   7   8   9   ...   13
1.1. Биологические нейроны
Выживание у достаточно сложных живых организмов практически целиком основано на анализе окружающего мира и принятии решений, и эта функция целиком возложена на центральную нервная систему (ЦНС). У млекопитающих она состоит из двух специализиро- ванных отделов: низшего и среднего, которые управляют отдельными органами и системами,
и высшего отдела, который управляет организмом как едиными целым и способен прини- мать решения на основе совокупной информации от органов чувств. Высший отдел ЦНС
состоит преимущественно из коры больших полушарий, которая у человека занимает более
80% объема мозга. Схематичный разрез этой структуры представлен на Рисунке 1.1.1.
Основным её элементом являются нейроны - особые клетки, состоящие из тела (сомы)
и отростков двух типов - аксонов и дендритов. Аксоны представляют собой длинные миели- низированные нервные волокна
1
, которые отходят в стороны и прикрепляются к дендритам других нейронов с помощью синапсов. Аксон у нейрона один, однако, его окончание может иметь множество синапсов, а один нейрон через разветвленные дендриты может принимать сигналы от множества аксонов. В нормальном состоянии нейрон имеет отрицательный потен- циал порядка -65мВ относительно своего окружения. При возбуждении синаптической свя- зи, в дендрите нейрона открываются ионные каналы, которые в зависимости от типа могут пропускать внутрь клетки положительные либо отрицательные ионы. Количество каналов также может быть различным
2
. Если положительный заряд попадает в клетку достаточно быстро и её суммарный потенциал достигает отметки порядка -55мВ, то по всей клеточ- ной мембране открываются потенциал-зависимые натриевые каналы. Они пропускают ионы
Na
+
внутрь клетки, что ещё более резко повышает её потенциал. У длинного отростка –
аксона при этом сначала открываются каналы у основания, а затем, из-за сопутствующего
1
скорость распространения сигнала по таким волокнам на порядок больше, чем без миелиновой оболочки
2
движение ионов обуславливается не только зарядом, но и концентрацией, кроме того, в клетке присутствуют механизмы их принудительного транспорта

11
Рис. 1.1.1. Сечение коры головного мозга повышения потенциала, соседние с ними каналы, и так далее. Таким образом возникает вол- нообразный процесс открытия каналов, который передается вдоль по аксону в конце концов достигает всех синапсов данного аксона и активирует их. За этой волной следует процесс реполяризации, который приводит нейрон изначальное состояние.
Кора содержит порядка 12 миллиардов нейронов. На левой части Рисунка 1 показа- но, как она будет выглядеть если окрасить все миелинизированные нервные волокна, а на правом - если окрасить небольшое случайное количество нейронов. В коре можно увидеть шесть различных слоёв, хотя некоторые её части могут имеют только три слоя. Каждый слой характеризуется типом встречающихся в нем нейронов и типом связей. Первый слой носит название «молекулярный», содержит крайне мало собственных нейронов и практиче- ски целиком состоит из аксонов, связывающих между собой различные частей коры (в том числе и полушария мозга). Реципиенты этих аксонов в основном находятся в слоях II и III,
а отправители в слое III, который так же содержит нейроны с вертикальными аксонами.
Слои IV, V, VI находятся ближе к древним частям ЦНС и связаны с ними. IV принимает сигналы от таламуса, V передает сигналы в кортикоспинальный тракт, а слой VI переда- ет и принимает сигналы от таламуса. Из Рисунка 1.1.1 видно, что заметная часть нервных волокон связывает нейроны в пределах одного слоя. Однако, как соседние, так и более от- даленные слои также связаны друг с другом. Результаты работы ЦНС закодированы через временные последовательности поляризующихся нейронов, которые через периферическую нервную систему контролируют остальной организм.

12 1.2. Искусственные нейронные сети
Итак, мы кратко очертили строение высшей нервной системы и нам точно известно,
что она способна решать относительно сложные задачи вроде классификации изображений.
Однако вся совокупность нейронов, действующих друг на друга через синаптические свя- зи, которые создают микротоки, от интеграла которых зависит возбуждение конкретного нейрона – это довольно сложная система, моделирование которой само по себе непростая задача [47–51]. Было предпринято множество попыток [52–54] создать упрощенную мате- матическую модель, которая обладала бы схожими вычислительными свойствами. Изложим лишь ту, что будет использована в данной работе – многослойный персептрон. Как следует из названия, он так же состоит из слоёв, подобных тем, что встречаются в коре головного мозга. Модель основана на нескольких упрощениях. Первое касается характера связей ней- ронов – мы предполагаем, что взаимодействуют друг с другом только соседние слои, причем каждый нейрон принимает информацию от всех нейронов предыдущего и передает её на все нейроны последующего слоя. Мы так же выбросим связи нейронов самих с собой
3
, так что теперь сигнал может распространяться только в одном направлении. К этому мы до- бавляем упрощение временной зависимости – будем считать, что все нейроны каждого слоя передают сигналы одновременно и мгновенно. Вместо интегрирования токов теперь можно считать, что каждый нейрон суммирует все поданные на него сигналы. Вместо количества открываемых каналов, каждой синаптической связи поставим в соответствие действительное число, на которое будет умножаться передаваемый сигнал. Согласно биологической модели,
нейрон должен работать в режиме «всё или ничего» – вместо этого предположим, что его выход монотонно возрастает в зависимости от входа, и имеет конечные пределы при
±∞
Это упрощение можно рассматривать как усреднение количества активаций по времени. В
результате мы получаем модель многослойного персептрона. На нейроны его первого слоя нужно подать некоторые значения, а результатом работы сети будут значения выходов ней- ронов последнего слоя. Несмотря на то, что в построенной модели едва ли осталось сходство с биологической нейронной сетью, она не только может справляться с задачами схожими с теми, что решает ЦНС, но и довольно универсальна с математической точки зрения.
1.2.1. Теоремы существования. Можно задаться вопросом – является ли способность биологических нейронных сетей решать повседневные задачи следствием “простоты” самих задач или же вычислители, собранные из комбинации простых элементов сами по себе до- статочно универсальны. Математически это можно сформулировать так – достаточно ли комбинаций простых одномерных функций для построения произвольных отображений в многомерных пространствах? Схожим, но более частным случаем вопроса является 13-я проблема Гильберта – можно ли представить решение уравнения седьмой степени (которое может быть представлено как функция трех переменных) в виде суперпозиции функций от двух переменных.
3
такой тип связи участвует в создании ритма бега лошадей – подавая сигнал сам на себя, нейрон получит его с определенной задержкой, создавая таким образом несущую частоту

13
Утвердительный ответ на этот вопрос получил Колмогоров в 1957 году [55] в виде более общей теоремы – для непрерывной функции
𝑓
в пространстве размерности
𝑁 ≥ 2
справедливо
𝑓 (𝑥
1
, . . . , 𝑥
𝑁
) =
2𝑁 +1
∑︁
𝑞=1
𝜑
𝑞
(︃
𝑁
∑︁
𝑝=1
𝜓
𝑝𝑞
(𝑥
𝑝
)
)︃
Равенство выполняется в единичном кубе. Монотонные непрерывные отображения
𝜓
𝑝𝑞
за- висят только от размерности пространства, а
𝜑
𝑞
зависят от конкретной функции
𝑓
. Такая конструкция весьма далека от многослойного персептрона, в котором нейроны имеют вполне определенную (а часто и одинаковую) функцию активации, тогда как функции
𝜑
𝑞
,
𝜓
𝑝𝑞
в об- щем случае не универсальны и довольно сложны. Однако, для приложений вместо точного равенства подойдёт и произвольно малая ошибка, и такого послабления оказывается до- статочно. В начале девяностых годов двадцатого века были опубликованы статьи [56, 57]
содержащие теоремы о существовании для персептронов с фиксированными функциями. В
первой работе доказательство опиралось на теорему Вейерштраасса – Стоуна, а во втором на теорему Колмогорова, которая была применена для конкретного вида нейронной сети.
Сперва рассмотрим [57]. В ней речь идет о персептроне с двумя скрытыми слоями. Запишем его в символьном виде как преобразование входного вектора

𝑥
:
𝑣(⃗
𝑥) = 𝑡 +
∑︁
𝛾
𝑊
𝛾
𝜎


𝑡
𝛾
+
∑︁
𝛽
𝑊
𝛾𝛽
𝜎
(︃
𝑡
𝛽
+
∑︁
𝛼
𝑊
𝛽𝛼
𝑥
𝛼
)︃


(1.2.1)
Здесь индексами
𝛼
,
𝛽
,
𝛾
обозначены величины связанные со входным, первым и вторым скрытым слоем соответственно. Так, матрица
𝑊
𝛽𝛼
связывает нейроны входного и первого слоя. В суммированиях
𝛼
пробегает по компонентам входного вектора

𝑥
, а
𝛽
по нейронам первого скрытого слоя. Количество элементов, перечисляемых индексом, будем обозначать с помощью модуля, то есть
|𝛼|
это размерность вектора

𝑥
, а
|𝛽|
– число нейронов в пер- вом скрытом слое. Отображение
𝑣
задается тремя матрицами
𝑊
𝛽𝛼
,
𝑊
𝛾𝛽
и
𝑊
𝛾
(так как выход состоит из одной компоненты, последняя матрица вырождается в столбец) и тремя векторами сдвига
𝑡
𝛽
,
𝑡
𝛾
,
𝑡
(последний вектор аналогично вырождается в скаляр). Скалярная функция
𝜎
действует независимо на каждую компоненту своего аргумента. Предполагается что
𝜎 (∞) = 1
,
𝜎 (−∞) = 0
,
𝜎

> 0
. Для удобства, величины, поступающие на вход нейронов некоторого слоя и к которым далее применяется нелинейное преобразование
𝜎
, будем назы- вать вектором “активности” этого слоя и обозначать буквой
𝑧
с тем же греческим индексом,
который использовался для нейронов. Для первого и второго скрытого слоя соответственно:
𝑧
𝛽
= 𝑡
𝛽
+
∑︁
𝛼
𝑊
𝛽𝛼
𝑥
𝛼
,
(1.2.2)
𝑧
𝛾
= 𝑡
𝛾
+
∑︁
𝛽
𝑊
𝛾𝛽
𝜎
(︀𝑧
𝛽
)︀ .
(1.2.3)

14
x
α
z
β
z
γ
ν
Рис. 1.2.1. Схематичная структура персептрона с двумя скрытыми слоями
1.2.1 для случая
|𝛼| = 2
,
|𝛽| = 4
,
|𝛾| = 4
Для выхода:
𝑣 = 𝑡 +
∑︁
𝛾
𝑊
𝛾
𝜎 (𝑧
𝛾
) .
(1.2.4)
Схематичное изображение нейронной сети со входом размерности 2 и четырьмя нейронами в скрытых слоях приведено на Рисунке 1.2.1. Основной результат [57] состоит в том, что кон- струкция (1.2.1) является универсальным аппрокисматором. В работе также указана оценка количества нейронов в скрытых слоях, которого будет достаточно для достижения заданной точности. Это количество также зависит от самой функции и от размерности пространства.
Опубликованная незадолго до этой работы статья [56] содержала аналогичный результат, но для сети с одним скрытым слоем. Это означает, что конструкция (1.2.1) в некотором смысле является избыточной, однако с практической точки зрения она оказывается крайне важна.
Дело в том, что аппроксимационная способность нейронной сети в большей степени зависит от общего числа настраиваемых параметров: весов и векторов сдвига. Предположим, что для некоторой функции одного переменного их понадобилось
10 4
. Тогда сеть с одним скрытым слоем будет описываться двумя матрицами
1 × 3333
и
3333 × 1
и одним вектором сдвига длины
3333
. Сеть с двумя скрытыми слоями будет иметь три матрицы:
1 × 98
,
98 × 98
и
98 × 1
, и два вектора длины 98. Аппроксимационная способность у этих двух сетей будет сравнима, однако между ними есть одно важное отличие. Дело в том, что основной успех ней- ронные сети получили после того, как стали доступны быстрые параллельные вычисления на графических ускорителях, сокращённо GPU (Graphics Processing Unit). Из-за зависимо- сти аппаратной эффективности GPU от размера матриц, время обучения первой сети будет примерно на порядок больше, чем для второй. Кроме того, конструкция нейронной сети с двумя скрытыми слоями с помощью выражения (1.2.3) легко обобщается на произвольное число слоев. Для задач классификации были продемонстрированы преимущества сетей, со- держащих десятки [58] или даже сотни слоёв [59], а значит рассуждения, справедливые для сетей произвольной длинны имеют большую практическую значимость. Упомянем также

15
-4
-2 0
2 4
0.0 0.2 0.4 0.6 0.8 1.0
x
σ

(x)
σ(x)
Рис. 1.2.2. График логистической сигмоиды
1/ (1 + 𝑒
−𝑥
)
и её производной статью [60], содержащую утверждение о том, что нейронная сеть с одним скрытым слоем может произвольно точно аппроксимировать не только саму функцию, но и её производную.
Для сетей произвольной длинны достаточно переписать формулу (1.2.3) для двух соседних слоёв с индексами
𝜃
и
𝜅
и рассматривать последовательное её применение с соот- ветствующими матрицами весов и векторами сдвига
𝑧
𝜃
= 𝑡
𝜃
+
∑︁
𝜅
𝑊
𝜃𝜅
𝜎 (𝑧
𝜅
) .
(1.2.5)
Частный случай
𝜎 (𝑥) = 𝑥
дает нам формулу (1.2.2), а если размерность выхода равна
1, то индекс
𝜃
можно не писать, и мы получаем формулу (1.2.4). В данной работе будет использоваться логистическая сигмоида
𝜎 (𝑥) = 1/ (1 + 𝑒
−𝑥
)
, представленная на Рисунке
1.2.2.
1.2.2. Обратное распространение ошибки. Несмотря на то, что аппроксимационные теоремы гарантируют существование весов, при которых нейронная сеть реализует отобра- жение с достаточной точностью, эти теоремы не являются конструктивными, то есть не опи- сывают способа нахождения этих весов. Современные алгоритмы поиска параметров много- слойного персептрона основываются в первую очередь на численной минимизации «ошибки»
- меры отклонения нейронной сети от целевой функции, вычисленной на некотором наборе точек, называемых тренировочным множеством. В основе таких алгоритмов лежит вычис- ление градиента ошибки, описанное в 1988 году [61].
Рассмотрим некоторое начальное состояние сети
𝑊 (0)
,
𝑡 (0)
, под которым будем пони- мать полный набор весов и сдвигов соответственно (для алгоритма все параметры являются равноправными, поэтому их индексы не важны). Пусть скалярная функция
𝑓
известна на некотором наборе точек

𝑥
𝑎
,
𝑎 ∈ [1, 𝑀 ]
, также называемых «паттернами». Если в каждой точке определить заведомо положительную и дифференцируемую ошибку, например как

16
квадрат разности
𝑒 (⃗
𝑥) =
1 2
(︁
𝑣 (⃗
𝑥) − 𝑓 (⃗
𝑥)
)︁
2
,
(1.2.6)
то задачу аппроксимации можно при некоторых допущениях свести к минимизации глобаль- ной ошибки
𝐸 =
∑︁
𝑎
𝑒 (⃗
𝑥
𝑎
)
по всем параметрам нейронной сети
𝑊, 𝑡 = arg min 𝐸.
Если знать градиенты
𝜕𝐸/𝜕𝑊
и
𝜕𝐸/𝜕𝑡
, то можно построить итерационную процедуру:
𝑊 (𝑛 + 1) = 𝑊 (𝑛) − 𝜇
𝜕𝐸
𝜕𝑊 (𝑛)
,
𝑡 (𝑛 + 1) = 𝑡 (𝑛) − 𝜇
𝜕𝐸
𝜕𝑡 (𝑛)
,
причем при достаточно малом
𝜇
, ошибка
𝐸
сети в состоянии
𝑊 (𝑛 + 1)
,
𝑡 (𝑛 + 1)
будет заве- домо меньше, чем при
𝑊 (𝑛)
,
𝑡 (𝑛)
. При определенных условиях гарантируется сходимость к некоторому локальному минимуму [62].
Опишем алгоритм вычисления
𝜕𝐸/𝜕𝑊
,
𝜕𝐸/𝜕𝑡
для сети, определяемой формулами
(1.2.2
), (
1.2.3
), (
1.2.4). В силу линейности градиента, можно рассмотреть только локальную ошибку
𝑒
. Выражение
𝜕𝐸/𝜕𝑊
будет равно сумме
𝜕𝑒/𝜕𝑊
по всем
𝑎
. Вычисления начнем с конца – ошибка (1.2.6) явно зависит только от выхода нейронной сети
𝑒 = 𝑒(𝑣)
. Её произ- водная по
𝑣
есть
𝜕𝑒
𝜕𝑣
= (𝑣 − 𝑓 ) ,
(1.2.7)
а производная по сдвигу
𝑡
последнего слоя, очевидно
𝜕𝑒
𝜕𝑡
=
𝜕𝑒
𝜕𝑣
Рассмотрим замену переменных
𝑒 (𝑣) → 𝑒 (𝑊
𝛾
)
. Пользуясь формулой для преобразования градиента, запишем
𝜕𝑒
𝜕𝑊
𝛾
=
𝜕𝑒
𝜕𝑣
𝜕𝑣
𝜕𝑊
𝛾
Член
𝜕𝑣/𝜕𝑊
𝛾
вычисляется с помощью (1.2.4). Здесь и далее мы будем при необходимости писать штрих у индексов суммирования чтобы избежать их повторения:
𝜕
𝜕𝑊
𝛾
𝑣 =
𝜕
𝜕𝑊
𝛾


𝑡 +
∑︁
𝛾

𝑊
𝛾

𝜎
(︁
𝑧
𝛾

)︁


= 𝜎 (𝑧
𝛾
) .
(1.2.8)

17
Следовательно,
𝜕𝑒
𝜕𝑊
𝛾
= (𝑣 − 𝑓 ) 𝜎 (𝑧
𝛾
) .
Для вычисления градиента по весам между последним и предпоследним слоем рассмотрим замену
𝑒 (𝑧
𝛾
) → 𝑒
(︀𝑊
𝛾𝛽
)︀
:
𝜕𝑒
𝜕𝑊
𝛾𝛽
=
∑︁
𝛾

𝜕𝑒
𝜕𝑧
𝛾

𝜕𝑧
𝛾

𝜕𝑊
𝛾𝛽
(1.2.9)
Здесь правый сомножитель есть градиент ошибки
𝑒
по активностям нейронов предпоследнего слоя
𝑧
𝛾

. Он получается из замены
𝑒 (𝑣) → 𝑒
(︁
𝑧
𝛾

)︁
:
𝜕𝑒
𝜕𝑧
𝛾

=
𝜕𝑒
𝜕𝑣
𝜕𝑣
𝜕𝑧
𝛾

,
в которой
𝜕𝑣/𝜕𝑧
𝛾

находится путём дифференцирования формулы (1.2.4)
𝜕𝑣
𝜕𝑧
𝛾

=
𝜕
𝜕𝑧
𝛾

[︃
𝑡 +
∑︁
𝛾
𝑊
𝛾
𝜎 (𝑧
𝛾
)
]︃
= 𝑊
𝛾

𝜎

(︁
𝑧
𝛾

)︁
(1.2.10)
Сомножитель
𝜕𝑒/𝜕𝑣
уже был вычислен. Второй сомножитель в (1.2.9) находится аналогично
(1.2.8) (здесь
𝛿
𝛾

𝛾
есть символ Кронекера):
𝜕
𝜕𝑊
𝛾𝛽
𝑧
𝛾

=
𝜕
𝜕𝑊
𝛾𝛽


𝑡
𝛾

+
∑︁
𝛽

𝑊
𝛾

𝛽

𝜎
(︁
𝑧
𝛽

)︁


= 𝜎
(︀𝑧
𝛽
)︀ 𝛿
𝛾

𝛾
(1.2.11)
Таким образом, выражение (1.2.9) принимает вид
𝜕𝑒
𝜕𝑊
𝛾𝛽
=
∑︁
𝛾

𝜕𝑒
𝜕𝑧
𝛾

(︀𝜎 (︀𝑧
𝛽
)︀ 𝛿
𝛾

𝛾
)︀ =
𝜕𝑒
𝜕𝑧
𝛾
𝜎
(︀𝑧
𝛽
)︀ .
Градиент
𝑒
по параметрам сдвига, очевидно
𝜕𝑒
𝜕𝑡
𝛾
=
𝜕𝑒
𝜕𝑧
𝛾
(1.2.12)
Для матрицы между входным и первым скрытым слоем можно записать
𝜕𝑒
𝜕𝑊
𝛽𝛼
=
∑︁
𝛽

𝜕𝑒
𝜕𝑧
𝛽

𝜕𝑧
𝛽

𝜕𝑊
𝛽𝛼
(1.2.13)
Где
𝜕𝑧
𝛽

/𝜕𝑊
𝛽𝛼
аналогичен (1.2.11), но без нелинейной функции активации
𝜕𝑧
𝛽

𝜕𝑊
𝛽𝛼
= 𝑥
𝛼
𝛿
𝛽

𝛽

18
Величина
𝜕𝑒/𝜕𝑧
𝛽

выражается через
𝜕𝑒/𝜕𝑧
𝛾
с помощью замены
𝑒 (𝑧
𝛾
) → 𝑒
(︁
𝑧
𝛽

)︁
:
𝜕𝑒
𝜕𝑧
𝛽

1   2   3   4   5   6   7   8   9   ...   13


написать администратору сайта