Otaku ワールドへようこそ![212]嫁を拡大する人工知能/GrowHair

投稿:  著者:  読了時間:32分(本文:約15,500文字)



二次元のキャラクタを「俺の嫁」として愛でる日本の風習は、海外にも知れ渡るところとなってきており、英語では、カタカナ発音に敬意を表して "mai waifu" と表現されている。

このほど、嫁を二倍に拡大するソフトウェア "waifu2x" が発表され、出力画像の驚異的なクオリティの高さがネットで絶賛されている。製作者はultraist と名乗り、日本人のようであるが、どこの誰なのかは不明である。

ultraist 氏がこのソフトをブログで発表したのが5月17日(日)のことで、バグを修正したとツイッターでアナウンスしたのが5月22日(金)のことであるから、ごく最近である。

さっそくウチの嫁で試してみた。『ローゼンメイデン』の真紅である。いやはや、二次元妻帯者たちがネットで騒いでいるだけのことはある。従来手法と比べてみたら、歴然とした違いに、うわーーーっ、っと絶叫してしまった。

下敷きとなる画像処理手法においては、「深層学習(deep learning)」と呼ばれる、近ごろ話題の人工知能の手法を採用している。最近四〜五年の人工知能の急速な進展には驚くべきものがあり、時代を塗り替えつつある観がある。




コンピュータのソフトウェアを作成する際、実際にプログラムを記述するコーディング作業に取り掛かる前に、まず、処理手順を設計しておく必要があり、この処理手順をアルゴリズムという。従来、アルゴリズムは、ひとつひとつの技術課題に対して、論理的思考能力に長けた人間がうんうん呻吟して個別に編み出すものであった。

ところが、最近は、汎用的な機械学習の手法によって、コンピュータがなんでもかんでも勝手に学習してくれる方法論が実用性を帯びてきた。結果として得られた最適手法が、人手によって 考案されたアルゴリズムよりも優れた結果を呈するようになってきている。

画像認識、音声認識、データマイニングなど、さまざまなジャンルにおいて、深層学習は快進撃著しく、オセロの石をペカペカペカとひっくり返すようなことになってきている。

小学校の算数の問題には「つるかめ算」や「旅人算」が出てきて、その都度、図を描いたりしながら、意味を考え考え解いていた。ところが、中学に入って方程式を習うと、未知数を x と置いて方程式を立てさえすれば、意味を考えなくても機械的にするりと解けてしまう。画期的なことではあるけれど、今までの苦労は何だったのだろうかと、衝撃的な脱力感に見舞われる。それと似た感覚だ。

画像を拡大する「超解像」の課題に深層学習の手法が適用されて、手作り手法を凌駕するようになったのは 2014年のことである。とうとうこの石までひっくり返されたか。

街角の靴みがきや駅の改札口の切符切りは、もうほとんど見ることはなくなった。これから20年も経つと、タクシー運転手やコンビニ店員などがいなくなり、現在ある職業の約半分は機械に置き換わるであろうと言われている。弁護士や野球選手や作曲家も、もしかすると人間様の聖域とは言えなくなるのかもしれない。

物理学者のホーキング氏は、人工知能が人類を滅亡に追い込む危険性があると警告している。

●違いが歴然! 人工知能の勝利

まずは "waifu2x" のお手並み拝見といこうではないか。このソフトはウェブ上で実行できるようになっている。
< http://waifu2x.udp.jp/ >

ultraist 氏のツイッターでのつぶやきによると、何かのコンペで獲得した賞金をすべてサーバーの増強につぎ込んでいるらしい。「GPU(グラフィックス・プロセッシング・ユニット)20台で動いてて、スパコン感ある」とか。ありがたいことだけど、理不尽だなぁ、提供する側がお金を払ってるって。うまく事業化して収益が上がるといいのに。

気前のよさに感謝しつつ、ウチの真紅を連れてきて、40万から80万画素程度の画像三枚を突っ込んでみる。選択可能なパラメタとして、「ノイズ除去」が「なし / 弱 / 強」と「拡大」が「なし / 1.6x / 2x」がある。「弱」と「2x」を選択した。実行すると、画像一枚あたり、ほんの 2〜3秒で結果が返ってくる。早いなぁ!

比較相手として選んだのはランチョス(Lanczos)法。画像ビューアーのフリーウェアである "IrfanView" では、画像拡大機能における補間手法として七種類提供されているが、その中で一番処理速度が遅く、品質が高いとされているのがこの手法である。

