Simulating Homomorphic Evaluation of Deep Learning Predictions
@inproceedings{boura2019simulating,
title={Simulating homomorphic evaluation of deep learning predictions},
author={Boura, Christina and Gama, Nicolas and Georgieva, Mariya and Jetchev, Dimitar},
booktitle={International Symposium on Cyber Security Cryptography and Machine Learning},
pages={212--230},
year={2019},
organization={Springer},
url={https://eprint.iacr.org/2019/591.pdf}
}Abstract
秘密を保護した機械学習が流行っています
TFHEとHEAANで近似的なCNNを動かしたい
はじめに準同型演算(積, 線形結合, rotation, bootstrapping)のあとのノイズの増加を分析した.
機械学習における非線形演算の理論、各スキームで評価する方法
成果: 実際に評価すること無く準同型演算のノイズやaccuracyの影響を予測することができる
Introduction
秘密計算とかMPCとかあるが、準同型暗号は単体で完結するので通信のコストがかからない
準同型暗号には主に3つのスキームがある, B/FV, TFHE, HEAAN
どれもがRLWE問題に基づいている.
B/FVはSIMDな演算ができ, 演算をするごとにノイズが溜まっていき復号をしたときにどれくらい正しさが残るか, Bootstrapはノイズ削減
一方でHEAANは小数の演算ができ、演算によって下位ビットが丸められます
誤差は下位ビットに溜まっていき, 復号でもbootstrapでも直すことができません
同型演算の最大数という概念があり(=Leveled?), multiplication level
レベルを超えると意味をなさなくなる
HEAANのbootstrapはそのレベルを引き上げる事ができる
(実はB/FVやHEAANは正確な演算をすることができるが, 本論文では近似を使う)
実はHEAANとTFHEの併用したハイブリッドなアプローチがある(Chimera)
bootstrapが早いTFHEと行列とかの演算が早い(SIMD)HEAANを併用することができる
Our Contributions
NNの回路をシミュレーションし, パフォーマンスやノイズを分析する
CNNの小さいやつ(LeNet-5)とかでやった
誤差は多くても10%なので4bit precisionでいい?(通常は20-40bit)
とても小さいパラメータで済み, 高速
2. Homomorphic RLWE encryption shcemes and noise propagation
Notation:
mod 1 をトーラス
slotsの概念を紹介するために の同型を紹介
coefficient packing
slot packing
はの原始根
2.1 HEAAN and TFHE through the Chinema framework
precision: を持つ
,
x, y は ビットの精度を持つ
mantissa: 仮数
ciphertexts:
TFHE
HEAAN
鍵空間:
TFHE, HEAAN
(小さい係数)
位相関数:
最後に TFHE, HEAAN にあるmaximal multiplicative depth
0に達してしまったら, bootstrapをしないと続きの計算ができない.
セキュリティパラメータ , 最大レベル , 精度 から最小鍵サイズ が決まる, 詳細は以下さんsヂョ
以下では, TFHE と HEAAN の暗号化, 復号化について述べる
KeyGen
一様ランダムな鍵
非線形な演算演算をサポートするために他の様々な鍵が必要になる場合がある.
Evaluation Key, SwitchingKey, BootstrappingKey ここでは説明しない
EncryptAtLevel ${}_\tau, _L (x, s)$
- 平文 x (in C^N/2),
- で割って(1)の同型写像に通すと が得られる
- 一様ランダムから
- 小さなガウシアンエラー を選び
- + e) を返す
DecrypyApproxAtLevel
- 位相: を計算
- すべての係数が の近似でリカバーできる(?)
- (1)の同型写像を適用し, をかける(誤差は 以下)
注意
対象鍵バージョンについて説明した.
公開鍵バージョンは秘密鍵でこれらの関数を評価することにより実現される.
2.2 Noise models for homomorphic operations
TFH と HEAAN の準同型演算のノイズについて分析する.
2スキームにの共通な演算は線形結合, 積, slot permutations(?), functional bootstrapping(?)
Linear combination
c は RLWE ciphertext , は係数 in Z
ciphertextのノイズはガウスノイズなので
よって合計のノイズは N(x_i, \sigma_i

2^{\tau - \rho} かけることで実際のエラーをシミュレートすることができる
Multiplications
内積に相当する.

e_1 e_2 はとても小さいので無視できる
よって x_1 e_2 + x_2 + e_1
に2^{(\tau_1 + \tau_2) - \rho} をかけることで実際の誤差を出せる.
Rotations/Permutations
slot representation から coefficient representation に変換することで実現
prthogonal matrixを適用することで変換できる(?)
変換にDFTの評価が入ってしまうのでmultiplication levelを消費してしまう.
Bootstrapping
いままでのbootstrapは平文に準同型な恒等関数を適用して乗算レベルをリセットする.
複雑な非線形関数はinterleaving(間をあけて配置する?)bootstrapによって評価してきた(?)が3つの理由から最適な方法ではありません.
- 非線形評価のたびにbootstrapが必要
- 多項式近似で代用可能, 任意の精度で近似しようとするとコストがとても高くなる.
- bootstrapにはとても大きいパラメータを必要とする
のでより良い方法を探す必要がある.
Functional Bootstrappin
TFHE
テーブルルックアップをつかうことによって離散的な結果を得られる

HEAAN
sinのテイラー展開を評価することでbootstrappingしていた

3. Evaluation of nonlinear functions in neural networks
非線形関数はディープラーニング中心をなるもの, max関数, ReLUとか
注意
ReLUは絶対値があればかんたんに表現できる
ReLU(x) = x + |x|
3.1 Non-linear functions in TFHE
(割愛)
3.2 Non-linear functions in HEAAN
HEAAN では非線形関数は
- 複素数の多項式
- 三角多項式(bootstrap)はこれ
に近似される.
convergence: 収束
superalgebraically: 超代数的
フーリエ変換は連続関数とか正則関数だったら急速に収束する
関数に不連続性がある場合は収束が遅くなる(尖ってるから)

(Skip)
4. Predictions for Deep Learning
4.2 Experiments
LeNet5にMNIST手書き文字認識で実験
表1:
LeNet(7 layers) を max-pooling と average-pooling で = 0.0:0.1:1.0で活性化関数に ReLU と ReLU近似 を使用して, train accuracyとtest accuracy 計