無駄と文化

実用的ブログ

ドラマ『ロキ』感想 - なぜケイシーは魚を知らないのか

ドラマ『ロキ』の1期を見返した。何度見返しても新しい発見がある。

魚を知らないケイシー

ドラマ『ロキ』はロキが四次元キューブ (Tesseract・スペースストーン) を拾い上げるところから始まる。2012年のニューヨークの戦いのあと四次元キューブの力で逃亡したところをミニットメンに拘束され、TVA 本部に連行される。
連行後、持っていた四次元キューブは TVA の事務員の手に渡って保管されることになる。その事務員がケイシーだ。

ところで1話でロキとケイシーがこのような会話をしている。

ロキ:キューブをよこさないと魚みたいに捌くぞ

ケイシー:魚って何?!

ロキ:なんで魚が分からない!

ケイシー:ずっとこのデスクの裏ですごしてきた。どういう脅しなのか従う前に知っておきたい

続くシーンではケイシーが別のスタッフに事情を話すシーンがあり、そこでも魚について言及している。

ケイシー:僕を魚に変えるとか言って脅すんですよ。魚って何か知りませんけど

どうやらケイシーは魚を知らないようだ。
これは文化の違いによって言葉が通じなかったとかではなく。ケイシーは本当に魚を見たことがないし、「魚」という概念が知識の中にないと思われる。

一方で分析官やミニットメンは博識

TVA 本部が現実離れした空間で、スタッフ全員が魚を知らないのかというとそうでもないようだ。
分析官メビウスとロキが災害について調べるシーンではこのような会話がある。

ロキ:2050年にはツバメが絶滅している

メビウス:ああ、生態系がめちゃくちゃになった

明らかにツバメという生き物を知ったうえで会話が成り立っている。

 

またミニットメンが「時間軸の全言語を話せる」と発言するシーンもある。
分析官やミニットメンは分岐時間軸におもむいて現地の人々に聞き込み・尋問をするようだから、当然、各時代のさまざまな地域の言語に精通していなければいけないということだろう。*1
言語を習得するには文法や発音だけでなく語彙も必要だから、分析官やミニットメンは「魚」「ツバメ」などの物事は当然知っていると推測できる。

なぜケイシーは魚を知らないのか

ケイシーが魚を知らない理由。それは "業務に必要ない知識だから" だと思われる。
事務員であるケイシーは没収した物品の保管や書類の整理が仕事で、神聖時間軸や分岐時間軸についての知識は不要。TVA の職員は誰しも分岐時間軸から攫われてきた変異体だが、記憶の消去・洗脳・教育などする過程で不要な知識は消されているんだろう。*2
ともかく TVA のスタッフは各自の業務に必要な知識しか与えられておらず。ケイシーの場合は神聖時間軸や分岐時間軸についても興味がないように見える。そこがどんな世界でどんな物が在るのか、思いを馳せてもいないようだ。

でもケイシーは TVA ガイドブックオタクで、無知って感じじゃないよね

ドラマ『ロキ』2期で明らかになるが、ケイシーは TVA ガイドブックを "ほぼ暗記するほど" 読み込んでいて TVA の装置や設備にはめちゃくちゃに詳しい。それでもケイシーの興味は TVA の内部 (装置や設備) にだけ向いていて、それが制御している時間軸には向いていない。
このような「興味の方向」も洗脳・教育の成果なのか?そうかも知れないが、そうでないかも。

というのは、そのような興味の限られた変異体だけが TVA のスタッフとして受け入れられているかもしれないからだ。それ以外の不適格だと判断された変異体は時間犯罪者として剪定されていると考えられる。むしろそれが大部分だ。
好奇心が強すぎる人間は TVA のスタッフにはなれない。ケイシーは時間軸に興味がないからこそ今のポジションで働けている。

変異体スカウト機関としての TVA

TVA の本当の役割は、時間軸の管理というより変異体の選別とスカウトであるように思える。
2期の終盤に「分岐時間軸が増えすぎると時間織り機は神聖時間軸以外の時間軸を自動的にリセットするように働く」ということが明かされる。これはつまり分岐の検出や時間軸のリセットは完全自動化が可能で、TVA のスタッフが個別に対応する必要なんて無いということだ。
分岐の原因になった変異体をわざわざ連行して裁判にかける必要も無い。時間軸をリセットすれば、そこにいる変異体ごと消え去るはずだ。

