スパースモデリングは「魔法の技術」とさえ呼ばれています.比較的新しい技術で,これからの画像処理には欠かせない技術となるのではないかと考えられます.
スパースモデリングの特筆すべき特徴として 少ないデータから情報を知る技術 であることがあげられます.
Wikipedia には以下のような記述がありました.
>スパースモデリング(英語: Sparse modeling、スパース sparse とは「すかすか」、「少ない」を意味する)または疎性モデリングとは、少ない情報から全体像を的確にあぶり出す科学的モデリング.
>圧縮センシングの一技法で膨大なビッグデータを解析して大量のデータに埋もれて見えにくくなってしまう有為な情報を抽出したり、法則性を導き出したり、断片的なデータを補完して実状に忠実に再現する.地球科学、MRIや天文学を含む多くの分野で高分解能化に使用される. 医用画像に関しての応用は、2002年頃に筑波大学の工藤博幸らのグループによる先駆的研究があり、2007年のカリフォルニア大学バークレー校准教授のMichael Lustigらのグループによる研究を契機として急速に広がった.
こんなときどうする・・・?
例を挙げて説明しましょう.
以下のように一部が欠損してしまった画像があるとします.
このとき欠損した部分を何かしらで埋めたいのですが,あなたはどうしますか?
もちろんありもしないデータを作ることはどんな技術でも不可能です.しかし,不可能な場合でも 「ある程度想像できそうかどうか」に注目して画像を見てみてください.
想像にまかせて書くしかないですね.
では次はどうでしょうか.
確かにこの場所に何があるか,この写真からは分かるはずもありません.しかし隣接した画素が焦げ茶色をしているので,ここも焦げ茶色で塗りつぶせば・・・?
実はもともとの画像は以下のようでした.予想通りでしたね.
スパースモデリングの「ココロ」とそれに隠された数学
今回の例は少し極端すぎたかもしれません.もちろんカメラでこのように一部が欠損したデータを得ることは無理ですし,一部が欠損したデータを復元したいという要求もあまりないと思います.
しかし今回確認したかったのは, 同一の物体・物質であれば画素値も大体似ているだろう!という直観です.
一番目の画像はいろんな物が込み入っているため,想像するのは無理だった.二番目の画像は欠損が背景で,大体同じような色で塗りつぶされていると解釈できるから,何となく想像することが可能だった.
これをどうやって数学的に表現するかが鍵になります.
スパースモデリングの式について説明しましょう.式で表すと以下のようになります.
\begin{align} F = |d-Ax|^2 + \lambda|\nabla x| \rightarrow {\rm min} \end{align}
- $F$: 評価関数
- $d$: 観測データ.今回の場合は画像ですね.
- $A$: 変換行列.どのようにしてデータを得られたかによって,この行列は変わります.
- $x$: 復元したいデータ.今回の場合は画像です.
- $\nabla$: 微分を表す演算子です.今回の場合,$x$は画像なので,二方向の微分を意味します.
一つ目の項は観測データとの二乗誤差を計算する項であり,様々なところでよく見ると思います.
では二つ目の項は?
これはL1ノルム(絶対値ノルム)と呼ばれており, ここにスパースモデリングの工夫が隠されています!
L1 ノルムについて
以下の記事に書かれていますので,ご覧ください.ここではこの項がもたらす結果だけ述べます.
L1 ノルムは, 解がスパース,つまりほとんどが0である部分にだけ値を持つような解を作ることが知られています.
今回,L1ノルムで計算しているのは $|\nabla x|$ です.これは画像の輝度値の変化に対応することは先ほど確認しました.
第二項目を加えることで, $|\nabla x|$に多くの$0$を作ることができます.
これにより画像の輝度値の変化が少ない画像が作られるわけです!!
均一な部分はより均一になるような効果が働きます.
「パターン認識と機械学習」理解のための数学〜スパースモデリング(絶対値制約の最小二乗法)〜 - IMACEL Academy -人工知能・画像解析の技術応用に向けて-|LPixel(エルピクセル)
次回
matlab のコードを用いて,スパースモデリングがどのように機能するのか確認します. 制約項がどのように働くのか.次回お楽しみに!
追記:python でスパースモデリングを実装しました.次ページにリンクがあります.