黒木玄 Gen Kuroki
- いいね数 389,756/311,170
- フォロー 995 フォロワー 14,556 ツイート 293,980
- 現在地 (^-^)/
- Web https://genkuroki.github.io/documents/
- 自己紹介 私については https://twilog.org/genkuroki と https://genkuroki.github.io と https://github.com/genkuroki と https://github.com/genkuroki/public を見て下さい。
2021年03月17日(水)
#Julia言語 信頼区間函数をもっとまともなものにした。
二項分布モデルの場合
function ci(n, k, α)
CI = find_zeros(p -> pval(Binomial(n, p), k) - α, 0, 1)
isone(length(CI)) ?
CI[1] < 0.5 ? (0.0, CI[1]) : (CI[1], 1.0) : (CI[1], CI[end]))
end
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/f4ta44vhga
タグ: Julia言語
posted at 23:53:53
たかが足し算を分類しまくって、十を聞いて一を知る。
かけ算の順序を区別して、十を聞いて一を知る。
割り算を分類して、十を聞いて一を知る。
長方形の集合から正方形を取り除いて、十を聞いて一を知る。
割合なんて、ただの○倍ってだけなのに、3 用法などと区別し、十を聞いて一を知る。
やばい。 twitter.com/tsatie/status/...
タグ:
posted at 22:44:24
仙台地裁はかなりWEB会議が浸透して、弁準で出かけることがほとんど無くなりました。
行くのは大きな事件の弁論か、和解成立の弁準くらい。だいぶ楽です。 twitter.com/ssk_ryo/status...
タグ:
posted at 22:17:33
@OokuboTact @takusansu そういえば! 倍数、約数が、分数計算の補助概念であった時代との整合性が現在でも保たれていることはすごいですね!#超算数
タグ: 超算数
posted at 22:11:53
#Julia言語 【ネタ】
添付画像①
pi = 1 としてしまうと「しまった!」となるのですが、Base.pi に元の pi は残っています。sum = 0 としても、Base.sum は使える。
添付画像②
Base.:+(x::Int, y::Int) = nothing
😱😱😱😱😱 twitter.com/ritzberry/stat... pic.twitter.com/3xBFN09wv5
タグ: Julia言語
posted at 21:51:13
OokuboTact 大久保中二病中年 @OokuboTact
@temmusu_n @takusansu > 新数学1 大日本図書K.K.昭和53年
> “ここでは,倍数は自然数の集合で考えているので,0は取り除かれる”
これは小学校の考えそのままですね
twitter.com/OokuboTact/sta...
タグ:
posted at 21:45:03
#Julia言語 NASAでJuliaがどのように使われているかについては以下のリンク先のスレッドを参照。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 21:33:25
Julia 勉強中だけどほんとに Python を超えられるか楽しみ半分、勉強の楽しさ半分ってとこかな。
Juliaで常微分方程式を解く qiita.com/P_Fermat/items... #Qiita @erin_yagokoroより
タグ: Qiita
posted at 21:20:03
#Julia言語 例えば
exp_approx(x, n=10^6) = (one(x) + x/n)^n
というコードは近似的にexp(x)を計算してくれる函数です。
one(x)は多くの場合にxと同じ型の1になる。このように書いておくと、正方行列xにも適用可能になる(添付画像1)。
添付画像2は@ code_warntypeの例。 pic.twitter.com/GwsAedBY1l
タグ: Julia言語
posted at 20:33:04
@takusansu #超算数 1978年版の中学校数学教科書、ありがとうございます。啓林が0を倍数と定義していると。当時は現代化の次の指導要領が1977年に告示され、81年からの施行を準備している時代ですね。啓林については現代化の教科書を準備中に塩野直道が死去したことの影響など、調べることがでてきました。
タグ: 超算数
posted at 19:59:47
今年度も超算数の【0は何の倍数でもない】の被害者が出ました
もうこれ確認するの手間だから、小学校で習ってしまったであろう嘘をまとめて、忘れるように指示する資料作った方が良いな
「4の倍数の集合X」
を複数パターン書いてください
偶数を羅列したベン図がありましたが、0が避けられましたw
タグ:
posted at 19:58:26
#Julia言語 新たなコードを追加せずに、パラメータの値に幅を持たせた場合を扱うには、「幅を持つ数値」の型を定義し、微分方程式のソルバにそういう型の数値を使った場合の微分方程式を解かせればよい。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 19:35:36
#Julia言語 は composability で優れています。
具体的には、例えば、Juliaで適切に書かれた微分方程式のソルバを使っていれば、後でパラメータの値に幅を持たせたときの微分方程式の解の挙動の視覚化を新たなコードを追加せずに実行できます。
以下のリンク先スレッドに実例があります。続く twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 19:29:51
ハードオフで550円で買ったやつなんですけど、多分元の持ち主が鉄道関係者。
あと牌の背が竹なんですが、牌も象牙の可能性がある。 pic.twitter.com/wWDBHJKBmg
タグ:
posted at 19:26:51
#Julia言語 Juliaの型について十分な理解がない段階でJuliaで型を明示的に書くと、大抵の場合ろくなことにならないし(バグの原因になる)、理解が進むと、型を明示的に書いた方が良いという考え方自体が技術的に劣っている考え方だと気付きます。
Juliaでは型を明示せずに、型の伝搬で考える。続く twitter.com/mrsekut/status...
タグ: Julia言語
posted at 19:19:05
#Julia言語 でJulia集合の動画を作成
ソースコード↓
nbviewer.jupyter.org/gist/genkuroki...
この手の作品では色の付け方が結構重要なポイントになることが多い。これはカラーマップとして:gist_earthを使っている。
この手のことも全部10行で可能。この場合には余裕でプログレスメーターも設置できた。 pic.twitter.com/GZIbHMupEw
タグ: Julia言語
posted at 17:52:23
#Julia言語
Julia集合の動画も10行で作れる。
余裕のプログレスメーター付き(笑)
どこまで進んだかを表示させたい人には参考になるはず。
(Mandelbrot集合の動画も同様の方法で作れるはず)
ソースコード↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/BnRovywF2A
タグ: Julia言語
posted at 17:48:34
#Julia言語 上の方で二項分布モデルのP値と信頼区間の1~2行による実装法を解説したが、2×2の分割表の独立性に関するFisher検定のP値も信頼区間も1~2行で書ける。
しかもそうやって実装した結果はRのfisher.testよりも良い性質を持っていたりする。
ソースコード↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/W3vaHzY2Vm
タグ: Julia言語
posted at 17:45:37
参考情報
昔の中学数学教科書の倍数の扱い
8254.teacup.com/kakezannojunjo...
twitter.com/temmusu_n/stat...
タグ:
posted at 17:20:57
#Julia言語 添付画像中では二項分布での信頼区間を計算する函数が2行で書けています。通常の書き方をすると、
function ci(n, k, α)
CI = find_zeros(p -> pval(Binomial(n, p), k) - α, 0, 1);
k == 0 ? (0.0, CI[end]) : k == n ? (CI[1], 1.0) : (CI[1], CI[end]))
end
くそシンプル! pic.twitter.com/yN5Xf05Lmg
タグ: Julia言語
posted at 14:18:39
#Julia言語 「二項分布モデルでモデルのパラメータの値が95%信頼区間に含まれる確率を計算してプロットしなさい」という練習問題を解いておくことは、信頼区間ユーザーになりたい人にとって必須だと思います。
JuliaならばP値函数の実装も自分で行ってもそれの問題を10行で解けてしまうわけです。 pic.twitter.com/9iciSOGAu8
タグ: Julia言語
posted at 14:10:11
#Julia言語 P値やモデルのパラメータ値が信頼区間に含まれる確率は1行で定義された函数で計算できる!
しかも、そうした方が可読性が高くなる!
それらの函数は、英単語の意味を知っていれば、Juliaを知らなくても何を計算しているかがわかるように書ける。
これが抽象化の威力です。 pic.twitter.com/71WYzP1jcJ
タグ: Julia言語
posted at 14:07:27
#Julia言語 以下のリンク先のP値を扱うコードは書き直した。現在のバージョン
nbviewer.jupyter.org/gist/genkuroki...
ならv1.5.4でも動きます。
nightly buildでは
range(a, b; length=n)
の代わりに
range(a, b, n)
と書けるようになっています。それを上の形式に戻した。
twitter.com/genkuroki/stat... pic.twitter.com/GiipZklbY4
タグ: Julia言語
posted at 13:45:05
#Julia言語 添付画像のように、v1.5.4と数日前のnightly build (v1.6以上でもほぼ同じはず)では、最初のusingにかかる時間が全然違う。
一度、v1.6以上の世界に慣れると、もうv1.5には戻れなくなります(笑)
Juliaを使い続けると大体数ヶ月ごとに「前よりも使い易くなった」と感じることができます。 pic.twitter.com/80LyHf7ghk
タグ: Julia言語
posted at 13:23:21
#Julia言語 #数楽
1つ前のツイートの場合(K = 2K_c)におけるθ_i達の分布の動画。
初期条件は一様分布。
各θ_iごとに相互作用無しのときのデフォルトの周期は違う。異なる周期を持つ振動子であっても、蔵本モデルではこのように同期してしまう。 pic.twitter.com/sXuezPv8kP
posted at 12:53:34
#Julia言語 #数楽
相互作用の強さが臨界値の2倍の場合。めっちゃくちゃ同期しまくっている!
上で紹介したPlutoノートブックで作れます。 pic.twitter.com/iazcHsUzpd
posted at 12:50:38
@kaityo256 そうなんです!
接線を1本図示するだけで、バイアスが生じる理由とバイアスの向きと大きさについて(数式に頼らない)「一目瞭然」的な理解が可能になるんです!
タグ:
posted at 12:30:05
【級位者向け実戦型詰将棋part482(松田 茂行先生作)】
これを詰ますことができた者だけがこれを詰ますことができる。 pic.twitter.com/M6mzcdcRuj
タグ:
posted at 12:01:26
ずっと疑問なんだけど、新学習指導要領のような学習のグランドデザインに影響を与えている人たちはどういう人たちなの?視学官という立場の人はどういう役割を果たしているんだろう?端的に言って新学習指導要領の実質的な作成責任者は誰になるんだろう?誰がこれについての説明責任を負っているのか?
タグ:
posted at 11:32:49
@dynamite15RONIN #Julia言語 確認してみました。
蔵本モデルの部分のコードは v1.5.4 でも動きました。
↓
nbviewer.jupyter.org/gist/genkuroki...
パッケージのインストールに問題があるのだと思います。
pkg> update が必要なのかもしれません。
タグ: Julia言語
posted at 11:15:20
#Julia言語 蔵本モデルについて、こういう動画も作りました。
初期条件は一様分布なのですが、すみやかに山の形にまとまって同期するようになります。 pic.twitter.com/K0t1nnEpMc
タグ: Julia言語
posted at 10:30:12
#Julia言語 Plutoノートブックも用意しました。添付画像のようなことをできます。
gist.github.com/genkuroki/a50f...
以下のリンク先と同様の方法で上のリンク先のURLをPlutoで貼り付ければ使えます。ただし、
pkg> add DifferentialEquations
も忘れずに。
twitter.com/genkuroki/stat... pic.twitter.com/21GnjYebsK
タグ: Julia言語
posted at 10:27:53
ごまふあざらし(GomahuAzaras @MathSorcerer
2x を 2 * x として看做されるロジックってどのレベルで処理されてるんだ?(実装どこ?)
#Julia言語
タグ: Julia言語
posted at 10:24:46
@dynamite15RONIN ごめんなさい!私はnightly buildを使っています!
DifferentialEquations.jl を使う場合にはv1.6以上が推奨!
タグ:
posted at 10:24:07
ごまふあざらし(GomahuAzaras @MathSorcerer
A'ᵀ (A'\^T <TAB>)が transpose として使える予定だがこれは A' adjoint して tranpose してるように見えるので misleading では?という議論
タグ:
posted at 10:21:20
ごまふあざらし(GomahuAzaras @MathSorcerer
実行列 A の転置は
{}^t A でいいんじゃないか? pic.twitter.com/0ajSPFIQJy
タグ:
posted at 10:21:19
@genkuroki おお、ありがとうございます。f(E[X])とE[f(X)]がずれるのはテイラー展開すれば式としては出てきますが、「接線に関する期待値」だと思うと、ずれる方向と、ずれの大きさが二次の微係数に依存することが直観的にわかりやすいですね。
タグ:
posted at 08:46:24
#Julia言語 このたったの10行のコードの内容を1週間程度かけて理解すれば、確率分布、微分方程式、グラフの作画をJuliaで扱えるようになるはずです。
この10行分だけ理解すればよい。 pic.twitter.com/vYVYwDf7WX
タグ: Julia言語
posted at 08:34:00
#Julia言語 DifferentialEquations.jlで求めた数値解 sol はこの場合には時刻 t のm×n行列値函数としての機能も持っていて、非常に便利です!
sol(t)はθ_i(t)達のm×n行列で、sin.(sol(t)) は sin(θ_i(t)) 達のm×n行列になります。sin.(sol(t))' はその転置になる。そのヒートマップを作画している。 pic.twitter.com/imIIph3Hz4
タグ: Julia言語
posted at 08:32:21
#Julia言語 ほど、パッケージの読み込みとモデルの記述だけで微分方程式の数値解が求まってしまいます。視覚化の見栄えを良くするための工夫もシンプルに書けている。圧縮して書いているのにコードの可読性はそう悪くない。
こういう使い方をするにはJuliaは最強の道具だと言ってよいと私は思う。 pic.twitter.com/exYeSJgEEt
タグ: Julia言語
posted at 08:28:11
#Julia言語 モデルのコード化には、微分方程式、パラメータ、初期値などを全部書く必要があります。その分だけの行数はどうしても必要。使用するパッケージの読み込みの行も必要です。これで6行消費。
残りの4行でgif動画作成。(最後のendを1つ前の行の行末に移動すれば全部で9行に減らせる) pic.twitter.com/us7YHHbYpd
タグ: Julia言語
posted at 08:25:41
#Julia言語 続き
6. 微分方程式の数値解 sol を求める
7~10. sol からgif動画を作成。
JuliaのPlots.jlによるgif動画の作成はmatplotlibによるgif動画の作成よりもずっとシンプルで簡単です。
以前はmatplotlibでgif動画を作っていたのですが、Plots.jlに完全に引っ越してしまいました。 pic.twitter.com/LaBNrx0set
タグ: Julia言語
posted at 08:23:00
#Julia言語 続き
* tmax = どの時刻まで計算するか
* a = 1.3 相互作用の強さ。後で相互作用の強さKをK=aK_cと定める。
5. モデルのパラメータ
θ₀ = θ_i達の初期値をランダムに決める
tspan = (0.0, tmax)
K = aK_c
ω = ω_i達を平均vばらつき方dでランダムに決める
続く pic.twitter.com/IR1qDWs7sw
タグ: Julia言語
posted at 08:22:59
#Julia言語
4. パラメータの設定
* m×nで表示
* d = ω_iのばらつき方を記述する平均0標準偏差2の正規分布
* v = ω_iの期待値
* K_c = 2/(π p(0)) (p(x)は左右対称な分布dの密度函数)。同期が始まる臨界値K_cはデフォルトの角速度ω_i達のばらつき方が大きいほど大きくなります。直観的には当然。 pic.twitter.com/mSxxvXLLpo
タグ: Julia言語
posted at 08:22:58
#Julia言語 ソースコード解説
1. パッケージの読み込み
2~3. 蔵本モデルの微分方程式の記述
dθ_i/dt = ω_i + K (1/N) Σ_j sin(θ_j - θ_i) (i=1,…,N)
θ_iはi番目の振動の角度による表現。
θ_iはmod 2πでのみ意味を持つ。
ω_iはデフォルトの角速度。iごとに違う。
Kは相互作用の強さを表す。 pic.twitter.com/GagqO4k1y9
タグ: Julia言語
posted at 08:22:57
#Julia言語 以上のような計算機実験がJuliaを使えばたったの10行のコードを書くだけで可能です。
ソースコードを見れば、どのような微分方程式を考えているかや、臨界値 K_c の値がどのように決まっているかもわかる。
ソースコード↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/OFyb8GbcDM
タグ: Julia言語
posted at 07:52:11
#Julia言語 #数楽
Kuramoto model: K = 1.3K_c の場合
「すべての2つの枡目の組み合わせ」で相互作用が起こっています。各人が残りの全員の状態に引っ張られている。
そのひっぱりの強さがある一定以上にならないと同期は起こらない。 pic.twitter.com/YBLxQpr825
posted at 07:49:02
#Julia言語 #数楽
Kuramoto model: K = 1.2K_c の場合
K = 1.1K_c の場合よりも同期が強まっている。 pic.twitter.com/Ad8Kjq1SjV
posted at 07:48:59
#Julia言語 #数楽
Kuramoto model: K = 1.1K_c の場合
K が K_c を超えると急激に同期が強まる。 pic.twitter.com/Nlwf5PLu7Z
posted at 07:48:56
#Julia言語 #数楽
Kuramoto model: K = 1.0K_c の場合
同期が起こる起こらないの境目。 pic.twitter.com/FBlQjv07wr
posted at 07:48:53
#Julia言語 #数楽 Kuramoto model には相互作用の強さを表すパラメータKが入っていて、Kがある値K_cを超えると急激に同期が強まる(相転移が起きる)ことが知られています。
添付画像
Kuramoto model: K = 0.9K_c の場合
同期は起こらない。 pic.twitter.com/fiUa3ukDLI
posted at 07:48:49
@kaityo256 #数楽 確率変数Xについてf(X)の期待値とXの期待値でのfの値の違いの話は、本質的にJensenの不等式の話題になります。
その証明の中身を見れば、f(X)の期待値とf(Xの期待値)の違いが、y=f(x)とそのx=(Xの期待値)における接線の違いから来ていることが分かります。こういうイメージの仕方は結構大事。 pic.twitter.com/6UkLFj5mk6
タグ: 数楽
posted at 07:22:51
P型D型の色覚には難攻不落というかあっという間に終了してしまうのでルールもわからなかったというほどの「ぷよぷよ」が、多様な色覚に対応したのをお披露目するのに、CUD友の会でオンライン開催した時の話がニュースになりました。私もコメントしてます。
game.asahi.com/article/142571...
タグ:
posted at 07:14:39
CUDA.jlをインストールしてみた。github.com/JuliaGPU/CUDA.jl CUDA111, CUDNN_CUDA111, CUTENSOR_CUDA111がダウンロードされ、CUDA 11.1.0関連のライブラリなどがインストールされた。RTX 2080 Tiも無事に認識された。TutorialsのInstruction juliagpu.github.io/CUDA.jl/stable... を見て、BenchmarkToolsも‥ pic.twitter.com/Vguxs8NE8c
タグ:
posted at 05:53:31
@UQprofessional @beckness For the kind of stuff you do, python wouldn't provide enough of a marginal benefit. Julia much better for custom analyses, playing around with distributions, AD etc
Check this out github.com/AnderGray/Prob...
タグ:
posted at 02:30:44
Not a bad idea at all for managing python envs. Super happy with #JuliaLang's modern builtin package manager + environments + "automatic" binary dependency management systems that all make things Just Work. twitter.com/svpino/status/...
タグ: JuliaLang
posted at 01:52:10
出典
国民文庫編集委員会監訳(著者はレーニン及びスターリンだが奥付に書いてない)「党建設の基本問題」国民文庫、1954年 pic.twitter.com/SCStVNsK5i
タグ:
posted at 00:10:22