Диссертация (1137108), страница 10
Текст из файла (страница 10)
В последнее время исследователи стали рассматриватьстратегии перфорации, учитывающие структуру конкретной задачи [118].В данной главе предлагается новый способ ускорения свёрточных нейронных сетей (СНС)за счёт уменьшения пространственной избыточности на основе принципа перфорации. Наиболеераспространённым способом уменьшения этой избыточности является использования свёрточныхслоёв с шагом, большим единицы. Увеличение величины шага может быть нежелательно, поскольку это меняет архитектуру сети.
В качестве альтернативы использованию шагов, больших единицы, будет предложен перфорированный свёрточный слой, который интерполирует пропускаемые значения. Ключевой гиперпараметр предлагаемого метода –– маска перфорации, задающаяпространственные позиции, которые требуется вычислить точно. Далее будут предложены и экспериментально сравнены несколько способов выбора масок перфорации, а также метод подборастепеней перфорации всех слоёв сети.
Для восстановления точности работы сети используется дообучение. Экспериментальные результаты, приведённые в главе, демонстирируют возможностьсокращения времени работы современных СНС в 2 − 4 раза с небольшой потерей точности.2.2 Обзор литературыВ настоящее время снижение вычислительной стоимости СНС является активной областьюисследований, в которой рассматриваются как более эффективные реализации СНС, так и приближённые методы.Использование параллелизма вычислительных архитектур, таких как видеоускорители(Graphics Processing Unit, GPU), позволяет существенно ускорить работу СНС.
Примерами эффективных библиотек для видеоускорителей являются cuda-convnet2 [119] и CuDNN [120]. Предлагаемый в данной главе подход потенциально может быть использован в библиотеке CuDNN,поскольку она сводит вычисление свёрточных слоёв к матричному умножению (но без явной материализации матрицы данных). Энергоэффективность вычисления СНС может быть улучшена припомощи программируемых пользователем вентильных матриц (ППВМ) [121]. В работах [122;41123] показано, что СНС могут быть успешно использованы с арифметикой низкой точности,что важно для эффективных реализаций на ППВМ.
Большинство приближённых методов дляуменьшения вычислительной стоимости СНС [124—127] применяют низкоранговые тензорныеразложения к ядру свёртки, что позволяет существенно уменьшить его избыточность. Для этогоисходный свёрточный слой заменяется последовательностью из нескольких свёрточных слоёв,которые в сумме имеют намного меньшую вычислительную стоимость.В случае пространственно разреженных входов СНС возможно использование этой разреженности для ускорение работы СНС [128]. Отличие данной работы от предлагаемого подходасостоит в том, что нами не предполагается разреженность входов СНС.
Вместо этого мы вычисляем подмножество выходов свёрточного слоя и интерполируем остальные значения.В недавней работе [129] был предложен подход к ускорению СНС за счёт уменьшения размера матрицы данных, достигаемого путём сокращения пространственного размера ядра свёртки.В предлагаемом методе уменьшается число пространственных позиций, в которых вычисляетсясвёрточный слой. Эти два подхода являются взаимодополняющими и могут быть объединены.В ряде работ [130—132] была продемонстрирована возможность существенного сжатия параметров полносвязных слоёв, содержащих большую часть параметров СНС.
Поскольку предлагаемый нами метод не затрагивает полносвязные слои, эти методы могут быть объединены с предлагаемым для получения быстрых и компактных СНС.2.3 Предлагаемый методВ данном разделе описывается метод перфорации свёрточных сетей. Сначала определяетсяперфорированный свёрточный слой. Затем рассматриваются несколько способов выбора ключевого гиперпараметра слоя, маски перфорации. Далее описывается способ выбора степеней перфорации всех слоёв СНС и практические аспекты эффективной реализации перфорированногосвёрточного слоя.2.3.1Перфорированный свёрточный слойОпишем перфорированный свёрточный слой. Выходы этого слоя в части пространственныхпозиций равны выходам обычного свёрточного слоя.
Значения выходов в остальных позицияхинтерполируются. Для интерполяции мы будем использовать значение из ближайшей позиции,вычисленной точно. Пример работы перфорированного свёрточного слоя приведён на рис. 2.1.Введём несколько определений.Определение 4. Пусть Ω = {1, . . . , X ′ } × {1, . . .
, Y ′ } –– множество пространственных позицийвыхода свёрточного слоя, где X ′ –– ширина, а Y ′ –– высота тензора выходов свёрточного слоя.42Рисунок 2.1 — Схема работы перфорированного свёрточного слоя. Дорогостоящий свёрточныйслой заменяется на приближённый аналог –– перфорированный свёрточный слой, зависящий отгиперпараметра –– маски перфорации. Применение слоёв нелинейности ReLU и пулинга снижаетпогрешность аппроксимации.Маской перфорации для свёрточного слоя называется пространственных позиций выхода, I ⊆ Ω.Обозначим число позиций в маске перфорации через P = |I|.Определение 5. Степенью перфорации для маски перфорации I называется величинаr =1−P.|Ω|(2.1)Определение 6.
Функция ℓ(x,y; I) : Ω → I задаёт позицию ближайшего соседа в маске перфорации I согласно евклидовому расстоянию:√ℓ(x,y; I) = (ℓ1 (x,y; I), ℓ2 (x,y; I)) = arg min (x − x′ )2 + (y − y ′ )2 .(2.2)(x′ ,y ′ )∈IПри равном расстоянии до нескольких соседей выбор производится равновероятно.Заметим, что для фиксированной маски перфорации функцию ℓ(x,y) можно вычислить заранее и сохранить её значения.′′Определение 7. Пусть V ∈ RX ×Y ×T –– выход свёрточного слоя, задаваемый (1.51). Выход перфо′′рированного свёрточного слоя V̂ (I) ∈ RX ×Y ×T для маски перфорации I определим следующимобразом:V̂x,y,t (I) = Vℓ1 (x,y;I),ℓ2 (x,y;I),t(2.3)Докажем простой факт про перфорированный свёрточный слой.Утверждение 1.
Для любой позиции (x, y) ∈ I верноVx,y,t = V̂x,y,t (I).(2.4)43Доказательство. Следует из того, что для позиции (x, y) ∈ I верно ℓ(x,y; I) = (x, y).Рассмотрим два следствия из этого факта. Во-первых, значения в пространственных позициях из маски перфорации I вычисляются точно, то есть равны значениям обычного свёрточногослоя. Как следует из определения функции ℓ(x, y; I), значения в остальных пространственных позициях интерполируются методом ближайшего соседа. Другие возможные методы интерполяцииобсуждаются в подразделе 2.4.4. Во-вторых, перфорированный свёрточный слой является обобщением стандартного свёрточного слоя. Действительно, если маска перфорации содержит все пространственные позиции, I = Ω, то выходы перфорированного свёрточного слоя равны выходамобычного свёрточного слоя.2.3.2 Маски перфорацииВ данном разделе предлагаются несколько способов генерации масок перфорации I, то естьвыбора P элементов из множества всех пространственных позиций Ω.
Для визуализации масокперфорации будем использовать бинарные изображения, где чёрные пиксели будут соответствовать позициям из множества I. Здесь мы рассматриваем маски перфорации, одинаковые для всехобъектов, а случай масок перфорации, зависящих от объекта, рассмотрим в главе 3.Определение 8. Равномерная маска перфорации получается равновероятным выбором P позицийбез возвращения из множества Ω.Как видно из рис.
2.2а, недостатком такой маски является то, что полученные позиции часто образуют компактные группы. Это нежелательное поведение, поскольку наличие кластеровувеличивает среднее расстояние до точек из множества I.Определение 9. Решётчатая маска перфорации строится как декартово произведение подмножеств позиций по каждой из координат:⌊√ X ′ ⌋⌊√ Y ′ ⌋I = {a(1), . . . , a(Kx )} × {b(1), . . . , b(Ky )}, Kx =P ′ , Ky =P ′ .(2.5)YXЕсли Kx Ky < P , то оставшиеся позиции выбираются равновероятно. Значения a(i) и b(j) определены следующим образом:a(i) =⌈ X′Kx⌉(i − 1 + u) ,b(j) =⌈Y′Ky⌉(j − 1 + v) ,(2.6)где u, v ∼ Uniform[0; 1] –– точки из равномерного распределения на отрезке [0; 1].Схема выбора значений a(i) и b(j) совпадает с псевдослучайной схемой генерации последовательностей целых чисел, предложенной в [133].
В случае, когда X ′ делится на Kx , а Y ′ делитсяна Ky , мы получаем регулярную решётку. В противном случае решётка оказывается нерегулярной,как показано на рис. 2.2б.444321а) Равномерная маска б) Решётчатая маска в) Структурная маскаг) Веса A(x, y)Рисунок 2.2 — Маски перфорации для слоя conv2 сети AlexNet. Степень перфорации r = 80,25%.Определение 10. Рассмотрим свёрточный слой, непосредственно после которого следует функция нелинейности и слой пулинга. Обозначим через A(x, y) число выходных позиций слоя пулинга,на которые влияет выход свёрточного слоя с пространственными координатами (x, y).Определение 11. Структурная маска перфорации содержит P позиций с максимальным значением величины A(x,y). В случае равных значений A(x, y) выбор делается равновероятно.Структурная маска использует структуру наложений операций пулинга. На рис. 2.2г показаны значения A(x, y) для сети AlexNet и слоя conv2.
Решёточный узор появляется из-за слояпулинга с ядром размера 3 × 3 и шагом 2. Такие параметры пулинга применяются, к примеру, всетях AlexNet и Network in Network. Итак, некоторые выходы свёрточного слоя используются 12 раза, тогда как другие –– 4 раза. Можно предположить, что игнорирование используемых редковыходов не сильно повлияет на точность сети.
Пример структурной маски приведён на рис. 2.2в.Определение 12. Обозначим через L(V ) функцию потерь СНС (например, отрицательное логправдоподобие) как функцию от выходов рассматриваемого свёрточного слоя V . Пусть тензорвыходов V ′ получается из V заменой одного элемента (x0 , y0 , t0 ) нулевым значением. Назовёмважностью позиции (x0 , y0 , t0 ) приближение первого порядка по Тейлору для величины |L(V ) −L(V ′ )|:X ∑Y ∑T∑∂L(V )′|L(V ) − L(V )| ≈ (V (x,y,t) − V (x,y,t))∂V (x,y,t)x=1 y=1 t=1 ∂L(V )=V (x0 ,y0 ,t0 ).∂V (x0 ,y0 ,t0 )′(2.7))Заметим, что величина производной функции потерь по выходам ∂V ∂L(Vможет быть по(x0 ,y0 ,t0 )лучена при помощи алгоритма обратного распространения ошибки.
Если рассматриваемый свёрточный слой уже перфорирован, то производная подсчитывается по выходам свёрточного слоя V , ане по интерполированным выходам V̂ . Таким образом, важность уже перфорированных значенийравна нулю (поскольку они не влияют на значение функции потерь), а важность неперфорированных позиций суммируется по всем интерполированным выходам, значение в которых берётся изданной позиции.450.080.070.30.250.30.250.060.050.040.20.20.150.150.10.10.050.050.030.020.0100Рисунок 2.3 — Примеры значений важности G(x,y; V ), где V –– выход свёрточного слоя conv2сети AlexNet.