當(dāng)前位置:首頁 > 智能硬件 > 安全設(shè)備/系統(tǒng)
[導(dǎo)讀] 編者按:保護(hù)隱私和保障安全的沖突,在多大程度上僅僅是一個(gè)技術(shù)限制?讓我們和DeepMind數(shù)據(jù)科學(xué)家、Udacity深度學(xué)習(xí)導(dǎo)師Andrew Trask一起,基于Paillier加密算法和詞袋邏

編者按:保護(hù)隱私和保障安全的沖突,在多大程度上僅僅是一個(gè)技術(shù)限制?讓我們和DeepMind數(shù)據(jù)科學(xué)家、Udacity深度學(xué)習(xí)導(dǎo)師Andrew Trask一起,基于Paillier加密算法和詞袋邏輯回歸實(shí)現(xiàn)犯罪檢測。

TLDR:監(jiān)控是否能夠只侵犯犯罪嫌疑人和恐怖分子的隱私,避免殃及無辜?本文用Python實(shí)現(xiàn)了一個(gè)原型。

摘要:現(xiàn)代的犯罪嫌疑人和恐怖分子藏身于無辜居民的模式之中,精確地鏡像無辜居民的日常生活,直到變得致命的最后一刻,比如一輛沖上人行道的汽車,或大街上掏出刀子的人。由于即時(shí)發(fā)生的致命事件不可能通過警力干預(yù),執(zhí)法部門轉(zhuǎn)而利用監(jiān)控檢測犯罪事件,立法上的努力加速了這一轉(zhuǎn)向,例如愛國者法案、美國自由法案和英國的反恐法案。這些立法引起了激烈的爭議。在本文中,我們將探索隱私和安全的折衷在多大程度上僅僅是一個(gè)技術(shù)限制,一個(gè)可以通過同態(tài)加密和深度學(xué)習(xí)克服的技術(shù)限制。我們同時(shí)給出了一個(gè)原型實(shí)現(xiàn),并討論了哪里可以追加技術(shù)投入,使這一技術(shù)更成熟。我很樂觀,覺得未來的犯罪檢測工具會(huì)比今天的更強(qiáng)大,在提供更高效的監(jiān)控的同時(shí),保護(hù)居民隱私。潛在的濫用可以通過加密人工智能這樣的現(xiàn)代技術(shù)緩解。

如果你對(duì)訓(xùn)練加密神經(jīng)網(wǎng)絡(luò)感興趣,可以看看OpenMined的PySyft庫。

一、理想的居民監(jiān)控

國際機(jī)場常常使用緝毒犬檢測毒品。如果沒有緝毒犬,檢測乘客是否攜帶毒品需要打開每個(gè)箱包,檢查其中的物品,這是一個(gè)昂貴、費(fèi)時(shí)、侵犯隱私的過程。然而,有了緝毒犬,需要搜查的箱包僅僅是那些確實(shí)包含毒品的箱包(在緝毒犬看來)。緝毒犬的應(yīng)用同時(shí)增加了隱私和效率。

類似地,電子煙霧報(bào)警器和防盜報(bào)警器的應(yīng)用取代了更低效、更侵犯隱私的昂貴系統(tǒng):24x7站在房門口的保安或防火員。

這兩個(gè)場景幾乎不存在隱私和安全的折衷。這是監(jiān)控的理想狀態(tài)。監(jiān)控是有效的,而隱私得到了保護(hù):

僅當(dāng)很可能發(fā)現(xiàn)危險(xiǎn)/犯罪活動(dòng)時(shí)才侵犯隱私。

設(shè)備是精確的,假陽性率低。

可以訪問設(shè)備的人(陪同緝毒犬的警員和房產(chǎn)業(yè)主)并不試圖愚弄這些設(shè)備。因此,這些設(shè)備的工作機(jī)制可以公開,其對(duì)隱私的保護(hù)可以被大家知曉,并接受審計(jì)。

