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

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


Скачать 3.63 Mb.
НазваниеАлгоритм увеличения точности нейронных сетей и его приложения
Дата24.06.2022
Размер3.63 Mb.
Формат файлаpdf
Имя файлаdiss_avrutskiy.pdf
ТипДиссертация
#613262
страница4 из 13
1   2   3   4   5   6   7   8   9   ...   13

26 0
200 400 600 800 1000 0.000 0.005 0.010 0.015 0.020 0.025
эпоха
ϵ
трен(64)
тест(64)
трен(160)
тест(160)
Рис. 1.2.8. Данные без шума, обучение сетей с
2 · 10 4
и
1.3 · 10 5
параметрами на 81 точках.
В существовании максимального шага, при котором тестовая ошибка не будет силь- но отличаться от тренировочной, можно убедиться следующим образом – будем постепенно увеличивать шаг обучающей сетки. Сперва, кроме небольшого увеличения
𝑟
никаких прин- ципиальных изменений не произойдет, однако затем, при обучении на 36 точках, сеть с
2 · 10 4
параметрами достигнет тренировочной ошибки порядка машинного нуля
𝜖 ∼ 10
−7
. При этом ошибка на тестовом множестве будет иметь порядок
10
−3
. В случае сети с
1.4 · 10 3
весами аналогичная ситуация повторится для сетки с 25 точками. Аналогичный результат мож- но пронаблюдать, если количество точек оставить неизменным, а увеличивать размерность пространства (при этом, конечно, сетка перестанет быть равномерной). Таким образом, в пространствах малой размерности можно строить сетки которые достаточно плотно
5
покры- вают всю область аппроксимации, причём количество весов может намного превышать число тренировочных точек.
Упомянем также влияние архитектуры сети на аппаратную эффективность. Сеть с
2 · 10 4
параметрами и одним скрытым слоем будет иметь конфигурацию
2 × 5264 × 1
и ха- рактерное время обучения
∼ 10
минут
6
, за которое достигается ошибка
∼ 3 · 10
−3
, тогда как сеть с тем же числом параметров, но с двумя скрытыми слоями будет иметь конфигурацию
2, 142, 142, 1
и её время обучения до аналогичной ошибки
∼ 30
секунд. Теперь попробуем увеличить число параметров с
2·10 4
до
1.3·10 5
(160 нейронов на скрытый слой) и посмотрим на результат обучения (Рисунок 1.2.8). Как видно из графиков, это не привело к уменьшению ошибки на тестовом множестве, а в конце обучения
𝑟 = 32
. Однако, если уменьшить шаг с
1/8
до
1/17
, и повторить эксперимент, получим Рисунок 1.2.9, из которого видно, что теперь
𝑟 ∼ 1
. Эксперименты в других размерностях показали, что важна именно плотность точек,
а не их абсолютное количество. В стандартных нейросетевых задачах невозможно не только измельчение шага сетки, но и построение равномерной сетки как таковой. Действительно,
даже две точки по каждому измерению дадут
2
𝑁
∼ 2 3000
в случае цветных изображений
5
конкретная плотность зависит также и от аппроксимируемой функции
6
использовался GPU NVIDIA RTX 2060

