「自分は想像力が欠如した人間ではないか?」と思ったことはあるだろうか。ちょっと立ち止まって考えてほしい。
例題
1, x, 5という数字の列がある。xに当てはまるものは何か?
なぜ即答できたのか?
x=3と考えて、それ以外を想像しようともしなかった人は多いかもしれない。
$f(k)=2k+1$
その人は、これしか思いつかなかったのだ。
もっと色々考えられる
例えば以下のバリエーションについて考えることができる。
- $f(1)=x, g(x)=5$
- $f(1,x)=g(5)$
- $f(1,5)=g(x)$
- $f(1,x,5)=c$
- $f(1)=g(x)=h(5)$
少なくとも、このような関係を持つようなあらゆる$(x,c,f,g,h)$が考えられるはずだ。
例えば
$f(1,x)=(1+x)^2, g(5)=5^2+i, f(1,x)=g(5)$
とする。この場合の代数的な解はなんだろうか?
このような関数を無数に考えることができるというわけだから、問題に大した制約条件もないのに線形性を仮定して、しかもそれだけが解だと考えたのはなぜだろうか?
想像と文脈
色々なことに想像が及ばなくなる理由の一つは、
- 与えられた問題に対して、具体的な文脈・状況・制約条件・環境を暗黙理に仮定してしまっている
ということかもしれない。
一方で、物事を抽象化すると、可能な入力は一つではないことがわかる。2k+1よりは、(1,x,5,c,f,g,h) を使った組み合わせについて考えたほうが一般性がある。そして色々なデータを沢山入れてみて、システムをテストすると、前よりも物事がわかるようになるかもしれない。
現実問題は複雑である。
- どのような目的が存在してるか。あるいはその目的が適切なのか。
- 目的に対し、解きたい問題はなんであり、どう定義するか。
- どのようなデータをどこからどうやって取得するのか。
そういうことにも想像力を使うので、全体としてみれば、決まった最適化問題をただ解くだけということはない。
一方、制約条件が非常に具体的に固定化された場合においては、ひたすら最適化を考える方に比重が傾く。リーダーボードに予測結果を投げて精度の数値をひたすら高くなるようにすることだけが目的なら、他のことは考えなくていいのかもしれない。そのような固定の制約条件で問題を解くことも重要だが、視野を広げたい場合は別である。
多くの現場では、モデル職人が人事AIの目的に倫理的な疑問を持ったとしても「それはお前の仕事ではない」というだろう。そして、誰かがTwitter上で人事AIの素晴らしさについて語り始めたとして、あなたはなぜそれを鵜呑みにするのだろうか?
なにがいいたいのか
一つ言えるのは、インターネット住民が「これが正しい」について話し始めたら、彼らの背後にある文脈において正しいのかもしれないが、あなたの文脈では全く別のことが起こっている可能性はあるということだ。
Mathematical maturity (数学的な成熟度)
Mathematical maturityは数学者が直接教えることができない数学的経験と洞察の混合物を指す。
このようなQiita記事を書いているのは、自分が完全に独学で数学をする立場であり「語られていない何か」を体得するのが、職業的な数学者よりも困難な状況にいると思うからである。
Mathematical maturityの内容は千差万別になり得るので定義すること自体がナンセンスかもしれない。ただ、人間が社会的動物であるということを十分に利用することが効果的ではないか。お気持ち程度の経験則も、一応こうやってQiita記事にして書いておけば、読んだ誰かがこれは納得できるとかそうではないとか考えてくれるかもしれない。
追記
関係ないですが、関数が世界を記述するという概念に魅了された教師のミームを貼ります。