金原様1

AIを用いた高度な計算や膨大なデータ処理が可能となった今、AI分析による技術革新が加速し、AI分析で扱えるデータの種類も増えている。一方でまだあまり研究が進んでいない領域があるのも事実。その一つが、脳波や筋電位といった生体信号。ノイズを含んでいることが多く、解析技術の発展がなかなか進んでいないのだ。AIを使って生体信号をより高度に分析できるようになれば、身体能力のサポートや暗黙知の転移など、人間の能力の補完・拡張につながる可能性がある。そこで今回、走行中のスケートボーダーから記録した生体信号を用いて、脳波や筋電位から挙動を予測するコンペティションが開催されることとなった。工学知識に加え、生理学知識や電磁気学知識など多領域の知識を必要とされるコンペティションであるため、その難易度の高さに参加者たちは頭を悩ませた。 そんな本コンペティションで、テーマ1の「スケートボードトリック分類チャレンジ」にて3位、テーマ2の「スケートボーダー重心位置予測チャレンジ」にて1位、また審査員特別賞に入賞した金原隆一さんは、本職で自動車用エンジンの開発・設計に携わりながら本コンペティションに臨んだという。果たして、今回のコンペティション参加の動機とは何だったのか。そして、どのようにして両テーマでの入賞に漕ぎ着けたのか。取り組みにおける工夫、参加で得られた学びについて率直に伺った。


▼動画はコチラ▼


新しく身につけたAIの知識と、長年磨いてきた機械系の知識を活かせると思った。

普段は自動車用のエンジンの設計を行っており、AIに触れる機会はそこまで多くありませんでした。しかし、昨今は至るところで「これからはAIの時代だ」と叫ばれています。ここまでAIが注目されている以上、これまで身につけてきたプログラミングのスキルをAIの領域に転用しないのはもったいない。そう考え、社内研修として開催されていた大阪大学のAI講座に参加しました。IT部門から参加している社員が多い中、設計部門から参加したのは自分のみ。プログラムを書くこと自体はスムーズにできても、AIについて体系的に理解するのに非常に苦労しました。それでも毎週土曜日に6時間、半年間にわたって講座に参加したことで、AIの世界にやっと足を踏み入れることができました。その後は設計業務の傍ら社内のDX推進などにも携わっていたのですが、せっかく身につけたAI技術をもっと活かしたいという想いがあり、悶々とした日々を送っていました。 そんな中見つけたのが今回のコンペティションだったんです。元々コンペティション自体には興味があり過去にも何度か参加したことがあったため、開催案内が届くたびに目を通してはいました。特に今回は、生体データを扱うという一風変わった内容だったため目を惹かれましたね。生体信号を扱った経験はないものの、普段触っているエンジンの信号データと似ているのではないだろうか。またスケートボーダーの速度や加速度といった力学的な知識を問われる以上、機械系の知識が活かせるかもしれない。そう考え、思い切って参加を決めました。

金原様2

まず調べる。活かせるものはフル活用する。その姿勢が好調な滑り出しにつながった。

課題に目を通してまず感じたのは「データが膨大かつ複雑すぎる」ということ。テーマ1については、72チャンネルもの脳波を分析する必要があり、データの扱い方に非常に悩みました。数が多すぎるのはもちろん、そもそも自分の目で見ても一つひとつの脳波が何を表しているのか分からない。テーマ2についても、下肢の皮膚表面から記録された16チャンネルの筋電位データを分析しなければならないかつ、今回は30ステップのXYZ方向速度を予測するタスクとなっているため、1つのデータに対して90個の答えを出さないといけない。これらのデータをうまく処理するには相当工夫しないといけないぞと思いましたね。 そこでまずは生体信号そのものについて調べることにしました。脳波や筋電位といった生体信号にはどのような特性があるのか、昨今ではどのような研究がされているのかなどを知るために論文を読み漁っていったのです。これにより、テーマ1の脳波の扱い方についてはある程度理解することができました。またテーマ2については筋電位についての知識を深めつつ、本業のエンジン設計で身につけた1次元信号処理の知識を活かすことで、扱いやすいデータに変換することができました。具体的なアプローチとしては、一般的な畳み込み手法を用いず、ウェーブレット変換によってデータを2次元画像にするという前処理を行いました。