27 0
200 400 600 800 1000 0.000 0.005 0.010 0.015 0.020 0.025
эпоха
ϵ
трен(160x81)
тест(160х81)
трен(160х324)
тест(160х324)
Рис. 1.2.9. Данные без шума, обучение сетей с
2 · 10 4
и
1.3 · 10 5
на 324 точках.
Толщина слоёв Количество весов Количество точек Точность
16 1441 36 9 · 10
−3 64 21 121 81 3.2 · 10
−3 160 129 601 324 3.3 · 10
−4 1600 12 816 001 2025 7 · 10
−5
Таблица 1. Сравнение аппроксимационных способностей нейронных сетей разной «толщины».
30 × 30
. Можно задаться вопросом – что будет если увеличивать количество точек и число весов далее. Для ответа рассмотрим сети разной «толщины», а шаг обучающего множества всегда будем выбирать так, чтобы
𝑟 ∼ 1
. Результаты обучения после 1000 эпох RProp приве- дены в Таблице 1. Как можно видеть, прирост точности не вполне оправдывает увеличение количества весов. На примере последней строчки можно отметить, что эффективнее будет хранить данные о значениях функции в виде массива – так точность будет порядка ма- шинной, тогда как огромная нейронная сеть отстает от неё на два порядка. Оказывается,
что ошибка
∼ 10
−4
вообще является характерной для многослойных персептронов, аппрок- симирующих функции с производными порядка единицы на областях с размером порядка единицы [16, 20, 25–29, 46]. Как и в данном примере, существенно уменьшить её не удается ни увеличением числа точек, ни увеличением числа весов, ни изменением параметров ал- горитма градиентного спуска. Это обстоятельство снижает практическую пользу глубоких нейронных сетей для задач малой размерности.
1.2.4. Решение дифференциальных уравнений. Обратимся к решению дифферен- циальных уравнений. Количество наблюдаемых явлений, описываемое такими уравнениями огромно. Так как точные решения удается отыскать лишь в малом наборе случаев [72–82],
приближенные [78–82] и численные [38–42, 83–85] методы имеют большое практическое

28
значение. Любой численный алгоритм располагает конечными ресурсами и должен скон- струировать решение с помощью некоторого числа рациональных параметров. Так, в методе конечных разностей искомая функция описывается с помощью набора значений на сетке. В
методе конечных элементов область решения разбивается на ячейки, внутри которых опре- делена достаточно простая функция, например полином, коэффициенты которого опреде- ляются в процессе решения. В данном параграфе мы рассмотрим нейросетевой метод реше- ния дифференциальных уравнений [16–31, 34–37]. Персептрон, определяемый формулами
(1.2.2), (1.2.5) и (1.2.4), является гладкой функцией своих переменных, а класс гладкости совпадает с
𝜎 (𝑥)
, то есть в нашем случае
𝐶

. Задача о вычислении производных нейронной сети подробно разобрана в Главе 4. Отметим лишь, что также можно воспользоваться спо- собами типа автоматического дифференцирования [86], либо, если порядок производной не слишком велик, вычислять их конечными разностями. В этом параграфе мы предполагаем,
что необходимые алгоритмы нам уже известны.
Рассмотрим краевую задачу для нелинейного уравнения Пуассона
Δ𝑢 − 𝑢
2

3 2
𝑢
3
= 0,
(1.2.19)
Γ : 𝑥
2 1
+ 𝑥
2 2
≤ 1,
𝑢|
𝜕Γ
= −2.
(1.2.20)
Её точное решение есть
𝑢
a
=
4 3 − 𝑥
2 1
− 𝑥
2 2
Опишем процедуру построения численного решения. Если нейронную сеть
𝑣 (𝑥
1
, 𝑥
2
)
ини- циализировать и подставить в уравнение (1.2.19), то в каждой точке внутри области будет существовать невязка
𝑉 (𝑥
1
, 𝑥
2
) = Δ𝑣 − 𝑣
2

3 2
𝑣
3
,
причем
𝑉 ∈ 𝐶

На границе не будет выполняться (1.2.20), и следовательно не равно нулю выражение
𝐺 (𝑥
1
, 𝑥
2
) = 𝑣 − (−2) .
Для поиска решения краевой задачи нужно составить сетку из точек двух типов:

𝑥
𝑎
,
𝑎 ∈
[1, . . . , 𝑀 ]
внутри области, для которых минимизируется
𝑉
2
, и

𝑥
𝑏
,
𝑏 ∈ [1, . . . , 𝑀

]
на грани- це, для которых минимизируется
𝐺
2
. Первое множество создадим как равномерную сетку внутри квадрата
[−1, 1]
2
шагом
𝜆
, из которой выбросим точки, не принадлежащие
Γ
. В ка- честве краевой сетки возьмем точки на окружности с угловым интервалом
𝜙 = 𝜆𝜋/2
. Тогда суммарную ошибку можно записать как
𝐸 =
𝑀
∑︁
𝑎=1
𝑉
2
(⃗
𝑥
𝑎
) + 𝑐
𝑀

