U-Net
縮小してから拡大し位置を復元する神経網構造
- U-Netは画像をだんだん縮小してからまた元の大きさに拡大する構造です。下って上る形がアルファベットのUに似ていることから付いた名前です。
- 縮小すると何があるかが分かりやすくなり、拡大するとどこにあるかを正確に指し示せます。両方必要だからこの形になりました。
- 縮小する間に失われる細かい情報は、縮小する前の画面を横に飛び越えて送ることで取り戻します。この近道がU-Netの核心です。
- 結果が画像と同じ大きさで出てきます。マス一つひとつに答えを書き込む仕事によく合います。
- 画像生成モデルがノイズを取り除く働き手として長く使ってきた構造です。医療画像で境界を取り出す仕事から始まりました。
目次
1たとえで理解する
知らない街で待ち合わせ場所を探しています。地図アプリを指でつまんで縮小します。細い路地の名前は消えますが、ここがどちらの方角か、大きな通りや川がどこにあるかが一目で分かります。全体を把握するには縮小が要ります。
今度は指を広げて拡大します。ところが縮小した画面をそのまま拡大すると、路地はにじんでいて建物一つひとつがどこにあるか分かりません。縮小しながら捨てたものは、拡大しても戻ってきません。
そこで一つ工夫をします。縮小する前の画面をあらかじめ保存しておき、同じ倍率で拡大するとき並べて重ねて見るのです。全体の方角は縮小画面から、路地の位置は保存しておいた画面から取ってきます。U-Netはこのように働きます。
2くわしく
縮小すると何か、拡大するとどこか
画像を縮小すると、一マスが広い範囲を代表するようになります。遠く離れた部分どうしも同じマスの中に入ってくるので、これは猫なのか車なのかといった大きな判断がしやすくなります。その代わり境界が正確に何マス目で分かれるかはぼやけます。
拡大するほうは逆です。マスが細かくなるほど位置を細かく指し示せますが、狭い範囲しか見ていないので全体が何なのかは分かりにくくなります。片方だけでは答えを出せません。
U-Netは二つを一つの構造の中に入れました。前半でずっと縮小しながら何であるかをつかみ、後半でずっと拡大しながらその判断を元のマスの上に戻していきます。
縮小する前の画面を横に飛び越えて送る
拡大する側でどれだけ努力しても、すでに捨ててしまった細かい情報は作り出せません。そこでU-Netは、下る道の各段階の画面を保存しておき、上る道の同じ大きさの段階にそのまま渡します。この近道を飛び越え接続と呼びます。
上る側は二つを一緒に受け取ります。下から上がってきた「何であるか」についての判断と、横から飛び越えてきた「どこに何があったか」についての元の画像です。二つを重ねて見て、次の大きさへ上がっていきます。
この接続がなければ境界がにじみ、輪郭がぼやぼやになります。学習のとき信号が深い層まできちんと届くのを助ける効果もあるので、層を深く積んでも学習がうまく進みます。
入った大きさそのままで出てくる
普通の画像分類モデルは、画像一枚を受け取ってラベル一つを出します。U-Netは画像一枚を受け取って同じ大きさの画像一枚を出します。マスごとに答えが一つ必要な仕事に合わせた形です。
医療画像で病変の境界を取り出すことが最初の目標でした。どこまでがその部位かを画素ごとに示さなければならないので、大きさが同じである必要がありました。写真から背景を切り抜くこと、衛星写真から道路を取り出すことも同じ形の問題です。
画像生成でしていること
最近U-Netが最もよく使われる場所は画像生成です。拡散という方式は、汚れたしみから始めて少しずつ取り除きながら画像を作ります。このとき「今の画面でどこにどれだけしみが混ざっているか」を毎回教えてくれる働き手が必要です。
この仕事は入力と出力の大きさが同じで、全体の構図も画素単位の位置も両方分からなければなりません。U-Netにぴったりの条件です。だから一枚を完成させるまでU字を何十回も繰り返します。画像生成が文章生成より時間がかかる理由の一つです。
今でも使われているのか
最近ではU字で縮小して拡大する代わりに、最初から最後まで同じ大きさのまま押し通す構造も広く使われています。大きく作るほど性能が上がりやすいためです。それでもU-Netは小さく速く、少ないデータでもよく学習できるので、個人の機器で動くツールや境界を取り出す仕事では今も基本の選択肢です。
3もう少し正確に
U-Netは、解像度を下げながら特徴を取り出す収縮経路と、解像度を上げながら結果を復元する拡張経路が対称に組み合わさった畳み込み神経網です。同じ解像度に置かれた二つの経路をつなぐ飛び越え接続が構造の名前どおりの部分で、たいてい特徴をつなぎ合わせる方法で合わせます。
比喩がずれる点もあります。地図アプリの縮小画面は元の地図をそのまま小さくしたものですが、U-Netが縮小しながら作る画面は画像を縮小したものではなく、学習で取り出した特徴です。人の目には画像のようには見えません。またキャプチャを重ねて見る人は目で比べるだけですが、モデルは二つの画面をつなぎ合わせて次の層の計算材料として一緒に使います。画像生成で使われるときは、画素そのままではなく小さく圧縮した空間の上で動くことが多い点も違います。
4やってみる
5よくある誤解
U-Netが画像を描き出すモデルだと思われがちですが、実際には受け取った画像と同じ大きさで何かを示したり取り除いたりする働き手に近いです。
縮小してから拡大すれば元の情報が戻ると思われがちですが、実際には横に飛び越えて送った元の画面がなければ境界はにじんだままです。
U-Netは古い構造だからもう使われないと思われがちですが、実際には軽くて少ないデータでもよく学習できるので今も広く使われています。
7ひとこと要約
つまりU-Netは画像を縮小して何であるかをつかみ、また拡大してどこにあるかを描き戻しつつ、縮小する前の画面を横に飛び越えて送ることで細かさを取り戻す構造です。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02