« 2013年8月 | トップページ | 2013年10月 »

期待値の説明の大雑把さを補足してみる

 期待値というのは、確率論・統計学の中でももっとも基本的な概念で、定義もきわめて単純。だから、多くの人がなんとなくわかったつもりになっていると思う。

 「つもり」などと勝手に決め付けるようなことを書いたが、もちろん本当に頭のいい人は、教科書に書かれていないことまで自力で補足して正確に理解しているのだろう。しかし、私程度の知能の人間からすると、多くの教科書の説明は大雑把すぎて、どうも釈然としないところが残った。

 結局、自分なりにいろいろ考えたり調べたりして教科書の説明を補足することによって、最終的には納得できたのだが、世の中にはきっと、その部分を理解しないまま理解したつもりになっている人もいると思う。だからここでその私流の補足説明を紹介してみたい。

 もちろん、昨日今日思いついたことではなくて、かなり昔に勉強してた頃に考えたことなのだが、たまたま今日それを思い出したので、いい機会だから書いておく。

 そういうわけで、この記事は私程度の知能の人間向けであって、頭のいい人にとっては、「何をわかりきったこと書いてドヤ顔してるんだか」と感じるような記事かもしれないことをお断りしておく。

(いつも数式の表示に使っている CodeCogs のサーバーが死んでいたので、今回は MathJax を使ってみた。なかなか便利だと思う。)

・期待値の定義は自明か?

 期待値は通常以下のように定義される。

$$\mathrm{E}\left[ \mathrm{g}\left( X\right) \right] =\sum_{x=0}^{\infty }\mathrm{g}\left( x\right) \,\mathrm{p}\left( x\right) $$

$$\mathrm{E}\left[ \mathrm{g}\left( X\right) \right] =\int \mathrm{g}\left( x\right) \,\mathrm{p}\left( x\right) dx$$  

X は確率変数、x はその実現値、p(x) は確率密度関数である。

 この定義自体はわりと自明に見えるので、多くの教科書では、この定義を導入した後、簡単な定理をほとんど説明なしで紹介したりしている。

 たとえば、Wikipedia の「期待値」の項目(2013 年 9 月 10 日取得)では、以下の定理が証明なしで導入されている。

期待値は総和や積分によって定義されるので、総和や積分のもつ性質をすべてもっている。

線形性 E [a X + b Y ] = a E [X ] + b E [Y ]

 実は、初等的な教科書にも、こういう雑な説明の本が少なくない。どこが雑かわかりますか?

・渡される暗黙のパラメータに注目

 E[X] という表記は、一見すると関数に似ているが、厳密には関数ではない。 普通の関数は、値から値を求めるのだが、この式は、括弧の中に指定された数式と確率密度関数全体から一つの値を求める。だからこそ中括弧ではなく角括弧になっているわけで、演算子とか作用素とか呼ばれるものに近い。

 つまり、括弧の中に書かれるのは確率変数を含む数式だけだが、その確率変数の確率密度関数も暗黙のパラメータとして一緒に渡されているのだ。この暗黙のパラメータは、括弧の中の確率変数から自動的に決まるように見えるので、多くの人は別に違和感を感じず見過ごしてしまう。でも、よく考えるとそうでもないのだ。

・多変数の場合は意味が違う

 たとえば、上にも出てきた E[X + Y] という式を考えてみよう。この場合、渡される確率密度関数は何になるか。括弧の中には確率変数 X, Y と二つある。そのどちらか一方の確率密度関数では明らかにおかしい。

 実はこのような場合、渡すべき確率密度関数は、X, Y の同時確率分布の密度関数でなければならないのだ。つまり、ニ変数の場合の正しい期待値の定義はこうなる。

$$ \mathrm{E}\left[ \mathrm{g}\left( X,Y\right) \right] =\sum_{y=0}^{\infty }\sum_{x=0}^{\infty }\mathrm{g}\left( x,y\right) \,\mathrm{p}\left( x,y\right) $$

