Привет, Хабр! Машинное обучение и нейронные сети получили широкое распространение во многих технических областях и сейчас широко используются.
Известно, что большинство алгоритмов машинного обучения, и в частности нейронных сетей, требуют для своего обучения больших вычислительных ресурсов.
В связи с этим возникает потребность в облачных решениях и удаленных серверах.
И сразу возникает вопрос: как сохранить конфиденциальность данных, чтобы использовать их для обучения нейросетей на удаленных машинах? В своем коротком посте я дам обзор метода CryptoNN из статьи CryptoNN: обучение нейронных сетей на основе зашифрованных данных , что позволяет использовать зашифрованные данные для обучения нейронных сетей.
Мой рассказ будет состоять из трёх частей — сначала я опишу все схемы шифрования данных, используемые в этом подходе, затем разберу сам метод и основные нюансы, связанные с ним.
В заключение посмотрим, какие результаты показывает CryptoNN на наборе данных MNIST.
Схемы шифрования
Все схемы шифрования, используемые в этом методе, основаны на функциональном шифровании (FE).Функциональное шифрование, в свою очередь, представляет собой метод шифрования с открытым ключом, при котором пользователь позволяет вычислять только ограниченный класс функций из зашифрованных данных путем генерации секретных ключей для этих функций.
Также, в отличие от гомоморфных методов шифрования, в результате использования FE мы сразу получим расшифрованный результат. Приведены две схемы — для вычисления скалярного произведения (FEIP) и для вычисления основных арифметических операций (FIBO).
Здесь я кратко опишу их составляющие.
Схема скалярного произведения
Напомним определение скалярного произведения двух векторов:Схема FE для скалярного произведения определяется как Схема FE для скалярного произведения определяется как FEIP = (Setup, KeyDerive, Encrypt, Decrypt):
-
: сгенерировать число г и вектор
, затем по этим значениям получаем публичный и секретный ключи —
,
.После этого мы возвращаем эту пару ключей.
-
: вернуть секретный ключ функции, например
-
: выбрать случайное число р и рассчитать
, и
, вернуть зашифрованный текст
. -
: вернуть дискретный логарифм по основанию г :
Схема для основных арифметических операций
-
: генерировать числа g, затем s.
-
: вернуть секретный ключ функции, например
:
-
обязательство по возврату,
.И зашифрованный текст:
-
вернуть дискретный логарифм по основанию г :
КриптоNN
Теперь перейдем к описанию самого подхода CryptoNN. Обратим внимание на схему каркаса на рис.
1.
Рисунок 1. Общая схема КриптоNN Условно мы можем выделить три части: орган власти, сервер и клиент. Власть - генерирует ключи
И
Также выполняет операции
отправить ключи
сервер.
Клиент - отвечает за предварительную обработку и использование данных.
шифрует их.
Также обрабатывает и шифрует цель.
После этого он отправляет данные и цель в виде зашифрованных векторов на сервер.
Сервер - собирает данные из различный пользователи.
Важно только, чтобы пользователи использовали один и тот же открытый ключ.
Получает ключи на каждой итерации обучения
от власть для конкретной операции.
Рассмотрим выходное значение первой функции активации
— так было бы, если бы не было шифрования входных данных.
В схеме CryptoNN данные подаются на вход сети в зашифрованном виде, поэтому вычислять эту величину необходимо следующим образом:
Даже если сервер не знает значения благодаря функциональному шифрованию способен вычислить результат матричного произведения
!
Рис.
2. Псевдокод алгоритмов работы с зашифрованными матрицами.
Схемы FEIP и FEBO были описаны выше, с их помощью теперь можно легко реализовать все операции над матрицами (умножение матриц, поэлементное сложение и т.п.
).
За подробным описанием этого алгоритма рекомендую обратиться к статье (см.
Рис.
2. - Алгоритм 1: схема вычисления защищенной матрицы).
Основными отличиями такой «безопасной» нейронной сети являются этапы — безопасная прямая связь и безопасное обратное распространение/оценка.
В остальном конвейер такой же, как и в обычных незащищенных нейронных сетях.
Рис.
3. Алгоритм обучения нейронной сети CryptoNN. Безопасная прямая связь - было описано выше, предполагает вычисление результата первой функции активации с использованием алгоритма схемы вычисления матрицы Secure. Безопасное обратное распространение/вычисление — это первый шаг обратного прохода, все те же правила, что и при обычном обратном проходе — мы используем правила взятия производной сложной функции, а также помним, что все операции выполняются над зашифрованным цель Да должно быть выполнено с использованием алгоритма схемы вычисления матрицы Secure. На этапе вывода все просто — поскольку выходные значения не шифруются из-за FE. Если в целях безопасности необходимо, чтобы выходное значение было зашифровано, то это легко реализовать с помощью гомоморфного шифрования с последующей расшифровкой на стороне клиента.
Все вышесказанное справедливо для полносвязных нейронных сетей.
Но стоит отметить, что метод CryptoNN можно применить и к сверточным нейронным сетям (CryptoCNN).
Именно это показывают авторы, представляя алгоритм схемы безопасной свертки, использующий схему шифрования FEIP.
Результаты обучения
Для экспериментов авторы выбрали популярный набор данных MNIST, состоящий из изображений рукописных цифр низкого разрешения в оттенках серого.Сама нейросеть CryptoCNN была построена на основе нейросети LeNet-5 и сравнивалась с некриптоверсией.
Ниже приведены графики обучения, показатели качества и время обучения.
По точности результаты на тестовом наборе оказались идентичными.
Но вы можете видеть, сколько времени потребовалось сети CryptoCNN на обучение.
Все временные затраты вызваны довольно трудоемкими криптографическими операциями.
Рис.
4. Расписание тренировок
Рис.
5. Сравнительная таблица
Заключение
В этой статье я представил анализ метода CryptoNN, который позволяет обучать нейронные сети на зашифрованных данных с использованием функциональной схемы шифрования.Этот метод можно использовать для различных типов нейронных сетей (в том числе CNN) при правильной реализации функциональных схем шифрования.
При реализации CryptoNN на основе некриптонейронных сетей точность модели не меняется, при этом соблюдаются концепции конфиденциальности данных и пользователи могут быть защищены от злоумышленников.
Ссылки
CryptoNN: обучение нейронных сетей на основе зашифрованных данных - https://arxiv.org/pdf/1904.07303.pdf Теги: #Машинное обучение #информационная безопасность #математика #искусственный интеллект #нейронные сети #Криптография #шифрование-
Кепка - Стилус Для Емкостных Экранов
19 Oct, 24 -
Firefox 4 Beta 3 Выпущен Для Android
19 Oct, 24 -
Кто Такой Фуллстек-Дизайнер?
19 Oct, 24 -
Наблюдатель Против Pub-Sub
19 Oct, 24 -
Разработчики Cms Typo3, Встреча Tug2009
19 Oct, 24