#Julia言語 を使っていて楽しいのは、ちょっとした最適化で爆速になる場合なのですが、function f(X::Vector{Float64}) ~ end のように引数の型を無駄に制限すると、@ view の追加による最適化でバグが発生して悩む。
初心者のうちは、必須でない引数の型宣言は書かない方が無難。書くとバグる。
posted at 21:03:30
Stats | Twitter歴 5,100日(2010/04/13より) |
ツイート数 315,589(61.8件/日) |
表示するツイート :
#Julia言語 を使っていて楽しいのは、ちょっとした最適化で爆速になる場合なのですが、function f(X::Vector{Float64}) ~ end のように引数の型を無駄に制限すると、@ view の追加による最適化でバグが発生して悩む。
初心者のうちは、必須でない引数の型宣言は書かない方が無難。書くとバグる。
posted at 21:03:30
#Julia言語 毎回 A[:, k] ではなく、view(A, :, k) と書くのはしんどいので、A[:, k] のように書いておいて必要に応じて @ view や @ views を追加すると便利。
函数を function f(X::Vector) ~ end と定義していると、f(A[:, k]) は動いても、f(@ view(A[:, k]))は動かなくなる。以前ハマった。 https://twitter.com/physics303/status/1416177528377466883…
posted at 20:59:44
Julia言語まだよくわかってないんだが,いろいろ試してみるに,
T = T[perm1, perm2]
みたいにするときはつねに
@ views T = T[perm1,pemr2]
にするだけで,めっちゃ早くなる.
Tが5000×5000のときは1000倍以上はやくなる.これって,新たにメモリの確保をやめてるんだよね?
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:54:56
X = T[3:8,3:8]
みたいに部分行列を取り出すのも
X = view(T, 3:8, 3:8)
ってやったほうがはるかに速い.
こういうjulia tipsをちゃんと頭に入れておきたい.
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:54:51
julia言語の多次元配列の書き方最高じゃない?教科書の演習問題を見たまんま入力して解けるんだが #julialang https://pic.twitter.com/YwSEE8bGx4
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:54:04
私は二度目を接種済みですが、日本社会全体に集団免疫ができたことを確認できるまで、今までの安全寄りの行動パターンを変えたくないと思っています。
posted at 20:51:28
皆さん見落としてるんですけど、まだ集団免疫獲得には流石に程遠いんですけど、周囲のワクチン接種が進んでるおかけで、もう自分は大丈夫と接種もしていないのに思い込んでる連中が出始めてるんですよ。
そして残念ながらこの傾向はこれから強まります。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:48:47
#Julia言語 一般に
begin
f(x)
g(y)
h(z)
end
の値は最後のh(z)と同じになります。
begin
plot(sin)
println("foo")
end
の値はprintln("foo")の返り値のnothingになります。(fooと表示されることは式の値とは関係ない。) https://twitter.com/yoshi9801/status/1416273141958017024…
posted at 20:47:44
【ちなみに
plot(sin)
plot(cos)
とかするとcosだけ表示される。】
状況をよく理解していないのですが、「評価した式の値がプロットオブジェクトなら画像を表示する」という仕様ならそうなります。
begin
plot(sin)
plot(cos)
end
を評価すると値はplot(cos)と同じになります。#Julia言語 https://twitter.com/yoshi9801/status/1416273141958017024…
posted at 20:43:57
ちなみに
plot(sin)
plot(cos)
とかするとcosだけ表示される。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:40:10
julia+vscodeでPlotsでグラフ表示がうまくできない件、だいぶ見えてきた。F5(やvscode右上のボタンなど)で実行するとなにをどうやってもグラフは表示されないが、Shift+Enterだと条件を満たせば表示される。その条件とはplot(sin)とかでグラフ表示したあとにprintlnとかを書かないこと。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:40:09
@haraitasan うちにも居ました… https://pic.twitter.com/JLWHmDlQVG
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:36:13
セミの季節になりましたね https://pic.twitter.com/jVkCKwLSxX
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:35:38
AlphaFold2で予測した構造は、活性部位付近の側鎖の配向もほぼ正解に限りなく近いレベルかなと思いました。画像だとちょっとよく伝わらないかもしれませんが。 https://pic.twitter.com/ON2r0ZLX1w
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:34:02
AlphaFold2 (left) とRoseTTAFold (right)でPDB:5GUEについて予測してみました。両者とも正解構造は知らない状態で予測しました(はず)。緑が予想構造で青が正解構造です。
RoseTTAFoldの正解構造からのずれを表すRMSD値は1.474Åでしたが、AlphaFold2は0.362Åでした。圧倒的精度! https://pic.twitter.com/M4JQ6H0YED
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:33:44
ジャスミン男(非ハム式) 🕊️PEACE@konmarihj
Blague de tontonともblague de beaufともいうけど、どれもおっさん。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:30:22
ジャスミン男(非ハム式) 🕊️PEACE@konmarihj
フランス語でもblague de papa… https://twitter.com/popeetheclown/status/1416230895569313793…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:30:15
そうなんです
で、この家族写真を見ると更にお父さんの悲哀が身にしみる... https://twitter.com/popeetheclown/status/1416230895569313793… https://pic.twitter.com/beBVbXbFg9
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:29:59
🇨🇦 ビジネス英語*Culture and Career by Harumi@Idioms4B
@popeetheclown Dads are universally dorky.
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:29:35
日本語の「オヤジギャグ」に対応する英語表現が "dad joke" であると聞いたとき、異なる言語圏に普遍的に存在する概念を知った。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:29:32
自分も当初は手術可能な癌だったのに近藤誠の30分3万2000円のセカンドオピニオン外来なるところで「ガンモドキなので治療しなくていいですよ」と言われ、結果全身転移して根治療法不能になった患者さんを2人担当しました。そんな近藤誠に専門外のワクチンを語らせる女性週刊セブンの良識を疑います。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:26:42
#統計 実際、左右の対称性が大きく崩れた確率分布については、中心極限定理の収束が遅くなり、中心極限定理が効いてくれば誤差が小さくなる状況であっても誤差が小さくならない可能性があります。
「正規分布を仮定してよいのか?」はシンプルにYes/Noと答えられる問題ではありません。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:12:49
#統計 だから、未知の分布が正規分布でなくても、正規分布モデルを使った仮説検定や信頼区間を使って大丈夫な場合があります。
このように言うと安心する人がいると思いますが、個人的には安心して欲しくないと思っています。
少なくとも、具体例を挙げられない人は安心するべきではない。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:12:43
#統計 中心極限定理が効いてくれば誤差が十分小さくなるような状況での正規分布モデルの使用は、データを生成したと想定している未知の分布が正規分布から結構離れていても誤差が実用レベルまで小さくなることもあります。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:12:38
#統計 現実には「P値や信頼区間の計算で正規分布を仮定して良いのですか?」について十分に考察したことがない人達が、正規分布モデルを使った仮説検定や信頼区間を用いて論文を書いていたり、さらにひどい場合には他人の論文の査読者をやっていたりする。
現実はかなりひどいことになっている。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:12:32
#統計 上のような一般化された言い方をするとピンと来ない人であっても、大学で統計学の講義を受講した人に
P値や信頼区間の計算で正規分布を仮定して良いんですか?
と質問したとき、どれだけの人が質問に答えられるか、と言えば、「これは自分自身の問題だ」と理解できる人が増えると思います。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:12:21
#統計 信頼区間が扱う「パラメータの真の値」はモデル内パラメータ値に過ぎず、95%信頼区間の意味での95%はモデル内確率に過ぎないことを、大学教育でまともに教えていないことはおそらく世界的な高等教育の問題です。P値についても同じことを言えます。 https://twitter.com/genkuroki/status/1416067870518222853…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:12:18
#統計 モデルM(θ)とデータDから得られる信頼区間の1つの定義の仕方は「モデルM(θ)のデータDに関するP値がα以上になるパラメータθ全体の集合」です。
この定義の仕方で書かれた売れている教科書に久保川達也著『現代数理統計学の基礎』があります。p.169の最終行の信頼区間C(X)の式を参照。 https://twitter.com/genkuroki/status/1416067870518222853…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:11:55
@BluesNoNo 「教科書で触れているのではないかと想像しています」は常識に基く穏健な想定だと思います。しかし、現実は甘くないです。
具体的には東京大学教養学部統計学教室編『統計学入門』の説明は全般的にひどいと思います。この本を普通の学生が読んで基本的な事柄をまともに理解できるはずがない。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:08:33
@BluesNoNo 「教科書で触れているのではないかと想像しています」は常識に基く穏健な想定だと思います。しかし、現実は甘くないです。
具体的には東京大学教養学部統計学教室編『統計学入門』の説明は全般的にひどいと思います。この本を普通の学生が読んで基本的な事柄をまともに理解できるはずがない。
posted at 20:08:28
『入門 現代の量子力学 量子情報・量子測定を中心として』、気になるところを読んでみた感じ、僕がきっとこういうことだろうと理解していたことが明確に書かれていて安心したり、逆にいくつかの記述は僕のこれまでの理解には無かった内容だったりして、とても新鮮だった。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:32:18
教員のときにこういう指導をしていたという自画自賛ですね。小学生の頃こういう教師に当たってしまい、三者面談の時に書道を習わされることになりました。字を書くこと自体が嫌いになってしまったので、金と時間の無駄になっただけでした。授業内容を理解していなくてもノートが綺麗なら褒められる謎。 https://twitter.com/sekibunnteisuu/status/1416181698140676097…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:25:35
@sekibunnteisuu 字が綺麗に書けるようになったのなら、その観点では良い先生かもしれないけれど、だいたいにおいてこういう方の指導の結果綺麗に書けるようになったという話を聞いたことがない。
だって、おれ、字汚いもん。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:25:27
なぜこれが「良い先生」なんだろうか? https://twitter.com/GloriaSpring3/status/1415923041314377730… https://pic.twitter.com/OgmwHKTkVV
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:25:20
@kotoi1205 最後の「とりもどす」の濁点漏れ以外は全部言い掛かりでは?子供のやる気が削がれるからやめて欲しいですね。
あと人様の子供に対しては細かい事に難癖つけまくってる割に当人の「-5」の字形が雑なのは平気なようだし。こんな自分に甘く他罰的な教師は害悪なので子供に関わってほしくないですね…。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:24:51
@01r08r08k すんごいんですよ。
算数のテストも字の払いの角度が違うから減点。
消し跡残っているから減点。
字が汚ければ減点。
答えが合っていても字が2箇所以上汚ければ❌なんですわ。
本人なりに丁寧を心がけて一生懸命練習しているんですけどね。
努力が報われない経験しかできないです。 https://pic.twitter.com/dyJGui0KgD
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:24:40
やー、
すんごい点数のテストが返ってきた。
100点満点中50点だわ。 https://pic.twitter.com/TYM4xUZKXA
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:24:10
記事書いた:AlphaFold (ver.2) インストール https://qiita.com/Ag_smith/items/7c76438906b3f665af38…
事前に色々知っておくと良いTIPSを入れました
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:21:41
MSAが0個のようなde novoタンパク質についての構造予測ですとスクリプトを書き換えればMSA取得をすっとばせるので、最後のAlphaFold2本体の推論だけで予測構造を計算可能みたいです。Google colabがTPUも使えるなら、2分で予測モデリング完了というのも本当っぽいですね。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:19:59
計算時間129分のうちhhblitsによるMSA取得が116分、最後のAlphaFold2本体による構造推論部分が13分でしたので、"GPUなしの計算機"でも気長に待てば現実的な範囲内で終わりそうです。
ただいずれにしろそこそこ新しいCPUと最低32GBのRAMはほしいところです。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:19:52
ちなみにやっぱりDockerfileで指定しているTensorflowとcudaの相性がよくなかったみたいでした。修正パッチ作ってGitHubにPRしとこ。
計算所要時間はこの某350〜400アミノ酸のタンパク質に対して私のマシン(Ryzen9 5900X, RTX3090, HDD8TB)で2時間9分でした。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:19:42
やりました!!AlphaFold2の完全動作完了です!!!!
……そして……恐ろしいことに……未発表の結晶構造データで試してみたのに予測構造が実験結果と寸分の狂いなく本当に一致している……(画像なし)
同日発表のRoseTTAFoldさんはそこそこ外してたのに https://pic.twitter.com/vbf22bs0rp
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:19:38
#統計 実際、左右の対称性が大きく崩れた確率分布については、中心極限定理の収束が遅くなり、中心極限定理が効いてくれば誤差が小さくなる状況であっても誤差が小さくならない可能性があります。
「正規分布を仮定してよいのか?」はシンプルにYes/Noと答えられる問題ではありません。
posted at 14:16:08
#統計 だから、未知の分布が正規分布でなくても、正規分布モデルを使った仮説検定や信頼区間を使って大丈夫な場合があります。
このように言うと安心する人がいると思いますが、個人的には安心して欲しくないと思っています。
少なくとも、具体例を挙げられない人は安心するべきではない。
posted at 14:11:20
#統計 中心極限定理が効いてくれば誤差が十分小さくなるような状況での正規分布モデルの使用は、データを生成したと想定している未知の分布が正規分布から結構離れていても誤差が実用レベルまで小さくなることもあります。
posted at 14:11:20
#統計 現実には「P値や信頼区間の計算で正規分布を仮定して良いのですか?」について十分に考察したことがない人達が、正規分布モデルを使った仮説検定や信頼区間を用いて論文を書いていたり、さらにひどい場合には他人の論文の査読者をやっていたりする。
現実はかなりひどいことになっている。
posted at 14:05:47
#統計 上のような一般化された言い方をするとピンと来ない人であっても、大学で統計学の講義を受講した人に
P値や信頼区間の計算で正規分布を仮定して良いんですか?
と質問したとき、どれだけの人が質問に答えられるか、と言えば、「これは自分自身の問題だ」と理解できる人が増えると思います。
posted at 14:01:40
#統計 信頼区間が扱う「パラメータの真の値」はモデル内パラメータ値に過ぎず、95%信頼区間の意味での95%はモデル内確率に過ぎないことを、大学教育でまともに教えていないことはおそらく世界的な高等教育の問題です。P値についても同じことを言えます。 https://twitter.com/genkuroki/status/1416067870518222853…
posted at 14:01:39
ごまふあざらし(GomahuAzarashi)@MathSorcerer
#Julia言語
https://github.com/JuliaLang/julia/pull/41612…
using 云々する時の内訳時間を計測するマクロが開発中の模様
Retweeted by 黒木玄 Gen Kuroki
retweeted at 07:33:42
#Julia言語 訂正:信頼区間函数は1行ではなく、2行だった。
以下の例は2×2の分割表のFisher検定に付随する信頼区間の計算。
丸の面積がモデル内確率に比例。
https://nbviewer.jupyter.org/gist/genkuroki/f7f13aba4e32065cef8f024df49a7f67… https://pic.twitter.com/oYD6pueRz2
posted at 06:14:35
#Julia言語 では、P値函数と信頼区間函数をそれぞれ1行で実装できる場合がある。以下のリンク先は二項分布モデルの場合。 https://twitter.com/genkuroki/status/1371793783109521410…
posted at 06:09:42
p(x), C(x)はそれぞれ、p(x, θ)、C(x, α, p)のように書く必要がある。
信頼区間C(x, α, p)はデータxと有意水準αだけではなく、その定義よりP値函数pの取り方にも依存する。
posted at 06:06:16
本の抜粋を見ても、P値や信頼区間を計算する函数を自分で書くとよい理由がわかる。P値をp(x)と、信頼区間をC(x)と書くと、それらがデータxの関数であることは分かるが、モデルのパラメータθやαが式の中から消えてしまう。
コンピュータの函数を書くときには、そのような省略は自然に許されなくなる。
posted at 06:02:52
数学が十分強ければ、統計学の考え方だけを学んで、数学的に正確な定義の構成は自分でやった方が速い可能性もある。私もP値や信頼区間は自分で定義した。そして結果的に教科書に書いてあるものと同じだった。適切な定義に選択肢がほとんどないことはよくある。
posted at 05:59:04
Stefan Karpinski@StefanKarpinski
YESS https://twitter.com/jjrennie/status/1415731340620615682…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 05:50:25
Scientific programming these days https://pic.twitter.com/A5oXjSh7zH
Retweeted by 黒木玄 Gen Kuroki
retweeted at 05:50:14
#統計 その本ではモデル内確率変数を大文字のXで、データは小文字のxで書いています。データxがモデル外の存在であることに注意が必要。
実践的に計算される信頼区間はC(x)の方です(xは現実で得られたデータ)。
95%信頼区間の95%という数値はC(X)の方でのみ意味を持ちます(Xはモデル内確率変数)。
posted at 05:47:48
#統計 久保川達也著『現代数理統計学の基礎』を購入しようかどうか検討している人のために、その本におけるデータxのP値 p(x) と信頼区間 C(x) の定義部分を抜粋してみました(添付画像)。
入門者向けの本ではないですが、この手の数学的記述に強い人には入門書よりも読み易い可能性があります。 https://twitter.com/genkuroki/status/1416070938156683264… https://pic.twitter.com/kM4nuCQV9v
posted at 05:43:55
#Julia言語 この話が面白すぎ↓ https://twitter.com/dhotta_met/status/1415957677650243593…
posted at 01:53:43
Julia Sets are special fractals generated by checking if a recursive sequence diverges at different starting points on the complex plane. You can create them yourself at http://math.fit/mandelbrot https://pic.twitter.com/PIstywVh2h
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:39:39
#統計 「統計学によってお墨付きが得られる」と思えればうれしい人たちは沢山いると思うし、実際にそういうつもりで統計学を使っている高学歴の人達も大量にいると思いますが、それは社会的にひどく迷惑な考え方なのでやめた方がよいでしょう。
信頼区間の信頼性はモデルにも強く依存します。
posted at 01:28:43
#統計 実際に自分で一から考えて実装すれば、信頼区間はモデルのパラメータの集合であることについて鮮明なイメージを持つことができるようになり、信頼区間についておかしな誤解をすることがなくなります。
posted at 01:25:17
#統計 自分で信頼区間を実装する場合には、「モデルM(θ)のデータDに関するP値がα以上になるパラメータθ全体の集合」という信頼区間の定義を覚えておくとよいです。
モデルM(θ)とデータDからP値を計算する函数pvalue(θ, D)を書き、それを使って信頼区間を計算する函数ci(D, α)を作ります。
posted at 01:23:16
#統計 モデルM(θ)とデータDから得られる信頼区間の1つの定義の仕方は「モデルM(θ)のデータDに関するP値がα以上になるパラメータθ全体の集合」です。
この定義の仕方で書かれた売れている教科書に久保川達也著『現代数理統計学の基礎』があります。p.169の最終行の信頼区間C(X)の式を参照。 https://twitter.com/genkuroki/status/1416067870518222853…
posted at 01:23:15
@BluesNoNo 【区間推定とは真の母数の値θがある区間(L,U)に入る確率】の意味での「真の母数」は現実における真の母数と呼べそうな何かを意味せず、モデル内のパラメータの値に過ぎません。その意味での「確率」もモデル内確率に過ぎません。
この点を大学でまともに教えているとは全く思えません。#統計
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:11:19
@BluesNoNo #統計 例えば、平均があると思って平均値をパラメータに含むモデルで信頼区間を計算しても、現実にはCauchy分布のように真の分布は平均値を持たないかもしれない。
いずれにせよ、信頼区間はデータから計算されるモデル内のパラメータの区間に過ぎず、現実世界の何かを記述していません。続く
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:11:16
@BluesNoNo #統計 実践的な場面では、たとえデータが適切に取得されていても、信頼区間の計算で使ったモデルの現実での妥当性が保証されていることは稀であり、モデルが妥当でなければ「真の母数」自体が現実には無意味な概念になってしまいかねません。続く
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:11:12
@BluesNoNo 【区間推定とは真の母数の値θがある区間(L,U)に入る確率を1-α (αはθが入らない確率)以上になるように保証する方法】
「真の母数」の意味が問題だと思います。
実践的な場面では、信頼区間は現実から得たデータとパラメータ付きの統計モデルを使って計算されます。続く #統計
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:11:09
@BluesNoNo 【区間推定とは真の母数の値θがある区間(L,U)に入る確率】の意味での「真の母数」は現実における真の母数と呼べそうな何かを意味せず、モデル内のパラメータの値に過ぎません。その意味での「確率」もモデル内確率に過ぎません。
この点を大学でまともに教えているとは全く思えません。#統計
posted at 01:11:04
@BluesNoNo #統計 例えば、平均があると思って平均値をパラメータに含むモデルで信頼区間を計算しても、現実にはCauchy分布のように真の分布は平均値を持たないかもしれない。
いずれにせよ、信頼区間はデータから計算されるモデル内のパラメータの区間に過ぎず、現実世界の何かを記述していません。続く
posted at 01:05:30
@BluesNoNo #統計 実践的な場面では、たとえデータが適切に取得されていても、信頼区間の計算で使ったモデルの現実での妥当性が保証されていることは稀であり、モデルが妥当でなければ「真の母数」自体が現実には無意味な概念になってしまいかねません。続く
posted at 01:00:05
@BluesNoNo 【区間推定とは真の母数の値θがある区間(L,U)に入る確率を1-α (αはθが入らない確率)以上になるように保証する方法】
「真の母数」の意味が問題だと思います。
実践的な場面では、信頼区間は現実から得たデータとパラメータ付きの統計モデルを使って計算されます。続く #統計
posted at 00:56:19
非公開
retweeted at xx:xx:xx
I wanted to share my recent experience using Julia as the main data science driver.
https://discourse.julialang.org/t/recent-experience-with-julia-as-the-main-data-science-driver/64752…
TLDR: I prefer it to Python and R, but there are definitely rough edges! The thing is, the rough edges will round out over time, and Julia is the way to go!
#julialang
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:34:13