2026年1月2日金曜日

単調性制約と相互作用制約

これまでは予測性能向上を目的にモデルを組んできました。が、お客様からよく聞かれたのはその解釈性、これまでの知見との整合性、妥当性です。予測性能が下がっても、解釈性が良いモデルの方が求められる場合もあるでしょう。

簡単なのは専門知見をベースとした制約をモデルに加えることです。単調性制約と相互作用制約は、モデルの解釈性を高めるためのツールの一つです。すでに有名なフレームワークには実装されていますので、トレードオフを提示するのは容易でしょう。


1. 単調性制約 (Monotonicity Constraints)
概要: 特徴量と予測値の関係に、単調増加または単調減少という制約を課すもの。

単調増加: 特徴量の値が増加すると、予測値も増加
単調減少: 特徴量の値が増加すると、予測値は減少。

利点:
解釈性向上: モデルの挙動が直感的になり、説明可能性が高まる。
過学習抑制: 不自然な関係性を学習することを防ぎ、汎化性能の向上が期待できる。
ドメイン知識の活用: 特定の特徴量と予測値の関係について、専門家の知識をモデルに組み込むことができる。

実装: XGBoost、LightGBM、scikit-learnのGeneralized Linear Models など。モデルの学習時に、どの特徴量に対してどの単調性を適用するかを指定。


2. 相互作用制約 (Interaction Constraints)
概要: モデルが学習できる特徴量間の相互作用を制限するもの。特定の組み合わせの特徴量だけが相互作用を持つように制約できる。

利点: 単調性制約と同様(解釈性向上、過学習抑制、ドメイン知識の活用)。

種類:
禁止された相互作用 (Forbidden Interactions): 特定の組み合わせの特徴量間の相互作用を禁止する。
必須の相互作用 (Mandatory Interactions): 特定の組み合わせの特徴量間の相互作用を強制する。

実装: LightGBM、EBM (Explainable Boosting Machine) など。


やり残し事項 2025

冬休みに入り、依頼されていた査読を実施し、自身の成果を修正し、新たな計算を始め、必要な知識を仕入れていると年を越してしまいました。

2024年のやり残し事項は優先度低のみでした。
GPGPUに関してはSPHコードで取り組みましたがなかなか速くならず。プロに頼まないと速くならない点は理解していましたが、それでもと少しはと期待していました。難しいですね。
ということでDtransuのGPU化は取りやめ。地下水の仕事は別部署になってしましましたので、もう触ることはないかもしれません。
地表流ー地下水ー変形の連成はSPHで組みましたが、まだまだ実務で使えるレベルには到達していません。あと一歩なのですが、まだまだ難しそうです。これは優先度低のまま残しておきます。

短期目標には再び、「機械学習のスキル増強」を掲げましょう。性能、トレンドの変化が早すぎてなかなか追いつけませんでした。横のつながりが欲しいところです。

中期目標は順調。このまま続けます。

優先度中:機械学習のスキル増強
優先度低:流体+個体(不連続体+連続体)+振動

今年も歩みを止めないよう、進んで参ります。

2025年12月21日日曜日

図書:高リスク分野のための機械学習

最近、書店に赴く頻度が低くなりました。 
新知見を得られることが少なくなったからでしょうか。漸く一般的な技術論を習得する段階を卒業したと捉えてよいのかもしれません。

それでも、エッジデバイスや機械学習分野は私にとって新しく、まだまだ書店の図書や雑誌レベルでも役に立つことがあります。
久しぶりにAI要約でなく自力で読んだ図書です。気になったキーワード等を備忘録として残しておきましょう。

高リスク分野のための機械学習 - O'Reilly Japan

2章 解釈、説明
NIST AI RMF: 米国国立標準技術研究所 AI Risk Management Frarmework

信頼性:妥当性、有効性、安全性、管理されたバイアス、セキュリティ、透明性と説明責任、説明可能性と解釈可能性、などの特性をもつ。

説明可能性: どのような内部プロセスやメカニズムで出力を生成したか。
解釈可能性: 人間の背景知識を活用しながら心的表現として出力を捉える能力。AI側の説明が必要。

