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 » 2021年09月05日
並び順 : 新→古 | 古→新

2021年09月05日(日)

Matt Henderson @matthen2

21年9月5日

a visualization of chaos- bouncing on a sine wave
the predictions for the ball's trajectory (orange) quickly diverge after a few bounces pic.twitter.com/KohdEa3QnH

タグ:

posted at 00:32:52

非公開

タグ:

posted at xx:xx:xx

ハガネの連勤術師 @hgn_no_otaku

21年9月5日

「tanθ=1/3 で cosθ は?」みたいなやつ、「公式なんかどうでもいい、とにかく定義や定義」と言って絵描いて解くの見せたら「絵を描くのが大事なんですね!」と言われて嬉しかったのと同時に「学校でどう習ってるの…」と複雑だったよ

タグ:

posted at 01:06:04

非公開

タグ:

posted at xx:xx:xx

部品(森七菜) @tjmlab

21年9月5日

みなさんJuliaの実践的な情報に飢えていたのね

タグ:

posted at 01:44:23

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 GCについて

計算速度が特に重要な場合にはメモリアロケーションを徹底的に削減して、できるだけGCに頼らないコードを書くことになります。メモリアロケーションの削減はJulia以外でも重要。

計算速度が重要でない場合には気楽にGCに頼ったコードを実行する。 twitter.com/fortran2008/st...

タグ: Julia言語

posted at 03:16:53

Hideki Kawahara: WAS @hidekikawahara

21年9月5日

良い講演だった。数式だと簡単に理解して協力できるのに、(今までの言語の)プログラムだとできない。Juliaは数式をほぼそのまま書いたものを実際に動くプログラムにできる!

A programming language to heal the planet together: Julia | Alan Edelma... youtu.be/qGW0GT1rCvs @YouTubeより

タグ:

posted at 03:28:51

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@iitenki_moruten #Julia言語

ソースコード

github.com/genkuroki/publ...

添付画像

メモリアロケーションをゼロに‼️
①オリジナル版実行2回目 1.1 sec (4.00 M allocs)
②改良版実行2回目 0.87 sec

Zygote.jlをForward.jlで置き換えたことによる改善
③オリジナル版実行1回目 12 sec
④改良版実行1回目 1.4 sec pic.twitter.com/ztS7RbrxkU

タグ: Julia言語

posted at 05:21:24

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@iitenki_moruten #Julia言語 このような場合には、ForwardDiff.jl よりもずっと高級な自動微分パッケージ Zygote.jl を使用することは、初回実行時の遅延の問題がひどく悪化するデメリットが大き過ぎると思いました。

タグ: Julia言語

posted at 05:24:19

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@iitenki_moruten #Julia言語 最適化では、メモリアロケーションの削減が結構重要です。この場合にはメモリを大して使わないのでそう気にする必要はないですが、大きめの計算時にGCが走りまくると悲惨なくらい計算が遅くなる。

@ timeの測定結果についてはアロケーションの数値に常に注意を払うのが極意のようです。

タグ: Julia言語

posted at 05:27:17

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@iitenki_moruten #Julia言語 しかし、グローバル変数を引数を経由させずに函数内(もしくはループ内)で使うことによって生じる型不安定性の害が一番です!

グローバル変数を丁寧に引数として渡すだけでめっちゃ速くなる!

タグ: Julia言語

posted at 05:29:22

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@iitenki_moruten #Julia言語 訂正

❌Forward.jlで置き換えた
⭕️ForwardDiff.jlで置き換えた

ForwardDiff.jlの仕組みは単純なので、挙動を読み易いです。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 05:36:35

黒木玄 Gen Kuroki @genkuroki

21年9月5日

大学の講義で、ピアジェによる子供の平均的認知能力の大幅な過小評価について否定的ではない紹介をしている講義を聴いた人は、どの大学の誰がそのような講義をしたか教えて下さい。

心理学ではなく、算数数学教育の講義でなら、そのようなまずいことが継続している可能性はかなりあると思います。 twitter.com/genkuroki/stat...

タグ:

posted at 05:43:27

もるてん @iitenki_moruten

21年9月5日

@genkuroki 丁寧にコメントしていただき本当にありがとうございます.
自分の方でも確認して取り入れてみます!

タグ:

posted at 07:32:38

すぎ餅 @sugimochi_1019

21年9月5日

Juliaはちゃんと制限があるのね
Python使ってるとこの辺適当になりがち pic.twitter.com/bE1VGaDQWP

タグ:

posted at 11:23:50

すぎ餅 @sugimochi_1019

21年9月5日

Int8, Int16, Int64, Int128と使えるサイズをデータ型として扱える

タグ:

posted at 11:28:27

すぎ餅 @sugimochi_1019

21年9月5日

あ、Juliaでもこれできる pic.twitter.com/2jZvEfC59P

タグ:

posted at 11:31:16

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 leapfrog版のMetropolis-Hastings法のコードを更新して、ポテンシャルが

 φ(x) = a(x² - 1)²

の場合のプロットを以下のように作成した。繰り返しは10⁵回。

左右対称な分布が得られるはずなのに 、a を大きくするとサンプルの分布が左右対称からずれる。

github.com/genkuroki/publ... twitter.com/genkuroki/stat... pic.twitter.com/raudkRDTjP

タグ: Julia言語

posted at 12:47:54

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#数楽 aが大きいほど10⁵回の更新で作ったサンプルの分布が左右対称からずれる理由は、「aを大きくすると、2つの山の間の道が確率的に細く長くるから」です。

パラメータ a を大きくすると山の間の移動が確率的に大変になる。

github.com/genkuroki/publ... pic.twitter.com/nhLuJq7bPW

