CLAM用于弱監督WSI分析

計算病理學(computational pathology)下的深度學習方法需要手動注釋大型 WSI 數據集,并且通常存在領域適應性和可解釋性較差的問題。作者報告了一種可解釋的弱監督深度學習方法,只需要WSI級標簽。將該方法命名為聚類約束注意力多實例學習 (CLAM,clustering-constrained-attention multiple-instance learning),它使用注意力來識別具有高診斷價值的子區域,以準確對整個WSI進行分類,并在已識別的代表性區域上進行實例級聚類以約束和細化特征空間。通過將 CLAM 應用于腎細胞癌和非小細胞肺癌的亞型分類以及淋巴結轉移的檢測,表明它可用于定位 WSI 上的形態特征,其性能優于標準弱監督分類算法。

來自:Data-efficient and weakly supervised computational pathology on whole-slide images, Nature Biomedical Engineering, 2021
工程地址:https://github.com/mahmoodlab/CLAM

目錄

  • CLAM概述
  • 方法
    • Instance-level clustering
    • Smooth SVM loss
    • 訓練細節

CLAM概述

fig1a

  • 圖1a:分割后,我們可以從WSI中提取patches。

fig1b

  • 圖1b:patches被預訓練的CNN編碼成特征表示,在訓練和推理過程中,每個WSI中提取的patch作為特征向量傳遞給CLAM。使用注意力網絡將patch信息聚合為WSI級表示,用于最終的診斷預測。

fig1cd

  • 圖1c:對于每個類,注意力網絡對WSI中的每個patch進行排名,根據其對WSI診斷的重要性分配注意力分數(左)。注意力pooling根據每個patch的注意力得分對其進行加權,并將patch級別的特征總結為WSI級別的表示(右下)。在訓練過程中,給定GT標簽,強參與(紅色)和弱參與(藍色)patch可以額外用作代表性樣本以監督聚類層,聚類層學習豐富的patch級特征空間,可在不同類別的正實例和負實例之間分離(右上)。
  • 圖1d:注意力得分可以可視化為熱圖,以識別ROI(解釋用于診斷的重要形態學)。

方法

CLAM是一個高通量的深度學習工具箱,旨在解決計算病理學中的弱監督分類任務,其中訓練集中的每個WSI是具有已知WSI級別的單個數據點,但對于WSI中的任何像素或patch都沒有類別特定的信息或注釋。CLAM建立在MIL框架之上,該框架將每個WSI(稱為bag)視為由許多(多達數十萬)較小的區域或patch(稱為instance)組成的集合。MIL框架通常將其范圍限制在一個正類和一個負類的二元分類問題上,并基于這樣的假設:如果至少有一個patch屬于正類,那么整個WSI應該被分類為正類(陽性),而如果所有patch都屬于負類,則WSI應該被分類為負類(陰性)。這一假設體現在max-pooling聚合函數上,它簡單地使用正類預測概率最高的patch進行WSI級預測,這也使得MIL不適合多類分類問題。

除了Max-pooling之外,雖然可以使用其他聚合函數,但它們依然不能提供簡單、直觀的模型可解釋性機制。相比之下,CLAM通常適用于多類別分類,它是圍繞可訓練和可解釋的基于注意力的pooling函數構建的,從patch級表示中聚合每個類別的WSI級表示。在多分類注意力pooling設計中,注意力網絡預測了一個多類分類問題中對應于 N N N個類別的 N N N個不同的注意力分數集。這使得網絡能夠明確地了解哪些形態學特征應該被視為每個類的積極證據(類相關的特征)和消極證據(非信息性的,缺乏類定義的特征),并總結WSI級表示。

