---
# System prepended metadata

title: 'MCF: Mutual Correction Framework for Semi-Supervised Medical Image Segmentation'
tags: [semi-supervised, paper_note]

---

# MCF: Mutual Correction Framework for Semi-Supervised Medical Image Segmentation
CVPR2023
Authors: Yongchao Wang, Bin Xiao, Xiuli Bi, Weisheng Li, Xinbo Gao
## Introduction
現今SSMIS的方法大多使用兩種子網路，加上隨機擾動可以在semi-supervised的條件下得到不錯的成效，但可能造成cognitive biases，意旨讓模型overfitting到錯誤的模型預測造成效能損壞。

![image](https://hackmd.io/_uploads/rkKQsrVYp.png)

用MT-like methods作為例子來看，MT架構的特色主要分為三種: 
- 包含可共享的兩種子網路(teacher & student)，共享結構使模型的變異性(variability)下降
- 使用EMA的方式對模型做更新，這個參數更新方式導致teacher模型最後的權重變為student歷史狀態的混合體，teacher模型將被student所限制
![image](https://hackmd.io/_uploads/BJcoprNFp.png) 
- 使用Consistency regularization技術增加擾動訓練模型，作為一種生成pseudo label的策略會因預測品質影響到最終訓練過程，且結合前兩點因teacher被student嚴重限制導致模型預測走不出cognitive biases，造成模型對於校正錯誤預測時的困難。

圖中( C )為訓練過程中bias數量的比較圖，且可從( D )中看出紅色的bias區塊大多數出現在邊緣，若能減少bias數量將有助於模型邊緣的分割。
作者的目標希望找出一個機制使模型學習到bias的知識且有能力去校正他，他提出MCF包含了兩種不同結構的子網路且擁有獨立的權重更新，可依靠強大的交互方式互相校正彼此的預測結果。
MCF分別對於label data及unlabel data發展了兩種訓練方式，contrastive difference review (CDR)及dynamic competitive pseudo-label generation (DCPLG)，CDR主要將兩個子網的預測差異做為淺在偏差並且監督子網去做校正；我們觀察到medical database與一般資料及不同在於每張medical image都與目標偵測物有相關，所以可以合理的在少量label data上去評估效能，不同於MT做法，DCPLG不固定子網作為teacher或student的角色，使用動態評估的方式選擇作為pseudo label生成的網路。

## Contribution
- 本篇論文探討了校正模型偏差的問題並提出一個新的MCF框架可應用於 semi-supervised medical image segmentation
- CDR模組提出可監督及校正淺在偏差的網路協助方式
- 因medical資料的特性，作者提出的DCPLG可獲取更可靠的pseudo label

## Contrastive difference review (CDR)
![image](https://hackmd.io/_uploads/ByV0q-Htp.png)

兩個子網分別以![image](https://hackmd.io/_uploads/Hk_MoZHYp.png)及![image](https://hackmd.io/_uploads/rkVBjZStT.png)表示，當作輸入的X包含相同數量的label data![image](https://hackmd.io/_uploads/HJtggMrtp.png)及unlabel data![image](https://hackmd.io/_uploads/SJ9NxfBY6.png)，將輸入分別進入子網產生pseudo label:
![image](https://hackmd.io/_uploads/rJB5lGrFT.png)
pseudo label為label data及unlabel data輸出的聯集:![image](https://hackmd.io/_uploads/BJ5hlzBta.png)
子網路的loss function分別以supervised及unsupervised方式更新，且![image](https://hackmd.io/_uploads/SJCa0GHKa.png)的loss除了![image](https://hackmd.io/_uploads/H1Nl1XrYT.png)及![image](https://hackmd.io/_uploads/BJOW1mStT.png)兩種傳統的segmentation loss，![image](https://hackmd.io/_uploads/SkHBkmSY6.png)用來對淺在預測錯誤做監督和校正。
在相同的pixel下兩種子網友不一致的預測結果，表明有義方議定是錯誤的，因此我們可以把不一致的區塊當成淺在的預測錯誤讓模型重新做審視，經過binarization將預測區域變成黑白mask再做XOR:
![image](https://hackmd.io/_uploads/BkAriQSK6.png)
利用這個不同預測的區塊mask對![image](https://hackmd.io/_uploads/SJCa0GHKa.png)做clip取得兩個子網針對錯誤預測的pseudo label:
![image](https://hackmd.io/_uploads/B1nW2QBKp.png)
透過設計新的rectification loss讓模型可以重新審視淺在錯誤預測的區塊更新模型
![image](https://hackmd.io/_uploads/H1a53QBYT.png)

## Dynamic competitive pseudo-label generation (DCPLG)
![image](https://hackmd.io/_uploads/rk2PamBFT.png)
在每次迭代中利用label data的輸出結果分別計算兩子網平均的dice loss，再用此判斷較低loss的網路來擔任生成pseudo label的工作，為了最小化entropy使用sharpening function轉變預測結果成soft pseudo-labels，作者認為loss可以直接反映出dice的係數且不需任何額外計算負擔，

## Framework
![image](https://hackmd.io/_uploads/Bk-KcUVKT.png)

![image](https://hackmd.io/_uploads/rk68-VrFp.png)
![image](https://hackmd.io/_uploads/HJ-9-VrF6.png)做為一個指標判斷不屬於生成pseudo label的模型才列入loss計算

![image](https://hackmd.io/_uploads/Hk0xfVSYT.png)

![image](https://hackmd.io/_uploads/rJh8MNSFa.png)
![image](https://hackmd.io/_uploads/HJwufVBtT.png)是指演算法回傳的pseudo label