金原様3

観察と実践の繰り返し。最終的に行き着いたアプローチは至ってシンプルだった。

割と序盤にデータの処理方法を定めることができたため、コンペティションが始まってしばらくは上位をキープできていました。ただ、テーマ1とテーマ2を並行して進めているうちに、テーマ2の順位がどんどん下がっていってしまったんです。他の参加者のスコアを横目に試行錯誤するもなかなか振るわない。残り1ヶ月の時点で10位まで下がってしまい、このままでは結果が残せないと焦りが募っていきました。それでもなんとか結果を残したいという一心で、仕事が終わってから毎日このコンペティションに向き合っていました。 その状況を打破するきっかけとなったのは、データを提供いただいた国際電気通信基礎技術研究所(ATR)の実験動画を観ていたときのことでした。何度も何度も再生し、時には0.25倍速で動画を再生していた中、ターンの種類によってスケートボーダーの体の向きが入れ替わることに気づいたのです。この身体の向きを考慮していないから予測データの精度が低いのだと分かりました。そこでデータを左右反転させるという方法も試したのですが、反転すべきデータとそうでないデータを見極められないため精度は上がらない。それでも打開策はあると信じ、思いつく限りのアプローチを試していったんです。その結果辿り着いたのは、前処理として左右のチャンネルを相乗平均して入力するという至ってシンプルなアプローチでした。この処理によって、身体の向きによる影響を受けず、高い精度の予測データを導き出すことができるようになったんです。最終的なアプローチだけ聞くととても簡単に聞こえるかもしれませんが、その裏には何百パターンもの試行錯誤と失敗があります。実験動画やデータをくまなく観察し、思いつく限りの方法を実践する。その泥臭い進め方を貫いたことが、最適なアプローチを見つけることができた理由だと思います。

金原様4

大切なのは、AIのスキルを持つことではなく課題を発見する力を持つこと。

コンペティションの締切日は有休を取り、朝一番に最後のサブミットを投稿した後は家の神棚に向かって「どうか入賞できるように」と祈っていました。その願いが通じたのか、結果としてテーマ1では3位、テーマ2では1位、そして審査員特別賞にも選んでいただき本当に嬉しかったです。嬉しさを噛み締めつつ思ったのは、膨大なデータであろうと生体信号という未知の領域であろうと、諦めずに取り組めばなんとかなるということ。この気づきは私にとって大きな自信になりました。また、このコンペティションを通じて生体信号を扱うためのライブラリなどについても学ぶことができ、自分のスキルや知識の幅が広がったように思います。生体信号の領域については、社内で今一番詳しいはずです。 達成感を得た一方で、ここで満足してはいけないという想いもあります。どれほどAIを扱うスキルを高めたとしても、そのスキルだけで解決できる問題はそれほど明らかになっていないと考えているためです。むしろ今後求められるのは、AIを扱うスキルではなく、AIで解決できる問題を現実に見つけ出す力なのではないでしょうか。そのためには領域横断型の知識を身につけることが必要だと思います。社会を多角的に捉え、何を改善すべきか、何を生み出せるのか自ら見つけ出すために。今回生理学について学んだように、未知の領域について学ぶ場に飛び込んでいきたいです。

金原様5

▼コンペティション参加を検討している方へのメッセージ

実務でAIを扱う方は分かっていただけると思うのですが、どんなに工夫しても精度が上がらないと、データの質が悪いからなのか、自分のアプローチが誤っているからなのかが分からず悶々としてしまうことがあると思います。しかしコンペティションの場合は、他の参加者のスコアを見ることができます。つまり同じデータで自分より高いスコアを出している人がいれば、アプローチが原因だということが一目で分かるのです。競い合うことは、精度を上げるために頑張れる理由にもなる。この点に少しでも惹かれた方は、ぜひ一度コンペティションに参加してみてください。きっと自分でも驚く結果を出すことができるはずです。

この記事をシェアする