大学の学びはこんなに面白い

大学の学びはこんなに面白い

研究?教育紹介

東京工科大学 HOME> 大学の学びはこんなに面白い> 生体データ解析にAIを用いて、ヘルスケアサポートシステムの開発に取り組んでいます!

生体データ解析にAIを用いて、ヘルスケアサポートシステムの開発に取り組んでいます!

2018年2月9日掲出

コンピュータサイエンス学部 生野壮一郎 教授

生野壮一郎教授

 電磁波や音波の伝播現象など、目に見えない現象をコンピュータでシミュレーションして解析する研究やそのための計算を高速化する研究に取り組んでいる生野先生。最近、力を入れている研究について伺いました。

前回の掲載はこちらから→/topics/2013.html?id=303

■今、先生の研究室では、どのような研究に取り組んでいるのですか?

プログラム図1
図1

 前回の取材でお話しした、物理的?工学的シミュレーションやその高速化の研究は、引き続き研究しています。今日は、そのうちの高速化の研究について取り上げましょう。
 この研究室がシミュレーションの対象としているのは、磁石や電子レンジがつくるような電磁波や電磁場です。でも、電磁波や電磁場は目に見えませんよね。それを目に見えるようにシミュレーションして可視化しようと取り組むわけですが、そういう物理現象をコンピュータでシミュレーションしようすると、しばしば大規模な連立一次方程式を解く必要が出てきます。どのくらい大規模かというと、中学の数学で扱う連立一次方程式の未知数は2個、高校で3~4個のところ、私たちが扱うのは、数万から数千万、多いと数億個になります。
 では、そんな大きな連立一次方程式をどのようにして解くのか。みなさんが中学時代に習ったのは、例えば連立1次方程式2x + 3y = 4, 3x - 2y = 5でxとyを求めるとき、xの係数を合わせて引き算をし、yだけの方程式に変形し...と計算しますよね。これをガウスの消去法と言いますが、その方法で1000万の未知数の連立一次方程式を家電量販店で買える性能の良いパソコンを使って解くとしたら、どのくらい時間がかかると思いますか?なんと2~3万年かかる計算になります!
 当然、そんなに時間をかけられませんよね。では、限られた時間内で大規模な計算を解くにはどうするのかというと、速いコンピュータを開発するか、速い計算方法を開発するかです。そして、この研究室が取り組んでいるのは、後者になります。速い計算、つまり無駄な計算をしないで済むコンピュータを用いた計算方法を考えるということです。
 一方で、連立一次方程式にはコンピュータを用いて解く場合、解きやすい問題とそうでない問題があります。未知数が2、3個であれば紙と鉛筆で解けるので、そういう感覚を持ちにくいのですが、私たちが相手にする大きな計算は、基本、コンピュータでの計算になるので、解きやすさ?解きにくさがよくわかります。というのもコンピュータで計算するには、有限の桁数、実数で計算しなければなりません。例えば、3分の1は、0.333333…と無限小数になりますが、コンピュータで3分の1を厳密に表現することはできません。0.33333…をどこかで切り捨て、切り上げをしてコンピュータに格納する必要があります。すなわち、有限の桁数で数を表現するため、そこに誤差が混入するわけです。例えば、こんな問題を考えてみましょう。18 + 2^57 - 2^57(2^57は2の57乗)の答えは18となるはずです。ですが、これをC言語というプログラミング言語でコンピュータに解かせると、結果は32となります。(プログラムを図1に示します。)しかし,このプログラムを18 + (2^57 - 2^57)と書き換えるとちゃんと18という正解を出してくれます。
 このように、工夫を凝らさず有限の値で計算する場合と、無限の桁で紙と鉛筆を用いて計算する場合とでは、結果が異なってくるので、コンピュータを用いた計算では、これらの誤差の蓄積をしないような様々な工夫が必要となってきます。また、高速な計算をするためには、並列処理という技術を使うわけですが、並列処理を行う場合プログラムは煩雑になりがちです。コンピュータの性能を引き出すためには、なるべく簡単なアルゴリズムも必要となってきます。我々は、日々このような研究を行っています。

■最近は、新たにAIに関する研究にも取り組まれているそうですが。

 今までの私の研究テーマとはまったく違うのですが、生体データのデータ解析をAIを用いて取り組んでいます。もともとは熊本大学の教育学部との共同研究で、若い女性に自分の基礎体温やバイオリズムを意識してもらうために、基礎体温や細かい体調を入力?管理するヘルスケアサポートシステムをつくろうという研究でした。今はスマートフォンのアプリなどにも、そういうものはありますよね。それを私たちはアプリではなく、クラウド上で行っているのです。
 ただ、体温や体調といった生体データをせっかくクラウドに集めるわけですから、単に入力してもらうだけでなく、それを利用できないかと考えまして。具体的には、クラウドに集まったユーザーの入力情報をAIで解析して、コンピュータからユーザーに「そろそろ肌荒れの時期です」とか「明日もしかしたら頭痛が起きるかも」といったレコメンデーションができないかと考えたわけです。そこでデータの解析をしてみようと、ディープラーニング(深層学習)に生体データを入れてみました。つまり人工知能に個々のデータを学習させて、レコメンデーションさせるということに、最近、取り組み始めたのです。
 ただ、一般に人工知能に学習させるには、あらかじめ数万から数十万のデータが必要になります。ですが、こうしたユーザーからの入力情報をベースにしたシステムは、サービス開始当初は登録者数が少ないのでデータ自体がそれほど集まらないですよね。そこでGAN(Generative Adversarial Network)というものを使ってAIが学習するための疑似生体データをAIでつくって学習をさせて、レコメンデーションできるようなシステムをつくろうと取り組んでいるところです。まだまだ不完全ですが、実現すると面白いと思いますよ。

■受験生?高校生へのメッセージをお願いします。

 高校生のみなさんには、とにかく数学などの基礎力をつけておいてほしいと思います。今、話題のディープラーニングやAIは、ニューラルネットワークという分野がベースになっているだけではなく、トポロジー(位相幾何学)という数学の分野が非常に密接に関連しています。ですから数学がわかっていると、AIのかなり深いところまで勉強できると思います。AIに限らず、スーパーコンピュータにも数学が必須ですし、データ解析は統計ありきです。このようにコンピュータ分野はすべてにおいて、数学が関わってきます。だからこそ、数学の基礎力があればあるほど、可能性の広がり方が無限大になるのです。
 あとは、英語を苦手にしないこと! やっぱり最先端の情報に触れるには英語が欠かせないからです。AIを勉強しようと思っても、GoogleやAmazon、Facebookが最先端なので、どうしても最初に出てくる技術書や論文は英語です。英語がぺらぺらでなくてもいいけど、英語を見て頭から湯気が出るようでは困るので、英語への抵抗がないように勉強しておきましょう。
 それから余裕があれば、プログラミングをがんがん書いてください。コンピュータサイエンス学部には、プログラミングが大好きで、入学前からがっつり書いているという学生が結構います。ですから、少しでもプログラミングに触れておくと、入学してから一層、勉強や研究が面白くなるのではないかと思います。

■コンピュータサイエンス学部WEB:
/gakubu/cs/index.html

?次回は3月9日に配信予定です。