Upgrade to Pro — share decks privately, control downloads, hide ads and more …

物理量次元を持つテンソルをサポートした 深層学習ライブラリ Phlower の紹介

物理量次元を持つテンソルをサポートした 深層学習ライブラリ Phlower の紹介

物理シミュレーションと機械学習・深層学習を組み合わせた「Physics-informed Machine Learning」は、 物理現象をモデリングする新しい手法として注目を集めています。 物理シミュレーションでは、時間(T)、質量(M)、長さ(L)といった物理量の次元の整合性を保つことが、 信頼性の高い計算のために不可欠です。 私たちは、この考え方を深層学習にも適用するため、PyTorch のテンソルを拡張して物理量の次元情報を持たせ、 計算中の次元整合性を保証できるオープンソースライブラリ Phlower を開発しました。 本発表では、物理量次元の保証機能を含めた Phlower の主要機能を紹介します。

Avatar for Riku Sakamoto

Riku Sakamoto

January 24, 2026
Tweet

More Decks by Riku Sakamoto

Other Decks in Technology

Transcript

  1. 自己紹介 坂本 陸(Sakamoto Riku) • ML Engineer(RICOS Co. Ltd.) •

    Numerical Simulation • Python, C#, C++ • OSS ◦ Phlower, Dagstream (maintainer) ◦ Numpy, PyVista (contributor) GitHub: @riku-sakamoto 2 Scipy 2025 (@Tacoma)
  2. 本日の内容 • 物理シミュレーションを対象にした深層学習/機械学習を支援するライブラリ としてPhlower を開発した • Phlower は PyTorch を利用しつつ物理シミュレーションを扱う上で以下のよ

    うな機能を用意した ◦ 物理量次元をサポートしたPyTorch テンソルのラッパー ◦ Shape の位置に意味をもたせたShape Semantics機能 ◦ モデルのパラメータ、実行順序をYAML ファイルで管理する機能 3
  3. 目次 • 背景 ◦ 物理シミュレーションとは ◦ 物理シミュレーションと機械学習 • Phlowerによる機械学習 ◦

    要望1:物理量次元の整合性を担保したい ◦ 要望2:テンソルの各次元の意味づけをしたい ◦ 要望3:モデルの設定をYAMLで管理したい 4
  4. 目次 • 背景 ◦ 物理シミュレーションとは ◦ 物理シミュレーションと機械学習 • Phlowerによる機械学習 ◦

    要望1:物理量次元の整合性を担保したい ◦ 要望2:テンソルの各次元の意味づけをしたい ◦ 要望3:モデルの設定をYAMLで管理したい 5
  5. 背景:物理シミュレーション • 現実世界の物理現象をコンピュータ上で再現・解析する技術 • 実験や観察が困難な状況でも、物理的な挙動を予測・理解することが可能 6 オートバイ周辺の空気の流れ 車体の衝突再現[1] ➔ 物理シミュレーションは工業製品の性能向上や安全性向上を実現する上で重要

    [1] 水越 秀雄, 衝撃変形シミュレーションの基礎と応用例, 軽金属, 2004, 54 巻, 7 号, p. 302-306, 公開日 2021/06/30, Online ISSN 1880-8018, Print ISSN 0451-5994, https://doi.org/10.2464/jilm.54.302, https://www.jstage.jst.go.jp/article/jilm/54/7/54_302/ _article/-char/ja
  6. 背景:物理シミュレーション • シミュレーションの代表的なプロセス (Process of simulation) ◦ 主に流体の現象を予測するCFD(Computational Fluid Dynamics)を例にする

    7 形状生成 メッシュの作成 求解 数時間〜数週間 ー 数分~数時間 代数方程式の求解 節点 有限要素 計算時間 概要 CADによるモデリング
  7. • 機械学習による物理シミュレーションの問題設定 背景:物理シミュレーションと機械学習 8 解析領域 境界条件 初期条件 支配方程式 速度場 密度

    圧力場 動粘性係数 出力 入力 ・底面は 0 m/s ・左から 20 m/s ・Navier-Stokes 方程式 (非圧縮・定常)
  8. 目次 • 背景 ◦ 物理シミュレーションとは ◦ 物理シミュレーションと機械学習 • Phlowerによる機械学習 ◦

    要望1:物理量次元の整合性を担保したい ◦ 要望2:テンソルの各次元の意味づけをしたい ◦ 要望3:モデルの設定をYAMLで管理したい 9
  9. 目次 • 背景 ◦ 物理シミュレーションとは ◦ 物理シミュレーションと機械学習 • Phlowerによる機械学習 ◦

    要望1:物理量次元の整合性を担保したい ◦ 要望2:テンソルの各次元の意味づけをしたい ◦ 要望3:モデルの設定をYAMLで管理したい 10
  10. Phlower:物理量次元を整合させる • 物理量次元とは ◦ 長さ、質量、時間、電流、熱力学温度、物質量、光度の7つの基本次元からなる 11 長さ 質量 時間 電流

    温度 物質量 光度 L M T I 𝜣 N J 例: 速度 加速度 力 圧力 LT-1 LT-2 MLT-2 ML-1T-2 注意点: mm や kg といった単位ではない
  11. Phlower:物理量次元を整合させる • 次元解析 (Dimension Analysis) ◦ 数式の物理量次元が揃っていることを確かめること ◦ 物理的に意味のある計算であることを保証する 12

    Navier-Stokes 方程式(非圧縮・定常) 無次元Navier-Stokes 方程式(非圧縮・定常) * は無次元化されていることを表す
  12. Phlower:物理量次元を整合させる • 物理量次元の情報をもつ PhlowerTensor ◦ PhlowerTensor はtorch.Tensor のラッパー ◦ 物理量次元に関する計算(次元解析)は

    PhlowerDimensionTensor が担当する 14 ➔ torch.Tensor の値と 物理量次元を同時に定義できる ➔ PyTorch の関数に引数として入力することができる
  13. 目次 • 背景 ◦ 物理シミュレーションとは ◦ 物理シミュレーションと機械学習 • Phlowerによる機械学習 ◦

    要望1:物理量次元の整合性を担保したい ◦ 要望2:テンソルの各次元の意味づけをしたい ◦ 要望3:モデルの設定をYAMLで管理したい 17
  14. Phlower:テンソルの各次元に意味をつけたい • Shape Semantics ◦ テンソルの各次元に意味を解釈する機能 19 時間ステップ 節点数 空間次元

    ・・・ 特徴量次元 任意 必須 任意 必須 時間ステップ X方向節点数 Y方向節点数 Z方向節点数 空間次元 ・・・ 特徴量次元 任意 必須 必須 必須 任意 必須 ❏ ルール1:非構造データ用Shape ❏ ルール2:ボクセルデータ用Shape
  15. 目次 • 背景 ◦ 物理シミュレーションとは ◦ 物理シミュレーションと機械学習 • Phlowerによる機械学習 ◦

    要望1:物理量次元の整合性を担保したい ◦ 要望2:テンソルの各次元の意味づけをしたい ◦ 要望3:モデルの設定をYAMLで管理したい 23
  16. 29

  17. 33