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

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


Скачать 3.63 Mb.
НазваниеАлгоритм увеличения точности нейронных сетей и его приложения
Дата24.06.2022
Размер3.63 Mb.
Формат файлаpdf
Имя файлаdiss_avrutskiy.pdf
ТипДиссертация
#613262
страница12 из 13
1   ...   5   6   7   8   9   10   11   12   13
𝑘
. Вычислим норму в минус первой степени для каждого такого вектора с помощью встроенной функции rnormf,
а затем в качестве нормировочного коэффициента выберем меньшее из 1 и этой величины,
например
G[1] = fminf(1.0f, rnormf(k, De1Dz)).
Теперь при вычислении градиента E, каждую e достаточно домножить на соответствующий
G:
𝜕𝐸
𝜕
(︀𝜕
𝑠[𝑖]
𝑣
)︀ = e0 * G[0] * De0DZ[i] + e1 * G[1] * De1DZ[i]+
e2 * G[2] * De2DZ[i] + . . . → ADDR
_
dE[i][tid].
4.4.4.5. Пример. Приведём простой пример. Пусть нас интересует уравнение
𝑥
1
𝜕𝑣
𝜕𝑥
1
+
𝜕𝑣
𝜕𝑥
2
≡ e0 = 0,
(4.4.6)
а для улучшения результатов мы решили взять одну дополнительная производную по
𝑥
:
𝜕𝑣
𝜕𝑥
1
+ 𝑥
1
𝜕
2
𝑣
𝜕𝑥
2 1
+
𝜕
2
𝑣
𝜕𝑥
1
𝜕𝑥
2
≡ e1 = 0.
(4.4.7)
Для простоты мы не будем рассматривать замену функции, которая требовалась бы для удовлетворения граничных условий. Список производных для этой задачи представлен в
Таблице 8. Доступные ядру производные входа имеют следующий вид:
ADDRX[0][2 * tid + 0] = 𝑥
1
[𝑎],
ADDRX[0][2 * tid + 1] = 𝑥
2
[𝑎],
ADDRX[1][2 * tid + 0] = 1,