具體來說,對于表示為 K K K個實例(patch)的WSI,我們將對應于第 k k k個patch的實例級嵌入表示為 z k z_{k} zk?。在CLAM中,第一個全連接層 W 1 ∈ R 512 × 1024 W_{1}\in\R^{512\times 1024} W1?R512×1024進一步將每個固定的patch級表示 z k ∈ R 1024 z_{k}\in\R^{1024} zk?R1024壓縮為 h k ∈ R 512 h_{k}\in\R^{512} hk?R512。注意力網絡由幾個堆疊的全連接層組成;如果將注意力網絡的前兩層 U a ∈ R 256 × 512 U_{a}\in\R^{256\times 512} Ua?R256×512+ V a ∈ R 256 × 512 V_{a}\in\R^{256\times 512} Va?R256×512 W 1 W_{1} W1?共同視為所有類共享的注意力主干的一部分,注意力網絡將分為 N N N個平行分支: W a , 1 , . . . , W a , N ∈ R 1 × 256 W_{a,1},...,W_{a,N}\in\R^{1\times 256} Wa,1?,...,Wa,N?R1×256。同樣, N N N個并行獨立分類器 W c , 1 , . . . , W c , N W_{c,1},...,W_{c,N} Wc,1?,...,Wc,N?對每個特定類的WSI表示進行評分。

因此,第 i i i類的第 k k k個patch的注意力分數記為 a i , k a_{i,k} ai,k?,并且根據第 i i i類注意力分數聚合WSI表示記為 h s l i d e , i ∈ R 512 h_{slide,i}\in\R^{512} hslide,i?R512
eq12
分類層 W c , i W_{c,i} Wc,i?給出相應的非歸一化WSI級分數 s s l i d e , i s_{slide,i} sslide,i? s s l i d e , i = W c , i h s l i d e , i s_{slide,i}=W_{c,i}h_{slide,i} sslide,i?=Wc,i?hslide,i?。我們在模型的注意力主干的每一層后使用dropout( P = 0.25 P=0.25 P=0.25)進行正則化。

對于推理,通過對WSI級預測分數應用softmax函數來計算每個類的預測概率分布。

Instance-level clustering

為了進一步鼓勵學習特定于類的特征,我們在訓練期間加入一個額外的二值聚類目標。對于 N N N個類中的每一個,在第一個層 W 1 W_{1} W1?之后加一個全連接層。將第 i i i個類對應的聚類層權重記為 W i n s t , i ∈ R 2 × 512 W_{inst,i}\in\R^{2\times 512} Winst,i?R2×512,則第 k k k個patch預測的聚類分數為 p i , k p_{i,k} pi,k? p i , k = W i n s t , i h k p_{i,k}=W_{inst,i}h_{k} pi,k?=Winst,i?hk?

鑒于我們無法訪問patch級標簽,我們使用注意力網絡的輸出在每次訓練迭代中為每張WSI生成偽標簽,以監督聚類。聚類中只優化最強參與和最弱參與的區域。為了避免混淆,對于給定的WSI,對于GT標簽 Y ∈ { 1 , . . . , N } Y\in\left\{1,...,N\right\} Y{1,...,N},我們將GT類別對應的注意力分支 W a , Y W_{a,Y} Wa,Y?稱為"in-the-class",其余的 N ? 1 N-1 N?1個注意力分支稱為"out-the-class"。如果將in-the-class的注意力分數的排序列表(升序)表示為 a ~ Y , 1 , . . . , a ~ Y , K \widetilde{a}_{Y,1},...,\widetilde{a}_{Y,K} a Y,1?,...,a Y,K?,我們將注意力得分最低的 B B B個patch分配給負類標簽 ( y Y , b = 0 ) (y_{Y,b}=0) (yY,b?=0),其中, 1 ≤ b ≤ B 1\leq b\leq B 1bB。注意力得分最高的 B B B個patch分配給正類標簽 ( y Y , b = 1 ) (y_{Y,b}=1) (yY,b?=1),其中, B + 1 ≤ b ≤ 2 B B+1\leq b\leq 2B B+1b2B。直觀地說,由于在訓練過程中每個注意力分支都受到WSI級別標簽的監督,因此高注意力分數的 B B B個patch被期望成為 Y Y Y類別的強參與陽性證據,而低注意分數的 B B B個patch被期望成為 Y Y Y類別的強參與陰性證據。聚類任務可以直觀地解釋為約束patch級特征空間 h k h_k hk?,使每個類別的強參與特征證據與其陰性證據線性可分。

