講演情報
[O12-P76]機械学習と行列分解を組み合わせた流星の自動観測プログラムの作成
*新村 充輝1、*佐々木 隆成1、*内藤 凜1 (1. 東京学芸大学附属高等学校)
キーワード:
流星、電波観測、機械学習、非負値行列因子分解
流星観測を通じて地球外有機物の流入フラックスを定量化することは、初期地球への生命前駆物質の供給源を特定し、アストロバイオロジーにおける生命起源の機序を解明する上で極めて重要な学術的意義を持つ。そのため、流星観測は長期にわたって各地で続けられてきた。しかし、流星エコーを電波とスペクトログラムによって可視化する従来の流星観測では、データの判断に人の目を介する必要があり非効率的である。そこで、流星観測を効率化したいと考え、従来の電波観測の仕組みをもとに流星の自動観測ができるソフトの開発を目標として、探究活動を開始した。
手法として、滋賀県大津市から発信されている電波が流星に跳ね返ったものをアンテナで受信し、その電波を音声に変換、MROFFTによる可視化を行った。次に流星エコーを含む録音と含まない録音を離散フーリエ変換を用いて解析し、パワースペクトル密度を縦軸、周波数を横軸とするグラフを作成した。このグラフから、流星が流れるとパワースペクトル密度が-40を上回ることを読み取った。しかしこれをそのままコードに落とし込むと、流星エコーだけでなく、流星由来ではない雷や外部雑音による電波を流星と誤認識することがあった。
これらの非流星由来の電波と流星由来の電波を区別するために、機械学習(教師あり学習)を用いて特徴の違いを抽出した。機械学習を行った結果、信号対低域雑音比(以降SNR)が流星とその他を区別するのに有効であるという結論に至った。これは、雷や外部雑音は広い周波数帯域にエネルギーが分散するが、流星は狭い周波数帯域にエネルギーが集中するためと考えられる。これをもとに、SNRで閾値を設定し、一定の値を超えたら流星と判断するコードを作成した。一定期間運用した結果、SNRは受信機のゲイン設定に依存しないため、雑音の影響を受けにくいことがわかった。
しかしSNRでの判定は精度こそ高かったものの、雑音を前提とした計算方法であるため、環境への適応性が低いことが問題点であると感じた。そこで、数学的に裏付けがなされており、どんな環境でも適応可能な解析の手段である非負値行列因子分解(以降NMF)を新たに用いることにした。NMFとは音響解析手段の一つであり、音色の行列と音量の行列を用いて、元となる音声を再現する方法である。我々は流星の自動観測にこの手法を応用するために、機械学習と組み合わせて次のようなプログラムを制作した。
1、観測開始から30秒間雑音を学習させ、音色の行列を仮定する。
2、入力された1秒間の音声に対してNMFを行い、音量の行列を算出する。
3、音量の行列と最初に仮定した音色の行列と組み合わせることで元の音声(一秒間の入力音声)の再現を行う。
4、この再現された音声と元の音声の誤差を、Iダイバージェンス(誤差がポアソン分布に従うと仮定したときの誤差の算出方法)を用いて計算し、その結果の正規化を行なう。ここで結果を正規化したものを「尤度」と呼ぶ。
5、尤度が5σ以上になったら流星と判定する。
6、背景雑音が変化するのに対応するため、1で行なった学習を1秒ごとに更新していく。
このプログラムを用いて1週間流星の自動判定を行なったところ、55個流星と判定した中で、25個が本物の流星であり、30個は誤検知であった。また、4個の流星の見落としがあった。このような結果を招いた原因として、背景雑音の急激な変化や、外部雑音のような、この判定方法では異常と検知されてしまうものを流星と判定してしまったことが挙げられた。
そこで、これらに対応していくため、NMFとSNRを組み合わせることを考えた。そこで、特徴量としてNMFを入れてもう一度機械学習を行った。
流星由来のデータ60件と非流星由来のデータ60件を用いて、特徴量NMFを採用して機械学習を実施した結果、NMFを不採用にした時と比べて4%ほど精度が向上した。ここから、NMFとSNRを組み合わせることでより自動観測の精度が向上すると考えた。現在はNMFとSNRを組み合わせたコードを動かしており、今後の展望としては流星なのに雑音と検知したもの、雑音なのに流星と検知したもの、流星で流星と検知できたものの個数から、このコードの正確性を定量的に判断したい。
そして、NMFとSNRを組み合わせた機械学習の結果はあくまで我々の環境の中での結果であるため、今後環境への適応性を高めるためにSNRのZスコア化などを行いたい。さらなる発展として、防犯カメラを用いた実際の流星との照合や、電波の到来方向推定を用いた流星の位置特定を行なっていきたい。
手法として、滋賀県大津市から発信されている電波が流星に跳ね返ったものをアンテナで受信し、その電波を音声に変換、MROFFTによる可視化を行った。次に流星エコーを含む録音と含まない録音を離散フーリエ変換を用いて解析し、パワースペクトル密度を縦軸、周波数を横軸とするグラフを作成した。このグラフから、流星が流れるとパワースペクトル密度が-40を上回ることを読み取った。しかしこれをそのままコードに落とし込むと、流星エコーだけでなく、流星由来ではない雷や外部雑音による電波を流星と誤認識することがあった。
これらの非流星由来の電波と流星由来の電波を区別するために、機械学習(教師あり学習)を用いて特徴の違いを抽出した。機械学習を行った結果、信号対低域雑音比(以降SNR)が流星とその他を区別するのに有効であるという結論に至った。これは、雷や外部雑音は広い周波数帯域にエネルギーが分散するが、流星は狭い周波数帯域にエネルギーが集中するためと考えられる。これをもとに、SNRで閾値を設定し、一定の値を超えたら流星と判断するコードを作成した。一定期間運用した結果、SNRは受信機のゲイン設定に依存しないため、雑音の影響を受けにくいことがわかった。
しかしSNRでの判定は精度こそ高かったものの、雑音を前提とした計算方法であるため、環境への適応性が低いことが問題点であると感じた。そこで、数学的に裏付けがなされており、どんな環境でも適応可能な解析の手段である非負値行列因子分解(以降NMF)を新たに用いることにした。NMFとは音響解析手段の一つであり、音色の行列と音量の行列を用いて、元となる音声を再現する方法である。我々は流星の自動観測にこの手法を応用するために、機械学習と組み合わせて次のようなプログラムを制作した。
1、観測開始から30秒間雑音を学習させ、音色の行列を仮定する。
2、入力された1秒間の音声に対してNMFを行い、音量の行列を算出する。
3、音量の行列と最初に仮定した音色の行列と組み合わせることで元の音声(一秒間の入力音声)の再現を行う。
4、この再現された音声と元の音声の誤差を、Iダイバージェンス(誤差がポアソン分布に従うと仮定したときの誤差の算出方法)を用いて計算し、その結果の正規化を行なう。ここで結果を正規化したものを「尤度」と呼ぶ。
5、尤度が5σ以上になったら流星と判定する。
6、背景雑音が変化するのに対応するため、1で行なった学習を1秒ごとに更新していく。
このプログラムを用いて1週間流星の自動判定を行なったところ、55個流星と判定した中で、25個が本物の流星であり、30個は誤検知であった。また、4個の流星の見落としがあった。このような結果を招いた原因として、背景雑音の急激な変化や、外部雑音のような、この判定方法では異常と検知されてしまうものを流星と判定してしまったことが挙げられた。
そこで、これらに対応していくため、NMFとSNRを組み合わせることを考えた。そこで、特徴量としてNMFを入れてもう一度機械学習を行った。
流星由来のデータ60件と非流星由来のデータ60件を用いて、特徴量NMFを採用して機械学習を実施した結果、NMFを不採用にした時と比べて4%ほど精度が向上した。ここから、NMFとSNRを組み合わせることでより自動観測の精度が向上すると考えた。現在はNMFとSNRを組み合わせたコードを動かしており、今後の展望としては流星なのに雑音と検知したもの、雑音なのに流星と検知したもの、流星で流星と検知できたものの個数から、このコードの正確性を定量的に判断したい。
そして、NMFとSNRを組み合わせた機械学習の結果はあくまで我々の環境の中での結果であるため、今後環境への適応性を高めるためにSNRのZスコア化などを行いたい。さらなる発展として、防犯カメラを用いた実際の流星との照合や、電波の到来方向推定を用いた流星の位置特定を行なっていきたい。