説明可能モデル: GAM、制約付きGBM
因果モデル: 予測対象と因果的に結びついた現象を立証可能な方法で表現。EconML

事後的説明
特徴量重要度: 大局的、プラスのみ
特徴量寄与度: 局所的、±
SHAP: Shapely Adaditive Explanations
shapely 値:平均予測からのオフセット(差分)。因果関係や解釈を導き出そうとするのは誤り。

AIインシデント 英国Aレベルテスト: 過去の学校成績に基づいて個々のスコアを調整するという考え方に透明性はあるものの、明らかに偏っている。


3章 安全性、性能
校正: 最後に0-1の範囲の数値を得たとしても、確率であるとは限らない。

ISO
信頼性: ある条件下で、ある時間間隔の下、故障することなく要求通りに機能する能力。
ロバスト性: 様々な状況下で性能レベルを維持する能力。

仕様不足: 適合するモデルが多数存在。ランダムシード、スレッド数、GPUの仕様数で性能が大きく変化。
残差分析: 予測とモデル誤差における特徴量重要度の比較 
感度分析:デプロイ後のモデル監視: データドリフト

AIインシデント 自動運転死亡事故: 成熟した安全文化の欠如


4章 バイアス
人間的・認知的バイアス
アンカリング
利用可能性ヒューリスティック: 容易に想起される事例を過大評価する傾向。思い出しやすさと正確さの混同。
ダニングクルーガー効果、インポスター症候群: 能力の低い人ほど自己スキルを過大評価。またはその逆。
グループシンク
マクナマラの誤謬: 数値化された情報のみに基づく意思決定

不利益な影響の比率: Adverse Impact Ratio, AIR 0.8

利用可能であるという理由だけで選ばれた観察データを説明可能性のないモデルに投入し、ある性能指標が最大化されるまでハイパーパラメータを調整し続けるーこれは「データサイエンス」と称されることがあるかもしれないが、科学そのものを実践しているとは言えない。
科学的方法の基本原則の一つは仮説が検証可能であり、実験が解釈可能であり、モデルが反証可能、あるいは少なくとも検証可能であるべきという点にある。

2重最適化: 損失関数に誤差項とバイアス項を含む。FairXGBoost


6章 構造化データ、モデル説明(SHAP)
経路依存型SHAP値
feature_perturbation="tree_path_dependent" (木構造の他のルートを利用する消し方。ex.スマホがないなら、記憶と地図を頼りに目的地へ行く。)
モデルが学習した、情報同士のつながり(相関)を考慮した上で結果を出す。
モデルの具体的な動き方に忠実な貢献度が分かる。

介入型SHAP値
feature_perturbation="interventional" (適当な値に置き換える、試す消し方。ex.スマホがないなら、とりあえず適当な方向に指示されたとして歩いてみる。)
情報同士のつながり(相関)を無視して、一つ一つの情報が単独で変わった場合を何度も試行。
特定の情報を一つだけ切り離した場合の、シンプルな貢献度が分かる。

基本はinterventionalを利用。当該モデルと学習データの分布の範囲でしか通用しないことを認識する。


7章 画像データ、モデル説明
ヒートマップ: Whereを示すにとどまり、How(どのように判断したのか)までは不明
説明可能モデル ProtoPNet, SENN: Howまで明示。
How が良い説明に不可欠な要素。

事後説明(post-hoc)によるロバスト性の確認: エッジ検出器と機能している可能性あり。
忠実性、ロバスト性、理解しやすい説明を求める場合には、説明可能なモデルを利用する。


8章 構造化データ、モデルデバッグ
正則化、単調性制約、グリッドサーチ、モデル選択
感度分析: ストレステスト(極端な入力値)
敵対的サンプル探索: ICE plot
残差分析: 残差の可視化、セグメントエラー分析、残差モデリング(決定木)

重要なのは、次にモデルを学習させる際には、必ずデバッグを試みるという姿勢である。