對于癌癥亞型問題,所有類別通常被認為是互斥的(也就是說,它們不能出現在同一張WSI中),因為將in-the-class注意力分支中最受關注和最不受關注的片段分別聚類為正證據和負證據,因此對N?1個out-the-class注意力分支施加額外的監督是有意義的。也就是說,給定GT的WSI標簽 Y Y Y,任取類別 i i i不屬于 Y Y Y,如果我們假設WSI上的patch都不屬于 i i i類,那么注意力得分最高的 B B B個patch就不能成為 i i i類的正證據(由于互斥性)。

因此,除了對從in-the-class注意力分支中選擇的 2 B 2B 2B個patch進行聚類外,還將所有out-the-class注意力分支中最受關注的前 B B B個patch分配為負聚類標簽,因為它們被認為是假陽性證據。另一方面,如果互斥性假設不成立(例如,癌癥與非癌癥問題,其中一張WSI可以包含來自腫瘤組織和正常組織的patch),那么就不會監督來自out-the-class分支的高注意力的patch的聚類,因為我們不知道它們是否為假陽性。

實例級聚類算法如下:
ag1

Smooth SVM loss

對于實例級聚類任務,我們使用平滑的top-1 SVM loss,它是基于多分類SVM loss的,神經網絡模型輸出一個預測分數向量 s s s,其中 s s s中的每個條目對應于模型對單個類的預測。給定所有GT標簽 y ∈ { 1 , . . . , N } y\in\left\{1,...,N\right\} y{1,...,N},多類別SVM loss對分類器進行線性懲罰,僅當該差值大于指定的裕度 α α α時,對GT類的預測分數與其余類的最高預測分數之間的差值進行懲罰。Smooth變體(公式5)在多分類SVM損失中加入了溫度標度 τ τ τ,它已被證明具有非稀疏梯度的無限可微性,并且在有效實現算法時適用于深度神經網絡的優化。平滑支持向量機損失可以看作是廣泛使用的交叉熵分類損失的一種推廣,適用于不同的邊界有限值選擇和不同的溫度尺度

經驗表明,當數據標簽有噪聲或數據有限時,向損失函數引入margin可以減少過擬合。在訓練過程中,創建的用于監督實例級聚類任務的偽標簽必然是有噪聲的。也就是說,強參與的patch可能不一定對應于GT類,同樣,弱參與的patch也不能保證是該類的負證據。因此,代替廣泛使用的交叉熵損失,將二進制top-1平滑SVM損失應用于網絡聚類層的輸出。在所有的實驗中, α α α τ τ τ都被設置為1.0。
eq45

訓練細節

在訓練過程中,WSI被隨機采樣。每張WSI的多項采樣概率與GT類的頻率成反比(來自代表性不足的類的WSI相對于其他類更有可能被采樣),以減輕訓練集中的類不平衡。注意力模塊的權重參數隨機初始化,并使用WSI標簽和模型其余部分端到端訓練,總的損失是WSI級損失 L s l i d e L_{slide} Lslide?和instance-level損失 L p a t c h L_{patch} Lpatch?之和。

為了計算 L s l i d e L_{slide} Lslide?,使用標準交叉熵損失將 s s l i d e s_{slide} sslide?與真實的WSI級標簽進行比較,為了計算 L p a t c h L_{patch} Lpatch?,使用二元Smooth SVM損失將每個采樣patch的實例級聚類預測分數 p k p_k pk?與相應的偽聚類標簽進行比較(回想一下,對于非亞型問題,從in-the-class分支中總共采樣了 2 B 2B 2B個patch。而對于亞型問題,從in-the-class分支中采樣 2 B 2B 2B個patch,從 N ? 1 N?1 N?1個out-the-class注意力分支各采樣 B B B個patch)。

