2023 Third Quarter 振り返り

さて11月に入ってしまいました!7月 ~ 9月なのでだいぶ遅くなってしまいましたがThird Quarterの振り返りです。

2023年7月~9月で何をしていたか

OS自作 (というかUEFIとの格闘)

結局未完成のch.2のbranch: github.com

さてSecond Quarterで始めたといっていた通り、OS自作としてミカン本をRustに移植するということを続けていたのですが…

これはなかなか苦労しました、そもそもch.2にあるメモリマップの保存もすんなりとはいかないのです。 uefi-rs配下にあるuefi-rawを使用して実装を進めていたのですが、何分用意されていないものも多く、例えば必要なProtocolがないということがあり困ってしまいました。

github.com

具体的にはch.2で取得したメモリマップをファイルに保存するのですが、本の通りCで書くと次のようなコードになります:

EFI_STATUS OpenRootDir(EFI_HANDLE image_handle, EFI_FILE_PROTOCOL** root) {
  EFI_LOADED_IMAGE_PROTOCOL* loaded_image;
  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL* fs;

  gBS->OpenProtocol(image_handle, &gEfiLoadedImageProtocolGuid,
                    (VOID**)&loaded_image, image_handle, NULL,
                    EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);

  gBS->OpenProtocol(loaded_image->DeviceHandle,
                    &gEfiSimpleFileSystemProtocolGuid, (VOID**)&fs,
                    image_handle, NULL, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);

  fs->OpenVolume(fs, root);

  return EFI_SUCCESS;
}

上のOpenRootDir()の実装にもあるようにSimple File System Protocolが必要ですが、そもそもこれがuefi-rawにない。 そこで自前で用意しようといろいろ調査して格闘しました:

zenn.dev

結局のところ、進捗が全く出ないというわけではないですが、速度の割にはリソースの時間をほとんど使ってしまう上、そもそもの目標であったOSの機能にあまり集中できていないではないか…ということでいったんRustでのMikanOSの移植プロジェクトはpendingにしようと思います。😢

次のQuarter以降では、まずは基礎としてC/C++でOSの機能を実装することに注力します。

追記: あとCHAR16の扱いに困った!

sksat.hatenablog.com

ベイズ統計学

Third Quarterから新規にベイズ統計学の学習を始めました。

買って積んでいた下の『標準ベイズ統計学』を読み進めてみたところ、ちょうど自分の興味の方向性と予備知識がマッチした感じがあり結構楽しんでいます!

1.導入と例
  1.1 導入
  1.2 なぜベイズか
  1.3 本書の構成
  1.4 補足と文献案内
2.信念,確率,交換可能性
  2.1 信念関数と確率
  2.2 事象,分割,ベイズルール
  2.3 独立性
  2.4 確率変数
  2.5 同時分布
  2.6 独立な確率変数
  2.7 交換可能性
  2.8 デ・フィネッティの定理
  2.9 補足と文献案内
3.二項モデルとポアソンモデル
  3.1 二項モデル
  3.2 ポアソンモデル
  3.3 指数型分布族と共役事前分布
  3.4 補足と文献案内
4.モンテカルロ近似
  4.1 モンテカルロ法
  4.2 任意の関数に対する事後推測
  4.3 予測分布からのサンプリング
  4.4 事後予測分布によるモデルのチェック
  4.5 補足と文献案内
5.正規モデル
  5.1 正規モデル
  5.2 分散所与の下での平均に関する推測
  5.3 平均と分散の同時推定
  5.4 バイアス,分散,平均二乗誤差
  5.5 期待値に基づく事前分布の特定
  5.6 非正規なデータに対する正規モデル
  5.7 補足と文献案内
6.ギブスサンプラーによる事後分布の近似
  6.1 準共役な事前分布
  6.2 離散近似
  6.3 条件付き分布からのサンプリング
  6.4 ギブスサンプリング
  6.5 ギブスサンプラーの一般的な性質
  6.6 MCMCの収束診断法
  6.7 補足と文献案内
7.多変量正規モデル
  7.1 多変量正規分布の密度関数
  7.2 平均に関する準共役事前分布
  7.3 逆ウィシャート分布
  7.4 平均ベクトルと共分散行列のギブスサンプリング
  7.5 欠測データと代入法
  7.6 補足と文献案内
8.グループ比較と階層モデリング
  8.1 二つのグループを比較する
  8.2 複数のグループを比較する
  8.3 階層正規モデル
  8.4 例:米国公立学校における数学試験
  8.5 平均と分散の階層モデリング
  8.6 補足と文献案内
9.線形回帰
  9.1 線形回帰モデル
  9.2 回帰モデルにおけるベイズ推定
  9.3 モデル選択
  9.4 補足と文献案内
10.非共役事前分布とメトロポリス・ヘイスティングスアルゴリズム
  10.1 一般化線形モデル
  10.2 メトロポリスアルゴリズム
  10.3 ポアソン回帰に対するメトロポリスアルゴリズム
  10.4 メトロポリス,メトロポリス・ヘイスティングス,ギブス
  10.5 メトロポリスとギブスの組み合わせ
  10.6 補足と文献案内
11.線形・一般化線形混合効果モデル
  11.1 階層回帰モデル
  11.2 完全条件付き分布
  11.3 数学試験データの事後解析
  11.4 一般化線形混合効果モデル
  11.5 補足と文献案内
12.順序データに対する潜在変数法
  12.1 順序プロビット回帰と順位尤度
  12.2 正規コピュラモデル
  12.3 補足と文献案内

Third Quarterでch.1 ~ ch.4まで読みました。断片的で中途半端になっていた自分の統計学の知識がつながっていくような感じもあって、なかなかに充実した学習になっています。

印象に残っているのはデ・フィネッティの定理と共役事前分布についての議論とそれの指数型分布族への一般化です。デ・フィネッティの定理は下のスライドが更に踏み込んだ話題になっていて面白かったです:

どこへ向かうか

さて2023年もFinal Quarterですね!

次のQuarterではベイズ統計学の教科書の続きとC/C++でOS自作がメインになりそうです。ただ年末ということもあり、時間に余裕がなければベイズ統計学に集中するのがいいかもしれません。

あとちょうどベイズ統計学の面白そうな本が新しく出版されたのでさっそく買いました、やっててよかった代数幾何学!😎