---
# System prepended metadata

title: Team AI MTG Log2

---

# Team AI MTG Log 20230313 ~
[前のTeam AI MTG Log](https://hackmd.io/-W5ogMm1SmyLL0qwhDjx-w)
[次のTeam AI MTG Log](https://hackmd.io/l2DfMHUjTMG4UNYA0-tOag)

* 活動中メンバー
  * あきちゃん: aki85
  * さっきー: yusk
  * ふっく: tattaka

[輪読候補](https://hackmd.io/LZtkmoEOSQWaPVhemRaj2g#20230313-%E8%BC%AA%E8%AA%AD%E5%80%99%E8%A3%9C)

## fx プログラム開発

* ys: 抽象化層
* aki: fx API 接続周り
* fukku: 取引実装サンプル
  * データ周り
  * バックテスト実験環境の整備
  * 抽象化層はひとまずは考えなくて良い

### 直近のそれぞれの目標

* ys
  * 売り買いと戦略のビジネスロジックを記述
* aki
  * 実際にコード上から売り買い管理できる
    * saxo 周りの実装の流れ
      * sample コードで実際に取引できる状態に
      * そのコードから domain model、domain logic を作成
      * sample コードを adapter など層にうまく追加
* fukku: 取引実装サンプル
  * 戦略の具体の実装
  * toyデータで学習回してみる

### 方針

* saxo
  * リダイレクトが必須で、webアプリが必要そう
    * アクセストークンを取得し、チャートを表示できる程度のアプリを akic に作ってもらう
      * https://github.com/yusk/saxo-trader
    * そのトークンをバックエンドに送り、自動取引か何かを行う
  * backend
    * トークン管理
      * 切れたらどこかに通知？
    * チャート取得
    * 自動取引

### base

* fx プログラム開発
* 進捗報告
  * ys
  * aki
  * fukku
* 次回

## 20221107 ~ 20230130 ポートフォリオ作成を行った
* 20241216 ポートフォリオの収支共有会を行った
* Next: 2025末

## 20241216

* fx プログラム開発 ~ 22:05
* 進捗報告
  * ys
  * aki
  * fukku
    * 分数次差分法のサンプル
      * https://github.com/yusk/fx-team-ai/blob/develop/fukku_data_eda/tattaka/fractional_diff.ipynb 
* ポートフォリオの収支共有会 22:05 ~ 22:35
  * ys
    * 米国株式はダメダメでした、花王が頑張ってる
    * それでプラマイゼロくらい
    * nisa は頑張ってる
  * aki
    * 米国株式は-10%程度
    * nisaが頑張ってる
  * fukku
    * イーライリリーが強い
      * https://shikiho.toyokeizai.net/news/0/735354 
    * +75%
    * https://hayatoito.github.io/2020/investing/
* 次回
  * 1/20 22:00~

## 20241209

* fx プログラム開発
* 進捗報告
  * ys
    * ファイナンス機械学習読み直し
      * 3.3 動的閾値の計算
        * ボラティリティへの言及はあるがよくわからん
    * 外為どっとコム
      * [為替取引が活発になる時間帯](https://www.gaitame.com/beginner/fx/time.html)
        * [板情報](https://www.gaitame.com/markets/order/)
  * aki
    * jsのstreamのdemoをlocalで動作確認した
  * fukku
    * 拡大ウィンドウ分数次差分実装
    * ![](https://hackmd.io/_uploads/r1Jl_OVV1l.png)
* 次回
  * 12/16 22:00~
  * memo: 23 は fukku ダメそう

## 20241202

* fx プログラム開発
* 進捗報告
  * ys
    * core のコードを見返し中
    * SimulateByTimedeltaUseCaseInteractor の作成中
    * Mav3FXStrategyOptimizer 全然儲からない
  * aki
    * jsのstreamのdemoを見つけた
      * https://github.com/SaxoBank/openapi-samples-js/blob/main/sample-apps/realtime-quotes/README.md
  * fukku
    * 分数次差分のところ読み進め
    * 他の特徴量作成の部分は輪読でもやっていない（はず）なのでそっちも少し目を通すなど
* 次回
  * 12/9 22:00~

## 20241125

* fx プログラム開発
* 進捗報告
  * ys
    * 為替ニュース系を調べていた
      * [みんかぶ FX 米ドル/円 関連ニュース](https://fx.minkabu.jp/pair/USDJPY/news)
      * [マネ育ch](https://www.gaitame.com/media/archive/category/米ドル)
      * [yahoo ファイナンス](https://finance.yahoo.co.jp/news/search/?q=ドル%20円&queryType=andQuery&category=all)
    * ニュースからファンダメンタル情報を抜いてトレードに活用できないか
      * ニュース -> ネガポジ推論?
  * aki
    * OHLCのチャートを表示
    * https://github.com/yusk/saxo-trader/commit/c1284ebb643d21a8a8647e57889e75429c477068
  * fukku
    * メタラベリング周りバグとり
* 次回
  * 12/2 22:00~

## 20241111

* fx プログラム開発
* 進捗報告
  * ys
    * USDJPYと米国債金利利回りをつなげてみたけど何もわからん
    * todo
      * 実際の取引目指して何か考える
      * 必要な処理考える
  * aki
    * ohlc chart.jsを使えるようにしたい
      * https://github.com/chartjs/chartjs-chart-financial/tree/master/docs
  * fukku
    * ファイナンス機械学習の読み直し
      * メタラベリングまわり思い出した
    * 分数次差分など特徴量作成周り読み進め中
* 次回
  * 11/25 21:00~

## 20240909

* fx プログラム開発
* 進捗報告
  * ys
    * 簡単な notifier 作る
      * todo: deploy
    * 金利情報を何処かで取ってこれないか
      * とりあえず記事3つ動かした
      * todo: これらを結合して、解析
  * aki
    * https://github.com/yusk/saxo-trader/commit/1fdab884e7c2328d96cff1fab3a59ba7de51ae89
      * チャートになりそうなデータを取得
      * チャートサンプルを表示
  * fukku
    * labelingバグってたので修正
    * メタラベリング(買うindexを与えるとそれに対して利益と売る時間を付与する)の実装を追加
      * https://github.com/yusk/fx-team-ai/blob/develop/fukku_data_eda/tattaka/labeling.ipynb　 
* memo
  * 要作成
    * エントリーのタイミングを決めるモデル
    * エントリーにどれくらいの金額をかけるかのモデル
* 次回
  * 9/30 21:00~

## 20240902

* fx プログラム開発
* 進捗報告
  * ys
    * done: 簡単な notifier 作る
      * PR 出してマージした
    * todo: 金利情報を何処かで取ってこれないか
      * 取れそう
        * 米国
          * https://zenn.dev/nishimoto/articles/8053dc85529207
          * https://qiita.com/aisaki180507/items/57302838eb0bbdd12eb1
        * 日本
          * https://zenn.dev/welliving/articles/7f9354195efb18
  * aki
    * tokenを取得した
      * https://github.com/yusk/saxo-trader/commit/50207bea1ae0ef1b06c4f2082d905f46646de366
  * fukku
    * labeling周り更新
      * https://github.com/yusk/fx-team-ai/blob/develop/fukku_data_eda/tattaka/labeling.ipynb 
    * TODO
      * メタラベリング対応
* 次回
  * 9/9 21:00~

## 20240826

* fx プログラム開発
* 進捗報告
  * ys
    * todo: 簡単な notifier 作る
      * 1日変化量の 99 percentile が 200 pips (2ドル)
        * これを上回れば通知で暫定作成予定、作成中
          * 2024 年だと 9 回
    * todo: 金利情報を何処かで取ってこれないか
  * aki
    * サインイン時にチャートページに遷移し、URL情報を扱えるようになった
      * https://github.com/yusk/saxo-trader/commit/56ba45d4c903dc2b8ce3364821d89b9ab1dcd26a
  * fukku
    * ラベリングまわり整理中
      * トリプルバリア法がバグってたので修正
        * 利確する・損切りするのタイミングがcumsumフィルタで計算したevent時に絞られていた
      * 購入時に対して、いつ利確するのか・損切りするのかのタイミングを追加
      * 利確・損切りした時の利益・損益の大きさについても計算
      * 実用時には購入->利確の経路しか使わない
        * 利確時間は実際にはリアルタイムでシミュレートできる
* 次回
  * 9/2 21:00~

## 20240819

* fx プログラム開発
* 進捗報告
  * ys
    * 夏休み
      * 株をちょい調べてた
        * この銘柄この値段くらいまで下がったら買いたいなーってのを
          * グラフ化
          * discord 通知
            * 日時: 値段閾値下回ったら通知
            * 月次: チャートを送信
      * deploy 多分できた
        * 明日の自動実行確認
    * todo: 簡単な notifier 作る
    * todo: 金利情報を何処かで取ってこれないか
  * aki
    * キーを指定して認証用のページにリンク遷移できるようにした
      * https://github.com/yusk/saxo-trader/commit/539502c8dc56ed9f7a0fb49040dc62800795c857
    * ys: app key はおそらくバレてもいいもの
  * fukku
    * ラベリングまわり整理中
      * 前回までで、利確するか損切りするかのラベルはつけられたが、いつ売るか買うかのラベルがまだつけられていない
      * 3.5~3.6章読み直し中
* 次回
  * 8/26 21:00~
    * 休みにするかも

## 20240805

* fx プログラム開発
* 進捗報告
  * ys
    * merge: https://github.com/yusk/fx-team-ai/pull/20
      * stream 系のサンプルコード
    * todo: 簡単な notifier 作る
  * aki
    * リンクとenvとフォーム動作を追加した
      * https://github.com/yusk/saxo-trader/commit/eebbfb7a06acdefee68bf3965e477b396285506e
    * todo: 引き続きsignin
  * fukku
* 次回
  * 8/19 21:00~

## 20240708

* fx プログラム開発
* 進捗報告
  * ys
    * stream 動かせた
      1. stream で subscribe 状態にする
      2. 同じ contextId で create subscription
  * aki
    * 自環境の整備
    * https://github.com/yusk/saxo-trader
      * ライブラリの追加
      * signinページの準備
  * fukku
    * ラベリングのコードを前回書いたので学習コード試行錯誤中
* 次回
  * 7/22 21:00~
  * 8/5 21:00~

## 20240624

* fx プログラム開発
* 進捗報告
  * ys
    * streaming
      * https://www.developer.saxo/openapi/learn/streaming
      * https://saxo-openapi.readthedocs.io/en/latest/examples/stream_proc.html
      * できそうでできない
  * aki
    * リダイレクトリンクを生成するコードを自分が読みやすくした
    * svelteが補完効かない問題を確認中
  * fukku
* 次回
  * 7/8 21:00~

## 20240617

* fx プログラム開発
* 進捗報告
  * ys
    * [instruments API](https://saxo-openapi.readthedocs.io/en/latest/endpoints/referencedata/instruments/InstrumentDetails.html)を叩いた
      * uic==42 が USDJPY とわかった
    * [chart subscription](https://www.developer.saxo/openapi/referencedocs/chart/v1/charts/post__chart__subscriptions)を試していたが、うまくいかず
  * aki
    * https://github.com/yusk/saxo-trader
      * first commitした
    * サンプル実装のおさらいもした
  * fukku
    * トリプルバリア法を実装した
      * https://github.com/yusk/fx-team-ai/blob/develop/fukku_data_eda/tattaka/labeling.ipynb
      * 固定時間ホライズン法よりも分布が気持ち滑らか
        * 7: 固定時間ホライズン法
        * 10: トリプルバリア法
* 次回
  * 6/24 21:00~

## 20240610
* fx プログラム開発
* 進捗報告
  * ys
    * 方針決定 & リポジトリ作成
    * get chart data を試していた
      * https://saxo-openapi.readthedocs.io/en/latest/endpoints/chart/charts/GetChartData.html
      * 何とか動いた
  * aki
    * svelte始めて見た
      * demoのsverdleが正しく動作していないので要調査
  * fukku
    * トリプルバリア法を実装し始めたが合ってるかわからない
      * いつ買っていつ売るか/いつ売っていつ買い戻すか
      * いつポジションをもつか
    ```python
        def triple_barrier_labeling(data, profit, loss, max_hold_days=5):
            df = data.df
            label = np.zeros(len(df))
            # max_hold_daysのフラグを立てる
            for i in range(len(df)):
              for n in range(i + 1, len(df)):
                act = 0
                if i + n >= len(df):
                  return label
                # if new_data.iloc[n].Datatime - new_data.iloc[i].Datatime > max_hold_days:
                  # break
                if (df.Close[i + n] / df.Close[i]) > (1 + profit):
                  act = 1
                  break
                if (df.Close[i + n] / df.close[i]) > (1 - loss):
                  act = 0
                  break
              label[i] = act
          return label
    ```
    * strategy
      * [FxEntry](https://github.com/yusk/fx-team-ai/blob/master/core/domain/service/strategy/_base.py#L9) を返却してほしい
* 次回
  * 6/17 21:00~


## 20240603

* fx プログラム開発
* 進捗報告
  * ys
  * aki
      * [問い合わせ時に受け取ったURL](https://www.developer.saxo/openapi/learn/direct-clients-request-for-openapi-application-credentials-for-the-live-environ)
      * 関連がありそう
        * [Certificate Based Authentication](https://www.developer.saxo/openapi/learn/oauth-certificate-based-authentication)
        * [PyJWTを利用したES256形式のJWT生成方法 メモ](https://qiita.com/KWS_0901/items/433c100c78a6494b8206)
        * [jsのサンプル](https://github.com/SaxoBank/openapi-samples-js/blob/main/authentication/oauth2-certificate-flow/example_nodejs/example.js)
          * [動いたjsサンプル1](https://github.com/SaxoBank/openapi-samples-js/blob/main/authentication/oauth2-code-flow/index.html)
            * rootディレクトリで`serve`で起動
          * [動いたjsサンプル2](https://github.com/SaxoBank/openapi-samples-js/blob/main/authentication/oauth2-code-flow/redirect/backend-js/server.js)
            * `backend-js`下で`node server.js`で起動
          * jsサンプルによって生成されたリダイレクトURL
            * https://sim.logonvalidation.net/authorize?client_id=3071e4cc2aa941ea87ca944aaf8ee2f6&response_type=code&state=eyJjc3JmVG9rZW4iOiIzNjIwNjcwNzM4Iiwic3RhdGUiOiJUaGlzIGRhdGEgaXMgY29tbXVuaWNhdGVkIHZpYSB0aGUgJ3N0YXRlJyBwYXJhbWV0ZXIifQ%3D%3D&redirect_uri=http%3A%2F%2Flocalhost%3A1337%2F
  * fukku
* 次回
  * 6/10 21:00~

## 20240527

* fx プログラム開発
* 進捗報告
  * ys
    * time bar merge
    * cumsum_filter を core の中に
      * PR 作成
  * aki
    * SaxoTraderGOでOpenAPIの利用条件に付いて問い合わせ
      * 利用条件に関する返答はなく、利用ガイドを見てくださいとのこと
        * https://www.developer.saxo/openapi/learn/direct-clients-request-for-openapi-application-credentials-for-the-live-environ
      * OpenAPIはサポート非対応らしい
  * fukku
    * トリプルバリア法わからない
* 次回
  * 6/3 21:00~ 

## 20240520

* fx プログラム開発
* 進捗報告
  * ys
    * [x] time bar や dollar bar の相互変換について考える
      1. FXTimeBar などを作る
      2. FXbar.time や FXbar.dollar で取り込む
        * FXbar が domain model だとすると、それは何か？何を変数としたドメインモデルなのか？
          * time bar?
            * そうなると、FXTimeBar を作成し、FXTimeBar.dollar -> FXDollarBar が綺麗か？
    * rename PR 作成、来週マージ？
      * FXData -> FXBar
  * aki
    * SaxoTraderGOでOpenAPIの利用条件に付いて問い合わせをした
      * 3営業日ぐらいで返信が来る
      * 回答を受けて不明な場合は電話で確認する
  * fukku
* memo
  * [直近のそれぞれの目標](https://hackmd.io/LZtkmoEOSQWaPVhemRaj2g#直近のそれぞれの目標)を記入
  * saxo 周りの実装の流れ
    * sample コードで実際に取引できる状態に
    * そのコードから domain model、domain logic を作成
    * sample コードを adapter など層にうまく追加
* 次回
  * 5/27 21:00~

## 20240513

* fx プログラム開発
* 進捗報告
  * ys
    * clean archtecture 見直した
      * 参考
        * [生成AIアプリのクリーンアーキテクチャを考える](https://techblog.insightedge.jp/entry/aoai-app-clean-architecture)
        * [Python x DDD x Clean Architecture](https://zenn.dev/koei_kaji/articles/f2d70a662cbe45)
        * [クリーンアーキテクチャと DDD を意識したパッケージ構成についての思案](https://dev.to/borikatsu/kurinakitekutiyato-ddd-woyi-shi-sitapatukezigou-cheng-nituitenosi-an-29bp)
        * [クリーンアーキテクチャのUsecaseはなぜControllerへ値を返すのではなくOutput PortとしてPresenterを呼び出すのか](https://izumisy.work/entry/2019/12/12/000521)
        * [クリーンアーキテクチャの右下の図](https://nrslib.com/clean-flow-of-control/)
    * Data について考えていた
      * FXData -> FXBar におそらく rename 予定
      * FXTimeBar などを作れるのでその方がよさそう
        * impl: FXTimeBarOnPandas
      * もしくは
        * FXbar.time や FXbar.dollar で取り込む
    * todo: filter をどう domain に取り込むか
  * aki
    * clean archtectureの解読中
  * fukku
    * 新しい形式のclean archtectureに既存notebookを追従
    * next->トリプルバリア法、サイドサイズ法など
* 次回
  * 5/20 21:00~

## 20240422

* fx プログラム開発
* 進捗報告
  * ys
    * アーキテクチャ関連について調べていた
      * [生成AIアプリのクリーンアーキテクチャを考える](https://techblog.insightedge.jp/entry/aoai-app-clean-architecture)
      * [Python x DDD x Clean Architecture](https://zenn.dev/koei_kaji/articles/f2d70a662cbe45)
      * [クリーンアーキテクチャと DDD を意識したパッケージ構成についての思案](https://dev.to/borikatsu/kurinakitekutiyato-ddd-woyi-shi-sitapatukezigou-cheng-nituitenosi-an-29bp)
    * 現状、記憶を頼りに書いていたので、一度復習しつつ、きれいにしていく予定
  * aki
    * フォルダ調整と主要な情報を追加
      * https://github.com/yusk/fx-team-ai/pull/15/files
    * DeepL for VSCodeを使ってみた
      * ショートカットで動くときとエラーになるときがあった
  * fukku
    * ファイナンス機械学習のラベリング章復習
    * 単純な固定時間ホライズン法実装
    * next->トリプルバリア法、サイドサイズ法など
    * 参考: https://note.com/dean_ediburgh/n/nc5b5170e6564 
* 次回
  * 5/13 21:00~

## 20240415

* fx プログラム開発
* 進捗報告
  * ys
    * check07 追加
      * 1年間のデータで optimize し、次の90日での成果を求める
    *  todo: sampling をどこでどう行うか
  * aki
    * [saxo_openapi](https://github.com/hootnot/saxo_openapi/blob/master/jupyter/index.ipynb)
    * VSCodeが思った以上に強かった
  * fukku
    * cumsum filter実装
      * https://github.com/yusk/fx-team-ai/blob/develop/fukku_data_eda/tattaka/cumsum_filter.ipynb 
    * TODO1: ラベリング
    * TODO2: 機械学習モデルへ...
* 次回
  * 4/22 21:00~

## 20240408

* fx プログラム開発
* 進捗報告
  * ys
    * Mav3FXStrategyOptimizer 実装、merged
      * optuna で実装
  * aki
    * saxo本番動作について
      * [jsのサンプル](https://github.com/SaxoBank/openapi-samples-js/blob/main/authentication/oauth2-certificate-flow/example_nodejs/example.js)
      * 条件を満たしていると表示される
        * [Managing Certificates in MyAccount](https://www.developer.saxo/openapi/learn/managing-certificates-in-myaccount)
        * Partner Administratorである必要があり、[この方法はProfessionalプランである必要がありそう？](https://openapi.help.saxo/hc/en-us/articles/4416637197457-Can-Certificate-Based-Authentication-CBA-be-enabled-for-my-app)
      * [saxo APIについて](https://www.home.saxo/ja-jp/platforms/api)にある[利用方法](https://www.developer.saxo/openapi/learn/direct-clients-request-for-openapi-application-credentials-for-the-live-environ)を呼んだ方が良さそう
        * ご利用条件"詳細はお問い合わせください。"が気になる
* 次回
  * 4/15 21:00~

## 20240401

* fx プログラム開発
* 進捗報告
  * ys
    * コンフリクト解消、マージ
    * [stream](https://www.developer.saxo/openapi/referencedocs/chart/v1/charts/post__chart__subscriptions)
    * Mav3FXStrategyOptimizer 実装中
  * aki
    * saxo
      * [データ取得API](https://www.developer.saxo/openapi/referencedocs/chart/v1/charts)
      * [Python wrapper for Saxo Bank OpenAPI](https://github.com/hootnot/saxo_openapi)
        * [READMEよりサンプル2件追加](https://github.com/yusk/fx-team-ai/pull/12)
  * fukku
    
* memo
  * 
* 次回
  * 4/8 21:00~

## 20240325

* fx プログラム開発
* 進捗報告
  * ys
    * FXStrategyOptimizer を追加
    * Mav3FXStrategyOptimizer の mock だけ作成
    * todo
      * Mav3FXStrategyOptimizer の実装
      * コンフリクト解消
  * aki
  * fukku
    * bar transformどうするか
      * 一旦volume取れなさそうだし保留
      * ドルランバー
    * sampling
      * cumsum sampling復習
        * 一定以上変化が累積するとサンプリング発生
* 次回
  * 4/1 21:00~

## 20240318

* fx プログラム開発
* 進捗報告
  * ys
    * python version up
    * pydantic の install
    * logging の勉強中
      * https://qiita.com/FukuharaYohei/items/92795107032c8c0bfd19
  * aki
    * saxoのAPI利用方法調査中
      * [Certificate Based Authentication](https://www.developer.saxo/openapi/learn/oauth-certificate-based-authentication)
      * [PyJWTを利用したES256形式のJWT生成方法 メモ](https://qiita.com/KWS_0901/items/433c100c78a6494b8206)
  * fukku
    * python version up
      * pyenvでversion管理しているので手間取った
        * m1macなので`arch -x86_64 pyenv install 3.12.2` 
    * bar transformの試作中
      * FXDataRepositoryのメソッドとして作る
        * FXDataにvolumeのpropertyを追加？
          * どんなpropertyが必要か整理
            * とりあえずvolumeを生やす
* 次回
  * 3/25 21:00~

## 20240311

* fx プログラム開発
* 進捗報告
  * ys
    * FXStrategy の I/F の変更
      * FXData と分離したかったため
    * Mav3FXStrategy の save と load の実装
  * aki
    * saxo通常APIへのアクセス方法を調査
      * [実際の account で使うときに読む必要がありそうな doc](https://www.developer.saxo/openapi/learn/direct-clients-request-for-openapi-application-credentials-for-the-live-environ)
        * [アプリ管理画面](https://www.developer.saxo/openapi/appmanagement#/liveoverview)
        * シミュレーションアカウントを最低1つ作成すると、ライブアカウントを作れる
        * Redirect URLが必須
  * fukku
    * ファイナンス機械学習本のおさらい
      * strategyの実装でbarの実装を持つ?
        * strategyがbarを生成するメソッドを持つ
      * df -> [time -> bar transform] -> [sampling] -> [labeling] -> Model
        * みたいな流れで動くようにstrategyを定義したい
        * Barの持ち方
          * 種類によってclassを分ける・分けない
          * FXDataRepositoryのfindがtime barを返す関数なので、それ基準で作る
      * TODO: bar transform・sampling・labelingの簡単なやつを作ってみる
* 次回
  * 3/18 21:00~

## 20240304

* fx プログラム開発
* 進捗報告
  * ys
    * slack notifier 実装、マージ済み
    * oauth の仮説
      1. ライブラリが勝手に localhost を立ててくれている説
      2. 302 をリダイレクトせずに url parse することによりリダイレクトなしに access token を手に入れている説
      * 前者だと、port 番号が設定に必要になる
      * 後者だと、redirect url はなんでもうまく動くはず
  * aki
    * saxo通常APIへのアクセス方法を調査
      * [セキュリティ全体](https://www.developer.saxo/openapi/learn/security)
      * [実際の account で使うときに読む必要がありそうな doc](https://www.developer.saxo/openapi/learn/direct-clients-request-for-openapi-application-credentials-for-the-live-environ)
  * fukku
    * さっきーさんのMav3FXStrategyベースに動作確認など完了
    * TODO: アルゴリズム周りの調査
* 次回
  * 3/11 21:00~

## 20240226

* fx プログラム開発
* 進捗報告
  * ys
    * BasicSimulator の追加
      * https://github.com/yusk/fx-team-ai/pull/4/files
  * aki
    * トレードAPIとオーダーAPI追加
      * https://github.com/yusk/fx-team-ai/pull/5/files
  * fukku
    * 適当なmav3model作成中
      * 基本的な動作確認など次回できれば
* 次回
  * 3/4 21:00~

## 20240219

* fx プログラム開発
* 進捗報告
  * ys
    * trader sample として Mav3FXTrader を追加
      * https://github.com/yusk/fx-team-ai/pull/2/files
  * aki
    * 証券情報を取得できるようにした
      * https://github.com/yusk/fx-team-ai/pull/3/files
  * fukku
    * 実験環境整備
      * dev用パッケージ追加のPR出します
        * 貯まったらやる
    * yfからdf取得確認
* 次回
  * 2/26 21:00~

## 20240205

* fx プログラム開発
* 進捗報告
* 次回
  * 2/19 21:00~


## 20240129

* 今年やりたいこと by ys
  * fx のプログラムの作成
    * 目的
      * お金を稼ぐ
      * システムアーキテクチャのアウトプットがてら、綺麗なコードを書きたい
  * システムアーキテクチャ
    * クリーンアーキテクチャ
      * SOLID
        * DIP(依存性逆転の法則)
    * DDD
  * FX
    * ファイナンス機械学習
    * 機械学習システムデザインパターン
  * 初期分担
    * ys: 抽象化層
    * aki: fx API 接続周り
    * fukku: 取引実装サンプル
      * データ周り
      * バックテスト実験環境の整備
  * fx API 有力候補
    * https://www.home.saxo/ja-jp/platforms/api
      * https://www.developer.saxo/openapi/learn/welcome
    * [昔見た API まとめ](https://fxantenna.com/trading-api-list/)
      * oanda は入金25万 + ゴールドステータス
  * saxo キャンペーンコード
    * https://www.home.saxo/ja-jp/accounts?cmpid=web_jp_ref&refid=48273c12-2c1d-47c6-8294-0dcd83963fdf
  * repository
    * https://github.com/yusk/fx-team-ai
* 次回
  * 2/5 21:00~

## 20231222

* 輪読
  * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
* 第7章 　
  * akic
    * 想定での事例紹介
      * 需要予測システムの例
        * ある程度店舗ごとのノウハウで何とかなってそう
          * 雑にやってる店舗も多くて、システムの恩恵があってもおかしくはない
        * 新店舗開店時とかにはいいかも
      * コンテンツ投稿サービスの例
        * 画像認識は線引きが難しい
        * クレームがいくつも想定されてて面白かった
  * ys
    * アプリケーションに落とし込む例
      * 需要予測システム
      * コンテンツ投稿サービス
    * どういう思考でモデルを選び作るかという思考例
  * fukku
    * 人件費 vs 機械学習で削減できるコスト
      * 機械学習の得意・不得意を見極めて使う
      * 評価指標がビジネス評価指標(コスト削減・収益など)に直結すればベストではあるが...
    * モデルを定期的に学習し直すシステムは大変そう...
      * ハイパラどうするんだ問題
      * データの分布シフト
    * ビジネスモデルによってPrecisionを優先するかRecallを優先するかが変わる
      * 最近PR curve作って片側を合わせた上で精度比較するとかやった
* まとめ
  * akic
    * 機械学習システムを作る際に参考にしたいページが多くて良かった
    * プログラムやコンテナ回りもシステム造るときの元に出来そう
  * ys
    * 新しい知識はそこまでなかったが、まとまってはいるので、辞書的に何かするときに使える本かなと思った
      * その分読みやすくてよかった
      * shadow AB と推論監視のアラート条件のところが新しい知見
  * fukku
    * システム設計周りは初見の概念が多くて勉強になった
    * 
* 次回
  * 1/22 (月) 21:00 ~
    * sakkiに任せます


## 20231211
* 輪読
  * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
* 第6章
  * akic
    * サービスを求めている以上の水準で動かすために出来る事の話
    * 本番環境だと問題が発生するのは結構あるある
    * パラメータベース推論見たいなことはしたことある
  * ys
    * シャドウABテストパターンは知らなかった
    * vegeta 使ったことある懐かしい
    * k8s 便利そう
  * fukku
    * 稼働率
      * 大体のサービスにおいてほぼ1なのでは......?そうでもない？
      * 元々のサービスに対して実際の規模感があっていない場合（たとえば本書での1000リクエスト/sとか）
      * どっちかというと負荷耐性的な？
    * 実装パターンによって負荷に対する壊れ方が変わってくる
    * シャドウABテストパターン、見たことあるやつ
    * オンラインABテストパターンはステルスリリースみたいな呼び方してる
* 第7章 ~21:30
  * akic
  * ys
  * fukku
    * 
* 次回
    * 12/18 (月) 21:00 ~
      * 第7章


## 20231204

* ポートフォリオの収支共有会
  * akic
    * ![cc8c5d42b4831eaff749eb2cfa6e7dc3](https://hackmd.io/_uploads/H1HTeriB6.png)
  * ys
    * -12.52%
      * 悲しみ
    * ![スクリーンショット 2023-12-04 21.05.29](https://hackmd.io/_uploads/Bk4ilSjr6.png)
  * fukku
    * ![](https://hackmd.io/_uploads/BkYGxroBp.png)
    * MCK: +38.20 ％
    * LLY: +93.97 ％
    * MRK: +0.58 ％
    * OXY: +6.55 ％
* 次回
    * 12/11 (月) 21:00 ~
      * 第6章


## 20231127
* 輪読
  * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
* 第4章ふりかえり
  * あんまり直列マイクロサービスアーキテクチャは使われない？
    * 並列の方は馴染みがあるかも
      * マイクロサービスとしては単一障害点があるので......
* 第5章
  * akic
    * ログと閾値を用いた監視は大事だよねって話
  * ys
    * 推論ログパターン
    * 推論監視パターン
      * アラート条件のところは面白かった
        * インターバル: 1分毎に直近2分のデータ
        * 異常値: 異常比率が全体の20%を超える場合
        * 入力データ: 推論データの平均が学習の+-5%を超える場合
    * ログなしパターン
      * んなアホな
  * fukku
    * 監視することで、入力が異常値だったりするのを検知できる
      * 異常値であるかどうかは難しいけど別の話？
        * MLOpsというよりはMLEngの仕事っぽい
    * ここでの推論ログは推論結果を貯めておくのとは違う？
      * それも含めての意味合い
      * 他だと実行時間とかリソース状況とか
* 次回
  * 12/4 21:00~



## 20231120
* 輪読
  * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
* 第4章
  * akic
    * システムの作り方の話だったので、イメージしやすかった
    * 開発環境を作るタイミングで参考にしようと思った
    * web_single_pattern
      * 動かしてみて簡単に動いた
    * asynchronous_pattern
      * numpyのエラーを解消して、次のエラーで一旦手を止めた
  * ys
    * 簡単なアーキテクチャの一覧があった
      * Webシングル
      * 同期推論
      * 非同期推論
      * バッチ推論
      * 前処理推論
      * 直列マイクロサービス
      * 並列マイクロサービス
      * 時間差推論
      * 推論キャッシュ
      * データキャッシュ
      * 推論期テンプレート
      * Edge AI
    * 図を見たらすぐわかるくらいのものたち
      * アーキテクチャというよりはユースケースというイメージ
* 第5章 ~21:30
* 次回
    * 11/27 (月) 21:00 ~


## 20231113
  * 輪読
    * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
  * 第3章
    * akic
      * model_in_image_pattern/model_load_pattern
        * minikubeを使って確認
        * autoscaling/v2beta2 -> autoscaling/v2にすることでエラー一部解消
        * 起動したように見えたが2/4がPendingのまま進まなかった
      * 感想
        * モデルリリース方法が何となくわかったので、運用スタイルが定まった際に確認したら良さそうだと思った
    * fukku
      * モデルインイメージパターン
        * サーバとモデルのバージョンを1:1で対応させるので不意のバグ混入は少なそう
        * 
      * モデルロードパターン
        * 外部にモデルを取りにいくので手軽ではある
        * バージョンの上げ下げは簡単そう
    * ys
      * 試行する時間なかった
      * 本は読んだ、2パターンある
        * オートスケールとかまで考えると読み込み遅いのは致命的
          * 考えるならインの方が良い、ヘルスチェック通るまでが早い
          * ロードやとダウンロードてきなのから始まるやろうし
        * ロードが多いイメージ
          * 選ぶなら、基本ロードにしといて、オートスケールで問題出たらインに切り替えるとかかな
          * インだとやはりコストが馬鹿にならない
  * 第4章 ~21:45
* 次回
    * 11/20 (月) 21:00 ~
      * 第4章
        * 全体をさらっと読みつつ、動かせそうな範囲で動かしてくる


## 20231106
  * 輪読
    * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
  * 第2章
    * akic
      * モデルを作る工程の出来る部分は自動化や分担をしようねって話だと感じた
      * model_db
        * swaggerを開くことが出来た
      * cifar10
        * 前やった時は動いたけど、今日改めて動かしてみたらエラーになった
    * fukku
      * model_dbは無事動いた
      * cifar10はまだ
        * make train中
    * ys
      * プロジェクトとモデルのバージョニング
        * プロジェクト
        * モデル
        * 実験
      * パイプライン
        * データ取得
        * 学習
        * ビルド
        * システム評価
      * 結局 cifar10 動かせなかった
        * 指定の anaconda も m1 mac には入れれず
        * ライブラリのバージョン違い？
        * make train が通らない
  * 第3章 ~21:45
* memo
  * https://github.com/shibuiwilliam/ml-system-in-actions
  * docker-compose up
    * http://localhost:8000/v0.1/health
* 次回
    * 11/13 (月) 21:00 ~
      * 第3章


## 20231030
  * 輪読
    * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
  * 第1章 ~21:15
    * akic
      * 開発と運用を深掘りしていく内容として把握した
    * fukku
      * localとproduct環境の品質保証の違い
        * product環境でA/Bテストできるならベストだが...
    * ys
      * 以下がありがたかった
        * 機械学習システムデザインのリファレンス x 2
        * PAIR
  * 今後の方針
    * 各々が各章のコードを次の輪読までに動かしてきて、共有会を行う
  * 第2章 ~21:45
    * 各自環境構築を進めた
* memo
  * https://github.com/shibuiwilliam/ml-system-in-actions
  * docker-compose up
    * http://localhost:8000/v0.1/health
* 次回
    * 11/6 (月) 21:00 ~
      * 第2章


## 20231023
  * 次回以降の話
    * コードを書いてみる
      * LLM解法やコードを見直してみる
      * stable diffusionのコードリーディング
      * SBMなどが出てこない気がするのでそのあたり書いてからやりたい by yusk
      * 最初は小さいコードを書いて理解してみる(numpyでMCMC書くなど)
    * 岡野原さんのLLM本
      * https://www.amazon.co.jp/dp/4000297198
    * akic
      * GPT周辺の理解度を深めるために本を読むのがいいかも
    * fukku
      * 技術よりならこちら -> https://www.amazon.co.jp/dp/4297136333
    * ys
      * 直近の希望はなし
      * 来年に fx やりたい
        * 現在個人でコーディング中
          * 抽象クラスとか切ってうまくやってとやりたい予定だがなかなか難しい
    * 年内約8回ほどで出来る事が良さそう
    * 過去の輪読候補から選出 ~ 21:30まで
      * 機械学習・AI
        * [評価指標入門〜データサイエンスとビジネスをつなぐ架け橋](https://www.amazon.co.jp/dp/B0BT7GBF5L) 
        * [深層学習の原理に迫る　数学の挑戦 (岩波科学ライブラリー)](https://www.amazon.co.jp/dp/B09FPBQM9C)
        * [数理モデル思考で紐解くRULE DESIGN -組織と人の行動を科学する](https://www.amazon.co.jp/dp/B0BPY77S96/)
        * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
        * [大規模言語モデル入門](https://www.amazon.co.jp/dp/4297136333)
    * 輪読最終候補
      * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
      * [大規模言語モデル入門](https://www.amazon.co.jp/dp/4297136333)
    * 次回以降の輪読
      * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
* 次回
    * 10/30 (月) 21:00 ~
      * 1章軽く読んできて、今後の配分を決める


## 20231016

  * [LLMコンペ](https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview)の振り返り
    * akic
      * 軽量モデルで学習を行うコンペだと思っていたけど、パラメータ数が70Bみたいに多いモデルが動かせるNotebookがでてきた所から流れが変わったように感じた
      * 問題の難易度ごとに使うモデルを変える発想は思いつかなかった
      * モデル外の技(RAGや問題の難易度ごとの調整等)が効果を発揮しているように感じた
    * yusk
      * 70B の LLM って何？
        * https://www.kaggle.com/code/simjeg/platypus2-70b-with-wikipedia-rag
        * 70 billion の params らしい
      * [まとめ記事](https://zenn.dev/nishimoto/articles/aff1fba9c75c34)を読んでなるほどーとなっていた
        * wikipedia のかけ気づくのえぐいなー
    * fukku
      * [1st solution](https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446422)
        * loraでLLMをfinetuneする
        * [h2o llm studio](https://github.com/h2oai/h2o-llmstudio)
      * コンペ中に共有されていたwikipediaのdumpがバグってる？ので修正したりしている例が多い
      * 学習に必要なデータセットはコンペで共有された60kや40kで十分
      * RAGのembeddingをどう使うか・うまく検索するにはどうするかが重要

      * https://zenn.dev/yume_neko/articles/7347ba6b081e93
  * 次回以降の話
    * コードを書いてみる
      * LLM解法やコードを見直してみる
      * stable diffusionのコードリーディング
      * SBMなどが出てこない気がするのでそのあたり書いてからやりたい by yusk
      * 最初は小さいコードを書いて理解してみる(numpyでMCMC書くなど)
    * 岡野原さんのLLM本
      * https://www.amazon.co.jp/dp/4000297198
  * 次回
    * 10/23 (月) 21:00 ~
      * 次回以降の話


## 20230828 ~ 20231010 LLMコンペ
* [LLMコンペ](https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview)の内容の確認
  * 10/3 (火) 参加・合併締切
  * 10/10 (火) 提出締切
  * 提出は1日5件まで、最終提出は2件まで
  * 問題設定
    * 最近のLLMでは難しい質問にも答えられるようになっている
    * GPT-3.5を用いて質問と回答のペアを作ったものに対して、低コストなモデルでも同じように回答させるような手法を作り上げたい
    * 質問と回答はウィキペディアから抽出されている
  * 評価指標
    * MAP@k
      * k個の予測値に対して正解をなるべく上位の順位で予測することが大事な指標
      * たとえばMAP@3で正解が1だとした時に、
        * [1, 2, 0]と予測すると1
        * [2, 1, 0]と予測すると1/2
        * [2, 0, 1]と予測すると1/3
        * [1, 0, 1]と予測すると1
        * [0, 1, 1]と予測すると1/2
      * となる
      * https://github.com/benhamner/Metrics/blob/master/Python/ml_metrics/average_precision.py
  * データ
    * trainデータが200件
      * id, prompt, A, B, C, D, E, answer
    * testデータが4000件
    * wikipediaから頑張って学習用データセットを作る必要がある
      * https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/434495
      * https://www.kaggle.com/code/jjinho/open-book-llm-science-exam
      * https://www.kaggle.com/code/quangbk/open-book-llm-science-exam-reduced-ram-usage
        * 問題にコンテキストをつけるものっぽい、データセットを作るものではなさそう
    * [60k Dataset Achieves LB 0.830+](https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/436383)
  * eda
    * https://www.kaggle.com/code/lusfernandotorres/kaggle-llm-science-exam-eda-deberta


## 20231002

  * [LLMコンペ](https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview)を進めていく
    * 各自Codeの作成・提出
      * akic
        * LLaMAの存在を把握した
          * パラメータの多い(70Bとか)商用利用が出来るLLaMA2がある
        * RAGを使いつつ、プロンプトも意識的に書かれていた
        * ShardedLlama
          * LLaMA2をnotebook上で動くようにしたもの
      * ys
        * これ見てた
          * https://www.kaggle.com/code/zulqarnainali/explained-platypus2-70b-wikipedia-rag
        * platypus? 使ってるのが 0.872
        * 学習コードは見当たらず?
          * データ?モデル?
            * https://www.kaggle.com/datasets/simjeg/platypus2-70b-instruct-part1/data
      * fukku
        * https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/442595
        * これに色々拡張加えて0.872
  * 次回
    * 10/16 (月) 21:00 ~

## 20230920

  * [LLMコンペ](https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview)を進めていく
    * 各自Codeの作成・提出
      * akic
        * How To Train Open Book Model 1と2の切り貼りをしていた
      * yusk
        * 自分の notebook を対象に add data できた
          * 便利
        * 1 と 2 繋がった
          * 元の同名の notebook を消してから add しないと壊れた
            * 入れ直したら直った
      * fukku
        * subした
        * CV: 0.8683
        * いろんなバリエーション作ってensembleしたいけどやり方わからない
  * 次回
    * 10/2 (月) 21:00 ~
    * 予定
      * 10/9 (月) 21:00 ~

## 20230913

  * [LLMコンペ](https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview)を進めていく
    * 各自Codeの作成・提出
      * [60k Dataset スターター1](https://www.kaggle.com/code/cdeotte/how-to-train-open-book-model-part-1)
      * [60k Dataset スターター2](https://www.kaggle.com/code/cdeotte/how-to-train-open-book-model-part-2)
    * akic
      * DeBERTaV3全然わからん
    * yusk
      * part1 notebook実行中
        * version 切れた
        * データ量増やして試してみたい
      * part2 と part1 をどう繋げるのか次回調べる
    * fukku
      * part1 notebook実行中
        * 色々option試すだけでも面白そう
        * Trainerの中身を理解したい
    
## 20230904

  * [LLMコンペ](https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview)を進めていく
    * NotebooksやDiscussions確認
      * [60k Dataset Achieves LB 0.830+](https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/436383)
      * https://www.kaggle.com/code/quangbk/open-book-llm-science-exam-reduced-ram-usage
        * 問題にコンテキストをつけるものっぽい、データセットを作るものではなさそう
          * wikipedia は context をつけるのに使っているっぽい
      * [60k Dataset スターター1](https://www.kaggle.com/code/cdeotte/how-to-train-open-book-model-part-1)
      * [60k Dataset スターター2](https://www.kaggle.com/code/cdeotte/how-to-train-open-book-model-part-2)
    * Open Book approach(RAG - Retrieval Augmented Generation)について整理する
      * 問題設定としては質問を与えられて、適切な回答を選択する
      * TODO: 何らかのやり方で質問と回答のペアのデータセットを作る
      * 準備として、wikipediaの全ページのタイトルのembeddingを作成する
      * 次に、質問と全ての回答を結合したもののembeddingを作成し、それと関連が深いwikipediaのタイトルをn個抽出する
      * 抽出したタイトルに対応するwikipediaの全文を文章ごとにembedding化し、その中で質問と全ての回答を結合したもののembeddingに近い文章を得て、これをcontextとして扱う
      * contextをprompt(質問文)と結合する
      * AutoModelForMultipleChoiceを使って、質問と回答のペアの中でどれが一番尤もらしいかを推論する
      * TODO: 
        * AutoModelForMultipleChoice
        * データセットの作り方
    * 各自Codeの作成・提出
    
  * 次回
    * 9/20 (水) 21:00 ~
    * 予定
      * 10/2 (月) 21:00 ~
      * 10/9 (月) 21:00 ~


## 20230828
  * LLMコンペの準備～滑り出し
    * https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview
  * 次回
    * 9/4 (月) 21:00 ~
      * LLMコンペを進めていく
        * NotebooksやDiscussions確認
        * 各自Codeの作成・提出


## 20230821
  * 拡散モデル本自体の振り返り
    * akic
      * 数式自体は分からないところが多かったけど、そもそも存在を知らない物の足掛かりとして勉強になった
      * 拡散モデルの部品自体は作れそうなものがいくつもあったので、部品単位でも使えるようになりたい
    * yusk
      * 拡散モデルについて、できてたモデルを使ったことしかなかったので、仕組みを知れてよかった
      * 前半部分の基礎部分をもっとしっかりやっておきたい
      * Stable Diffusion が SOTA じゃないようなので、今後も楽しみ
    * fukku
      * 拡散モデルの基礎の部分要素からボトムアップ式で進んでいく形式だったため、割と最後の方まで全体像が掴めていなかったが後半にいくにつれ抽象的に俯瞰できるようになり結果的にはよかったと感じた
      * 特にMCMCサンプリングや尤度推定など忘れかけてたかつ普段使わない技術が実際に使われる部分を復習することができた
      * まだ一から導出や実装をやれと言われたら厳しいが、今後使っていくことがありそうなのでその地盤固めはできていそう
      * 
  * 活動内容を決める
    * 候補
      * コードを書いてみる
        * [stable diffusion](https://github.com/CompVis/stable-diffusion)のコードリーディング
          * SBMなどが出てこない気がするのでそのあたり書いてからやりたい by yusk
        * 最初は小さいコードを書いて理解してみる(numpyでMCMC書くなど)
        * 
      * kaggle等で良さげなものをやってみる
        * LLMコンペ
          * https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview
      * 岡野原さんのLLM本
        * https://www.amazon.co.jp/dp/4000297198
    * 次回以降の活動
      * LLMコンペ
          * https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview
  * 次回
    * 8/28 (月) 21:00 ~
      * LLMコンペの準備～滑り出し
          * https://www.kaggle.com/competitions/kaggle-llm-science-exam/overview



## 20230807
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * 範囲: 4.5~
  * ~21:45 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく
    * akic
      * 対称性を考慮した拡散モデル
        * 対称性を帰納バイアスとして用いる事で、効率改善や汎化性能を改善する
        * fはgに対し不変: fの結果とg適用後のfの結果が同じ状態
        * fはgに対し同変: g適用後のfの結果はそれぞれが同じになっている状態
      * 4章まとめ
        * 拡散モデルの発展系として、条件付き生成、部分空間拡散モデル、対称性を考慮したモデルの紹介があった
        * 対称性を考慮する場合、対称性に関する理解を深めることが重要になる
    * yusk
      * 関数 f が操作 g に対して不変
        * f(g(x)) = f(x)
      * 関数 f が操作 g に対して同変
        * f(g(x)) = ρ(g)(f(x))
          * ρ: 操作を入力とする関数、fの出力に対して適用できる関数を返す
            * 不変: ρ が恒等写像
        * 同変は、入力に対し適用した操作が出力に対してそのまま適用することが多い
          * ρ(g) = g
          * e.g. 画像を平行移動 -> 出力画像も平行移動
      * 拡散モデルを使った対称性を使った生成
        * 目標: SE(3) 操作に対して不変にする
          * 並進移動: 重心が常に原点になるように設定した重心フリーの系とすることで達成
          * 自己回転
    * fukku
      * 対称性：特定の操作を加えても変わらない性質・不変性
      * 配座：結合によって定まる化合物の空間的な原子の配置
        * 回転や並進に対して不変
        * 不変性を持つサンプリングは従来難しかった
      * 原子どうしの繋がりグラフを与えられた時、安定した配座は？を条件付き生成問題として解く
        * 並進と回転、鏡像反転をSE(3)と呼ぶ
        * 生成される配座の周辺尤度がSE(3)に対して不変であれば生成分布も不変である
          * 並進に関しては重心が常に原点となるようにすれば良い
          * 回転、鏡像反転に関しても正規分布は等方性を持つため、回転しても不変
          * 一例として、グラフニューラルネットワークを用いると、逆拡散過程が自己回転に対して同変性を達成できる
  * 次回
    * 8/21 (月) 21:00 ~
      * 拡散モデル本自体の振り返り
      * 活動内容を決める
        * 候補: コードを書いてみる


## 20230724
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * 範囲: 4章
    * 形式: 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく
  * ~21:45 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく
    * akic
      * 条件付き生成
        * 拡散モデルがアプリケーションとして使われる場合に一般的
        * 条件無し生成は各時刻のスコアがあれば生成でき、条件付き生成は各時刻の条件付き確率のスコアがあれば生成できる
        * 条件付き確率のスコアは分類モデルの勾配と条件無し確率の勾配の和で表される
      * 分類器ガイダンス
        * 分類モデルを学習し、分類モデルの入力の勾配を求め、条件付け部分に重みを付け加える
        * 重みが大きくなると条件らしいサンプルが出力される
        * 拡散モデルで扱う場合、異なるノイズレベルのスコアが必要
        * 入力のほとんどの情報が結果と関係ない場合に品質が低下する
      * 分類器無しガイダンス
        * 通常の学習で条件部をドロップアウトさせて行う
      * 部分空間拡散モデル
        * 元の入力空間での確率モデルを矛盾なく定義できる
        * 計算量をおさえ、抽象的な表現を得ながら尤度をそのまま評価できる
    * yusk
      * 条件付き生成
        * 条件付き確率のスコアさえあればできる
      * 分類器ガイダンス
        * 分類モデルを学習し、次に、得られた分類モデルの入力についての勾配を求める
        * 条件付け部分にさらに重みをつける
        * この重みを調整することで忠実さと多様性を調整できる
        * 問題
          * 異なるノイズレベル(時刻)のスコアが必要になる
          * 入力xのほとんどの情報がyとは関係ない場合に、実際のyとは関係ない入力変化を捉えてしまう
      * 分類器なしガイダンス
        * 分類気を使わずに条件スコアを直接学習する
        * 条件部を一定確率でドロップアウトして学習する
        * 学習を大きく単純化できている
      * 部分空間拡散モデル
        * 拡散過程において入力次元数が変わらないことの問題点
          * 高次元のスコア関数を学習しなければならないこと
          * 計算量が大きいこと
          * ノイズであったとしてもデータを要約した抽象化された表現が得られないこと
        * 解決手段1
          * あらかじめ自己符号化器を学習しておき、複合器も用意する
          * 次元数が少なくなった潜在空間上で、拡散モデルを学習する
          * Stable Diffusion もこれ
        * 解決手段2: 部分空間拡散モデル
          * 1に比べ、元の入力空間での確立モデルを矛盾なく定義できる
          * 次元圧縮の仕方を拡散モデルの中で統一的に扱える
          * 扱う次元数が変わるものの尤度を計算できる
        * 以下の特徴を用いる
          * 線形部分空間に近似できるデータ分布を等方性正規分布を使って拡散していった場合
          * データが存在する部分空間に直行する部分空間は
          * データが存在する部分空間に比べずっと早く正規分布に近づくと考えられる
    * fukku
      * 分類器ガイダンス
        * 分類器を学習することで、その分類器の勾配を用いて条件付け生成が可能になる
          * 欠点として、各ステップに対応した分類器が必要になる
          * 入力xが、出力yと関係がない時に関係のない入力変化を捉えてしまい、出力の品質が下がる
      * 分類器なしガイダンス
        * 分類器を直接学習せずに、条件スコアを学習する手法
        * 入力がない状態も少し含めて学習させると正則化として機能する
        * FiLMと呼ばれる手法や、Transformerの仕組みを用いて実現するのが一般的
      * 部分空間拡散モデル
        * 入力から出力まで一定の次元だと計算量がかなり大きい・高次元なので学習が難しい・次元を絞る機構がないため抽象化した表現が得られづらい
          * 1. 自己符号化器を学習しておいて、潜在空間上で拡散モデルを訓練する
          * 2. 最初のうちはそのまま学習->十分拡散されていない非正規分布な部分空間に絞って学習
            * 部分空間をとる処理はたとえば画像だとpoolingなどで表現できる

  * 次回
    * 8/7 (月) 21:00 ~
      * 範囲: 4.5 ~
      * 形式: 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく

## 20230703
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * 範囲: 3章
    * 形式: 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく
  * ~21:45 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく
    * akic
      * 3.5
        * オイラー・丸山法でプラグイン逆向きSDEが解ける
      * 3.6
        * SDEは同じ周辺分布を持つODEに変換でき、確率フローODEと呼ばれる
        * 確率フローODEの場合は対数尤度の不偏推定を効率的に求めることが出来るが、尤度を不偏推定にするには工夫が必要
        * SDEとODEを用いた理論解析や手法を用いる事が出来るようになった
      * 3.7
        * 拡散モデルが持つ生成モデルとしての特徴
      * まとめ
        * 連続時間化された拡散モデルはSDEで表せる
        * SDEを逆にたどる場合は、スコアを使ったSDEで表される
        * SDEで生成過程を定義できる
        * 確率フローODEは、ノイズとサンプルをスコアを使って相互に変換できるし、対数尤度の不偏推定を求めれる
        * 拡散モデルは固定の認識モデルで、複雑な生成過程を簡単な生成過程の組み合わせに自動で分解して独立に学習できるし、複数のモデルを組み合わせられる
    * yusk
      * 3.5 デノイジングスコアマッチングで求められたスコアをSDE表現の逆拡散過程の式に代入
        * -> 逆拡散過程をシミュレーション -> データ分布からサンプルを得る
          * == プラグイン逆向き SDE
        * t: T~0 でノイズからサンプリング
        * 例: オイラー・丸山法でサンプリング
      * 3.6: 任意のSDEは、同じ周辺分布 p_t(x) をもつ常微分方程式(ODE: Ordinary Differential Equations)に変換することができる
        * 常微分方程式
          * 数学において、未知関数とその導関数からなる等式で定義される方程式である微分方程式の一種で、未知関数が本質的にただ一つの変数を持つものである場合をいう。
        * ODE は確率的な要素を含まない
          * ODE を解くことで逆向き SDE と同じデータ分布からサンプリングできる
        * 確率フロー ODE
          * 決定的な過程
          * ニューラル ODE の特殊系
          * データ分布と事前分布の間の一対一対応を与える
          * これと SDE の周辺尤度は一致する
    * fukku
      * 3.7
        * 従来の潜在変数モデル: VAEなど
          * 生成モデルと認識モデルを同時に最適化する必要がある 
            * データの分布を推定する+データを入力した時にそのデータの性質を当てにいく
        * 拡散モデル
          * 生成モデル・認識モデルをどの拡散過程でも同じものを使うことができるため、学習が安定する
          * 表現力が豊富
          * 複雑な生成問題を拡散過程に分割することによって簡単にすることができる
          * 拡散過程のステップ数を必要とするため、遅い
      
  * 次回
    * 7/24 (月) 21:00～
      * 範囲: 4章 ~
      * 形式: 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく


## 20230612
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * 範囲: 3章
    * 形式: 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく
  * ~21:45 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく
    * akic
      * 3.1 確率微分方程式
        * 微小時間あたりの変化量dxを求める式であり、決定的に変化する量と、ランダムに変化する量の和で構成される
        * dwは平均が0,分散が微小時間間隔τである正規分布
        * ウィナー過程が定める経路は通常微分不可能
        * ドリフト係数(f): ベクトルを入力してベクトルを出力
        * 拡散係数(G): ベクトルを入力として行列を出力
        * fとGがそれぞれリプシッツ性を持つときSDEの解が存在する
        * ウィナー過程のランダム性により、様々な経路が確率的に得られる。その時のx(t)の確率密度をpt(x)で表す
        * 入力を長い時間拡散させた後に得られる分布pT(x)を事前分布と呼ぶ
        * 事前分布とは、データを得る前に、事前の情報から与えられる分布です
        * 0≤s<t≤Tの時、pst(x(t)|x(s))を条件付確率として扱う
    * yusk
      * 3.1 はSDE(確率微分方程式)についてざっくり、3.2 で SBM などについての SDE について話してある
        * 確率微分方程式: 1つ以上の項が確率過程である微分方程式であって、その結果、解自身も確率過程となるものである
          * 確率過程: 時間など，条件によって変化する確率変数の数理モデルである。
      * 3.2 x(t+Δt) を考えてΔt->0 を求めると SDE である dx が求まる
        * SBM -> 分散発散型 SDE (VE-SDE)
        * DDPM-> 分散保存型 SDE (VP-SDE)
      * 3.3 拡散過程の SDE が与えられた時の逆拡散過程の SDE は付録 A.6 により与えられる
      * 3.4 各時刻のスコアを学習する場合、条件付き確率p_0t(x(t)|x(0)) を知る必要がある
        * SDE が前述の場合、それは正規分布で表すことができる
        * それらなどにより、VE-SDE, VP-SDEの条件付き確率が求まる
        * これを用い、各時刻のスコアはデノイジングスコアマッチングで推定できる
        * 推定されたスコアを逆拡散過程に利用することによりサンプル生成をシミュレーションすることができる
        * この場合の明示的スコアマッチングの目的関数も定まる
    * fukku
      * リプシッツ性
        * 入力a - 入力b < K(出力a - 出力b)が成り立つこと（だったはず）
        * https://mathlandscape.com/lipschitz/
      * 連続化された拡散モデルはSDEの形で表すことができる
          * 逆拡散過程はスコアを用いて別のSDEの形で書ける
          * スコアはスコアマッチングにより解くことができ、推定スコアを用いて逆拡散過程に代入することでデータ分布からのサンプリングをシミュレートできる

  * 次回
    * 7/3 (月) 21:00～
      * 範囲: 3.5 ~
      * 形式: 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく

## 20230605
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
      * 範囲: 2.4.1 ~ まとめ
      * 発表: fukku
    * 範囲決め
      * 3章
        * 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく？
  * 次回
    * 6/12 (月) 21:00～
      * 範囲: 3章
      * 形式: 各々の理解をhackmdに書きながら・わかったことなどまとめながら進めていく

## 20230522
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
      * 範囲: 2.3.2 ~ 2.3.4
      * 発表: yusk
    * 
  * 次回
    * 6/5 (月) 21:00～
      * 範囲: 2.4.1 ~ まとめ
      * 発表: fukku

## 20230508
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
      * 範囲: 2.1 ~ 2.3.1
      * 発表: akic
* 次回
  * 5/15 (月) 21:00～
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
      * 範囲: 2.3.2 ~ 2.3.4
      * 発表: yusk

## 20230424
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
      * 範囲: 1.5.5 ~ 1章まとめ
      * 発表: fukku
    * 次回以降の範囲決め
      * akic
        * 2.1 ~ 2.3.1
      * yusk
        * 2.3.2 ~ 2.3.4
      * fukku
        * 2.4.1 ~ まとめ
* 次回
  * 5/8 (月) 21:00～
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
      * 範囲: 2.1 ~ 2.3.1
      * 発表: akic


## 20230417
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * yuskが1.5.1 ~ 1.5.4

* 次回
  * 4/24 (月) 21:00～
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
      * 範囲: 1.5.5 ~ 1章まとめ
      * 発表: fukku


## 20230403
  * 輪読
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * akicが1.4まで

* 次回
  * 4/10 (月) 21:00～
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * 範囲: 1.5.1 ~ 1.5.4
    * 発表: yusk



## 20230327
  * 輪読を始める
    * [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
  * スケジュール
    * ~21:30 本に目を通す
      * akic
        * 1.5.1までなんとなく
      * yusk
        * 1章ざっと
      * fukku
        * 1.5.3くらい
        * +[要約スライド](https://hillbig.github.io/WorkshopOT2023_diffusion_okanohara.pdf)
    * 21:30~ 仮割り当て
      * 4/3 ~1.4 akic 
      * 4/10 ~1.5.4 yusk
      * 4/17 ~1章まとめ ふっく

* 次回
  * 4/3 (月) 21:00～
    * 輪読 [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * akicが1.4まで

## 20230313 輪読候補
* 機械学習・AI
  * [評価指標入門〜データサイエンスとビジネスをつなぐ架け橋](https://www.amazon.co.jp/dp/B0BT7GBF5L) 
  * [深層学習の原理に迫る　数学の挑戦 (岩波科学ライブラリー)](https://www.amazon.co.jp/dp/B09FPBQM9C)
  * [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
  * [数理モデル思考で紐解くRULE DESIGN -組織と人の行動を科学する](https://www.amazon.co.jp/dp/B0BPY77S96/)
  * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
  * [機械学習エンジニアのためのTransformers ―最先端の自然言語処理ライブラリによるモデル開発](https://www.amazon.co.jp/dp/4873119952)
* ソフトウェア
  * [アルゴリズムとデータ構造(第3版)](https://www.amazon.co.jp/dp/4627726538)
  * [読みやすいコードのガイドライン -持続可能なソフトウェア開発のために](https://www.amazon.co.jp/dp/B0BGX2VGYR)
* その他
  * [エンジニアリングマネージャーのしごと ―チームが必要とするマネージャーになる方法](https://www.amazon.co.jp/dp/4873119944)
  * [解像度を上げる――曖昧な思考を明晰にする「深さ・広さ・構造・時間」の４視点と行動法](https://www.amazon.co.jp/dp/B0BH3ZBK7C)
  * [INSPIRED 熱狂させる製品を生み出すプロダクトマネジメント](https://www.amazon.co.jp/dp/4820727508)

## 20230313

* 議事録
  * 輪読する本を決める会
    * akic
      * GPT本はピンとくるやつが無かった
    * yusk
    * fukku
      * 機械学習・AI
        * [評価指標入門〜データサイエンスとビジネスをつなぐ架け橋](https://www.amazon.co.jp/dp/B0BT7GBF5L) 
        * [深層学習の原理に迫る　数学の挑戦 (岩波科学ライブラリー)](https://www.amazon.co.jp/dp/B09FPBQM9C)
        * [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
        * [数理モデル思考で紐解くRULE DESIGN -組織と人の行動を科学する](https://www.amazon.co.jp/dp/B0BPY77S96/)
        * [AIエンジニアのための機械学習システムデザインパターン](https://www.amazon.co.jp/dp/B08YNMRH4J)
        * [機械学習エンジニアのためのTransformers ―最先端の自然言語処理ライブラリによるモデル開発](https://www.amazon.co.jp/dp/4873119952)
      * ソフトウェア
        * [アルゴリズムとデータ構造(第3版)](https://www.amazon.co.jp/dp/4627726538)
        * [読みやすいコードのガイドライン -持続可能なソフトウェア開発のために](https://www.amazon.co.jp/dp/B0BGX2VGYR)
      * その他
        * [エンジニアリングマネージャーのしごと ―チームが必要とするマネージャーになる方法](https://www.amazon.co.jp/dp/4873119944)
        * [解像度を上げる――曖昧な思考を明晰にする「深さ・広さ・構造・時間」の４視点と行動法](https://www.amazon.co.jp/dp/B0BH3ZBK7C)
        * [INSPIRED 熱狂させる製品を生み出すプロダクトマネジメント](https://www.amazon.co.jp/dp/4820727508)
  * 輪読本は「拡散モデル データ生成技術の数理」に決定
    * https://www.amazon.co.jp/dp/400006343X


* 次回
  * 3/27 (月) 21:00～
    * 輪読を始める
      * [拡散モデル データ生成技術の数理](https://www.amazon.co.jp/dp/400006343X)
    * スケジュール
      * ~21:30 本に目を通す
      * 21:30~ 全体の仮割り当て