∑︁
𝑏=1
𝐺
2
(⃗
𝑥
𝑏
) .

29 0
200 400 600 800 1000 0.000 0.005 0.010 0.015 0.020 0.025
эпоха
ϵ
невязка г.у.
ошибка
Рис. 1.2.10. Решение дифференциального уравнения. Среднеквадратичные:
невязка, нарушение граничного условия и отклонение от точного решения.
Множитель
𝑐
должен сбалансировать суммарный «вес» точек на области и границе, количе- ство которых пропорционально
1/𝜆
2
и
1/𝜆
соответственно. В идеале он должен максимизи- ровать точность и зависит от того, насколько задача чувствительна к невязке и к граничным условиям. Его вычисление нетривиально, и для простоты мы положим, что граничные усло- вия и невязка «одинаково важны», то есть
𝑐 = 𝑀/𝑀

. Количество точек в сетке выберем так, чтобы переобучение не происходило. В данном случае после 1000 эпох удается достичь
𝑟 = 1.1
при
𝑀 + 𝑀

= 1208
точках и
𝜆 = 2/37
. Результаты обучения показаны на Рисунке
1.2.10. Отклонение от
𝑢
a
, как и нарушение граничного условия, нормированы на дисперсию решения
𝑢
a
. Для невязки нормировочный множитель не вполне определен – можно лишь предположить, что он зависит от характерной величины членов в уравнении (1.2.19), ко- торые нейронная сеть пытается сбалансировать. Так как все величины в этом выражении имеют порядок единицы, мы не стали вводить дополнительных нормировочных множителей.
Видно, что как невязка, так и отклонение от точного решения лежат в тех же пределах, что и ошибка при классическом обучении. Таким образом, нейронная сеть может с одинаковым успехом минимизировать как обычную ошибку в виде отклонения от целевой функции, так и более сложные выражения, содержащие производные сети по компонентам входа.
Опишем метод [23], позволяющий значительно увеличить точность решения с помо- щью граничного условия. Он состоит в использовании замены функции
𝑢 → 𝑤
𝑢 = 𝑤 · 𝜑 + 𝜌,
(1.2.21)
где
𝜑
и
𝜌
это фиксированные гладкие функции, удовлетворяющие условиям:
𝜑|
𝜕Γ
= 0,
𝜌|
𝜕Γ
= −2.

30
Формально, никаким другим условиям они удовлетворять не обязаны, однако от их кон- кретного выбора может зависеть обучающее множество. А именно – все области больших градиентов
𝑤
,
𝜑
,
𝜌
должны быть правильно разрешены сеткой. В нашем случае можно по- добрать простые выражения так, чтобы они вообще не содержали таких областей:
𝜑 =
(︀1 − 𝑥
2 1
− 𝑥
2 2
)︀ , 𝜌 = −2.
После замены, уравнение приобретает вид:
(︀1 − 𝑥
2 1
− 𝑥
2 2
)︀ Δ𝑤 − 4𝑥
𝜕𝑤
𝜕𝑥
− 4𝑦
𝜕𝑤
𝜕𝑦
− 4𝑤−

(︀𝑤 · (︀1 − 𝑥
2 1
− 𝑥
2 2
)︀ − 2)︀
2

3 2
(︀𝑤 · (︀1 − 𝑥
2 1
− 𝑥
2 2
)︀ − 2)︀
3
= 0.
(1.2.22)
Точное решение есть
𝑤 =
2 3 − 𝑥
2 1
− 𝑥
2 2
Если наложить условие аналитичности на
𝑢
𝑢 (𝑥
1
, 𝑥
2
) =