9章 画像データ、モデルデバッグ
リーク: ランダム分割(同一人物)、データ拡張(Alubumentations、Label-errors project)、転移学習
学習、検証、テスト分割後に学習データのデータ拡張を実施。
転移学習: 初回はトリミング前の画像。2回目にトリミング画像を利用。
ラベルの誤り: ドメイン専門家との連携、AUM
感度分析: ドメインシフト, BREEDS
学習段階においてデプロイ環境におけるすべてのリスクを事前に把握することは不可能。実際に発生しうる分布シフトに備えたモデルを構築する努力を。
敵対的サンプル攻撃: 高速勾配符号法 FGSM
ハイパーパラメータの摂動: GPU数、ランダムシード
複雑な学習処理事態を避ける: Pytorch Lightning


2025年12月12日金曜日

グラフネットワーク

水路の排水能力チェックを先輩が実施されていました。
未経験の私でもすぐに理解できる程度の内容でした。河川で似たような計算を経験してきたからでしょう。

ふと、数年前に河床変動計算で支川の接続が可能なソフトが少なかったこと、理解を深めるためにPythonで組んだことを思い出しました。接続関係を手作りせざるを得なかったので、汎用性に劣るスクリプトになったことを覚えています。

今ならグラフネットワークを利用できるのでは?と試してみたら、できました。といってもグラフネットワーク特有の問題を解いているわけではなく、上流から下流の順を守らせることだけに使用しています。この部分をライブラリ任せにするので、Python らしい簡素なスクリプトになりました。

このような便利なものなら、どなたか既に使われているでしょう、と調べてみると、いくつかありました。下水など、もっと流行りそうな気もしますが、何か支障があるのでしょうね。


2025年12月5日金曜日

Landslide + PINN

機械学習を利用した Landslide Susceptibility Map の作成について、日本はかなり出遅れたと書きました。
https://phreeqc.blogspot.com/2024/09/landslide-susceptibility-map-using-ml.html

1年以上経過しましたが、状況は変わらないようです。
その間、海外ではさらに進んで、PINNに近いモデルがいくつか発表されています。すぐに実務に利用できそうなもの、難しそうなものが混在していますが、知識を Update しておきましょう。

A physics-informed data-driven model for landslide susceptibility assessment in the Three Gorges Reservoir area - ScienceDirect

 非発生データを 三次元安定解析で Fs>1.5 のエリアから抽出。
今まで非発生エリアからバッファ+ランダムでサンプリングしていましたが、これだと偶然崩れなかった場所が含まれます。これらを物理モデルではじくことができる点がこの論文の新規性でしょう。

Towards physics-informed neural networks for landslide prediction - ScienceDirect

地形量からc、φを推定し、物理層に与えて安定性を予測するモデルです。損失関数に物理モデルを利用しているのではなく、レイヤーに含められています。
物理層は安定計算ベースですが、すべて TensorFlow のテンソル演算(tf.math.sin, tf.math.pow など)で実装されており、逆伝播可能になっているところが工夫点でしょうか。

Physics‐Informed Deep Learning for Revealing the Evolutionary Characteristics of Landslides Induced by Rainfall Process - Li - 2025 - Geophysical Research Letters - Wiley Online Library

こちらは内部にも損失関数にも物理モデルを導入しています。よく構成されたな、というのが率直な感想です。実務に適用しづらいのですが、一手法として頭に入れておきましょう。

数値シミュレーション(事前学習用)
元データ:飽和度・間隙水圧・有効応力場と斜面安定度(560×320画素画像+安定度値),800シナリオ
雨量条件:2.5〜20 mm/hr
学習データ:雨量 500 サンプル
検証データ:雨量 300 サンプル

模型実験データ(ファインチューニング用)
元データ:模型斜面のマルチフィジックス情報+安定度(55サンプル)
学習データ:雨量 33 サンプル
検証データ:雨量 22 サンプル



 

2025年11月13日木曜日

mce=off

数か月前から splash screen で再起動がかかる Ubuntu。

GRUB_CMDLINE_LINUX_DEFAULT に mce=off を追記したら、すんなり起動しました。

何だろう?

2025年11月6日木曜日

文献:薄片画像 + ViT

PoreViT: Automated pore typing in carbonate rocks using vision transformers and neighborhood features - ScienceDirect

AI要約 