隱私保護(hù)、精確性、可審計(jì)性的結(jié)合是達(dá)到監(jiān)控理想狀態(tài)的關(guān)鍵。這一點(diǎn)很直觀。只有不到0.001%的飛機(jī)乘客會(huì)攜帶毒品的情況下,為什么每個(gè)包都要打開,每個(gè)乘客的隱私都要被侵犯?既然99.999%的時(shí)間既沒有發(fā)生火災(zāi),也沒有發(fā)生入室盜竊,為什么要讓保安監(jiān)看業(yè)主家中的監(jiān)控視頻?

二、國家安全監(jiān)控

在我寫作本文的兩周內(nèi),僅僅在曼徹斯特、倫敦、埃及、阿富汗就有超過50人死于恐怖襲擊。我為遇難者和他們的家庭祈禱,我極其希望我們能夠找到更好的保障人們安全的方式。對(duì)最近在威斯敏斯特發(fā)生的恐怖襲擊的調(diào)查顯示,恐怖分子通過Whatsapp交換信息。這引起了一場關(guān)于隱私和安全的折衷的激烈爭論。政府希望在Whatsapp一類的應(yīng)用中置入后門(包括無限制的讀取權(quán)限),但很多人不信任老大哥保護(hù)WhatsApp用戶隱私的自律能力。另外,置入后門也讓這些應(yīng)用容易受到攻擊,進(jìn)一步增加了公眾的風(fēng)險(xiǎn)。

恐怖主義也許是隱私和安全的折衷中討論最多的領(lǐng)域,它并不是唯一被討論的領(lǐng)域。謀殺之類的犯罪奪去了世界上成千上萬人的生命。僅僅在美國,每年就有大約16000起謀殺。

“相當(dāng)理由”的雞和蛋問題 FBI和當(dāng)?shù)貓?zhí)法部門面對(duì)的挑戰(zhàn)和恐怖主義極其相似。保護(hù)公民隱私的法律導(dǎo)致了一個(gè)雞和蛋問題,發(fā)現(xiàn)“相當(dāng)理由”(接著獲取搜查令)和得以訪問取得“相當(dāng)理由”的信息。而在緝毒犬和煙霧報(bào)警器這樣的情形中,這不再是一個(gè)問題,因?yàn)榉缸锟梢栽诓粚?duì)隱私造成顯著附加傷害的前提下被檢測出來,因此“相當(dāng)理由”不再是限制保障公共安全的因素。

三、人工智能的角色

在理想世界中,會(huì)有一個(gè)針對(duì)謀殺、恐怖襲擊等不可逆的嚴(yán)重犯罪的“火警”設(shè)備,該設(shè)備能夠保護(hù)隱私、精確、可審計(jì)。幸運(yùn)的是,商業(yè)實(shí)體對(duì)這類檢測設(shè)備的研發(fā)投入巨大。這些投入并不是由保護(hù)消費(fèi)者隱私驅(qū)動(dòng)的。相反,這些設(shè)備的研發(fā)是為了實(shí)現(xiàn)大規(guī)模檢測。考慮一下Gmail的研發(fā),Gmail想要提供垃圾郵件過濾功能。你可以侵犯人們的隱私,人工讀取他們的郵件,但創(chuàng)建一個(gè)可以檢測垃圾郵件的機(jī)器更快、更便宜。由于執(zhí)法部門想要保護(hù)廣大人口,不難想見這一過程是高度自動(dòng)化的。所以,基于這一假設(shè),我們真正欠缺的是轉(zhuǎn)換AI智能體滿足如下條件的能力:

可供受信任方審計(jì)其隱私保護(hù)

部署后無法被逆向工程

被監(jiān)控者無法知道預(yù)測

部署方無法篡改預(yù)測(比如聊天軟件)

高效、可伸縮