結果を並べてみた瞬間、違いが歴然としているのに驚く。やはり人工知能の勝利なのか。分かりやすいところを 100×100画素ずつ二か所、切り出してきたのが下図である。左側がランチョス法、右側が "waifu2x"。
< http://picasaweb.google.com/Kebayashi/TestWaifu2x#6155301145110171314 >

切り出す前の原画像と二手法による拡大結果はこちら。
< http://picasaweb.google.com/Kebayashi/TestWaifu2x >

まず、ぱっと見の印象がぜんぜん違うのだが、細かくみると、下記のような差異が見てとれる。

・輪郭線がもやもやっとボケていたのが、シャッキリしている。
・数画素幅の細い斜め線において、濃淡ムラの小さいブツブツやら、螺旋を巻いたような余計な線が出現していたのが、消えている。
・左はらいのような先細り線において、細り方にムラがあったのが、なめらかに細っていく美しいはらい線になっている。

これは画期的だ。次の代のスタンダードになっていきそうな気がする。

●超解像は不良設定問題

「リンゴが三つあります。最初のバス停で四人乗ってきました。太郎君はいくら持っているでしょう」。こういうのを「不良設定問題 (ill-posed problem)」という。「知るけ!」と突っぱねるのが正解である。

画像を拡大するためのよい画像処理手法を問う問題は「超解像」と呼ばれているが、この問題もまた、先ほどのに勝るとも劣らぬ不良設定問題である。

ディテールの情報が欠落している小さい画像が与えられたとき、これを拡大したからといって、写ってなかったディテールが見えてくるわけではない。百人ぐらい写っている集合写真の中から一人の顔だけを抜き出して、皺の一本一本、毛穴のひとつひとつまで再現してくれったって、土台無理な話である。

画像を縮小すれば、情報量は減る。減った情報は、使っちゃったお金と一緒で、もはや取り戻すことはできない。欠落した情報は適当に作るしかないが、その作り方は、一通りには決まらない。

6 という数字を見たとき、これが元は 1+5 だったのか、2+4 だったのか、はたまた、2.652+3.348 だったのか、知るすべはない。超解像の問題は、本質的に、これと同じである。

不良設定問題の中でも、答えがたくさんありすぎて一意には決まらないものを、特に「劣決定系(underdetermined)」という。この種の問題に直面したとき、「問題が悪いんだから、答えられるわけないでしょ」と突っぱねるのは、ひとつの正しい対応である。かれこれ二年くらい床屋にも行ってない、ヒゲも剃ってない無精者の私はそうしてきた。

もう少しマシな対応は、「答えがたくさんあるんだったら、そのうち一番簡単なものを返せば文句はないでしょ」というものである。それが「ニアレスト・ネイバー(nearest neighbor)法」である。和訳すれば、「一番近いご近所」。

画像を拡大するには、もともとなかったところに画素を作る必要が生じる。その際、手近なところから色を取ってくるのがこの手法である。その結果、画素の四角がただただ大きくなっていくだけ。10倍に拡大したら、10×10画素の四角いタイルを敷き詰めた画像になる。

もうちょっとマシな手法に「バイリニア(bilinear)法」がある。もともとなかったところに画素を作るにしても、自分がいる四阿(あずまや)の四本の柱の色を混ぜこぜにして、自分の色とする。

それぞれの柱までの遠い近いを考慮して、近くの柱の配分を大きくするよう、重みづけして混ぜ合わせる。前の手法よりはなめらかになるのはいいとしても、なんだかボケボケして、いまひとつシャッキリしない。

画像にしろ音声にしろ株価の変動にしろ地震の揺れにしろ、信号というものは、さまざまな波長の正弦波(サインカーブ)の足し合わせでできているという考え方がある。輪郭線のシャープさといったシャッキリ要素は、高周波成分が受け持っている。

ならば、結果の画像をシャッキリさせたかったら、できるだけ高周波を損なわないようにすればよかろう。この考えは、割と自然な感じがする。

「標本定理」(あるいは「サンプリング定理」とも)というのがある。画像は、一定間隔の飛び飛びの点でしか値が与えられていない。このとき、ある程度以上の高周波成分は、「折り返し」と呼ばれる現象により、低周波と見分けがつかなくなる。

つまり、再現可能な周波数に限界があるということだ。その限界値を「ナイキスト周波数 (Nyquist frequency)」という。

