(57)【要約】      （修正有）【課題】予測モデルの性能を十分に発揮可能な予測制御を実施するための技術を提供する。【解決手段】制御システムは、予測モデルの構築に利用した学習用データセットにおける指令値に関する第２データの分布から指令値の取り得る数値範囲を推定し（Ｓ１０３）、対象装置への指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した数値範囲に基づいて、対象装置への指令値に対する第２の閾値を決定する（Ｓ１０４）。そして、制御システムは、運用フェーズにおいて、予測モデルからの出力値に基づいて、決定した第２の閾値により規定される第２の許容範囲内で、対象装置に対する指令値を決定し、決定した指令値に基づいて対象装置の動作を制御する。【選択図】図９
2019212164.tif 000002
【特許請求の範囲】
【請求項１】
対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得する学習データ取得部と、
取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築する学習処理部と、
取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定する推定部と、
前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定する閾値決定部と、
運用フェーズにおいて、前記要因に関する入力データを取得する入力データ取得部と、
取得した入力データを前記予測モデルに入力することで、前記予測モデルから出力値を取得し、取得した前記出力値に基づいて、決定した前記第２の閾値により規定される第２の許容範囲内で、前記対象装置に対する指令値を決定する予測演算部と、
決定した前記指令値に基づいて、前記対象装置の動作を制御する動作制御部と、
を備える、
制御システム。
【請求項２】
前記閾値決定部は、推定した前記数値範囲の境界値又は前記第１の閾値と当該境界値との間の値を前記第２の閾値として採用する、
請求項１に記載の制御システム。
【請求項３】
前記第１の閾値は、前記第１の許容範囲の上限値であり、
前記閾値決定部は、前記上限値を超える値を前記第２の閾値として採用する、
請求項１又は２に記載の制御システム。
【請求項４】
前記第１の閾値は、前記第１の許容範囲の下限値であり、
前記閾値決定部は、前記下限値より小さい値を前記第２の閾値として採用する、
請求項１又は２に記載の制御システム。
【請求項５】
前記閾値決定部は、予め設定された安全条件を満たすように前記第２の閾値を決定する、
請求項１から４のいずれか１項に記載の制御システム。
【請求項６】
前記第２データは、前記指令値の基準値に対する補正値により構成される、
請求項１から５のいずれか１項に記載の制御システム。
【請求項７】
前記対象装置は、ワークから製品を生産する生産装置であって、
前記第１データ及び前記入力データはそれぞれ、前記ワークの特徴量及び前記製品を生産する環境の属性値の少なくとも一方により構成される、
請求項１から６のいずれか１項に記載の制御システム。
【請求項８】
コンピュータが、
対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得するステップと、
取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築するステップと、
取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定するステップと、
前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定するステップと、
運用フェーズにおいて、前記要因に関する入力データを取得するステップと、
取得した入力データを前記予測モデルに入力することで、前記予測モデルから出力値を取得するステップと、
取得した前記出力値に基づいて、決定した前記第２の閾値により規定される第２の許容範囲内で、前記対象装置に対する指令値を決定するステップと、
決定した前記指令値に基づいて、前記対象装置の動作を制御するステップと、
を実行する、
制御方法。
【請求項９】
対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得する学習データ取得部と、
取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築する学習処理部と、
取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定する推定部と、
前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定する閾値決定部と、
を備える、
学習装置。
【請求項１０】
対象装置の動作を決定する要因に関する入力データを取得する入力データ取得部と、
取得した入力データを前記予測モデルに入力することで、前記予測モデルから出力値を取得し、取得した前記出力値に基づいて、請求項９に記載の学習装置によって決定された前記第２の閾値により規定される第２の許容範囲内で、前記対象装置に対する指令値を決定する予測演算部と、
決定した前記指令値に基づいて、前記対象装置の動作を制御する動作制御部と、
を備える、
制御装置。
【請求項１１】
コンピュータが、
対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得するステップと、
取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築するステップと、
取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定するステップと、
前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定するステップと、
を実行する、
学習方法。
【請求項１２】
コンピュータに、
対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得するステップと、
取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築するステップと、
取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定するステップと、
前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定するステップと、
を実行させるための、
学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、制御方法、学習装置、制御装置、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
近年、様々な装置において、未来の状態を予測し、予測した未来の状態に適した動作の制御を行うための予測制御の技術が開発されている。例えば、特許文献１では、制御対象の複数のモデルを有し、いずれかのモデルを用いて制御量の予測値を計算する制御システムが提案されている。具体的には、この制御システムは、外部環境に応じて予測計算に用いるモデルを選択し、選択したモデルを利用して操作量を決定する。これにより、外部環境に応じた対象装置の予測制御を実現することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−０９９１０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
予測モデルは、事前に収集した学習データを利用して構築される。そのため、この予測モデルによれば、学習データに表れる状況に同一又は類似するケースには、対象装置に対する指令値を適切に決定することができるが、未知のケースには、当該指令値を適切に決定できない可能性がある。換言すると、この予測モデルは、未知のケースにおいて対象装置の動作を制御する際に、可動域を超えた値、故障を発生させる値等の不適切な指令値を出力する可能性がある。そこで、予測モデルを用いる場合には、対象装置の動作の安全性を確保するために、指令値の範囲を制限する制約条件（閾値）が設けられる。例えば、特許文献１で提案されている制御システムでは、予め設定された制約条件の中で、モデルを用いて予測した制御量の予測値から最適な操作量を決定している。
【０００５】
しかしながら、本件発明者らは、このような予め設定された制約条件を利用する従来の制御システムでは、次のような問題点が生じ得ることを見出した。すなわち、制約条件（閾値）は、基本的には、制御システムを利用するユーザにより予め設定される。このときに、対象装置の動作の安全性を過度に考慮して、安全性を満たす範囲よりも指令値の許容範囲が狭くなるように、制約条件が設定されてしまう可能性がある。このように制約条件が設定されてしまうと、予測モデルによって決定された指令値が、安全性を満たすにも関わらず、制約条件を満たさないことで、対象装置の制御に用いる指令値として受け入れられずに、予測制御を適切に実施することができなくなってしまう。つまり、予め設定された制約条件を利用する制御システムでは、対象装置の動作の安全性を確保することはできるものの、予測モデルの性能を十分に発揮することができない可能性があるという問題点を本件発明者らは見出した。
【０００６】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、予測モデルの性能を十分に発揮可能な予測制御を実施するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００８】
すなわち、本発明の一側面に係る制御システムは、対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得する学習データ取得部と、取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築する学習処理部と、取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定する推定部と、前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定する閾値決定部と、運用フェーズにおいて、前記要因に関する入力データを取得する入力データ取得部と、取得した入力データを前記予測モデルに入力することで、前記予測モデルから出力値を取得し、取得した前記出力値に基づいて、決定した前記第２の閾値により規定される第２の許容範囲内で、前記対象装置に対する指令値を決定する予測演算部と、決定した前記指令値に基づいて、前記対象装置の動作を制御する動作制御部と、を備える。
【０００９】
当該構成に係る制御システムは、予測モデルの構築に利用した学習用データセットにおける第２データの分布から、対象装置への指令値の取り得る数値範囲を推定する。そして、当該構成に係る制御システムは、指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した数値範囲に基づいて、当該指令値に対する第２の閾値を決定する。当該構成に係る制御システムは、この第２の閾値により規定される第２の許容範囲を指令値の制約条件として利用する。すなわち、当該構成に係る制御システムは、予測モデルを利用する運用フェーズにおいて、この第２の閾値により規定される第２の許容範囲内で、対象装置に対する指令値を決定する。
【００１０】
これにより、安全性を過度に考慮して第１の許容範囲が狭く設定された場合であっても、この第１の許容範囲を拡げるように設定された第２の許容範囲を制約条件として利用することで、対象装置の制御に用いる指令値を許容する範囲を拡げることができる。つまり、第１の許容範囲を制約条件として利用した場合には拒絶されるような指令値の一部を対象装置の制御に用いるようにすることができる。また、各件の学習用データセットは、特定のケースに適した動作の制御を実現するように収集され得るため、各件の学習用データセットにおける第２データに基づいて指定される指令値によれば、対象装置の動作を安全に制御することができる。よって、学習用データセットにおける第２データの分布から推定される数値範囲に基づくことで、対象装置の動作の安全性を確保するように、第２の許容範囲を規定する第２の閾値を決定することができる。したがって、当該構成に係る制御システムによれば、対象装置の動作の安全性を確保しつつ、予測モデルの性能を十分に発揮可能な予測制御を実施することができる。
【００１１】
なお、「対象装置」は、制御の対象となり得るあらゆる種類の装置を含んでもよく、例えば、ワークから製品を生産するように構成された生産装置を含んでもよい。「予測モデル」は、予測処理を実行する時点よりも先の時点（将来の時点）における生産装置への指令値を予測可能なモデルであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。「予測モデル」には、例えば、決定木、ニューラルネットワーク、サポートベクタマン等の学習モデルが用いられてもよい。「第１データ」は、対象装置の動作を決定し得るあらゆる種類の要因に関するデータであってよい。「第２データ」は、対象装置への指令値を直接的に指定する値（すなわち、指令値そのもの）により構成されてもよいし、例えば、指令値の基準値に対する補正値等のように指令値を間接的に指定する値により構成されてよい。
【００１２】
上記一側面に係る制御システムにおいて、前記閾値決定部は、推定した前記数値範囲の境界値又は前記第１の閾値と当該境界値との間の値を前記第２の閾値として採用してもよい。当該構成によれば、予測モデルの性能を十分に発揮可能な予測制御を実施することができるように、第２の閾値を適切に決定することができる。
【００１３】
上記一側面に係る制御システムにおいて、前記第１の閾値は、前記第１の許容範囲の上限値であってよく、前記閾値決定部は、前記上限値を超える値を前記第２の閾値として採用してもよい。当該構成によれば、予測モデルの性能を十分に発揮可能な予測制御を実施することができるように、第２の閾値を適切に決定することができる。
【００１４】
上記一側面に係る制御システムにおいて、前記第１の閾値は、前記第１の許容範囲の下限値であってよく、前記閾値決定部は、前記下限値より小さい値を前記第２の閾値として採用してもよい。当該構成によれば、予測モデルの性能を十分に発揮可能な予測制御を実施することができるように、第２の閾値を適切に決定することができる。
【００１５】
上記一側面に係る制御システムにおいて、前記閾値決定部は、予め設定された安全条件を満たすように前記第２の閾値を決定してもよい。当該構成によれば、対象装置の動作の安全性を確実に確保することができる。なお、「安全条件」は、適宜設定されてよく、閾値により規定されてもよいし、シミュレーション又は実機の駆動の条件により規定されてもよい。
【００１６】
上記一側面に係る制御システムにおいて、前記第２データは、前記指令値の基準値に対する補正値により構成されてよい。当該構成によれば、予測モデルから得られる補正値を利用して、対象装置への指令値を適切に決定可能な制御システムを提供することができる。
【００１７】
上記一側面に係る制御システムにおいて、前記対象装置は、ワークから製品を生産する生産装置であってよく、前記第１データ及び前記入力データはそれぞれ、前記ワークの特徴量及び前記製品を生産する環境の属性値の少なくとも一方により構成されてよい。当該構成によれば、予測モデルの性能を十分に発揮可能な生産装置の予測制御を実施することができる。
【００１８】
なお、「生産装置」は、何らかの生産処理を行い、制御の対象となり得る装置であれば特に限定されなくてもよく、例えば、プレス機、射出成形機、ＮＣ旋盤、放電加工機、包装機、搬送機、検査機内の搬送機構等であってよい。「ワーク」は、生産装置の作業対象となり得る物であれば特に限定されなくてもよく、例えば、製品の原料、加工前の物、組み立て前の部品等であってよい。「製品」は、ワークに対して生産装置が生産処理を行うことで得られる物であり、最終品の他、中間品（加工途中のもの）を含んでもよい。
【００１９】
「ワークの特徴量」は、ワークの何らかの特徴を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ワークの特徴量は、例えば、硬さ、寸法、材質、重さ、熱等を示すものであってよい。また、ワークの特徴量は、ワークの特徴を直接的に示すものであってもよいし、ワークの特徴を間接的に示すものであってもよい。ワークの特徴を直接的に示すとは、例えば、ワークの硬さ（硬度）そのものを数値、クラス等で表現することである。一方、ワークの特徴を間接的に示すとは、例えば、ワークの硬さ（硬度）を測定する際に得られた２次的指標（例えば、ワークにかかる荷重、測定の際に作用させたトルク等）を数値、クラス等で表現することである。
【００２０】
また、「製品を生産する環境の属性値」は、生産装置が稼動する環境に関する何らかの属性を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品を生産する環境の属性値は、例えば、生産装置の周囲の温度、湿度、装置の劣化度合い（例えば、経年数、加工回数等）、振動等を示すものであってよい。
【００２１】
なお、上記各形態に係る制御システムの別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、上記各形態に係る制御システムの別の態様として、本発明の一側面は、以上の各構成の一部分（例えば、予測モデルを構築する部分、第２の閾値を決定する部分、予測モデル及び第２の閾値を利用する部分等）を実現する情報処理システムであってもよいし、情報処理装置であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。
【００２２】
例えば、本発明の一側面に係る制御方法は、コンピュータが、対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得するステップと、取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築するステップと、取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定するステップと、前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定するステップと、運用フェーズにおいて、前記要因に関する入力データを取得するステップと、取得した入力データを前記予測モデルに入力することで、前記予測モデルから出力値を取得するステップと、取得した前記出力値に基づいて、決定した前記第２の閾値により規定される第２の許容範囲内で、前記対象装置に対する指令値を決定するステップと、決定した前記指令値に基づいて、前記対象装置の動作を制御するステップと、を実行する、情報処理方法である。
【００２３】
また、例えば、本発明の一側面に係る学習装置は、対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得する学習データ取得部と、取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築する学習処理部と、取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定する推定部と、前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定する閾値決定部と、を備える。
【００２４】
また、例えば、本発明の一側面に係る制御装置は、対象装置の動作を決定する要因に関する入力データを取得する入力データ取得部と、取得した入力データを前記予測モデルに入力することで、前記予測モデルから出力値を取得し、取得した前記出力値に基づいて、上記構成に係る学習装置によって決定された前記第２の閾値により規定される第２の許容範囲内で、前記対象装置に対する指令値を決定する予測演算部と、決定した前記指令値に基づいて、前記対象装置の動作を制御する動作制御部と、を備える。
【００２５】
また、例えば、本発明の一側面に係る学習方法は、コンピュータが、対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得するステップと、取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築するステップと、取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定するステップと、前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定するステップと、を実行する、情報処理方法である。
【００２６】
また、例えば、本発明の一側面に係る学習プログラムは、コンピュータに、対象装置の動作を決定する要因に関する第１データ、及び前記対象装置への指令値であって、前記第１データにより示される前記要因に適応した指令値に関する第２データの組み合わせによりそれぞれ構成された複数件の学習用データセットを取得するステップと、取得した前記複数件の学習用データセットそれぞれについて、前記第１データを入力すると、前記第２データに対応する値を出力するように予測モデルを構築するステップと、取得した前記複数件の学習用データセットにおける前記第２データの分布から前記指令値の取り得る数値範囲を推定するステップと、前記対象装置への前記指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した前記数値範囲に基づいて、前記対象装置への前記指令値に対する第２の閾値を決定するステップと、を実行させるための、プログラムである。
【発明の効果】
【００２７】
本発明によれば、予測モデルの性能を十分に発揮可能な予測制御を実施することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係る生産装置の一例を模式的に例示する。
【図５Ａ】図５Ａは、図４の生産装置における生産工程の一例を模式的に例示する。
【図５Ｂ】図５Ｂは、図４の生産装置における生産工程の一例を模式的に例示する。
【図５Ｃ】図５Ｃは、図４の生産装置における生産工程の一例を模式的に例示する。
【図５Ｄ】図５Ｄは、図４の生産装置における生産工程の一例を模式的に例示する。
【図６】図６は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。
【図７Ａ】図７Ａは、実施の形態に係る予測モデルの一例を模式的に例示する。
【図７Ｂ】図７Ｂは、予測モデルに対する入力と出力との関係を模式的に例示する。
【図８】図８は、実施の形態に係る制御装置のソフトウェア構成の一例を模式的に例示する。
【図９】図９は、実施の形態に係る学習装置の処理手順の一例を例示する。
【図１０】図１０は、指令値に関する第２データの分布の一例を模式的に例示する。
【図１１Ａ】図１１Ａは、第２の閾値を決定する方法の一例を模式的に例示する。
【図１１Ｂ】図１１Ｂは、第２の閾値を決定する方法の一例を模式的に例示する。
【図１２】図１２は、実施の形態に係る制御装置の処理手順の一例を例示する。
【発明を実施するための形態】
【００２９】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００３０】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る制御システム１００の利用場面の一例を模式的に例示する。
【００３１】
図１で例示される制御システム１００は、ネットワークを介して接続される学習装置１及び制御装置２を備えており、生産装置３の動作を制御するように構成される。学習装置１及び制御装置２の間のネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【００３２】
なお、図１の例では、学習装置１及び制御装置２は、互いに別個のコンピュータである。しかしながら、制御システム１００の構成は、このような例に限定されなくてもよい。学習装置１及び制御装置２は、一体のコンピュータで構成されてもよい。また、学習装置１及び制御装置２はそれぞれ複数台のコンピュータにより構成されてよい。
【００３３】
本実施形態に係る学習装置１は、生産装置３の動作を予測制御するための予測モデル（後述する予測モデル５）を構築するように構成されたコンピュータである。生産装置３は、ワークから製品を生産するよう構成されており、本発明の「対象装置」の一例である。ただし、本発明の「対象装置」は、このような生産装置３に限定されなくてもよく、制御の対象となり得るあらゆる種類の装置を含んでもよい。また、図１の例では、生産装置３は、ワークを加工するプレス機である。このプレス機は、「生産装置」の一例である。制御装置２を適用可能な生産装置は、このようなプレス機に限られなくてもよく、実施の形態に応じて適宜選択されてよい。生産装置３は、例えば、プレス機の他、射出成形機、ＮＣ旋盤、放電加工機、包装機、搬送機、検査機内の搬送機構等であってよい。
【００３４】
本実施形態に係る学習装置１は、予測モデルを構築するために、複数件の学習用データセット（後述する学習用データセット１２１）を取得する。複数件の学習用データセットは、生産装置３の動作を決定する要因に関する第１データ（後述する特徴量１２１１及び属性値１２１２）、及び生産装置３への指令値であって、第１データにより示される要因に適応した指令値に関する第２データ（後述する補正値１２１３）の組み合わせによりそれぞれ構成される。学習装置１は、取得した複数件の学習用データセットそれぞれについて、第１データを入力すると、第２データに対応する値を出力するように予測モデルを構築する。
【００３５】
また、本実施形態に係る学習装置１は、取得した複数件の学習用データセットにおける第２データの分布から指令値の取り得る数値範囲を推定する。そして、学習装置１は、生産装置３への指令値に対して予め設定された第１の閾値により規定される第１の許容範囲を拡げるように、推定した数値範囲に基づいて、生産装置３への指令値に対する第２の閾値を決定する。
【００３６】
一方、本実施形態に係る制御装置２は、学習装置１により構築された予測モデルを利用して、生産装置３の動作を制御するように構成されたコンピュータである。具体的に、本実施形態に係る制御装置２は、生産装置３の動作を決定する要因に関する入力データ（後述する特徴量７１及び属性値７２）を取得する。続いて、制御装置２は、取得した入力データを予測モデルに入力することで、当該予測モデルから出力値を取得する。次に、制御装置２は、取得した出力値に基づいて、学習装置１によって決定された第２の閾値により規定される第２の許容範囲内で、生産装置３に対する指令値を決定する。そして、制御装置２は、決定した指令値に基づいて、生産装置３の動作を制御する。
【００３７】
以上のとおり、本実施形態に係る制御システム１００では、予め設定された第１の閾値により規定される第１の許容範囲ではなく、第１の許容範囲を拡げるように設定された第２の閾値により規定される第２の許容範囲が指令値の制約条件として利用される。これにより、安全性を過度に考慮して第１の許容範囲が狭く設定された場合であっても、生産装置３の動作の制御に用いる指令値を許容する範囲を拡げることができる。つまり、第１の許容範囲を制約条件として利用した場合には拒絶されるような指令値の一部を生産装置３の動作の制御に用いるようにすることができる。
【００３８】
更に、各件の学習用データセットは、特定のケースに適した動作の制御を実現するように収集される。そのため、各件の学習用データセットにおける第２データに基づいて指定される指令値によれば、生産装置３の動作を安全に制御することができる。よって、学習用データセットにおける第２データの分布から推定される数値範囲に基づくことで、生産装置３の動作の安全性を確保するように、第２の許容範囲を規定する第２の閾値を決定することができる。したがって、本実施形態に係る制御システム１００によれば、生産装置３の動作の安全性を確保しつつ、予測モデルの性能を十分に発揮可能な予測制御を実施することができる。
【００３９】
§２  構成例
［ハードウェア構成］
＜学習装置＞
次に、図２を用いて、本実施形態に係る学習装置１のハードウェア構成の一例について説明する。図２は、本実施形態に係る学習装置１のハードウェア構成の一例を模式的に例示する。
【００４０】
図２に示されるとおり、本実施形態に係る学習装置１は、制御部１１、記憶部１２、通信インタフェース１３、入力装置１４、出力装置１５、及びドライブ１６が電気的に接続されたコンピュータである。なお、図２では、通信インタフェースを「通信Ｉ／Ｆ」と記載している。
【００４１】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部１２は、制御部１１（ＣＰＵ）により実行される学習プログラム８１、複数件の学習用データセット１２１、学習結果データ１２５等の各種情報を記憶する。
【００４２】
学習プログラム８１は、予測モデルを構築する機械学習の後述する情報処理（図９）を学習装置１に実行させ、当該機械学習の結果として学習結果データ１２５を生成するためのプログラムである。学習プログラム８１は、当該情報処理の一連の命令を含む。複数件の学習用データセット１２１は、生産装置３による製品の生産に適応した指令値を予測する能力を獲得した予測モデルを構築するための機械学習に利用されるデータである。詳細は後述する。
【００４３】
通信インタフェース１３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置１は、この通信インタフェース１３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、制御装置２）と行うことができる。また、学習装置１は、この通信インタフェース１３を利用することで、生成した学習結果データ１２５を外部の装置に配信することができる。
【００４４】
入力装置１４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置１５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置１４及び出力装置１５を利用することで、学習装置１を操作することができる。
【００４５】
ドライブ１６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ１６の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記学習プログラム８１及び学習用データセット１２１の少なくとも一方は、この記憶媒体９１に記憶されていてもよい。
【００４６】
記憶媒体９１は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置１は、この記憶媒体９１から、上記学習プログラム８１及び学習用データセット１２１の少なくとも一方を取得してもよい。
【００４７】
ここで、図２では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００４８】
なお、学習装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース１３、入力装置１４、出力装置１５及びドライブ１６の少なくともいずれかは省略されてもよい。学習装置１は、複数台の情報処理装置で構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置１には、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のＰＣ（Personal Computer）等が用いられてもよい。
【００４９】
＜制御装置＞
次に、図３を用いて、本実施形態に係る制御装置２のハードウェア構成の一例について説明する。図３は、本実施形態に係る制御装置２のハードウェア構成の一例を模式的に例示する。
【００５０】
図３に示されるとおり、本実施形態に係る制御装置２は、制御部２１、記憶部２２、通信インタフェース２３、外部インタフェース２４、入力装置２５、出力装置２６、及びドライブ２７が電気的に接続されたコンピュータである。なお、図３では、通信インタフェース及び外部インタフェースをそれぞれ「通信Ｉ／Ｆ」及び「外部Ｉ／Ｆ」と記載している。
【００５１】
制御部２１は、上記制御部１１と同様に、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部２２は、制御部２１（ＣＰＵ）により実行される制御プログラム８２、学習結果データ１２５等の各種情報を記憶する。
【００５２】
制御プログラム８２は、生産装置３の動作を制御する後述の情報処理（図１２）を制御装置２に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。学習結果データ１２５は、学習済みの予測モデルの設定を行うためのデータである。詳細は後述する。
【００５３】
通信インタフェース２３は、例えば、有線ＬＡＮモジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。制御装置２は、この通信インタフェース２３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、学習装置１）と行うことができる。
【００５４】
外部インタフェース２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース２４の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、制御装置２は、外部インタフェース２４を介して、生産装置３に接続される。これにより、制御装置２は、生産装置３に対して指令値を送信することで、生産装置３の動作を制御することができる。
【００５５】
入力装置２５は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置２６は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置２５及び出力装置２６を介して、制御装置２を操作することができる。
【００５６】
ドライブ２７は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９２に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ２７の種類は、記憶媒体９２の種類に応じて適宜選択されてよい。上記制御プログラム８２及び学習結果データ１２５の少なくとも一方は、この記憶媒体９２に記憶されていてもよい。
【００５７】
記憶媒体９２は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。制御装置２は、この記憶媒体９２から、上記制御プログラム８２及び学習結果データ１２５の少なくとも一方を取得してもよい。
【００５８】
ここで、図３では、上記図２と同様に、記憶媒体９２の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９２の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００５９】
なお、制御装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＤＳＰ等で構成されてよい。記憶部２２は、制御部２１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース２３、外部インタフェース２４、入力装置２５、出力装置２６及びドライブ２７の少なくともいずれかは省略されてもよい。制御装置２は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置２は、提供されるサービス専用に設計された情報処理装置の他、汎用のコントローラ、汎用のサーバ装置、汎用のデスクトップＰＣ、ノートＰＣ、タブレットＰＣ等であってもよい。
【００６０】
＜生産装置＞
次に、図４を用いて、本実施形態に係る生産装置３のハードウェア構成の一例について説明する。図４は、本実施形態に係る生産装置３のハードウェア構成の一例を模式的に例示する。
【００６１】
本実施形態に係る生産装置３は、サーボドライバ３１、上側金型３２、及び下側金型３３を備えている。下側金型３３が固定されているのに対して、上側金型３２は、サーボモータ（不図示）によって、上下方向に移動可能に構成されている。これにより、上側金型３２は、下側金型３３にワークを押し付けて、ワークの成形を行ったり、下側金型３３から離れたりすることができる。サーボドライバ３１は、制御装置２からの指令値に基づいて、上側金型３２のサーボモータを駆動するように構成される。
【００６２】
次に、図５Ａ〜図５Ｄを用いて、生産装置３における生産工程の一例を模式的に例示する。生産装置３は、例えば、生産ラインに配置される。図５Ａに示されるとおり、初期状態では、上側金型３２は、下側金型３３から離れた待機位置に配置され、下側金型３３にワーク４０が搬送されるまで待機する。ワーク４０は、例えば、金属製の板材である。ただし、ワーク４０は、このような例に限定される訳ではなく、生産装置３の種類に応じて適宜選択されてよい。ワーク４０は、例えば、製品の原料、加工前の物、組み立て前の部品等であってよい。
【００６３】
下側金型３３の所定の位置にワーク４０が配置された後、生産装置３は、図５Ｂに示されるとおり、サーボドライバ３１により上側金型３２のサーボモータを駆動し、上側金型３２を成形開始位置に配置する。成形開始位置は、例えば、上側金型３２の先端がワーク４０に接触する又はその直前の位置である。
【００６４】
そして、生産装置３は、図５Ｃに示されるとおり、サーボドライバ３１により上側金型３２のサーボモータを更に駆動し、上側金型３２を目標位置（下死点）まで移動させ、上側金型３２及び下側金型３３によりワーク４０の成形を行う。これにより、生産装置３は、ワーク４０から製品４１を生産することができる。なお、この製品４１は、ワーク４０に対して生産装置３が生産処理を行うことで得られる物であれば特に限定されなくてもよく、最終品であってもよいし、中間品（加工途中のもの）であってもよい。
【００６５】
成形が完了した後、生産装置３は、図５Ｄに示されるとおり、サーボドライバ３１により上側金型３２のサーボモータを駆動し、上側金型３２を待機位置まで移動させる。そして、ワーク４０を成形することで得られた製品４１をベルトコンベア（不図示）等により生産装置３から搬送する。これにより、ワーク４０から製品４１を生産する一連の生産工程が完了する。
【００６６】
この生産工程において、図５Ｃにおけるプレス時間が不十分であったり、上側金型３２が下死点に到達するまでサーボモータを駆動していなかったりすると、得られる製品４１の品質が悪化してしまう。そこで、従来、現場の作業者が、定期的に製品の品質をチェックし、生産装置の動作の設定を調節することで、不良品の発生を抑制していた。これに対して、本実施形態に係る制御装置２は、予測モデルを利用することで、生産工程に不良が生じないように、生産装置３への適切な指令値を予測する。これにより、制御装置２は、不良品の発生を抑制するように、生産装置３の動作を自動的に調節する。
【００６７】
［ソフトウェア構成］
＜学習装置＞
次に、図６を用いて、本実施形態に係る学習装置１のソフトウェア構成の一例について説明する。図６は、本実施形態に係る学習装置１のソフトウェア構成の一例を模式的に例示する。
【００６８】
学習装置１の制御部１１は、記憶部１２に記憶された学習プログラム８１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された学習プログラム８１をＣＰＵにより解釈及び実行して、学習プログラム８１に含まれる一連の命令に基づいて、各構成要素を制御する。これによって、図６に示されるとおり、本実施形態に係る学習装置１は、学習データ取得部１１１、学習処理部１１２、推定部１１３、及び閾値決定部１１４をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００６９】
学習データ取得部１１１は、予測モデル５の機械学習に利用する複数件の学習用データセット１２１を取得する。各件の学習用データセット１２１は、生産装置３の動作を決定する要因に関する第１データ、及び生産装置３への指令値であって、第１データにより示される要因に適応した指令値に関する第２データの組み合わせで構成される。具体的に、本実施形態では、第１データは、ワーク４０の特徴量１２１１及び製品４１を生産する環境の属性値１２１２により構成される。また、第２データは、指令値の基準値に対する補正値１２１３であって、特徴量１２１１及び属性値１２１２により示される状況に適応した指令値が得られるように決定された補正値１２１３により構成される。第１データは、訓練データ（入力データ）に対応し、第２データは、教師データ（正解データ）に対応する。
【００７０】
学習処理部１１２は、取得した複数件の学習用データセット１２１を利用した機械学習を行うことにより、学習済みの予測モデル５を構築する。すなわち、学習処理部１１２は、取得した各件の学習用データセット１２１について、第１データ（特徴量１２１１及び属性値１２１２）を入力すると、入力した第１データに関連付けられた第２データ（補正値１２１３）に対応する値を出力するように予測モデル５を構築する。そして、学習処理部１１２は、構築した学習済みの予測モデル５に関する情報を学習結果データ１２５として記憶部１２に格納する。
【００７１】
推定部１１３は、取得した複数件の学習用データセット１２１における第２データ（補正値１２１３）の分布６１から指令値の取り得る数値範囲を推定する。そして、閾値決定部１１４は、生産装置３への指令値に対して予め設定された第１の閾値６０により規定される第１の許容範囲を拡げるように、推定した数値範囲に基づいて、生産装置３への指令値に対する第２の閾値６２を決定する。
【００７２】
（予測モデル）
次に、図７Ａ及び図７Ｂを更に用いて、本実施形態に係る予測モデル５について説明する。図７Ａは、本実施形態に係る予測モデル５の構成の一例を模式的に例示する。また、図７Ｂは、予測モデル５に対する入力と出力との関係を模式的に例示する。
【００７３】
図７Ａに示されるとおり、本実施形態に係る予測モデル５は、決定木（具体的には、回帰木）によって構成されている。予測モデル５（決定木）は、根ノードＲ、葉ノードＬ１〜Ｌ５、及び根ノードＲと葉ノードＬ１〜Ｌ５の間に配置される中間ノードＮ１〜Ｎ３を含んでいる。各ノードの間にはリンクが設けられる。図７Ａの例では、根ノードＲと中間ノード（Ｎ１、Ｎ２）との間、中間ノードＮ１と各葉ノード（Ｌ１、Ｌ２）との間、中間ノードＮ２と葉ノードＬ３及び中間ノードＮ３との間、中間ノードＮ３と各葉ノード（Ｌ４、Ｌ５）との間にそれぞれ、リンクが設けられている。
【００７４】
なお、図７Ａの例では、決定木の深さは４であり、中間ノードの数は３つであり、葉ノードの数は５つである。しかしながら、決定木の深さ、中間ノードの数、及び葉ノードの数は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。また、図７Ａの例では、根ノードＲから各葉ノードＬ１〜Ｌ５にリンクが設けられていない。しかしながら、決定木の構成は、このような例に限定されなくてもよく、根ノードからのリンクに接続される葉ノードが存在してもよい。
【００７５】
このような予測モデル５の演算処理は、決定木の根ノードＲから葉ノードＬ１〜Ｌ５に向けてリンクをたどる探索処理である。すなわち、根ノードＲから葉ノードＬ１〜Ｌ５の経路（図７Ａの例では、根ノードＲ及び中間ノードＮ１〜Ｎ３）には、分岐条件が紐付けられている。図７Ａの例では、根ノードＲには「ｘ０＜２５００」の分岐条件が、中間ノードＮ１には「ｘ１＜２０」の分岐条件が、中間ノードＮ２には「ｘ１＜３５」の分岐条件が、中間ノードＮ３には「ｘ０＜３５００」の分岐条件が紐付けられている。一方、各葉ノードＬ１〜Ｌ５には、図７Ｂに示されるとおり、予測モデル５の演算処理の最終結果（クラスＣ１〜Ｃ５）が紐付けられている。
【００７６】
本実施形態では、各葉ノードＬ１〜Ｌ５（クラスＣ１〜Ｃ５）には、入力される特徴量及び属性値に応じた補正値が紐付けられる。すなわち、学習処理部１１２は、特徴量１２１１及び属性値１２１２を入力すると、入力した特徴量１２１１及び属性値１２１２に関連付けられた補正値１２１３に対応するクラスの葉ノードに到達するように予測モデル５（決定木）を構築する。そして、学習処理部１１２は、構築した学習済みの予測モデル５の構成、各分岐条件を示す情報等を学習結果データ１２５として記憶部１２に格納する。
【００７７】
＜制御装置＞
次に、図８を用いて、本実施形態に係る制御装置２のソフトウェア構成の一例について説明する。図８は、本実施形態に係る制御装置２のソフトウェア構成の一例を模式的に例示する。
【００７８】
制御装置２の制御部２１は、記憶部２２に記憶された制御プログラム８２をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された制御プログラム８２をＣＰＵにより解釈及び実行して、制御プログラム８２に含まれる一連の命令に基づいて、各構成要素を制御する。これによって、図８に示されるとおり、本実施形態に係る制御装置２は、入力データ取得部２１１、予測演算部２１２、及び動作制御部２１３をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部２１（ＣＰＵ）により実現される。
【００７９】
入力データ取得部２１１は、生産装置３の動作を決定する要因に関する入力データを取得する。本実施形態では、予測モデル５は、ワーク４０の特徴量及び製品４１を生産する環境の属性値の入力に対して、製品４１の生産に適応した指令値を予測するように構築される。そこで、入力データ取得部２１１は、ワーク４０の特徴量７１及び製品４１を生産する環境の属性値７２を入力データとして取得する。
【００８０】
予測演算部２１２は、学習装置１により生成された学習結果データ１２５を保持している。これにより、予測演算部２１２は、ワーク４０から製品４１を生産する生産装置３への指令値であって、生産装置３による製品４１の生産に適応した指令値を予測するように構築された予測モデル５を備えている。予測演算部２１２は、学習結果データ１２５を参照し、予測制御に利用する予測モデル５の設定を行う。
【００８１】
次に、予測演算部２１２は、取得した入力データ（特徴量７１及び属性値７２）を予測モデル５に入力し、予測モデル５の演算処理を実行する。これにより、予測演算部２１２は、生産装置３による製品４１の生産に適応した指令値を予測した結果に対応する出力値を当該予測モデル５から取得する。予測演算部２１２は、取得した出力値に基づいて、学習装置１によって決定された第２の閾値６２により規定される第２の許容範囲内で、生産装置３に対する指令値を決定する。
【００８２】
本実施形態では、予測モデル５は、製品４１の生産に適応した指令値の予測の結果に対応する出力値として、指令値の基準値７０に対する補正値７３を出力する決定木により構成されている。そのため、予測演算部２１２は、予測モデル５の演算処理として、決定木の探索処理を実行する。予測演算部２１２は、この予測モデル５の演算処理を完了することで、当該予測モデル５から補正値７３に対応する出力値を取得することができる。
【００８３】
具体例として、図７Ａに例示される決定木（予測モデル５）の探索処理について説明する。予測演算部２１２は、予測モデル５の根ノードＲから探索処理を開始して、入力データが分岐条件を満たすか否かの判定を繰り返すことで、いずれかの葉ノードＬ１〜Ｌ５に到達するまで、より深いノードに探索を進めていく。図７Ａの例では、入力ｘ０が特徴量７１に対応し、入力ｘ１が属性値７２に対応している。図７Ｂは、各入力（ｘ０、ｘ１）と到達する葉ノードＬ１〜Ｌ５に対応付けられたクラスＣ１〜Ｃ５との関係を例示している。
【００８４】
例えば、入力ｘ０が２０００であり、入力ｘ１が３０であることを想定する。この場合、予測演算部２１２は、予測モデル５の１階層目の演算処理（探索処理）として、根ノードＲに設定された分岐条件を入力ｘ０が満たすか否かを判定する。図７Ａの例では、根ノードＲに設定された分岐条件は「ｘ０＜２５００」であり、入力ｘ０は２０００であるため、予測演算部２１２は、根ノードＲに設定された分岐条件を入力ｘ０は満たすと判定し、次の階層の中間ノードＮ１に探索を進める。
【００８５】
次に、予測演算部２１２は、予測モデル５の２階層目の演算処理として、中間ノードＮ１に設定された分岐条件を入力ｘ１が満たすか否かを判定する。図７Ａの例では、中間ノードＮ１に設定された分岐条件は「ｘ１＜２０」であり、入力ｘ１が３０であるため、予測演算部２１２は、中間ノードＮ１に設定された分岐条件を入力ｘ１は満たさないと判定し、次の階層の葉ノードＬ２に進む。これにより、決定木の探索処理が葉ノードＬ２に到達するため、予測モデル５の演算処理が完了する。予測演算部２１２は、予測モデル５の演算処理の最終結果として、葉ノードＬ２のクラスＣ２に対応付けられた補正値７３を取得することができる。
【００８６】
各クラスＣ１〜Ｃ５に対応付けられた補正値７３を取得する方法は、実施の形態に応じて適宜決定されてよい。例えば、各クラスＣ１〜Ｃ５には、補正値が直接的に対応付けられていてもよい。また、例えば、制御装置２は、各クラスＣ１〜Ｃ５と補正値との対応関係を示すテーブル形式等の参照情報を記憶部２２に保持していてもよい。この参照情報は、上記予測モデル５の学習過程において生成されてよく、学習結果データ１２５に含まれていてもよい。この場合、予測演算部２１２は、いずれかの葉ノードに到達した後、到達した葉ノードのクラスを参照情報に照合することで、予測モデル５の演算処理の最終結果として、指令値の基準値７０に対する補正値７３を取得することができる。
【００８７】
続いて、予測演算部２１２は、取得した補正値７３により基準値７０を補正することで得られた値に基づいて、第２の許容範囲内で指令値７５を決定する。補正値７３により基準値７０を補正することで得られた値が第２の許容範囲内である場合には、予測演算部２１２は、この得られた値を指令値７５に決定する。一方、補正値７３により基準値７０を補正することで得られた値が第２の許容範囲内ではない場合には、予測演算部２１２は、得られた値を修正することで、第２の許容範囲内で指令値７５を決定する。そして、動作制御部２１３は、決定した指令値７５に基づいて、生産装置３の動作を制御する。
【００８８】
＜その他＞
学習装置１及び制御装置２の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置１及び制御装置２の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、学習装置１及び制御装置２それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００８９】
§３  動作例
［学習装置］
次に、図９を用いて、学習装置１の動作例について説明する。図９は、学習装置１の処理手順の一例を例示するフローチャートである。以下で説明する処理手順は、本発明の「学習方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００９０】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、学習データ取得部１１１として動作し、予測モデル５の機械学習に利用する複数件の学習用データセット１２１を取得する。各件の学習用データセット１２１は、生産装置３の動作を決定する要因に関する第１データ、及び生産装置３への指令値であって、第１データにより示される要因に適応した指令値に関する第２データの組み合わせにより構成される。
【００９１】
第１データ及び第２データの構成はそれぞれ、対象装置の動作を予測制御するための予測モデル（本実施形態では、予測モデル５）の機械学習に利用可能であれば、実施の形態に応じて適宜決定されてよい。上記のとおり、本実施形態では、第１データは、ワーク４０の特徴量１２１１及び製品４１を生産する環境の属性値１２１２により構成される。また、第２データは、指令値の基準値に対する補正値１２１３であって、特徴量１２１１及び属性値１２１２により示される状況に適応した指令値が得られるように決定された補正値１２１３により構成される。
【００９２】
ワーク４０の特徴量１２１１は、ワーク４０の何らかの特徴を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、製品４１を生産する環境の属性値１２１２は、生産装置３が稼動する環境に関する何らかの属性を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
【００９３】
本実施形態では、生産装置３は、プレス機である。上記のとおり、生産装置３では、プレス時間が不十分であったり、上側金型３２が下死点に到達するまでサーボモータを駆動していなかったりすると、得られる製品４１の品質が悪化してしまう。そのため、ワーク４０の特徴量１２１１及び製品４１を生産する環境の属性値１２１２はそれぞれ、生産装置３におけるプレス成形の工程に関するものであるのが好ましい。
【００９４】
そこで、ワーク４０の特徴量１２１１には、例えば、硬さ、寸法、材質、重さ、熱等を示すものが選択されてもよい。また、製品４１を生産する環境の属性値１２１２には、例えば、生産装置３の周囲の温度、湿度、装置の劣化度合い（例えば、経年数、加工回数等）、振動等を示すものが選択されてよい。このとき、ワーク４０の特徴量１２１１は、ワーク４０の特徴を直接的に示すものであってもよいし、ワーク４０の特徴を間接的に示すものであってもよい。ワーク４０の特徴を直接的に示すとは、例えば、ワーク４０の硬さ（硬度）そのものを数値、クラス等で表現することである。一方、ワーク４０の特徴を間接的に示すとは、例えば、ワーク４０の硬さ（硬度）を測定する際に得られた２次的指標（例えば、ワークにかかる荷重、測定の際に作用させたトルク等）を数値、クラス等で表現することである。属性値１２１２についても同様である。
【００９５】
このような各件の学習用データセット１２１は、実施の形態に応じて適宜生成されてよい。例えば、生産装置３を稼働させて、ワーク４０の特徴量１２１１及び製品４１を生産する環境の属性値１２１２を様々な条件で取得する。特徴量１２１１及び属性値１２１２の取得には、公知のセンサが用いられてよい。一例として、特徴量１２１１としてワーク４０の硬さを取得する場合には、硬度計が用いられてよい。また、属性値１２１２として温度を取得する場合には、温度センサが用いられてよい。そして、得られた特徴量１２１１及び属性値１２１２に対して、この条件において適切な指令値を得るための補正値１２１３を組み合わせる。これにより、各件の学習用データセット１２１を生成することができる。
【００９６】
この学習用データセット１２１の生成は、学習装置１により行われてもよい。この場合、制御部１１は、オペレータによる入力装置１４の操作に応じて、各件の学習用データセット１２１を生成してもよい。また、制御部１１は、学習プログラム８１の処理により、各件の学習用データセット１２１を自動的に生成してもよい。この生成処理を実行することで、本ステップＳ１０１では、制御部１１は、複数件の学習用データセット１２１を取得することができる。
【００９７】
また、学習用データセット１２１の生成は、学習装置１以外の他の情報処理装置により行われてもよい。他の情報処理装置では、各件の学習用データセット１２１は、オペレータにより手動で生成されてもよいし、プログラムの処理により自動的に生成されてもよい。この場合、本ステップ１０１では、制御部１１は、ネットワーク、記憶媒体９１等を介して、他の情報処理装置により生成された複数件の学習用データセット１２１を取得することができる。
【００９８】
なお、本ステップＳ１０１で取得する学習用データセット１２１の件数は、実施の形態に応じて適宜決定されてよく、例えば、決定木の機械学習を実施可能な程度に適宜決定されてよい。これにより、複数件の学習用データセット１２１を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００９９】
（ステップＳ１０２）
ステップＳ１０２では、制御部１１は、学習処理部１１２として動作し、取得した複数件の学習用データセット１２１を利用した機械学習を行うことにより、学習済みの予測モデル５を構築する。
【０１００】
本実施形態では、制御部１１は、取得した各件の学習用データセット１２１について、特徴量１２１１及び属性値１２１２を入力すると、入力した特徴量１２１１及び属性値１２１２に関連付けられた補正値１２１３に対応する値を出力するように予測モデル５を構築する。より詳細には、制御部１１は、特徴量１２１１及び属性値１２１２に基づいて根ノードから開始して、関連付けられた補正値１２１３に対応するクラスの葉ノードに到達する探索が可能な決定木を構築する。この決定木の学習方法には、ＣＬＳ（Concept Learning System）、ＩＤ３（Iterative Dichotomiser 3）、Ｃ４．５等が用いられてもよい。これにより、制御部１１は、学習済みの予測モデル５を構築することができる。学習済みの予測モデル５を構築すると、制御部１１は、次のステップＳ１０３に処理を進める。
【０１０１】
（ステップＳ１０３及びＳ１０４）
ステップＳ１０３では、制御部１１は、推定部１１３として動作し、取得した複数件の学習用データセット１２１における第２データの分布６１から指令値の取り得る数値範囲を推定する。ステップＳ１０４では、制御部１１は、閾値決定部１１４として動作し、生産装置３への指令値に対して予め設定された第１の閾値６０により規定される第１の許容範囲を拡げるように、推定した数値範囲に基づいて、生産装置３への指令値に対する第２の閾値６２を決定する。
【０１０２】
（Ａ）表現形式
推定される指令値の取り得る数値範囲、第１の閾値６０、及び第２の閾値６２の表現形式は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。本実施形態では、第２データは、補正値１２１３により構成される。そのため、本ステップＳ１０３では、制御部１１は、補正値１２１３の取り得る数値範囲を推定することにより、指令値のとり得る数値範囲を間接的に推定してもよい。これに応じて、第１の閾値６０及び第２の閾値６２は、補正値に対して設定されることで、指令値の許容範囲を間接的に規定してもよい。また、制御部１１は、補正値１２１３により基準値７０を補正することで得られる値により、指令値の取り得る数値範囲を直接的に推定してもよい。これに応じて、第１の閾値６０及び第２の閾値６２は、指令値に対して設定されることで、当該指令値の許容範囲を直接的に設定されてよい。いずれのケースも同様に取り扱い可能である。以下では、説明の便宜のため、指令値の取り得る数値範囲が直接的に推定されるものとし、第１の閾値６０及び第２の閾値６２は、指令値に対して直接的に設定されるものと想定する。
【０１０３】
（Ｂ）数値範囲の推定方法
次に、ステップＳ１０３において、第２データの分布から指令値の取り得る数値範囲を推定する方法について説明する。制御部１１は、各件の学習用データセット１２１における補正値１２１３（第２データ）を参照することにより、当該補正値１２１３（第２データ）により指定される指令値の分布を把握することができる。このとき、制御部１１は、正規分布、ガンマ分布、指数分布等の統計的手法を用いて、指令値の分布を近似してもよい。
【０１０４】
図１０は、正規分布により指令値の分布を近似した場面の一例を示す。正規分布により指令値の分布を近似する方法には、公知の統計処理が用いられてよい。この場合、制御部１１は、近似した正規分布に基づいて、指令値の最小値及び最大値を算出することができる。本ステップＳ１０３では、制御部１１は、この最小値から最大値までの数値範囲を指令値の取り得る数値範囲として推定してもよい。正規分布における指令値の最小値及び最大値はそれぞれ、当該指令値の取り得る数値範囲の境界値の一例である。
【０１０５】
なお、指令値の取り得る数値範囲を推定する方法は、このような統計的手法に限定されなくてもよい。上記以外の方法として、例えば、制御部１１は、各件の学習用データセット１２１における補正値１２１３（第２データ）を参照することにより把握した分布をそのまま指令値の取り得る数値範囲として利用してもよい。この場合、学習用データセット１２１の補正値１２１３（第２データ）により指定される指令値の最小値及び最大値がそれぞれ、当該指令値の取り得る数値範囲の境界値となる。制御部１１は、この最小値から最大値までの数値範囲を指令値の取り得る数値範囲として推定してもよい。
【０１０６】
（Ｃ）第２の閾値の決定方法
次に、ステップＳ１０４において、推定した数値範囲に基づいて、第２の閾値６２を決定する方法について説明する。ステップＳ１０３により推定した数値範囲から第２の閾値６２を導出する方法は、実施の形態に応じて適宜設定されてよい。例えば、制御部１１は、当該数値範囲の境界値を利用することで、第２の閾値６２を決定することができる。一例として、制御部１１は、推定した数値範囲の境界値又は第１の閾値６０と当該境界値との間の値を第２の閾値６２として採用してもよい。
【０１０７】
指令値の許容範囲は、下限値及び上限値の少なくとも一方を指定することにより規定することができる。第１の閾値６０は、当該第１の許容範囲の下限値であってもよいし、当該第１の許容範囲の上限値であってもよい。また、第１の許容範囲が下限値及び上限値の両方により規定される場合、当該第１の許容範囲の下限値及び上限値それぞれが第１の閾値６０として取り扱われてもよい。以下の図１１Ａ及び図１１Ｂの例では、説明の便宜のため、第１の許容範囲の下限値及び上限値それぞれが第１の閾値６０として取り扱われるものと想定する。
【０１０８】
図１１Ａは、推定した数値範囲の境界値を第２の閾値６２として採用する場面の一例を模式的に例示する。図１１Ｂは、推定した数値範囲の境界値と第１の閾値６０との間の値を第２の閾値６２として採用する場面の一例を模式的に例示する。図１１Ａ及び図１１Ｂの例において、グラフの横軸は、生産装置３への指令値（入力）に対応し、グラフの縦軸は、サーボモータのトルク（出力）に対応する。
【０１０９】
第１の閾値６０は、第２の閾値６２を決定する前に予め与えられる。この第１の閾値６０は、生産装置３を利用するユーザにより予め決定されてもよいし、生産装置３又は制御装置２において予め決定されていてもよい。第１の閾値６０は、予測モデル５により生産装置３を予測制御する場面ではなく、生産装置３又は制御装置２をユーザが手動により操作する場面において、生産装置３の指令値に対する制約条件として利用されてもよい。制御部１１は、ネットワーク等を介して制御装置２又は生産装置３に問い合わせることにより、第１の閾値６０を取得してもよい。また、学習装置１は、第１の閾値６０を記憶部１２等に予め保持していてもよいし、オペレータの指定により第１の閾値６０を取得してもよい。
【０１１０】
図１１Ａの例では、ステップＳ１０３により推定した数値範囲の最大値が第１の許容範囲の上限値（第１の閾値６０）を超える場合に、本ステップＳ１０４では、制御部１１は、当該最大値を第２の閾値６２として採用する。これにより、制御部１１は、第１の許容範囲の上限値を超える値を第２の閾値６２として採用することができる。この第２の閾値６２は、第２の許容範囲の上限値として取り扱われる。
【０１１１】
また、ステップＳ１０３により推定した数値範囲の最小値が第１の許容範囲の下限値（第１の閾値６０）未満である場合に、本ステップＳ１０４では、制御部１１は、当該最小値を第２の閾値６２として採用する。これにより、制御部１１は、第１の許容範囲の下限値より小さい値を第２の閾値６２として採用することができる。この第２の閾値６２は、第２の許容範囲の下限値として取り扱われる。
【０１１２】
一方、図１１Ｂの例では、ステップＳ１０３により推定した数値範囲の最大値が第１の許容範囲の上限値（第１の閾値６０）を超える場合に、本ステップＳ１０４では、制御部１１は、当該最大値と当該上限値との間の値を第２の閾値６２として採用する。このとき、第２の閾値６２として採用する値は、実施の形態に応じて適宜決定されてよい。例えば、制御部１１は、推定した数値範囲の最大値と第１の許容範囲の上限値との平均値を第２の閾値６２として採用してもよい。これにより、制御部１１は、第１の許容範囲の上限値を超える値を第２の閾値６２として採用することができる。この第２の閾値６２は、第２の許容範囲の上限値として取り扱われる。
【０１１３】
また、ステップＳ１０３により推定した数値範囲の最小値が第１の許容範囲の下限値（第１の閾値６０）未満である場合に、本ステップＳ１０４では、制御部１１は、当該最小値と当該下限値との間の値を第２の閾値６２として採用する。このとき、上記上限値のケースと同様に、第２の閾値６２として採用する値は、実施の形態に応じて適宜決定されてよい。例えば、制御部１１は、推定した数値範囲の最小値と第１の許容範囲の下限値との平均値を第２の閾値６２として採用してもよい。これにより、制御部１１は、第１の許容範囲の下限値より小さい値を第２の閾値６２として採用することができる。この第２の閾値６２は、第２の許容範囲の下限値として取り扱われる。
【０１１４】
図１１Ａ及び図１１Ｂに示されるとおり、以上のいずれかの方法で決定された第２の閾値６２により規定される第２の許容範囲は、第１の許容範囲よりも広くなる。したがって、本実施形態に係る制御部１１は、以上のいずれかの方法により、予め設定された第１の閾値６０により規定される第１の許容範囲を拡げるように、ステップＳ１０３により推定された数値範囲に基づいて、指令値に対する第２の閾値６２を決定することができる。
【０１１５】
このとき、制御部１１は、予め設定された安全条件を満たすように第２の閾値６２を決定してもよい。安全条件は、生産装置３の動作を安全に制御可能なように、実施の形態に応じて適宜規定されてよい。制御部１１は、ネットワーク等を介して制御装置２又は生産装置３に問い合わせることにより、この安全条件を示す情報を取得してもよい。また、学習装置１は、安全条件を示す情報を記憶部１２等に予め保持していてもよいし、オペレータの指定により安全条件を示す情報を取得してもよい。
【０１１６】
例えば、安全条件は、ユーザ、生産装置３の製造者等により予め指定された安全制御用の閾値により規定されてもよい。この安全制御用の閾値が指令値の許容範囲の上限値について設定されている場合、制御部１１は、ステップＳ１０４において決定した値（第２の許容範囲の上限値）が安全制御用の閾値以下であるか否かを判定してもよい。そして、ステップＳ１０４において決定した値が安全制御用の閾値以下であるときには、制御部１１は、当該決定した値を第２の閾値６２（すなわち、第２の許容範囲の上限値）として採用してもよい。一方、そうではないときには、制御部１１は、安全制御用の閾値以下になるように当該値を修正し、修正した値を第２の閾値６２として採用してもよい。
【０１１７】
同様に、安全制御用の閾値が指令値の許容範囲の下限値について設定されている場合、制御部１１は、ステップＳ１０４において決定した値（第２の許容範囲の下限値）が安全制御用の閾値以上であるか否かを判定してもよい。そして、ステップＳ１０４において決定した値が安全制御用の閾値以上であるときには、制御部１１は、当該決定した値を第２の閾値６２（すなわち、第２の許容範囲の下限値）として採用してもよい。一方、そうではないときには、制御部１１は、安全制御用の閾値以上になるように当該値を修正し、修正した値を第２の閾値６２として採用してもよい。
【０１１８】
また、例えば、安全条件は、生産装置３の動作をシミュレーションする又は生産装置３を実際に駆動することにより規定されてもよい。この場合、制御部１１は、シミュレーション又は実際の駆動の結果に基づいて、ステップＳ１０４において第２の閾値６２として決定した値を指令値として採用した場合に、生産装置３を安全に動作させることができるか否かを判定してもよい。そして、生産装置３を安全に動作させることができると判定した場合、制御部１１は、ステップＳ１０４において決定した値を第２の閾値６２として採用してもよい。一方、生産装置３を安全に動作させることができないと判定した場合には、制御部１１は、生産装置３を安全に動作可能なように当該値を修正し、修正した値を第２の閾値６２として採用してもよい。第２の閾値６２を決定すると、制御部１１は、次のステップＳ１０５に処理を進める。
【０１１９】
なお、ステップＳ１０３により推定した数値範囲の最大値が第１の許容範囲の上限値以下である場合には、制御部１１は、上記いずれかの方法による第２の許容範囲の上限値（第２の閾値６２）を決定する処理を省略してもよい。同様に、ステップＳ１０３により推定した数値範囲の最小値が第１の許容範囲の下限値以上である場合には、制御部１１は、上記いずれかの方法による第２の閾値６２を決定する処理を省略してもよい。また、第２の許容範囲の上限値及び下限値を決定する方法は互いに異なっていてもよい。例えば、制御部１１は、第２の許容範囲の上限値を決定する方法に図１１Ａにより示される方法を採用し、第２の許容範囲の下限値を決定する方法に図１１Ｂにより示される方法を採用してもよい。
【０１２０】
また、図１１Ａ及び図１１Ｂは、生産装置３への指令値（入力）と上側金型３２を駆動するサーボモータのトルク（出力）との関係の一例を模式的に例示している。上記では、第１の閾値６０及び第２の閾値６２は、指令値に対して設定されている。しかしながら、第１の閾値６０及び第２の閾値６２の形式は、このような例に限定されなくてもよい。例えば、第１の閾値６０及び第２の閾値６２はそれぞれ、対象装置の出力（本実施形態では、サーボモータのトルク）に対して設定されることで、指令値の許容範囲を間接的に規定してもよい。
【０１２１】
（ステップＳ１０５）
ステップＳ１０５では、制御部１１は、学習処理部１１２として動作し、機械学習により構築した決定木（学習済みの予測モデル５）の構成及び各分岐条件を示す情報を学習結果データ１２５として記憶部１２に格納する。また、制御部１１は、閾値決定部１１４として動作し、ステップＳ１０４で決定した第２の閾値６２を記憶部１２に格納する。これにより、制御部１１は、本動作例に係る学習処理を終了する。
【０１２２】
なお、制御部１１は、上記ステップＳ１０５の処理が完了した後、生成した学習結果データ１２５及び第２の閾値６２を制御装置２に転送してもよい。また、制御部１１は、上記ステップＳ１０１〜Ｓ１０５の学習処理を定期的に実行することで、学習結果データ１２５及び第２の閾値６２を定期的に更新してもよい。そして、制御部１１は、生成した学習結果データ１２５及び第２の閾値６２を学習処理の実行毎に制御装置２に転送することで、制御装置２の保持する学習結果データ１２５及び第２の閾値６２を定期的に更新してもよい。また、例えば、制御部１１は、生成した学習結果データ１２５及び第２の閾値６２をＮＡＳ（Network Attached Storage）等のデータサーバに保管してもよい。この場合、制御装置２は、このデータサーバから学習結果データ１２５及び第２の閾値６２を取得してもよい。また、学習装置１により生成された学習結果データ１２５及び第２の閾値６２は、制御装置２に予め組み込まれてもよい。
【０１２３】
［制御装置］
次に、図１２を用いて、運用のフェーズにおける制御装置２の動作例について説明する。図１２は、制御装置２の処理手順の一例を示すフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１２４】
（ステップＳ２０１）
ステップＳ２０１では、制御部２１は、入力データ取得部２１１として動作し、運用フェーズにおいて、要因に関する入力データを取得する。
【０１２５】
本実施形態では、上記のとおり、予測モデル５は、ワーク４０の特徴量１２１１及び製品４１を生産する環境の属性値１２１２を第１データとして含む学習用データセット１２１を利用した機械学習により構築される。そのため、本ステップＳ２０１では、制御部２１は、ワーク４０の特徴量７１及び製品４１を生産する環境の属性値７２を取得する。
【０１２６】
特徴量７１及び属性値７２は、上記特徴量１２１１及び属性値１２１２と同種であればよい。また、特徴量７１及び属性値７２それぞれを取得する方法は、実施の形態に応じて適宜選択されてよい。例えば、ワーク４０の特徴量７１（例えば、硬さ等）及び環境の属性値７２（例えば、温度等）それぞれを測定可能に構成された各種センサが生産装置３に配置されてもよい。各種センサには、測定対象となる特徴量７１及び属性値７２の種類に応じて公知のセンサが適宜用いられてよい。この場合、制御部２１は、生産装置３に配置された各種センサから、特徴量７１及び属性値７２それぞれを取得することができる。特徴量７１及び属性値７２それぞれを取得すると、制御部２１は、次のステップＳ２０２に処理を進める。
【０１２７】
（ステップＳ２０２）
ステップＳ２０２では、制御部２１は、予測演算部２１２として動作し、取得した入力データ（特徴量７１及び属性値７２）を予測モデル５に入力し、当該予測モデル５の演算処理を実行する。これにより、制御部２１は、生産装置３による製品４１の生産に適応した指令値を予測した結果に対応する出力値を当該予測モデル５から取得する。
【０１２８】
本実施形態では、予測モデル５は決定木により構成されており、予測モデル５の構成及び各経路の分岐条件を示す情報は、学習結果データ１２５に含まれている。そこで、制御部２１は、学習結果データ１２５を参照することで、予測モデル５の設定を行う。この設定処理によって、制御部２１は、決定木（予測モデル５）の探索処理を開始することができる状態になる。
【０１２９】
次に、制御部２１は、決定木（予測モデル５）の根ノードから葉ノードに向けてリンクをたどる探索処理を実行する。具体的には、探索処理を１度も実行していない場合、制御部２１は、決定木の探索処理として、根ノードに設定された分岐条件を入力データ（特徴量７１及び属性値７２）が満たすか否かを判定する。そして、この判定結果に基づいて、制御部２１は、２段階目の該当ノード（図７Ａの例では、中間ノードＮ１又は中間ノードＮ２）に探索を進める。
【０１３０】
同様に、探索処理をｎ回実行した場合（ｎは、１以上の自然数）、探索は、ｎ＋１段目の中間ノードまで探索が進行している。この場合には、制御部２１は、ｎ＋１段目の該当の中間ノードに設定された分岐条件を入力データが満たすか否かを判定する。そして、この判定結果に基づいて、制御部２１は、ｎ＋２段目の該当ノードに探索を進める。
【０１３１】
決定木のいずれかの葉ノードまでこの探索処理が到達することで、予測モデル５の演算処理が完了する。本実施形態では、予測モデル５を構成する決定木の各葉ノードには、製品４１の生産に適応した指令値の予測の結果に対応する出力値として、指令値の基準値７０に対する補正値７３が対応付けられている。そのため、この予測モデル５の演算処理が完了することで、制御部２１は、予測モデルからの出力値として、探索処理の到達した葉ノードに対応付けられた補正値７３を取得することができる。この出力値を取得すると、制御部２１は、次のステップＳ２０３に処理を進める。
【０１３２】
（ステップＳ２０３）
ステップＳ２０３では、制御部２１は、予測演算部２１２として動作し、予測モデル５から取得した出力値に基づいて、学習装置１により決定された第２の閾値６２により規定される第２の許容範囲内で、生産装置３への指令値を決定する。
【０１３３】
本実施形態では、上記ステップＳ２０２において、制御部２１は、予測モデル５からの出力値として、基準値７０に対する補正値７３を取得している。そのため、制御部２１は、取得した補正値７３で基準値７０を補正（例えば、加算、減算）することで、指令値の予測値を算出する。そして、制御部２１は、算出した予測値が、第２の閾値６２により規定される第２の許容範囲内であるか否かを判定する。
【０１３４】
算出した予測値が第２の許容範囲内である場合、制御部２１は、算出した予測値を指令値７５に決定する。一方、算出した予測値が第２の許容範囲内ではない場合、制御部２１は、第２の許容範囲内になるように、算出した予測値を適宜修正し、修正した値を指令値７５に決定する。例えば、算出した予測値が第２の許容範囲の上限値を超えている場合、制御部２１は、第２の許容範囲の上限値を指令値７５に決定してもよい。また、例えば、算出した予測値が第２の許容範囲の下限値よりも小さい場合、制御部２１は、第２の許容範囲の下限値を指令値７５に決定してもよい。これにより、第２の許容範囲内で指令値７５を決定すると、制御部２１は、次のステップＳ２０４に処理を進める。
【０１３５】
（ステップＳ２０４）
ステップＳ２０４では、制御部２１は、動作制御部２１３として動作し、決定した指令値７５に基づいて、生産装置３の動作を制御する。指令値７５に基づいて生産装置３の動作を制御する方法は、指令値の形式に応じて適宜選択されてよい。
【０１３６】
本実施形態では、生産装置３は、プレス機であり、上側金型３２を駆動するサーボドライバ３１を備えている。そのため、指令値７５は、サーボモータの駆動量を規定したパルス数を示してもよい。この場合、制御部２１は、外部インタフェース２４を介して、生産装置３のサーボドライバ３１に対して指令値７５を送信する。サーボドライバ３１は、制御装置２から受信した指令値７５に基づいてサーボモータを駆動する。これにより、制御部２１は、決定した指令値７５に基づいて、生産装置３の動作を制御することができる。生産装置３の動作を制御すると、制御部２１は、本動作例に係る処理を終了する。
【０１３７】
なお、指令値７５の形式は、このような例に限定されなくてもよい。指令値７５は、例えば、サーボモータの駆動量、上側金型３２の移動量等の中間指標により表現されてもよい。この場合、制御部２１は、中間指標により表現された指令値７５をそのまま生産装置３に送信してもよいし、中間指標により表現された指令値７５を、パルス数等の直接利用可能な形式に変換し、変換した指令値７５を生産装置３に送信してもよい。
【０１３８】
（終了後）
以上により、制御部２１は、本動作例に係る生産装置３の動作を制御する一連の処理を終了する。制御部２１は、この一連の処理を繰り返し実行することで、生産装置３の動作を継続的に制御することができる。
【０１３９】
なお、制御装置２は、上記予測モデル５を利用して生産装置３の動作を予測制御するモード（予測制御モード）と、ユーザの操作に応じて生産装置３の動作を制御するモード（手動制御モード）とを切り替え可能に構成されてよい。この場合、動作モードが予測制御モードに設定された場合に、制御部２１は、上記ステップＳ２０１〜Ｓ２０４の一連の処理を実行してもよい。また、動作モードが手動制御モードに設定された場合には、制御部２１は、ユーザから指令値の指定を受け付けて、指定された指令値に基づいて、生産装置３の動作を制御してもよい。このとき、制御部２１は、手動制御モードでは、第１の閾値６０を制約条件として利用してもよい。つまり、制御部２１は、第１の閾値６０により規定される第１の許容範囲を超える値の指定を受け付けず、第１の許容範囲内で指令値の指定を受け付けてもよい。
【０１４０】
［特徴］
以上のとおり、本実施形態では、上記ステップＳ２０３において、生産装置３への指令値を決定する際に、予め設定された第１の閾値６０により規定される第１の許容範囲ではなく、上記ステップＳ１０４により第１の許容範囲を拡げるように設定された第２の閾値６２により規定される第２の許容範囲が指令値の制約条件として利用される。これにより、安全性を過度に考慮して第１の許容範囲が狭く設定されていた場合であっても、生産装置３の動作の制御に用いる指令値７５を許容する範囲を拡げることができる。つまり、上記ステップＳ２０４において、第１の許容範囲を制約条件として利用した場合には拒絶されるような指令値７５の一部を生産装置３の動作の制御に用いるようにすることができる。
【０１４１】
更に、上記ステップＳ１０１では、各件の学習用データセット１２１は、特定のケースに適した動作の制御を実現するように収集される。そのため、各件の学習用データセット１２１の第２データ（補正値１２１３）により指定される指令値によれば、生産装置３の動作を安全に制御することができる。よって、上記ステップＳ１０４では、学習用データセット１２１における第２データの分布から推定される数値範囲に基づくことで、生産装置３の動作の安全性を確保するように、第２の許容範囲を規定する第２の閾値６２を決定することができる。特に、上記ステップＳ１０４において、予め設定された安全条件を満たすように第２の閾値６２を決定するようにすることで、生産装置３の動作の安全性を確実に確保することができる。したがって、本実施形態に係る制御システム１００によれば、生産装置３の動作の安全性を確保しつつ、予測モデル５の性能を十分に発揮可能な予測制御を実施することができる。
【０１４２】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０１４３】
＜４．１＞
上記実施形態では、第１データは、ワーク４０の特徴量１２１１及び製品４１を生産する環境の属性値１２１２の両方により構成されている。これに応じて、予測モデル５の入力には、ワーク４０の特徴量７１及び製品４１を生産する環境の属性値７２の両方が利用されている。しかしながら、予測モデル５の入力は、このような例に限定されなくてもよい。
【０１４４】
例えば、ワーク４０の特徴量及び製品を生産する環境の属性値のうちの一方は省略されてよい。すなわち、上記第１データは、ワーク４０の特徴量１２１１及び製品４１を生産する環境の属性値１２１２の少なくとも一方により構成されてよい。これに応じて、予測モデル５は、ワーク４０の特徴量７１及び製品４１を生産する環境の属性値７２の少なくとも一方の入力に対して、製品４１の生産に適応した指令値を予測するように構築されてよい。
【０１４５】
また、第１データは、対象装置の動作を決定し得るあらゆる種類の要因に関するデータであってよい。制御装置２は、上記生産装置３以外の種類の対象装置を制御するように構成されてよい。これらに応じて、予測モデル５は、第１データと同じ種類のデータの入力に対して、その入力データにより示される状況に適応した指令値を予測するように構築されてよい。
【０１４６】
＜４．２＞
上記実施形態では、第２データは、指令値の基準値に対する補正値１２１３により構成されており、これに応じて、予測モデル５は、指令値の基準値７０に対する補正値７３を出力するように構成されている。しかしながら、予測モデル５の出力形式は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、予測モデル５は、指令値そのものを出力するように構成されてもよい。この場合、第２データは、指令値そのものにより構成されてよい。
【０１４７】
＜４．３＞
上記実施形態では、予測モデル５は、決定木により構成されている。しかしながら、予測モデル５の構成は、予測処理を実行する時点よりも先の時点（将来の時点）における対象装置（一例では、上記生産装置３）への指令値を予測可能であれば、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。予測モデル５は、例えば、ニューラルネットワーク、サポートベクタマシン等の決定木以外の学習モデルが用いられてもよい。また、予測モデル５には、学習モデル以外のモデル（例えば、所定の関数）が用いられてもよい。
【符号の説明】
【０１４８】
１…学習装置、
１１…制御部、１２…記憶部、１３…通信インタフェース、
１４…入力装置、１５…出力装置、１６…ドライブ、
１１１…学習データ取得部、１１２…学習処理部、
１１３…推定部、１１４…閾値決定部、
８１…学習プログラム、１２１…学習用データセット、
１２５…学習結果データ、
９１…記憶媒体、
２…制御装置、
２１…制御部、２２…記憶部、２３…通信インタフェース、
２４…外部インタフェース、
２５…入力装置、２６…出力装置、２７…ドライブ、
２１１…入力データ取得部、２１２…予測演算部、
２１３…動作制御部、
８２…制御プログラム、９２…記憶媒体、
３…生産装置（対象装置）、
３１…サーボドライバ、３２…上金型、３３…下金型、
４０…ワーク、４１…製品、
５…予測モデル（決定木）、
６０…第１の閾値、６１…分布、６２…第２の閾値、
７０…（指令値の）基準値、
７１…特徴量、７２…属性値、７３…補正値
【図１】
2019212164.tif 000003
【図２】
2019212164.tif 000004
【図３】
2019212164.tif 000005
【図４】
2019212164.tif 000006
【図５Ａ】
2019212164.tif 000007
【図５Ｂ】
2019212164.tif 000008
【図５Ｃ】
2019212164.tif 000009
【図５Ｄ】
2019212164.tif 000010
【図６】
2019212164.tif 000011
【図７Ａ】
2019212164.tif 000012
【図７Ｂ】
2019212164.tif 000013
【図８】
2019212164.tif 000014
【図９】
2019212164.tif 000015
【図１０】
2019212164.tif 000016
【図１１Ａ】
2019212164.tif 000017
【図１１Ｂ】
2019212164.tif 000018
【図１２】
2019212164.tif 000019