為了完整地說明這一概念,我們將創(chuàng)建一個(gè)原型。在下一節(jié),我們將使用雙層神經(jīng)網(wǎng)絡(luò)創(chuàng)建一個(gè)檢測器的基礎(chǔ)版本。之后,我們將升級(jí)這一檢測器,使其滿足上面列出的要求。這個(gè)檢測器將在垃圾郵件數(shù)據(jù)庫上進(jìn)行訓(xùn)練,因此將只能檢測垃圾郵件。不過,可以想像,經(jīng)過訓(xùn)練,它可以檢測你想要檢測的任何特定事件(例如,謀殺、縱火,等等)。我選擇垃圾郵件的原因是因?yàn)檫@相對(duì)容易訓(xùn)練,便于我演示這一方法。

四、創(chuàng)建垃圾郵件檢測器

所以,我們的示范案例將是一位當(dāng)?shù)氐膱?zhí)法部門官員(讓我們叫他“Bob”)希望打擊發(fā)送垃圾郵件這一犯罪行為。然而,Bob并不打算親自閱讀每個(gè)人的郵件,相反,Bob希望檢測發(fā)送垃圾郵件這一行為,這樣他就可以申請(qǐng)禁制令和搜查令,并進(jìn)行進(jìn)一步調(diào)查。這一過程的第一部分是創(chuàng)建一個(gè)有效的垃圾郵件檢測器。

Enron Spam Dataset 我們需要大量標(biāo)記為“垃圾郵件”和“非垃圾郵件”的郵件讓算法學(xué)習(xí)區(qū)分兩種不同的郵件。幸運(yùn)的是,一家知名的能源公司安然犯下了一些罪行,這些罪行被記錄在郵件中,因此,這家公司相當(dāng)多的郵件被公開了。由于其中許多郵件是垃圾郵件,因此人們基于這些公開郵件構(gòu)建了一個(gè)Enron Spam Dataset(安然垃圾郵件數(shù)據(jù)集)。我對(duì)這一數(shù)據(jù)集進(jìn)行了預(yù)處理,生成了兩個(gè)文件:

ham.txt 非垃圾郵件,共22032封。

spam.txt 垃圾郵件,共9000封。

文件的每行是一封郵件。我們將留置每個(gè)類別中的最后1000封郵件作為測試數(shù)據(jù)集,其余郵件用作訓(xùn)練數(shù)據(jù)集。

模型 我們將使用一個(gè)能夠快速訓(xùn)練的簡單模型,詞袋邏輯分類器(bag-of-words LogisTIc Classifier)。這是一個(gè)雙層的神經(jīng)網(wǎng)絡(luò)(輸入層和輸出層)。我們本可以使用更復(fù)雜的模型,比如LSTM,但本文的主題不是過濾垃圾郵件,另外,詞袋LR在垃圾郵件檢測上效果非常好(令人驚訝的是,它在其他許多任務(wù)上同樣表現(xiàn)出色)。所以不用過度復(fù)雜化。下面是創(chuàng)建這一分類器的代碼。如果你吃不準(zhǔn)它是如何工作的,可以參考我之前的文章基于Numpy實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò):反向傳播。

(在我的機(jī)器上,以下代碼在Python 2和Python 3上均能運(yùn)行。)

import numpy as np

from collecTIons importCounter

import random

import sys

np.random.seed(12345)

f = open('spam.txt','r')

raw = f.readlines()

f.close()

spam = list()

for row in raw:

spam.append(row[:-2].split(" "))

f = open('ham.txt','r')

raw = f.readlines()

f.close()

ham = list()

for row in raw:

ham.append(row[:-2].split(" "))

classLogisTIcRegression(object):

def __init__(self, posiTIves,negatives,iterations=10,alpha=0.1):

# 創(chuàng)建詞匯表 (真實(shí)世界的案例將增加幾百萬其他詞匯

# 以及從網(wǎng)絡(luò)上抓取的其他詞匯)

cnts = Counter()

for email in (positives+negatives):

for word in email:

cnts[word] += 1

# 轉(zhuǎn)換為查找表

vocab = list(cnts.keys())

self.word2index = {}

for i,word in enumerate(vocab):

self.word2index[word] = i

# 初始化未加密權(quán)重

self.weights = (np.random.rand(len(vocab)) - 0.5) * 0.1

