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

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

研究・教育紹介

東京工科大学 HOME> 大学の学びはこんなに面白い> IoTで捉えた大量の情報をクラウド上で効率的に処理し、その結果をいち早く提供する仕組みを実現したい!

IoTで捉えた大量の情報をクラウド上で効率的に処理し、その結果をいち早く提供する仕組みを実現したい!

2021年1月22日掲出

コンピュータサイエンス学部 先進情報専攻 金光永煥 講師

コンピュータサイエンス学部 先進情報専攻 金光永煥 講師

大学の学部時代は数学を研究していたという金光先生。就職してプログラマーになるまでは、プログラミングにもコンピュータにも興味がなかったそうです。やがて仕事を通じてITの世界の面白さを知り、さらなるステップアップを求めて大学院へ。そこで現在の研究のきっかけとなるテーマに出合い、研究の道へ進んだそう。今回はコンピュータサイエンス学部のコロナ禍における授業体制やご研究についてお聞きしました。

■新型コロナウイルス感染症が流行する中、コンピュータサイエンス学部では、後期の授業をどのように進めていますか?

 基本はオンラインで授業を行っています。リアルタイムでの授業とオンデマンド(録画)による授業ですね。ただ、コンピュータサイエンス学部には「プロジェクト演習」など、手を動かす授業もあるので、それらについては一部、対面で行っています。もちろん感染予防対策として学生同士の席は離し、1テーブル4人1組のグループに分けるなど、座る人数を極力減らしています。また、人数の多い授業では、教室を複数に分けて行う場合もあります。前にスクリーンを用意し、そこで映像を共有しながら授業を進めているのです。先生のいない教室には、TA(Teaching Assistant)に入ってもらい、学生からの質問などにもしっかり対応しています。
 私自身は、講義形式の授業とプログラミングの演習を担当しています。講義形式のものはオンデマンドで、プログラミングはリアルタイムのオンライン授業です。オンデマンドの方は、時間内にどの学生が視聴し、いつ課題を提出したかをチェックすることで、取り組み度合いを評価しています。
また、プログラミングの演習は、正確には講義付き演習というもので、2コマあるうちの1コマ目が講義、2コマ目が演習というものです。1コマ目は、オンラインを通じてリアルタイムに私の手元を映しながら講義をしています。2コマ目の演習の方は、実は今でも少し苦労しています。というのも、この授業には70人ほどの受講者がおり、その全員が各自のパソコンを使って、自宅でプログラミングの課題に取り組むため、各々の環境によっては、正しく動作しないという問題が起こるのです。そういう想定外のトラブルに対応するために、学生を6グループに分け、それぞれZoomのブレイクアウトルームに入ってもらい、そこにTAがいる状態にしています。また、パソコン環境の不具合やTAで対応できない質問のときのために、別途、相談室というルームを設け、そこに私が常駐する形で対応に当たっています。このように対面であれば、すぐ解決する問題もオンラインを介すと難しい面があることは確かです。ですが、オンライン授業はその録画を学生が復習に活用できるなど、メリットもあります。来年以降、対面授業が普通に行われるようになっても、そういう良い点は残していきたいですね。

■では、先生のご研究についてお聞かせください。

 私の研究室では、並列分散処理の研究をしています。簡単に言うと、ネットワークにつながった多数の計算機を連携させて、巨大な仕事を効率良くさせる方法論を研究しているのです。それを実現することで、IoT(Internet of Things)、つまり家電やセンサ、カメラで捉えた大量の情報をクラウド上で効率的に処理し、分析結果が欲しい人にいち早く提供する仕組みを実現したいと考えています。そのために必要な研究として、大きく3つのテーマを扱っています。1つ目が「資源の割り当て・スケジューリング」、2つ目が「ネットワーク」、3つ目が「IoTシステム」です。
 