$$ \mathrm{E}\left[ \mathrm{g}\left( X,Y\right) \right] =\int \int \mathrm{g}\left( x,y\right) \,\mathrm{p}\left( x,y\right) dxdy $$

 つまり、E[X + Y] という式の意味は、そもそも多変数の同時確率分布という概念がなければ定義できないはずなのだ。

 初等的な教科書の中には、まだ一変数だけで多変数の説明をしていないうちにこの式が出てきたりする本が結構あるが、これはちょっとごまかしなのである。

・文脈によって意味が変わる

 では、この事実を前提にして、先の式をもう一度見直してみよう。E[X + Y] = E[X] + E[Y] のうち、左辺の E[X + Y] で暗黙のうちに渡されているのが X, Y の同時確率分布の密度関数であることはわかった。

 では、右辺の E[X], E[Y] についてはどうだろう? 今度は括弧の中にある確率変数は一つしかないから、その変数の確率密度関数でよいと思うかもしれないが、本当にそうだろうか。確認のため、厳密に定義通りに計算してみよう。

$$ \mathrm{E}\left[ X+Y\right] =\int \int \left( x+y\right)\,\mathrm{p}\left( x,y\right)  dxdy $$

$$ =\int \int x\,\mathrm{p}\left( x,y\right) dxdy + \int \int y\,\mathrm{p}\left( x,y\right) dxdy$$

 ここまでは確かに自明だ。だが、この二項は E[X], E[Y] と同一視できるだろうか。先に E[X] と表記したときには、渡される暗黙の確率密度関数は X だけのものだったが、ここでは X, Y の同時確率分布の密度関数になっている。変数は一つだけなのに。

 ここで試しに、この同時確率分布の周辺分布を px(x), py(y) とおいてみよう。つまり、

$$ \mathrm{px}\left( x\right) =\int \mathrm{p}\left( x,y\right) dy $$

$$ \mathrm{py}\left( y\right) =\int \mathrm{p}\left( x,y\right) dx $$

 すると、上の各項は次のように変形できる。

$$ =\int x\,\int \mathrm{p}\left( x,y\right) dydx + \int y\,\int \mathrm{p}\left( x,y\right) dxdy$$

$$ =\int x\,\mathrm{px}\left( x\right) dx+\int y\,\mathrm{py}\left( y\right) dy$$

 こうすれば、各項はそれぞれ一変数になり、一変数の期待値の定義式とあまり変わらなくなった。したがって、これを E[X], E[Y] と書いてもそうおかしくないと言えるだろう。

 だだ、同じ E[] という記号で表記されていても、暗黙のパラメータとして渡されているのは、左辺ではニ変数の同時確率分布の密度関数であり、右辺では各変数の周辺分布の密度関数になっている。つまり、文脈によって意味が微妙に変化している。

・いい加減な用法を正当化する根拠

 このような文脈によって意味が変わるようないい加減な用法が正当化されているのには、もちろん理由がある。それは、それでも別にたいして困らないからだ。

 困らない理由も、上の式の中にある。上の式では、E[X] の暗黙のパラメータとして渡す密度関数を、同時確率分布のものから周辺分布のものに書き換えることができた。つまり、E[X] の暗黙のパラメータは同時確率分布であると考えても、周辺分布であると考えても、答えは結局同じなのである。まさにこの事実が、E[X] の意味が文脈によって変わるような用法を正当化している。

 ただし、それは上のように計算してみて初めてわかることであって、定義のままでわかることではない。しかもその計算の中では、積分の順序交換を可能にするフビニの定理なども使われており、必ずしも初等的に自明とは言いがたい。

 実は、注意深く書かれた良心的な教科書では、この事実をちゃんと指摘している。たとえば、竹村彰通氏の「現代数理統計学」にはこうある。

