【統計検定の知識で理解する】生成モデルからとらえる画像復元問題 - 正則化項からNoise2Noiseまで

画像処理の中で、伝統的にノイズ低減やボケ除去は「画像復元問題」と呼ばれています
「ノイズやボケで劣化してしまった画像から元の画像を復元する問題」という意味ですね

伝統的にノイズ低減問題もボケ除去問題も、撮影した画像が持つノイズの統計性に着目して、観測画像に付加されたノイズを生成する確率モデルから定式化をします

ここでは伝統的な画像復元問題の記述から初めて、Noise2Noiseを紹介します


ノイズ低減問題

問題のあらまし

ある画像を撮影したとします

その画像にはノイズが乗っていました

このとき数学的にどのように設定するとよいでしょうか?

生成モデル

PRMLによると生成モデルとは

陰またはように出力の分布だけでなく入力の分布もモデル化するアプローチは、モデルからのサンプリングによって入力空間で人口データ点を生成できることから生成モデル(generative model)とよばれる

C.M. ビショップ『パターン認識と機械学習 上』

のことです

人工的に文章を生成したり、画像を生成するモデルというのとはちょっと違う意味ですね笑
ですが、本来はChatGPTもStable Diffusionもこの意味で生成モデルと呼ばれています(もしくは、そうだったはずです)

生成モデルでノイズ低減問題を定式化する

ということで、観測画像に乗っていたノイズがどのような確率分布で生成されたかを考察してみましょう
そうすると、生成モデルに基づいて画像処理を定式化できそうな気がします

観測画像y に乗っていたノイズがGaussノイズだったとしましょう
そうすると、k番目の画素(k=1, 2, …, N)に乗っているノイズは

で、ベクトルで書けば

です。このときxはノイズのない画像―つまり、本来取得されるべき画像―です

この観点に立つと、
・ノイズを生成する生成モデルP(観測画像y | ノイズのない画像x)を立てる
・これを最大化するxが尤もらしいノイズのない画像
といえそうです
これを指針として考察を進めましょう

観測画像(に乗っているノイズ)が得られる確率は

です。つまり、各画素は平均値がx_kでそれぞれに標準偏差σのGaussノイズが乗っています

最尤推定

最尤推定ではこの確率を最大化するxが本来あるべき画像と考えます
つまり、デノイズ出力です

尤度の対数を取ると、次のようになります

この対数尤度を最大化する解はx=y、つまり観測画像そのものです
デノイズのアルゴリズムを探していたのにこうなってしまっては何かがうまくいっていないですね

事後確率最大化推定

そのため、デノイズ問題では一般に事前分布を仮定した事故確率最大化推定(Maximum a Posteriori推定)を使って定式化します

事前分布をφ(x)とすると観測画像が得られる事後確率は

と計算されます

なので、画像に対するデノイズ問題を事後確率最大化推定(MAP推定)で定式化すると、正則化項付き二乗和誤差最小化問題で定式化できます

事後確率最大化推定量は

の最小化解です

この事前分布として導入されたln φは正則化項 (regularization term)と呼ばれます
機械学習でのL1正則化とかL2正則化もこれの仲間です

つまり、正則化項付き最適化はある意味で事後確率最大化推定(MAP推定)を考えていることになります
正則化項がない最適化は尤度だけを最大化していることになるので、最尤推定です

このように、二乗和誤差最小化問題はガウス分布を仮定した最尤推定問題やMAP推定と関連付けらられるます(統計検定一級の教科書にも言及があります)

Noise2Noise

この辺りで「正解画像なしにデノイズ器を学習できる」と主張したことで有名なNoise2Noiseを統計学的な立場から紹介しましょう


Noise2Noise: Learning Image Restoration without Clean Dataより抜粋

Noise2Noiseではノイズの乗っている画像Aを別のノイズの乗っている画像Bに変換するニューラルネットワークを学習させます。

ここでニューラルネットワークを処理させて得られる画像を

とします(ニューラルネットワークを作用素Fと置いています)
このとき、最適化する誤差関数は

と表されます
つまり、画像Aのニューラルネットワーク出力を画像Bに近づけなさい、という誤差関数です

こちらを展開してあげると

と書けますね

このとき、ノイズと画像の内積

について考えてみます
今回仮定しているノイズは平均値=0になる類のノイズといえるでしょう
そうでなければ同じ画像を何枚も取って積算・平均を取ってノイズを下げようとすると、積算するごとに画像の明るさが変わってしまうためです※

なので、先ほどの第四項からの寄与は十分に大きなデータセットに対しては0となると期待します
なので、先ほどの最適化関数は

と変形(…というのか大きさの見積もりというのかが)できます

なので、「ノイズを引いて足した」ニューラルネットを最適化する二乗和誤差と「ノイズのある画像からノイズを除く」ニューラルネットの二乗和誤差は、おおよそ一致します

ちなみにここまでの議論はNoise2Inverseで指摘されている内容を参考にしているので、Noise2NoiseのAppendixの議論とはやや異なります

ちなみに画像Aと画像Bとして同じ画像を設定したものがNoise2Voidです

画像Aと画像Bを同じ画像と設定すると、ニューラルネットワークが恒等変換になってしまいます
そこで著者らは"blind spot network"呼ばれるある種の正則化を導入していますが、それはまたどこかで

まとめ

最近、生成モデルが流行っているものの伝統的な意味での生成モデルがあまり話題に上がらない気がしたので、画像処理における歴史とepoch makingな論文を紹介してきました

統計検定の知識もこんな感じで論文を読むときに役立ったりします


論文中で扱っているimpaintingの問題設定ではこの過程は満たされません

実際のところ、Noise2NoiseではNoise2Inverseが指摘している内容とDeep Image Priorで確認されているような効果(ニューラルネットワークは高周波構造よりも低周波構造から特徴量を学習をする)が効いていると私は解釈しています

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