# 在未加密信息上訓(xùn)練模型

self.train(positives,negatives,iterations=iterations,alpha=alpha)

def train(self,positives,negatives,iterations=10,alpha=0.1):

for iter in range(iterations):

error = 0

n = 0

for i in range(max(len(positives),len(negatives))):

error += np.abs(self.learn(positives[i % len(positives)],1,alpha))

error += np.abs(self.learn(negatives[i % len(negatives)],0,alpha))

n += 2

print("Iter:" + str(iter) + " Loss:" + str(error / float(n)))

def softmax(self,x):

return1/(1+np.exp(-x))

def predict(self,email):

pred = 0

for word in email:

pred += self.weights[self.word2index[word]]

pred = self.softmax(pred)

return pred

def learn(self,email,target,alpha):

pred = self.predict(email)

delta = (pred - target)# * pred * (1 - pred)

for word in email:

self.weights[self.word2index[word]] -= delta * alpha

return delta

model = LogisticRegression(spam[0:-1000],ham[0:-1000],iterations=3)

# 在留置集上評(píng)估

fp = 0

tn = 0

tp = 0

fn = 0

for i,h in enumerate(ham[-1000:]):

pred = model.predict(h)

if(pred < 0.5):

tn += 1

else:

fp += 1

if(i % 10 == 0):

sys.stdout.write(' I:'+str(tn+tp+fn+fp) + " % Correct:" + str(100*tn/float(tn+fp))[0:6])

for i,h in enumerate(spam[-1000:]):

pred = model.predict(h)

if(pred >= 0.5):

tp += 1

else:

fn += 1

if(i % 10 == 0):

sys.stdout.write(' I:'+str(tn+tp+fn+fp) + " % Correct:" + str(100*(tn+tp)/float(tn+tp+fn+fp))[0:6])

sys.stdout.write(' I:'+str(tn+tp+fn+fp) + " Correct: %" + str(100*(tn+tp)/float(tn+tp+fn+fp))[0:6])

print(" Test Accuracy: %" + str(100*(tn+tp)/float(tn+tp+fn+fp))[0:6])

print("False Positives: %" + str(100*fp/float(tp+fp))[0:4] + "    <- privacy violation level out of 100.0%")

print("False Negatives: %" + str(100*fn/float(tn+fn))[0:4] + "   <- security risk level out of 100.0%")

結(jié)果:

Iter:0Loss:0.0455724486216

Iter:1Loss:0.0173317643148

Iter:2Loss:0.0113520767678

I:2000Correct: %99.798

TestAccuracy: %99.7

FalsePositives: %0.3    <- privacy violation level out of 100.0%

FalseNegatives: %0.3   <- security risk level out of 100.0%

特性:可審計(jì)性 這個(gè)分類器有一個(gè)很棒的特性,它是一個(gè)具有高可審計(jì)性的算法。它不僅給出了測試數(shù)據(jù)上的精確評(píng)分,我們還能打開它,看看它給不同詞匯的權(quán)重有何不同,以確保它基于Bob長官所需標(biāo)記垃圾郵件?;谶@些洞見,Bob長官可以從他的上級(jí)那里得到對(duì)轄區(qū)內(nèi)的客戶端進(jìn)行極為有限的監(jiān)控的許可。注意,Bob無法閱讀任何人的郵件,他僅僅可以檢測他需要檢測的目標(biāo)。

好,我們的分類器得到了Bob的上級(jí)(警長?)的批準(zhǔn)。大致上,Bob將在轄區(qū)內(nèi)的所有郵件客戶端上加上這一分類器。每個(gè)客戶端在發(fā)送郵件前會(huì)使用分類器作出預(yù)測。預(yù)測將發(fā)送給Bob,漸漸地,Bob將找出在自己的轄區(qū)內(nèi)每天匿名發(fā)送10000封垃圾郵件的人。

