tsujimotterのノートブック

日曜数学者 tsujimotter の「趣味で数学」実践ノート

動物の目は「微分」を活用している

「数学は役に立つのか?」「微分や積分は役に立つのか?」というのは、たびたびSNS上で目にする話題ですね。もちろん、人間社会において、さまざまな場面で数学や微分・積分が役に立っているのはみなさんよくご存知かと思います。

今日紹介したいのは、人間が発見するよりもはるか昔に、生物がすでに既に微分を活用していたかもしれない というお話です。

たとえば、カブトガニのような生物は、実際に「微分」を活用していたのではないかと言われています。

Tachypleus tridentatus-3.jpg
By Togabi - Own work, CC BY-SA 4.0, Link

カブトガニが誕生したのは2億年前ですが、人類が微分を発見したのはせいぜい300年前ですから、人類が活用するよりもはるか昔ということになります。

いったいどんなふうに微分を活用していたのでしょうか。面白い話なので、ぜひ最後まで読んでいただけると嬉しいです!

目次:

 

1. 物体認識とエッジ抽出

動物のもつ目は、外界を認識するセンサーとして活用されます。目の内部にある視細胞が光の刺激を受けると、その情報は脳に伝達されます。脳に伝達された情報は、視線の先に物体があるかどうかを判断する材料として活用されるわけです。

ヒトの場合は、光の刺激を受け取る視細胞は網膜に1億程度あります。ヒトの脳は視細胞から得た「1億ピクセルの画像」をリアルタイムに処理していると思うことができます。

一方で、単に画像が与えられただけでは、そこにある物体を認識できません。物体を認識する際には必要となるのは、物体と物体の間の「境界線」の情報です。

f:id:tsujimotter:20210813175034p:plain:w600

コンピュータが画像処理する際も、境界線を計算する処理がしばしば用いられます。境界線(エッジ)を抽出する処理のことを「エッジ抽出」といいます。


代表的なエッジ抽出のアルゴリズムとして、①Sobelフィルタと②ラプラシアンフィルタがあります。以下の画像は、①②を実際に適用した結果です。

f:id:tsujimotter:20210813155748p:plain:w480

エッジ(境界線)の部分が白線で表示されていますね。いったんこのように下処理をしてから物体認識を実行するわけです。

最近は、Deep Learningという手法が登場していて、エッジ抽出のような「前処理」を行わなくても直接画像から物体認識をできるようになりました。一昔前の画像処理においてはだいたいこのような処理を行っていました。

とはいえ、Deep Learningの方でも、明示的にエッジ抽出を行わないというだけで、内部では暗に実行されている可能性はあります。


2. 微分でエッジ抽出できる

先ほど、エッジ抽出のアルゴリズムを2つ紹介しました。

f:id:tsujimotter:20210813135156p:plain:w400

実はこれらのアルゴリズムは 微分 を使ったアルゴリズムなのです。

実際、Sobelフィルタは 1階微分 、ラプラシアンフィルタは 2階微分 を実行したものになっています。


以下では、微分がエッジ抽出に使えるということについて、その理屈を説明したいと思います。

上では2次元のカラー画像を使っていましたが、以下では、簡単のため1次元のグレースケール画像で考えることにしましょう。

1次元の画像を考えるということは、たとえば

f:id:tsujimotter:20210813171204p:plain:w300

というような画像を考えるということですね。横方向の色の濃淡だけを考えるということです。


この1次元のグレースケール画像の濃淡は、横軸  t を変数とする関数  x(t) で表すことができます:

f:id:tsujimotter:20210813171130p:plain:w300

エッジを抽出するというのは、要するにこういう部分を抽出するということです。

f:id:tsujimotter:20210813171449p:plain:w300


問題を簡単にするために、エッジが原点に一箇所ある画像を考えたいと思います。具体的には、次のような濃淡の画像を用いることにします。

f:id:tsujimotter:20210813212015p:plain:w400
この関数は
 \displaystyle x(t) = -\frac{\arctan(5t)}{\pi} + \frac{1}{2} \tag{1}

という式で定義されています。

少々複雑に見えるかもしれませんが、この関数である必然性はあまりありません。

 t が十分小さい負の値のときは「ほぼ  1」、 t が十分大きい正の値のときには「ほぼ  0」となり、その間を連続的に繋ぐような(微分可能な)関数を選んでいます。


エッジを抽出するということは、関数の変化量が大きい点を抽出 すれば良いわけですね。変化量を知りたいので、微分を考えれば良さそう、というのが基本的なアイデアです。


