吾輩は、SEである

堀 扶

Tasuku Hori

ITプロフェッショナル
先進技術AI分析・展開

堀 扶
新入社員のころ

...残念ながら(?)名前はあります、堀 扶(たすく)と言います、初めまして。
弊社に94年入社してからずっとSE職を20年以上やっています。
これは就職活動時も含め誰にも話していませんでしたが、システムエンジニアという響きがカッコ良かったのでこの仕事を選んでしまいました。

現在の仕事について

弊社では比較的珍しいことですが、入社してからしばらくはほぼ1年単位で様々な部署を渡り歩いておりましたが、ここ数年はテクノロジーイノベーション部という部署に在籍しています。この部署の主な役割は、プロジェクトへの技術支援なのですが、そのためには当然社内人材より半歩以上先の先進技術を習得しておく必要があります。

以下の公開スライドは、過去に調査を担当した技術要素の一部です。

デモを作る

やや市場より先行して技術要素を調査する方法としては、書籍(洋書含む)を読む、先行企業や社外の先達者の動向を調査分析する、などいくつかありますが。並行してここ数年は調査中の技術を使ったデモを自分で作ってみる、まず使って体で覚える手法をとっています。

この方法が自分の性に合っていると気づいたのは、IBM Bluemix Challenge 2015 に参加した時です。この時まったく経験のないPaaSを使って水耕栽培システムのデモを作りました。

Garden Hori. 水位が30%を切った
Garden Hori スマートフォンからの利用

このイベントでは IBM社が提供するPaaSを用いたアプリを投稿するというもので、当初は弊社の名義で準備を進めていました。しかし申込直前に諸般の問題があり、自社名での参加ができなくなってしまいました。考えた末、参加組織名を "Demo First Foundation" という名前で提出しました。
このことからも、当時自分がデモの重要性を感じていたことがわかると思います。

AIを使った自律走行デモ

以来、いろんな技術や製品の選考調査をしてきましたが、大抵はデモをまず自分の手で作ってきました。ここ数年テレビのニュースにもたまに出てきているのがAI、機械学習、ディープラーニングですが、こちらもデモをまず自分で作って覚えました。AIに関して何も知らない私がまず作ったデモが Donkeycar です。

最初に作ったDonkeycar
最初に作ったDonkeycar

Donkeycarは、ラジコンカーを改造して作る自動走行車です。作り方が公開されており、プログラムもすべてオープンソースとして提供されています。ドキュメントを読むと3Dプリンタが必要とあったので無理かな...と思っていましたが、香港のオンラインショップでラジコン本体を含む部品が手に入るという記述を見つけ、試しに作ってみました。日本語でなくてもドキュメントはどんな手(といってもGoogle翻訳ですが..)を使っても先にきちんと読んでおくものです。

手始めに標準Donkeycarキットを作り、実際に動かしてみると、ここ最近言われているAIが、プログラムの中では一つの関数であること、しかも100%正解を返さないこと、維持費用が従来の関数よりかかること、新しいアルゴリズムがどんどん出てくるので作り替えが多くなりそうだけど利用ケースをかなり絞ると意外とfixできることなどがわかってきました。

2019年2月2日に開催された走行会、最前列左から2番目が2台目自作車
2019年2月2日に開催された走行会、最前列左から2番目が2台目自作車

また提供されているオープンソースコードを実際に読むことで、比較的簡単にいくつかの独自拡張が可能であることがわかってきました。

マネタイズを考える

そして、この自動走行ラジコンカーを会社のサービスなりソリューションなりに応用できないか、いわゆるマネタイズを検討することとなりました。

3台目自作車はキャタピラ車
3台目自作車はキャタピラ車

マネタイズ→お金になる車..単なる自動車ではない独自機能を付加した業務用車両で作れば...という比較的単純な思考で作ったのが、倉庫内走行前提の自動走行フォークリフトです。

Autonomous Forklift Agent

Donkeycarは周回コースをぐるぐる回るだけでしたが、フォークリフトの場合は荷揚げ・荷下ろしが役割なので、Donkeycarにはない自分自身の現在位置を知る方法が必要になります。またフォークリフトの走行は倉庫などの屋内の決まったレイアウト内であることなど、ユースケースが少しでも異なるとシステムの全体設計がかわってくる、つまりオープンソースコードDonkeycarを読み理解しておかなくては構築できないことがわかってきました(おかげで書籍や研修を受けることなくPythonが書けるようになりましたが..)。

単独走行のみ可能な初代フォークリフトエージェント
単独走行のみ可能な初代フォークリフトエージェント

Donkeycarも強化学習を採用することはできます。実際Donkey Simulatorというオープンソースのシミュレータソフトウェアが公開されています。(以下の動画は、このシミュレータソフトウェアを使って動かしています)。

Battle Royale with Donkey Simulator
Battle Royale 2 with Donkey Simulator

ただし私の作ったフォークリフトは、タミヤの楽しい工作シリーズをベースにしているため、左右別モータ駆動で後輪が1輪しかない3輪車で作製しました。このため強化学習のためのシミュレータはフルスクラッチで作成する必要があります。

シミュレータを作成する方法はいくつかあります。比較的一般的(と私が思っている)な方法として、Blenderでフォークリフトや倉庫モデルを作成し、Unity 3D ML-Agentを使ってシミュレータ環境を構築、 OpenAI Gym API 経由で強化学習トレーニング処理を行います。

新たなフレームワーク開発を実現

Blender や Unity 3D は、ゲーム製作によく使用されるソフトウェアですが、大量のプロパティがならぶGUI開発環境を覚えながらシミュレータソフトを作成するにはコストがかかります。そのあたりを解決するには..という思考から考え出されたのが弊社サイトで公開したRATF(Rapid Agent Training Framework)へとつながっていきました。

Marvelmind Double Mobile Beacon VS Intel RealSense T265

先進技術習得のためには「まず動いてみる」

先進技術を習得するためにデモをまず作る、という方法は必ずしもすべての技術要素に適用できません。
量子コンピュータなどは、ある程度まで情報収集はできても実際に使用できる環境を持つ人はごく少数です。
それに私も知識ゼロからはじめているか、というとそうではなく、自腹で書籍を購入したり、ほかの業務経験の応用を多用しているので、他の人にも簡単に..とはいかないかもしれません。
ですが、IT業界にはオープンソースという制限付きで無料で活用できるソフトウェアや、近年は無料で利用できるクラウドサービスも提供されており、比較的「まず作ってみる」ことが可能な環境が意外ところがっていることがあります。もし何かスキルを身に着けたいと思っている方は、「まず動いてみる」のもよいとおもいますよ。

※記載されている製品名、社名は、各社の商標または登録商標の場合があります。
※記事内容は掲載当時のものとなっております。

TOP