∑︁
𝑖,𝑘=0
𝑥
𝑖
1
𝑥
𝑘
2
𝑖!𝑘!
𝐶
𝑖𝑘
,
то для выполнения граничного условия достаточно потребовать конечности
𝑤
на границе.
С точки зрения единственности ничего не изменилось, однако все
𝑤
кроме искомого теперь обращаются в бесконечность на границе. Содержательная часть такой замены в том, что нейронная сеть в процессе обучения не будет неограниченно расти, а сойдется к минимуму,
соответствующему конечному решению
7
. В противном случае веса нейронной сети будут расходится, а значит такой минимум будет бесконечно удален от начального состояния в пространстве весов. По всей видимости, в процессе градиентной минимизации нейронная сеть чаще всего приходит к одному из локальных минимумов, соответствующих конечному решению.
Обратимся к численным результатам данного подхода. Инициализируем нейронную сеть
𝑣 (𝑥
1
, 𝑥
2
)
и подставляем её вместо
𝑤
в уравнение (1.2.22). Хоть невязка теперь состоит только из одной суммы
𝐸 =
𝑀
∑︁
𝑎=1
𝑉
2
(⃗
𝑥
𝑎
) ,
численные эксперименты показывают, что сетку на границе удалять не стоит – это замет- но снижает точность решения. В процессе обучения сети будем вычислять решение согласно
𝑢 = 𝑤·𝜑+𝜌,
и сравнивать с точным. Результаты приведены на Рисунке 1.2.11. Серым цветом показан результат обучения без замены функции. Таким образом, удалось уменьшить сред- неквадратичную ошибку с
𝜖 = 2.5 · 10
−3
для случая «удержания» границ до
𝜖 = 4.2 · 10
−5
,
7
хоть контрпримеры пока не были обнаружены, их существование не исключено

31 0
200 400 600 800 1000 0.000 0.005 0.010 0.015 0.020 0.025
эпоха
ϵ
невязка ошибка невязка ошибка
Рис. 1.2.11. Сравнение метода решения с заменой функции (черный цвет) с методом «удержания» граничных условий (серый цвет).
то есть в 54 раза. Разумеется, усложнение алгоритма достаточно велико – необходимо опре- делять функции
𝜑
и
𝜌
. В данной работе будут рассмотрены только области, для которых эти функции задаются простыми формулами. Для более сложных граничных условий можно применять методы, описанные в [87], либо аппроксимировать
𝜑
и
𝜌
с помощью нейронных сетей.
Приведём некоторые отличия данного способа решения от классических. При исполь- зовании конечно-разностных методов решение существует на сетке, а невязка тождественно равна нулю в её точках и неизвестна в остальных. В случае использования нейронных сетей,
решение существует независимо от сетки, а невязка является гладкой функцией, легко вы- числяемой в любой точке. Например, поле невязки уравнения (1.2.22) приведено на Рисунке
1.2.12. Этим обстоятельством удобно пользоваться, во-первых, для контроля качества сетки.
Для этого достаточно сгенерировать новые точки и убедится в том, что невязка в них поряд- ка сеточной. Во-вторых, с помощью точной невязки во всей области можно сделать оценку отклонения от точного решения. Это проделано в Пункте 3.6.2. Отметим, в данном примере у нейросетевого метода имеется и существенный недостаток – точность решения не зависит от шага сетки. Так, в случае схемы второго порядка для увеличения точности в 4 раза доста- точно измельчить сетку вдвое, тогда как в примере из данного параграфа уменьшение шага вдвое (что увеличит количество точек с 1208 до 4577) не приведет к увеличению точности.
Не приведет к ней и уменьшение шага втрое (10104 точек). Иными словами, после прекраще- ния переобучения, дальнейшее измельчение сетки оказывается неэффективным, а точность ограничена размером нейронной сети. Однако, увеличение числа весов, как и в примере из
Пункта 1.2.3, крайне слабо влияет на результирующую точность. Хотя значение ошибки
𝜖 = 4.2 · 10
−5
оказалось в десять раз меньше, чем для прямой аппроксимации, проблема точности ещё далеко не решена. Дело в том, что для минимизируемой величины, в данном случае – невязки, всё равно справедлива оценка
∼ 10
−4
. Для конкретной краевой задачи это приводит к точности решения
4.2 · 10
−5
, однако, саму невязку не удаётся значительно