実際、1階微分  x'(t) と2階微分  x''(t) を計算すると、こうなります:

 \displaystyle x'(t) = -\frac{5}{\pi(1+(5t)^2)} \tag{2}
 \displaystyle x''(t) = \frac{50t}{\pi(1+(5t)^2)^2} \tag{3}

これらのグラフは次の通りです:

f:id:tsujimotter:20210812224345p:plain:w400

1階微分の方も2階微分の方も  t = 0 の付近でピークとなっていることがわかりますね。これはエッジの位置が抽出できたということですね。


簡単のため1次元に限定して紹介しましたが、2次元の場合もほとんど同様に考えることができます。


3. 側抑制:カブトガニの複眼

ここまでの話で、微分がエッジ抽出のフィルタとして活用できることについて説明しました。

以下が今回のメインパートなのですが、実際の生物の目が「微分によるフィルタ」を持っていることを紹介したいと思います。


このことを説明するために、カブトガニ という生物の研究を紹介します。

カブトガニは、頭部が硬い甲羅に覆われ、剣のようなしっぽを持った独特な見た目の生物です。

Tachypleus tridentatus-3.jpg
By Togabi - Own work, CC BY-SA 4.0, Link

博物館や科学館でカブトガニの化石を見たことがある人もいるのではないでしょうか。実際、恐竜の時代よりもはるか昔(2億年前)から地球上に生息しているのですが、驚くべきことに今もその形を変えずに生き続けています。まさに「生きた化石」です。


カブトガニには 複眼 と呼ばれる目がついています。

f:id:tsujimotter:20210813154603p:plain:w360
Wikipedia「カブトガニ類」内の画像(パブリックドメイン)を辻が改変

複眼とは「個眼」と呼ばれる小さい目がたくさん集まってできた集合体のことです。トンボの目が複眼になっていることはよく知られていますね。カブトガニも同じです。

カブトガニの複眼1つには、生まれたばかりのときは24個の個眼、成体になると約400個の個眼が集まっているそうです。


カブトガニの複眼には「側抑制」という仕組みが備わっており、ラトリフとハートラインという研究者によって詳しく研究されています *1。これについて以下で紹介しましょう。

約400個の個眼に入力された光の強度の情報は、個眼に接続された視神経に出力され、そこから脳に情報が伝達されます。この構造は、次の図のようなモデルによって表すことができます。

f:id:tsujimotter:20210812222623p:plain:w480

各個眼には、 n = 1, 2, 3, \ldots という番号がついているとしましょう。また、 n 番目の個眼に入力された光の強度(実数値)を  x_n とします。

この情報が視神経  y_n に伝達されるわけですが、単に  x_n から  y_n にそのまま伝達されるわけではありません。 x_n だけでなく、両隣の  x_{n-1} x_{n+1} の情報も用いられ、これらに係数を掛けて加算された情報が  y_n に出力されるのです。

式で表すと

 y_n = w_{n-1, n} x_{n-1} + w_{n, n} x_{n} + w_{n+1, n} x_{n+1} \tag{4}

となります。

 w_{n-1, n}, \; w_{n, n}, \; w_{n+1, n} の各係数は、結合荷重 と呼ばれる実数値で、この値が大きいほど対応する入力の影響を大きく視神経に伝えることになります。結合荷重が正のときに「興奮性」、負のときに「抑制性」といいます。

今回のモデルでは、 x_{n-1}, \; x_{n+1} に対応する結合荷重が「抑制性」になっています。つまり  x_{n-1}, \; x_{n+1} の値が大きければ大きいほど、 y_n の値が小さくなる、すなわち抑制されるわけですね。両隣の入力が抑制性なので 側抑制 といいます。

f:id:tsujimotter:20210813214942p:plain:w360


ラトリフとハートラインがやったのは、右半分の個眼を遮断することで、左半分の個眼にだけ強い光を与えるような状況を作り、視神経に伝達される刺激を計測する実験です。

つまり、次のような入力が与えられているわけですね。

 x_{n} = \begin{cases} 1 & n \leq N \\
0 & n > N \end{cases} \tag{5}

この入力値は、前節で考えた式  (1) の入力を離散化したような形状になっています。

f:id:tsujimotter:20210813162700p:plain:w400


ここで実際の実験を行うことはできませんので、式  (5) の入力を与えたときに、上の側抑制のモデル(式  (4))の計算結果がどうなるのか確認してみましょう。

 (4) の係数を具体的に決める必要がありますが、今回は  w_{n} = 2, \;\; w_{n-1, n} = w_{n+1, n} = -1 とします。つまり

 y_n = - x_{n-1} + 2 x_{n} - x_{n+1} \tag{6}

