ysawa が教える「超プログラマへの爆速勉強法」

数学ができないと損する

2015/12/08 18:00 投稿

  • タグ:
  • 数学
  • 評価関数
  • n次元ちゃんねる
中学校から高校、大学で数学を勉強した方々は、おそらく数学が理解できることの恩恵を得ていることでしょう。もし、ないとしたら相当ネガティブシンキングか、今までの時間的投資を回収しようとする意志のない人ということができるでしょう。非常にもったいないことです。

こういった、時代錯誤のテストもあるので、数学とは何かをきちーっと捉えていかないとドツボにハマってしまいます。計算問題は、計算機にやらせればよく、研究者に計算問題を解かせてはいけません。なぜなら、間違えるから。研究者の脳のなかは、計算問題を解くために最適化はされていません。計算問題は素直に計算機に任せて、もう少し、資源を有効に活用した方がよいのではないでしょうか。

同じか否か

数学を定義しようと思うと大変ですが、基本的に次のようにまとめればよいのではないでしょうか。

『定義から、導かれる定理を探求する学問』

です。決して、計算問題だけが数学ではありませんし、高校までの数学は、ユークリッド幾何学を前提とした話が進んでいきますが、本来なら天下り式に与えられるものではなく、定義は自分で選ぶべきものなのです。定義を選んだ先に広がる世界を探求するのです。

自然数Nは何たるかを定義した時に、Nの中で成り立つ定理を探します。また、Nを拡張した整数Zでは、どのような定理が成り立つのかを考えていきます。

探求する定理の中でも重要なのが、何か2つのものを持ってきたときに同じか否か。違うのであれば、どのくらい違うのかということです。2つのものを比較するということです。数学は、比較するためのツールを豊富に用意してくれています。

恋愛・結婚における数学

では、例を交えて見ていきましょう。

女性が男性を判断するときにATMか否か(Yahoo!知恵袋)で判断するようです。女性が男性を判断するときに、使用する評価関数 f があるようです。この f はどれだけ、男性がATMかどうかを評価する関数です。

f(a) > f(b)

但し、a, b ∈ 男性の集合

が成立するときに、aは、bより優れている。より恋愛したい結婚したいと判断するわけです。


実際に、なぜこのようなことをするのかが大事です。a, b は、男性の集合の要素なので、直接、

a > b

のように比較することはできません。男性同士は直接比べることはできないので、男性の要素から実数を導く評価関数 f を作って、導かれた値同士を比べるようなことをします。

好む好まざる、意識するしないに関わらず、人々は、このような演算処理を脳内で瞬時におこなっていることでしょう。また、年齢と共に、学習をすることで、評価関数 f は大きくなったり小さくなったりします。この時点で評価関数は、2変数関数 f(x, t) と言えます。実際は、人が人を評価するときには、多次元ベクトルを扱う関数または、多変数関数となるでしょう。

今の株価は適切なものかは様々な株価指標をもって知ることができるでしょう。転職をしたことがある人は、自分の年収は適切かを割とよく理解できているかと思います。つまり、自分自身を年収で評価することができる。原油の値段に関心がある方は、時系列の中で世の中への影響を評価することができる。

評価関数がない、または、誤った評価関数をもっていると大変です。世の中の情報に流されたり適切な判断は到底できないでしょう。

同値性の判定

数学を勉強するとは、このような比較のためのツールを勉強することとなります。比較の前に、まずは同じか否かの判定ができるようになっておきたいです。それが、同値性の判定です。

プログラミングにおいて、同値性の判定は、一番重要だといっても過言ではないでしょう。2つの値が与えられた時に、同じか否かを判断する能力がなければ、適切な設計ができません。プログラマやエンジニアを目指す人は、同値性の判定に関するトレーニングを日々積んでいく必要があるでしょう。

実数や複素数における等式の証明は、簡単です。(同値性で議論すると大変なので、等式に関して記述します。)



1. a - b = 0
2. b = 0 のとき a = 0, b ≠ 0のとき a / b = 1
3. その他

の中で基本的に1 or 2を証明すればよいです。

気をつけなければいけないのは、 a = b を仮定して、証明を進めてはいけません。循環論法といって0点になります。日常でもよくやってしまいがちな間違いで、「AさんとBさんって同じ考えの持ち主だよね。だから、2人ともロリコンだよね。ほら、やっぱり、AさんとBさんって一緒の考え方だよね。」みたいな論証をよく耳にします。これは気をつけたいです。

比較

これで、同じかどうかを判定することができるようになりました。同じだと良いのですが、世の中イコールってあまりない。2つ何かを持ってきた時には、やはり、比較することになります。

実数 a, bにおいて、a ≧ b を証明するときには以下の証明から選べばよいです。

1. a - b ≧ 0
2. b = 0 のとき a ≧ 0, b ≠ 0 のとき a / b ≧ 1
3. 相加平均 ≧ 相乗平均
4. a ≧ c, c ≧ b となる c が存在する
5. その他

基本 1 で良いのですが、場合によって、様々な証明のパターンがありえます。3が解らない方は、高校の数学の参考書を参照してください。4 は、間の値を持ってきます。直接比べるのが難しい時に、間の値をもってくると比べやすい場合があります。

評価関数は計算機が最適化する

実際は、前も述べたように、実数や複素数同士を比べられることの方が少ないので、評価関数を用いることになります。では、評価関数を設計できるように教えていきますといいたいところですが、その努力は、徒労に終わるでしょう。

現在の計算機はどのくらいの演算処理能力があるかご存知でしょうか。スーパーコンピュータの演算処理能力は、PFLOPS(ペタフロップス、京(けい)フロップス) の大台に乗ってきていると言われています。P(ペタ)という単位は10の15乗を示します。K(キロ)、M(メガ)、G(ギガ)、T(テラ)の次、P(ペタ)です。

浮動小数点の計算は、人間なら、1回の掛け算や割り算でもヒイヒイ言いながらやるところでしょう。これを、秒間ペタの大台で計算できる計算機が世の中にあるということです。人間は正確な演算処理では足元にも及ばないのです。

そして、世の中を見てください。n次元という会社名の由来でもありますが、もはやデータ、数次元ということはありえず、数万とか数億の次元があるベクトルで構成されているはずです。これらを適切にさばいて評価関数を構成できるのは計算機以外にありえません。

計算機を利用して、評価関数を最適化するような回は後ほどして参りますが、適切な評価関数を世の中のデータから計算機を使って導ける頭脳と、比較の証明この2つがあれば、正直どこでも生きていけると思います。時流から導いた自分自身の評価で足りない部分適切に補って、柳のような柔軟さを持って厳しい世界を渡り歩いていけるでしょう。

今回は、ここまで。次回も一緒に勉強していきましょう。

ブロマガ会員ならもっと楽しめる!

  • 会員限定の新着記事が読み放題!※1
  • 動画や生放送などの追加コンテンツが見放題!※2
    • ※1、入会月以降の記事が対象になります。
    • ※2、チャンネルによって、見放題になるコンテンツは異なります。
ysawa が教える「超プログラマへの爆速勉強法」

ysawa が教える「超プログラマへの爆速勉強法」

ysawa (澤 良弘)

月額:¥550 (税込)

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事

継続入会すると1ヶ月分が無料です。 条件を読む

n次元ちゃんねる

n次元ちゃんねる

月額
¥550  (税込)
このチャンネルの詳細