Skip to content

Posts

Here's a list of blog posts.

SinkhornアルゴリズムとJAXによる実装: 最適輸送の高速化

最適輸送問題に以前から興味があり、最近のDeepSeekのMHC (Manifold Constrained Hyper Connections) 論文でも言及されていたため、その中心となるSinkhornアルゴリズムについて詳細を調べ、JAXで実装してみた際のメモ。

Warning

この記事は Google Antigravity を使用して作成されました。 あくまで私自身の勉強した結果の備忘録としてのメモと思っていただければと思います。 (正確性はかならずしも担保されません。) 作成過程で知らないことが多くあり、非常に勉強になりました。

PC画面キャプチャとGemini 2.0 Flashによる全自動日報生成: 実装と備忘録

PCの画面を1分おきにキャプチャし、Gemini 2.0 Flashを利用して1日の活動内容を自動で要約するツールを作成した際のメモ。

Warning

この記事は Google Antigravity を使用して作成されました。 あくまで私自身の勉強した結果の備忘録としてのメモと思っていただければと思います。 (正確性はかならずしも担保されません。) 作成過程で知らないことが多くあり、非常に勉強になりました。

高速なToeplitz 3重対角行列ソルバー: TDMA vs Cyclic Reduction

数値計算の分野では、特定の構造を持つ行列方程式 \(Ax=b\) をいかに高速に解くかが常に重要なトピックです。 今回は、\(N = 2^n - 1\) のサイズを持つ Toeplitz 3重対角行列(対角成分が一定の行列)を対象に、定番の TDMA (Thomas Algorithm) アルゴリズムと、並列化に適した Cyclic Reduction (CR) アルゴリズムの性能を比較します。

驚くべきことに、並列化を行わないシングルスレッド環境においても、特定条件下では CR 法が TDMA よりも高速であるという結果が得られました。本記事ではそのアルゴリズムの詳細な仕組みとベンチマーク結果を紹介します。

Warning

この記事は Google Antigravity を使用して作成されました。 あくまで私自身の勉強した結果の備忘録としてのメモと思っていただければと思います。 (正確性はかならずしも担保されません。) 作成過程で知らないことが多くあり、非常に勉強になりました。

【2025年】今年見た映画を振り返る

2025年に劇場に足を運んで見た映画をまとめました。 全部で18作品でした。今年は子供が生まれた関係で下半期はあまり映画を見に行けなくなりました。 2026年は色々面白い映画が出る予定なので見に行けるように頑張ります。

タイトル 鑑賞日
私にふさわしいホテル 2025-01-04
映画『グランメゾン・パリ』 2025-01-13
怪獣ヤロウ! 2025-02-08
リアル・ペイン~心の旅~ 2025-02-11
キャプテンアメリカ ブレイブニューワールド 2025-02-15
白雪姫 2025-03-21
ミッキー17 2025-04-05
HERE 時を越えて 2025-04-08
アマチュア 2025-04-11
サンダーボルツ* 2025-05-06
ミッション:インポッシブル/ファイナル・レコニング 2025-05-18
We Live in Time この時を生きて 2025-06-11
F1/エフワン 2025-06-30
スーパーマン 2025-07-12
ファンタスティック4:ファースト・ステップ 2025-07-25
ジュラシックワールド復活の大地 2025-08-16
九龍ジェネリックロマンス 2025-09-06
トロン:アレス 2025-10-25

『Pythonによるはじめての数値流体力学』第2章

『Pythonによるはじめての数値流体力学』という本を読み始めました。 この本は数値流体力学(CFD)の基礎的な内容をPythonで実装しながら学んでいくことを目的とした本です。 第2章まで読み進めたので、その内容を簡単にまとめておきます。 なお、本ではNumpyをベースとした実装が行われていますが、ここではJAXを用いた実装を紹介します。

MLBデータの可視化

メジャーリーグを見ていると、Google Cloud提供のStatcastというデータを使った解析がよく行われている。Statcastは、MLBの試合中に選手やボールの動きを追跡するためのシステムで、打球速度や打球角度、投球速度などの様々なデータを収集しているらしい。 そしてStatcastのデータはBaseball Savantというサイトで全世界に公開されている。 データ分析を生業にするものとして、そして一野球ファンとして、ぜひともこのデータを触ってみたいと思い、Pythonのpybaseballというライブラリを使ってStatcastのデータを取得・可視化を行ってみた。 内容としてはほとんどpybaseballの使い方みたいな感じではある。

gpytorchを使う

最近博士時代の研究がarxivに投稿された。ガウス過程回帰を使ってモデル方程式を学習するという内容である。 当時はgpflowを使っての実装を色々と行っていた記憶だが、これは名前の通りTensorflowをベースとしたガウス過程ライブラリである。 ただ、最近自分自身Pytorchを使った実装をすることが多くなってきて、Pytorchをベースとしたガウス過程ライブラリであるgpytorchを使ってみたくなった。とりあえずチュートリアルを見ながらな同じことをしてみたので備忘録的にまとめてみる。なので新しいことは何もない。

スプライン補間【1次元】

torchにはデフォルトでスプライン補間の実装がないなあと思い、自分で実装してみることにした。 正直こういったものは今だとLLMが勝手に実装を済ませてくれるものではある気がするので、どれくらい理論まで把握しておくべきかは悩ましいところではある。ただスプライン補間は基本的な数値計算の手法であるし、自分で実装してみることで理解を深めることが出来るので、一度はやってみるのも悪くはないかな、といったところ。 しょっぱなでtorchの話を書いたが、この記事ではnumpyとscipyのみを使ってスプライン補間を実装することにする。