問題一:預(yù)測可以偽造 過了一周以后,每個(gè)人仍然收到成噸的垃圾郵件。而Bob的分類器看起來不能標(biāo)記任何垃圾郵件,盡管在Bob自己的機(jī)器上測試時(shí)可以正常工作。Bob懷疑有人攔截了算法的預(yù)測,讓垃圾郵件看起來都是“陰性”。他應(yīng)該怎么做?

問題二:模型可以被逆向工程 此外,Bob注意到他可以從預(yù)訓(xùn)練的模型中得到權(quán)重值:

盡管從可審計(jì)的角度來說,這是一個(gè)優(yōu)勢(讓Bob的上級(jí)確信模型將僅僅找出設(shè)計(jì)目的所需的信息),這很容易被攻擊!人們不僅可以攔截和修改模型的預(yù)測,甚至還可以逆向工程系統(tǒng)找出需要避免哪些單詞。換句話說,模型的能力和預(yù)測易受攻擊。Bob需要一道額外的防線。

五、同態(tài)加密

在之前的文章中,我概述了如何使用同態(tài)加密以加密狀態(tài)訓(xùn)練神經(jīng)網(wǎng)絡(luò)(訓(xùn)練數(shù)據(jù)未加密),算法實(shí)現(xiàn)基于高效整數(shù)向量同態(tài)加密。不過,之前的文章提到,有很多同態(tài)加密方案可供選擇。本文將使用一個(gè)不同的方案,Paillier加密。我更新了Paillier加密的Python庫,加入了處理long類型的密文和明文的功能,并修改了一處日志功能的bug.

你可以通過以下命令安裝我修改的Paillier庫:

git clone https://github.com/iamtrask/python-paillier.git

cd python-paillier

python setup.py install

接著運(yùn)行以下代碼:

import phe as paillier

pubkey, prikey = paillier.generate_paillier_keypair(n_length=64)

a = pubkey.encrypt(123)

b = pubkey.encrypt(-1)

prikey.decrypt(a) # 123L

prikey.decrypt(b) # -1L

prikey.decrypt(a + a) # 246

prikey.decrypt(a + b) # 122

如你所見,我們可以使用公鑰加密(正或負(fù))數(shù),接著將加密值相加,然后解密所得結(jié)果。我們使用這些操作就可以加密我們的訓(xùn)練后的邏輯回歸分類器。如果想了解這些是如何工作的,請(qǐng)參考我上一篇文章。

import phe as paillier

import math

import numpy as np

from collections importCounter

import random

import sys

np.random.seed(12345)

print("Generating paillier keypair")

pubkey, prikey = paillier.generate_paillier_keypair(n_length=64)

print("Importing dataset from disk...")

f = open('spam.txt','r')

raw = f.readlines()

f.close()

spam = list()

for row in raw:

spam.append(row[:-2].split(" "))

f = open('ham.txt','r')

raw = f.readlines()

f.close()

ham = list()

for row in raw:

ham.append(row[:-2].split(" "))

classHomomorphicLogisticRegression(object):

def __init__(self, positives,negatives,iterations=10,alpha=0.1):

self.encrypted=False

self.maxweight=10

# 創(chuàng)建詞匯表 (真實(shí)世界的案例將增加幾百萬其他詞匯

# 以及從網(wǎng)絡(luò)上抓取的其他詞匯)

cnts = Counter()

for email in (positives+negatives):

for word in email:

cnts[word] += 1

# 轉(zhuǎn)換為查找表

vocab = list(cnts.keys())

self.word2index = {}

for i,word in enumerate(vocab):

self.word2index[word] = i

# 初始化未加密權(quán)重

self.weights = (np.random.rand(len(vocab)) - 0.5) * 0.1

# 在未加密信息上訓(xùn)練模型

self.train(positives,negatives,iterations=iterations,alpha=alpha)

def train(self,positives,negatives,iterations=10,alpha=0.1):

for iter in range(iterations):

error = 0

n = 0

for i in range(max(len(positives),len(negatives))):

error += np.abs(self.learn(positives[i % len(positives)],1,alpha))