タグ: 数楽

posted at 12:47:56

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#数楽 サンプルを作るための確率的な移動の様子をグラフにすると以下のようになります。

パラメータ a を大きくして行くと、同じ山に留まり続ける時間の幅が長くなって行きます。

期待通りのことが起こっているわけです。

github.com/genkuroki/publ... pic.twitter.com/b63UMTCyuM

タグ: 数楽

posted at 12:47:59

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@musorami @temmusu_n 以下のリンク先のAのような考え方(ただし一発で答えを出すのではなく、試行錯誤を含む(これ大事))から入る方が、真っ当で楽に割合がらみの概念を理解できると思う。

このスレッドの上の方が紹介した割合の教え方には、以下のリンク先のB, Cのようになってもらいたくない思いが込められている。続く twitter.com/k_migaki/statu...

タグ:

posted at 12:58:26

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@musorami @temmusu_n 上の方のスレッドで紹介した割合の教え方はこれ。

基本ルールは

* 一発や二発で答えを出す必要はない。
* 現在得られている情報から分かることを書いて行けばよい。
* 答えに近付いているかも常に確認。
* 図を描くのは非常によいこと。

「一発や二発で答えを出す必要はない」が最重要ポイント。 twitter.com/genkuroki/stat... pic.twitter.com/FaFmPAX4s1

タグ:

posted at 13:03:37

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@musorami @temmusu_n 経験を積んでいれば、数学がらみの問題は一発や二発で解けなくてもよくて、分かることをどんどん書いて行って、情報を増やしながら考えることが普通だと知っている。

ところが、「式   答え 」の形式に毒されてしまうと、「余計なことを書きたくない」と子供が思うようになってしまって詰む。

タグ:

posted at 13:06:43

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@musorami @temmusu_n 子供の立場では「周囲の子と違うことは書き難い」だとか、「先生にダメだと言われるかもしれない」と不安になるようなスタイルこそ、算数(および数学)を楽に理解するコツになってしまっている。

「式   答え 」の形式で子供を縛る教え方を日本は一体いつから続けているのだろうか?

大問題‼️

タグ:

posted at 13:10:54

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@musorami @temmusu_n 算数を楽に理解するコツを小学校6年間ずっと教えてくれれば親切なのに、算数の教科書も含めて主要な教材のすべてが、

 算数を苦労して理解できなくなるコツ

を子供の心に植え付ける方針で編集執筆されているように見える。

特に算数が苦手な子は理解への楽な道が閉ざされて非常にかわいそう。

タグ:

posted at 13:15:40

天むす名古屋 Temmus @temmusu_n

21年9月5日

@genkuroki @musorami #超算数 すぐには【一体いつから】に答えられないのですが、1932年にはすでに式と答えという形式は固まっていました(画像1)。広島高等師範学校教官の山本孫一さんが掛け順に加え【…問題に表はれてゐない数を無条件で使用してはならぬものとして指導すること】などとtwitter.com/temmusu_n/stat...(画像2)。 pic.twitter.com/x2p4KPwYMt

タグ: 超算数

posted at 13:19:49

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@musorami @temmusu_n チョー算数対策のためにはもう1つのルールも必要だった。

* たし算、ひき算、かけ算、わり算の式を書く必要はない。

例→添付画像

標準的な算数教育の中心的教義では「場面や考え方を忠実に表現する式」という狼藉之義也な概念がど真ん中に居座っており、子供の心をそこから自由にする必要がある。 twitter.com/genkuroki/stat... pic.twitter.com/RsknZYXl2A

タグ:

posted at 13:23:17

TN @tomoak1n

21年9月5日

@temmusu_n @genkuroki @musorami 同時すでに「古来の規約」!
3.14は「公認せられている数」!

タグ:

posted at 13:31:57

天むす名古屋 Temmus @temmusu_n

21年9月5日

@tomoak1n @genkuroki @musorami すごいですよね。「公認」の方は新明解国語辞典が【
官庁や公共団体が正式に△認定(認可)すること。〔周囲の人びとから暗黙の間に認められる意にも用いられる。例、「二人は―の間柄だ」〕
】と定義しているので、後の方の意味が昔は今より盛んだったのかもしれません。

タグ:

posted at 13:41:02

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@temmusu_n @musorami やはり、算数教育界は100年前からずっと酷かった。

dl.ndl.go.jp/info:ndljp/pid...
書換へられた応用問題取扱の系統的実案
山本孫一 著
目黒書店
昭和3 (1928)

教師が許可した数しか使ってはいけないという教え方が子供の心を殺す。子供が心の中でどう考えたかを重視しないことは、教育的に問題ありすぎ。 pic.twitter.com/yZ95M7EwET

タグ:

posted at 13:54:33

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@temmusu_n @musorami 「立式」という用語は普通の国語辞典に載っていないような特殊な用語。

特殊でかつ教育的に極めて有害な用語であることは、1928年の文献を見ても分かる。

「立式」という言葉と概念を算数数学教育の現場で使うことは厳密に禁止されるべきだと思います。 pic.twitter.com/EVcTVMAHCy

タグ:

posted at 13:57:36

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@temmusu_n @tomoak1n @musorami これは、1928年の段階でのものすごくひどいことが書かれた文献。天むすさんが大発見していたのに今まで見逃していた!

dl.ndl.go.jp/info:ndljp/pid... pic.twitter.com/5LcNfGdnDn

タグ:

posted at 14:01:12

24ざっきー @zacky_ky_

21年9月5日

#CEED6th
julia使い羨ましい

タグ: CEED6th

posted at 14:04:14

TN @tomoak1n

