筑波大学システム情報系教授 伊藤誠さんインタビュー

今回は、筑波大学システム情報系教授伊藤誠さんにインタビューさせて頂きました。システムのロジックのデザインやインターフェイスのデザインについてお話しを伺いました。

筑波大学伊藤教授

伊藤先生の研究室でやられている研究の概要についてお聞かせ下さい。

プログラミングそのものとは関係ないと言えば関係ないのですが、どちらかというと心理学に近いです。つまり、大きく言うと、人間と機械との協調や共生など、人と機械のシステムが何かのタスクを上手く安全に行えるような、システムのロジックのデザインであるとか、インターフェイスのデザインに関する研究をしています。主には自動車の運転の支援などがあります。

実際には、人間が何らかの形で、機械に接触する場面は必ず生じるので、そういう時にどのようなシステムのロジックを組んでおくと問題がないのかというような事を考えています。また、自動車以外にも、鉄道であるとか航空機であるとか有人宇宙船などの分野も手掛けたいと考えています。

現在はメーカーのニーズもあり、自動運転、運転支援自動車に関する研究が殆どです。元々、僕らがやってきたのは、システムの信頼性の評価や、安全性の評価など、そういうところから出発しているので、いかに安全に運用できるかに力を入れていきたいと思ってます。

先生が、ライフワークとされる自動運転についての課題についてのお話をお聞かせ下さい。

実際に世の中に出回るというのは相当先であると思ってます。場合によっては無理なのではないかと個人的には思っています。知的なセンサーを積んでいるのか、という事にもよりますが、自動運転と銘打っているとしても、場面によっては、システムが対応出来ないという限界があるんですね。また、道を見失ってしまう、という事が、現実にはありうるといった事が生じた時に、その対応は、その人間がやらなければいけないと思っています。

また、自動運転してる時に人間の注意力は、かなり低下している状態だということを、予想しておかないといけません。そういった、注意力が低下した人間に対して制御を戻す為には、どんなタイミングで、どんな情報の伝え方をしたら良いのか、などそこの部分が、今、重要な課題になっています。

そうは言いつつも、ある種拷問のようにじっと見てなさい、というのが果たしてシステムのあるべき姿として良いのだろうか、とも思います。エンジニアの技術レベルを高めていくという意味で、自動運転を目標にするというのは、実際の最終的な製品をシステムの姿として、何もやらないで人間がジッと座っていなければいけない、とい状態が、あまり良い事ではないかも知れません。しかし、人間は、やはり完璧ではないので、事故を起こしたりしますので、機械の手助けは必要ですよね。そうすると、人間が、普段運転操作に何らかの形で関与しつつ、適宜システムがサポートするような、完全なマニュアル運転ではないけども、常にシステムがサポートしている様な、シェアードコントロールの考え方というのも、一方で推し進めていく必要があるのではないかと言う議論があります。

シェアードコントロールといいつつも、システム能力にも限界があるので、システムがある時突然、これ以上出来ません、という状態になると、いかに制御を引き継ぐのか、などの問題を考えて、あれこれ試行錯誤しているのが現状であって、その部分が僕らの研究の課題ではありますね。

未来における自動運転の法的な問題との関わりとは何でしょうか?

5年先、6年先、或いはその先と将来を見据えた時に、自動運転と銘打った車は出てきてもおかしくありません。ただ、それは先程申し上げたような常時監視型で、人間が基本的に見てて下さいね、という事を言わざるをえません。それは、その技術的な問題もなのですが、法的な問題があって、人間が制御して人間が制御出来る状態になければならないのです。例えば、国際条約だとか、或いは道路交通法だとか、そういうところの現状が同じだとすると、運転席に座っている人の責任になるので、その人の責任の範囲内で行われるという事は、その人が、ちゃんと常にモニターして、必要に応じて介入出来るような体制を維持した自動運転、というようなものにならざるを得ないのじゃないかなと見ています。5年先ならそのような感じだと思います。さらに、法体系を5年先に変えるのは難しいと思います。