ところで、厳密にはこの定義が 1 変数の場合の定義と整合的であることをチェックする必要がある。(中略)右辺の E(X) は X の周辺分布に関する期待値である。従ってこの場合は整合的である。より一般に新しい確率変数 Z を Z=g(X, Y) により定義する時、Z の周辺分布に関する E(Z) と E[g(X, Y)] が一致することを確かめる必要がある。このことの厳密な証明には、測度論が必要となる。 (46 ページ)

(この本は、このような初等的な教科書ではごまかされがちなところを逐一ていねいに説明した良書で、個人的には大変お勧めである。)

 ネット上では、たとえばこのページなんかにも詳しい説明がある。

・まとめ

 このように、専門家が経験的に大雑把にルーズに扱っていることには、それなりに理由があることが多いのだが、初学者にとってはつまづきの石ともなりやすい。こういうところをどれだけ親切に説明してもらえるかで、私程度の知性の人間の理解度は大きく変わってくるのだが、そういう親切な教科書は意外と少なかった。それが無知を省みずこんな記事を書いた理由である。

| | コメント (0) | トラックバック (0)

京アニの 2.5D

 京都アニメーションは、最新の CG や画像処理の技術を、伝統的なセルアニメの文脈に違和感なくさりげなく溶け込ませるのがうまい。このことは、当ブログでも何回か指摘してきた。

 私はかつて CG や画像処理ソフトの開発に携わっていたことがあるので、京アニのアニメを見ていると、自然にそういう処に目が行ってしまうのだが、一般の人は必ずしもそうではないかもしれない。

 そこでこの記事では、京アニのある技法について、具体的に画像を引用しながら紹介してみたい。 京アニの映像の美しさには確かな技術的裏づけがあることを、一般の方にもお伝えできれば嬉しい。

・伝統的なセルアニメとどこが違うか

遠まわりする雛1

遠まわりする雛2

遠まわりする雛3

 これは、「氷菓」の第 22 話「遠まわりする雛」のラスト近くのシーン。(アニメなので仮想の)カメラが、奉太郎とえるが歩いているところを、後ろから追いかけながら、左から右へゆっくりと移動している。

 この画像を見てどう思うだろうか? 確かに美しく描かれた絵には違いないが、それだけのことじゃないのか? としか思わないかもしれないが、実はこのシーンの中に、伝統的なセルアニメとは異なる技術が使われているのである。おわかりだろうか?

・セルアニメはカメラの移動が苦手

 伝統的なセルアニメでは、このようなカメラの移動を、背景の平行移動で表現するのが普通だった。

 芸術的なアニメーションは別として、テレビアニメのような商業アニメーションの場合、作業の手間をできるだけ効率化しなくてはならない。画面全体を 1 枚 1 枚手描で動画にするのでは手間がかかりすぎる。

 そこで、画面を人物と背景に分け、人物はできるだけ動きを多くする代わりに絵を簡略化し、逆に背景はできるだけ動きを少なく(通常は静止画)する代わりに絵を緻密にする。こうすることにより、動きの量と絵の美しさのバランスをとるのが、商業アニメーションの一般的手法だった。

 ところが、この方法には一つ欠点がある。それは、カメラ(視点)を移動するのが難しいことだ。背景を静止画にするという方法は、カメラが固定されていることが前提になっている。カメラが動けば背景も動くから、背景は静止画では済まなくなる。

 そこでさらなる折衷案として、背景を平行移動しながら前景と重ねて撮影する、という手法が生まれた。平行移動だけでいいなら、絵の描かれたセル自体を動かせばいいので、1 枚 1 枚描き直す必要はなくなるからだ。

 ただし、この方法にもいろいろと問題がある。まず、カメラの移動方向が上下左右だけならまだいいが、前後の移動も加わると、当然ながらセルの平行移動では済まなくなる。

 そして忘れてはならないのは、たとえ移動方向が上下左右だけだったとしても、近似的に平行投影と見なせるような超遠距離に背景があるのでない限り、静止画の平行移動だけではパースペクティブを正確には表現できないということである。

 そのため、遠景と近景とでレイヤーを分けて移動速度を変えて動かしたり、カメラの位置に合わせて背景自体を少し歪めて描いたりする方法も使われるが、いずれも完全な解決にはならない。

 だから、昔の昭和のテレビアニメなんかで背景が平行移動しているようなシーンをよくよく見ると、たいてい微妙にパースが狂っている。平行移動では原理的に無理なのだから当然だが。