周波数空間において、ナイキスト周波数をカバーする矩形関数(※1)は、逆フーリエ変換して実空間へ持って来ると「シンク(sync)関数」というものになる。

※1:ナイキスト周波数を f0 とすると、-f0 ≦ u ≦ f0 のとき F(u) = 1 で、それ以外のとき F(u) = 0 となる関数 F(u)のこと。

だから、周辺画素から色を集めてきて新たな画素を作るのであれば、シンク関数にしたがった混合比で混ぜ合わせれば、元の画像から引っ張り出すことが可能な周波数成分の情報を最大限に活用したことになる。

シンク関数は、正弦波の振動が原点からの距離に反比例して減衰していくものであるが、厳密にはどこまで行ってもゼロべったりにはならない。1 画素を作るのに、元の画像の全画素を参照して、シンク関数にしたがった係数を掛けて、足し合わせる計算をしないとならない。

これは計算が大変だし、ひとつの画素を作るのにうんと遠くの画素まで参照しなくてはならないというのはなんか変だ。遠くにある画素は配分比が小さくなるので影響は小さいけれど、下手をすると、無関係な色を拾ってきて、おかしなことになりかねない。そこで、ある程度の近隣に限定しようというのが、先ほどのランチョス法である。

サンプリング定理そのものが間違っているってことはない。元の画像からこれ以上の高周波成分の情報を引っ張り出そうにも、結局、低周波と見分けがつかなくなるのであるから、この辺が理論的な限界であって、これ以上優れた画像拡大手法は存在しない、という結論に落ち着きそうなところではある。ほんとうにそうか?

ランチョス法の出力結果を見ると、もうちょっとシャッキリさせることが可能なのではないかという気もしてくる。では、突破口はどこにあるのか?

●キーワードは先験知識

どんな波形の信号も、さまざまな波長の正弦波の足し合わせとして表現可能であることは、数式的には正しい。画像をその一例として見たっていい。

けど、一方、我々は、画像のもともとの成り立ちは、そういうふうなものではないことも同時に知っている。例えば、青い海を背景に白い砂浜に裸足で立つ淡いピンクのビキニを着た若い女性がいるとしよう。

この絵は、正弦波にしたがって濃淡がなめらかに上下動する縦横斜めの縞模様を、それぞれ幅の太い縞模様から幅の細い縞模様へと、順々に塗り重ねることによって生じたものではない。

背景の海と砂浜を、ビキニの女性が遮って割り込んできて、成立している。背景と人物との間には、くっきりとした境界線が生じている。境界線を挟んで両側の色が段差になっている。つまり、不連続な変化が生じている。

不連続であったとしても、正弦波の足し合わせで表現可能ではある。けれども、切り立った段差をしっかりと表現するためには、高周波成分が不可欠である。

高周波成分を打ち切って、低周波の正弦波だけで間に合わせようとすると、本来は均一色で塗りつぶされるべき領域が、輪郭線近辺において、変にもやもやとうねった波々模様になることがある。この現象を「リンギング(ringing)」と呼ぶ。

リンギングについては、『平家物語』の冒頭に「祇園精舎の鐘の声、諸行無常の響きあり」との記述がある。「ゴォーーーンオンオンオンンン」。この「オンオンオン」の余韻の部分がリンギングである。輪郭線が周辺に余韻を生じてしまうのである。

超解像の問題は、正解が一意に定まらない、劣決定系の不良設定問題であった。しかし、一方、我々は、拡大した結果の画像がどんなふうになるべきかを、あらかじめ知っている。

・輪郭線はシャッキリしているべきである
・かといって、斜め線に階段状のガタつきが見えてはいけない
・輪郭線の近辺にリンギングが生じてはいけない

結果に先立って、あらかじめ持っている知識を「先験知識(prior)」という。正解が一意に定まらないのであれば、その中でも輪郭線が一番シャッキリしたのを取ってくるべし、というふうに問題を設定しなおすと、うまくすれば解が一意に定まるようになるかもしれない。

不良設定問題に拘束条件を加えることによって解が一意に定まるようにすることを正則化(regularization)という。

不良設定問題に対して、先験知識を拘束条件として取り込み、コスト関数の最小値を求める問題に帰着させることで、問題を正則化する。非常に多くの実用的な問題を解くために採用される、このところ定番となっている定式化である。

