目的
本プログラムは深層学習(deep learning)とFDTD法(Finite Difference Time Domain)
を用いて、対象とする領域の誘電率分布を推定するものです。
FDTD法
対象とする領域の周囲に送信アンテナを置いて電磁波を照射し、
同じく周囲に置いた受信アンテナで受信します。
複数の送信アンテナと複数の受信アンテナを置くことによってアンテナ間の結合度が得られます。
それをここではS行列と呼びます。
以上の状態をFDTD法で計算してS行列を求めます。
FDTD法では一つの送信アンテナから送信し、
一度の計算で複数の受信アンテナの受信電界を求めることができます。
その計算を送信アンテナの数だけ計算します。
それによって一つのS行列が得られます。
以上の操作を誘電率分布を変えて多数回行います。
これによって誘電率分布とS行列の対が多数得られます。
プログラミングにはCを用います。
深層学習
以上で求めた誘電率分布とS行列の対を深層学習で学習することによって、
S行列から誘電率分布を推定することができます。
これはFDTD法とは反対方向の計算であり逆問題になります。
逆問題は一般に解くことが困難であり不安定ですが、
深層学習の強力な学習能力によって可能になります。
深層学習にはCNN(畳み込みニューラルネットワーク)を用います。
プログラミングにはPythonとPyTorch[1][2][3]を用います。