Serviceサービス

development story of AI-based Plant Controlプラント制御AI、FKDPPの開発ストーリー

[第2回/全3回]KDPPからFKDPPへ。三段水槽の自動制御に取り組む

世界で初めてプラント制御に成功したAIアルゴリズムとして注目が集まるFKDPP。その開発に至った日々を携わった3人が振り返る。

FKDPP(Factorial Kernel Dynamic Policy Programming)とは?
奈良先端科学技術大学院大学の松原崇充教授と、弊社の鹿子木宏明、髙見 豪により開発された自律制御AIアルゴリズム。「第52回日本産業技術大賞」において「内閣総理大臣賞」を受賞。

――三段水槽のAIによる自動制御を進める最初のきっかけは何だったのでしょうか?

髙見 松原先生が取り組まれていた、ペットボトルのフタを開けるロボットです。その研究を先生が紹介してくださり、それを見た鹿子木さんが「これだ! プラントに使える」と叫んだことが始まりです。

――ロボットが様々なペットボトルのフタをつまんで開けるのですか?

松原教授 いいえ、私の研究はもっと事例特化型で、特定の場面の特定のペットボトルのフタしか開けられない、ある種ピンポイントのスキルです。その代わりに、少ない回数の練習でも開け方を覚えることが出来ます。何でもつまめるAI、何でも開けられるロボットを目指すと、膨大なデータが必要になってしまうからです。
私が考えていたのは、場面を絞ってでもいいので、とにかく少ないデータでちゃんと動くものを作りたいというものです。KDPPというアルゴリズムを開発し、ペットボトルのフタを開ける事例に応用していましたが、それは元々ロボット制御用のAIとして、ロボット業界に出したものでした。それをご覧になられた鹿子木さんから、何度か会話を重ねる中で、化学プラントが抱えている問題に拡張出来るのでは? とご提案頂き、共同の具体的な開発が始まったのです。

左から鹿子木、髙見、松原教授

――先生は、ペットボトルのフタを開けるロボットを制御するAIを開発したと、さらっと話されたのですか?

松原教授 そうですね、ポイントだけしかお伝えしなかったと思います。

鹿子木 その時見たロボットは、確か20〜30個のセンサがついていました。プラントでもよく使われているセンサです。それから手首や指を動かすアクチュエータ。空気を送ると動くもので、これもプラントで使われています。プラントも結局同じですね。センサでデータを取って、それをアクチュエータに渡し、この辺に置けとか、こういう風に回せと指示を出すので、これはプラントに使えるのではと思ったのです。
ペットボトルのフタを開けるものでしたが、プラントでは、例えば、収益を最大にする方法や、生成物の量を最大にするような運用方法を学習出来るのでは?と考えました。20〜30回の学習で、それが出来たら実用的だと。突飛なアイデアでしたが。

――アイデアへの反応はどうでしたか?

鹿子木 このことを会社の数人に話しました。ですが、ピンと来た人は10人に1人しかいなかったですね。その中で、当時の上司が、「それは面白い」と賛同してくれました。そうしてコンサルタント契約を結んでいた松原教授に、KDPPという自動制御をテーマに研究開発を進めませんか、とこちらから持ちかけたのです。

松原教授 当時ロボット制御用にKDPPを開発していた学生が、研究室のスタッフとして当面残ることに加え、研究を続けたいという希望を持っていました。タイミング的にもよく、早速取り組み始めました。

――不思議なことですが、物事にはタイミングが欠かせないですね。

松原教授 そう思いますね。その時にすごく心強く感じたのは、解決すべき課題、必要な性能、開発の期限について、具体的な仕様を提示頂いたこと。斜に構えるととても達成出来なさそうな厳しい条件なのですが、必死に取り組めば達成出来るのではと思わせる塩梅で。それも良かったですね。

――挑戦する意欲が掻き立てられる、モチベーションが持続するいい目標だったと。

松原教授 はい。条件やこのゴール設定は、なかなかない厳しいものでした。ですが、バックアップをして頂き、足りないプログラムや知識などがあれば、髙見さんが調べて、情報提供してくださいました。そうした体制があったので、いくつか山場はあったもののうまく乗り越え、かなり順調に進みました。

