Tomo-e Gozen Supernova Survey - Machine Learning

Tomoe-sn MLのスクリプト

ダウンロードリンク : Tomoesnmlのスクリプト一式 (ZIP)

Tomo-e Gozen Supernova Transient Pipeline の CNN model 作成に用いたスクリプトファイルを説明します。Python2.7で動作します。必要なモジュールについては各スクリプトのimport文を参照してください。shinohara1の環境ならば問題なく動作するはずです。

shinohara1: /home/hamasaki/legacy にスクリプトの実行例をまとめています。

スクリプトの流れとしては、まずCNNのModelを作成する学習データを作り、そのデータからModelを作成します。また、CNNのModelの性能評価のために、REAL TransientとBOGUS Transientのデータを作成し、Modelの性能の評価を行います。

tomoesnml

一部スクリプトを実行するにあたり、必須となるファイル。実行する際は、このファイルを同ディレクトリ内に配置してください。

confirm

実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。

実行例: /home/hamasaki/legacy/confirm/confirm.py

input: sourceIdのList

output: New-fits, Reference-fits, Remap-Reference-fits, Subtracted-fits, 各regファイル

CNNのModel作成に直接的にはかかわりがないスクリプト。確認用。入力されたsourceIdが写るfits(New)画像をとってきて画像の引き算を行う。その際に用いたReference画像と、RemapされたReference画像、引き算結果のSubtracted画像を出力する。出力されるregファイルは、New画像から検出された天体、Subtracted画像から検出された天体、その領域に写るps_bright天体、sourceIdの天体の4ファイル。

make_data

実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。

実行例: /home/hamasaki/legacy/make_data/ctrl.py

input: detId(e.g. 111), 学習データの出力先, 冗長性(bool), 作成する学習データの数, 作成する学習データのタイプ('random' or 'around_galaxy')

output:学習データ

学習データを作成するスクリプト。inputの冗長性をTrueとした場合、New, Reference, Subtractedのfits画像も出力され、容易にストレージを圧迫するので注意。

make_model

reshape実行例: /home/hamasaki/legacy/make_model/reshape.py

make_model実行例: /home/hamasaki/legacy/make_model/make_model.html

reshape input: make_dataで作成した学習データのrootディレクトリ, reshapeされたデータの出力先

reshape output: reshapeされた学習データ(artificial_real.csv, artificial_real.npy, artifact.csv, artifact.npy)

make_model input: artificial_real.csv, artificial_real.npy, artifact.csv, artifact.npy

make_model output: cnn model

実行は、reshape -> make_modelの順に行う。reshapeではmake_dataで作られた学習データを取り扱いやすく整形する。artificial_real.npy, artifact.npyは画像データである。それぞれ(データ数, 29, 29, 3)の形状を持つ。これらのデータは容量が大きいため取り扱いに注意(e.g. legacyにおいてあるnpyファイルは12, 20GB)。artificial_real.csv, artifact.csvは天体に関するデータである。make_model.htmlでは、これらnpy, csvファイルを読み込み、検出器それぞれに対してCNN modelを作成している(計84model)。

get_real_transient

実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。

実行例: /home/hamasaki/legacy/get_transient/get_real_ctrl.py

input: 観測の日付(min), 観測の日付(max), データの出力先

output: REAL Transientのデータ(real_transient_DateMin_DateMax.npy, real_transient_DateMin_DateMax.csv)

Tomo-eのsource_subに登録された、TNS Transient天体のデータを取得するスクリプト。npyファイルは画像データ、csvファイルは天体に関するデータである。データの解析は後述のanalysisに記載。

get_bogus_transient

実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。

実行例: /home/hamasaki/legacy/get_transient/get_bogus_ctrl.py

input: 観測の日付(min), 観測の日付(max), データの出力先

output: BOGUS Transientのデータ(bogus_transient_DateMin_DateMax.npy, bogus_transient_DateMin_DateMax.csv)

空の領域からランダムに座標を決定し、その座標から一定の範囲内のsource_sub天体を取得する。また、お互いが3arcsec以内であれば同一の天体とみなす。legacyのスクリプトでは、データ削減の都合上、6visitsを超えるbogus_transientは除外している。また、ps_bright天体と思わしき天体も除外している。データの解析は後述のanalysisに記載。

analysis

実行例: /home/hamasaki/legacy/get_transient/analysis/analysis.html

input: REAL Transient, BOGUS Transient

output:

CNN modelの性能評価を行う。性能評価には、前述のREAL TransientとBOGUS Transientを用いる。legacyのanalysisではREAL, BOGUSの読み込み後、ROC CurveによってModelを評価している。