#画像再構成の数学的枠組み
別記事で画像再構成の5つの数学的枠組みに言及しました。
- システム関数の逆関数を作用させる
- システム方程式を解く
- 最尤推定問題を解く
- 最大事後確率推定問題を解く
- 学習した再構成モデルを適用する
それぞれの枠組みは、一般に次のように短く呼ばれます。
- 解析的再構成(analytical reconstruction)
- 代数的再構成(algebraic reconstruction)
- ML再構成(maximum likelihood reconstruction)
- MAP再構成(maximum a posteriori reconstruction)
- 学習型再構成(learned reconstruction)
なお、ML再構成とMAP再構成は併せて「統計的再構成(statistical reconstruction)」とも呼ばれます。MAP再構成はベイズ再構成やペナルティ付きML再構成とも呼ばれます。深層学習に基づく学習型再構成はDL再構成(deep learning reconstruction)と呼ばれます。
私の知っているほとんどのアルゴリズムは上記のいずれかに属するのですが、どれにも当てはまらないユニークなアルゴリズムもあります。どこかで紹介できれば。
今回は5つの画像再構成の枠組みを、より具体的に知るために、再構成画像を得るまでの作業手順の「テンプレート」を示します。なお、画像再構成に前もって、系統誤差$\boldsymbol{b}$は計算済み、もしくは実測済みと仮定します。
#作業手順のテンプレート
##解析的再構成
- 事前準備(紙と鉛筆)
- システム方程式(システム関数)を定める。
- $\boldsymbol{y}=H(\boldsymbol{x})+\boldsymbol{b}$
- システム関数の逆関数$H^{-1}(*)$を導出する。
- システム方程式(システム関数)を定める。
- 事前準備(プログラミング)
- システム関数の逆関数$H^{-1}(*)$を実装する。
- メイン処理
- 再構成画像$\boldsymbol{x}$を計算する。
- $\boldsymbol{x}=H^{-1}(\boldsymbol{y}-\boldsymbol{b})$
- 再構成画像$\boldsymbol{x}$を計算する。
##代数的再構成
- 事前準備(紙と鉛筆)
- システム方程式(システム関数)を定める。
- $\boldsymbol{y}=H(\boldsymbol{x})+\boldsymbol{b}$
- システム方程式の解に収束する反復計算式$\boldsymbol{x}←f(\boldsymbol{x}, \boldsymbol{y},\boldsymbol{b})$を導出する。
- システム方程式(システム関数)を定める。
- 事前準備(プログラミング)
- 反復計算式を実装する。
- メイン処理
- 再構成画像の初期値$\boldsymbol{x}^{(0)}$を設定する。
- 再構成画像$\boldsymbol{x}$を計算する。
- $\boldsymbol{x}^{(k+1)}=f(\boldsymbol{x}^{(k)}, \boldsymbol{y},\boldsymbol{b})$. $k$:反復回数
##ML再構成
- 事前準備(紙と鉛筆)
- システム方程式(システム関数)を定める。
- $E[\boldsymbol{y}]=H(\boldsymbol{x})+\boldsymbol{b}$. $E[*]$:期待値
- 観測データ$\boldsymbol{y}$の誤差分布を定める(例:正規分布、ポアソン分布)。
- 観測データ$\boldsymbol{y}$の尤度関数$p(\boldsymbol{y}|\boldsymbol{x})$を導出する。
- 再構成画像の定義域$\Omega$を定める(例:非負空間)。
- 尤度関数の最大化解に収束する反復計算式$\boldsymbol{x}←f(\boldsymbol{x}, \boldsymbol{y},\boldsymbol{b})$を導出する。
- システム方程式(システム関数)を定める。
- 事前準備(プログラミング)
- 反復計算式を実装する。
- メイン処理
- 再構成画像の初期値$\boldsymbol{x}^{(0)}$を設定する。
- 再構成画像$\boldsymbol{x}$を計算する。
- $\boldsymbol{x}^{(k+1)}=f(\boldsymbol{x}^{(k)}, \boldsymbol{y},\boldsymbol{b})$. $k$:反復回数
##MAP再構成
- 事前準備(紙と鉛筆)
- システム方程式(システム関数)を定める。
- $E[\boldsymbol{y}]=H(\boldsymbol{x})+\boldsymbol{b}$. $E[*]$:期待値
- 観測データ$\boldsymbol{y}$の誤差分布を定める(例:正規分布、ポアソン分布)。
- 観測データ$\boldsymbol{y}$の尤度関数$p(\boldsymbol{y}|\boldsymbol{x})$を導出する。
- 再構成画像の事前確率$p(\boldsymbol{x};\beta)$を定める。$\beta$:ハイパーパラメータ
- 再構成画像の定義域$\Omega$を定める(例:非負空間)。
- 事後確率関数(尤度関数と事前確率の積)の最大化解に収束する反復計算式$\boldsymbol{x}←f(\boldsymbol{x}, \boldsymbol{y},\boldsymbol{b})$を導出する。
- システム方程式(システム関数)を定める。
- 事前準備(プログラミング)
- 反復計算式を実装する。
- メイン処理
- 再構成画像の初期値$\boldsymbol{x}^{(0)}$を設定する。
- ハイパーパラメータ$\beta$の値を設定する。
- 再構成画像$\boldsymbol{x}$を計算する。
- $\boldsymbol{x}^{(k+1)}=f(\boldsymbol{x}^{(k)}, \boldsymbol{y},\boldsymbol{b})$. $k$:反復回数
##学習型再構成
- 事前準備(紙と鉛筆)
- 再構成モデルを設定する(例:ニューラルネットワークの構成)。
- $\boldsymbol{x}=R_{\theta}(\boldsymbol{y},\boldsymbol{b})$. $\theta$:モデルパラメータ(最適化対象)
- 再構成モデルを設定する(例:ニューラルネットワークの構成)。
- 事前準備(プログラミングなど)
- 学習データ(観測データと望ましい再構成画像のペア)を多数集める、または作る。
- 再構成モデルを実装する。
- 機械学習・深層学習の汎用ライブラリを用いると効率的。
- 汎化性能の良い再構成モデルを学習する(至適なモデルパラメータ$\theta^{*}$を求める)。
- メイン処理
- 再構成画像$\boldsymbol{x}$を計算する。
- $\boldsymbol{x}=R_{\theta^{*}}(\boldsymbol{y},\boldsymbol{b})$
- 再構成画像$\boldsymbol{x}$を計算する。
#学習応用型再構成
学習型再構成は観測データを再構成画像に変換するData To Imageの再構成モデルです。一方で、何らかの「先見情報」としての機能をもった学習モデル(例:デノイジングDNN)を再構成に前もって学習し、そのモデルを解析的再構成・代数的再構成・ML再構成・MAP再構成に取り込んで問題を定義し、解くことも可能です。例に挙げたデノイジングDNNは多数の高ノイズ画像と低ノイズ画像を用いてノイズのみを除去するように学習されたモデルですから、何がノイズで、何が信号かを「知っている」のです。その意味で、古典的な先見情報は人間が陽な形で定義した「モデルドリブンな仮定」であるのに対して、学習によって得られる先見情報は陰な形でデータから自動抽出された「データドリブンな事実」といえます。仮定と事実、どちらが強いかは明らかですよね。
したがって、そのような「学習応用型再構成」は、画像再構成の枠組みとしては従来の範疇でありながら、データドリブンな要素が加わったことで、従来のモデルドリブンなやり方では到達し得なかった画質に到達できるようになってきました。
ただし、ニューラルネットワークなどの機械学習モデルは基本的に非線形関数なので、再構成問題に組み込むと問題を解析的・数値的に解くことの難易度は上がります。解析的に解くことはほぼ不可能なのかなと思っています。例えば、学習済みのDNNを内包する最小二乗問題とか解析的に解ける気がしないです(よね?)。
おわり