という式を計算するわけですね。 x_{n-1}, \; x_{n+1} の係数が負になるので、側抑制というわけです。


計算してみると、次のようなグラフが得られます:

f:id:tsujimotter:20210813153715p:plain:w480

オレンジ色の線が  x_n で、灰色の線が式  (6) で計算された  y_n の値になっています。

カブトガニの実際の複眼で計測された結果も、グラフの形状としては上記の図とだいたい同じです。


ここで出力  y_n の形と、式  (3) で計算した2階微分の形を比較してみましょう。ちょうど 上下反転 したような関係になっていますね。

f:id:tsujimotter:20210813163559p:plain:w400

つまり何が言いたいかというと、側抑制によって出力される値は、入力の2階微分にだいたい一致する ということです。


もちろん、このことは偶然ではなく、ちゃんと理屈があります。それを説明しましょう。

4. 側抑制モデルが2階微分に一致するのはなぜか

入力  x(t) t について無限回微分可能な関数とします。この関数を  t の周りでテイラー展開すると

 \displaystyle x(t+h) = x(t) + h x'(t) + \frac{1}{2}h^2 x''(t) + \frac{1}{3!} h^3 x'''(t) + \cdots \tag{7}

のように表せます。この式の3次以降の項を打ち切って近似します。

 \displaystyle x(t+h) \fallingdotseq x(t) + h x'(t) + \frac{1}{2}h^2 x''(t) \tag{8}

これは要するに、十分小さい  h に大して  t+h における値は、右辺で近似できることを表しています。

また、 h -h に置き換えて

 \displaystyle x(t-h) \fallingdotseq x(t) - h x'(t) + \frac{1}{2}h^2 x''(t) \tag{9}

とします。


 (8), (9) の両辺を足し合わせると、 x'(t) を消去することができます:

 \displaystyle x(t+h) + x(t-h) \fallingdotseq 2x(t) + h^2 x''(t) \tag{10}

これを移項させて  h^2 で割ると

 \displaystyle x''(t) \fallingdotseq -\frac{1}{h^2}\left\{ -x(t-h)+2x(t)-x(t+h) \right\} \tag{11}

となり、これが求めたかった式です。


さて、右辺を観察すると、 x(t-h), \; x(t), \; x(t+h) という入力の線形和になっていることがわかります。これらを、離散的な入力  x_{n-1}, \; x_n, \; x_{n+1} だと思えば、これはまさに側抑制の式  (6) そのものになっていますね。

f:id:tsujimotter:20210813165128p:plain:w480

側抑制のしくみが、まさに2階微分のフィルタの役割を果たしていたというわけですね! 面白い!


5. まとめ

今回の記事では、動物の目がエッジ(境界線)抽出に微分を活用していることを紹介しました。

まず、1階微分や2階微分にはエッジ抽出の効果があることを、1次元の例を元に説明しました。これらの原理はSobelフィルタやラプラシアンフィルタなどの実際の画像処理アルゴリズムに活用されています。

また、カブトガニの複眼の視細胞にある側抑制のモデルを紹介しました。側抑制のモデルに対し、入力刺激を与えて計算すると、実際にエッジ抽出フィルタとして働くことを確認しました。さらに、得られる出力が入力刺激の2階微分に相当することを、理論的に説明しました。

今回特にカブトガニの複眼について考えましたが、側抑制はカブトガニに特有の性質というわけではなく、あくまでモデル生物の1つという位置付けです。他の生物の視神経でも側抑制のしくみはあるそうです。他の生物においても、同様の理屈によって、エッジ抽出が行われているわけですね。

つまり、生物は太古の昔から微分を活用していたというわけです! 面白いですね!!


それでは今日はこの辺で!


参考文献

実は私、著者の方の講義を受けたことがあります。私が学生の頃、この先生が北大で集中講義をすることになり、(単位が足りない私は)その講義を受講することになったのです。正直いうと講義の内容はあまり覚えていないのですが(すみません)、カブトガニの複眼の話だけはとても覚えていて、詳しく知りたいと思って上の本を買いに走ったのを覚えています。

というわけで、tsujimotterにとっては少し思い入れのある話だったのですが、今回何年越しで記事にできてよかったです。


また、知り合いに教えていただいたのですが、笠岡市というところにカブトガニの博物館があるそうです。
www.city.kasaoka.okayama.jp

実際に生きているカブトガニを見ることができるそうです。一度足を運んでみたいなと思いました。
(現在は、新型コロナウイルスの関係で、感染拡大地域からの来場は制限されているようです。)


環境省のホームページにおけるカブトガニの紹介:
www.env.go.jp