106
ADDRX[1][2 * tid + 1] = 0,
ADDRX[2][2 * tid + 0] = 0,
ADDRX[2][2 * tid + 1] = 1.
Остальные равны нулю. В результате прямого прохода будут посчитаны выходы сети
ADDR[0][tid] = 𝑣 [𝑎] ,
ADDR[1][tid] =
𝜕𝑣
𝜕𝑥
1
[𝑎] ,
ADDR[2][tid] =
𝜕𝑣
𝜕𝑥
2
[𝑎] ,
ADDR[3][tid] =
𝜕
2
𝑣
𝜕𝑥
2 1
[𝑎] ,
ADDR[4][tid] =
𝜕
2
𝑣
𝜕𝑥
1
𝜕𝑥
2
[𝑎] .
Вычисление невязки выглядит следующим образом e0 = ADDRX[0][2 * tid + 0] * ADDR[1][tid] + ADDR[2][tid];
e1 = ADDR[1][tid] + ADDRX[0][2 * tid + 0] * ADDR[3][tid] + ADDR[4][tid];
Два вектора De_DZ имеют по пять компонент
(︂ 𝜕e0
𝜕𝑣
,
𝜕e0
𝜕 (𝜕𝑣/𝜕𝑥
1
)
,
𝜕e0
𝜕 (𝜕𝑣/𝜕𝑥
2
)
,
𝜕e0
𝜕 (𝜕
2
𝑣/𝜕𝑥
2 1
)
,
𝜕e0
𝜕 (𝜕
2
𝑣/𝜕𝑥
1
𝜕𝑥
2
)
)︂
=
=(0, ADDRX[0][2 * tid + 0], 1, 0, 0) → floatDe0DZ,
(︂ 𝜕e1
𝜕𝑣
,
𝜕e1
𝜕 (𝜕𝑣/𝜕𝑥
1
)
,
𝜕e1
𝜕 (𝜕𝑣/𝜕𝑥
1
)
,
𝜕e1
𝜕 (𝜕
2
𝑣/𝜕𝑥
2 1
)
,
𝜕e1
𝜕 (𝜕
2
𝑣/𝜕𝑥
1
𝜕𝑥
2
)
)︂
=
= (0, 1, 0, ADDRX[0][2 * tid + 0], 1) → floatDe1DZ.
Вычисление градиента E выглядит следующим образом
𝜕𝐸
𝜕𝑣
=
((
((
((
((
(
𝑒0 * 𝐷𝑒0𝐷𝑍[0] +
((
((
((
((
(
𝑒1 · 𝐷𝑒1𝐷𝑍[0] = 0 → ADDR
_
dE[0][tid],
𝜕𝐸
𝜕 (𝜕𝑣/𝜕𝑥
1
)
= e0 * De0DZ[1] + e1 * De1DZ[1] → ADDR
_
dE[1][tid],
𝜕𝐸
𝜕 (𝜕𝑣/𝜕𝑥
2
)
= e0 * De0DZ[2] +
((
((
((
((
(
𝑒1 * 𝐷𝑒1𝐷𝑍[2] → ADDR
_
dE[2][tid],

107
𝜕𝐸
𝜕 (𝜕
2
𝑣/𝜕𝑥
2 1
)
=
((
((
((
((
(
𝑒0 * 𝐷𝑒0𝐷𝑍[3] + e1 · De1DZ[3] → ADDR
_
dE[3][tid],
𝜕𝐸
𝜕 (𝜕
2
𝑣/𝜕𝑥
1
𝜕𝑥
2
)
=
((
((
((
((
(
𝑒0 * 𝐷𝑒0𝐷𝑍[4] + e1 * De1DZ[4] → ADDR
_
dE[4][tid].
Мы вычеркнули члены, заведомо равные нулю на основе вида векторов De0DZ, De1DZ. В
реальных случаях за счет этого можно значительно снизить количество генерируемого кода.
Нормировку мы пропустили, поскольку она тривиальна.
4.4.5. Генерация кода. Хоть решаемые уравнения зачастую довольно просты, необ- ходимость замены функции вида (1.2.21), а также взятие многочисленных производных от невязки делают ручное написание кода практически невозможным. Эту проблему можно успешно решить с помощью любой системы символьных вычислений, в данном случае мы воспользовались Mathematica. На основе изначального уравнения, замены и выбранных до- полнительных производных генерировался код ядра, вычисляющего невязку и градиент
𝐸
по матрицам выхода. Опишем основные принципы работы этого кода на примере краевой задачи для Пуассона на единичном круге
Δ𝑢 = 𝑔,
Γ : 𝑥
2 1
+ 𝑥
2 2
≤ 1,
𝑢|
𝜕Γ
= 0.
Во-первых, вычислим лапласиан после замены функции
𝑢 = 𝑤 ·
(︀1 − 𝑥
2 1
− 𝑥
2 2
)︀
e0 = Laplacian[v[x, y](1 − x
2
− y
2
), {x, y}].
В результате e0
инициализируется выражением
−4u[x, y] − 4yv
(0,1)
[x, y] +
(︀1 − x
2
− y
2
)︀ v
(0,1)
[x, y]−
−4xv
(1,0)
[x, y] +
(︀1 − x
2
− y
2
)︀ v
(2,0)
[x, y].
Как можно заметить, Mathematica также обозначает производные мульти-индексами. Далее нужно прочитать список производных из файла SconfS.txt, найти их в верхних индексах v
и сделать замены вида v
(0,1)
[x, y] → ADDR[[2, h * tid]],
(4.4.8)
где первым в двойных квадратных скобках указан номер производной согласно списку из
SconfS.txt (напомним, что элемент массива в Mathematica вызывается двойными скобками).
С точки зрения среды, правая часть (4.4.8) есть символьная переменная, поскольку массив
ADDR не был инициализирован. После замен к выражению останется применить функцию
CForm, для того чтобы получить готовый код вычисления невязки для функции ядра. Чтобы найти градиент
𝐸
по элементам выходных матриц, достаточно продифференцировать e0

108
по всем символьным переменным типа ADDR[[_,h*tid]] с помощью встроенной функции D.
Например,
D[e0, ADDR[[2, h * tid]]]
будет равно
−4y + (1 − x
2
− y
2
)
, то есть третьему элементу вектора De0DZ. Подобные вы- ражения легко проверить на равенство нулю и исключить из дальнейшего кода.
Выводы к Главе 4
Метод увеличения точности многослойных персептронов, изложенный в Главах 2 и 3,
значительно повышает вычислительную нагрузку при обучении нейронных сетей. Однако,
как и в случае классического обучения, современные GPU позволяют заметно ускорить этот процесс. Практическая проблема заключается в том, что современные прикладные пакеты обучения нейронных сетей недостаточно оптимизированы для обучения старших производ- ных. Для классического обратного распространения без производных, их эффективность является величиной порядка
50 ∼ 80%
[129]. Однако, эта производительность является ре- зультатом бурного развития машинного обучения начиная с 2010 года. Например, ещё в 2015
году их эффективность для стандартных постановок была около
10%
. Так как задачи, свя- занные с высоким порядком дифференцирования, еще практически не исследуются, эффек- тивность общедоступных комплексов для них в данный момент ещё ниже. Для решения этой проблемы, автором было получено обобщение алгоритма обратного распространения ошиб- ки на случай минимизации выражения, зависящего от любых производных нейронной сети.
С помощью анализа комбинаторной структуры производных были сделаны значительные упрощения выражений для обратного распространения ошибки. Дополнительно приведены методики, позволяющие повысить аппаратную эффективность GPU для большого класса задач. Код, написанный на CUDA C/C++ с учетом изложенных методик, составляет основ- ную часть программного комплекса «cpde-2». Он предназначен для обучения производных нейронной сети, поддерживает обучение с исключением, а также может использоваться для решения уравнений в частных производных. Он был использован для всех задач, описанных в данной диссертации. В частности, с его помощью в Главе 3 было впервые получено преиму- щество перед конечными разностями. Для большинства примеров, программный комплекс
«cpde-2» имеет аппаратную эффективность порядка
50 ∼ 80%

109
Заключение
В работе было впервые продемонстрировано, что включение производных в процесс градиентного обучения позволяет в несколько десятков раз повысить точность глубоких ней- ронных сетей, а также понизить число точек, необходимых для их тренировки. На основе этого способа был построен алгоритм обучения с исключением, позволяющий увеличить ка- чество тренировки на несколько порядков и достичь относительной точности
10
−6
, тогда как стандартный метод градиентного обучения в аналогичной ситуации имеет точность порядка
10
−3
. При решении уравнений в частных производных, обучение с исключением позволяет сравнять точность нейросетевого метода с точностью классических методов, а также суще- ственно понизить требования на минимальный шаг. Метод также применим для получения решений с большими градиентами, при наличии которых требуется введение неравномерной сетки. Для многомерных краевых задач, в совокупности с разработанным методом случай- ных направлений, метод обучения с исключением впервые оказывается быстрее конечно- разностной схемы, а также значительно снижает требования по памяти из-за большего до- пустимого шага сетки. Математические причины увеличения точности и строгие доказатель- ства выходят за пределы данной работы. Тем не менее, нахождение класса задач, точность и эффективность решения которых с помощью нейронных сетей может быть значительно увеличена, имеет практическое значение.
Эффект от включения производных в процесс обучения глубоких сетей ни в коем случае не ограничиваются случаями малой размерности, и автором было зафиксировано крайне благоприятное их влияние на аппроксимацию функции, определённой на 64–мерном единичном кубе. Большим потенциалом обладает задача об адаптации результатов данной диссертации к распознаванию образов. По-видимому, для этого необходимо вычисление про- изводных от функций типа классификатора. Таким образом, у обучения c производными обнаружен значительный потенциал, а разработанный для этих целей комплекс программ
«cpde-2», эффективно использующий GPU, может ускорить получение новых результатов в этой области.

110
Обозначения
𝑁
: размерность пространства.
𝑥
𝛼
≡ (𝑥
1
, . . . , 𝑥
𝑁
) ≡ ⃗
𝑥
: входной вектор для нейронной сети.
𝑥
𝛼𝑎
≡ (𝑥
1
, . . . , 𝑥
𝑁
)
𝑎
= ⃗
𝑥
𝑎
: матрица входных векторов. Столбцы, перечисляемые ин- дексом
𝑎 ∈ [1, 𝑀 ]
, содержат входные вектора, компоненты которых расположены по стро- кам.
𝑧
𝛽
,
𝑧
𝛾
, ...: активности нейронов на скрытых слоях. Верхний греческий индекс зависит от номера слоя. Так,
𝑧
𝛽
обозначает вектор активностей на первом скрытом слое,
𝑧
𝛾
на втором,
и так далее. Положение индекса выбрано для удобства записи. Буквами
𝜃
и
𝜅
обозначаются два последовательных слоя без указания их номеров.
𝑧
𝛽𝑎
, 𝑧
𝛾𝑎
, ... :
матрицы активностей нейронов на скрытых слоях. Столбцы, перечисля- емые индексом
𝑎
, содержат значения, соответствующие разным входным векторам.
𝑊
𝛽𝛼
,
𝑊
𝛾𝛽
, ... : матрицы весов нейронной сети. Имеют пару индексов, совпадающих с индексами слоёв, которые они соединяют. Так, матрица
𝑊
𝜃𝜅
содержит веса соединяющие предыдущий слой
𝜅
с последующим
𝜃
𝑡
𝛼
,
𝑡
𝛽
, ... : параметры сдвига для каждого слоя. Имеют греческий индекс, совпадающий с индексом нейронов, к активностям которых они прибавляются.
𝜎
,
𝜎
(︀𝑧
𝜃
)︀
,
𝜎
(︀𝑧
𝜃𝑎
)︀
: функция активации, действует на вектор либо матрицу поэлемент- но.
𝑣
𝜔
: выход нейронной сети.
𝑣
𝜔𝑎
: матрица выхода нейронной сети, индекс
𝑎
перечисляет соответствующие паттер- ны входа.
𝛿𝑊 (0)
: начальный шаг для всех весов в алгоритме RProp.
𝜕
𝑠
: мульти-индексное обозначение производной, где
𝑠
есть упорядоченное множество целых положительных чисел, элементы которого равны порядку дифференцирования по соответствующей переменной.
Γ
: множество, на котором происходит аппроксимация либо решение краевой задачи.
𝑒
: локальная ошибка/невязка (вклад в минимизируемую величину от некоторой точ- ки).
𝐸 =
∑︀
𝑀
𝑎=1
𝑒
𝑎
: глобальная ошибка/невязка (минимизируемая величина).
𝜖 =
√︀𝐸/𝑀
: среднеквадратичная ошибка/невязка.
𝜗
: среднеквадратичное отклонение численного решения от точного.
𝜗
max
: максимальное отклонение численного решения от точного.
𝜗
median
: медианное отклонение численного решения от точного.

111
𝑟
: коэффициент переобучения – отношение среднеквадратичных ошибок на трениро- вочном и тестовом множествах.
𝑅
: коэффициент переобучения – отношение максимальных ошибок на тренировочном и тестовом множествах.
𝑇
: число итераций обучения
𝜆
: шаг сетки.
𝜙
: угловой шаг сетки на границе области.
𝜏
: ошибка аппроксимации конечно-разностного шаблона.
ϒ (⃗
𝑥)
: разница между точным решением и численным.
h: количество нейронов в скрытых слоях.

112
Литература
[1] Krizhevsky, A. Imagenet classification with deep convolutional neural networks / A. Krizhevsky, I. Sutskever,
G.E. Hinton // Advances in neural information processing systems. — 2012. — Pp. 1097–1105.
[2] Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks /
A. Graves, S. Fern´andez, F. Gomez, J. Schmidhuber // Proceedings of the 23rd international conference on
Machine learning / ACM. — 2006. — Pp. 369–376.
[3] Delving deep into rectifiers: Surpassing human-level performance on imagenet classification / K. He, X. Zhang,
S. Ren, J. Sun // Proceedings of the IEEE international conference on computer vision. — 2015. — Pp. 1026–
1034.
[4] Lossy image compression with compressive autoencoders / L. Theis, W. Shi, A. Cunningham, F. Husz´ar //
arXiv preprint arXiv:1703.00395. — 2017.
[5] Zhang, G.P. Neural networks for classification: a survey / G.P. Zhang // IEEE Transactions on Systems,
Man, and Cybernetics, Part C (Applications and Reviews). — 2000. — Vol. 30, no. 4. — Pp. 451–462.
[6] Huang, G.B. Extreme learning machine: theory and applications / G.B. Huang, Q.Y. Zhu, C.K. Siew //
Neurocomputing. — 2006. — Vol. 70, no. 1-3. — Pp. 489–501.
[7] Husmeier, D. Random vector functional link (RVFL) networks / D. Husmeier // Neural Networks for Con- ditional Probability Estimation. — Springer, 1999. — Pp. 87–97.
[8] Barron, A.R. Universal approximation bounds for superpositions of a sigmoidal function / A.R. Barron //
IEEE Transactions on Information theory. — 1993. — Vol. 39, no. 3. — Pp. 930–945.
[9] Barron, A.R. Approximation and estimation bounds for artificial neural networks / A.R. Barron // Machine
Learning. — 1994. — Vol. 14, no. 1. — Pp. 115–133.
[10] Mittal, S. A survey of techniques for optimizing deep learning on GPUs / S Mittal, S Vaishay // Journal of
Systems Architecture. — 2019. — Vol. 99. — P. 101635.
[11] Compute Solution for Tesla’s Full Self-Driving Computer / E. Talpes, D.D. Sarma, G. Venkataramanan et al. // IEEE Micro. — 2020. — Vol. 40, no. 2. — Pp. 25–35.
[12] Deng, L. Machine learning paradigms for speech recognition: An overview / L. Deng, X. Li // IEEE Trans- actions on Audio, Speech, and Language Processing. — 2013. — Vol. 21, no. 5. — Pp. 1060–1089.
[13] Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups /
G. Hinton, L. Deng, D. Yu et al. // IEEE Signal processing magazine. — 2012. — Vol. 29, no. 6. — Pp. 82–97.
[14] Feng, X. Speech feature denoising and dereverberation via deep autoencoders for noisy reverberant speech recognition / X. Feng, Y. Zhang, J. Glass // 2014 IEEE international conference on acoustics, speech and signal processing (ICASSP) / IEEE. — 2014. — Pp. 1759–1763.
[15] Petridis, S. Deep complementary bottleneck features for visual speech recognition / S. Petridis, M. Pantic //
2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) / IEEE. — 2016.
— Pp. 2304–2308.
[16] Aarts, L.P. Neural network method for solving partial differential equations / L.P. Aarts, P. Van Der Veer //
Neural Processing Letters. — 2001. — Vol. 14, no. 3. — Pp. 261–271.
[17] Tarkhov, D.A. Semi-empirical Neural Network Modeling and Digital Twins Development / D.A. Tarkhov,
A.N. Vasilyev. — Academic Press, 2019.
[18] Artificial neural network method for solving the Navier–Stokes equations / M. Baymani, S. Effati, H. Niaz- mand, A. Kerayechian // Neural Computing and Applications. — 2015. — Vol. 26, no. 4. — Pp. 765–773.

113
[19] Beidokhti, R.S. Solving initial-boundary value problems for systems of partial differential equations using neural networks and optimization techniques / R.S. Beidokhti, A. Malek // Journal of the Franklin Institute.
— 2009. — Vol. 346, no. 9. — Pp. 898–913.
[20] Berg, J. A unified deep artificial neural network approach to partial differential equations in complex geome- tries / J. Berg, K. Nystr¨om // Neurocomputing. — 2018. — Vol. 317. — Pp. 28–41.
[21] He, S. Multilayer neural networks for solving a class of partial differential equations / S. He, K. Reif, R. Un- behauen // Neural networks. — 2000. — Vol. 13, no. 3. — Pp. 385–396.
[22] Kumar, M. Multilayer perceptrons and radial basis function neural network methods for the solution of differential equations: a survey / M. Kumar, N. Yadav // Computers & Mathematics with Applications. —
2011. — Vol. 62, no. 10. — Pp. 3796–3811.
[23] Lagaris, I.E. Artificial neural networks for solving ordinary and partial differential equations / I.E. Lagaris,
A. Likas, D.I. Fotiadis // IEEE Transactions on Neural Networks. — 1998. — Vol. 9, no. 5. — Pp. 987–1000.
[24] Malek, A. Numerical solution for high order differential equations using a hybrid neural network optimization method / A. Malek, R.S. Beidokhti // Applied Mathematics and Computation. — 2006. — Vol. 183, no. 1. —
Pp. 260–271.
[25] Mall, S. Single layer Chebyshev neural network model for solving elliptic partial differential equations /
S. Mall, S. Chakraverty // Neural Processing Letters. — 2017. — Vol. 45, no. 3. — Pp. 825–840.
[26] Raissi, M. Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations / M. Raissi, P. Perdikaris, G.E. Karniadakis //
Journal of Computational Physics. — 2019. — Vol. 378. — Pp. 686–707. http://dx.doi.org/10.1.1/jpb001.
[27] Rudd, K. A constrained backpropagation approach for the adaptive solution of partial differential equations /
K. Rudd, G. Di Muro, S. Ferrari // IEEE transactions on neural networks and learning systems. — 2014. —
Vol. 25, no. 3. — Pp. 571–584.
1   ...   5   6   7   8   9   10   11   12   13


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