普段使われる言語や学内においての学生の実情、また、先生の最近始められた医療での関わりのお話をお聞かせ下さい。

シュミレーションそのものは割りと古いので、CやC++で書くことが多いです。基本的には、車両運動部分とは完全に切り離されているので、適当に通信させて、例えば、UDPで流す、そのような形で行っています。

私の研究者の場合は、Cで教育を受けますので、学生がCかC++でやる人が多いです。シュミレーターによってはシナリオを編集するツールを作っている所もありますが、少しややこしいロジックを作るのが、なかなか難しいので細かい部分は、やはり手でプログラムを組みます。また、データ構造をどうするか、みたいなややこしい問題はなかなか考えないんですけども、ロジックをどういう順番で、どう動かすかといった事は考えています。

情報科学類は、やはり、所謂プログラミングをやる学部、学科ですよね、というイメージが強いので、高校生ぐらいからプログラミングをかなりやってきましたって人も多いですし、今までやってきてない人でも、そういった事をやるつもりで入ってきたって人が多いです。

私が、学部の時に、今一緒にやってる稲垣先生のところに入ったんですけど、僕自身も入ってみて、プログラミングが凄い人は凄いなと、全然敵わないなと思いました。そこで、勝負してもしょうがないなと思った時に、稲垣先生がシステムの信頼性などをやっておられて、これはちょっと面白いと思いました。そして、始めてみた、という感じなんです。プログラミングとしては、高度なプログラミングの能力は、実はそんなに必要なくて、要するにCが普通に書けて、if文が書けて、条件分岐が出来れば良いですね。

修士課程へは平均からすると少ないです。学類全体では7、8割大学院にあがるのですが、うちは、平均すると半分ぐらいです。それ以外の学生ですと、こういう研究を行っているせいか、自動車メーカー、サプライヤーへ行かれる学生が多いですね。僕が講義しているのは3年生向けの統計学です。統計学は、僕らがやってる心理実験的な研究のアプローチだと、当然データを取って、分析して、というような事をするので必須なんですが、今流行のビッグデータよりも、もう少し基本的ですね。

さらに、2年生向けに情報理論を教えています。また、研究室内の学生は、システムが駄目になった時、他の人間がどう引き継ぐか、という問題だったりを携わる人もいます。心理的に歩行者がポンと飛び出してきた時に、人間は、どういう反応を示すのか、といった事を研究しています。

他には、最近、全然違う文脈で、お医者さんと付き合いが広がってます。例えば、脳卒中であるとか、或いは視野に異常があるとか、いろんな形で人間の知覚とか 認知の能力に障害などの問題がある人がいるとします。今まででは、運転出来ずにいたのですが、リハビリして割と日常生活が出来るようになったので運転したい、という方に、運転して良いか判断をお医者さんが下すんですね。お医者さんが下す時に、どういう基準で判断したら良いのか、というのを、倒置的な基準がなければいけない。そこをなんとか基準を作りたいとか、或いは簡便な方法で評価したいとかシュミレーターを使って、何とか出来ないだろうか、という話があり、お医者さんとのお付き合いの中で、視野に異常がある人は、どんなところに運転の問題があるんだろうか、ということを調べたり、そういう人でも運転出来るようにする為には、機械の側からどんな支援が必要なのか等、そのような事も最近始めてます。

最後に、ご覧の皆さんに一言お願いします。

自動車の運転支援という事で言うと、いかに、安全運転のモチベーションをもたらすか、ということは話題になっていて、こういった部分をいかにこれからのエンジニアが考えていくか、という事がひとつのキーになってると思います。なので、そういう意味で言いますと、「私は文系だ」とか、「私は理系」だとか、そういうふうに区切らない方が良いですよ、とは言いたいですね。また、心理学的な目で物を見る事の出来るエンジニアになって下さいとか、両方のスタンスが分からないとこれから先大変かな、ということは気はしていますね。自分の専門性は大事にしつつ、それを客観視、或いは別の観点からある種批判的に自分を眺めるということも大事だと思います。

おすすめの記事