・平行移動では不可能な変形

 ところが、こういう制約は伝統的なセルアニメならではの制約であって、現代のデジタルなアニメなら回避方法はいろいろある。上で紹介したシーンも、このような単純な背景の平行移動ではない。パースペクティブが狂わないような変形が行われているのである。

 そのことをわかりやすく示すため、各画像にパースペクティブを表すワイヤーフレーム的な線を描きこんでみよう。

遠まわりする雛 - パース付き1.jpg

遠まわりする雛 - パース付き2.jpg

遠まわりする雛 - パース付き3.jpg

 そしてさらに、この 3 枚の画像を平行移動して、人物の位置が一致するように重ねてみよう。

遠まわりする雛 - パース付き合成.jpg

 おわかりだろうか。人物の移動に合わせて移動している電柱や樹ばかりでなく、その奥の背景もぴったり重なっていない。右側にある川縁の線に注目するとわかりやすいが、川縁の角度自体が微妙に変化している。これは平行移動だけではどう転んでも不可能な映像である。そして、パースペクティブ的には正しい透視変換により近くなっている。

・静止画による 3D = 2.5D

 もちろん、ピクサーのフル 3DCG アニメーションのように、背景まですべて 3D でモデリングしてレンダリングすれば、このようなカメラ移動による透視変換を正しく実現することは難しくない。

 しかし上記の映像では、おそらくそこまではやっていないと思う。このような広大な風景をすべてモデリングするのは相当手間がかかるし、このような手描き風の味わいを出すことも難しいだろう。

 これはざっくり言えば、Google ストリートビューと同じような方法で、2 次元の静止画を 3 次元のモデルにテクスチャとして貼り付けて、そのモデルごと透視変換してレンダリングしていると思われる。つまり、2 次元の画像を使って擬似的に 3 次元を表現しているわけで、こういう手法を 2.5D と呼ぶ。

・3D との違い

 では、わざわざ 3D ではなく 2.5D を使う理由はなんなのだろう。もちろん、画面全体を 3D でモデリングするより手間が省けるというのも大きな理由だろう。しかし、もう一つ大きな理由として、手描きの前景と違和感なく組み合わせやすいということがあると思う。

 たとえば、次の画像を見て欲しい。

S2E26「訪問!」 (17).jpg

S2E26「訪問!」 (18).jpg

 これは「けいおん!!」第二期の番外編「訪問!」に出てきた映像であるが、京アニにしては珍しく、露骨に 3DCG であることがわかる映像になっている。おそらく、番外編なので少し実験的に試みたのだと思うが、CG 臭さのようなものを消しきれていない。アニメにフル 3DCG を取り入れると、こうなりがちである。

 2.5D の場合、二次元の静止画は手描きでもいいので、手描きの味を生かすことができ、このような CG 臭さを回避できる。それが伝統的なアニメとの相性のよさにつながるのではなかろうか。

vlcsnap-2013-07-09-21h00m07s76.jpg

