事例でAIのできることを知ろう
その2 時系列データに対する機械学習例(阿部雅人,杉崎光一,竹谷晃一)
多変量解析や時系列データなどにも機械学習は適用できます.実際のデータには異常の有無は既知でないことが多いですが,あらかじめ異常がわかっているものや,異常を模擬した試験体等でデータを得ることができれば,教師あり学習を行うことができます.教師データが得られない場合には,教師なし学習が開発されており,データに応じて適切な手法を選ぶことが課題です.
|
〇実装事例(サンプルプログラム)
ここでは振動や音の波形データを利用して,特徴を学習させて予測や異常検知をする方法について記載します.具体的にはコンクリートを打音した際の音圧データを利用した浮きの検知について実装します.
データを作成するためには,計測や試験の条件等様々な検討が必要です.ここでは,叩いた位置の浮きの有無がわかっているとして,打撃した際の音をマイクで収録した音圧データがcsvファイルで得られているとします(なお,本データは東工大竹谷研究室で行った試験のデータの一部を利用させて戴いております).音圧データに対して浮きの有無を分類する2値の分類問題を実装したプログラムを紹介します.
分類では,利用するモデルはニューラルネットワークを使い,入力を波形データ(要素数3000の1次元ベクトル),出力を2要素の1次元ベクトル(浮きがある確率,浮きが無い確率)としております.この場合の波形は時系列ですが,モデルは一般的なDNNモデルを利用しており,特に隠れ層での関係は利用していません.近年ではニューラルネットワークの層を深くする深層学習により精度が向上するような問題が多く取り上げられていますが,深層学習はデータを表現するための特徴量が多くなる問題で有効です.本問題では,分類のための特徴量はそれほど多く必要が無いと考えられ,それほど層を深くしなくても分類ができる例となっています.なお,層を深くするなどの改良は簡単に行うことができます.
浮き有無と音圧波形の比較
浮き有無とパワースペトルの比較
学習結果
※サンプルプログラム
データ(本データは東工大竹谷研究室で行った試験のデータの一部を利用させて戴いております)
sample_daon_csv
https://committees.jsce.or.jp/struct10/system/files/daondata.zip
打音データを学習して,異常個所を分類するプログラム
https://committees.jsce.or.jp/struct10/system/files/sample_daon_csv.py_.txt
添付 | サイズ |
---|---|
学習結果.png | 8.65 KB |
浮き有無とパワースペクトル.png | 16.67 KB |
浮き有無と音圧波形の比較.png | 35.2 KB |
sample_daon_csv.py_.txt | 4.5 KB |
daondata.zip | 29.89 MB |