21年9月5日

@genkuroki @temmusu_n @musorami 同書三三二頁

「児童の立てる式といふのは、…他人に判り易く書き表した等式」 pic.twitter.com/cqNpp1ttzl

タグ:

posted at 14:06:20

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#超算数 「立式」という言葉を単に「問題を解くために使える式を作ること」という意味だと誤解して、安易に「立式」という用語を使う人達がいなくなって欲しいので解説。

添付画像は1928年の100年近く前の文献より。

【立式上の要件】に注目!これがひどい。

dl.ndl.go.jp/info:ndljp/pid... twitter.com/genkuroki/stat... pic.twitter.com/pa0tM1NvQE

タグ: 超算数

posted at 14:06:34

黒木玄 Gen Kuroki @genkuroki

21年9月5日

引用【立式上の要件——名数無名数の関係に就ては古来の規約に基き式の意味に立脚して正しく指導せねばならぬことは勿論である。】

これ、チョー算数のエッセンスが凝縮されまくっていてすごいです!約100年前からこうだった。 pic.twitter.com/noBZwBTv49

タグ:

posted at 14:16:44

黒木玄 Gen Kuroki @genkuroki

21年9月5日

【名数無名数の関係に就て】の【古来の規約】とか【式の意味に立脚】は

3×4個

とは書かずに、

4個×3

と書くべきであることを意味しています。【名数】は4個のように助数詞(や単位)がついた数を意味します。

かけ算順序問題は1928年には確固たるものになっている。 pic.twitter.com/A2g0nncAoc

タグ:

posted at 14:16:46

天むす名古屋 Temmus @temmusu_n

21年9月5日

@tomoak1n @genkuroki @musorami #超算数 これも重要な定義ですね。【児童の立てる式といふのは、…解題上の経路−−解題の順序を…従来の数学上の規約によって、他人に判り易く書き表した等式のこと】(山本 1928:332)というのは、敗戦すぐの文部省の文章にも目標として現れるくらいtwitter.com/temmusu_n/stat...強固な理念です。

タグ: 超算数

posted at 14:17:24

黒木玄 Gen Kuroki @genkuroki

21年9月5日

引用【其の他の要件として、第一に、問題に表われていない数を無条件で使用してはならぬものとして指導すること。】

これも現代の算数教育で普通に行われているひどい教え方です。

教師が許可した数以外は無断で使ってはいけないかのように子供に思わせることになります。 pic.twitter.com/eAf3z20evf

タグ:

posted at 14:23:39

黒木玄 Gen Kuroki @genkuroki

21年9月5日

通常の常識的立場は

* 理解していれば、どんな数も自由に用いて良い。
* 相手が質問して来たら丁寧に答える。
* 相手の知識に応じて適切な詳しさで説明する。

などです。

❌教師にどのような数を使って良いかを決める権限を与える。

は非常識で教育的にも論外に有害です。

タグ:

posted at 14:23:40

天むす名古屋 Temmus @temmusu_n

21年9月5日

@tomoak1n @genkuroki @musorami #超算数 1946年9月の日付をもつ「小学校教科課程表」に算数の目標の一つが【思考の経過が正確簡潔に表現できるやうに仕向ける】ことと規定されています。経過には始点と終点があるわけで、式による解答は問題文の状況を忠実に写しとることから始まるとも読めます(実際そういう理解で70年が経過)。 pic.twitter.com/ZK4y8LTD0H

タグ: 超算数

posted at 14:25:53

黒木玄 Gen Kuroki @genkuroki

21年9月5日

【問題に表われていない数を無条件で使用してはならぬ】というルールと、教師にそのルールを緩める権限を持たせることの組み合わせは、非論理的で不合理な恣意的な運用に対する歯止めが全くなく、現実に多くの子供を傷付けています。

そういうことを100年近く前からやっているわけ。 pic.twitter.com/b5J9C3pozK

タグ:

posted at 14:26:54

黒木玄 Gen Kuroki @genkuroki

21年9月5日

このように【立式】という普通の国語辞典に載っていない特殊な専門用語の意味には、1928年の時点で、かけ算順序固定強制指導をすることや、どのような数を使って良いかを決める権限を教師に与えることを含んでいます。

気軽に使ってはいけない用語であることは明らかだと思います。 pic.twitter.com/0DrTDIlxjV

タグ:

posted at 14:30:25

SwordOne @twinklepoker

21年9月5日

0.785がなんのことがしばらくわからなかったが、π/4のことか twitter.com/genkuroki/stat...

タグ:

posted at 14:33:22

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@temmusu_n @tomoak1n @musorami #超算数 子供ものせれば自分の考えをしゃべくりまくりますよね。わざわざ、「しき」だけを書かせて、何かを説明させたことになるかのような態度は、しゃべくりまくるヒトの本性から見ても滅茶苦茶なことをやっていると思います。

算数教育に限って、式の使い方が特殊でトンデモないものになっている。

タグ: 超算数

posted at 14:34:58

天むす名古屋 Temmus @temmusu_n

21年9月5日

@tomoak1n @genkuroki @musorami #超算数 twitter.com/temmusu_n/stat...のとおり、1951年指導要領の算数部分の執筆者は【式はものをいっている】とか【わたしたちは式をみると、その式を書いた人の考えがわかります。】と公言。あたかも子供自身はものをいうことができず、式を代理として発言することしかできないかのようだった。

タグ: 超算数

posted at 14:39:15

天むす名古屋 Temmus @temmusu_n

21年9月5日

@genkuroki @tomoak1n @musorami #超算数 ループしちゃいますが、子供にしゃべらせないで式にものをいわせる方針についてツイートしたところですtwitter.com/temmusu_n/stat...

