見出し画像

U-NETの論文を読んだ

 よく来たな。今日はU-Netの論文を読んでいくぞ。最終的に俺はstable diffusionの論文が読みたいので、まずはU-NETを理解する。いつもよりは少し丁寧に書いた。DeepLで翻訳している。今回はgpt4に加えてclaude3 Opusに教えてもらいながら読んだがclaude3かなりいいぞ。俺はgpt4とclaude3どっちも有料で入っているが、最強だ。

U-Net論文


概要

ディープネットワークの学習を成功させるためには、何千もの注釈付き学習サンプルが必要であることが広く知られている。本論文では、利用可能なアノテーションサンプルをより効率的に使用するために、データ拡張の強力な使用に依存するネットワークとトレーニング戦略を提示する。
アーキテクチャは、文脈を捉える縮小パスと、正確な位置特定を可能にする対称的な拡大パスから構成される。このようなネットワークは、非常に少ない画像からエンド・ツー・エンドで学習でき、電子顕微鏡スタック中の神経細胞構造のセグメンテーションに関するISBI課題において、先行する最良の手法(スライディングウィンドウ畳み込みネットワーク)を凌駕することを示す。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))

はじめに

 畳み込みニューラルネットワーク(CNN)の一般的な用途と、U-Netが対象とする医用画像処理タスクの違い。

  1. CNNの典型的な用途: CNNは通常、画像分類タスクに用いられます。つまり、入力画像に対して、そのカテゴリ(クラスラベル)を出力します。例えば、画像が犬か猫かを判定するタスクがこれに当たります。

  2. 生物医学的画像処理における要求: 一方、U-Netが対象とする医用画像処理では、単なるクラス分類ではなく、画像内の特定の領域(例えば、腫瘍や臓器)を正確に識別し、その位置を特定(ローカライズ)することが求められます。これをセグメンテーションと呼びます。

 先行研究は以下。


Ciresanら[1]は、スライディング・ウィンドウ方式でネットワークを学習し、入力としてその画素の周囲の局所領域(パッチ)を与えることで、各画素のクラス・ラベルを予測する。まず、このネットワークはローカライズが可能である。第二に、パッチ単位での学習データは、学習画像数よりもはるかに大きい。その結果、このネットワークはISBI 2012のEMセグメンテーション・チャレンジで大差をつけて優勝した。
しかし、明らかに、Ciresanら[1]の戦略には2つの欠点がある。第一に、各パッチに対して個別にネットワークを実行する必要があり、パッチの重複による冗長性が多いため、非常に時間がかかる。第二に、ローカライゼーションの精度とコンテキストの利用との間にトレードオフがある。より大きなパッチはより多くのマックスプーリング層を必要とし、ローカライゼーションの精度を低下させる。
<略>
本稿では、よりエレガントなアーキテクチャ、いわゆる「完全畳み込みネットワーク」[9]をベースに構築する。我々はこのアーキテクチャを修正・拡張し、非常に少ない学習画像で動作し、より正確なセグメンテーションが得られるようにする。図1を参照) [9]の主なアイデアは、プーリング演算子をアップサンプリング演算子に置き換えた連続的な層によって、通常の収縮ネットワークを補完することである。したがって、これらの層は出力の解像度を上げる。ローカライズするために、収縮経路からの高解像度の特徴が、アップサンプリングされた出力と組み合わされる。連続する畳み込み層は、この情報に基づいて、より正確な出力を組み立てるように学習することができる。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))

 claude3の解説↓

U-Netは、FCNを修正・拡張することで、少ない学習画像でも動作し、より正確なセグメンテーションが可能になるようにしています。
FCN[9]の主なアイデアは以下の通りです:
1.通常のCNNにおける収縮パス(プーリング層によって特徴マップのサイズが小さくなっていく部分)に加えて、アップサンプリング層を用いた拡張パスを導入する。
2.拡張パスでは、アップサンプリング層によって特徴マップの解像度を上げていく。これにより、セグメンテーションのような密な予測が可能になる。
3.拡張パスでは、収縮パスからの高解像度の特徴マップを、アップサンプリングされた特徴マップと組み合わせる(スキップ接続)。これにより、より詳細な位置情報を利用できる。
4.最終的に、組み合わされた特徴マップから、畳み込み層を用いてセグメンテーション結果を生成する。


U-Netは、このFCNのアーキテクチャをベースとしつつ、以下のような修正・拡張を行っています:

1.拡張パスにおいて、多数の特徴チャネルを持つようにすることで、より広い文脈情報を高解像度の層に伝播できるようにしている。
2.収縮パスと拡張パスを対称的に設計することで、U字型の構造を持つネットワークを構成している。


これらの工夫により、U-Netは少ない学習画像でも効果的に学習でき、より正確なセグメンテーション結果を生成できるようになっているのです。