ではなぜ TVA は存在し、変異体を捕まえるのか。それは有用な変異体を見極めてスカウトするためだと思われる。
TVA のスタッフは誰もが分岐時間軸から連れてこられた変異体だ。神聖時間軸を守ることが目的なので、神聖時間軸から人を連れてくることはできない。スタッフ候補は分岐時間軸から来た変異体に限られることになる。
TVA の裁判は変異体を裁いて殺すためではなく、面接してスカウトするためにある。(2012年のニューヨークから来たロキをメビウスがスカウトしたように)

この裁判という名の面接・スカウトの過程で、TVA の運営に不都合な人材は排除されていると思われる。馬鹿すぎてもいけないが信念が強すぎたり好奇心・探究心が強すぎてもダメだ。
ケイシーが「神聖時間軸にはどんな生き物がいるんだろう?海に暮らしている魚ってなんだろう?」と気になってこっそり資料を漁るようなタイプなら、おそらく不適格人材として虚無空間行きになっている。これがケイシーが魚を知らない理由だ。

情報の統制・制御された無知

ケイシーをはじめとして一部のスタッフが無知なのは、制御されたものだと考えられる。情報は統制されていて、必要以上に知らせないよう司書によって管理されている。実際、ロキが『時間の始まりと終わりに関する資料が見たい』と要望したときに司書に「それは極秘です」と突っぱねられている。

資料だけでなく、現地視察も厳しく制限されていると思われる。タイムドアで神聖時間軸・分岐時間軸に出ていくことが許可されているのは命令を受けた分析官とミニットメンに限られている雰囲気だ。
注意して見ていると、2期のあの TVA が混乱している時期においてさえ、ケイシーが時間軸に出ていく描写は無い。ガイドブックオタクでタイムパッドの仕組みに精通しているケイシーなら、タイムドアの作り方・時間軸への接続の仕方は知っているはずだ。それでも時間軸に出ていくことをしないのは「TVA 内部で働くのが自分の役割」という意識が強いからだろう。

TVA を嫌悪するシルヴィ

言うまでもなくシルヴィは TVA を嫌悪している。それはかつて TVA が自分を捕らえて選定しようとしたから。それも事実だが、それだけではないようだ。

シルヴィの目的は TVA を乗っ取ることではなく TVA を完全に解体することだった。誰にも追われずに生きられる分岐時間軸を守るため。自分のためだけでなく、同じ境遇にある他の変異体にも自由を与える意思が根底にある。
裏返しに、シルヴィが TVA を憎むのは多くの変異体から自由を奪い、多くの分岐時間軸をリセットして、そこに暮らす人たちの命を奪ってきたからだ。その嫌悪は TVA スタッフたちの無知にも向けられている。つまり、自分たちがリセットしている世界がどのようなものなのか、自分たちの行いが当事者 (変異体) にとってどんな結果を生むのかを "知ろうとせずに" 手を下していることに対する嫌悪だ。

とはいえ、スタッフ目線だと制御された無知に対して嫌悪を向けられてもどうしようもないのだが。

『ロキ』の物語は「追われる立場 (ロキ・シルヴィ)」と「自由 (追われずに生きる)」という二項対立にも読めるし、「制御された無知 (TVA スタッフ)」と「自由 (本来の人生)」の対立にも読める。
シルヴィの能力は虚像を作って人を騙すのではなく、その人が忘れている古い記憶にアクセスし思い出させる (= 知識を与える) ものだ。無知な TVA スタッフに対して外の世界を知らせることで自由意志を求める思いを呼び起こし、スタッフたちを制御された無知から救おうとする姿を象徴しているのだろう。

まとめ

ケイシーが魚を知らないところから、 TVA における制御された無知、無知からの開放によって TVA スタッフを救おうとするシルヴィというテーマを掘り下げてみた。
見返すたびに隠された対比やテーマに気付けておもしろい。

 

 

私からは以上です。

*1:TVA はタイタン人やクリー人やヴァンパイアとも会話するらしく、宇宙全体の言語をすべて話せるのは冷静に考えて凄すぎる

*2:逆に分析官やミニットメンが「時間軸の全言語を話せる」のは業務に必要な知識として脳に流し込まれている可能性もある

「決意を新たにする」のはやめよう

大事なのは「続けること」よりも「辞めないこと」、の続き。

blog.mudatobunka.org

 

「決意を新たにする」ってやつは罠なのでしないようにしよう。

 

「決意を新たにする」という脳内完結型イベント

何が罠かというと、決意したところで "現実の物理的世界は何も変わらない" ことだ。
一方で内面的には、何らかの達成感と満足感が得られてしまう。それで満足してしまえば、ただ脳内で決意して満足して終わっただけになってしまう。

