Twitter APIの仕様変更のため、「いいね」の新規取得を終了いたしました

黒木玄 Gen Kuroki

@genkuroki

  • いいね数 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 を見て下さい。
Favolog ホーム » @genkuroki » 2020年08月08日
並び順 : 新→古 | 古→新

2020年08月08日(土)

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 をプログラミング入門用に使うことが悪くないと思うさらに別の理由は

 Juliaのスタイルが沢山の他言語のキメラになっていること

です。だからJuliから入門すれば、他言語を使うときに「見たことがある」となり易いと思う。

x |> f |> g |> h

も結構便利。

twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 23:04:42

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 2013年のJulia v0.1時代のブログ記事が、今年の6月にv1対応のために改訂された。Juliaをshell scriptのように使う話。

julialang.org/blog/2013/04/p...
Put This In Your Pipe
8 April 2013 | Stefan Karpinski

添付画像の部分を見て、私はJuliaをshell scriptのように使い始めました。 pic.twitter.com/7LjekEdxGL

タグ: Julia言語

posted at 22:58:50

砂___の___女 @vecchio_ciao

20年8月8日

だったら鍵掛ければいいのに。

「自分は放言するけど批判はするな」なんて虫の良い話。 twitter.com/lqcfelr43nsaia...

タグ:

posted at 22:49:34

Fermat's Library @fermatslibrary

20年8月8日

A visual proof that for positive real numbers the Arithmetic Mean ≥ Geometric Mean pic.twitter.com/4J3Vh0phCN

タグ:

posted at 22:00:04

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@HShinaoka #Julia言語 の開発元のMITでの講義の記録が

github.com/mitmath

にあります。

これは、全体的に非常に面白い読み物になっていて、素晴らしいです。

タグ: Julia言語

posted at 20:35:23

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@sinya8282 @natrium11321 #Julia言語

nemocas.org/benchmarks.html
Nemo.jl は非常に速いです。

github.com/wbhart/Singula...
WindowsでなければSingular.jlも使えるはず。

タグ: Julia言語

posted at 20:19:54

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@sinya8282 @natrium11321 #Julia言語 これも情報が古くなっているのですが

nbviewer.jupyter.org/gist/genkuroki...
Maxima.jl のインストールの仕方 (Windows編)
2018-01-03, 2019-06-08, 2019-12-27 pic.twitter.com/cvlMrC9QxU

タグ: Julia言語

posted at 20:12:21

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@sinya8282 @natrium11321 Jupyter notebookでFree Wolfram Engineを使って、数学の解説文を書いた例

nbviewer.jupyter.org/github/genkuro...
Borwein積分
2019-06-13

「ずっとπだったのに急にπとは違うπに非常に近い出力が!」という有名なネタです。 pic.twitter.com/sVirzVAbtp

タグ:

posted at 20:09:48

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@sinya8282 @natrium11321 #Julia言語 これも情報が古いのですが、

nbviewer.jupyter.org/gist/genkuroki...
MathLink.jlのインストールの仕方
2019-09-07

MathLink.jlはMathLinkライブラリを利用して~WolframEngine のMathKernelを利用するためのパッケージ. Free Wolfram Engine をインストールして利用. 環境はWindows 8.1です.

タグ: Julia言語

posted at 20:06:18

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@sinya8282 @natrium11321 Wolfram Engineのフリー版に機能制限はないです。情報が古くなっているので、そのまま通用しないと思いますが、Jupyter notebookで使うための解説が

nbviewer.jupyter.org/github/genkuro...

にあります。

タグ:

posted at 20:03:40

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 これなんかは、数学とプログラミングが得意で若くて精緻な事柄に集中力をはっきできる人にとっての大チャンスかもしれなくて、既存の基本特殊函数のライブラリの全体を数倍以上高速化して広めれば、その分野で一挙に世界一になれるんじゃないか?

タグ: Julia言語

posted at 19:56:21

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 MITの講義の宿題の解答例

nbviewer.jupyter.org/github/steveng...

がすごい。

これを解読するだけで、特殊函数の数値計算の数学、マクロを使った最適化、プロットによる確認、数式処理系の利用を学べ、既存のFortranライブラリより5〜6倍速いコードをJuliaで作れるようになる。

タグ: Julia言語

posted at 19:53:10

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 あと、プログラミング言語入門の中に高速な計算が必要な項目が入っているなら、なおさらJuliaがよい。

Juliaでなくても、普遍的に通用する方法を学べるなら何でもよいと思うのですが、高速で楽にコードを書けるものとなると、Julia以外によい選択肢がない。