――自律制御をテーマにスタートしたのはいつでしたか?

松原教授 半年で成果を出したいとのことでしたので、2017年に取り組み始めました。
我々がシミュレーション用に試作したコードを髙見さんに渡し、そこから髙見さんがあれこれテコ入れして、その後、実験へと進みました。

髙見 2018年に学会発表し、その時にテスト用のアルゴリズムのコードも共同開発しました。
その後もシミュレータを使って、違う問題が解けないかどうか色々試しました。ですが、あくまでもシミュレータという枠から出られなかったのです。何かしら実験を行いたいとの思いが頭の中に浮かぶようになりました。
そんな折りに、2019年4月のことです。論文発表から半年後に、当時の私の上司から、社内にあるトレーニング用の制御装置、三段水槽をFKDPPで動かせないかと問われました。しかも驚いたことに、7か月後の展示会に出そうと、話だけが進んでしまったのです。

展示会に出展した三段水槽とFKDPP。AIによる制御を実際に目にすると誰もが驚いた。

それで慌てて出展用に三段水槽の装置の製作を依頼し、その装置が8月末に届きました。その後、三段水槽の制御に使えるプログラムを開発して実験を繰り返し、その度にプログラムに手を入れました。三段水槽を回し続け、パラメータの調整方法などを松原先生と相談して、何とか11月の展示会に間に合わせたのです。
綱渡りでしたが、強化学習のいいところは1回ボタンを押せば、後はAIが自分で学習してくれることです。4〜5時間はAIに任せきりにし、結果が出たら考察をしました。

松原教授 大事なエピソードがもう1つありました。ロボットハンドで使っていたアルゴリズムを、当初そのプラントシミュレーション問題に当てたのですが、想定以上に大量のデータを与えないとうまくいかないという結果が見えてきて、これは頂いた要求を満たすものではないと判明したのです。そこでご相談したところ、化学プラントには特殊な事情があることを教えて頂きました。
化学プラントは当然人が設計しますが、プラントエンジニアはメンテナンス性も考慮して設計しているそうです。例えば全体が一体化した構造だと、どこか1カ所手を加えたら、他も手を加えなければならない。それを回避するために、パーツごとに独立性を持たせた設計になっていると教わりました。 これは、オーソドックスなロボット制御には出てこない事情です。それを入れ込んでリニューアルしたのが、KDPPに「ファクトリアル」の「F」を足したFKDPP(Factorial Kernel Dynamic Policy Programming)というアルゴリズムです。このプラントの特殊な事情を入れ込んだことでうまくマッチし、必要なデータの量をぐっと減らすことが出来た。頂いていたデータ量で動くという仕様にようやく達したのです。 やはりそれぞれの業界の事情を知らないと、アルゴリズムを作る時にも、どれだけデータを与えれば動くのか分かりません。これは重要なポイントだと感じました。

鹿子木 データを入れさえすればAIが解くというわけではなく、その特性に応じて工夫したりして、AIが解きやすいようにしなければならない。そこが確かにポイントになりますね。

髙見 実機で本当に出来るのか、と半信半疑でしたが、実験を重ね、試行錯誤を続けることは楽しいので、何としてでもやり通そうと思いました。

鹿子木 私の上司と私のところへ髙見が来て、「三段水槽のための予算が欲しい」と。そこで2人は、シミュレータならもっと大きな事に取り組もうと言ったのです。すると、「ぜひともリアルでやりたい」と言い出して……。仕方なく予算を付けたのですが、大成功した。

――三段水槽の成功は、想定外だったのですね。

鹿子木 小さな装置を手掛けても、利益とどう結びつけるのか、という思いがあったのかも知れません。
展示会などでデモをしても、触ることが出来るAIはなかなかないのですが、三段水槽は触ることが出来るわけです。展示会に来るプロセス産業の人たちは、ほとんどの人が三段水槽を触ったことがあるので、本当に動いているのか? 少しでも触ると壊れるのでは? と疑心暗鬼でしたが、触ってもきちんと動く。それを見て、初めてAIはすごいと思った人が多かったですね。バーチャルの世界だけだとなかなかピンと来ませんが、リアルで動いている実物を見て、これはすごいと大絶賛されました。(続く)