1つ目の「資源の割り当て・スケジューリング」の研究から説明しましょう。例えば、1万台のセンサやカメラが捉えた撮影動画などの情報は、絶えずストリーミングデータとしてネットワークに大量に流れ、クラウドに集められるので、それを効率的に処理する必要があります。そのときに、どのように仕事を割り振るかということをクラウド上で行うのが、資源の割り当ての研究です。クラウドとは簡単に言うと、大きなパソコンのマンションのようなイメージです。大きなパソコンのマンション内の、ある部屋にはWindows、ある部屋はMac、ある部屋はLinuxと、計算資源を常駐させることができます。つまり、ひとつのパソコン(マンション)内で仮想的に何個もの部屋のパソコンを動かすことができ、計算資源をうまく活用できるのです。
とはいえIoTのような大量のデータをどの部屋に割り振るかは、クラウドではしてくれません。そこで自動的にどの仕事をどの部屋に任せるかという割り振りする方法を研究しています。特にこの研究室では、仕事を割り振る部屋が持っている能力、つまりその部屋が今から割り振る仕事のエキスパートかどうかまで見定めて、自動的に割り振る手法を開発しています。また、一つのクラウドだけでなく、複数のクラウド間でのやりとりも想定して研究しています。ときには、同じクラウド内で割り振って処理するより、隣のクラウドにある能力の高い計算機に任せたほうが効率的なケースもあります。そういうことも自動的に考えて、クラウド間で仕事を割り振ることのできるアルゴリズムを開発しました。

 2つ目の「ネットワーク」の研究では、情報指向ネットワークを扱っています。現在、私たちが使っているネットワークは“IPベース”と言い、それぞれのコンピュータに住所があって、その住所を宛先として指定し、手紙を出すことをしているわけです。例えば、お菓子がほしいとき、近所の特定のスーパーに電話をして「このお菓子が欲しい」とお願いし、商品を送ってもらうようなモデルです。一方、この研究室で手掛けている情報指向ネットワークは、欲しいコンテンツを持っている人なら誰からでも良いのでもらうというモデルです。「このお菓子(コンテンツ)がほしい」と言えば、「持っているよ」という人からもらえるので、場所を意識せず、コンテンツだけを意識したネットワークになります。仕組みとしては、サーバーから誰かがコンテンツデータをもらったら、その人のところにデータが置いてあるので(キャッシュ)、他の人はサーバーではなく、その既にデータを持っている人からデータをもらうというものです。このモデルには、特定のサーバーに負荷を集中させないというメリットがあります。
 私の研究室では、この情報指向ネットワーク上で、例えばどのユーザーにどのコンテンツを置いておくと効率が良いかという手法を研究しています。欲しい情報を早くもらうために、あらかじめどのユーザーのところに人気のコンテンツを置いておくと良いかを決めておくわけです。また、ユーザーが持てるデータ量は限りがあるので、容量がいっぱいになる前に、コンテンツを整理して人気のないものは消す必要があります。そのとき、どれを捨てるかということも自動で実行できるようにしています。

 3つ目の「IoTシステム」では、視覚障害者の歩行支援を目的としたIoTシステムの開発をしています。これは学生が自発的に研究したいと進めているものです。具体的には、装着したカメラで信号機を認識して、赤なのか青なのかを自動的に骨伝導スピーカーで教えるというシステムです。ただ、信号機も色々な種類があります。今は何でもAIで認識してくれますが、AIに認識させるには、信号機を信号機として認識させる学習が必要です。そこで遠隔にいるクラウドといった巨大なコンピュータに学習させ、その学習結果を、例えば腕や腰、白杖に付けた小さなコンピュータにダウンロードして教えてあげることができないかと取り組んでいます。

■先生の研究室では、独自のワークフローエンジンを開発されたそうですが、それはどのような研究ですか?

 1つ目の「資源の割り当て・スケジューリング」の研究と、2つ目の「ネットワーク」の研究を融合させたものになります。今までの話では、ある仕事をこのマンションのどの部屋に割り当てるかという研究でしたが、この研究では、仕事自体がどこにあるかわからないという想定です。こういう仕事をしたいけれど、対象とする仕事がどこにあるかわからないというところから出発しています。その仕事を発見するときに、情報指向ネットワークを使って、「この仕事、ありませんか?」と声をかけると、その仕事を持っている人からもらえるのです。
 次に、その仕事を誰に割り振るかというところは、各計算資源が自分の持っている情報を使って、自律的なスケジューリングの技術で行います。例えば自分の友達の中から、その仕事が得意そうな人を選んでそこに割り振るイメージです。さらに一番の特徴としては、仕事の結果をその仕事をした人に持っておいてもらうという点です。そして、他の人が同じような仕事をしたいと言ったときに、その仕事の結果だけを返します。情報指向ネットワークの技術を用いて、もう一度、誰かが同じ仕事をする必要をなくすわけです。つまり処理という仕事をしない分、早く結果がもらえます。

 このエンジンを使ってこれから取り組もうとしているのが、私が参加している総務省の戦略的情報通信研究開発推進事業に採択された日欧の共同研究プロジェクトです。このプロジェクトには、日欧で持っているデータをお互いに利活用しようという目的があります。ただ、それには各国が持っているデータの共有が必要ですが、共有の仕方もデータのフォーマットも通信方式も国ごとに異なるため、うまく統一した方法を採る必要があります。しかし、各国の情報の処理の割り振り方針までは決められません。例えば、日本とヨーロッパにクラウドの基盤があって、それぞれの仕事を連携させたい場合、各国独自の仕組みや割り振り方針があるので、それぞれを尊重した形で割り振る仕組みが必要になるのです。そこで自律的に自分たちでスケジュール化してもらうという考え方が必要になり、それができるワークフローエンジンを開発したのです。
 現在、このワークフローエンジンは公開され、誰でもダウンロードして使えるようになっています。今後はこのエンジンをより多くの人に認知してもらえるよう展開していきたいですね。また、外部の企業と積極的に連携していきたいとも考えています。研究という閉じた世界にいると、人に使ってもらえるシステムはなかなかつくれません。実際、この秋からアメリカの企業との共同研究プロジェクトが始まっていて、私は今、その企業のソフトウェアを改善する仕組みを考えているところです。自分のアイデアが世の中で使ってもらえるようになれば、それはとても嬉しいことです。

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

 月並みですが、何事もあきらめないことが大切です。最初は難しいと思ったことでも、何度もチャレンジして壁にぶつかることで、少しずつわかってくることが増えます。そこで大事なのは、自分が今、何がわかっていないのかを明確にすることです。これは受験勉強にも言えることですよね。また、繰り返し難しいことに挑戦すると、粘り強さや忍耐力が身に付きます。これは社会に出たとき、最も評価される部分だと思います。知識や技術は勉強すれば手に入りますが、粘り強さは自分が経験しないと得られないものですから。
 また、学生の中には、今、学んでいることが、将来何の役に立つのかと、すぐに考える人も少なくありません。ですが役立つかどうかは、やってみないとわからないことです。学びや経験には効率を求めず、時間をかけてじっくりと積み重ねていってください。

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