error += np.abs(self.learn(negatives[i % len(negatives)],0,alpha))

n += 2

print("Iter:" + str(iter) + " Loss:" + str(error / float(n)))

def softmax(self,x):

return1/(1+np.exp(-x))

def encrypt(self,pubkey,scaling_factor=1000):

if(not self.encrypted):

self.pubkey = pubkey

self.scaling_factor = float(scaling_factor)

self.encrypted_weights = list()

for weight in model.weights:

self.encrypted_weights.append(self.pubkey.encrypt(\

int(min(weight,self.maxweight) * self.scaling_factor)))

self.encrypted = True            

self.weights = None

return self

def predict(self,email):

if(self.encrypted):

return self.encrypted_predict(email)

else:

return self.unencrypted_predict(email)

def encrypted_predict(self,email):

pred = self.pubkey.encrypt(0)

for word in email:

pred += self.encrypted_weights[self.word2index[word]]

return pred

def unencrypted_predict(self,email):

pred = 0

for word in email:

pred += self.weights[self.word2index[word]]

pred = self.softmax(pred)

return pred

def learn(self,email,target,alpha):

pred = self.predict(email)

delta = (pred - target)# * pred * (1 - pred)

for word in email:

self.weights[self.word2index[word]] -= delta * alpha

return delta

model = HomomorphicLogisticRegression(spam[0:-1000],ham[0:-1000],iterations=10)

encrypted_model = model.encrypt(pubkey)

# 生成加密預(yù)測。接著解密它們,并進(jìn)行評(píng)估。

fp = 0

tn = 0

tp = 0

fn = 0

for i,h in enumerate(ham[-1000:]):

encrypted_pred = encrypted_model.predict(h)

try:

pred = prikey.decrypt(encrypted_pred) / encrypted_model.scaling_factor

if(pred < 0):

tn += 1

else:

fp += 1

except:

print("overflow")

if(i % 10 == 0):

sys.stdout.write(' I:'+str(tn+tp+fn+fp) + " % Correct:" + str(100*tn/float(tn+fp))[0:6])

for i,h in enumerate(spam[-1000:]):

encrypted_pred = encrypted_model.predict(h)

try:

pred = prikey.decrypt(encrypted_pred) / encrypted_model.scaling_factor

if(pred > 0):

tp += 1

else:

fn += 1

except:

print("overflow")

if(i % 10 == 0):

sys.stdout.write(' I:'+str(tn+tp+fn+fp) + " % Correct:" + str(100*(tn+tp)/float(tn+tp+fn+fp))[0:6])

sys.stdout.write(' I:'+str(tn+tp+fn+fp) + " % Correct:" + str(100*(tn+tp)/float(tn+tp+fn+fp))[0:6])

print(" Encrypted Accuracy: %" + str(100*(tn+tp)/float(tn+tp+fn+fp))[0:6])

print("False Positives: %" + str(100*fp/float(tp+fp))[0:4] + "    <- privacy violation level")

print("False Negatives: %" + str(100*fn/float(tn+fn))[0:4] + "   <- security risk level")

輸出:

Generating paillier keypair

Importing dataset from disk...

Iter:0Loss:0.0455724486216

Iter:1Loss:0.0173317643148

Iter:2Loss:0.0113520767678

Iter:3Loss:0.00455875940625

Iter:4Loss:0.00178564065045

Iter:5Loss:0.000854385076612

Iter:6Loss:0.000417669805378

Iter:7Loss:0.000298985174998

Iter:8Loss:0.000244521525096

Iter:9Loss:0.000211014087681

I:2000 % Correct:99.296

EncryptedAccuracy: %99.2

FalsePositives: %0.0    <- privacy violation level

FalseNegatives: %1.57   <- security risk level

