CKKS do przybliżonych obliczeń i uczenia maszynowego
Zastosować CKKS do chronionego prywatności wnioskowania w uczeniu maszynowym
CKKS do przybliżonych obliczeń i uczenia maszynowego to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Dlaczego CKKS?
BGV/BFV działają na liczbach całkowitych (arytmetyka dokładna). Uczenie maszynowe wykorzystuje liczby zmiennoprzecinkowe (arytmetyka przybliżona). CKKS (Cheon-Kim-Kim-Song, 2017) koduje liczby rzeczywiste i zespolone oraz pozwala kontrolować utratę precyzji — dzięki temu idealnie nadaje się do wnioskowania ML i analityki danych.
Arytmetyka przybliżona
CKKS traktuje szum jako część precyzji kodowania. Zamiast eliminować szum (korygować błędy), CKKS interpretuje wynik jako przybliżenie z gwarantowanymi granicami precyzji. Ten kompromis umożliwia znacznie wydajniejsze HE dla obliczeń na wartościach ciągłych.
Kodowanie liczb rzeczywistych
CKKS koduje wektor liczb zespolonych jako wielomian: wektor (z_0, ..., z_{n/2-1}) jest odwzorowywany za pomocą odwrotnej transformaty FFT na wielomian w R. Współczynnik skalowania Δ (np. 2^40) odwzorowuje liczby zmiennoprzecinkowe na liczby całkowite. Jeden szyfrogram zawiera n/2 slotów rzeczywistych.
Reskalowanie
Po mnożeniu współczynnik skalowania podwaja się: Δ^2. CKKS wprowadza operację reskalowania: dzielenie przez Δ w celu przywrócenia pojedynczego skalowania. Zmniejsza to również poziom modułu szyfrogramu (podobnie jak przełączanie modułu w BGV), dzięki czemu szyfrogram pozostaje możliwy do obsługi.
Analiza precyzji
Każde mnożenie zużywa jeden poziom modułu i zmniejsza precyzję o około log2(Δ) bitów. Dla obwodu o głębokości L i współczynniku skalowania Δ = 2^40 całkowita utrata precyzji wynosi około L*40 bitów. Początkowy moduł Q należy wybrać na tyle duży, aby pomieścić ten budżet precyzji.
Wnioskowanie ML z użyciem CKKS
Warstwy liniowe (mnożenie macierzy przez wektor): wydajne — rotacja i akumulacja. Funkcje aktywacji (ReLU, sigmoid): wymagają przybliżenia wielomianowego. ReLU: przybliżenie wielomianem Czebyszewa stopnia 7. Utrata dokładności: około 0,1–1% w porównaniu z wnioskowaniem na tekście jawnym.
Przykład prywatnego wnioskowania
Szpital szyfruje dane pacjenta za pomocą klucza publicznego CKKS pacjenta. Chmura uruchamia diagnostyczną sieć neuronową na zaszyfrowanych danych, korzystając z operacji CKKS. Zwraca zaszyfrowaną predykcję. Szpital odszyfrowuje ją za pomocą klucza prywatnego. Chmura nigdy nie ma dostępu do danych pacjenta ani do diagnozy w postaci jawnej.
Parametry CKKS
Zalecenia HEAAN/OpenFHE: n=2^15 (32768) dla głębokich obwodów ML. Łańcuch modułów: początkowe Q ≈ 2^1500 dla 30 poziomów mnożenia przy Δ=2^50. Bezpieczeństwo: 128 bitów, przy założeniu, że CKKS z tymi parametrami jest równie trudne jak RLWE. Pamięć: szyfrogram ~1 MB.
Bootstrapping w CKKS
Bootstrapping CKKS (Cheon i in., 2018) homomorficznie oblicza redukcję modularną w celu odświeżenia szyfrogramu. Złożoność wynika z obliczania funkcji sinus za pomocą przybliżenia wielomianowego na liczbach zespolonych. Umożliwia nieograniczoną głębokość obwodu i trwa około 30 sekund na bootstrapping.
Porównanie: CKKS a BFV
BFV: dokładne liczby całkowite, teksty jawne zawierające liczby całkowite, brak utraty precyzji. CKKS: przybliżone liczby rzeczywiste/zespolone, teksty jawne zmiennoprzecinkowe, precyzja zmniejsza się wraz z głębokością. BFV należy stosować do: baz danych, zapytań, dokładnych obliczeń. CKKS należy stosować do: ML, statystyki, obliczeń naukowych.
Biblioteki
HEAAN (oryginalny CKKS, Seoul National University). Microsoft SEAL (CKKS + BFV). OpenFHE (CKKS + BGV + BFV). Concrete-ML (Zama.ai, opakowuje OpenFHE dla modeli scikit-learn i PyTorch). TF-HE (eksperymenty z integracją TensorFlow + HE).
Szybkie sprawdzenie
Dlaczego CKKS jest preferowany zamiast BFV do wnioskowania modeli uczenia maszynowego?
Podsumowanie
CKKS obsługuje przybliżoną arytmetykę na liczbach rzeczywistych, dzięki czemu idealnie nadaje się do wnioskowania ML i statystyki na zaszyfrowanych danych. Reskalowanie zarządza współczynnikiem skalowania, a przybliżenia wielomianowe zastępują funkcje aktywacji. Dalej: kryptografia postkwantowa — algorytmy Shora i Grovera.
Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 67
- Lekcje
- 261
Często zadawane pytania
Czy lekcja „CKKS do przybliżonych obliczeń i uczenia maszynowego” jest bezpłatna?
Tak — pełny tekst „CKKS do przybliżonych obliczeń i uczenia maszynowego” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „CKKS do przybliżonych obliczeń i uczenia maszynowego”?
Zastosować CKKS do chronionego prywatności wnioskowania w uczeniu maszynowym Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „CKKS do przybliżonych obliczeń i uczenia maszynowego”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Czym jest szyfrowanie homomorficzne?
- Podstawa Learning With Errors (LWE)
- Schematy BGV i BFV do operacji na liczbach całkowitych
- CKKS do przybliżonych obliczeń i uczenia maszynowego