多くの人は達成感が得られていないからこそ・満足していないからこそ手を動かすわけで。まだ何もしてない段階で達成感や満足感が得られてしまう「決意」ってやつはヤバい。

 

もちろん決意を新たにして行動を起こし、持続すれば素晴らしい。でも行動を起こすのに決意って必須でもないのでは。部屋を片付けたかったら「まず5分だけやるつもりで着手してみろ」ってやつ。

決意だけして満足してしまうリスクを冒すより、もっと軽率にもっと漫然と始めた方がいい。

 

「辞めないこと」は軽率に再開すること

前回の投稿でも書いたが。「辞めないこと」のポイントは「いつだって軽率に再開していい」というところにある。

物事が続かなかったとき、別に「挫折」というレッテルを貼る必要はない。あくまでも中断してただけだし軽率に再開しただけ、そういう認識で大丈夫。
そこには挫折ないし、再開するためには新たな決意も必要ない。

 

まとめ

職場で全員に決意表明させるとかも害があるのでは?と思う。自分の決意を言語化してみんなの前で表明する、それだけでエネルギー消費しちゃうし。それで満足しちゃったら、いざ走り出すときに力出ないって。

 

 

私からは以上です。

ベイジアン鶴亀算/t分布モデル

鶴亀算を解こう。

ある庭に何羽かの鶴と何匹かの亀がいる。
20人の観測者が頭の数と足の数を数えたところ次のようなデータが得られた。

observed_heads observed_feet
96 275
96 272
94 274
95 272
...中略... ...中略...
96 273

庭にいる鶴の数と亀の数を求めよ。

観測者によって頭の数と足の数がバラバラだ。これは各観測者が数え間違いをしている (かもしれない) からだ。

 

ベイズの考えを使って解く

典型的な鶴亀算の問題は、与えられた「頭の数」と「足の数」を真の値として決定論的に計算する。
今回の問題では「頭の数」と「足の数」に観測誤差を含むので、誤差を加味して「鶴の数」と「亀の数」を評価しなければいけない。

 

このような問題にはベイズ推定の考え方が使える。隠れたパラメータがあり、パラメータに応じて確率的にデータが観測されていると考える。ベイズの定理 (逆確率の定理) を使うと、データから逆算してパラメータを推定できる。

いま「鶴の数」「亀の数」は未知だが、庭にいる「鶴の数」「亀の数」に応じて「頭の数」「足の数」が観測されているはずだ。ベイズ推定で、観測された「頭の数」「足の数」から「鶴の数」「亀の数」を推定できる。

 

実行環境・ツール

今回も Stan を使って推定する。Stan は Python から呼び出すことにする。Python の実行環境には Google Colab を使う。
というわけで完全に動作する Google Colab Notebook がここにある。

colab.research.google.com

 

モデル定義

確率モデルを定義しよう。
ここでの確率モデルとは、「頭の数」「足の数」がどのような分布から生成されているかを仮定するものだと考えればいい。

 

真の鶴の数 T* と 真の亀の数 K* に対して、真の頭の数 H*, 真の足の数 F* は、

  • H* = T* + K*
  • F* = 2 T* + 4 K*

こうなるはずだ。

よって観測された頭の数 H と観測された足の数 F は、それぞれ T* + K*2 T* + 4 K* を中心とした山なりの分布から生成されていると考えたい。
山なりの分布なので中心である T* + K*2 T* + 4 K* の値が観測されやすい。しかし確率分布からの標本なので、もちろん中心から外れてしまうこともある。

 

今回は H, F が t分布 に従うと仮定する。
t分布は3つのパラメータ (母数) によって形が決まる。 \nu,  \mu,  \sigma だ。

  •  H \sim StudentT(h | \nu = nu, \mu = T + K, \sigma = sigma\_H)
  •  F \sim StudentT(h | \nu = nu, \mu = 2T + 4K, \sigma = sigma\_F)

このような仮定をおいて T, K, sigma_H, sigma_F, nu を推定対象としよう。

 

Stan コード

モデルを Stan のコードで書き下すとこうなる。
このコードでは H = T + K, F = 2 T + 4 K という知識を反映しているものの。T = ~, K = ~ の形に解いた式は入っていない。
H, F の値が尤もらしくなるように推定すれば、自然に T, K の尤もらしい値も求まるはずだ。

