何はともあれモンテカルロ

最近デープラーニングとか強化学習を使ったツールの開発に関わっているので改めてアルゴリズムをちゃんと勉強しようと思い立った。
そこで今回はなんとなくモンテカルロ法を実装してみたんでその辺をアウトプット。
きっとアルゴリムの基礎がわかれば思考の幅は広くなるだろうとという甘い個人的な観測。
あとなぜかモンテカルロ法実装してたらこれって成果が欲しい時の状況と似てんなと漠然と思ったのでメモ。

モンテカルロ法とは

シミュレーションや数値計算を乱数を用いて行う手法の総称。元々は、中性子が物質中を動き回る様子を探るためにスタニスワフ・ウラムが考案しジョン・フォン・ノイマンにより命名された手法。カジノで有名な国家モナコ公国の4つの地区(カルティ)の1つであるモンテカルロから名付けられた。ランダム法とも呼ばれる。
from Wikipedia

なんのこっちゃって話なので具体的に話すと、
今現在円周率がわからない…
そこでとある正方形に1/4書かれた円に対してランダムに点を打ち込んでいくつの点が円の内側でいくつが外側なのか調べる。
そんでもって点と面積の比率は一致する(限りなく近くなる)はず。細かい計算は省くけど円周率の近似値が取れるというわけです。
こちらのサイトがわかりやすいので参考に。

モンテカルロ法(http://www3.nit.ac.jp/~tamura/tus/ex2/montecarlo.htm

わかりやすい説明ができないってことはまだまだ理解があまいのでもうちょい勉強します。

モンテカルロ法で思ったこと

人それぞれ結果て欲しい時があると思う。
そんな時にやり方が確立されてるもしくは一定の再現性があるやり方がある場合はそれに乗っかるのが一番だと思う。
アルゴリズムの意味は必要な結果に行き着くまでの手続きって意味だったはず。(間違ってたらすみません)
つまりは現実でもアルゴリムを多く知っててそれを使える人に結果は降って来やすい。

ITやらIoTやらAIやらの台頭でなんか世の中的にも今までのやり方をしたら死ぬみたいになってるけども、個人的には人間が認識できるアルゴリズムに作業とか変数定義して投げ込んであとはコンピュータに任せるってことなんだと思う。
要は本質的な何かは人間がまだまだやれるんじゃないかなって。
生き残るためにみたいな言い分は好きじゃないけど、手続きなのか本質的な部分なのかみたいなissueの切り分けはいる。

最後のエンジニアになりたい

けんすうさんが呟いてた最後の〇〇ってかっこいいやんみたいな考えでいる。最後だからなんだってんだ、大きな流れの中で楽しみは変わらんやろwみたいなね。
これからの自社最後のエンジニアにあわよくば業界最後のエンジニアになるべく楽しみを味わい尽くして行こうと思いました。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.