超解像の問題に対しても、この手が有効である。元の画像の情報からは、ナイキスト周波数以上の高周波の波は、低周波の波と区別がつかないが、そうであっても、先験知識をうまく利用すれば、見分けのつかない複数の波成分の本来の配分比を推測することができるようになる。

こうして、ナイキスト周波数を突破して、高周波成分の復元が可能になるのである。

●中国の独壇場?

さて、"waifu2x" の作者である ultraist 氏は、このソフトウェアの下敷きとなる画像拡大手法においては、深層学習の一手法を採用しているとブログで明かしている。

いわく、「"waifu2x" は、SRCNN にインスパイアされて開発されました。細かい違いはたくさんありますが、大まかな枠組みは SRCNN です」。SRCNN(Super-Resolution Convolutional Neural Network)は訳せば「超解像畳み込みニューラルネットワーク」である。
< http://ultraist.hatenablog.com/entry/2015/05/17/183436 >

ブログでは、土台になった論文を参照している[4]。タイトルを和訳すると、「深層畳み込みニューラルネットワークを用いた画像超解像」。2014年12月31日(水)に提出され、最新の改訂版が2015年5月27日(水)に提出されている。

この論文は四人の著者によって書かれている。Chao Dong 氏、Chen Change Loy 氏、Kaiming He 氏、Xiaoou Tang 氏。He 氏は北京にあるマイクロソフト・リサーチ・アジアに所属し、他の三人は、香港中文大学情報工学部に所属する。He 氏も 2011年に博士号を取得するまでは香港中文大学に所属していた。

論文の末尾に顔写真が掲載されており、いずれもアジア人の顔をしている。Tang 氏は検索すると「湯暁鴎」という漢字表記の氏名が出てくる。どうやら中国人らしい。

余談になるが、画像からボケを除去する「デブラー(deblur)」の画像処理において、私が注目している論文も香港中文大学の研究者らによって書かれている。学部は計算機科学技術学部であり、前出のとは異なるのだが。

香港中文大学の SRCNN プロジェクトのサイトにおいて、テストコードと論文が二本、提供されている[3、4]。いずれも同じ著者らによって書かれており、一本は先ほどの[4]である。
< http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html >

もう一本は、2014年に書かれており、主に手法について説明していて、実験結果はそれほど徹底していない。そこを強化したのが先ほどのと言える。

二本の論文では、超解像の課題に対して、人工知能の一種である深層学習の手法を適用したアルゴリズムを提示しており、従来手法よりもよい結果が得られたと主張している。

比較対象として取り上げている従来手法は「スパース・コーディング(sparse coding)」と呼ばれるものである。この手法においては、先験知識を利用しており、ランチョス法よりも進んだものである。その代表的な論文として、二本、参照している[1、2]。2008年と2010年に発表されたものである。

いずれも同一の四人の著者によって書かれている。Jianchao Yang 氏、John Wright 氏、Yi Ma 氏、Thomas Huang 氏である。四人ともイリノイ大学アーバ
ナ・シャンペーン校 (The University of Illinois at Urbana-Champaign, UIUC)に所属する。

Jianchao Yang 氏は中国科学技術大学 (University of Science and Technology of China)で学士号を取得している。

なんと、この分野の研究者として、中国人がぞろぞろと出てくるのである。中国というとコピー商品のイメージがどうしてもつきまとう。あんなに他人のパクりばっかり平気でやっているような風土では、独自技術なんてまだ当分は芽生えないであろうと思ってしまいやすい。

ところがどっこい、学術の領域においては、中国からいい研究がじゃんじゃん生まれてきているのである。真面目は人はスーパー真面目なんである。それに、もともと人いぱーいだし。

日本は、世界的な潮流からどんどん取り残され、勝負できる領域を急速に失いつつあるような気がする。もはや「萌え」と「イグノーベル賞」ぐらいしか生き残る道はないんじゃないかと。

●スパース・コーディングは画像を基本画像の疎な線形和に分解

超解像において、ランチョス法よりは進んでいながら、まだ深層学習にまでは至っていない手作り手法の代表格であるスパース・コーディングについて、まず、内容をみていこう。

と言いつつ、ここで困った問題がひとつある。抽象線形代数について、あらかじめご理解いただいていることを前提としてよいのなら、たいへん説明が楽なのであるが、実際問題、理系でもそういう人は非常に少ない。

数学を専攻した人でさえ、実は怪しい。「体上のベクトル空間」の定義、言えますか? ベクトルには大きさと向きがある、などという俗界の迷信をまだ信じたりしてはいませんか?