數據集摘要見補充表8:
sptab8

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40633.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40633.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40633.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Perl 格式化輸出:提升代碼可讀性的技巧

引言 Perl 是一種功能強大的腳本語言,廣泛用于文本處理、系統管理、網絡編程等多個領域。在 Perl 編程中,代碼的格式化輸出不僅有助于提升代碼的可讀性,還能增強程序的用戶體驗。本文將詳細介紹如何在 Perl 中實現代碼的格式化輸出。 Perl …

【HarmonyOS4學習筆記】《HarmonyOS4+NEXT星河版入門到企業級實戰教程》課程學習筆記(二十一)

課程地址: 黑馬程序員HarmonyOS4NEXT星河版入門到企業級實戰教程,一套精通鴻蒙應用開發 (本篇筆記對應課程第 31 節) P31《30.數據持久化-關系型數據庫》 上一節中學習了使用用戶首選項的方式實現數據持久化,但用戶首…

微機原理 選擇題

D C MOV、PUSH、POP、XLAT(查表)、IN、OUT不影響標志位 D B D C D C D B 1. (單選題, 5分)8位無符號數(字節)表示的數值范圍是( ), 16位無符號數(字)表示的數值范圍是( )。 A. 0~128 0~32768B. 0~255 0~655…

為什么 npm run serve 正常,npm run build 就報錯:digital envelope routines::unsupported

這個錯誤通常與 Node.js 版本和使用的加密算法有關。讓我解釋一下原因和可能的解決方案: 錯誤原因 這個錯誤(“error:0308010C:digital envelope routines::unsupported”)通常發生在以下情況: 使用較新版本的 Node.js&#xf…

Vscode快捷鍵崩潰

Vscode快捷鍵崩潰 Linux虛擬機下使用vscode寫代碼【ctrlA,CtrlC,CtrlV】等快捷鍵都不能使用,還會出現“NO text insert“等抽象的指令,問題就是不知道什么時候裝了一個VIM插件,讓他滾出電腦》》》

監聽 web 容器內的網絡請求(錯誤的方案)

需求 iOS 項目中 wkwebview 實現的 web 容器,需要監聽 web 容器內的所有網絡請求 實現 在 iOS 項目中使用 WKWebView 實現的 Web 容器,監聽 Web 容器內的網絡請求是一個常見需求。可以通過實現 WKURLSchemeHandler 協議來處理自定義的 URL scheme&#…

通過 API 接口管理 Kafka

文章目錄 前言Topic 管理配置管理消費者群組管理查看消費者群組修改消費者群組 為主題添加分區從主題中刪除消息首領選舉 前言 除了通過命令行和可視化界面對 kafka 進行管理,也可以通過 AdminClient的 API 對 kafka 進行管理。本文將介紹如何通過 AdminClient 進行…

[Vue學習]生命周期及其各階段舉例

當我們運行vue項目,看到了屏幕上顯示的界面,看到了界面上顯示的數據和標簽,之后將這個界面叉掉,這一過程其實經歷了一整個vue的生命周期的四個階段,即創建階段、掛載階段、更新階段以及銷毀階段, 而對于每個階段的啟動…

使用 pyecharts 渲染成圖片程序報錯: echarts is not defined問題處理

背景 之前寫的使用 snapshot_selenium 來保存pyeacharts渲染成的網頁截圖,可以正常運行。程序擱置了半年,不知道動了電腦哪里,再次運行程序時,程序開始報錯:JavascriptException: javascript error: echarts is not d…

【SQL】已解決:SQL分組去重并合并相同數據

文章目錄 一、分析問題背景二、可能出錯的原因三、錯誤代碼示例四、正確代碼示例五、注意事項 已解決:SQL分組去重并合并相同數據 在數據庫操作中,數據的分組、去重以及合并是常見需求。然而,初學者在編寫SQL語句時,可能會遇到一…

