【脳波解析】畳み込み処理(コンボリューション)
本ページでは「Analyzing Neural Time Series Data Theory and Practice」(Mike X. Cohen and Jordan Grafman)のChapter10をベースに、畳み込み処理(コンボリューション)について、勉強していきます。
前回のノートはこちら↓
内積
畳み込み処理(コンボリューション)を行う上で、内積を理解する必要があります。内積は非常にシンプルな計算ですが、これ抜きでは解析を回せません。内積の解釈は様々で、
1) 2ベクトルの各要素の重ね合わせ
2) 2ベクトルの共分散/類似性
3) ベクトルのマッピング:2ベクトルの大きさの積
このような考え方ができます。さらに、内積によりn次元の概念化が可能となり、時間周波数分析に非常に有効です。実際に計算することで、複数のデータから、パワーの抽出や位相角を求めることができます。
畳み込み処理(コンボリューション)
脳波の生波形を見るだけでは、各周波数帯が密集、または分散しているかがわかりません。EEGデータは様々な周波数、振幅の脳波が交ざっているため、周波数ごとに特徴を捉えたい、という目的をたてます。この際、畳み込み処理(コンボリューション)を用いて解決することができます。時間領域での畳み込みは、内積の拡張したものです。
畳み込みの流れを説明します。まずは、便宜上用意したデータ(カーネル)を用意しましょう。次に、1) 測定したデータに対し、カーネルを逆さにしたものを、各タイムポイントで計算掛け合わせ(内積計算)ます。2) それを合計したものを、カーネルの中心となるポイントにプロットしましょう。この、1)、2) の処理を、タイムポイントを1つずつシフトし、カーネルが右端に来るまで繰り返します。これで終わりです。内積計算をするため、畳み込み処理の結果は、データ/カーネルの共通した特徴を反映しています。そのため、異なるカーネルを掛け合わせることで、周波数帯ごとに結果をプロットでき、周波数領域においてフィルターの役割をはたします。
コンボリューションによって得られた結果は、以下のように様々な解釈が可能です。
1) 時系列的解釈(続いている信号の重み付け)
2) 統計的解釈(相互共分散、類似性)
3) 2ベクトル間のマッピングの時系列
4) 周波数フィルタ (詳細はchap. 11)
畳み込み処理の注意点
畳み込み処理の注意点として、2つのことがあげられます。一つ目が、両端にロスが生まれることです。その際、Zero paddingを用いて解決します。Zero paddingとは、元データに便宜上0をプロットすることで、データ量を変えることなく、畳み込みが可能となります。さらに、畳み込み処理をした値は、内積計算をしているため実際より大きな値を返すことがあります。そのため、スケールを調整することで値の修正をしましょう。
畳み込み処理と共分散
畳み込み処理と共分散は、どちらも時間変化におけるベクトルの関係を示します。畳み込み処理はカーネルを逆さに返す(軸方向に向かい合わせて掛け合わせるイメージ)のに対し、相互共分散では、元々の順番でカーネルを掛け合わせます。そのため、カーネルが線対称の場合同じ結果を得ます。
畳み込み処理を用いた信号処理
このマガジンでは、畳み込み処理を用いたメジャーな信号処理について紹介しています。それぞれの詳細は以下のページから確認できます。
・フーリエ変換
・ウェーブレット変換
・複素ウェーブレット変換
・ヒルベルト変換
このnoteを書く上で、弊ラボの山口立人さんにご協力いただきました。ありがとうございます。
この記事が気に入ったらサポートをしてみませんか?