vlcsnap-2013-07-09-21h00m17s82.jpg

 これは、「日常」の第六話に含まれている「10円サッカー」というエピソードからの映像である。背景が三次元で派手にグルグル回転しているが、上の例とは対照的に CG 臭さがまったくない。

 勝手な想像だけれども、この映像はおそらく、大雑把な物体の位置だけを 3DCG で描いて、それを手描きでトレースすることによって作られたのではないだろうか。「日常」は全体にギャグタッチで背景も比較的簡素な絵が多いので、そういう方法が可能だったのではないかと思う。

 このように、京アニは昔から 3DCG のような最新の技術を、伝統的なセルアニメの文脈に自然に溶け込ませる努力をしてきたわけだが、2.5D というのはその目的に適した技術だったと思われる。そのため、特に「氷菓」では、2.5D 的な技術が随所に使われているのがわかる。

・関係者の証言

 京アニの関係者は、こういう技術的なことをあまり語りたがらないようだが(もちろん企業秘密もあるのだろう)、この 2.5D の件に関しては、関係者の証言もあるので引用しておこう。

 以下は、「氷菓」の監督の武本康弘氏と構成の賀東招二氏の対談の一部で、DVD 第 4 巻のオーディオ・コメンタリーに収録されているコメントである。

  • 賀東: これもなんか背景面白いなあ。じわーっと動いて。
  • 武本: まあ、このへんなんですけどもねえ。えっと、実はまあ、テクノロジーの進化でですね。いわゆる奥行きのある背景を、手前とか奥に送ったりというのは、昔はちょっと難しかったんですね。画面奥と手前でやっぱり、どうしても絵の小さくなっていくスピードが…
  • 賀東: なんか昔は見なかったような背景の動きを、なんか一話の商店街でまず感じたんですけど。
  • 武本: あれをですね。ちょっと昔だったら、3D で全部画面を組まないといけなかったところが、そこまでしなくても、もう少しお手軽な方法でできるような、プラグインがあって。業界では非常に有名な、Adobe 社の AfterEffect っていう映像のソフトがありまして、これのある機能を使うと…
  • 賀東: ああいうことができる?
  • 武本: ええ、ああいうことができる。
  • 賀東: もうわりと、他のところにも使ってるんですか?
  • 武本: そうですね。まあ普通にもうデフォルトでついてる機能なんで。まあ、多少手はかかるんですけども、3D をゼロから組むことを考えれば、はるかに…
  • 賀東: でしょうなあ。

 ここで言及しているのが、この記事で紹介したような 2.5D 的なエフェクトなのは言うまでもない。

・もっとわかりやすい例

 先の例は、角度が微妙でわかりにくいと感じる人もいるかもしれないので、もう少しわかり易い例も挙げておこう。

正体見たり1

正体見たり2

vlcsnap-2012-12-31-06h59m38s80.jpg

 これは、「氷菓」第7話「正体見たり」のラスト近くに出てくる映像である。奉太郎とえるが歩いていることを、側溝の映像によって表現している。

 この画像にも、先ほどのようにパースペクティブがわかるような線を描き込んで、排水溝の位置が一致するように平行移動して重ねてみよう。

正体見たり- パース付き1.jpg

正体見たり- パース付き2.jpg

正体見たり- パース付き3.jpg

正体見たり- パース付き合成.jpg

 平行移動ではすまない変形が行われていることが、はっきりわかる。

・大事なのは使い方のセンス

 誤解して欲しくないのだが、私が京アニさんに感心するのは、このような技術を使っていること自体よりも、その使い方なのである。

 京アニさんは、これ見よがしにひけらかすような技術の使い方は決してしない。むしろ、伝統的なセルアニメの映像に自然に溶け込むように、さりげなく使うのである。そのセンスのよさが素晴らしい。

 さらに言えば、このような技法は、ピクサーのように最初からフル 3DCG を志向しているアニメーターには思いつきにくい使い方であり、そういう意味で、日本のアニメーターならではの技法だろうと思う。

 クールジャパンとかなんとか軽薄な言い方は好きではないが、日本が伝統的に培ってきたセルアニメの技法の可能性を示す会社として、京都アニメーションにはこれからも注目して行きたい。

| | コメント (0) | トラックバック (0)

« 2013年8月 | トップページ | 2013年10月 »