Для начала пару слов об обработке текстовой информации, рекуррентных сетях и методах защиты конфиденциальности пользователя.

Рекуррентные нейронные сети (Recurrent Neural Networks, RNNs) — популярные модели, используемые в обработке естественного языка (NLP). Идея RNN - в последовательном использовании информации. В классических нейронных сетях имеется ввиду, что все входы и выходы автономны. Но для предсказания следующего слова необходимо иметь представление о предыдущем - для этого отлично подходят RNNs, которые выполняют одинаковые задачи для каждого элемента последовательности (или грубо говоря сети с "памятью", которая учитывает прошлую информацию).

Картинка 2 - развертка RNN
Картинка 2 - развертка RNN

На картинке показана развертка RNN, обозначу основные составляющие формул, задающих RNN:

  • x_t — вход на временном шаге t

  • s_t — скрытое состояние на шаге t. Оно определяет ту самую "память" сети, скрытое состояние определяется как функция предыдущих состояний - данная функция называется функцией активации. Есть различный варианты функций активации, такие как ступенчатая (A = 1, если Y > граница, иначе А = 0), линейная (A = cx), сигмоида (sigmoid A = 1/(1 + exp(-x)) ), гиперболический тангенс (tahn), ReLu (A(x) = max(0,x) ). Выбор функции активации может сильно влиять на скорость выхода, в чем мы убедимся в дальнейшем

  • o_t — выход на шаге t

Далее рассмотрим криптосистемы и способы создания безопасных интерфейсов вывода.

Рассмотрим искажения в нашей модели угроз, когда сервер S размещает модель, а клиенты C отправляют входные данные для вывода с использованием модели S ’. Клиент и сервер придерживаются протокола, но пытаются получить информацию о вводе другой стороны. Наш протокол скрывает веса модели, смещения и активации сетевой модели, которые, скорее всего, будут проприетарными.

HE (Homomorphic encryption - Гомоморфное шифрование) - криптосистема, которая поддерживает вычисления с зашифрованным текстом без дешифрования.

GC (Garbled circuit) - протокол, позволяющий двум сторонам (клиенту и серверу) совместно вычислять функцию над своими личными данными, при этом не раскрывая данные, выходящие за рамки вывода каждой из них.

Функция GC представлена логическими схемами с 2-мя входными воротами. Суммарные расходы на связь с GC пропорциональны количеству элементов без XOR в функции активации - например, 12-битный ReLU требует только 30 элементов без XOR, в то время как 12-битный tanh требует> 2K элементов без XOR.

Современные исследования представляют следующие нейронные сети с безопасным выводом : GC-only , HE-only и гибрид HE+GC. GC-only сети отличаются длительной задержкой вывода, HE-only сети не могут точно реализовать нелинейные активации только гомоморфными умножениями и сложениями. Потому предпочитают реализовать линейные слои с операциями HE и нелинейные активации с операциями GC, они называются GRU(Gated Recurrent Units).

Картинка 3 - ячейка обычной GRU замененная на GRU с ReLU и квантованием далее
Картинка 3 - ячейка обычной GRU замененная на GRU с ReLU и квантованием далее

В типичной ячейке GRU есть девять этапов линейных операций и две нелинейные операции. В исходном состоянии нелинейные операции занимают до 91,37%. Поэтому нелинейные операции на основе GC являются узким местом в этой структуре.

Потому был предложен способ ускорить GRU - давайте же в нем разберемся!

Замена tanh на ReLU

В GRU нелинейной функцией активации обычно является tanh, но она также может быть реализована с помощью выпрямительного линейного блока ReLU. Для активации 8-битного ReLU требуется примерно в 4 раза меньше задержки, чем для 8-битной активации tanh, поскольку для 8-битного ReLU требуется только 24 логических элемента без XOR, а для tanh требуется 95 элементов без XOR. Ниже представлена таблица сравнения tanh и ReLU на различных датасетах в задачах бинарной классификации, из которой видно, что ReLU не проигрывает по точности и значительно выигрывает по скорости вывода.

Точность

Задержка

Датасет

tahn

ReLU

tahn

ReLU

IMDB

84.8%

84.6%

14860ms

3779ms

Yelp Reviews

77.3%

78.1%

5383ms

1852ms

Таблица 1 - сравнение активации через tahn с ReLU

Квантование сигмоиды и ReLU

Как было сказано ранее, время вычисления для нелинейных операций составляет около 91,37% для типичного случая. В основном это связано с тем, что вычислительная сложность зашифрованного текста в значительной степени пропорциональна базовой длине битов. Чтобы упростить вычислительную сложность еще больше было предложено квантовать всю длину в битах по умолчанию от 20 до 8 в активациях. Во-первых, конструкция схем с GC пропорционально проще после квантования, поскольку они чувствительны к длине битов. Во-вторых, поскольку эти функции активации не имеют весовых параметров, общая точность нейронных сетей с квантованными функциями активации сохраняется. В таблице ниже представлено сравнение задержек у разных типов GRU, улучшенный вариант GRU быстрее всех.

Схема

Задержка

Обычная GRU

15675.85 ms

GRU с ReLU

3590.65 ms

GRU с ReLU и квантованием

1655.56 ms

Обычная GRU

5382.91 ms

GRU с ReLU

1851.32 ms

GRU с ReLU и квантованием

913.32 ms

Таблица 2 - сравнение типов GRU

Заключение

Прогнозирование на основе машинного обучения - очень перспективная область, и многие компании стремятся внедрить новейшие технологии. В связи с этим остро стоит вопрос конфиденциальности пользователей(например, при отправке открытого текста на модельные серверы для вывода). Для сохранения безопасности важно использовать такие схемы как GRU, а также совершенствовать их. Один из способов улучшения работы GRU описан в статье - упрощение вычислительной сложности за счет замены функции активации RNN tahn на ReLU и дальнейшего квантования сигмоиды и ReLU, что ведет к уменьшению задержки вывода и сохранению точности.

Источники

  1. https://arxiv.org/abs/2010.11796

  2. https://www.monographies.ru/ru/book/section?id=2465

  3. https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-networks

  4. https://encrypto.de/papers/KSS09SPEED.pdf

  5. https://arxiv.org/abs/1609.02116

Комментарии (0)