data {
  int<lower=1> N;      // データ数
  vector[N] H;         // 観測された頭の数
  vector[N] F;         // 観測された足の数
  real H_bar;          // 頭の数の標本平均
}
parameters {
  real<lower=0> T;         // 鶴の数(未知)
  real<lower=0> K;         // 亀の数(未知)
  real<lower=0> sigma_H;   // 観測誤差(観測者の能力): 頭の数
  real<lower=0> sigma_F;   // 観測誤差(観測者の能力): 足の数
  real<lower=2> nu;        // t自由度
}
transformed parameters {
  vector[N] mu_H = rep_vector(T + K, N);        // E[H] = T + K
  vector[N] mu_F = rep_vector(2*T + 4*K, N);    // E[F] = 2T + 4K
}
model {
  (T + K) ~ normal(H_bar, 10);    // 総数は観測された頭の数に近いはず
  sigma_H ~ student_t(3, 0, 10);
  sigma_F ~ student_t(3, 0, 10);
  nu ~ gamma(2, 0.1);             // 平均≈20のロバスト化

  H ~ student_t(nu, mu_H, sigma_H);  // 頭の数 H は mu_H := T + K を中心とした分布に従う
  F ~ student_t(nu, mu_F, sigma_F);  // 足の数 F は mu_F := 2*T + 4*K を中心とした分布に従う
}

 

データ

冒頭の問題文では "中略" となっていたデータの全貌をお見せしよう。

observed_heads observed_feet
96 275
96 272
94 274
95 272
97 273
102 266
98 267
100 277
94 268
97 273
95 270
97 272
97 268
96 271
94 265
98 281
95 272
92 275
98 274
96 273

全部で20件ある。

 

サンプリングと推定

というわけで事後分布を求めて各パラメータを推定した。

mean hdi_2.5% hdi_97.5% sd ess_bulk r_hat
T 56.630 54.294 58.854 1.159 6817.0 1.0
K 39.659 38.261 41.033 0.704 6813.0 1.0
sigma_H 2.221 1.423 3.145 0.446 9629.0 1.0
sigma_F 3.836 2.488 5.357 0.756 9835.0 1.0
nu 20.302 2.333 47.689 13.800 9759.0 1.0

推定された鶴の数 (T), 亀の数 (K) の分布 (データ20件)

鶴の数 T は、平均が 56.630、おおよその範囲が 55\~59 となった。 鶴の数 K は、平均が 39.659、おおよその範囲が 38\~41 となった。

「T ≒ 56.630 → 鶴は57羽」のように点推定するだけでなく、確信度に応じて幅を持たせて推定できるのがベイズ推定のうれしいところだ。

 

また sigma_H, sigma_F の値にも着目してほしい。この値は H, F を観測したときの標準偏差 (ばらつき) を表している。
つまり sigma_H, sigma_F が大きいほど「ばらつきが大きい」=「観測者の能力が低い」と解釈できる。

 

データを増やして再推定する

追加で20件のデータを取ったとして、推定結果がどう変わるか見てみよう。
追加のデータはこれだ。

observed_heads observed_feet
95 279
95 273
95 267
94 274
95 271
90 277
95 274
97 277
94 273
95 268
92 270
96 269
94 270
93 277
100 275
95 265
96 270
94 277
97 272
96 272

最初の20件と合わせて合計40件のデータを、先ほどと同じモデルに渡して再度推定してみる。

 

mean hdi_2.5% hdi_97.5% sd ess_bulk r_hat
T 55.071 53.526 56.579 0.776 6995.0 1.0
K 40.513 39.576 41.430 0.474 7003.0 1.0
sigma_H 2.097 1.554 2.723 0.299 9471.0 1.0
sigma_F 3.699 2.810 4.664 0.481 10348.0 1.0
nu 20.076 2.697 45.919 13.147 9186.0 1.0

再推定された鶴の数 (T), 亀の数 (K) の分布 (データ40件)

T, F の平均値はさほど変わっていないが、幅を持たせて推定したときの幅が狭くなっているのに着目してほしい。これはデータを増やしたことで、推定結果により確信が持てたということだ。

データ20件 データ40件
T の平均 56.630 55.071
T の範囲 54\~59 54\~57
F の平均 39.659 40.513
F の範囲 38\~41 40\~41

 

答え合わせ

今回使ったデータは私が適当に生成したものなので、実は真の値を知っている。
真の値は T=56, K=40 だ。

真の値 点推定 区間推定
T 56 55.071 54\~57
F 40 40.513 40\~41

まぁ、いい感じ...?

 

まとめ

ベイズの考え方を使って、方程式を解くことなく鶴亀算に取り組んでみた。

 

 

私からは以上です。