CKKS likimääräiseen laskentaan ja koneoppimiseen
Soveltakaa CKKS:ää yksityisyyttä säilyttävään koneoppimisen päättelyyn.
CKKS likimääräiseen laskentaan ja koneoppimiseen on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cryptology Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.
Miksi CKKS?
BGV ja BFV toimivat kokonaisluvuilla eli tukevat tarkkaa aritmetiikkaa. Koneoppimisessa käytetään liukulukuja eli likimääräistä aritmetiikkaa. CKKS (Cheon-Kim-Kim-Song, 2017) koodaa reaali- ja kompleksilukuja sekä sallii hallitun tarkkuuden menetyksen, joten se sopii erinomaisesti koneoppimisen päättelyyn ja data-analytiikkaan.
Likimääräinen aritmetiikka
CKKS käsittelee kohinaa osana koodauksen tarkkuutta. Sen sijaan että kohina poistettaisiin virheenkorjauksella, CKKS tulkitsee tuloksen likiarvoksi, jolla on taatut tarkkuusrajat. Tämä vaihtokauppa mahdollistaa huomattavasti tehokkaamman homomorfisen salauksen jatkuva-arvoisissa laskuissa.
Reaalilukujen koodaus
CKKS koodaa kompleksilukujen vektorin polynomiksi: vektori (z_0, ..., z_{n/2-1}) muunnetaan käänteisellä FFT:llä polynomiksi renkaassa R. Skaalauskerroin Δ (esimerkiksi 2^40) muuntaa liukuluvut kokonaisluvuiksi. Yhdessä salatekstissä on n/2 reaalilukupaikkaa.
Uudelleenskaalaus
Kertolaskun jälkeen skaalauskerroin kaksinkertaistuu: Δ^2. CKKS käyttää uudelleenskaalausta: jako Δ:lla palauttaa yhden skaalaustason. Samalla salatekstin moduulitaso pienenee BGV:n moduulin vaihdon tapaan, mikä pitää salatekstin hallittavan kokoisena.
Tarkkuusanalyysi
Kukin kertolasku kuluttaa yhden moduulitason ja vähentää tarkkuutta noin log2(Δ) bittiä. Piirille, jonka syvyys on L ja skaalauskerroin Δ = 2^40, tarkkuuden kokonaismenetys on noin L*40 bittiä. Valitkaa alkuperäinen moduuli Q riittävän suureksi, jotta se pystyy kattamaan tämän tarkkuusbudjetin.
Koneoppimisen päättely CKKS:llä
Lineaariset kerrokset (matriisi-vektori-kertolasku): tehokkaita — kierto ja summaus. Aktivointifunktiot (ReLU, sigmoid): edellyttävät polynomista approksimaatiota. ReLU: approksimoidaan asteen 7 Chebyshev-polynomilla. Tarkkuuden menetys: noin 0,1–1 % verrattuna selväkieliseen päättelyyn.
Yksityisen päättelyn esimerkki
Sairaala salaa potilastiedot CKKS-julkisella avaimellaan. Pilvipalvelu suorittaa diagnostisen neuroverkon salatuille tiedoille CKKS-operaatioiden avulla. Se palauttaa salatun ennusteen. Sairaala purkaa salauksen yksityisellä avaimellaan. Pilvipalvelu ei missään vaiheessa näe potilastietoja tai selväkielistä diagnoosia.
CKKS-parametrit
HEAAN/OpenFHE-suositus: n=2^15 (32768) syville koneoppimispiireille. Moduuliketju: alkuperäinen Q ≈ 2^1500 30 kertolaskutasolle, kun Δ=2^50. Turvallisuus: 128 bittiä, jos oletetaan, että CKKS näillä parametreilla on yhtä vaikea kuin RLWE. Muisti: salateksti noin 1 Mt.
Bootstrapping CKKS:ssä
CKKS:n bootstrapping (Cheon et al., 2018) arvioi modulaarisen redusoinnin homomorfisesti ja virkistää salatekstin. Vaativuus perustuu sinifunktion arviointiin kompleksiluvuilla polynomiapproksimaation avulla. Se mahdollistaa rajoittamattoman piirisyvyyden, mutta yksi bootstrapping kestää noin 30 sekuntia.
Vertailu: CKKS ja BFV
BFV: tarkat kokonaisluvut, kokonaislukuselvätekstit, ei tarkkuuden menetystä. CKKS: likimääräiset reaali- ja kompleksiluvut, liukulukuselvätekstit, tarkkuus pienenee syvyyden kasvaessa. Käyttäkää BFV:tä tietokantoihin, kyselyihin ja tarkkoihin laskuihin. Käyttäkää CKKS:ää koneoppimiseen, tilastotieteeseen ja tieteelliseen laskentaan.
Kirjastot
HEAAN (alkuperäinen CKKS, Soulin kansallinen yliopisto). Microsoft SEAL (CKKS + BFV). OpenFHE (CKKS + BGV + BFV). Concrete-ML (Zama.ai, käärii OpenFHE:n scikit-learn- ja PyTorch-malleja varten). TF-HE (TensorFlow'n ja HE:n integrointikokeiluja).
Pikatarkistus
Miksi CKKS:ää suositaan BFV:n sijaan koneoppimisen päättelyssä?
Kertaus
CKKS tukee likimääräistä reaaliarvoista aritmetiikkaa, joten se sopii erinomaisesti koneoppimisen päättelyyn ja salatun datan tilastolliseen käsittelyyn. Uudelleenskaalaus hallitsee skaalauskerrointa, ja polynomiapproksimaatiot korvaavat aktivointifunktiot. Seuraavaksi käsitellään kvantinjälkeistä kryptografiaa sekä Shorin ja Groverin algoritmeja.
Opi Cryptology Academy tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 67
- Oppitunnit
- 261
Usein kysytyt kysymykset
Onko oppitunti ”CKKS likimääräiseen laskentaan ja koneoppimiseen” ilmainen?
Kyllä – oppitunnin ”CKKS likimääräiseen laskentaan ja koneoppimiseen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cryptology Academy-kurssin, päivitä CoddyKit PROhon. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”CKKS likimääräiseen laskentaan ja koneoppimiseen”?
Soveltakaa CKKS:ää yksityisyyttä säilyttävään koneoppimisen päättelyyn. Harjoittelet Cryptology Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Cryptology Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Cryptology Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”CKKS likimääräiseen laskentaan ja koneoppimiseen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Cryptology Academy-oppitunnilla?
Kyllä. Jokainen Cryptology Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Mitä on homomorfinen salaus?
- Learning With Errors (LWE) -perusta
- BGV- ja BFV-menetelmät kokonaislukujen operaatioihin
- CKKS likimääräiseen laskentaan ja koneoppimiseen