背景

  • 炭酸塩岩の孔隙(ポア)をその生成過程や物理的特性に基づいて分類することは、炭酸塩岩の微細構造と物理特性の関係を理解する上で重要である。
  • 従来の孔隙分類は主に手作業で行われ、非効率で主観的、かつ大規模解析には不向きである。
  • 既存の自動化手法は、孔のサイズや形状といった単純な特徴に依存しており、遺伝的クラス(生成過程に基づく分類)を正確に識別できていない。
  • CNN(畳み込みニューラルネットワーク)は画像分類に強みがあるが、局所的特徴の抽出に優れる一方で、画像全体のグローバルな文脈情報を捉えるのが苦手であるため、複雑な孔隙タイプの分類には限界がある。
  • そこで、Vision Transformer(ViT)を用い、局所的特徴とグローバルな文脈情報を融合し、孔隙の近隣情報(隣接する孔の情報)も活用することで分類精度の向上を目指す。

手法

  • PoreViTモデルを提案。これはViTをベースにしたモデルで、薄片画像中のマクロ孔隙をLucia分類(interparticle, touching vug, separate vug)に分類する。
  • モデルの特徴は、ViTの特徴量にGlobal Token Addition(GTA)層を加え、CNNから抽出した空間的特徴と融合するFeature Fusionブロックを持つ点。
  • 入力データは、単一の孔だけでなく、その周囲の孔やテクスチャ情報を含む近隣情報を含めてモデルに与えることで、局所的な孔系のトポロジーを認識可能にしている。
  • データセットは25枚の高解像度薄片スキャンから4115のラベルを取得し、これを用いてモデルを訓練・評価。
  • 従来のCNNモデル(DenseNet121)と比較し、精度(precision)と再現率(recall)で約4%の絶対的改善を達成。

結果

  • テストセットでPoreViTは正確度93.6%、precision 0.92、recall 0.93、F1 0.92を達成。最良CNN(DenseNet121)に対し精度・再現率で絶対+4.0%、相対約+4.5%の改善を示した。
  • クラス別ではinterparticleが最良(Precision 0.95、Recall 0.93、F1 0.94)、誤分類は主にseparate vugで発生。
  • 高解像度薄片1枚(2650孔)での全面推論は約1.5分で完了し、精度93%、Precision 0.931、Recall 0.930、F1 0.927を達成、処理スループットは1枚約2.8分(前処理1.3分+推論/後処理1.5分)で、1日160–170枚のバッチ処理が可能。
  • 近隣情報の活用が分類精度向上に大きく寄与している。
  • ViTの自己注意機構により、画像全体の長距離依存関係を捉えられるため、CNNの局所的受容野の制約を克服できている。
  • これにより、複雑な炭酸塩岩の孔隙タイプ分類において、より正確でスケーラブルな自動化が可能となった。

考察

  • CNNは局所的特徴の抽出に優れるが、グローバルな文脈理解が不足し、複雑な孔隙分類には不十分であることが示された。
  • ViTは画像をパッチに分割し、それぞれをトークンとして扱い、自己注意機構で長距離の関係性を直接モデル化できるため、孔隙の空間的・構造的関係をより深く理解できる。
  • 近隣孔の情報を含めることで、単一孔の形状だけでなく、その周囲の孔との関係性も考慮した分類が可能となり、実際の地質学的解釈に近い分析が実現。
  • 本研究は、炭酸塩岩の微細孔隙構造の高スループットかつ定量的な解析を可能にし、石油工学や地質学における炭酸塩岩評価の効率化と精度向上に貢献する。
  • 限界として、入力画像の高解像度・セグメンテーション品質・注釈品質への依存、224×224・パッチ分割による連続関係の断片化、ViTのデータ要求性、学習分布外リソファシスへの一般化不確実性、クラス不均衡の影響などが指摘される。
  • 将来展望として、Choquette & Prayの高次遺伝的分類への拡張(クラス数増でデータ収集が課題)、3DマイクロCTへの適用による真の接続性評価、Swinなどの多尺度ViTや自己教師あり事前学習、ハイブリッド拡張、予測不確実性の定量化などが提案されている。

 薄片画像 と 機械学習は相性が良いでしょう。地質屋さんなら鉱物の同定に利用するといった発想に至るようですが、特許もあるようなので注意。