claude3

 この研究で重要なこと↓


 我々のアーキテクチャにおける重要な変更点の1つは、アップサンプリング部分において、ネットワークがより高い解像度のレイヤーにコンテキスト情報を伝搬することを可能にする、多数の特徴チャンネルも持っていることである。
 その結果、拡大経路は縮小経路に対して多かれ少なかれ対称となり、U字型のアーキテクチャとなる。つまり、セグメンテーション・マップは、入力画像で完全なコンテキストが利用可能なピクセルのみを含む。この戦略により、オーバーラップタイル戦略によって、任意の大きさの画像をシームレスにセグメンテーションすることができる(図2参照)。画像の境界領域にあるピクセルを予測するために、入力画像をミラーリングすることで、欠落しているコンテキストを外挿する。このタイリング戦略は、大きな画像にネットワークを適用するために重要である。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))

 claude3の解説を貼っておく。まとめると以下。
 医療系のセグメンテーションで使用する画像はサイズがでかいのでオーバーラップ戦略というものをしている。画像をタイルに分割してひとつひとつをオーバーラップさせる。
 オーバーラップするというのはつまり、ミラーリングで周辺情報を補完し、サイズを大きくしてから畳み込みを行うということ。なぜそんなことをするのかというと、unetは有効な畳み込みなので畳み込むたびにサイズが小さくなるから。

この部分は、U-Netがどのようにして任意のサイズの画像をシームレスにセグメンテーションできるかを説明しています。

U-Netのアーキテクチャでは、畳み込み層でパディングを行わないため、出力のセグメンテーションマップは入力画像よりも小さくなります。具体的には、出力のセグメンテーションマップは、入力画像の中で、畳み込みの計算に必要な周辺情報(コンテキスト)が完全に利用可能なピクセルのみを含むことになります。

しかし、実際の適用場面では、しばしば入力画像全体に対してセグメンテーションを行う必要があります。そこで、U-Netでは、「オーバーラップタイル戦略」と呼ばれる手法を用いて、大きな画像を複数の小さなタイルに分割し、各タイルに対してU-Netを適用することで、最終的に全体の画像をシームレスにセグメンテーションします。

この際、タイルの境界領域では、周辺情報が不足するため、正確なセグメンテーションが行えません。そこで、境界領域のピクセルを予測する際には、入力画像をミラーリング(鏡像反転)することで、欠落している周辺情報を疑似的に補完(外挿)します。

このオーバーラップタイル戦略とミラーリングによる外挿により、U-Netは任意のサイズの画像に対して、シームレスなセグメンテーションを実現できます。この戦略は、大きな画像をGPUメモリの制約内で処理するために重要であり、U-Netの実用性を高めています。

claude3


 ↓の課題にも対処したらしい。

 多くのセル・セグメンテーション・タスクにおけるもう一つの課題は、同じク ラスの接触オブジェクトを分離することである。この目的のために、我々は重み付き損失(weighted loss)の使用を提案する。ここで、接触しているセル間の分離背景ラベルは、損失関数において大きな重みを得る。得られたネットワークは様々な生物医学的セグメンテーション問題に適用可能である。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))


ネットワーク・アーキテクチャ

 U-netのアーキテクチャについて説明している。
 図1を見るとわかる通り、ダウンサンプリングのステップの後にアップサンプリングを行うというアーキテクチャ。
 また、有効な畳み込みをしているので出力サイズが入力よりも小さくなる。タイリングも含めて、入力タイルサイズを決めるときは、この点を考慮する必要がある。

学習

入力画像とそれに対応するセグメンテーション・マップは、Caffe[6]の確率的勾配降下(stochastic gradient descent)実装を使用したネットワークの学習に使用される。パディングされていない畳み込みのため、出力画像は入力画像よりも一定の境界幅だけ小さくなる。オーバーヘッドを最小化し、GPUメモリを最大限に利用するために、大きなバッチサイズよりも大きな入力タイルを優先し、そのためバッチを単一画像に縮小します。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))

  学習は確率的勾配降下法を使用。1バッチが単一画像。

  数式の説明は以下。

記号の意味を確認しましょう:
- `p_ℓ(x)(x)` は、ピクセル位置 `x` において、正解ラベル `ℓ(x)` に対応するモデルの出力確率を表します。
- `ℓ(x)` は、ピクセル位置 `x` の正解ラベルを表します。

クロスエントロピー損失は、以下の式で定義されます:

```
E = - Σ_x∈Ω w(x) log(p_ℓ(x)(x))
```

ここで、
- `Ω` は、画像のピクセル位置の集合を表します。
- `w(x)` は、ピクセル位置 `x` の重み係数を表します(後述)。

この式について、詳しく説明します:

1. `p_ℓ(x)(x)` は、モデルがピクセル位置 `x` の正解ラベル `ℓ(x)` を予測する確率を表します。理想的には、正解ラベルに対応する確率が1に近く、他のラベルに対応する確率が0に近いことが望まれます。

2. `log(p_ℓ(x)(x))` は、正解ラベルに対応する確率の対数を取ります。確率が1に近いほど、対数値は0に近づきます。

