本文發表於《大眾科學》的前部落格網路,反映了作者的觀點,不一定代表《大眾科學》的觀點
眾議院常設情報特別委員會的某人聯絡了我,詢問他們正在舉行的關於深度偽造主題的聽證會。我無法參加聽證會,但這次談話讓我開始思考深度偽造的主題,以及如何處理它們
你所看到的可能並非真實發生
修改影像的想法與攝影術一樣古老。最初,它必須手工完成(有時使用噴槍)。到 1990 年代,它已經透過 Photoshop 等影像處理軟體例行完成。但是,要獲得令人信服的結果,例如將一個人插入場景中,這需要一定的技巧。而且,例如,如果光照或陰影不一致,很容易看出你所看到的東西不是真實的。
關於支援科學新聞報道
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保關於塑造我們當今世界的發現和想法的具有影響力的故事的未來。
影片呢?如果進行動作捕捉,並付出足夠的努力,完全有可能獲得非常令人信服的結果——例如,用於製作外星人動畫或將已故演員放入電影中。這種方法的工作原理,至少在初步近似中,例如是仔細挑選一張臉上的關鍵點,並將它們對映到另一張臉上。
過去幾年出現的新情況是,這個過程基本上可以使用機器學習自動化。並且,例如,現在有神經網路被簡單地訓練來做“換臉”。本質上,這些神經網路所做的是將內部模型擬合到一張臉上,然後將其應用於另一張臉。模型的引數實際上是從觀察大量真實世界的場景,並檢視再現這些場景所需的內容中學習而來的。當前的方法通常使用生成對抗網路 (GAN),其中兩個網路之間不斷迭代:一個試圖生成結果,另一個試圖區分該結果與真實結果。
今天的例子遠非完美,人類不難分辨出有些地方不對勁。但是,由於工程調整和更快的計算機,已經取得了漸進式的改進,並且沒有理由認為在不久的將來不可能常規地產生人類無法區分的結果。
機器學習可以自我監管嗎?
好吧,也許人類無法立即分辨出什麼是真實的,什麼不是。但為什麼不讓機器來做呢?當然,機器生成的東西會有一些特徵。當然,機器生成的影像在統計學上對於真實影像來說是不太可能的。
嗯,自然不是這樣。因為,事實上,機器影像生成的整個方式是透過讓模型儘可能忠實地再現真實影像的“統計資料”。實際上,在 GAN 內部,顯式地存在一個“真假”鑑別器。而 GAN 的全部意義在於不斷迭代,直到鑑別器無法區分生成的內容和真實內容之間的區別。
人們能否找到影像的某些其他特徵,而 GAN 沒有關注到這些特徵——例如,臉部是否足夠對稱,或者背景中的文字是否可讀?當然可以。但在這種程度上,這只是一場軍備競賽:在識別出一個特徵後,人們將其放入神經網路正在使用的模型中,然後人們就無法再使用該特徵進行區分。
然而,這存在侷限性。因為典型的神經網路可以學習的東西是有限制的。一般來說,神經網路在影像識別等人類無需思考就能完成的任務中表現良好。但如果試圖讓神經網路進行數學運算,例如分解數字,情況就不同了。
想象一下,在修改影片時,人們必須填充顯示一些複雜計算(例如數學計算)的背景。那麼,神經網路基本上沒有機會。
是否容易分辨出神經網路是否出錯了?可能是的。如果人們正在處理公鑰密碼術或數字簽名,人們當然可以想象設定一些東西,使其很難生成正確的東西,但很容易檢查它是否正確。
但是,這種東西會出現在真實影像或影片中嗎?我自己的科學工作實際上表明,即使在規則非常簡單的系統中,不可約的複雜計算也可能非常普遍——並且可能在許多自然系統中也是如此。觀察水花。需要進行復雜的計算才能弄清楚將會發生什麼細節。而典型的神經網路將無法正確獲得細節。
但是,即使抽象的計算不可約性可能很常見,我們人類,透過我們的進化以及我們為自己設定的環境,往往最終會盡力避免它。我們有具有平滑曲線的形狀。我們用簡單的幾何形狀建造東西。在我們避免計算不可約性的過程中,我們使神經網路可以成功地對我們所處的視覺場景等事物進行建模。
當然,人們可以擾亂這種情況。只需在圖片中放入一個顯示器,顯示一些複雜的計算(甚至,例如,元胞自動機)。如果有人試圖用神經網路偽造這方面的某些內容,它(至少在它本身)無法有效地獲得細節的正確性。
我懷疑我們技術的未來將更多地與不可約計算有關。但就目前而言,它們在典型的人類相關情況中仍然很少見。因此,我們可以預期,神經網路將——至少在目前——能夠充分地模擬正在發生的事情,至少可以欺騙其他神經網路。
如何知道什麼是真實的
因此,如果無法分析影像中的位元來判斷它是否是真實照片,這是否意味著我們根本無法分辨?不。因為我們還可以考慮與影像關聯的元資料以及影像的出處。影像是什麼時候建立的?由誰建立的?等等。
那麼,假設我們建立了一個影像。我們如何設定才能證明我們何時建立的?嗯,在現代,這實際上非常容易。我們獲取影像,並從中計算出一個密碼學雜湊值(有效地透過應用一個數學運算,從影像中的位元匯出數字)。然後我們獲取這個雜湊值並將其放在區塊鏈上。
區塊鏈充當永久賬本。一旦我們將資料放在上面,它就永遠無法更改,並且我們始終可以返回檢視資料是什麼,以及何時新增到區塊鏈。
這種設定使我們能夠證明影像的建立時間不晚於某個時間。如果我們想證明影像不是更早建立的,那麼當我們為影像建立雜湊值時,我們可以新增來自我們最喜歡的區塊鏈的最新區塊的雜湊值。
好吧,但是如何知道是誰建立的影像呢?這需要一些密碼學基礎設施——與證明網站的真實性所做的事情非常相似。但是,如果人們可以信任某些“證書頒發機構”,那麼人們可以將數字簽名與驗證建立者的影像相關聯。
但是,如何知道影像是在哪裡拍攝的呢?假設人們對裝置或軟體有一定的訪問許可權,GPS 可能會被欺騙。如果在拍攝影像時記錄了足夠多的關於環境的資訊,那麼就越來越難以欺騙。附近的 Wi-Fi 網路是什麼?藍牙 ping 訊號?溫度?氣壓?聲級?加速度計讀數?如果收集了足夠的資訊,那麼就更容易判斷出是否有不符合的地方。
有幾種方法可以做到這一點。也許人們可以只使用機器學習來檢測異常。或者,也許人們可以使用關於世界如何運作的實際模型(加速度計暗示的路徑與力學方程不一致,等等)。或者,人們可以以某種方式將資訊與某些公共計算事實聯絡起來。照片聲稱拍攝地點的天氣真的是那樣的嗎?為什麼在頭頂飛過的某某飛機沒有陰影?為什麼電視上播放的內容不是它應該播放的內容?等等。
但是,好吧,即使人們只將自己限制在建立時間和建立者 ID 上,如何在實踐中驗證它們呢?
最好的方案似乎類似於現代瀏覽器處理網站安全的方式。瀏覽器嘗試檢查網站的密碼學簽名。如果匹配,瀏覽器會顯示一些內容來說明網站是安全的;如果不匹配,它會顯示某種警告。
因此,假設影像帶有關於其建立時間和建立者 ID 的資料。資料可以是元資料(例如 EXIF 資料),也可以是印在影像詳細位元上的水印。然後,影像檢視器(例如,在瀏覽器中)可以檢查區塊鏈上的雜湊值是否與影像提供的資料所暗示的內容一致。如果一切都一致,那就很好,影像檢視器可以提供建立時間和建立者 ID。如果不是,影像檢視器應警告使用者似乎有問題。
完全相同的事情可以對影片完成。它只需要影片播放器計算影片的雜湊值,並將結果與區塊鏈上的內容進行比較。透過這樣做,人們可以保證,例如,人們正在觀看在某個時間製作的完整影片。
這在實踐中將如何運作?可能人們通常不想看到在某個事件中拍攝的所有原始影片。但是,例如,新聞機構可以讓人們點選檢視,如果他們想看的話。並且人們可以很容易地想象數字簽名機制,這些機制可以用來保證編輯過的影片例如不包含某些源影片中沒有的內容,並且涉及,例如,來自這些源影片的指定連續塊。
前進的道路
那麼,這讓我們在深度偽造方面處於什麼位置呢?僅靠機器學習無法拯救我們。不會存在一個可以對任何影像或影片執行的純粹的“真假”檢測器。是的,將會有一些方法來保護自己免受“偽造”,例如佩戴活細胞自動機領帶。但我認為,對抗深度偽造的真正方法是使用區塊鏈技術——並將影像和從影像採集環境中的感測器資料獲得的密碼學雜湊值儲存在公共賬本上。雜湊值的存在可以保證影像何時被採集;從感測器和其他資料“三角測量”可以讓人確信人們所看到的是真實世界中實際發生的事情。
當然,有很多技術細節需要解決。但隨著時間的推移,我預計影像和影片檢視器可以像網路瀏覽器現在檢查安全證書一樣,例行地對照區塊鏈(和“資料三角測量計算”)進行檢查。而今天的“有圖有真相”將變成“如果不在區塊鏈上,那就沒發生過”。