タグ: Julia言語

posted at 19:53:09

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 でプログラミング言語入門で問題ないと思います。

ハードウェアを意識した最適化とか、完全なマクロとか、Juliaの方が勉強できる項目が多いと思う。

Pythonは情報が多いので特別に勉強しなくても誰でも使える。

Juliaを使えるようになった人はPythonもすぐに使えると思う。 twitter.com/kikumaco/statu...

タグ: Julia言語

posted at 19:53:09

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 <も要注意。

sum(pdf(dist, j) for j in support(dist) if pdf(dist, j) < pdf(dist, k))

のようなコードを書くとまずい。理論的には pdf(dist, j) == pdf(dist, k) なのに、浮動小数点数として pdf(dist, j) < pdf(dist, k) となっていると、その分だけ余計に足されてしまう。

タグ: Julia言語

posted at 19:29:35

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 以前やらかしたときには、distの定義パラメータをうまく選ばないと、浮動小数点数の計算が偶然うまく行ってしまってバグを再現できなくなる。こいちじかん悩んだ。

エラーが出て動かない場合の__ありがたみ__が分かる例にもなっていた。動いちゃうと余計につらいことになる。

タグ: Julia言語

posted at 19:21:48

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 理論的には

pdf(dist, j) == pdf(dist, k)

となるのに、浮動小数点数の計算で

pdf(dist, j) > pdf(dist, k)

となっていると、pdf(dist, j)が足されなくなってしまい、P値が正しい値より小さくなってしまう。これは統計学的には致命的なバグ。

これ、エラー無しに動くのでたちが悪い。

タグ: Julia言語

posted at 19:18:20

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 おまけ:Juliaで安全に(型安定で速度的劣化無しに)closureと同じことをやりたい場合にはfunction-like objectを直接書けばよいです。

docs.julialang.org/en/v1/manual/m...

Juliaではclosureもfunction-like objectになります。

nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/rGc5GRnUvc

タグ: Julia言語

posted at 19:10:44

黒木玄 Gen Kuroki @genkuroki

20年8月8日

最近では情報が広まったおかげでほとんど見なくなったのですが、以前は「#Julia言語 はクラスがないので『いつものやり方』ができない。べたで書くしかない」というような誤解をよく見ました。

moduleで名前空間を分離して、multiple dispatchを使えば普通に「色々」できますよね。

タグ:

posted at 19:03:07

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 同じような機能(1つ前のツイートの例ではどれも名前を持つ)を持っているが、少しずつ異なる機能を持つ型を大量に作りたい場合には便利そうですね。

タグ: Julia言語

posted at 18:59:55

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 例えば

f(p) = f(has_a(p), p)
f(::HasA, p) = ~

g(p) = g(has_b(p), p)
g(::HasB, p) = ~

が定義されているとき、Foo型について両方を使えるようにするには

has_a(::Foo) = HasA()
has_b(::Foo) = HasB()

と定義すればよい。

nbviewer.jupyter.org/gist/genkuroki...

タグ: Julia言語

posted at 18:37:48

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 Juliaで「オブジェクト指向」的なことをやるための

* abstract typeの木の先に(mutable) structをぶら下げる方法

* 所謂 Holy traits を使う方法

の簡単な例

他の例については↓

nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/83IeEzl9Zh

タグ: Julia言語

posted at 18:28:37

Shuhei Kadowaki @kdwkshh

20年8月8日

@genkuroki 僕も最近毎日ソースビルドしたJulia使ってますが、目立った問題には出会ってないです :)
startup latencyの向上が著しいですね。

OhMyREPL.jlが動かないのでパッチ当てる必要がありますが...
github.com/KristofferC/Oh...

タグ:

posted at 17:38:07

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 常識のある人には非難されちゃうかもしれませんが、入門用に Julia v1.6.0-DEV って悪くないんじゃないか?

julialang.org/downloads/nigh...

using Plots の待ち時間が大幅に減ります!

IJulia.jlも普通に使えているし。

タグ: Julia言語

posted at 17:34:43

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@chor0sK #Julia言語 nothingやmissingなどについては、少し前に、Juliaの開発者の1人であるKeno Fischerさんがノリノリで解説を書いています。

twitter.com/KenoFischer/st... twitter.com/kenofischer/st...

タグ: Julia言語

posted at 16:39:51

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計 尤度が大きい方が尤もらしいと機械的に考える人は、以上に3つの場合のうち、ノイズにフィッティングしているように見える添付画像の場合(オーバーフィッティングしているように見える場合)が「最も尤もらしい」と判断してしまうことになる。 pic.twitter.com/VDD4oGbtKq

