はじめに
本記事は以下の記事に補足する位置づけです。
脳波を機械学習で判別することを考えたときの注意点
今回も例によってコード実装による説明ではなく考え方としての記事になります。
機械学習とデータマイニングの違い
機械学習は既知の特徴量を基に未知のデータを分類する手法である反面、データマイニングは集めたデータの中から未知の特徴量を抽出する作業といえます。ただ、昨今のディープラーニングに代表される技術は特徴量を自動的に抽出することが出来るといわれています。しかしこれはあくまで「機械が画像を判別するために必要な特徴量」を自動的に抽出しているのであり、人間は画像を見ることで何がどこにあるか分かるため、人間にとっても未知の特徴量を抽出している訳ではないと考えられます。
データマイニングは膨大なデータの中からクラスタリングや可視化、統計学を駆使して人間にとっても今まで未知であった特徴量を抽出する作業と言えます。つまり、脳波から思考やタスクを行っているときの特徴量を抽出する作業はデータマイニングを行っていると言えると思います。
脳波データを見る視点について
脳波データはタスクや実験対象や環境によってさまざまなとらえ方ができると思います。例えば「Aを行った後Bを見る」のように時系列を伴うタスク時に計測した脳波は時系列データと見て解析を行う事が有効だと思われます。一方で「ある一定時間、同じ刺激提示を行う」ようなものに対しては波形をパターンとしてみるか、FFTによる周波数解析などによる分析が有効だと思われます。また、個人差があるため多人数で同じパターンが現れるのか、個人ごとに異なるパターンが出るのか分からない事も多くあります。更に同じ人物でも日によって同じタスク時の脳波に差が出ることも多々あります。
このように、有効な特徴量を見つけ出すことの難易度が高いことが脳波の特徴ともいえます。それでも、明らかに差分を判別可能な特徴が個人ごとに何かしら見つかれば、それは有用な特徴として機能する期待が持てます。
解析手法について
解析は時系列でもそうでないパターンデータも、「計測」→「多変量ベクトル化」→「次元圧縮&可視化」の手順が良いと思います。計測は脳波計で被検者の脳波を計測することです。
多変量ベクトル化
多変量ベクトル化とは、計測したデータを多次元のベクトルに変換することです。ベクトル化には様々な方法があり、生波形をある時間ごとに区切る事も多変量ベクトルに変換してるととらえることが出来ます。その他FFTによる周波数分析の結果をそのままベクトル化することや、時系列解析で使われる動的時間伸縮法 / DTW (Dynamic Time Warping) やディープラーニングによる埋め込み表現やリカレントニューラルネットワークによるSeq2Seqなど様々な手法があります。分析において一番大切なことは多変量ベクトル化する手法を選ぶところにあります。
次元圧縮&可視化
多変量ベクトル化に用いた手法を評価するために、得られたベクトルを3次元以下に圧縮し、可視化を行う必要があります。
可視化には主成分分析(PCA)やt-SNEなどの手法があります。これらの手法でベクトルが区別可能が判断し、区別することが可能であれば特徴量の抽出に成功したと考えられます。一方で、区別ができなかった場合、以下の理由を切り分ける必要が出てきます。
・多変量ベクトル化に選んだ手法がデータに適していない
・計測した脳波に問題があるか、計測した部位に問題がある
・タスクによる違いが脳波に現れない
多変量ベクトル化に選んだ手法がデータに適していない
こちらを判断するためには、既存の文献や知見として「脳波に差はでる」事が根拠として示されているかが大事になります。つまり、何かしらの方法を試すことで必ず差は出ることが保証されている上で、別の手法でも差が抽出できないか試す場合です。この場合、本当に新しい特徴量というよりは、既存の上に成り立つ改善手法の提案が主だと思います。
例:「運動想起脳波を簡易脳波計で計測する」「fNIRSやfMRI向けタスクを脳波計で行う」
計測した脳波に問題があるか、計測した部位に問題がある
こちらは既存の手法が存在する場合は既存に沿う計測を行うか、既存の手法に示された部位からの信号が、現在計測している部位の信号に影響を与えていると仮説を立てて検証する必要があります。影響を与えているのか確かめるには、既存の文献に示された脳波の特徴と計測された脳波の関係を見る必要があります。具体的な検証を行うための手法が提案できた場合それは新たな成果になると思います。
未知の手法を試している場合は後述の「タスクによる違いが脳波に現れない」事との切り分けが必要になります。
タスクによる違いが脳波に現れない
ここまで切り分けを行った場合は、タスクに根拠があるか有識者と相談するか、脳の部位と脳活動の関係を今一度整理する必要があると思います。ここに来るともはやデータマイニングではなく生理学や医学、心理学などの要素が関わるため整理をしっかり行わないとハマります。
議論の後はとにかく実践あるのみで、「計測」→「多変量ベクトル化」→「次元圧縮&可視化」を繰り返すことが大切です。
脳波分野は根拠がある状態で、闇雲でないならば泥臭く攻めることも時には大事です。
最後に
脳波関連の記事を見つけようとすると、論文は見つかるが考え方の説明記事などはまだあまりない印象を受けます。その影響か、脳波関連の調査を始めると、ノウハウを手探りで見つけるようなところから始めることが多いと思われます。一方で機械学習関連などの記事は論文に加えブログで解説や議論がされているのが見受けられます。脳波関連の情報に気軽にアクセスできることも発展には不可欠だと考えていますので、もしご要望等ございましたらコメント等お願いいたします。
脳波に限らず一般的な学習でも、データセットの重要性について下記の記事で述べられています。
特に「付記:人にとっては学習できているか?」は重要なことであると改めて感じました
機械学習のデータセットの重要性
簡易脳波計に関する知見などの需要がありましたら、記事を書こうと思います。