なので、これの説明は避けて通るわけにはいかないのだが、そこから論を掘り起こしていると、カレーライスのレシピを説明するのに、じゃがいもの育て方から入るような、気の遠くなりそうな道のりで、日が暮れて夜が明けてまた日が暮れてしまう。

しかも、「群(group)」、「環(ring)」、「体(field)」の定義から入って、「体上のベクトル空間」を定義するという極めて正統な道を踏んでいると、人里離れた山奥に独居する仙人の発する、世俗の人の理解を超越した呪文みたいなことになりかねない。ここは極めてテキトーに歩き抜けたい。

じゃ、行きますよ。ついてきてね。まずは、「線形和」について。

(マティーニ)=45×(ドライ・ジン)+15×(ドライ・ベルモット)
(ジン・トニック)=45×(ジン)+100×(トニック・ウォーター)
(テキーラ・サンライズ)=45×(テキーラ)+90×(オレンジ・ジュース)+10×(グレナデン・シロップ)
(マルガリータ)=45×(テキーラ)+30×(ライム・ジュース)+30×(レモン・ジュース)+7×(ホワイト・キュラソー)
(モスコー・ミュール)=45×(ウォッカ)+15×(ライム・ジュース)+90×(ジンジャー・エール)
(ブラック・ルシアン)=40×(ウォッカ)+20×(コーヒー・リキュール)
(カルーア・ミルク)=40×(コーヒー・リキュール)+90×(牛乳)
(チャイナ・ブルー)=30×(ライチ・リキュール)+15×(ブルー・キュラソー)+90×(グレープフルーツ・ジュース)

こんな形式の数式を線形和という。上記の例では、左辺はカクテル、右辺はレシピ。材料に係数を掛け算して、足し合わせている。これをもって、カクテルは材料の線形和の形で表現されている、という。

各々のカクテルがベクトルである。材料は基底(basis)ベクトルである。任意のベクトルは基底ベクトルの線形和で表現できる、というわけだ。ここで、カクテルには大きさも向きもない点に注意されたし。

ベクトル全体からなる集合をベクトル空間という(ウソ。本来はベクトル空間を先に定義しておいて、その要素をベクトルと呼ぶのだが、気にしてはいけない)。任意のベクトルに対して、「ノルム」という尺度が運よく定義できると、「ノルム空間」となり、初めて「大きさ」という概念が導入される。

さらに運よく、任意の二つのベクトルに対して「内積」という尺度が定義できると、「内積空間」となり、初めて「角度」という概念が導入される。ここに至って初めて「大きさ」や「向き」の概念が芽生えるのであって、単にベクトル空間であるだけでは、両者の概念の存在は前提とされない。いままで誤解してたでしょ?

ちなみに、極限について閉じた (これを「完備な (complete)」という)ノルム空間を「バナッハ空間」と呼び、同様の内積空間を「ヒルベルト空間」と呼ぶ。ひょっとすると、名前くらいは聞いたことがあるんじゃないかと。

ベクトルを基底の線形和で表すと、どんないいことがあるのか? それは、ベクトル空間全体を把握したいとき、その空間の隅々まで訪ね歩く必要がなくなり、基底について知っておけばじゅうぶんであり、だいぶんラクになるという点にある。

カクテルは何百種類あるか、分かったもんじゃない。同じ材料でも、混合比をちょっと変えただけで別のカクテルになるのだと言い張るのであれば、それこそ無限種類のカクテルがありうることになる。

一方、材料のほうは、せいぜい数十種類といったところではないだろうか。少なくとも、カクテルを全部調べ尽くすよりかは、材料を全部調べ尽くすことのほうが、格段にラクなはずである。

もし仮に、すべての人類の性格が、柴田氏と濱村氏とべちお氏の線形和で表現可能であったとしよう。それが成り立つのであれば、全人類にわざわざ会いに行って話を聞いてくる必要はない。三人のことを徹底的に理解すれば、全人類を理解したも同然となる。

全人類の中から、何人かを選んで連れてきて、サンプル集団としよう。すべての人類が、サンプル集団のメンバーの線形和で表現可能であるとき、このサンプル集団は「完全(complete)」であるという。

その表現の仕方が一通りに限られるとき、このサンプル集団は「一次独立(linearly independent)」であるという。二条件をともに満たすとき、このサンプル集団を「基底(basis)」と呼ぶ。基底をなすサンプル集団の人数は、人類空間の次元と一致する。