タグ: 超算数

posted at 14:41:04

黒木玄 Gen Kuroki @genkuroki

21年9月5日

この指摘を見て楽しめる人は多いと思うのでこちらからもリンクをはっておく。

引用【円に就ての3.14及び0.785の如き公認せられている数は使用してよいということを知らせるのである。】

【0.785の如き】は【公認せられている数】なので使用してよいそうです(1928年)。

wwwwwww twitter.com/twinklepoker/s... pic.twitter.com/qJV00zm9B5

タグ:

posted at 14:42:00

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@temmusu_n @tomoak1n @musorami 私は、ある人の発表に「式だけを示されても分からないので、もっと詳しく説明してください」と言った数学者を見たことがあります。

数学しかやっていないような人であっても、式だけで分かるわけじゃないです。

数学者にもできないことを子供に要求するのが算数教育界の伝統‼️wwwwww

タグ:

posted at 14:47:36

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 これは今までに見たことがない話の解説で面白いです。

Julia界では「エディタは何を使ってもよい」のように言う人が結構いて風通しがよいです。

REPLが便利で、Revise.jlが非常に強力なので、私もエディタは何でもよいと思います。

というわけで以下のリンク先の話は面白いです。 twitter.com/b17t1071z/stat...

タグ: Julia言語

posted at 14:54:57

天むす名古屋 Temmus @temmusu_n

21年9月5日

@genkuroki @tomoak1n @musorami #超算数 昔からひどいのはひどいんですが、山本孫一さんの記述だと、1928年時点では立式の本格導入は4年生からとも読めます。例えば、足し算の順序問題の発生可能性は相当低そう。戦後算数教育の特徴として、国際的に言語表現への要求 by ピアジェ が挙げられますtwitter.com/temmusu_n/stat...

タグ: 超算数

posted at 14:56:38

ロシュミット数 @B17T1071Z

21年9月5日

Revise.jl というのは知らなかった!
あとで試してみよう!! twitter.com/genkuroki/stat...

タグ:

posted at 15:02:07

ロシュミット数 @B17T1071Z

21年9月5日

@genkuroki まだ、Revise.jlを使っていないので、何とも言えないところではあるのですが、
REPLで
include("hoge.jl")
を実行するのとどのように違うのでしょうか?

タグ:

posted at 15:06:02

kaz-p @kazp1972

21年9月5日

@yoshi_and_aki スタンフォードPh.D.も忘れてはいけませんね。

タグ:

posted at 15:07:19

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

添付画像① big(2)でもbig"2"でもOK.

添付画像② big(0.3)の精度は低過ぎるので、big"0.3" を使うべき。 twitter.com/sugimochi_1019... pic.twitter.com/8Ps0d46qyq

タグ: Julia言語

posted at 15:09:15

