AI知道你腦子裡在想什麼,還幫你畫了出來,專案程式碼已開源
在科幻小說《三體》中,企圖佔領地球的三體人被賦予了一個很獨特的設定:透過腦電波共享訊息,彼此之間思維透明、不善陰謀。在他們那裡,想和說是同一個字。而人類則利用自身思維不透明的特性想出了「面壁計畫」,最終成功騙過三體人,取得了階段性勝利。
那麼問題來了,人類的思維真的是完全不透明的嗎?隨著一些技術手段的出現,這個問題的答案似乎沒有那麼絕對了。許多研究者都在嘗試解碼人類思維的奧秘,將一些大腦中的訊號解碼為文字、圖像等資訊。
最近,兩個研究團隊同時在圖像解碼方向上取得了重要進展,而且相關論文都被 CVPR 2023接收了。
第一個團隊來自大阪大學,他們使用最近非常火的Stable Diffusion,能從功能性磁振造影(fMRI) 獲得的人腦活動影像中重建大腦活動中的高解析度、高精準影像(請參閱《Stable Diffusion 讀你大腦訊號就能重現影像,研究還被CVPR 接收了》)。
巧合的是,幾乎同一時間,來自新加坡國立大學、香港中文大學和史丹佛大學的華人團隊也做出了類似的成果。他們開發了一款名為「MinD-Vis」的人類視覺解碼器,透過預先訓練的一個mask modeling 和latent diffusion model,能從fMRI 資料中直接解碼出人類視覺刺激。它生成的這些圖像不僅有合理的細節,而且還準確地呈現了圖像的語義和特徵(如紋理和形狀)。目前,這項研究的程式碼已經開源。
論文主題:Seeing Beyond the Brain: Conditional Diffusion Model with Sparse Masked Modeling for Vision Decoding
- #論文連結:http://arxiv.org/abs/2211.06956
- 程式碼連結:https://github.com/zjc062/mind-vis
- 專案連結:https://mind-vis.github.io/
#接下來我們將詳細介紹這篇論文。
研究概論
「所見即所思」。
人類的感知和先前知識在大腦中有著密切的關聯,我們對世界的感知不僅受到客觀刺激的影響,也受到我們的經驗影響,這些影響形成了複雜的大腦活動。理解這些大腦活動並解碼訊息是認知神經科學的重要目標之一,其中解碼視覺訊息是一個具有挑戰性的問題。
功能性磁振造影 (fMRI) 是一種常用的非侵入性且有效的方法,可用於恢復視覺訊息,如影像類別。
MinD-Vis 的目的是探討使用深度學習模型直接從 fMRI 資料解碼視覺刺激的可能性。
以往的方法直接從fMRI 數據中解碼複雜神經活動時,存在缺乏{fMRI - 圖像} 配對和有效的生物學指導的問題,所以重建的圖像通常模糊且在語義上無意義。因此,有效地學習 fMRI 表徵是一項重要的挑戰,這有助於建立大腦活動與視覺刺激之間的連結。
此外,個體變異性使問題更加複雜,我們需要從大型資料集中學習表徵,並且放寬從 fMRI 生成條件合成的限制。
因此,作者認為使用自監督學習(Self-supervised learning with pre-text task) 加上大規模生成模型可以使模型在相對較小的資料集上微調後具有上下文知識和令人驚嘆的生成能力。
在上述分析的驅動下,MinD-Vis 提出了人類視覺解碼的遮罩訊號建模與雙條件潛在擴散模型,具體貢獻如下:
- 提出了Sparse Coded-Masked Brain Modeling(SC-MBM),作為受生物學指導的有效視覺解碼大腦特徵預訓練學習器。
- 透過增加雙條件潛在擴散模型(DC-LDM),在相同語意下強化了解碼一致性,同時允許產生變異數。
- 結合 SC-MBM 的表示能力和 DC-LDM 的生成能力,MinD-Vis 產生的影像在保留語意資訊的同時更加合理。
- 在多個資料集上進行了定量和定性測試。
#與過往的方法比較– 產生品質
#
#與過往的方法進行比較– 評判指標的量化比較
- 自監督學習大規模生成模型
- 由於收集{fMRI - 圖像} 配對非常昂貴且耗時,這個任務一直存在缺乏資料標註的問題。另外,每個資料集、每個個體的資料都會存在一定的域偏移。
- 在這個任務中,研究人員的目標是建立大腦活動與視覺刺激之間的聯繫,並由此產生相應的圖像訊息。
- 為此,他們使用了自監督學習和大規模生成模型。他們認為這種方法可以使模型在相對較小的數據集上進行微調,並獲得上下文知識和令人驚嘆的生成能力。
- MinD-Vis 框架
fMRI 數據有這些特徵和問題:
- #fMRI 用3D 體素(voxel)來測量大腦血氧水平相關(BOLD)的變化,來觀測大腦活動變化。鄰近體素的幅度通常相似,顯示 fMRI 資料中存在空間冗餘。
- 在計算 fMRI 資料時,通常會擷取 Region of Interest (ROI) 並將資料打成 1D vector。在這個任務裡,只提取大腦visual cortex 的信號,因此,體素的數量(約為4000)遠比圖像裡像素點的數量(256*256*3)少,這樣的數據在緯度方面和通常處理圖像數據的方式存在相當的差距。
由於個體差異,實驗設計的差異,腦訊號的複雜程度,每個資料集、每個個體的資料都會存在一定的域偏移。
#########對於一個固定的視覺刺激,研究者希望模型還原的圖像在語義上一致;但由於個體差異,每個人看到這個視覺刺激的反應不同,研究者又希望模型有一定的變異數和彈性。 ###############為了解決這些問題, MinD-Vis 包含兩個階段:###############利用大規模的fMRI 資料集來訓練Masked Autoencoder,來學習fMRI representation。 ############將預先訓練好的 fMRI encoder 與 LDM 透過 cross-attention conditioning 和 time-step conditioning 相整合進行 double conditioning,以進行條件合成。然後,透過使用配對的 {fMRI, Image} 來共同 finetune LDM 中的 cross attention head。 ###############以下將在這裡詳細介紹這兩個步驟。 ######MinD-Vis Overview
(A)Sparse-Coded Masked Brain Modeling (SC-MBM) (MinD-Vis Overview 左)
由於fMRI 空間資訊冗餘,即使大部分被遮蓋,fMRI 數據仍然可以恢復。因此,在 MinD-Vis 的第一階段,為了節省計算時間,大部分 fMRI 資料都被遮蓋了。這裡,作者使用了類似Masked Autoencoder 的做法:
- #將fMRI voxels 分割成patches
- ##使用有等於patches 大小的步長的1D 卷積層轉換成embedding
- 把剩餘的fMRI patch 加入positional embedding 後作為vision transformer 的輸入
- #解碼得到重建的資料
- 計算重建的資料與原始資料的loss
- 透過反向傳播優化模型,使得重建的資料盡可能地與原資料相似
- 重複2-6 的步驟,訓練出最終模型
#SC-MBM 能有效還原被掩蓋的fMRI 訊息
這個設計和Mask ed Autoencoder 有什麼差別?
- 當 mask modelling 應用於自然影像時,模型一般使用等於或略大於 1 的 embedding-to-patch-size ratio。
- 在這個任務中,作者使用了比較大的embedding-to-patch-size ratio,這能顯著提高訊息容量,為fMRI 創造了大的表徵空間,這種設計也對應於大腦中訊息的稀疏編碼*。
SC-MBM 的消融實驗
(B)Double-Conditioned LDM (DC-LDM) (MinD-Vis Overview 右)
在Stage A 中進行了large-scale context learning 之後,fMRI encoder 可以將fMRI 資料轉換為局部性限制的sparse representation。在這裡,作者將解碼任務表述為條件生成問題,並使用預先訓練的 LDM 來解決此問題。
- LDM 在影像的潛在空間上操作,fMRI 資料 z 作為條件訊息,目標是學習透過反向擴散過程形成影像。
- 在影像生成任務中,多樣性和一致性是相反的目標,fMRI 到影像更依賴生成一致性。
- 為了確保產生一致性,作者將 cross attention conditioning 和 time step conditioning 結合,並在 UNet 的中間層使用具有 time embedding 的條件機制。
- 他們進一步把最佳化目標式重新表述為雙重調節交替式。
微調
#在fMRI encoder 通過SC-MBM 預訓練後,它與預先訓練的LDM 通過double conditioning 整合在一起。在這裡,作者:
#DC-LDM 的消融實驗
#額外細節
意外的是,MinD-Vis 可以解碼出一些在ground truth 影像裡並不實際存在,但與圖片內容十分相關的細節。比方說,當圖片是自然風景時,MinD-Vis 解碼出了河流和藍天;在提供房屋時,MinD-Vis 解碼出了類似的室內裝潢。這既有好處又有壞處。好處在於,這說明我們能夠解碼出想像到的內容;壞處在於,這可能會影響解碼結果的評估。
好聞樂見的翻車片段
作者認為,在訓練樣本數量較少的情況下,刺激的解碼難度會有所不同。例如,GOD 資料集包含的動物訓練樣本比服裝多。這意味著一個語義上類似於 “毛茸茸” 的詞更可能被解碼為動物而不是服裝,如上圖所示,其中一隻襪子被解碼為一隻羊。
實驗設定資料集
- #在這裡,作者用了三個公開數據集。
微調 Encoder 和第二階段的生成模型:使用了 Generic Object Decoding Dataset (GOD) 和 Brain, Object, Landscape Dataset (BOLD5000) 資料集。這兩個資料集分別提供了 1250 張和 5254 張 {fMRI, Image} 配對,其中,分別取了 50 張和 113 張作為測試集。
模型結構
本文模型結構的設計(ViT 和擴散模型)主要參考過去的文獻。模型參數細節請參考內文。同樣地,他們也採用了一種不對稱的體系結構:編碼器旨在學習有意義的 fMRI 表示,而解碼器試圖預測被遮蓋的塊。因此,我們遵循以前的設計,使解碼器更小,預訓練後我們將其捨棄。
評判指標跟過往的文獻一樣,作者也使用了n-way top-1 和top-5 分類準確率來評估結果的語意正確性。這是一種在多次試驗中,透過計算 n-1 個隨機選擇的類別和正確類別的 top-1 和 top-5 分類準確率來評估結果的方法。與先前的方法不同,他們在這裡採用了更直接、可複製的評估方法,即使用預先訓練的 ImageNet1K 分類器來判斷生成圖像的語義正確性,而不是使用 handcrafted features。此外,他們還使用了 Fréchet inception distance(FID)作為參考來評估產生影像的品質。但是,由於資料集中影像數量有限,因此 FID 可能無法完美地評估影像分佈。
############效果##########這篇文章的實驗是在個體層次上進行的,即模型在同一個個體上進行訓練和測試。為了與先前的文獻進行比較,這裡報告了 GOD 資料集第三位被試的結果,並在附錄中列出了其他被試的結果。
寫在最後
透過這個項目,作者展示了透過 fMRI 還原人腦視覺訊息的可行性。然而,這個領域有許多問題需要解決,例如如何更好地處理個體之間的差異性,如何減少噪音和乾擾對解碼的影響,如何將fMRI 解碼與其他神經科學技術結合起來,以更全面地理解人類大腦的機制和功能。同時,我們也需要更了解和尊重人類大腦和個體隱私方面的倫理和法律問題。
此外,我們還需要探索更廣泛的應用場景,例如醫學和人機互動等領域,以便將這項技術轉化為實際應用。在醫學領域,fMRI 解碼技術未來可能可以被用來幫助視覺障礙人士、聽覺障礙人士、甚至全身癱瘓患者等特殊群體來解碼他們的想法。這些人由於身體上的障礙,無法透過傳統的溝通方式來表達自己的想法和意願。透過使用 fMRI 技術,科學家可以解碼他們的大腦活動,從而獲取他們的想法和意願,進而與他們進行更自然和高效的交流。在人機互動領域,fMRI 解碼技術可以被用來開發更智慧和自適應的人機介面和控制系統,例如透過解碼使用者的大腦活動來實現更自然和高效的人機互動體驗。
我們相信,在大規模資料集大模型算力的加持下,fMRI 解碼將會有更廣泛和深遠的影響,推動認知神經科學和人工智慧領域的發展。
註:*使用稀疏編碼在腦中學習視覺刺激表示的生物學基礎:稀疏編碼曾被提出來作為感覺訊息表徵的一種策略。研究表明,視覺刺激在視覺皮層中被稀疏編碼,這可以增加訊息傳輸效率並減少腦中的冗餘。使用 fMRI 可以從視覺皮層收集的少量資料中重建自然場景的視覺內容。稀疏編碼可能是電腦視覺中編碼的有效方式。文章中提到了SC-MBM 方法,它將fMRI 資料分成小塊來引入局部性約束,然後將每個小塊稀疏編碼成高維度向量空間,這樣可以作為生物學上有效且高效的腦特徵學習器,用來進行視覺編碼解碼。
#以上是AI知道你腦子裡在想什麼,還幫你畫了出來,專案程式碼已開源的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
