職人の「機転」をデジタル化できたら…。製造現場の計画立案業務においても、職人のように効率と品質を両立する精度の高い技術が一層求められています。
これまで、熟練者のノウハウや勘などの暗黙知を数式化し、満足する計画を自動生成することは非常に困難でした。それを実現したのが、数理最適化とビッグデータ解析を融合させた新しい制約プログラミング技術です。人の力を最大限に引き出す、イノベーションが始まっています。
小林 雄一(こばやし ゆういち)
主任研究員
鄭 建(てい けん)
研究員
(2017年10月23日 公開)
小林はい。制約条件を満たした中で最適な解を見つける「数理最適化」を用い、製造現場などの最適な計画を自動生成するという制約プログラミング技術を研究しています。
この技術がいちばん役立っているのが鉄道のダイヤ作成です。鉄道のダイヤというのは、ホームに何本の電車が停まれるのか、特急が各駅停車を抜かせる駅はどこかなど、いろいろな制約条件がある中で作る必要があります。特に東京近郊のような超高密度路線では、限られた時間で正確にダイヤを作るというのはかなり難しいものです。そういった中で、数理最適化を使って、瞬時にたくさんの制約条件を満たした最適なダイヤを作ることを可能にしています。
鄭この技術をほかの分野にも広げていこうということで、数年前から、鉄鋼分野の生産計画の立案業務を対象に、従来の技術を拡張した新しい技術の開発に取り組んできました。そうして開発したのが「MLCP(Machine Learning Constraint Programming)」、ビックデータの解析技術である「機械学習」を融合した新しい制約プログラミング技術です。
図1 数理最適化と機械学習の融合
鄭鉄鋼分野での研究は、生産計画の立案において、「職人の機転を取り込んだ、思い通りの結果が出せる仕組みをIT技術で実現できないか。」というお客さまからのご相談をきっかけに始まりました。というのも、鉄鋼分野では、熟練の計画立案者に依存する業務が多く、熟練者しか知り得ない知識がたくさんあるからです。その中には、勘とかノウハウとか、言語化できない暗黙知と呼ばれる知識も含まれます。熟練者の持つ暗黙知をどうにか抽出して、生産計画に反映するということが従来技術の課題でした。
小林少し補足しますと、機械学習の融合については、先ほどご紹介した鉄道の分野で先に始めていました。鉄道分野では、急にダイヤを変更しなければならないときには、スジ屋さんと呼ばれる熟練のダイヤ作成者が、いま電車がどこを走っているかという情報を基にさささっとダイヤを変更するんですね。そこにも数理最適化を適用しようとしたのですが、単純に制約条件に従って変更すればいいわけではありませんでした。スジ屋さんは、清掃員がいるからこの電車は何時までに着かなければならない、といったことも考えながらダイヤを作っているのです。そういった人のノウハウのつまったところがあって、それを計画に反映することが難しかった。そこから熟練者の言語化できない暗黙知をデジタル化する取り組みが始まり、鉄鋼分野にも横展開していくことになりました。
鄭従来のシステムでは、お客さまへのヒアリングを通じて制約条件を明文化し、その条件を守るような計画を立てていました。しかし、それだけでは熟練者の暗黙知を計画に反映することができません。そこで、MLCPでは、明文化された制約条件のほかに、計画履歴データから熟練者の暗黙のルールを抽出し、全体最適化することで計画を立てています。
どういうアプローチで解いているかというと、熟練者が以前に立てた計画の履歴データから機械学習を使っていくつもの計画パターンを生成します。そこから、人はこういうときにはこういう計画を立てやすいという傾向(特徴量)を抽出します。従来の明文化された制約条件に、抽出した傾向をさらに加えることによって人が満足する計画を立てます。
図2 新しい制約プログラミング技術の概要
小林例えば、工場で働く従業員数は何人、就業時間は朝8時から夕方5時まで、という制約条件が決められているとします。従来のシステムだと、この条件以上の生産能力を出す生産計画は立てられません。でも熟練者は、特急注文が入ってくるとわざと制約条件を違反して、ちょっと今週は残業を頑張って生産量を上げようというように、臨機応変に計画を立てています。新しいシステムでは、機械学習で過去の履歴データから人が持つ「機転」を学習して、特急注文が来たらわざと制約条件を違反した計画を立てるということを実現できます。
小林ちょうどビッグデータ解析が盛り上がってきた頃で、コンピューター将棋や囲碁をきっかけにアイデアを思いついたのです。実のところ、わたしは理系の常として物事を論理的に考えたがるところがあって、もともとはお客さまにすべての条件をヒアリングして、足りない部分があっても聞き出して、全部if thenルール(条件式)で書いていけば、絶対できるという思い込みがありました。しかし、やっぱり限界があって、人の機転や曖昧さというのを全部if thenルールで書くことはできなかった。さらにいまは多品種生産に対応する必要もあり、製品や設備が変わっていくと、またルールが変わって、システムを書き変えなければならないという課題もありました。
コンピューター将棋では、もともとは定石をif thenルールに書き出してプログラムが作られていたのですが、途中で機械学習が採用されました。機械学習でプロの棋譜を学習するようにしたら、人に勝つプログラムになった。そこにヒントをもらって、計画立案でも機械学習が使えるのではと思いました。
鄭この技術を適用してすぐにはお客さまが満足できる結果は出せませんでした。そこで、お客さまとのコミュニケーションを通じてフィードバックをもらい、正しくない部分を改善して精度を上げていく、そういうプロセスを繰り返していきました。
小林そもそも機械学習では、写真の判別や言語翻訳などを得意としていますので、何かを作り出すという例はまだあまりありません。一方で、数理最適化では計画(解)を作り出します。ですから、説明するのも難しいくらい、組み合わせることが難しかったです。
例えば、制約条件を守る計画と、少し違反する計画とあって、どちらを優先するかをうまくバランスをとらないと、熟練者が思い描いた計画になりません。機械学習で特徴を抽出する際に、熟練者が意識している計画の特徴をうまく抽出できるかどうかは重要で難しいところです。
鄭まず、鉄道は鉄道、鉄鋼は鉄鋼、それぞれの業務知識が必要です。それでも抽出した結果が正しいかどうか、我々だけの観点ではやはりわかりません。お客さまとコミュニケーションを取っているうちに、お客さまが意識するところや注意するところが、だんだんわかるようになりました。
鄭試作の結果が出たら、誠実に、自分が課題だと思うところをお客さまに提示するようにしています。そうすることで、まずお客さまと課題の共通認識ができます。その上で、お客さまからフィードバックをいただきながら進めています。フィードバックに対応する際にも、やはり早く結果を出すことを意識しています。
小林わたしはなるべくお客さまの視点に立って話すように心がけています。昔はお客さまの前に出る機会が少なくて慣れていなかったこともあり、技術の話ばかりしてしまって…。お客さまからするとチンプンカンプンで、話がかみ合わないことが多かったので、反省して気を付けているんです。
あとはそれぞれの業界で、お客さまが当たり前に使う専門用語がありますので、それをきちんと覚えて、お客さまの言葉で伝えるようにしています。
鄭お客さまが今回の事例をセミナーというかたちで発表されたことがあったんです。それを我々も聴講させていただきました。そのときにお客さまがおっしゃっていた言葉で、印象に残っているのは「破天荒解」という言葉です。わたしの理解では、従来はできなかったことをやり遂げる、というような意味かと。いままでずっと解決できなかった課題に我々の技術が役立つと感じていただけたのだと思います。大勢の方の前でそのような言葉をいただけて正直にうれしかったです。お客さまに満足していただくことが、我々のタスクの第一歩だと思っていますので。
鄭いまは熟練者と同じレベルの計画を立てられるようになることをめざしていますが、今後は熟練者を超える技術を開発していきたいです。熟練者が計画を立てるときに、良い計画を教えてあげられることをめざしています。
小林熟練者のノウハウをデジタル化することは、人の力を最大限に引き出すことに寄与できると思っています。もともと計画立案というのは、優秀な方が担当することが多いのです。新しい制約プログラミング技術は、その方の時間をもっとクリエイティブなことに割く手助けになると思っています。それによって、生産性や収益の向上などに間接的に貢献できればいいですね。
鄭これからも最適化の研究を続け、この分野で世界トップレベルの研究者になることです。
小林わたしは自分の子どもに自慢できる人工知能を作り出すこと、ですかね。以前「お父さん何を作っているの」と聞かれて「人工知能を作っているんだよ」と答えたことがあったのですが、お客さまに揉まれながらもう2年くらいやっているので、「お父さんの人工知能は覚えが悪いよね」って言われてしまったんです。核心を突いてくるなと思いました(笑)。機械学習技術の発展はめざましく、実用化も進んでいますが、学習結果を使って新しく何かを創り出す技術はまだ研究段階です。「計画を立てる」こともその一つですが、コンピューターが人から学び、自ら何かを「創り出せる」人工知能をめざしていきたいです。