「脳・心・人工知能」 甘利俊一著 へのメモ書き(2) スパース表現について

「スパース性」とか「スパース・コーディング」という言葉は、ディープラーニングが話題になってからその関係で耳にしていたのですが、「『脳・心・人工知能』 甘利俊一著」

での説明が、私にはインパクトがあったので紹介します。その前に以前の私のブログ記事からスパース・コーディングについて書いたものを引用しておきます。

神経科学者達は大胆な仮説を立てました。それは「視覚」「聴覚」「触覚」「味覚」など、人間の様々な知覚能力に通底する基本的なメカニズムがある、というものです。これに従えば、脳は目や耳から入力された生々しい初期情報を、段階的に抽象化して、徐々に上位の概念を形成していきます。彼らは、このメカニズムを自分達なりに考えて、具体的なアルゴリズムへと転化し、これを「スパース・コーディング(Sparse Coding)」と命名しました。英語の「Sparse」は「少量の」という意味で、ここでは「大量の情報から、抽象化に必要な本質的情報だけを、少しずつ抜粋すること」を指しています。

クラウドからAIへ」より

ここでの

英語の「Sparse」は「少量の」という意味で、ここでは「大量の情報から、抽象化に必要な本質的情報だけを、少しずつ抜粋すること」を指しています。

という説明は、上記の「脳・心・人工知能」を読むと実はちょっと違うことが分かります。まず、英語の「Sparse」は「少量の」というよりかは「まばらな」という意味です。スパース性の説明は、このあとの「脳・心・人工知能」の引用に登場します。

オルスホーゼン氏は脳の視覚野の一部である「V1」の研究を重ねることによって、動物の目から入力された視覚情報を、脳がどう処理しているかを解明する仮説を立てました。それによれば、私たち人間や動物の目が捉えた外界の映像は、ちょうどコンピュータ画面を構成する無数のピクセル情報のようなものです。
 脳の視覚野は、このピクセル情報からいくつかの特徴ベクトル(物体の輪郭を構成する線)を自動的に抽出します。そしてこのベクトルをいくつか組み合わせて、「目」や「耳」のようなパーツ(部品)を描き出し、それが終わると今度はこれらのパーツを組み合わせて「猫」や「人」の顔など最終的な対象物を描き出している。要するに脳の視覚野は、そのように段階的に対象物を認識しているというのです。
 オルスホーゼン氏はこの仮説をコンピュータで処理できるようなアルゴリズムへと転化し、これを「スパース・コーディング」と名づけました。

「AIの衝撃」より

・・・・2012年6月には、グーグルとスタンフォード大学の共同研究チームが開発したニューラル・ネットワークが、ユーチューブ上の動画から「猫」の概念を獲得した、というニュースが報じられました。ここで使われていたテクニックが「ディープ・ラーニング」です。(中略)
 いずれにせよ動画とは、カラーや明暗を表現するピクセル(画素)の集合に過ぎません。ニューラル・ネットワークは、このピクセルという最も低いレベルの情報から、猫の輪郭や毛皮の模様などを構成するエッジ(縁)情報を獲得します。次に、このエッジ情報から猫の「目」や「耳」などパーツ情報を獲得し、それらを組み上げることによって最後に「猫の顔」という最も高いレベルの概念を、ぼんやりとしたイメージとしてディスプレイ上に表示したのです。
 このように情報の抽象度を段階的に上げていって、最終的に何らかの概念を獲得するのがディープ・ラーニングの特徴です。それは前述のスパース・コーディング、つまり人間の知覚プロセスに関する仮説を基にしています。


同上

これらの説明によって、私はぼんやりとスパースについて分かったような気がしたのですが、甘利先生の上記の本の説明は(一般書という性格上、かなり説明をはしょっていますが)私に、もっと分かったような気を持たせてくれました。

スパース信号処理は、ここ10年ほどで信号処理の世界では中心的な話題となった。
 その起源の1つに脳における信号処理がある。その着想は新しく、いまや強力な手法として生命科学、統計科学、天文学、材料科学など、広い範囲の科学の世界で注目されている。


「脳・心・人工知能」より