ごまふあざらし(GomahuAzaras @MathSorcerer

21年9月5日

ほーーーーーーん。

②の方知らなかった。。。 twitter.com/genkuroki/stat...

タグ:

posted at 15:10:25

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@B17T1071Z #Julia言語

julia> using Revise
julia> includet("hoge.jl") # includetの最後のtが重要

としておくと、hoge.jl の任意のエディタによる編集結果が自動的にREPLに反映されるようになります。

これを経験するとRevise.jlを使うことをやめられなくなります。😁

タグ: Julia言語

posted at 15:12:53

ロシュミット数 @B17T1071Z

21年9月5日

@genkuroki なるほど!
勝手に反映されるんですね!!

それは便利すぎる...🤤

タグ:

posted at 15:20:58

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@B17T1071Z #Julia言語 実際の使用例。

f() = println("Hello, Julia!")

という内容の hoge.jl を

f() = println("Hello, Revise.jl")

に書き直しただけで、REPLでの f() の実行内容が自動的に変わります! pic.twitter.com/jNOO5ZrjzL

タグ: Julia言語

posted at 15:21:22

ロシュミット数 @B17T1071Z

21年9月5日

これはもっと早くに知っておきたかった...!

これで、プログラム編集→REPL実行の流れが完全に自動化される......!! twitter.com/genkuroki/stat...

タグ:

posted at 15:23:24

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

Juliaでの整数のパースの結果はこうなる。

1234567890123456789 # Int64
12345678901234567890 # Int128

123456789012345678901234567890123456789 # Int128
1234567890123456789012345678901234567890 # BigInt pic.twitter.com/3EMaINu5ns

タグ: Julia言語

posted at 15:35:33

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

最適化のときには明示的にアロケーションが生じないような書き方に直すことになります。

例:

A = randn(10^8)

sum(A.^2) # A.^2 でアロケーション発生

square(x) = x^2
sum(square, A)

B = A[2:end-1] # アロケーション発生

B = @ view A[2:end-1]

別の例に続く twitter.com/fortran2008/st... pic.twitter.com/UZMeaGdXPr

タグ: Julia言語

posted at 15:45:03

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 アロケーション削減の例

以下のリンク先スレッドでは

4.00 M allocations: 366.211 MiB, 5.79% gc time

のアロケーションが発生する計算のアロケーションを

ゼロ

にしています。

github.com/genkuroki/publ...

の内容を理解すればアロケーション削減法の大きなヒントが得られるはずです。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 15:50:21

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 では函数の引数の型を宣言したりせずに(もしくは緩めの宣言をしておいて)、函数に与えられた引数の具象型(=typeofで表示される型)が適切に他の変数に伝搬するようにコードを書くことが、計算速度が重要な場合の基本になります。(計算速度が重要でない多くの場面でその原則は無視される)

タグ: Julia言語

posted at 15:55:15

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 Juliaがどのように引数の型を伝搬させているかについては、@ code_warntype や @ code_typed で確認できます。計算速度が重要な人は、最初に @ time と @ code_warntype の使い方を覚えることが必須(@ time でアロケーションの様子もわかります)。

タグ: Julia言語

posted at 15:57:23

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 型の伝搬が途中で曖昧になり分からなくなる場合であっても、Juliaは頑張って実行してくれます。この機能はJuliaをお気楽に使うためにはとても重要。人間が型のことを常に考えるのはつらすぎる。

タグ: Julia言語

posted at 15:59:19

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 型伝搬がうまく行かないコードもJuliaはがんばって実行してくれるのですが、典型的な場合に計算速度は数十倍遅くなります。

@ time で確認すると、メモリアロケーションも大量発生していることを確認できる。

タグ: Julia言語

posted at 16:03:24

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 メモリアロケーションが計算内容から考えて多すぎる場合は、型伝搬がうまく行っていない場合です。

そういう疑いがある場合には @ code_warntype で型伝搬の様子を確認して、まずいところを発見して直すことになります。

タグ: Julia言語

posted at 16:03:25

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 初心者が最もやりがちな失敗は、グローバル変数を引数を経由せずに函数の中で使うこと。

Juliaのグローバル変数の型は決まっていないので、グローバル変数の部分で引数からの型伝搬は途切れることになる。

グローバル変数は函数に引数として渡すことによって使用することの徹底が必要。

タグ: Julia言語

posted at 16:06:19

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 「グローバル変数を全部constにしろ」という処方箋の提示をよく見るのですが、私は原則としてやめた方が良いと思っています。

constにすると型が固定され、ものすごく不便になります。

型を無用に固定すると、Juliaの多彩な型の世界の恩恵を受け取れなくなってしまいます。

タグ: Julia言語

posted at 16:12:18

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 constで肩が固定されたものの型を別のものに変更するためには、コードの書き直しだけではなく、juliaの再起動が必要になります。

試行錯誤の過程でそのようなワークフローは大変なストレスになります。

タグ: Julia言語

posted at 16:14:38

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 constを避けるのは簡単です。

複数の函数で共有される情報を函数に常に引数として渡すようにするだけ。

これがひどく面倒だと感じる理由は高等教育で有害なプログラミングスタイルを刷り込まれたからだと思います。世界中でそうなっている深刻な問題。

タグ: Julia言語

posted at 16:17:10

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 複数の函数で共有される情報を函数に常に引数として渡すことを楽に実行するためには、共有される情報を1つの変数にまとめればよいです。

具体的なサンプルコードが

github.com/genkuroki/publ...

にあります。

タグ: Julia言語

posted at 16:20:14

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

まとめ:グローバル変数の函数内での引数を経由しない参照を、「函数間で共有される情報を常に引数として渡す」というシンプルな方法で解決すると、計算速度が大幅に上がり、アロケーションも少なくなる。

タグ: Julia言語

posted at 16:22:31

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 ここからが、メモリアロケーション削減の本番になります。処方箋の概略は

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

にあります。基本は dot syntax の使用、view の使用、使い回しする作業領域を前もって用意しておき函数の中で使い回す、の3つです。

タグ: Julia言語

posted at 16:25:59

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 使い回す作業領域も、函数に引数として毎回渡すことになります。

これは非常に面倒そうに感じる人もいると思いますが、実際には、複数の函数で共有する情報を1つにまとめた変数の中に入れておけば良いだけなので、大して面倒ではありません。

タグ: Julia言語

posted at 16:28:12

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

以下のリンク先で紹介した

github.com/genkuroki/publ...

のmodule Revisedのコードでは、函数間で引き渡されるparameterに作業領域として使われる変数 p_ini, p_fin, x_ini, x_finが含まれています。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 16:31:45

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 もはやparameterは意味的にパラメータではなくなっているので、別の名前に書き換えるべきなのですが、そうなっていないことに注意してください。

github.com/genkuroki/publ...
の側日近いスタイルを採用し、アルゴリズムで使うデータをまちめたalg変数に作業領域はまとめて入れておくべき。

タグ: Julia言語

posted at 16:34:24

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 上ではメモリアロケーション削減の基本は

* dot syntax の使用
* view の使用
* 使い回しする作業領域を前もって用意しておき函数の中で使い回す

の3つだと書きましたが、

* メモリアロケーションが発生させないために使える函数を使う

も重要でした。

タグ: Julia言語

posted at 16:37:36

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 例えば、配列Aの各々の要素に函数fを作用させた結果の和は

sum(f.(A))

と書けるのですが、これだと f.(A) の段階でのアロケーションが発生するので、

sum(f, A)

と書く方が圧倒的に勝ります。他にも

maximum(f, A)
mean(f, A)

の類も便利です。

タグ: Julia言語

posted at 16:40:16

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 foo(函数, 配列)型の函数がある場合にはそれを使った方が得になる場合が多いです。

注意: forall(≥(0), A) (ここで ≥(0)(x) はxが0以上ならばtrueになる函数)よりも、forall(A .≥ 0) が多くの場合に勝ります。A .≥ 0はBitArrayになるのでメモリ使用量はそう大きくならないです。

タグ: Julia言語

posted at 16:44:19

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 にはfooという名前の函数に!をつけたfoo!という名前の函数があることがよくあります。アロケーションの削減では、前者を使って気軽に書いたコードを後者の!付きで書き直すことになります。

例えばループ内での A = rand(N) はそういう書き直しの対象になります。

タグ: Julia言語

posted at 16:53:41

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 ループ内の

A = rand(N)

は、前もって using Random しておき、ループの直前で

A = Vector{Float64}{undef, N)

しておき、

rand!(A)

と書き直されます。前もって用意しておいた作業用配列Aに乱数を書き込ませるようにしておけば、アロケーションの大量発生を防げます。

タグ: Julia言語

posted at 16:53:42

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 このスレッドを読んで、さらに公式ドキュメントの

docs.julialang.org/en/v1/manual/p...
Performance Tips

を読んで忠実に従えば、多くの場合にうまく行くと思います。私はずっとこの文書の存在を知らずにかなりの損をしました。

タグ: Julia言語

posted at 16:53:43

ハガネの連勤術師 @hgn_no_otaku

21年9月5日

見かけたので、見てきたが、これは酷い……

「わられる数」なる言葉を「覚えてね」って言ってるし、「右の数字の九九を使う」って言ってるし、最悪なのが24÷0=0って…

【小3 算数】  小3-6  わり算① youtu.be/-wbuOSAlpMY @YouTubeより pic.twitter.com/g4qMZYs63J

タグ:

posted at 16:55:56

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 訂正

github.com/genkuroki/publ...
❌の側日近いスタイルを採用し、アルゴリズムで使うデータをまちめたalg変数に作業領域はまとめて入れておくべき。

⭕️の側に近いスタイルを採用し、アルゴリズムで使うデータをまとめたalg変数に作業領域の変数もまとめて入れておくべき。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 16:59:38

のどかわ @thirsty_5959

21年9月5日

@bampaku 24÷0=0 は、素人目に見てもまずい気がします。

タグ:

posted at 17:01:48

ハガネの連勤術師 @hgn_no_otaku

21年9月5日

もう、突っ込みどころしかない。

「ものを分けるときによくつかう」って伝え方は絶対ダメでしょう。

タグ:

posted at 17:02:02

万博@盲学校マジック @bampaku

21年9月5日

@thirsty_5959 完全に間違いですし、うっかり計算間違いとかのレベルでもないですからね。

タグ:

posted at 17:02:25

ハガネの連勤術師 @hgn_no_otaku

21年9月5日

この人、高校数学も動画上げてるけど、まともに高校レベルの数学を勉強したことないんじゃないの?

割れる場合と割れない場合とで場合分けするとか日常茶飯事なのに。

タグ:

posted at 17:09:30

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 楽をしながら、モデルのパラメータや前もって確保した作業領域を複数の函数間でどのように共有すればよいか、は最適化の作業を行うと現実の実践的な問題になります。

私がこれが良さそうだと思った処方箋は以下の通りです。続く

タグ: Julia言語

posted at 17:15:15

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 数学的な問題解決は、概ね「問題」「アルゴリズム」「実装」に分解される。

「問題」「アルゴリズム」のそれぞれ(場合によっては1つにまとめてしまう)で共有したいデータをそれぞれ1つの変数にまとめてしまう。

1つにまとめた変数を実装の実現である函数に毎回引数として渡す。

タグ: Julia言語

posted at 17:15:16

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 場合によっては、問題を記述するパラメータを詰め込んだ変数から、一部のパラメータを外に取り出して、別の変数にする場合がよいこともあります。

DifferentialEquations.jl のAPIは非常に参考になります。

タグ: Julia言語

posted at 17:17:21

でえもん @GreatDemon1701

21年9月5日

@genkuroki 3.14159を使うのはどうなんだ、とか、「2時間は何分あるか」という問題はどうするのか、という疑問。

タグ:

posted at 17:18:20

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

①問題を記述するパラメータ達を1つにまとめた変数を

prob = FooProblem(a, b, c)

のように作るFooProblem函数を用意しておく。

タグ: Julia言語

posted at 17:27:36

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

②その問題を解くアルゴリズムを決定するパラメータ群を1つにまとめた変数を

alg = FooAlgorithm(prob, r, s)

のように作れるようにしておく。algの中に作業領域として使う配列なども入れておき、複数の函数で共有します。

タグ: Julia言語

posted at 17:27:37

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

③問題を解法を実装した函数

solve(prob::FooProblem, alg::FooAlgorithm, param)

を書く。

タグ: Julia言語

posted at 17:27:38

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

④それらを

prob = FooProblem(10^3, 1.2, 3.4)
alg = FooAlgorithm(prob, 0.01, 10^5)
param = (5.6, 7.8)
sol = solve(prob, alg, param)

のように使用する。

タグ: Julia言語

posted at 17:27:39

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

⑤そのように書かれたコードは、問題を特徴付けるパラメータが何であるか、アルゴリズムで必要なパラメータや作業領域は何か、解法の実装の仕方をスムーズに読み取ることができるようになります。

cf. github.com/genkuroki/publ...

タグ: Julia言語

posted at 17:27:40

黒木玄 Gen Kuroki @genkuroki

21年9月5日

以上と正反対のやり方は、

❌モデルのパラメータ達をコード中にグローバル変数達としてベタ書きする。
❌そのようなグローバル変数達(多くの場合に結構沢山ある)を複数の函数で共有する。
❌問題記述とアルゴリズム記述と実装が分離されていない巨大な函数を書く。

これ、みんなやっていますよね。

タグ:

posted at 17:33:13

さなぎ君の兄-く @sanagi42ku

21年9月5日

へえ、π/4の概数が認知されてゐたのか。私は式を集約してから計算するのでπ/4の概数を考へたことがない。 twitter.com/genkuroki/stat...

タグ:

posted at 17:35:35

黒木玄 Gen Kuroki @genkuroki

21年9月5日

おそらく、「みんなやっている」上のようなスタイルで #Julia言語 のコードの最適化を行おうとすると、相当に大変なことになってしまう可能性があると思います。

DifferentialEquations.jl のような優れたスタイルをパクってしまうのが、すごく効率的だと思います。

タグ: Julia言語

posted at 17:36:05

TN @tomoak1n

21年9月5日

@GreatDemon1701 @genkuroki おそらく、2時間は何分は、「進むにつれ必要に応じて、不十進諸等数」を使って良いの対象。

円周率として3.14159等は尋常小学校ではやらせないの説。

タグ:

posted at 17:37:45

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語 1つの変数にまとめた情報をそこから取り出すにはどうすればよいか?

みんな使っているのは

using Parameters

nt = (a = 1, b = 2.0, c = "three", d = big(2)^100)
@ unpack d, b = nt

のスタイルです。structでも同様の使い方をできます。 pic.twitter.com/szwSUS2YGy

タグ: Julia言語

posted at 17:47:22

tanaka (モデルナ @Jeonjung1212

21年9月5日

もしかして研究者って研究成果を「門外不出の秘伝」みたいに隠していると思われている?

ちなみに基礎研究と知財(特許)はすこぶる相性が悪い事は知っていて損はないですよ。

タグ:

posted at 17:48:16

tanaka (モデルナ @Jeonjung1212

21年9月5日

基礎研究って、基本発見した事を公にして、「こんな事発見したんだけど、間違ってないかなー? 勘違いじゃないよねー?」みたいな形で、同業者から意見聞くんですよ。そうやって、発見の確度を高めていく集合知の手法が採られています。

なので、特許的な物とは相当に異なる。

タグ:

posted at 17:57:06

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

Julia v1.7以上では、Parameters.jlの

@ unpack a, c = foo

の代わりに、

(; a, c) = foo

を使えるようになって、サードパーティのパッケージに頼らずに情報の取り出しを便利に行えるようになります。

添付画像は少し前のnightly build pic.twitter.com/g7Q7xLuppl

タグ: Julia言語

posted at 18:06:37

(「・ω・)「ガオー @bicycle1885

21年9月5日

@ishogaki 「動く」の意図がちょっと分かりませんが、手元ではZen2でJuliaを使ってます。

タグ:

posted at 18:06:44

tanaka (モデルナ @Jeonjung1212

21年9月5日

アカデミアの研究者の世界って、どれだけ研究結果を「公表」したか、また他の研究者にどれだけ参考にされたかで評価されます。これは日本もアメリカも中国もみんな同じ。

(評価された研究者がマンハッタン計画みたいな特殊ミッションで集められる事あるかも知れんが笑)

タグ:

posted at 18:06:52

黒木玄 Gen Kuroki @genkuroki

21年9月5日

#Julia言語

Base.@ kwdef struct Foo
a = 1.0
b = 2
c = "three"
end

のように書くと、Fooのフィールドa,b,cの型がAny扱いになり、型の伝搬がうまく行かなくなります。

添付画像のように ConcreteStructs.jl の @ concrete マクロを使えばこの問題が解決されます。 pic.twitter.com/RkFhnRIjiI

タグ: Julia言語

posted at 18:09:11

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@tomoak1n @GreatDemon1701 結局、どの数なら使って良いかの決定が教師の裁量に任されてしまう点がすごくまずそうですよね。

タグ:

posted at 18:13:00

ほりたみゅ (mastodonも見てね) @Hyrodium

21年9月5日

古いCDドライブを分解してたんですが、直動カム、非線形ラック歯車、遊星歯車とか詰め込まれてて素晴らしかった pic.twitter.com/fY62AGLHvg

タグ:

posted at 18:14:21

黒木玄 Gen Kuroki @genkuroki

21年9月5日

多分、以上で、現在の私が良さそうだと思っているノウハウの話は概ねできたと思う。

注意:#Julia言語 自体とその使い方の発展はかなり速いので、これを書いてから数ヶ月後に以上を読む人は、時代遅れになっていないかどうかを念のために確認した方がよいです。

タグ:

posted at 18:16:23

でえもん @GreatDemon1701

21年9月5日

@genkuroki @tomoak1n 使っていいと言った、言わなかった、聞いていなかったとかのさらなる地獄が出現しそう。

タグ:

posted at 18:21:33

ほりたみゅ (mastodonも見てね) @Hyrodium

21年9月5日

トレー出し入れと読み取り部上げ下げが1モーターで実現できてるんですよ! pic.twitter.com/Q1rnMtlZbz

タグ:

posted at 18:24:18

天むす名古屋 Temmus @temmusu_n

21年9月5日

#超算数 葉一氏の「とある男が授業をしてみた」シリーズのうち割り算1。
割り算ではa÷bのbの掛け算の段を使うといいつつ、24÷0=で
【これ、掛け算の時と同じなんだけど、0が入っている割り算は絶対答えが0になります。】といって答えに0を書いているwww.youtube.com/watch?v=-wbuOS...。概要欄で誤りを認めた。 pic.twitter.com/irdoKNKOvm

タグ: 超算数

posted at 18:25:56

ほりたみゅ (mastodonも見てね) @Hyrodium

21年9月5日

非線形ラックは単純な円弧と直線の組み合わせではなく複雑な形になっててかなり変態的。トレーの出る瞬間の速度が連続になるように配慮してるっぽい pic.twitter.com/cW7cT7rHKt

タグ:

posted at 18:27:12

でえもん @GreatDemon1701

21年9月5日

@hgn_no_otaku @temmusu_n @YouTube 私は九々を覚えていなくてもできるからやってみようって引き算で説明しとるが‥
0は何回引いても減らないよね、で説明できるし。

タグ:

posted at 18:28:21

ほりたみゅ (mastodonも見てね) @Hyrodium

21年9月5日

要素部品の小型化や回転部品の削減によって変態的な機械的機構が減ってきている気がする。その意味で最近のものよりも古い電化製品の分解の方が楽しい

タグ:

posted at 18:33:33

天むす名古屋 Temmus @temmusu_n

21年9月5日

#超算数 【⑪は問題が間違っております。無視して解いていってください。】(概要欄)ですまないでしょ。正しい答えはなにか、どう考えればよいのか説明しないの?

タグ: 超算数

posted at 18:36:03

でえもん @GreatDemon1701

21年9月5日

@hgn_no_otaku @temmusu_n @YouTube 私も平方根の動画についてツイートしたけど、雑っていうレベルに留まらないんですね。いろいろ考えてあのような説明をしているという本人の動画もあるようですが、無理がありますね。練られている感じがしない。

タグ:

posted at 18:46:54

黒木玄 Gen Kuroki @genkuroki

21年9月5日

「とある男が授業をしてみた」が色々ひどい件。

引用【24÷0=0】😭

一応「問題が間違っております」とあるが、何が正しいかの説明はなくて、「無視して解いてください」になっている。

どうして動画自体を作り直さないのだろうか?

youtu.be/-wbuOSAlpMY twitter.com/temmusu_n/stat... pic.twitter.com/7T3Gvw025g

タグ:

posted at 19:03:25

鴎⊿ @futagososuu

21年9月5日

流石にこれは酷い twitter.com/genkuroki/stat...

タグ:

posted at 19:11:34

みむのメモ @mimu_memorandum

21年9月5日

他にもたくさんありそう… twitter.com/genkuroki/stat...

タグ:

posted at 19:11:46

avgvstvs @avg2001

21年9月5日

答えに0って書いている。撮影していたときに変だと思わなかったということか。 twitter.com/genkuroki/stat...

タグ:

posted at 19:13:29

Cure-Rice @curerice2014

21年9月5日

@genkuroki 詳しくありがとうござます。よく勉強してみたいと思います。

タグ:

posted at 19:17:53

黒木玄 Gen Kuroki @genkuroki

21年9月5日

@GreatDemon1701 @hgn_no_otaku @temmusu_n @YouTube アホな間違いも沢山している一方で、きらりと光る知性を感じさせる説明があれば、「雑だけど、ためになる」のような評価も可能になりますが、全体的に相当に苦しい。試験対策にならないことも自明。

どうしてこんなのがYouTubeで高く評価されることになったのか?誰か研究して欲しい。

タグ:

posted at 19:20:36

kitano@推しのサメ @kitano_blog

21年9月5日

Bayes Neural Networkの学習
1枚目: 通常のNeural Networkの学習
2枚目: Laplace近似
3枚目: Hamiltonian Monte Carlo(HMC)
4枚目: HMC+Gibbs sampler
#Julia言語 pic.twitter.com/qfEbpX2tby

タグ: Julia言語

posted at 19:25:25

十夜永Åソフィア @otomezachoginga

21年9月5日

子どもたちが無限大の意味合いを考える契機になってくれれば。。。 twitter.com/genkuroki/stat...

タグ:

posted at 19:29:12

天むす名古屋 Temmus @temmusu_n

21年9月5日

#超算数 葉一氏、「符号を変えた数」(もっと適切な用語ないのか???)という中学校数学の指導項目については、変に厳格な姿勢をみせていますtwitter.com/temmusu_n/stat...。「3より5大きい数」には8と答えてよいが、-4の符号を変えた数は+4にすべきと言っています。

タグ: 超算数

posted at 19:45:56

TN @tomoak1n

21年9月5日

@IshidaTsuyoshi @genkuroki 0×0=24くらいなら0=24なだけだからmod 24の世界ならそうなるかとしても、、、
24÷0=0
はもっと異世界で想像つかないですね。

タグ:

posted at 19:49:01

@kankichi57301 @kankichi57301

21年9月5日

@temmusu_n 符号付正数と符号なし正数のある世界(まれによくみる:絶対値がらみで) #超算数

タグ: 超算数

posted at 19:57:09

天むす名古屋 Temmus @temmusu_n

21年9月5日

@kankichi57301 絶対値は普通の数から符号を取り去った数です。
ていう例のやつですなあ。葉一さんも混乱してますけど、数学の対象は数字じゃなくて数なのに、数字に注目させるような人がおおっくって。

タグ:

posted at 20:04:30

でえもん @GreatDemon1701

21年9月5日

@genkuroki @hgn_no_otaku @temmusu_n @YouTube 私はほとんど経験ない(注)のだけど、教育実習生に何も言わずに授業させたのと大差ないのではと思っちゃいます。
(注)数学で教育実習に来た卒業生というのにほとんど出会っていないため。

タグ:

posted at 20:23:31

ばじる @alla__genovese

21年9月5日

とみやさんって物理とか機械学習とかJuliaの人か

タグ:

posted at 21:35:28

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

ごまふあざらし(GomahuAzaras @MathSorcerer

21年9月5日

@kado_judo0312 画像のサイズはHTMLタグの<img width=500 ….
な感じでできません?

タグ:

posted at 23:26:47

ごまふあざらし(GomahuAzaras @MathSorcerer

21年9月5日

@kado_judo0312 github.com/AtelierArith/z...

のソースがさんこうになるとおもいます。

タグ:

posted at 23:28:27

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

User

» More...

Tag

» More...

Recent

Archive

» More...

タグの編集

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

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

送信中

送信に失敗しました

タグを編集しました