鷲沢研究室の研究概要を教えてください。
私の研究室では、主に脳コンピュータインターフェース(BCI)の研究と、基礎的なところでは機械学習やパターン認識、あるいはそれらを信号処理に応用する研究を行っています。BCIにはいろいろな方法がありますが、この研究室では、脳波を測定し、その脳波を使ってコンピュータに文字を入力したり、あるいはロボットを動かしたりということを行う装置です。特に使いやすいBCIとして、自然言語や聴覚刺激を使うBCIのシステムの研究と、もうひとつのテーマとして、N100と呼ばれる脳波を利用する新しい形態のBCIの研究をしています。
それから基礎的な話として、脳波から特徴・コマンドを脳波で入力するときに、脳波を識別、信号処理するのですが、そのときに使う信号処理の手法について研究しています。またパターン認識や機械学習の研究では、グラスマン多様体というものに着目して、こちらを使ってパターン認識を行います。あるいは部分カーネルCPA、学習部分空間識別器と呼ばれるパターン認識の手法で、文字や顔画像を認識することや、一般的なwebのビッグデータから情報を収集するようなことについて研究しています。
本研究は、現実的な社会において先々どのように利用できることが想定されますか?
脳コンピュータインタフェースの応用で考えられているのが、障がい者や高齢者のためのインターフェースです。もし実現されるようになれば、キーボードもマウスもパネルも使うことなく、考えただけで操作できるようになると考えられています。特に、「閉じ込め症候群」という、筋肉を動かすことができなくて意思を伝えることが難しいという障がいを持つ方がいます。
有名な例でよく挙げられるのが、小説「潜水服は蝶の夢を見る」の著者であるジャン=ドミニック・ボービーです。彼は瞬きを使って情報を伝えて執筆しました。脳波から直接情報を読み取り、あるいは刺激を使って脳波を誘発させることで意思疎通をすることができれば、そういった方々の役に立つのではと考えられています。
現在の技術レベルでは、考えたことをどこまで読み取りそして伝えることができるのでしょうか?
あらかじめ送る情報を相互に持っている場合は、例えば文字で伝えるということはできます。しかし、自由に考えたことがそのまま送られるということはまだできていません。
例えば、自分の脳の中で考えたことを文字に起こして、その文字を一文字一文字伝えることはできますけれども、いきなり自由に「お腹がすいた」と思うことによって「お腹がすいた」と伝わるかというと、まだできていません。
現在ではどのような判別を行うことが出来ますか?
今脳計測では、私たちはEEGという装置を使用しています。こちらでは脳の表面の大脳皮質の錐体細胞から電気信号を拾うため、非常に限られた信号で判別を行うことしかできません。他にはFMRIという脳の輪切りを作る装置もよく使われ、強い磁界をかけて脳計測を行います。
FMRIはMRI検査でも使われますか?
MRIでは静止画の写真しか撮れませんが、FMRIはその動画バージョンで、時間変化もわかります。時間変化がわからないと、今何を考えて次に何を考えるのかわからないのでFMRIは有効です。今FMRIも進化していて、とても磁気が強いものが出てきています。従来3秒で1つの写真しか撮れなかったものが、磁界が強くなると1秒弱で1つの写真の撮影が可能です。これを短時間の解像度と言います。
非常に高価で簡単には使えませんが、そういった計測装置から変えていかないと、自由に考えたことをキャッチすることは難しく、そのような特徴を取り出すというと、脳の限られた一部から情報を取ってくる必要があります。
大脳皮質の内側の部分の信号処理に関しては、すでに解明されているのですか?
視覚ですと低次の情報はかなり解明されています。低次というのは、例えば図形を見せるときに脳にある反応が出る。あるいは色など中心に刺激があるときや、見ている部分の周辺に刺激があるときに、脳のどういう場所が働くというようなことです。
ただ高次の情報、例えば見ている文字が何であるか、見ている写真が何であるか、飛行機の写真なのか人間の写真なのか、というところまではまだ判別できません。現在電通大でも高次の情報の判別に関する研究も少しずつ進めています。
ユーザーの欲しい情報を、サポートベクターマシンに学習させて、このユーザーはおそらくこのような情報も気に入るのではないか、と識別させることができるということですよね?
そうです。識別器で、ユーザーが気に入る、気に入らない、という判別を行うものです。いわゆる2クラス識別は、気に入る、気に入らない、のどちらかしか判別できず、いろいろと問題があります。2クラス識別を文字認識に使おうとしますと、結構大変で工夫が必要になります。例えばAの文字がA以外の文字であるかという判別器を作る。さらにBという文字かB以外の文字かという識別器を作るなど、そういうものをいっぱい使って判別する必要があります。
そこで部分空間を作っておけば、そういうこともなく特徴を抽出することができるので、特に多クラスの識別に本当に向いているという特徴があります。これ自身は昔からある手法ですが、それに部分カーネルPCAというものを使ったところが新しいです。
簡単に説明するのは難しいのですが、まずカーネルPCAやカーネル主成分分析では、部分空間を作るときにそのままピクセル値を並べたベクトルの空間で行うのではなくて、それを別の空間に変換してから同じことを行います。別の空間に変換するときに、高次元の空間に変換すると、自由度が上がって識別が良くなるということが知られています。
カーネル主成分分析は、高次元にするとなぜ認識しやすくなるのでしょうか?
例えば、一見まとまっていそうなものも、射影したときにピッタリ分かれるかというとそうではありません。これを2次元から3次元空間に変換すると、分かれるところが出てくることもあります。実際もっと高次元に、例えば2次元から10次元の間で変換したら、どこかの次元でピッタリ分かれるところを見つけられるのです。こういったところでカーネル主成分分析が使われるのですが、計算量が大きくなってしまうという問題もあります。それを解決したのが部分カーネルCPAというものです。
研究室の学生は、多クラスパターン識別の話、学習部分空間法、部分カーネル主成分分析などについて、研究室に入る前から授業の中で学ぶのでしょうか?
研究室に入ってから学びます。ただ、概念自体は非常に基礎的な、例えば1年生の線形代数で出てくるようなことがしっかり身についていれば、その応用としてすぐに理解できるような内容だと思います。行列演算等は、高校数学の3C辺りがベースになります。
研究室をスタートしてまだ3年目ですが、1、2年目に2人ずつ、今年は1人入りました。私は助教という身分ですので、学科では最大2名まで入れることになっており、他の研究室と比べてマンツーマンに近い形で学生指導が行えます。コンピュータインターフェースについて研究をしたい学生がほとんどで、お話したような理論的な話を研究したいという学生は今までほとんどいないです。
研究室全体の雰囲気は、コードや言語の選択は特に問わない等、研究を行う上で自由度が高いですか?もしくは、ライブラリ等共有しているものはありますか?
マトラボとかオクターブをメインに使っています。学部生が入ってきたときにはマトラボあるいはブラスの使い方や、ネットワークの基礎的な話ですとか、アールというものを4年生に調べてきてもらって発表するということをしています。
あまりコードが書けない人が研究室に入ってくるケースはありますか。研究室によっては、コードが書けることが求められる場合もあると思います。
今までのところでは、苦手な学生もいましたが、みな使っているうちに自然に身についていると思います。私はプログラミングの授業を担当したことがありますが、やはり研究とは別物だと思います。
プログラミングの講義で学ぶようなスタックやリストという概念は、当然知っておいていいことですが、研究のプログラムを書くときに必要かというと、そうでもありません。そういったところで苦手意識を持っていても、実際研究をするときには、順番が逆です。プログラム演習の講義では、こういう技術があるからそれについて勉強するという方向で進めますが、研究はこういうことを行うためにどういう技術があるのかというのを探していくという逆の方向になります。やりたいことがあれば興味のむけ方が変わってくると思いますし、自然に身についていくのではないかと思います。
脳波にもここに書いてあるN100やP300のように多くの種類があるのですか?
何万とまではいきませんが、多くあります。まず大きく自発脳活動と刺激脳反応というものに分かれます。自発脳活動は、いわゆるα波、β波と言われますが、自然の状態のときに発生する脳波です。寝ているときに出てくる、また疾患があるときにこういう脳波が乱れるというように、様々な治験があります。
そして刺激脳反応は、英語で言うとevent potential、日本語で言うと事象感電電位という、何かイベント、事象があるとそれに関連して発生する脳波です。つねられると痛いなど受動的に感覚を受けて脳波が出る場合もありますし、あるいは自らが考えて、例えば手を動かしたときに出る脳波もあります。
あるモーション、例えば腕を動かすときには腕用の脳波が出ている、足を動かすときには足用の脳波が出ているのですか?それとも複数ある脳波の組み合わせ方が、ある動作と紐付いているのですか?
まず、背景脳波として、自発脳活動いわゆるα波、β波が常に出ています。その上に事象関連脳波が乗っているというイメージになります。事象関連電位の中で手や足についての脳波というのは、脳波自体は我々が使う脳波としては同じものですが、出てくる場所・位置が異なるというものを利用することが多いです。
他の学生さんはBCIに関連してどのような研究をしていますか?
2名が信号処理について主に研究しています。例えば、他の行が光った後の脳波というのを表したのがこちらです。特徴はここで盛り上がっているところがあり、これがP300、300ミリ秒後ぐらいに出てくるのですけど、この人は遅く600ミリ秒後ぐらいに出てきています。こういう個人差などいろんな条件によってこの山の位置が変わってきます。この山の位置を推定するというような研究をしている学生もいます。
例えばこの600ミリ秒というのが、400ミリ秒でこの反応が出てきたら、頭の回転が早いということと相関がありますか。それともこの脳波の処理という話はまったく別の話ですか。
頭の回転が速いこととは結びつかないと思います。けれども実際こういうものを行うときには、より強調するために、例えばPを見ていてPの行が光ったときに、Pの光った回数を数えてもらいます。その数えたときにおそらくこういう波が出てくると考えられていて、そういったときの反射神経には関連してくると思います。ただ、疲れている場合としっかり見ている場合では、やはり時間が変わってきますので、そういうものを1回ごとに推定します。これははっきり出ていて、ここに書いてあるように何百回か平均しているのではっきり見えるのですけど、平均する前は非常に乱れてよくわからず、こんなにはっきりとは出ていないので、基本時間を推定することが重要になってきます。
他には、脳波のためのフィルターの研究をしている学生もいます。ここでは数百回平均して波形を出しています。実際には2、3回平均していますが、判別結果が出る前に平均回数を決めなければいけません。2回やれば十分なのか、4回、5回やれば必要なのか、オンラインで逐次的に推定するための研究をしている学生もいます。
最後に、ご覧のみなさんに一言お願いします。
プログラミングについてよく学生に言うのは、まず始めにどういうことをやりたいかという概念を明確にするということです。次にそれを具体的にどうやるかアルゴリズムを考えるフェーズがあり、そのアルゴリズムを最後に機械的にそのままコーディングするのがプログラミングの段階です。いきなりプログラミングから思考するのではなくて、自分が何をやりたいのかを最初に考えないと、当然プログラミングはできません。一方、講義は講義で大事だと思います。
講義も研究も共に関係し合っていると思います。講義で知識を得て、こういうものができるのではと浮かんでくることもあると思いますし、作りたいものがあるからその手段を学ぶという逆の順序もあるとも思います。講義で苦手意識を持っていても、研究すると楽しいという学生もいます。
学部1、2年生の授業では結構アレルギー反応が出るタイプの学生でも、いざ研究室に配属されて研究するようになってからは、目的ありきで意味が感じられて、面白みを感じるようになったというのはよく聞きます。ぜひ、目的意識ありきで進めた方が良いと思います。