まず、スパース性について、これはニューラルネットワーク脳科学に関する話題に留まらず「広い範囲の科学の世界で注目されている」ということに驚きました。その「スパース性」つまり「まばら性」ということがどんなことか、ということについてですが

ベクトルxがあったときに、その成分のほとんどが0であるとしよう。これを「スパースベクトル(疎ベクトル)」といい、0でないものを「活性化した成分」と呼ぶ。


「脳・心・人工知能」より

ということです。これがスパース性の定義です。あるベクトルのほとんどの成分が0であることがスパース性です。上の引用での「活性化した成分」がデジタル信号におけるように1なのか、それとも実数値を許しているのかよく分かりませんが、私はまずは「1である」として考えました。

いまわれわれが知りたいのは、m個の成分を持つ信号であったとしよう。これをベクトルsで表す。これが要因となって結果xが生ずるのであるが、我々は結果を知るのみでここから要因sを推測しなければならない。


「脳・心・人工知能」より

ただでさえ難解な記述の、その一部分だけ引用するとよけいに分かりにくくなって恐縮です。ここで注目すべきだと思うのはスパース性の問題を、統計(多数回の測定によって得られたデータから真の値を求めること)と結びつけていることです。

sがスパースであることがわかっていたとしよう。たとえば、kスパースといって、sの中で活性化している成分(要因)はたかだかk個で、それ以外の成分は皆0だったとする。


「脳・心・人工知能」より

ここからは少し数学的に難しいので、話をはしょろう。kが小さければ、測定数nmよりずっと小さいk\log{m}程度でも多くの場合解が求まることがわかった。
 これは大変な発見である。m個の未知数を知るのに、\log{m}k倍程度の測定ですむというのである。m\log{m}とでは大違いである。そうならば測定をさぼって少しの測定ですむので、これを圧縮測定と呼ぶ。これを解くアルゴリズムも知られていて、たとえば、sの1ノルムを小さくしながら解けばよく、いろいろな数学理論が展開されている。
 sがスパースであるという条件は、多くの場合に当てはまりそうである。sとしてどの成分が活性化していてもよいが、実際に活性化するのはごく少数であるという仮定は、自然界ではよく起こりそうである。
 このアイディアを用いて、科学の世界に革新が起こっている。この理論を信号処理分野に応用すれば、携帯電話の設計や脳の活動の測定に使うMRIからの情報解読が精度よく行える。それだけでなく、たとえば天文学に応用して、観測データから星雲やブラックホールの情報を得ようという試みがある。地球科学、材料科学などへの応用も考えられている。


「脳・心・人工知能」より

とにかく「大変な発見」だそうです。そして「このアイディアを用いて、科学の世界に革新が起こっている」そうです。それというのもスパース性が成り立つ(=sとしてどの成分が活性化していてもよいが、実際に活性化するのはごく少数である)「という仮定は、自然界ではよく起こりそうである」そうだからです。この説明を読んで、いろいろ触発されることがありました。ところで「m\log{m}とでは大違いである。」という箇所に関して補足を入れておきます。ここでの対数\log情報科学でよくあるように2を底にした対数だと思うのですが、もしそうだとすると、たとえば2^{10}=1024なので、m=1024とすると\log{m}=10になるので、1024回測定しなければならないのが10回の測定で済む、ということになり、たしかに「大違い」です。つまり測定するデータにスパース性を仮定すると(そしてその仮定はしばしば成り立つらしい)、測定の回数を大幅に削減できる、という点がスパース性のすごさだと理解しました。
 私が触発されたことの一つは、スパース性というのが自然界に元々広く存在する性質なのか、それとも我々の脳がそのような情報処理をするために、自然界がそのように解釈されるのか、という疑問を思いついたことです。私の直感では、これはかのプラトンが提出したという(記憶があいまいなので間違っていたらごめんなさい)「我々は今まで完全な三角形というものを見たことがないのに、なぜ現実の不完全な形を見てそれを三角形として認識するのか」という問題と係わってくると思います。プラトンの答えは「我々は生まれる前に、この世とは別の世界で完全な三角形、つまり三角形のイデア、を見たことを心の底で記憶しているから」というものです。私にはスパース性の研究が、この問題に新たな解を提出することになるような気がしました。


この本のこの箇所の記述はゆっくり読解したいと思いました。