3. `w(x)` は、ピクセル位置 `x` の重み係数です。これは、異なるクラスの不均衡や、特定の領域(例えば、細胞の境界)により重点を置くために使用されます。

4. `Σ_x∈Ω` は、画像のすべてのピクセル位置について、`w(x) log(p_ℓ(x)(x))` の総和を取ります。

5. マイナス記号 `-` は、損失関数を最小化するために必要です。

つまり、クロスエントロピー損失は、モデルの出力確率と正解ラベルの間の差を定量化し、その差に基づいてモデルのパラメータを更新します。正解ラベルに対応する確率が高いほど、損失は小さくなります。

学習の目的は、この損失関数を最小化することです。これにより、モデルは正解ラベルを正確に予測するようになります。

クロスエントロピー損失は、セグメンテーションタスクによく用いられる損失関数であり、U-Netでもこの損失関数を使用することで、効果的に学習を行うことができます。

Claude3

 ウェイトマップについて

w : Ω → Rは学習において一部の画素をより重要視するために導入したウェイトマップである。このウェイトマップは、訓練データセットにおけるあるクラスからのピクセルの異なる頻度を補正し、接触するセル間に導入する小さな分離境界をネットワークに学習させるために、各グランドトゥルース・セグメンテーションに対して事前に計算する(図3cとdを参照)。分離境界はモルフォロジー演算を用いて計算される。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))

 数式から、d1とd2が小さい→境界付近であり、その場合は重みが大きくなる。つまり、境界の重みを大きくし、正確なセグメンテーションが促進される。細胞の境界などがこの分野では重要だから。


実験


u-netを3つの異なるセグメンテーション・タスクに適用した。最初のタスクは、電子顕微鏡記録におけるニューロン構造のセグメンテーションである。データセットと得られたセグメンテーションの例を図2に示す。完全な結果は補足資料として提供する。データセットは、ISBI 2012で開始されたEMセグメンテーションチャレンジ[14]から提供されたもので、現在も新規の投稿を受け付けている。学習データは、ショウジョウバエ1齢幼虫の腹神経索(VNC)の連続切片透過電子顕微鏡から得られた30枚の画像(512x512ピクセル)セットである。各画像には、細胞(白)と膜(黒)について完全に注釈されたグランドトゥルースセグメンテーションマップが付属している。テストセットは公開されているが、セグメンテーションマップは秘匿されている。予測されたメンブレン確率マップをオーガナイザーに送ることで、評価を得ることができる。評価は、マップを10段階で閾値処理し、「ワーピング・エラー」、「ランド・ エラー」、「ピクセル・エラー」を計算することで行われる[14]。u-net(入力データの7つの回転バージョンの平均)は、さらなる前処理や後処理なしで、0.0003529のワーピング誤差(新しいベストスコア、表1を参照)と0.0382のランド誤差を達成した。これは、Ciresanら[1]によるスライディングウィンドウ畳み込みネットワークの結果よりも大幅に優れている。ランドエラーの観点から、このデータセットでより優れた性能を発揮するアルゴ リズムは、Ciresanら[1]の確率マップに適用された、高度にデータセットに特化した後処理手法1 を用いたものだけである。我々はまた、u-netを光学顕微鏡画像の細胞分割タスクに適用した。このセグメンテーションタスクはISBI細胞追跡チャレンジ2014と2015の一部である[10,13]。最初のデータセット "PhC-U373"2には、位相差顕微鏡で記録されたポリアクリルイミド基板上の膠芽腫-星細胞腫U373細胞が含まれている(図4a,bと補足資料参照)。この画像には部分的にアノテーションされた35枚のトレーニング画像が含まれている。ここでは平均92%のIOU("intersection over union")を達成し、2番目に優れたアルゴリズムの83%よりも大幅に優れている(表2参照)。つ目のデータセット "DIC-HeLa "3は、微分干渉コントラスト(DIC)顕微鏡で記録された平板ガラス上のHeLa細胞である(図3、図4c,d、補足資料参照)。この画像には部分的にアノテーションされた20枚のトレーニング画像が含まれている。ここで我々は平均77.5%のIOUを達成し、これは2番目に優れたアルゴリズムの46%を大幅に上回る。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))

結論

u-net アーキテクチャは、非常に異なるバイオメディカルセグメンテー ションアプリケーションにおいて、非常に優れた性能を達成した。また、弾力的なセグメンテーションによるデータ補強のおかげで、わずかなアノテーション画像しか必要とせず、NVidia Titan GPU(6 GB)でわずか10時間という非常に合理的な学習時間を実現している。我々は、Caffe[6]ベースの完全な実装と学習済みネットワーク4 を提供する。我々は、u-netアーキテクチャが、より多くのタスクに容易に適用できることを確信している。

U-Net: Convolutional Networks for Biomedical Image Segmentation(DeepL翻訳))

この記事が気に入ったらサポートをしてみませんか?