深度學習Paper系列(05):U-Net

劉智皓 (Chih-Hao Liu)
6 min readMay 2, 2023

--

Hello!大家好,今天我們要來介紹一個深度學習演算法U-Net,老話一句我這個系列,有點像是想到什麼就寫什麼,不像之前我的機器學習 學習筆記系列,是有連貫性的。

論文回顧

OK!我們今天要介紹的這個U-Net,他是一個影像分割演算法,例如像今天有一隻貓的照片進來,我們的深度學習模型就可以把貓的輪廓和身形給分割出來。

而今天講的這個U-Net,其論文名稱叫做:

g

說到這個U-Net,他是一個特別適合醫學影像分割的模型架構,像是癌症腫瘤分隔、生物細胞核分割,至於為什麼特別適合分割醫學影像在後面我會講到。

U-Net

U-Net之所以叫做U-Net其實就只是模型的架構長得很像字母U而已

U-Net主要是由一連串的卷積層所構成,我們可以看到在這張圖中

模型的左半部分,也就是U的左半邊,我們可以把它簡單理解為Encoder、而模型的右半部分,也就是U的右半邊,為Decoder。

所以U-Net這個架構其實和Autoencoder很像,只是我們的輸入是影像,輸出是影像分割的結果。通常輸入和輸出的影像大小一樣!

而U-Net和Autoencoder最不一樣,也是U-Net的精隨之處,就是每一層中間有所謂的「Skip Connection」。在圖片中我們可以看到這是一個5層架構的U-Net,每一層卷積層的Recpetive Field都不一樣,層數越深Recpetive Field越大。而這邊大家可以把Recpetive Field理解成模型抓圖片特徵看到的範圍大小,所以

越上層抓到的特徵越屬於local view、越下層抓到的特徵越屬於global view。

而skip connection就是把encoder那一層所抓到的特徵,串接到decoder對應層數的特徵。這樣的好處是什麼呢?

實際上我們今天如果把skip connection拿掉,這個U-Net架構就會馬上變成Autoencoder。所以假使我今天在上層抓到local特徵,會因為隨著經過下層的卷積層而丟失,所以如果我們是想要從皮膚組織分割細胞核,如果沒有skip connection,模型很難精確地抓到像是細胞核的邊界和型態這種非常local的資訊。

進階討論

其實我們可以看到在每一塊卷積層中,其架構就是兩個深藍色的箭頭,也就是輸入的特徵,會經過兩次conv 3×3和ReLu。接下來才是經過紅色箭頭max pool 2×2,也就是下取樣兩倍。

所以我們是可以能用這個架構去回推每一層U-Net所抓到特徵Recpetive Field大小。

因為4個pixel經過max pool 2×2會變成一個pixel,conv 3×3會把範圍3 × 3 pixel的範圍做卷積,所以當我們的原始影像經過encoder的第一層,所看抓到的特徵視野為5 × 5 pixel,經過max pool 2×2,所抓到的特徵視野變為6 × 6 pixel。

所以根據上述推算方法我們可以計算出每一層的特徵Recpetive Field為

第一層:5 × 5 pixel。

第二層:14 × 14 pixel。

第三層:32 × 32 pixel。

第四層:68 × 68 pixel。

第五層:140 × 140 pixel。

根據上面我們所算出的Recpetive Field,我們就可以知道為什麼U-Net那麼適合拿來做醫學影像分割,因為通常醫學影像中

要分割的物件和其相對背景有相當大的關聯

什麼意思呢?比方說我們今天要分割狗的照片,我們不會去在意狗是否在草地上跑,還是躺在床上睡覺。但是對於醫學影像,我們就需要知道肺和心臟位於胸腔內,對於肺和心臟就是local訊息、胸腔就是global訊息。

U-Net架構優化

其實後來U-Net有出來很多的改進和變種,如V-Net、U-Net++、Residual U-Net、Attention U-Net、Attention Residual U-Net (?_?)。但實際上在2021年的時候,Nvidia發了一篇paper

說明其實我們根本不需要,上面這些改進的模型和變種,很多只是在特定的醫學影像分割問題上超越U-Net,實際上U-Net本身的架構就已經很好了,只要針對細部的卷積層、上下採樣、loss function做一點小改進就好。作者甚至還寫「No-New U-Net」。

有興趣的朋友可以去看看那篇paper,其實他們發現在訓練的時候加入deep supervision的技巧和DICE loss就可以達到SOTA的結果,不過deep supervision和DICE loss不是本篇的重點,所以這邊留給大家當延伸閱讀!

Reference

[1] Ronneberger, O., Fischer, P., & Brox, T. (2015). U-net: Convolutional networks for biomedical image segmentation. In Medical Image Computing and Computer-Assisted Intervention–MICCAI 2015: 18th International Conference, Munich, Germany, October 5–9, 2015, Proceedings, Part III 18 (pp. 234–241). Springer International Publishing.

[2] Futrega, M., Milesi, A., Marcinkiewicz, M., & Ribalta, P. (2022, July). Optimized U-Net for brain tumor segmentation. In Brainlesion: Glioma, Multiple Sclerosis, Stroke and Traumatic Brain Injuries: 7th International Workshop, BrainLes 2021, Held in Conjunction with MICCAI 2021, Virtual Event, September 27, 2021, Revised Selected Papers, Part II (pp. 15–29). Cham: Springer International Publishing.

--

--

劉智皓 (Chih-Hao Liu)
劉智皓 (Chih-Hao Liu)

Written by 劉智皓 (Chih-Hao Liu)

豬屎屋AI RD,熱愛AI研究、LLM/SD模型、RAG應用、CUDA/HIP加速運算、訓練推論加速,同時也是5G技術愛好者,研讀過3GPP/ETSI/O-RAN Spec和O-RAN/ONAP/OAI開源軟體。

No responses yet