高校数学で解説:脳波解析に必要な数学とは?
前回までの記事で脳波について、ブレイン・マシン・インタフェースについて説明してきました。
ではこういった脳波解析に使われている数学はどういったものでしょうか?
今回の記事では高校生でも知っている数学が脳波解析にどのように使用されているかについて解説します。
将来脳科学に携わりたい、ブレイン・マシン・インタフェースのような研究に興味があるという方は参考にしてみてください。
予測不可能な脳波を扱う「統計」
我々の脳というのは当たり前ですが完全には解明されていません。
世界中の研究者が日々研究に取り組んでいますが、全てを解明するのは現代の技術では不可能と言っても過言ではないと思います。
そんな複雑な脳ですが、時に一部分を切除する事があります。
例えば、てんかんの病気を持っている患者さんは、特定の脳の部位を切除すると、てんかんの発作が治るということが知られています。
では、脳の切除をした結果、完全に発作が治るか? リスクをゼロにできるか? というと、これは100%ではないです。なぜならば前述した通り脳の構造は複雑で、個人差も大きいからです。
しかし、100%ではありませんが、「積み上げてきた知識と経験」によって、限りなく100%に近くすることはできます。
その助けとなるのは「確率・統計」です。
平均で扱う
最も理解が容易で有名な統計量というのは「平均」でしょう。
「1、2、3」の平均は(1+2+3)/3 = 2
という物です。
先の例で言えば、どの位置を切るか? というのは、過去行った脳の切除の記録を解析して、どの部位を切ったらリスクが平均的に少ないか? どの部位を切ったら発作が起こる頻度が平均的に少ないか?
を分析することで解決ができます。
脳波では試行平均という言葉があります。
例えば右手をイメージする3秒間の脳波と、左手をイメージする3秒間の脳波を比較したいとします。
ではその3秒間の脳波は、イメージする度に同じような特徴を持っているでしょうか?
答えは全く同じではないけれど、共通した特徴を持っているという表現になります。
この共通した特徴というのは、試行平均をすることで得られます。
以下の図は試行平均のイメージです。青い線や赤い線が1試行の脳波を表していて、100試行分を重ねています。
黒い線は試行平均の脳波を表しています。
両手のイメージをそれぞれ100回くらい試行してもらって、試行平均を計算して比較します。こうすることで安定的な脳波を比較することができます。
先のてんかん手術の例でも説明したように、平均を取ることで情報の精度を上げることができます。脳波の試行毎のバラツキの中から共通した成分を取り出すことで、安定した特徴を得ることができます。
分散を取り入れる
平均と共に高校で勉強するのは「分散」です。分散というのは平均周りのデータの散らばり・バラツキという表現が分かりやすいです。
例えば、以下の図は左手をイメージしたときの脳波と、右手をイメージした時の脳波を分かりやすく1次元の点にして表しています。実際には脳波はもっと多次元的なものですが、電極1個で、1秒で、1人の脳波だと仮定しましょう。そして、20回試行した時の脳波とその平均を点で表しています。
ではここでブレイン・コンピュータ・インタフェースを設計しましょう。
ブレイン・コンピュータ・インタフェースでは次に来るデータを、左手に分類するか、右手に分類するかを決めます。
上の図ではどこかに左手と右手の脳波データ分ける閾値(仕切り線)を決めることに相当します。
あなただったら、どこに仕切り線を書くでしょうか?
黒丸の真ん中でしょうか? それとも、点の集団同士の真ん中あたりでしょうか?
左手の平均は「-10」、右手の平均は「10」となっています。
平均だけを考えると間をとって「0」に線を引くのが策かもしれません。
しかしながら、上図の例のように「0」に線を引いてしまうと、青いプロット「左手」の1つを間違えて「右手」と認識するブレイン・コンピュータ・インタフェースになってしまいます。
ですので、上図の視覚的には0よりもう少し右側の3〜5あたりに縦線を引くのが良さそうですね。
これがブレイン・コンピュータ・インタフェースを作る時には重要になってくる「分散」の考え方です。
上図では左手の点は広がっていて(分散が大きい)、右手の点は密集しています(分散が小さい)
人には利き手というのがあるので、このような差は実際にも生じ得ます。
こういった場合には分散も考えると、より精度よく分類出来ることが直感的に分かったのではないでしょうか?
最も有名な平均と分散を利用してこういった区切り線を多次元でも引く手法はフィッシャーの線形判別法と呼ばれていて、BCIにもよく使われている手法です。
そして分散だけではなくて、更に高度な線を自動的に引いてくれるのは機械学習・AIだったりします。
多次元な脳波を表現するベクトル・行列
脳波が時間的に変化する電位という説明を以前の記事でしました。
電位が時間的に変化していくというのは例えば、
5.0V, 5.1V, 5.7V、、、、6.8V
のようなイメージです。これは次元的には1次元。
つまり1次関数として、v(t)と書けます。tは時間です。v(0)=5.0, v(1)=5.1です。
しかし、脳波の電極は1つではなく多数になることもあります。
すると、電位の変化は1次元ではなく以下のように多次元、つまりベクトルで扱わなければなりません。
ch1 5.0V, 5.6V, ..., 7.2V
ch2 5.0V, 5.9V, ..., 9.8V
ch3 5.0V, 5.3V, ..., 5.8V
…
ch32 5.0V, 6.6V, ..., 7.8V
すると、1次元ではv(t)だったものが、32次元のベクトル関数v(t)になります。大学ではベクトルを太字を使って表します。
v(0)=[5.0V, 5.0V, 5.0V, ..., 5.0V]
v(1)=[5.6, 5.9V, 5.3V, ..., 6.6V]
ですね。このようにベクトルを使う事で、各電極の変化を一括で表現できます。
更に多次元脳波の時系列を1つのデータとして表現することができます。
それは行列です。時間と電極の数を固定してしまえば、時間と電極の情報をあわせて1つの変数(行列)で表すことが可能です。
上の図では行列Vの1列目は、先程のv(0)となります。
こうすると例えば、左手をイメージする脳波は行列L、右手をイメージする脳波は行列R、などと書けます。
では行列Lと行列Rはどのくらい違うでしょうか? そしてその違いを表現するにはどうしたら良いでしょうか?
これは高校数学で扱うベクトルの距離の発展で、フロベニウスノルムと呼ばれる距離を使って表現することがあります。
脳波は波。波を表す三角関数
高校数学で習うsin, cos, tanというと、直角三角形が出てきて、角度を求めたり辺の長さを求めさせられるのが基本問題になっていると思います。
しかし、f(θ) = sinθというθよって変化する関数fを考えると、この関数fは波になります。
では脳波のような一見ランダムの様にも見える信号をどのように三角関数で表現するのでしょうか。
実はフーリエ変換という手法を使うと、どんな波であっても三角関数で表現することが可能です。
例えば、ある1極の脳波をf(θ)としましょう。
この脳波が非常に単純で波が2つ重なった状態だった場合、フーリエ変換をかけると、
f(θ) = sinθ + 4sin2θ
のように分解できます。
これはあるθによって振動する波sinθと、その2倍の早さ2θによって振動する波の重ね合わせです。
更に振幅に注目すると、θで振動する波は振幅が1, 2θで振動する波は振幅が4ということが分かります。
したがって、ここから研究者は2θという波が強く、この脳波には含まれている、と分析することができます。
実際にはθという量ではなく、Hzという1秒あたりの振動回数の単位を用いて分析をします。
8〜12Hzというのが有名なα波と呼ばれる波です。
α波が振幅強く脳波に含まれていると、その人は眠かったり、目をつぶっていたり、するだろうという状態の予測が可能です。
まとめ
脳波解析に使う数学について、高校生でも分かるくらいのレベルで一般的に解説してみました。脳波の解析方法が少しはイメージしやすくなったでしょうか。
実際には更に高度な数学や、上記紹介した要素を組み合わせた解析が現場では行われています。今回紹介していない数学の分野も全て用いますので、脳科学と数学は切り離せない関係にあります。