這個(gè)模型相當(dāng)特別(而且很快!……在我的筆記本上,單線程運(yùn)行,每秒可以處理大約1000封郵件)。注意我們?cè)陬A(yù)測時(shí)沒有使用sigmoid(僅在訓(xùn)練時(shí)使用了sigmoid),因?yàn)槠浜蟮拈撝禐?.5. 因此,測試時(shí)我們可以簡單地跳過sigmoid,并將之后的閾值設(shè)為0. 好了,已經(jīng)談了夠多技術(shù)方面的內(nèi)容了,讓我們回到Bob那里。

Bob之前遇到的問題是人們可以看到預(yù)測并偽造預(yù)測。然而,現(xiàn)在所有預(yù)測都是加密的。

此外,Bob之前還遇到人們讀取權(quán)重并逆向工程的問題。然而,現(xiàn)在所有權(quán)重也是加密的(并且可以在加密狀態(tài)下預(yù)測)!

這一模型具有很多我們想要的性質(zhì)。它可以被第三方審計(jì),預(yù)測是加密的,對(duì)于想要竊取/愚弄這一系統(tǒng)的人來說,它的智能也是加密的。除此之外,它相當(dāng)精確(測試數(shù)據(jù)集上沒有假陽性結(jié)果),也很快。

六、創(chuàng)建安全犯罪檢測

讓我們考慮下這樣的模型對(duì)執(zhí)法部門來說意味著什么。今時(shí)今日,為了預(yù)測謀殺和恐怖襲擊之類的事件,執(zhí)法部門需要不受限制地訪問數(shù)據(jù)流。因此,為了檢測在數(shù)據(jù)中有0.0001%的可能性發(fā)生的事件,執(zhí)法部門需要訪問100%的數(shù)據(jù),將這些數(shù)據(jù)轉(zhuǎn)到一個(gè)秘密的數(shù)據(jù)倉庫,(我假定)數(shù)據(jù)倉庫中部署了機(jī)器學(xué)習(xí)模型。

然而,這些現(xiàn)在用來識(shí)別犯罪的機(jī)器學(xué)習(xí)模型其實(shí)可以加密自身,并部署在數(shù)據(jù)流上(例如,聊天應(yīng)用)。執(zhí)法部門僅僅訪問模型的預(yù)測,而不是訪問整個(gè)數(shù)據(jù)集。這類似機(jī)場中的緝毒犬。緝毒犬消除了執(zhí)法部門搜查每個(gè)人的箱包以尋找可卡因的需要。相反,狗通過訓(xùn)練(如同機(jī)器學(xué)習(xí)模型一樣)可以排他性地檢測毒品的存在。叫 == 有毒品。不叫 == 沒毒品。陽性的神經(jīng)網(wǎng)絡(luò)預(yù)測意味著“在這個(gè)手機(jī)上策劃一場恐怖活動(dòng)”,陰性的神經(jīng)網(wǎng)絡(luò)預(yù)測意味著“不在這個(gè)手機(jī)上策劃恐怖活動(dòng)”。執(zhí)法部門不需要看到數(shù)據(jù)。他們只需要這一個(gè)數(shù)據(jù)點(diǎn)。此外,由于模型是分散的智能,它可以被獨(dú)立地評(píng)估以確保它只檢測需要檢測之物(正如我們可以通過評(píng)估緝毒犬在測試中的精確度以獨(dú)立地審計(jì)緝毒犬用來訓(xùn)練什么)。然而,和緝毒犬不同,加密人工智能可以提供檢測任何可由電子證據(jù)檢測出的犯罪的能力。

審計(jì)考量 所以,我們應(yīng)該信任誰進(jìn)行審計(jì)?我不是一個(gè)政治科學(xué)專家,所以我將把這個(gè)問題留給其他人。然而,我認(rèn)為,第三方監(jiān)察人,政府雇員,甚至開源軟件開發(fā)者可以承擔(dān)這一角色。如果每種檢測器有足夠多的版本,惡意用戶要找出部署的是哪個(gè)版本會(huì)很困難(因?yàn)樗鼈兪羌用艿模?。我想這里有許多可行的選項(xiàng),審計(jì)實(shí)體的問題已經(jīng)有很多人討論過了,因此我將把這部分留給專家。

