CKKS для приближенной арифметики и машинного обучения
Примените CKKS для машинного обучения с сохранением конфиденциальности
«CKKS для приближенной арифметики и машинного обучения» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Зачем нужен CKKS
BGV/BFV работают над целыми числами и обеспечивают точную арифметику. В машинном обучении используются числа с плавающей точкой и приближённая арифметика. CKKS (Cheon-Kim-Kim-Song, 2017) кодирует действительные и комплексные числа и допускает контролируемую потерю точности, что идеально подходит для вывода моделей машинного обучения и анализа данных.
Приближённая арифметика
CKKS рассматривает шум как часть точности кодирования. Вместо устранения шума с помощью исправления ошибок CKKS интерпретирует результат как приближение с гарантированными границами точности. Такой компромисс делает HE значительно эффективнее для вычислений над непрерывными значениями.
Кодирование действительных чисел
CKKS кодирует вектор комплексных чисел как многочлен: вектор (z_0, ..., z_{n/2-1}) отображается с помощью обратного FFT в многочлен над R. Коэффициент масштабирования Δ (например, 2^40) преобразует числа с плавающей точкой в целые числа. В каждом шифротексте содержится n/2 слотов для действительных чисел.
Изменение масштаба
После умножения коэффициент масштабирования удваивается: Δ^2. CKKS выполняет операцию изменения масштаба: делит на Δ, возвращая исходный масштаб. Это также уменьшает уровень модуля шифротекста, подобно переключению модуля в BGV, и не даёт шифротексту стать слишком большим.
Анализ точности
Каждое умножение расходует один уровень модуля и уменьшает точность примерно на log2(Δ) бит. Для схемы глубины L с коэффициентом масштабирования Δ = 2^40 общая потеря точности составляет примерно L*40 бит. Начальный модуль Q следует выбирать достаточно большим, чтобы учесть этот бюджет точности.
Вывод моделей машинного обучения на CKKS
Линейные слои (умножение матрицы на вектор): эффективны благодаря вращению и накоплению. Функции активации (ReLU, сигмоида): требуется полиномиальное приближение. ReLU: приближается полиномом Чебышёва 7-й степени. Потеря точности составляет примерно 0,1–1% по сравнению с выводом на открытых данных.
Пример конфиденциального вывода
Больница шифрует данные пациента с помощью открытого ключа CKKS. Облако запускает диагностическую нейронную сеть на зашифрованных данных, используя операции CKKS. Затем оно возвращает зашифрованный результат прогнозирования. Больница расшифровывает его с помощью закрытого ключа. Облако никогда не видит данные пациента или открытый результат диагностики.
Параметры CKKS
Рекомендация HEAAN/OpenFHE: n=2^15 (32768) для глубоких схем машинного обучения. Цепочка модулей: начальный Q ≈ 2^1500 для 30 уровней умножения при Δ=2^50. Безопасность: 128 бит при предположении, что CKKS с такими параметрами столь же трудна для взлома, как RLWE. Память: шифротекст занимает около 1 MB.
Бутстрэппинг в CKKS
Бутстрэппинг CKKS (Cheon и др., 2018) гомоморфно вычисляет приведение по модулю, обновляя шифротекст. Сложность определяется вычислением синусоидальной функции с помощью полиномиального приближения над комплексными числами. Это обеспечивает неограниченную глубину схемы примерно за 30 секунд на один сеанс бутстрэппинга.
Сравнение: CKKS и BFV
BFV: точные целые числа, целочисленные открытые тексты, отсутствие потери точности. CKKS: приближённые действительные и комплексные числа, открытые тексты с плавающей точкой, уменьшение точности с ростом глубины. Используйте BFV для баз данных, запросов и точных вычислений. Используйте CKKS для машинного обучения, статистики и научных вычислений.
Библиотеки
HEAAN (исходная реализация CKKS, Сеульский национальный университет). Microsoft SEAL (CKKS и BFV). OpenFHE (CKKS, BGV и BFV). Concrete-ML (Zama.ai, обёртка над OpenFHE для моделей scikit-learn и PyTorch). TF-HE (эксперименты по интеграции TensorFlow и HE).
Быстрая проверка
Почему CKKS предпочитают BFV для вывода моделей машинного обучения?
Повторение
CKKS поддерживает приближённую арифметику над действительными числами, что идеально подходит для вывода моделей машинного обучения и статистики над зашифрованными данными. Изменение масштаба управляет коэффициентом масштабирования, а полиномиальные приближения заменяют функции активации. Далее: постквантовая криптография — алгоритмы Шора и Гровера.
Часто задаваемые вопросы
Урок «CKKS для приближенной арифметики и машинного обучения» бесплатный?
Да — полный текст урока «CKKS для приближенной арифметики и машинного обучения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «CKKS для приближенной арифметики и машинного обучения»?
Примените CKKS для машинного обучения с сохранением конфиденциальности Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «CKKS для приближенной арифметики и машинного обучения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое гомоморфное шифрование
- Обучение с ошибками (LWE): основа
- Схемы BGV и BFV для операций с целыми числами
- CKKS для приближенной арифметики и машинного обучения