先ほど、任意の波形の信号は正弦波の足し合わせで表現できることを述べた。これも、任意のベクトルを基底ベクトルの線形和で表現することの実例のひとつである。任意の波形は調べ尽くそうにもきりがないが、基底ベクトルは互いに波長の異なる正弦波なので、把握しやすい。

まあ、次元は無限次元なんだけど、そんなことでいちいち気絶しないようにしよう。ベクトルの本数は非可算無限だけど、基底ベクトルの本数は可算無限なので、これでも劇的に減っているのだ。

ところで、もし仮に、サンプル集団として連れてきた人が多すぎたらどうなるだろう。完全性を満たした上で、一次独立性が満たされないとき、「overcomplete」(和訳が分からない)であるという。

任意の人物をサンプル集団のメンバーの線形和で表現しようとするとき、その係数が一意には定まらなくなるので、不便である。最小人数、つまりは、次元の数にまで減らしたくなるところである。

ところが、実用的には、overcomplete であったほうが便利なことがある。係数の二乗和が最小になるようにする、という縛りをかければ一意に決まるようになるし。定義上、これを基底を呼ぶわけにはいかないので、代わりに「枠(frame)」と呼ぶ。

さて、ここまで準備しておくと、スパース・コーディングの手法を理解するための入り口に立ったことになる。ディズニーランドに行こうとしたけど、海浜幕張駅に到着した時点ですでにへとへとに疲れているということは、ありがちだ。まあ、がんばろう。

任意の画像が与えられたとしよう。大きすぎると食べづらいので、例えば、9×9 画素くらいのパッチ(つぎはぎ)に切り分けちゃう。サイズが小さくなったとはいえ、すべてを調べ尽くすのは大変だ。例の手を使って、基底の線形和で表しちゃおう、というわけだ。

それも、基底ではなく、overcomplete な枠を取ってくる。画像パッチを線形和で表現するための枠とは、よく出現しがちなサンプル画像集である。まっ平らとか、いろいろな向きのグラデーションとか、いろいろな向きの輪郭線とか、輪郭線の折れ曲がった角っことか。

線形和の係数が一意に決まるようにするための拘束条件としては、値が 0 でない係数の個数が最小になるように、というのを設ける。つまり、枠画像が非常にたくさんあっても、使うのはごく少数の一部に限定しようというわけだ。

枠の数の多さに比べて、使う個数が非常に少ないことをもって「疎(sparse)」であるという。スパース・コーディングの呼称はこれに由来する。

この枠を論文では「辞書」と呼んでいる。枠に属する画像パッチのすべてについて、拡大したらどうなるべきかというお手本画像を作り、ペアーで保持しておく。実際には、拡大した結果として模範となりうるシャッキリした画像を拾い集めてきて、それを縮小して枠とすればよい。

これで一丁上がり。任意の画像が来たら、パッチに切り分け、それぞれのパッチ画像を枠の要素の疎な線形和として表現し、辞書を引くことによって枠の要素の拡大画像を獲得し、それらの線形和としてパッチの拡大画像を獲得し、パッチを貼り合わせて出来上がり。

英語の文章が与えられたとき、まずすべての単語について辞書を引いて、対応する日本語の単語を獲得し、それらをつなぎ合わせて邦訳文を組み立てるというのとほぼ一緒だ。

従来のランチョス法のような手法との本質的な違いはどこにあるのか? 画像を基底なり枠なりの線形和で表現する際、旧来の手法では、正弦波を構成材料として採用していた。

しかしながら、実際の写真においては、正弦波が構成要素になっているわけではない。それよりも、たとえovercomplete になったとしても、実際に起きうるシャープな輪郭線などをサンプルとして取ってきて、材料としたほうが、結果がまさったというわけである。

超解像における大きな進歩ではあるが、この手法はまだ、人工知能を導入したものにはなっていない。

●深層学習がもたらす、さらなる前進

スパース・コーディングの手法もそこそこ大したもんだと思うのだが、人工知能を導入してさらによい結果を得たというのだから、輪をかけてすごい。

では、内容をみていこう。と言いつつ、またしても似たような問題が......。「深層学習」とは、入力層と出力層との間に中間層を二層以上設けた構造のニューラルネットワークです、という説明で、あっさり納得していただけるのなら、ラクチンなんですけど。ニューラルネットワークのなんたるかから説明を起こしていると、これまた日が暮れ、夜が明け......。