タグ: 統計

posted at 15:06:32

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計

gist.github.com/genkuroki/db89...

sin(πx)+(ノイズσ=0.2) の多項式でのフィッティング。モデルは残差が正規分布。

添付画像

①最尤法による3次式によるフィッティング。対数尤度=4.2
②最尤法による21次式によるフィッティング。対数尤度=27.8
③リッジ正則化版21次式。対数尤度=3.5 pic.twitter.com/pcDfwpo69B

タグ: 統計

posted at 15:06:29

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計 科学的素養があれば、「モデルが過去のデータによく適合しているという理由だけで、そのモデルによる予測を尤もらしいと思ってはいけない」ということは常識に属することです。

だから、統計学において「尤度」=「モデルのデータへの適合度」は「尤もらしさ」だと説明してはいけないのです。

タグ: 統計

posted at 12:52:59

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計 関連

モデルを過去のデータによく適合させることができていても、それだけを理由に「そのモデルによる予測は尤もらしい」とは決して思ってはいけない。

そのように誤解しやすいことをつく有害な言説が出回っている。

現在のような状況では本当に注意が必要です。

twitter.com/genkuroki/stat... pic.twitter.com/6HMmhN8xFt

タグ: 統計

posted at 12:45:48

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計 数学の世界が以上のようになっていることから、統計学についてどんなに知識があっても、各分野固有の知識抜きには適切なモデルとデータを用いた統計分析は不可能だということもよく分かります。

タグ: 統計

posted at 12:36:59

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計 しかし、モデルをざくっとシンプルにすると、そのモデルの範囲内で可能な未知の分布の最良近似の精度は下がります。

だから、モデルの複雑さとデータのサイズの組み合わせを適切なものにしなければ、統計分析の質は下がる。

理想を言えばシンプルなモデルで本質をついたものが欲しい。

タグ: 統計

posted at 12:36:59

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計 モデルp(y|w)を複雑にすればするほど、近似を成功させるためには、未知の分布q(y)のデータ(乱数列)Y_1,…,Y_nのサイズnを大きくしなければいけません。

現実に得られるデータのサイズnで適切な近似を成功させるためには、モデルを適切なレベルでシンプルなものにしなければいけない。続く

タグ: 統計

posted at 12:30:34

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#統計 未知の分布q(y)をモデルp(y|w)で近似したいと思ったとき、モデルのパラメータw=(w_1,…,w_d)の個数dを増やして、モデルを複雑にしておけば、そのモデルで未知のq(y)をよりよく近似できる可能性が高まります。

しかし、数学の世界はそう甘くできていない。続く

タグ: 統計

posted at 12:30:33

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 「尤度」の概念を理解するためには、以上の数学的にややこしい話が実は必須になります。以上の話を統計学における常識にすることに成功した赤池弘次さん自身による解説を読むとよいと思います。

twitter.com/genkuroki/stat...

タグ: 統計

posted at 11:53:53

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 数学的に理想化された状況(モデルは十分に複雑でかつデータのサイズも十分に大きいという普通はあり得ない状況)では、最尤法における尤度を「尤もらしさ」と解釈しても害がないのですが、絵に描いた餅に過ぎず、現実にはオーバーフィッティングの可能性にも配慮する必要があると言うことです。

タグ: 統計

posted at 11:51:29

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 より複雑なモデルp(y|w)の方が未知の分布q(y)のよい近似を含んでいます。しかし、現実にはデータのサイズnには強い制限(物理的および予算的制約)がつきます。得られるサイズのデータではモデルによる未知の分布の近似に失敗するかもしれない。

いわゆるオーバーフィッティングの問題が生じる!

タグ: 統計

posted at 11:48:25

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 しかし、以上のストーリーを数学的に詳細にやり直すと(大数の法則を使った部分を中心極限定理に置き換えると)、モデルp(y|w)として複雑なもの(パラメータw=(w_1,…,w_d)のdが大きなもの)を選ぶと、その分だけデータのサイズnを大きくしないと、良い近似が得られないということがわかります。続く

タグ: 統計

posted at 11:44:32

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 だから、q(y)の良い近似を含むと考えられるモデルp(y|w)を数学的に設定して、未知のq(y)のデータでサイズnが十分に大きなものを取得できるならば、未知のq(y)の良い近似を最尤法によって得ることができるわけです。続く

タグ: 統計