正弦波與單位圓關系的可視化 包括源碼

正弦波與單位圓關系的可視化 包括源碼 flyfish 正弦波與單位圓的關系 正弦波可以通過單位圓上的點在直線(通常是 y 軸)上的投影來表示。具體來說,考慮一個單位圓,其半徑為 1,圓心在原點。我們可以通過旋轉一個角度 …

每日一道算法題 判斷子序列

題目 判斷子序列_牛客題霸_牛客網 (nowcoder.com) Python # # 代碼中的類名、方法名、參數名已經指定,請勿修改,直接返回方法規定的值即可 # # # param S string字符串 # param T string字符串 # return bool布爾型 # class Solution:def isSubseq…

【全網最全流程+所有代碼】企業微信回調聯調,開通企微回調和收到企微回調

流程圖: 只是這里的消息回調,僅作為提示,群內有消息了。不是具體的消息,而是類似這樣的結構,: 如果需要獲取消息,還需要拉取企微群內消息方法,這個后續再更新。 好了,我們開始吧。 開啟消息回調和接收消息回調,地址是一樣的,只是 開啟消息回調,get請求, 接受消…

人工智能在日常生活中的十大應用:從醫療到智能家居

人工智能已成為當今人類日常生活的重要組成部分,無論您是否意識到,它幾乎在所有場景中都能提供幫助。每次您進行網絡搜索、在線預訂旅行、接收來自京東等購物平臺的產品推薦又或是打開您的新浪、抖音時,都能看到影子,這些只是一些…

代碼隨想錄算法訓練營第51天 [115.不同的子序列 583. 兩個字符串的刪除操作 72. 編輯距離 ]

代碼隨想錄算法訓練營第51天 [115.不同的子序列 583. 兩個字符串的刪除操作 72. 編輯距離 ] 一、115.不同的子序列 鏈接: 代碼隨想錄. 思路:dp[i][j] 以t[j-1]為結尾的字符串在 以s[i-1]為結尾的字 符串出現個數 相等的時候 dp[i][j] dp[i - 1][j - 1] dp[i - 1][…

JAVA案例模擬電影信息系統

一案例要求: 二具體代碼(需要在同一個包下創建三個類) Ⅰ:實現類 package 重修;import java.util.Random; import java.util.Scanner;public class first {public static void main(String[] args) {javabean[]moviesnew javabean[4];movies[0] new ja…

加密與安全_ Jasypt (Java Simplified Encryption)不完全指北

文章目錄 官網功能概述Code附 官網 http://www.jasypt.org/ 功能概述 Jasypt 是一個 Java 庫,它允許開發人員以最小的努力添加基本的加密功能,并且不需要深入了解密碼學的工作原理。 高安全性、基于標準的加密技術,適用于單向和雙向加密。…

AIGC對設計師積極性的影響

隨著科技的迅猛發展,生成式人工智能(AIGC)工具正逐漸深入設計的每個角落,對設計師的工作方式和思維模式產生了深遠的影響。AIGC不僅極大提升了設計師的工作效率,更激發了他們的創新思維,為設計行業帶來了翻…

Spring Boot在java領域中有哪些優勢

哈嘍,大家好呀,淼淼又來和大家見面啦,隨著云計算、微服務架構的興起,Java開發領域迫切需要一套高效、靈活且易于上手的框架來應對日益復雜的業務需求。正是在這樣的背景下,Spring Boot應運而生,以其獨特的魅…

Dungeonborne聯機失敗、延遲高、卡頓的解決方法

Dungeonborne將第一人稱動作的即時性與經典的西幻RPG職業設計巧妙融合,為玩家帶來了一場前所未有的游戲體驗。在這款沉浸式第一人稱PvPvE地下城探險游戲中,我們可以獨自深入探索,也可以與值得信賴的伙伴并肩作戰,共同揭開地下城的…