倫理考量 文藝作品對(duì)導(dǎo)致直接定罪的犯罪預(yù)測的倫理和道德影響有很多評(píng)論(比如《少數(shù)派報(bào)告》)。然而,犯罪預(yù)測的主要價(jià)值不在于高效的懲罰和監(jiān)禁,而在于預(yù)防傷害。因此,有兩種微不足道的方法可以防止這一倫理困境。首先,大部分重大犯罪需要一些較輕的犯罪作為預(yù)備,通過更精確地檢測較輕的犯罪預(yù)測重大犯罪可以避免許多道德困境。其次,預(yù)防犯罪的技術(shù)可以被用來優(yōu)化警力資源分配,觸發(fā)搜查/調(diào)查的方法。一個(gè)陽性的預(yù)測應(yīng)該導(dǎo)致調(diào)查,而不是直接把人投入監(jiān)獄。

法律考量 United States v. Place案判決,由于緝毒犬能夠排他性地檢測毒品的氣味(而不檢測其他東西),使用緝毒犬不認(rèn)為是“搜查”。換句話說,由于它們可以在無需居民泄露其他信息的情況下分類犯罪,它不認(rèn)為是對(duì)隱私的侵犯。此外,我認(rèn)為公眾對(duì)此的一般看法和法律是一致的。在機(jī)場中,一個(gè)毛茸茸的狗狗過來快速地嗅了下你的袋子是非常高效的保護(hù)隱私的監(jiān)控形式。說來也怪,狗無疑可以訓(xùn)練來檢測你包中任何令人尷尬的東西。然而,它僅僅訓(xùn)練檢測犯罪的跡象。同樣,智能體可以訓(xùn)練僅僅檢測犯罪的跡象,而不檢測其他東西。因此,達(dá)到足夠精確度的模型,其法律地位應(yīng)該比照緝毒犬。

腐敗考量 也許你想問:“為何在這方面進(jìn)行創(chuàng)新?為何提出新的監(jiān)控方法?我們受到的監(jiān)控還不多嗎?”我的回答是:企業(yè)或政府應(yīng)當(dāng)無法監(jiān)控任何沒有傷害他人的人(無辜者)。相反地,我們想要檢測任何即將傷害他人的人,以阻止他們。在最近的技術(shù)進(jìn)展之前,這兩者明顯無法同時(shí)達(dá)到。本文想要主張:我相信在技術(shù)上同時(shí)保障安全和隱私是可行的。我的意思是,隱私不取決于當(dāng)局的突發(fā)奇想,而取決于像加密人工智能一樣的可審計(jì)的技術(shù)。該由誰負(fù)責(zé)審計(jì)這一技術(shù),而不泄露給惡意之人?我不確定。也許是第三方監(jiān)察機(jī)構(gòu)。也許這會(huì)是人們可以選擇加入的系統(tǒng)(就像煙霧報(bào)警器),然后通過社會(huì)契約讓人們避免接觸那些不加入的人。也許它完全通過開源的方式開發(fā),但是足夠有效,無法被繞過?這是問題值得進(jìn)一步討論。本文不是一個(gè)完整的解決方案。社會(huì)結(jié)構(gòu)和政府結(jié)構(gòu)無疑需要為這類工具作出調(diào)整。然而,我相信這是一個(gè)值得追尋的目標(biāo),我也期待本文引起的討論。

七、以后的工作

首先,也是首要的,我們需要有主流深度學(xué)習(xí)框架(PyTorch、TensorFlow、Keras等)支持的現(xiàn)代的浮點(diǎn)向量同態(tài)加密算法(FV、YASHE等)。其次,探索如何提升這些算法的速度和安全性是一項(xiàng)高度創(chuàng)新和極其重要的工作。最后,我們需要設(shè)想社會(huì)結(jié)構(gòu)可以如何配合這些新的工具,在不侵犯隱私的前提下保護(hù)人們的安全(并繼續(xù)降低當(dāng)局濫用此項(xiàng)技術(shù)的風(fēng)險(xiǎn))。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