MathJax のレンダリングがうまくいかないため、暫定的に pdf 化したファイルを用意しました。 PositivityBoundsByNN.pdfをご覧ください。
- 積分領域 無限大の処理 tan による有限化
- デバッグ rho が 0 や定数関数などの場合で正しいか確認
- 100epoch で grid search してみる
どういう式を, どういう拘束条件で解きたいのか
とりあえず細かい点には触れず要点のみ書いているので、詳しくはExtremalEFT 論文を参照ください。
$$ \mathcal{L}{\text{low}} = -\frac{1}{2} (\partial{\mu} \phi)^2 - \frac{g}{3!}\phi^3 - \frac{\lambda}{4!}\phi^4 + \frac{g_2}{2}[(\partial_{\mu} \phi)^2]^2 + \frac{g_3}{3}(\partial_{\mu}\partial_{\nu} \phi)^2 (\partial_{\sigma}\phi)^2 + 4g_4[(\partial_{\mu}\partial_{\nu}\phi)^2]^2 +... $$
最終目標は、このような EFT の高階微分項の結合定数
この理論の tree レベル散乱振幅に対する分散関係式の議論から、高階結合定数
これらを分散的総和則と呼びます。
といった感じです。
heavy average
です。
また
よって考えたい問題は、
null constraint
先行研究のExtremalEFT 論文では、heavy average が半正定値な汎関数であることを利用し、この問題を半正定値計画法により解いています。
ただ、半正定値計画法による手法には以下のような不満点があります。
- 尖った部分については描画が難しく、適宜メッシュを細かくする必要がある
- next step の研究として、low spin dominance という仮定を追加したい。これはスペクトル密度 $ \rho_J(m^2) $に対する追加の拘束条件になるが、半正定値計画法ではスペクトル密度に対する条件を直接的に扱うことが難しい
そこで同じ問題を NN で解くことが出来ないかと考えています。 現行のコード lib/attempt4.py では、$g_2, g_3$ についての positivity bounds を計算するため、以下のように NN を設計しています。
- 入力:
$m^2, J$ の 2 変数。どちらも適当な値でメッシュに切り離散化 - 出力: スペクトル密度 $ \rho_J(m^2) $
- 損失関数: $$ \mathrm{Loss} = a_2 \Braket{g_2(m^2, J)} + a_3 \Braket{g_3 (m^2, J)} + w_4 \left| \Braket{n_4(m^2, J)} \right| $$
# loss function
def custom_loss(y_true, y_pred):
a2 = 1
a3 = 1
w4 = 1
rho_vecotor = model(X_input)
g2_term = a2 * heavy_average(func_vector=g2_vector, rho_vector=rho_vecotor)
g3_term = a3 * heavy_average(func_vector=g3_vector, rho_vector=rho_vecotor)
n4_term = w4 * tf.abs(heavy_average(func_vector=n4_vector, rho_vector=rho_vecotor))
loss = g2_term + g3_term + n4_term
# loss = g2_term + g3_term
return loss
この場合、係数$a_2, a_3, w_4$を手で適当に調整することにより、null constraint
lib/attempt4.py というファイルが現行のコード
損失関数がうまく収束せず、結果がうまく出力できていない状況
損失関数の中に拘束条件項があり、その重みづけのパラメータの値を色々変えてみるなど試したが、大抵の場合で損失関数の値が 0 か inf となってしまう
- lib/ : 本番ファイル
- practice/ : 練習、試行用
-
ExtremalEFT 論文の(g3,g4) plot を NN に描かせる: 教師なし PINN null constraint は損失関数に加えることで考慮
-
High Spin Supression を考えてみる: spectral density に対する constraint を扱うことができるはず
SDPB との比較
-
メッシュの細かさを自動的に最適化してくれる
-
constraint の扱いが簡単 損失関数に加えるだけ