ただ、ここは説明を省くのをお許しいただけないかな、と。ウィキペディアの解説が一般向けとして分かりやすいかどうか、疑問ではあるのですが。しかし、抽象線形代数に比べたら、深層学習は旬な話題ですし、専門外の方々向けの入門的解説は、見つけやすいのではないかと。

さて、超解像の問題に深層畳み込みニューラルネットワークを適用して、最適な画像拡大手法を学習させたというこの論文、まず、この領域に人工知能を持ち込んだこと、それ自体が画期的なのは明らかなのだが。

その中身においても、なかなか面白い点がある。手作り手法の一種であるスパース・コーディングの手法をまるで無視して、更地に新たな別手法を独立に構築したというわけではない。スパース・コーディングの手法を人工知能の手法の枠組みの中へ引っ越してきて、丸ごと取り込んでしまっているのである。

この論文で述べられている手法においては、ニューラルネットワークは入力層と出力層との間に中間層を二層設けている。つまり、入力層から第一の中間層へ、第一の中間層から第二の中間層へ、第二の中間層から出力層へ、と三段階の計算を経ている。

一方、先ほどのスパース・コーディングにおいては、画像パッチをフレームの疎な線形和に分解するステップと、辞書を引いてパッチ画像の拡大画像を引っ張ってくるステップと、出力画像を合成するステップとの三段階からなっていた。三段階と三段階が対応しているのである。

スパース・コーディングにおいては、三段階のステップそれぞれにおいて、設計者が個別に工夫を凝らして、出力画像のクオリティの向上を図っているのに対して、ニューラルネットワークにおいては、全体をひとつのニューラルネットワークに組み込んで、まとめて面倒をみている。

入力層にこういう画像が入って来たら、拡大結果としてこういう画像を出力層から出力すべし、というお手本画像のペアーを大量に与え、中間の変換過程がどうあるべきかを学習させる。この学習過程は、任せておけば自動的になされるものであり、中間層の各ノードがどんな意味をもつのか、どんな役割を果たしているのかについて、外から関知する必要がない。

三段階をそれぞれ個別に、ではなく、全部ひっくるめて全体を最適になるよう調整してくれるという点が、従来手法に対する優位点になっている。

もうひとつ、面白い点がある。中間層を二層設けるという構造については、もともとはスパース・コーディングにならったものであったのに、それをニューラルネットワークの表現にしたがって定式化してみると、それぞれのステップが見かけ上、同じ形式に収まってしまう。

どのステップにおいても、前の層の各ノードからの出力に対して、ある係数列と畳み込み計算をおこない、その結果に対して、「活性化 (activation)関数」を通して、その層からの出力とする。

活性化関数としては、以前よりよく用いられていた「シグモイド(sigmoid)関数」ではなく、「rectified linear unit (ReLU)」(和訳不明)が用いられている。各段階の処理の意味はそれぞれぜんぜん違うのに、形式的には同じものへと帰着している。

意味を考え考え問題を解くよりも、汎用的な形式に持ち込んで機械的に解いちゃうほうが、ラクな上に、結果がまさる。天然知能が人工知能に敗北する瞬間を見たような気がする。

この論文においては、対象画像は写真などの自然画像を想定しているようだが、ultraist 氏はこれを土台にして、イラストなどの人工的な画像に特化して、よりよい結果が出るように調整したのであろう。

人類がその英知を結集して、歴史を重ねて到達した最新・最高峰の技術を引っ張ってきて、嫁を拡大することにさっそく応用しちゃう、斜め上方向への脱力的情熱は、世界に誇ってよい日本人の特質である。わざわざ世界を回って誇りに行かなくても、なぜか知られつつあるわけだけど。

●力尽きました......

みなさん、生きてますか? ここまで読んでいただきまして、ありがとうございます。けど、私は力尽きました。

学術界にトレンドの変化が起きたら、数年経てば社会のムードの変化となって現れるのではあるまいか。人工知能が天然知能を凌駕する時代がやってきて、さまざまな応用例が社会システムに浸透していくようになっていき、その結果、人々はどうなっていくのだろう、近未来社会はいったいどんなふうになっているのであろう。

そのへんのことも語ってみようと思っていたのですが。稿をあらためたいと思います。って、しばらくはまた紀行文みたいなのが続くかとは思いますけど。そのうち戻ってきます。

◎参考文献