posted at 11:41:44

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 だから、モデルp(y|w)を固定してデータのサイズnを十分に大きくできるという理想化された状況においては、分布q(y)のデータのみから(q(y)について知らなくても)、最尤法によって、モデルp(y|w)の範囲内で分布q(y)を最もよく近似しているものが得られるわけです。続く

タグ: 統計

posted at 11:39:06

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 以上をまとめるとこうなる。

nを十分に大きくしておけば、分布q(y)のサイズnのデータに関するモデルp(y|w)の最尤法(尤度L(w)の最大化)によって、「モデルp(y|w)による分布q(y)のシミュレーションの誤差」を最小化するパラメータwの近似値が得られる。

続く

タグ: 統計

posted at 11:35:38

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 KL情報量 D(q||p(.|w)) は「モデルp(y|w)による分布q(y)のシミュレーションの誤差」という意味を持っています(Sanovの定理)。続く

タグ: 統計

posted at 11:33:20

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 KL情報量 D(q||p(.|w))=∫q(y)log(q(y)/p(y|w))dy とShannon情報量 S(q)=-∫q(y)log q(y) dy

D(q||p(.|w)) = - ∫q(y) log p(y|w) dy - S(q)

なので、nが十分に大きければ、尤度函数L(w)の最大化は近似的にKL情報量D(q||p(.|w))の最小化になります。

実はこれが最尤法の基礎です。続く

タグ: 統計

posted at 11:30:04

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 このとき、

(1/n)log L(w) = (log p(Y_1|w) + … + log p(Y_n|w))/n

なので、大数の法則より、nが十分大きいとき、

(1/n)log L(w) ≈ ∫q(y) log p(y|w) dy

という近似を使えます。L(w)の最大化は近似的に右辺の積分(期待値)の最大化になります。続く

タグ: 統計

posted at 11:25:02

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop #統計 もう少し詳しく説明します。q(y), p(y|w)はyに関する確率密度函数で、wはパラメータだとします。

各々がq(y)に独立に従う乱数列(i.i.d.)Y_1,…,Y_nをq(y)のデータと呼ぶことにします。

モデルp(y|w)の尤度函数はL(w)=p(Y_1|w)…p(Y_n|w)と定義されます。

L(w)を最大にするwをw*と書く。続く

タグ: 統計

posted at 11:20:08

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop 「尤度」を「尤もらしさ」だと説明しているすべての文献は読者をミスリードしていると私は主張しています。

私は伝統的な尤度に関する説明の多くがクズであり、多くの人達が尤度に関するクズ解説によって尤度の概念を適切に理解できなくなっていると思っています。

タグ:

posted at 11:14:34

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop 「尤度」の「尤」の字の意味(尤もらしい)や英語のlikelihoodの意味を忘れて、尤度の数学的な定義だけを見るようにして、「尤度」=「モデルのデータへの適合度」と解釈すればよいと私は繰り返し主張しています。

「モデルのデータへの適合度」は決して「モデルの現実における尤もらしさ」ではない。

タグ:

posted at 11:11:44

黒木玄 Gen Kuroki @genkuroki

20年8月8日

@bylloop 「尤度は尤もらしさ適合度は」の部分の意味が分かりませんが、私が繰り返し言っていることは

* 尤度は(通常の日本語の意味での)尤もらしさではない。
* 尤度はモデルのデータへの適合度の指標に過ぎない。

です。続く

twitter.com/bylloop/status...

タグ:

posted at 11:09:11

黒木玄 Gen Kuroki @genkuroki

20年8月8日

#Julia言語 Julia界の有名人の一人であるSandersさんもこう言っています。

❌ time julia foo.jl

⭕️ REPLやJupyter notebookの中で作業を続ける。そうすれば最初の実行時のコンパイル後は非常に速くなる。

julia foo.jl の繰り返しによって foo.jl を改良しようとするのは不合理。 twitter.com/davidpsanders/...

タグ: Julia言語

posted at 09:22:38

エコ鉄 @eco_tetsu

20年8月8日

@nfujita55a @genkuroki 電源は2通りの意味。
・サーバーの変圧器・交直電源
・建物の電気配線管理

怖くてそんなところにサーバーを置けない。

タグ:

posted at 01:35:08

@genkurokiホーム
スポンサーリンク
▲ページの先頭に戻る
ツイート  タグ  ユーザー

User

» More...

Tag

» More...

Recent

Archive

» More...

タグの編集

掛算 統計 超算数 Julia言語 数楽 JuliaLang 十分 と教 モルグリコ 掛け算

※タグはスペースで区切ってください

送信中

送信に失敗しました

タグを編集しました