「最初のk個を見て、その後はそのk個よりよいものが出たらそれを選択」をネタに

#Julia言語 におけるメモリアロケーションの削減と並列化による高速化の例

の解説を書きました(色々ややこしい(笑))

nbviewer.jupyter.org/gist/genkuroki…

コード中のコメントを多めにしてあります。

news.yahoo.co.jp/articles/18f1c…
#Julia言語 Juliaでランダムに1,2,…,nの長さnの順列pを生成したければ、

using Random
p = randperm(n)

とすればよいです。

ちょっとした数学ネタのモンテカルロシミュレーションで結構必要になるので、これは知っておいて損はないです。

nbviewer.jupyter.org/gist/genkuroki…
#Julia言語 しかし、

for _ in 1:L
p = randperm(n)

end

のようなコードを書くと、ループの内側で配列 randperm(n) が繰り返し確保され、メモリアロケーションが膨大になって死ぬ。

その問題をどう解決したら良いかを解説したかったので

nbviewer.jupyter.org/gist/genkuroki…

を書きました。
#Julia言語 あと、ここの場合を独立して実行できる類のモンテカルロシミュレーションは並列化と相性がよいです。

Threads.@ threads for ~

で非常に簡単に並列化できる。その場合も上で紹介したリンク先で扱っている。

独立性がない場合(例えばイジング模型の類)だと面倒になる。

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with 黒木玄 Gen Kuroki

黒木玄 Gen Kuroki Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @genkuroki

9 Mar
#Julia言語 以下のリンク先で Julia カーネルの Jupyter notebook で音を鳴らす方法の例を示しておきました。

以下のリンク先の添付画像の部分では 880Hz と 1320Hz の正弦波の和が再生されるはずです。

nbviewer.jupyter.org/gist/genkuroki…
#Jupyter notebook で nbextensions の Gist-it を使えるようにすると、任意のカーネルで作った Jupyter notebook をワンボタンで GitHub Gist に投稿できるようにできます。

数式やコードを含む文章による解説
実際に動かすコード
計算結果
グラフ
動画


をまとめたものがワンボタンで公開可能!
こういう目的には #Jupyter notebook が現時点において最適なツールになっていると思います。 #Jupyter notebook は多くのプログラミング言語に対応しており、ユーザー側の自由度が大きいです。

解説↓

nbviewer.jupyter.org/github/genkuro…

nbviewer.jupyter.org/github/genkuro…
Read 4 tweets
8 Mar
数学市民さんという人がひどいことを言いまくっていた。

どういう人なのか知らないし、私のTLには登場しないし、検索しても発言が見当たらないと思ったら、なぜかミュートしていたようです。

色々謎が解決。

ビジネス数学にまつわる継続論争 - Togetter togetter.com/li/1679140 @togetter_jpより
私のTL以外の空間で、そのひどい発言がまともだと思った人達が出て来たりしていて、それを気にする発言が出ていたんですね。

私のところにはその気にする発言しか流れて来ず、一体何が起こっているのだろうかと思っていました。

ツイッターでの話題にリアルタイムでついて行くのは私には難しい。
ミュートはそのままにしておくことにした。😊
Read 6 tweets
8 Mar
「円グラフの使用は避けること」について続々と追加情報が!

ちなみに #Julia言語 の Plots.jl ではそもそも円グラフがまともに実装されていません(笑)

まともな円グラフを Plots.jl で書こうとすると、自分でコードを書かなければいけなくなる。

このようなところに円グラフの立場が表れている。
#Julia言語 自己引用:円グラフを【みんな使っていないのかなと思いました。】(笑)

円グラフだと見た目的に比率の情報しか残らないので、私が書いた Plots.jl 用円グラフのrecipeだと、元の数を括弧の内側に表示する仕様になっていた(笑)

結局括弧の内側の数字も読まなければいけなくなる(笑)
統計学のイロハのイの1つに

「A,B,C,…の数がデータとして得られているとき、全体に対するA,B,C,…の比率の情報だけを示すのはよくない」

があります。

総数の情報もないとデータ取得時の統計的・確率的揺らぎの影響を見積れなくなります。
Read 4 tweets
7 Mar
高等教育を受けた後に、数学的厳密さへの反感をあらわにする人達は結構いて、多くの場合にルサンチマンが原因のように見えます。

数学にくだらないルサンチマンを持ち込まないで欲しい。

繰り返し述べているような意味で、高等教育が「数学的厳密さ」について教えることに失敗している点が問題。
具体的に、ルサンチマンを持ち込んでいるように見えるのは、以下のリンク先のリンク先(添付画像)における長大な余談の部分です。

その余談の部分に共感してビジネス数学を擁護したいと思った人達は有害なルサンチマンを共有している困った人達という扱いになってしまうと思っています。
Read 5 tweets
7 Mar
私もShiozawaさんが指摘しているように「そのようなグラフの悪質な使い方がすでに広く普及していること」をこの議論の基本的前提にすることは重要だと思います。

ビジネス数学はそれを「グラフを示す目的は自分の見解を伝えることである」という一見無害に見える考え方で正当化してしまった。
データの内容を誤解なく分かり易く(可能ならば一目で分かるように)グラフの描き方を工夫することであれば誰も否定していない。

そのとき重要なのは「自分の見解を伝えること」と「データの内容を誤解なく分かり易く伝えること」は違うということです。

自分の見解は有害で間違っているかもしれない。
以下のリンク先資料(添付画像)の③④で、ビジネス数学教育家の肩書きで深沢真太郎さんは、

【会議では、できるだけ上司にいいところを見せたい】

という設定で、自分にとって都合の悪いデータを出すのはNGで、都合の良いグラフを見せるのはOKだとしている。

これは論外!

president.jp/articles/amp/2…
Read 14 tweets
7 Mar
グラフを描くことの目的を「自分の見解を分かりやすく伝えること」に特化させてしまうと大変なことになってしまうことを、この件で学ぶことができました。

伝えたいと思っている自分自身の見解がビジネス的に有害で会社や顧客に損害を与える可能性にも配慮することが常識にならないとまずいです。
あと、ビジネス数学への真っ当な批判を見て、自分にとって都合が悪いと感じている集団が存在していているようにも見えた。

そして、普通の常識に基いて「これはひどい」と言っているだけなのに、「ビジネスに無用な過度な厳密さを要求している」という印象を広めたい人達がいるように感じられた。
すでに何度か述べたことがあると思うのですが、高等教育で「数学的厳密さ」の御利益について適切に教えることに失敗していると私は考えています。

論理的に厳密な議論を空気を吸うごとく遂行できるスキルがあると、数学的な事柄について安心して直観を大胆に駆使できるようになります。
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!