[1] Jianchao Yang, John Wright, Yi Ma, Thomas Huang,
"Image super-resolution as sparse representation of raw image
patches,"
Computer Vision and Pattern Recognition, 2008, pp 1-8
[2] Jianchao Yang, John Wright, Thomas Huang, Yi Ma,
"Image Super-Resolution via Sparse Representation,"
IEEE Transactions on Image Processing, Volume 19 Issue 11,
November 2010, pp 2861-2873
[3] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang,
"Learning a Deep Convolutional Network for Image Super-Resolution,"
Computer Vision - ECCV 2014
Lecture Notes in Computer Science Volume 8692, 2014, pp 184-199
[4] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang,
"Image Super-Resolution Using Deep Convolutional Networks,"
arXiv:1501.00092v2
(Submitted on 31 Dec 2014, last revised 27 May 2015)

【GrowHair】GrowHair@yahoo.co.jp
セーラー服仙人カメコ。アイデンティティ拡散。
< http://www.growhair-jk.com/ >

「線路内に鹿が立ち入ったため、少々停車します」。

5月16日(土)、高崎駅で買ったおぎのやの峠の釜飯を引っ提げ、桐生駅からわたらせ渓谷鐵道に乗る。18:06発ので、ほどなく日が暮れ、単線を走る一両編成の茶色いディーゼルカーは暗闇の山林を分け入っていく。

終点の間藤まで往復するのだが、間藤に用事があるわけではなく。ウチで論文読んでるとついついダレるので、列車の中に自ら缶詰めになっていようかなと。

馬鹿が、ではなく、鹿がってとこが、さすがグンマーですな。見ると、五頭いる。大きいのが 二頭と小さいのが三頭。家族か。線路脇の斜面を登って逃げていき、尾根まで上がったのを見届けてから発車。運転手さんに聞くと、日常的なことらしい。そう言えば、1月1日(木) に乗ったときはタヌキだった。

いつの間にか、乗客が二人だけになっていた。麦わら帽子の丸顔の若い女の子と私。ベトナム人であった。日本での工場勤務を希望したら、承認され、三年ほどの滞在予定期間のうち、半分ぐらい過ぎたとか。ベトナムから来たんじゃ、グンマーの冬の寒さはさぞかしコタエたであろう。

桐生で買い物した帰り、神戸 (ごうど) で降りるつもりが、居眠りしてて乗り過ごしたと。パンパンに詰まったカートを引いている。ここから先、すれ違う列車はなく、途中駅で降りて待っていたとしても、結局終点まで行って引き返してきたこの列車に乗るだけだ。真っ暗な無人駅で若い女性が一人で待つという選択肢は、ない。

終点までご一緒する。論文どころではなく、ずっと楽しくおしゃべりして過ごす。旅は道連れですな。終点で折り返しても、列車に乗ってくる人はなく、ずっと二人。神戸で降りていったら、乗客は私一人になった。なんだかぼーっとしてしまって、やはり論文に入っていけず。

「あちらのお客様からです、お嬢様」ではないが。5月30日(土)、中野の行きつけの焼き鳥屋のカウンター席で一人で飲んでいると、背後のテーブル席のおっちゃんたちが帰り際に声をかけてきた。「もう一軒行くんだけど、一緒にどう?」

はい、お供いたします。そしたら、私の分まで勘定を持ってくれた。もう一軒というのは、フィリピンパブであった。私はそういうお店に行くのは初めてだった。

4月29日(水)のイベント『爆音カラオケ』で主催の都築響一氏が「ピンぼけ」という用語について解説していた。フィリピンパブにハマりすぎたせいで、堅実なサラリーマン生活の道を踏み外し、人生を台無しにしてしまうことをいうらしい。

どういう蟻地獄なんだと好奇心いっぱいであったが、普通のカラオケパブであった。それなりに楽しめたけど。

おっちゃんたちのうち一人は、ズボンのポケットからむき出しの札束を引っ張り出した。一万円札が10枚ほどあったか。千円札を選り出してカラオケマシンに突っ込んでいた。どんな素性の人たちなんだと、ちょっと怖くなったが、建設現場の労働者たちのようであった。そこの勘定も持ってくれた。

これが配信される日、会社を休んで、シンガポールへの機上の人になります。6月6日(土)に開催される「Minnacon」というイベントに参加します。会場はNANYANG TECHNICAL UNIVERSITY (南洋理工大学)。私が行くことは、フェイスブックのイベント告知ページですでにアナウンスされています。
< http://www.facebook.com/MinnaCon >