LoginSignup
0
1

More than 5 years have passed since last update.

TensorFlow | ADDA > 線形方程式を解き直してみた (21 x 21のrefractive index分割) > 様々なiterative solverでの効果 | 2007年の結果

Last updated at Posted at 2017-09-01
動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)

学習コードv0.1 http://qiita.com/7of9/items/5819f36e78cc4290614e

http://qiita.com/7of9/items/bc2f8a09d8681702b066
の続き。

概要

This article is related to ADDA (light scattering simulator based on the discrete dipole approximation).

  • TFRecordsを読込んで学習する
  • input: 5 nodes
  • output: 6 nodes
  • サンプル数: 4,113,648
  • 学習データ: ADDAにより計算した値
    • #input
    • x,y,z: dipole position
    • refractive index: real and imaginary part
    • #output
    • initial values for linear equation solution for (x,y,z),(real,imaginary)

5次元関数の補間を学習させようとしている。
(5次元の回帰問題というのだろうか?)

補間の対象はADDAでの線形方程式の初期値としている。初期値が実際の解に近い値から線形方程式を解くと、iterationの回数をおさえられるという目論見。

確認事項

https://github.com/adda-team/adda/blob/master/doc/manual.pdf
p39においてADDAに用意されている様々なiterative solverが記載されている。

  • Bi-CGStab(2)
  • Bi-CG
  • Bi-CGStab
  • CGNR
  • CSYM
  • QMR
  • QMR2

デフォルトはQMR。

TensorFlowでの学習(線形方程式の初期値)によるiteration回数の変化がiterative solverでどう異なるかチェックしてみた。

A:type B:original[回] C:TF学習[回] D:C/B
Bi-CGStab(2) 13 11 0.846
Bi-CG 46 39 0.847
Bi-CGStab 26 22 0.846
CGNR 65 46 0.707
CSYM 112 88 0.785
QMR 47 39 0.829
QMR2 46 39 0.847

(originalの初期誤差:1.0, TF学習を用いた場合の初期誤差:0.0808)

D列の値が0.8程度にしかならない。
「TF学習結果から初期値を計算する時間」と「iterationを減らした時間」を比べて考えたら、計算効率改善には貢献していない。

2007年の計算

2007年にトルコで発表した結果。

qiita.png

  • 計算コード: DDSCAT (v6.1)
  • m=1.60 + 0.01i
  • 形状: BCCA64, OMMT, GSP
  • TM, TEモードの初期値を補間
    • 入射光の方向に対する補間処理
  • 結果(上図)として、0.2から0.8の範囲でのC/B値を得ていた

この結果をベースとしてトライをしているが、ADDAでは0.8程度にしかならないのはなぜだろうか。

実施した計算の異なる条件を合わせていくと何かわかるだろうか。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1