U-Net
Makine öğrenmesi ve veri madenciliği |
---|
![]() |
Problemler
|
|
|
Yapılandırılmış tahmin
|
|
|
|
Teori
|
Konferanslar ve dergiler
|
|
U-Net, Freiburg Üniversitesi Bilgisayar Bilimleri Bölümü'nde biyomedikal alanlardaki görüntü işleme çalışmalarında bölümleme yapmak için geliştirilmiş bir evrişimsel sinir ağıdır. Ağ mimarisi, tamamen evrişimli ağa dayanmaktadır ve daha az eğitim görüntüsü ile çalışmak ve daha hassas bölümlemeler sağlamak için değiştirilmiş ve genişletilmiştir.[1] Arıca bu ağ o kadar hızlıdır ki, 512x512 piksellik bir görüntünün bölümlemesi GPU’da 1 saniyeden daha kısa sürer.[2]
Açıklama
U-Net mimarisi, ilk olarak Long, Shelhamer ve Darrell tarafından önerilen "tam evrişimli ağ" sözü ile ortaya atılmıştır.[1]
U-Net'teki önemli bir geliştirme, üst örnekleme bölümünde, ağın bağlam bilgisini daha yüksek çözünürlüklü katmanlara yaymasına izin veren çok sayıda özellik kanalı olmasıdır. Sonuç olarak, genişleyen yol, daralma yoluna simetriktir ve u-şekilli bir mimari sağlar. Ağ, tamamen bağlantılı katmanlar olmadan her evrişimin yalnızca geçerli kısmını kullanır. Görüntünün kenarlık bölgesindeki pikselleri tahmin etmek için, eksik bağlam giriş görüntüsünün aynalanmasıyla tahmin edilir. Bu yerleştirme stratejisi, ağı büyük görüntülere uygulamak için önemlidir, çünkü aksi takdirde çözünürlük GPU belleği ile sınırlı olacaktır.[1]
Evrişimli ağların genel kullanımı, bir görüntünün çıktısının tek bir sınıf etiketi olduğu sınıflandırmalar şeklindedir. Ancak birçok görsel görevde, özellikle biyomedikal görüntü işlemede, istenen çıktının yerelleşmeyi içermesi gerekir. Kısaca her piksele bir sınıf etiketi atanmalıdır. Her pikselin sınıf etiketini tahmin etmek için kayan pencere modelindeki bir ağı, o pikselin etrafında girdi olarak bir yerel bölge yapılarak eğitilmesi sağlanır. Ayrıca, biyomedikal görevlerde binlerce eğitim görüntüsüne genellikle ulaşılamaz. Bu nedenle, veri arttırma işlemi yapılır.[2]
Ağ Mimarisi
![Bu görsel, 256x256 RGB görüntü için 256x256 görüntü maskeleri üretmek için örnek bir U-Net mimarisidir.](http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Example_architecture_of_U-Net_for_producing_k_256-by-256_image_masks_for_a_256-by-256_RGB_image.png/230px-Example_architecture_of_U-Net_for_producing_k_256-by-256_image_masks_for_a_256-by-256_RGB_image.png)
Ağ, bir daralma yolu (sol taraf) ve bir genişleme yolundan (sağ taraf) oluşur. Bu yapı U şekilli mimariyi verir.[3] Daralma yolu, normal bir evrişim ağının mimarisi gibi iki tane 3x3 konvolüsyonun tekrarlanarak uygulamasından oluşur. Bu uygulamalardan her biri, düzeltilmiş doğrusal birimden (ReLU) ve alt örnekleme için 2x2 maksimum havuzlama işlemleri ile oluşur. Her alt örnekleme adımında, özellik kanallarının sayısı ikiye katlanır (2^n). Genişleme yolu ise, özellik haritasının bir üst örneklemesinden ve özellik kanallarının sayısını yarıya indiren bir 2x2 evrişimden ("yukarı evrişim") meydana gelir. Ayrıca, daralma yolundan uygun şekilde kırpılmış özellik haritasıyla bir birleşmeden ve iki 3x3 evrişimden oluşur. Her bir evrişimin ardından bir ReLU işlemi uygulanır. Kırpma işlemi, her evrişimde kenar piksellerinin kaybı nedeniyle gereklidir. Son katmanda, her 64 bileşenli özellik vektörünü istenen sayıda sınıfa eşlemek için 1x1'lik bir evrişim kullanılır. Bu sinir ağı toplamda 23 tane katmana sahip olur.[2]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/ConvolutionAndPooling.svg/270px-ConvolutionAndPooling.svg.png)
Eğitim
Veri seti içerisindeki girdi görüntüleri ve bunlara karşılık gelen segmentasyon haritaları, bu sinir ağını stokastik gradyan iniş uygulamasıyla eğitmek için kullanır. Dolgusuz konvolüsyonlar nedeniyle, eğitim sonunda oluşan çıktı görüntü, eğitilen girdi görüntüden sabit bir kenar genişliği kadar daha küçüktür. Eğitim sırasında oluşacak olan ek yükleri en aza indirmek ve GPU belleğinden maksimum düzeyde yararlanmak için, toplu haldeki iş boyutu yerine büyük giriş yerleştirmeleri tercih edilir. Bu nedenle toplu iş tek görüntüye indirgenir. Bunun için, daha önce görülen eğitim örneklerinin büyük bir kısmının mevcut optimizasyon adımındaki güncellemeyi belirleyeceği şekilde yüksek bir momentum (0.99) kullanılır.[2]
Veri Arttırma
Veri artırma işlemi, yalnızca birkaç eğitim örneği mevcut olduğunda (yeterli görsel bulunmadığında), ağa istenen değişmezlik ve sağlamlık özelliklerini öğretmek için gereklidir. Mikroskobik görüntülerde, öncelikle deformasyonlara karşı sağlamlığın yanı sıra kayma ve dönme değişmezliğine ve gri değer değişikliklerine karşı dayanıklılığa ihtiyaç vardır. Eğitim örneklerinin rastgele esnek deformasyonları, çok az sayıda açıklamalı görüntü içeren bir bölümleme ağını eğitmek için anahtar kavram gibi görünmektedir. Kalın bir 3x3 ızgara üzerinde rastgele yer değiştirme vektörleri kullanılarak pürüzsüz deformasyonlar oluşturulur. Yer değiştirmeler, 10 piksellik standart sapma ile bir Gauss dağılımından örneklenir. Piksel başına yer değiştirmeler daha sonra bikübik enterpolasyon kullanılarak hesaplanır. Daralan yolun sonundaki öğrenimini tamamlamayan (drop-out) katmanlar, daha fazla veri büyütme gerçekleştirir.[2]
Uygulamalar
U-Net'in biyomedikal görüntü bölümlemesinde; beyin görüntü bölümlemesi ('' BRATS ''[4]) ve karaciğer görüntü bölümlemesi ("siliver07"[5]) gibi birçok uygulaması vardır. Tıbbi görüntünün yeniden yapılandırılması için de U-Net'in varyasyonları uygulanmıştır.[6]
İşte U-Net'in bazı varyantları ve uygulamaları aşağıdaki gibidir:
- U-Net kullanarak piksel bazlı regresyon ve bunun görüntü kalitesini arttırması üzerine uygulaması;[7]
- 3D U-Net: Seyrek Açıklamadan Yoğun Hacimsel Segmentasyonu Öğrenme;[8]
- TernausNet: Görüntü Segmentasyonu için ImageNet üzerinde Önceden Eğitilmiş VGG11 Kodlayıcılı U-Net[9]
Kaynakça
- ^ a b c Long, Jonathan; Shelhamer, Evan; Darrell, Trevor (8 Mart 2015). "Fully Convolutional Networks for Semantic Segmentation". arXiv:1411.4038 [cs]. 20 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2021.
- ^ a b c d e Ronneberger, Olaf; Fischer, Philipp; Brox, Thomas (18 Mayıs 2015). "U-Net: Convolutional Networks for Biomedical Image Segmentation". arXiv:1505.04597 [cs]. 18 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Mayıs 2021.
- ^ "U-Net: Convolutional Networks for Biomedical Image Segmentation". lmb.informatik.uni-freiburg.de (Almanca). 20 Haziran 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2021.
- ^ "MICCAI BraTS 2017: Scope | Section for Biomedical Image Analysis (SBIA) | Perelman School of Medicine at the University of Pennsylvania". www.med.upenn.edu (İngilizce). 25 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2021.
- ^ "SLIVER07 : Home". www.sliver07.org. 29 Mayıs 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2021.
- ^ Andersson, Jonathan; Ahlström, Håkan; Kullberg, Joel (2019). "Separation of water and fat signal in whole‐body gradient echo scans using convolutional neural networks". Magnetic Resonance in Medicine. 82 (3): 1177-1186. doi:10.1002/mrm.27786. ISSN 0740-3194. PMC 6618066 $2. PMID 31033022.
- ^ "Pixel-wise regression using U-Net and its application on pansharpening". Neurocomputing (İngilizce). 312: 364-371. 27 Ekim 2018. doi:10.1016/j.neucom.2018.05.103. ISSN 0925-2312. 20 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2021.
- ^ Çiçek, Özgün; Abdulkadir, Ahmed; Lienkamp, Soeren S.; Brox, Thomas; Ronneberger, Olaf (21 Haziran 2016). "3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation". arXiv:1606.06650 [cs]. 18 Nisan 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2021.
- ^ Iglovikov, Vladimir; Shvets, Alexey (17 Ocak 2018). "TernausNet: U-Net with VGG11 Encoder Pre-Trained on ImageNet for Image Segmentation". arXiv:1801.05746 [cs]. 20 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2021.