32
-1.0
-0.5 0.0 0.5 1.0
-1.0
-0.5 0.0 0.5 1.0
x
1
x
2
-0.025
-0.020
-0.015
-0.010
-0.005 0
0.005 0.010
Рис. 1.2.12. Невязка дифференциального уравнения (1.2.22).
понизить ни измельчением сетки, ни увеличением числа весов. Отсутствие способа для её
уменьшения хотя бы до значений порядка величины машинного округления накладывает сильные ограничения на применение многослойных персептронов для решения дифферен- циальных уравнений. Схожее ограничение относительной точности встречается и в других работах по этой теме, в которых используется градиентный метод обучения [16,20,25–29,46].
Выводы к Главе 1
Многослойный персептрон, построенный на основе биологических нейронных сетей,
способен с произвольной точностью аппроксимировать функции в пространствах различной размерности. Однако, для поиска весов, реализующих конкретное отображение, во многих случаях доступен лишь локальный итерационный алгоритм на основе градиента ошибки.
Для него точность порядка ошибки округления оказывается недостижимой даже при аппрок- симации элементарной функции двух переменных с помощью нейронной сети с
10 5
весами
– после обучения остается относительная ошибка порядка
10
−4
, снижение которой невоз- можно без многократного увеличения числа весов. С практической точки зрения результат теорем существования оказывается недоступным. Значение относительной ошибки порядка
10
−4
встречается и во многих других работах по этой теме. Для классических нейросетевых задач типа классификации эта величина не является существенной, однако, для аппрокси- мации физических величин она достаточно велика.

33
Если функции активации персептрона обладают нужным классом гладкости, то ней- ронную сеть можно инициализировать и подставить в дифференциальное уравнение в ка- честве пробной функции, а затем с помощью градиентной настройки весов минимизировать невязку уравнения. При достаточной малости невязки, уравнение можно считать численно решенным. Однако и здесь оказывается, что с помощью градиентного метода нельзя до- биться произвольно малого значения минимизируемого выражения. Характерная величина невязки после обучения имеет порядок
10
−4
, и как и в случае аппроксимации, она не может быть уменьшена измельчением сетки или приемлемым увеличением числа весов. В то же время, при использовании конечно-разностных методов, шаг сетки практически напрямую связан с точностью решения. Таким образом, для многослойных нейронных сетей очерчена проблема недостаточной точности, особенно остро проявляющаяся в малоразмерных зада- чах, для которых доступны классические методы аппроксимации. Её решению посвящена следующая глава.

34
Глава 2
Обучение с производными
С этой главы начинается изложение основных результатов, полученных автором с
2012 по 2019 год во время обучения в аспирантуре и последующей работы в Московском
Физико-Техническом Институте. Первая их часть касается аппроксимационных способностей нейронных сетей – были обнаружены условия, при которых ошибка градиентного обучения многослойных персептронов уменьшалась на порядки. Вторая часть связана с использова- нием нейронных сетей для решения уравнений математической физики – были обнаружены условия, при которых шаг сетки значительно превышал допустимый шаг для классических методов решения. Это позволило превзойти быстродействие метода конечных разностей, че- му посвящена Глава 3.
2.1. Краткая история
В конце предыдущей главы мы заключили, что малая относительная точность мно- гослойных персептронов является значительным препятствием их применению для решения уравнений математической физики. Даже такое преимущество как отсутствие дискретизации не было способно скомпенсировать этот недостаток. Например, основная ошибка разностных схем связана с тем, что все производные в уравнении заменяются на конечно-разностные ана- логи. Так как они не равны истинным производным, то решается не точное, а приближенное уравнение, а точное уравнение будет иметь ненулевую невязку. Однако, эта невязка практи- чески всегда может быть уменьшена измельчением сетки. В нейросетевом методе персептрон подставляется в уравнение и все его производные известны с машинной точностью. Однако,
при численной минимизации невязки, итерационный алгоритм не способен достичь произ- вольно малого минимума, оставляя в конце обучения невязку порядка
1   2   3   4   5   6   7   8   9   ...   13


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