黒木玄 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年08月13日(金)
@MathSorcerer 試していただきありがとうございます.
なるほど.そうすると,Juliaのバージョンがv.1.6.1というのも関係するのでしょうか.
ひとまず,自分の環境ではグラフが元のように出力できたので良しとしました.
時間を割いていただき本当にありがとうございました.
タグ:
posted at 00:02:14
#Julia言語 疎行列版では疎行列の作成に無駄にメモリが使用されて遅くなっていたの改善してみた。
オリジナル版での疎行列Hの作成
3.01 sec (4.66 k allocations: 6.718 GiB, 17.19% gc time)
改善3の場合
1.74 sec (859 allocations: 1.947 GiB, 20.36% gc time)
続く
github.com/genkuroki/publ... twitter.com/yujitach/statu...
タグ: Julia言語
posted at 00:15:01
#julialang
ここで問題です.添付画像ではメトロポリス法で生成した分布がガウス分布に合致しません.何が間違っているでしょう.
コードはリプ欄に.
(自分もわかってない) pic.twitter.com/btFLYZO7JE
タグ: julialang
posted at 00:20:05
#Julia言語 復習
これは LinearMaps.jl + LoopVectorizations.jl 版。
LinearMaps.jl + LoopVectorizations.jl が頑張ってくれて、ArnoldiMethod.partialschur での使用時の律速を小さくしてくれている。
全部で7秒だが、実質的にこれはArnoldiMethod.partialschurの実行時間。続く pic.twitter.com/itr4VMZ6Vr
タグ: Julia言語
posted at 00:23:16
#Julia言語 復習続き
これは対抗馬の疎行列版
欲しい疎行列の作成にメモリを6.7GBも使っている!
疎行列作成時間は3秒。
固有値も含めて全部で9秒かかっており、LinearMaps.jl + LoopVectorization.jl 版に負けている。
100万×100万の巨大疎行列作成時のメモリ使用量の削減が問題。
続く pic.twitter.com/3wiNoHo0SI
タグ: Julia言語
posted at 00:23:19
夫は、ある日突然倒れて、1年間入院して、色んな後遺症抱えた。当時小学校低学年息子3人いて、もし私が弁護士ではなく、何らかの理由で働けなければ、生活保護を受給したかもしれない。夫が弁護士ではなく、身体を使う職業だったら、職も失っていただろう。何が起きるかなんて、誰にもわからないんだよ
タグ:
posted at 00:30:37
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
#Julia言語 これが第一の改善案
⊗ = kron の代わりに kron! を使うようにした。
改善前: メモリ使用量 6.7GB、時間 3秒
改善案1:メモリ使用量 4.1GB、時間 2.5秒
この方法だと大きく改善できそうもない。
根本的に別の方法が必要。続く pic.twitter.com/IWjnFyekOr
タグ: Julia言語
posted at 00:59:54
#Julia言語 改善案2
spdiagmで一挙にサイズ2²⁰の巨大疎行列版Hを作成するようにした。
改善前: メモリ使用量 6.7GB、時間 3秒
改善案1:メモリ使用量 4.1GB、時間 2.5秒
改善案2:メモリ使用量 2.3GB、時間 2.1秒
続く pic.twitter.com/FxYR7OL8DA
タグ: Julia言語
posted at 00:59:56
#Julia言語 ここからがちょっと面白い。
改善案2の問題その1
spdiagmに与えるデータは、長さ2²⁰以下のVectorが21本。全部で百数十メガバイトのサイズ。
それなのに、疎行列を作るのに2.3GBもメモリを使っている。
spdiagmの実行時にメモリが大量に使われていることを確認できる。
↓ pic.twitter.com/7LbhoXqE7t
タグ: Julia言語
posted at 00:59:58
#Julia言語
改善案2の問題その2
添付画像① partialschurの実行時間が6秒から9秒に伸びてしまっている!
添付画像②の最下段の改善案2の疎行列の表示結果が、改善前(添付画像③)と違う!
partialschurで遅くなるにはこれが原因。
これは非常にまずい。 pic.twitter.com/fZ6nKrC6yP
タグ: Julia言語
posted at 01:00:01
#Julia言語 改善案3
spdiagmに与えるベクトルを疎ベクトルにした。
改善前: メモリ使用量 6.7GB、時間 3秒
改善案1:メモリ使用量 4.1GB、時間 2.5秒
改善案2:メモリ使用量 2.3GB、時間 2.1秒
改善案3:メモリ使用量 1.9GB、時間 1.7秒
個人的にはこの辺で手を打っても良いかなと思う。 pic.twitter.com/C7fFs4g9Ig
タグ: Julia言語
posted at 01:00:04
Gabriel D Weymouth @gabrielweymouth
Do you need a complicated moving mesh, a supercomputer, and a PhD to simulate a swimming shark? Nope.
Check out my blog post combining Lighthill's classic approach with modern computing to make this simple simulation which runs in seconds. twitter.com/JuliaLanguage/... pic.twitter.com/ofWdsf7tDX
タグ:
posted at 01:06:22
Gabriel D Weymouth @gabrielweymouth
Andhini's recent paper in @RSocPublishing used a similar approach to investigate the importance of fin sweep angle. (Full disclosure - she also had a PhD and supercomputer😅) twitter.com/RSocPublishing...
タグ:
posted at 01:12:28
@mtkharu3 @Z7Mv8pyqhdGNa5Y #超算数 あまりリンクリックがないので、説明する。学習指導要領解説という文書が発行されるようになって以来、執筆陣には1名のジャーナリスト枠がありました。これが今回なくなり、替わりに入ったのがベネッセの星千枝氏。星氏のweb.archive.org/web/2019082807...への批判。
タグ: 超算数
posted at 01:33:40
非公開
タグ:
posted at xx:xx:xx
@kado_judo0312 このエラーは論理積に対するエラーではなくて、if条件が整数になってしまっているエラーな気がします。bitも(1 << i)もInt64なので、bit & (1 << i)もInt64かと。
タグ:
posted at 02:13:15
非公開
タグ:
posted at xx:xx:xx
@kado_judo0312 ご認識の通りかと思います。C/C++と異なりJuliaだとif条件の中身がboolに変換されないので。
上のコードですが、
if bit & (1 << i) != 0
としてあげると想定の挙動になるでしょうか?
タグ:
posted at 02:32:45
非公開
タグ:
posted at xx:xx:xx
MIT's Intro to Compu @MITCompThinking
We are officially on Twitter! Interested in staying updated on MIT's Introduction to Computational Thinking course? Follow us here and check out the course website for the Spring 2021 instance of the course: computationalthinking.mit.edu #JuliaLang #MITCompThinking
posted at 03:56:35
MIT's Intro to Compu @MITCompThinking
You can also stay in contact with the courses instructors @AlanEdelmanMIT, @DavidPSanders, and @henrifdrake here on Twitter. #JuliaLang
タグ: JuliaLang
posted at 03:56:35
@MathSorcerer @iitenki_moruten #Julia言語 Plots.jlで非常に小さくプロットされてしまっていたトラブルの原因はおそらく古いGR.jlがインストールされていたことです。
github.com/JuliaPlots/Plo...
答えの見付け方
↓
私のツイログの検索は結構強力😊
↓
twilog.org/genkuroki/sear...
↓ twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 07:55:06
There are a few interesting Julia packages designed to get performance out of your code.
Since I don't use them all the time, I tend to forget sometimes they exist!
So here's an awesome-julia-performance repo to help me remember.
github.com/xiaodaigh/awes...
#julialang
タグ: julialang
posted at 08:36:40
@iitenki_moruten #数楽 #統計
❌exp(S_ini - S_pro) > rand()
⭕️S_ini / S_pro > rand()
❌の方で得られる分布は添付画像の通りです。
❌の方法は間違っているのではなく、正規分布とは違う分布のサンプルを生成している。
色々書いてあるソースファイル↓
github.com/genkuroki/publ... pic.twitter.com/pVvsp73bUM
posted at 09:00:43
これ問題自体は難しくないし、面白いわけでもないけど、公式や解法を覚えて対処してきた生徒には「見たこともない問題」でお手上げかもしれない。
そういうのをあぶりだす意味では良問。 twitter.com/ysmemoirs/stat...
タグ:
posted at 09:00:51
Σ(k=1~3)k^k など、「見たことないだろうが、分かっていれば易しい問題」は、時々出してみることにしている。
実際、Σk^2=n(n+1)(2n+1)/6 とかすらすらかけた生徒が、これが出来なくて、実はそもそもΣの意味を理解していなかったことが分かったことがある。
タグ:
posted at 09:03:36
あるある。30人とか40人相手に此れを発見して個別に対応するのはなかなか難しいのだけどこの手のチェックは欠かせない。話が続かないもの twitter.com/sekibunnteisuu...
タグ:
posted at 09:19:10
@iitenki_moruten @Ki_chi #Julia言語 マイ実装例
Juliaでは、函数に引数として函数を渡せることを使うと、物理的もしくは数学的な設定をそのままコードに翻訳できることが多いです。
github.com/genkuroki/publ... pic.twitter.com/VixWrAvEks
タグ: Julia言語
posted at 09:56:00
Dr. Chris Rackauckas @ChrisRackauckas
@evalparse github.com/tisztamo/Catwa... and
github.com/SciML/Prealloc... should probably be added.
Symbolics.jl is also a improve codegen tool too: symbolics.juliasymbolics.org/dev/tutorials/....
github.com/oxinabox/AutoP... is fun but more of an experiment.
タグ:
posted at 09:58:45
積分定数さんがまためちゃくちゃ怖い話をしている。
意味もわからず機械的な暗記で処理させられている子がかわいそ過ぎ。
算数の段階でそういうクセがついちゃうとその後は数学の時間は苦痛だけになってしまう。 twitter.com/sekibunnteisuu...
タグ:
posted at 10:00:44
@ChrisRackauckas I had forgotten AutoPreallocation.jl! And thanks for the others additions!!
タグ:
posted at 10:04:16
Juliaに限らず、引数として問題を確定させる情報をすべて受け取って、問題を解いた結果を返す函数を書くことは基本。
リンク先の例では、
ハミルトニアンHと
次の場所の候補を与える函数propと
仮の初期値x0と
繰り返しの回数N
を引数として受け取り、MH法の計算結果を返す函数を書いている。 twitter.com/genkuroki/stat...
タグ:
posted at 10:05:41
ごまふあざらし(GomahuAzaras @MathSorcerer
PGFPlotsX.jl - Plotting with LaTeX, directly from Julia | Kristoffer Car... youtu.be/XHJ-u7PgBs8 @YouTubeより
タグ:
posted at 10:16:15
難解
Link: アニメ「Sonny Boy」の『難解』プログラムの解説 - まめめも mametter.hatenablog.com/entry/2021/08/...
タグ:
posted at 10:18:47
@kado_judo0312 @Ki_chi 論理積と論理式の違いは把握してますでしょうか?
論理式の方から平たく言うと結果がBool(trueまたはfalse)となる式です。
論理積は演算子`&`または`&&`による演算で、`&`は整数のビットごとの論理積で結果は整数、`&&`は論理式の結果どうしの論理積です(実際には(後で))。(続
タグ:
posted at 10:27:46
@kado_judo0312 @Ki_chi Juliaの`if`の条件節に指定できるのは論理式です。
つまり結果が`true`か`false`になるものしか書けません。結果が整数になる整数ごとの論理積は書けません。でも「整数どうしの論理積の結果が0でないかどうか」という比較演算式は結果がBoolになる(つまり論理式である)ので指定できたわけです。(続
タグ:
posted at 10:28:13
@kado_judo0312 @Ki_chi なおJuliaの`&&`は正確には短絡評価論理積と言って、「左側がtrueの時に限って右側を評価する(右側Boolとは言ってない)」です。
Juliaのコードでよく見かける`《論理式》&& return`は`if 《論理式》 return end`と同じ意味になります。
タグ:
posted at 10:28:25
「線形」=「線型」=「linearの訳語」という習慣があります。
どちらでもよい。黒板に書くのは「線形」の方がちょっと楽なので段々増えて来たという印象がある。
文脈によってはlinearが「一次」になっている場合もある。例えば
「linearly independent」=「一次独立」=「線形独立」=「線型独立」 twitter.com/shuntarooo3/st...
タグ:
posted at 11:03:22
数学がらみの用語では、日常用語的な意味にこだわるとひどいことになる場合が多いです。
「用語自体はどーでもよい」
「用語の意味を解釈しても理解は深まらない」
「歴史的な由来もどーでもよい」
が正しく、
「定義に戻って正確に理解する以外にない」
と厳しく考える必要があります。
タグ:
posted at 11:03:23
例えば、統計学用語で likelihood という用語があって、「尤度」(ゆうど)と訳されているのですが、「尤度」の「尤」が「尤もらしさ」=「もっともらしさ」の「尤」でもとの英単語の意味もそれなので、「尤度」=「もっともらしさ」だと解釈するとひどい誤解になる(過剰適合の存在の無視に繋がる)。
タグ:
posted at 11:03:23
歴史的には、Fisherさんが「もっともらしさ」という意味を込めて、likelihoodという単語を専門用語として採用したのかもしれませんが、定義に忠実に尤度を見ると、数学的に「もっともらしさ」と解釈するとまずい性質を持っていることが比較的容易に確認できます。
タグ:
posted at 11:03:24
教科書でも「尤度」=「もっともらしさ」と解説してある場合もあるようですが、教科書に書いてあるという事実はそれが正しいことの証拠にはならない。
教科書に書いてあるから正しいだろうと判断することは権威に基く非科学的な判断であり、常に論理と証拠に基く理解によって判断する必要があります。
タグ:
posted at 11:03:25
@sekibunnteisuu sqrt(n)の小数点以下第一位を2つ増やす公式
sqrt(n)の小数点以下第一位を2つ減らす公式
上記2つの積を計算する公式
を教えるようになる悪寒
タグ:
posted at 11:13:37
尤度の定義は「モデルの確率分布内でデータと同じ数値が生成される確率(の密度)」です。
尤度は単にモデル内で現実世界で得たデータと同じ数値が生じる可能性の大きさを測っているに過ぎない。
尤度は「モデルのデータへの適合度」の指標にはなっています。多分、これが害のない広まるべき解釈。
タグ:
posted at 11:13:55
よく知られている教科書に、論理と証拠に基く理解によって正しいことを比較的容易に確認できることが書いてあるときに、「教科書を読め」とアドバイスすることは正しい。
それに対して、「教科書に書いてあるから」という理由で「正しい」と判断することは権威を根拠にする非科学的態度。 twitter.com/genkuroki/stat...
タグ:
posted at 11:20:38
統計的検定についての説明も多くの場合にひどいことになっている。
データをコンピュータに入力すると表示されるP値は、プログラムの形式で実現されたP値の数学的な定義に忠実に計算で出てきた値です。
その値をどのように使ってよいかは定義まで戻って考えないと絶対に分からない。続く twitter.com/genkuroki/stat...
タグ:
posted at 11:42:22
ところが、実際によく見る説明では、ケースバイケースでのP値の定義に戻って考えることが必要なことを述べずに、脚注などでNeyman-PearsonとFisherの思想的な違いに言及していたりする。
おそらく著者は知的な脚注を入れたと思っているのだろう。実際には全然そうではないのだが。
タグ:
posted at 11:42:22
本当に必要なことは、ケースバイケースでのP値の正確な定義とそこから導かれる数学的性質に基いて、その数値をどのように使ってよいか及びどのように使ってはいけないかについて、権威に頼らずに論理的に説明することです。
そこをぶっ飛ばして「主義」の話をするのは極めて有害。
タグ:
posted at 11:42:23
尤度の定義は「モデルの確率分布内でデータと同じ数値が生成される確率もしくは確率の密度」。
P値の定義は「モデルの確率分布内でデータ以上の偏りが生じる確率もしくはその近似値」。モデルは通常「帰無仮説のモデル化」で、「データ以上の偏り」の定義と「近似計算法」は別に指定する必要がある。 twitter.com/genkuroki/stat...
タグ:
posted at 12:04:54
よくある解説の権威的で「主義」を持ち出す態度はまともな高等教育においては全否定されるべき。
数学にある程度自信がある人達は、1つ前のツイートのP値や尤度の定義に戻って、それらの数値をどのように使えば有用でどのように使ってしまうと有害になってしまうかを自分で考えてみるとよいと思う。
タグ:
posted at 12:08:15
数学にある程度自信があっても、すべてに証明をつけて先に進むのはしんどすぎる場合が多いと思う。
そういう場合にはコンピュータの助けを借りた具体的な計算を実行して、「少なくともこの場合については○○と言える」という主張で済ませて先に進むのがよいと思う。
証明も勘違いでよく間違えます。
タグ:
posted at 12:11:11
超人になることを目指す必要はない。
目標は正直になること。
本当は「権威」や「主義」による判断なのに、そうとは認識できていない場合を洗い出して、「その点については正直よく分かっていなかった」と堂々と言えるようになることが目標。
人によっては何十年間も誤解している場合があると思う。
タグ:
posted at 12:38:54
#Julia言語 改善案4
疎行列の最も基本的なコンストラクタ sparse(I, J, V) を使うようにし、I, J, VでInt32, Int8を使用。大幅に改善!
改善前: メモリ使用量 6.7GB、時間 3秒
改善案3:メモリ使用量 1.9GB、時間 1.7秒
改善案4:メモリ使用量 0.44GB、時間 0.61秒
github.com/genkuroki/publ... pic.twitter.com/xI8I7wtekr
タグ: Julia言語
posted at 17:43:02
#Julia言語 LinearMaps.jl + LoopVectorization.jl + ArnoldiMethod.jl で7秒程度かかっていた計算が、疎行列を使う改善案4では7秒未満で計算できるようになりました。
疎行列が得られる方が多分ありがたいし、シングルスレッドですんでいる。コードも十分シンプル。
github.com/genkuroki/publ... pic.twitter.com/K2lUEW1Pyc
タグ: Julia言語
posted at 17:50:00
While working on internship tasks I've had to migrate from Python to Julia, work with huge datasets, and breakdown various in-built functions in popular libraries such as NumPy and Pandas to understand the underlying logic.
(1/2)
タグ:
posted at 18:21:00
It has made me realise that always depending on pre-defined functions is not wise in the long run
(2/2)
#MachineLearning #Python #JuliaLang
タグ: JuliaLang MachineLearning Python
posted at 18:21:34
DAIGOさん、結婚する前の北川景子さんに「私はあなたに素の自分を出してるのに、あなたは全然ありのままを見せてくれないのね」と言われて、そんなことないよと言っても信じてもらえず、結婚後に「ごめん、あなたずっと素だったのね…」と言われたエピソード大好き。たぶん、毎日あの感じなんだと思う twitter.com/korenkan/statu...
タグ:
posted at 18:28:05
Y siguiendo con #JuliaLang , a ver si alguien chequea qué tal va NNMF . github.com/JuliaStats/NMF... @gilbellosta @r_vaquerizo @kamromero ?
タグ: JuliaLang
posted at 18:58:16
En github.com/JuliaStats es dónde está alojado también MixedModels de Douglas Bates, que es el autor de lme4
タグ:
posted at 18:59:17
@genkuroki @Ki_chi 何人かの方から指摘があったように,作用の計算の部分を勘違いしていました.
黒木さんの言うように,私の実装では面白い分布ができてしまいます.
実装例なども示していただきありがとうございました!
タグ:
posted at 19:04:27
非公開
タグ:
posted at xx:xx:xx
Found this ODE group when I was learning how to solve ODE in Julia. Cutest ODEs ever.
#JuliaLang @JuliaLanguage pic.twitter.com/1XnSYKb7Qn
タグ: JuliaLang
posted at 20:30:36
@nothing_counter @owainkenway If you're interested in learning material about #JuliaLang, check out julialang.org/learning/, for books specifically see julialang.org/learning/books/ (in particular "Think Julia" and "Hands-on Design Patterns"). The @MITCompThinking course is also great: computationalthinking.mit.edu
タグ: JuliaLang
posted at 21:44:37
The state of multiple threading in DataFrames.jl www.juliabloggers.com/the-state-of-m... #juliabloggers
タグ: juliabloggers
posted at 21:50:05
非公開
タグ:
posted at xx:xx:xx
@kado_judo0312 添付画像は
ja.wikipedia.org/wiki/%E3%82%A2...
より。
Adrien-Marie Legendre (18 September 1752 – 9 January 1833) の肖像画‼️ pic.twitter.com/jF3xdUrFP4
タグ:
posted at 22:22:03
非公開
タグ:
posted at xx:xx:xx
今井翔太 / Shota Imai@える @ImAI_Eruel
無料公開の深層学習の教科書では,知名度,内容の充実度共にトップの『Dive into Deep Learning』ですが,今でもアップデートが続いており,現在はオープンソースで,ユーザー側からも内容を提案でき,まさに「みんなの教科書」となっている模様
目次の分量が凄いことになっている
github.com/d2l-ai/d2l-en pic.twitter.com/6g4c3cG0on
タグ:
posted at 22:42:34
この状況下で東京から地方へ帰省するのはっきりいって insane としか言いようがない。東京ですらもう茹でガエル状態で死ぬ一歩手前なのに、地方の相対的に貧弱な医療インフラでデルタ株に耐えられるわけがない。来年の盆の送り火はあなたの大切な家族や親族になるかもしれないんですよ。
タグ:
posted at 22:47:47
@kado_judo0312 既出のウィキペディアによれば【2005年までに凡そ2世紀もの間、ルジャンドルの肖像画はフランスの政治家であるルイ・ルジャンドル~の肖像画と間違われていた。 単純にルイ・ルジャンドルの肖像画に"ルジャンドル"と書かれてあったものを~数学者のルジャンドルであると判断してしまったのが~原因】
タグ:
posted at 22:59:07
@kado_judo0312 他の立派な肖像画は数学者ではなく政治家のルジャンドル。
こちらの肖像画のルジャンドルは「数学はロックだぜ!」とか言っていそう↓ pic.twitter.com/C8VFgqlhEu
タグ:
posted at 23:01:23