IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

特許7665112プログラム作成支援プログラム、プログラム作成支援装置、プログラム作成支援方法、および、プログラム作成支援システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-04-10
(45)【発行日】2025-04-18
(54)【発明の名称】プログラム作成支援プログラム、プログラム作成支援装置、プログラム作成支援方法、および、プログラム作成支援システム
(51)【国際特許分類】
   G06F 8/30 20180101AFI20250411BHJP
【FI】
G06F8/30
【請求項の数】 12
(21)【出願番号】P 2024568402
(86)(22)【出願日】2024-07-04
(86)【国際出願番号】 JP2024024277
【審査請求日】2024-11-15
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100131152
【弁理士】
【氏名又は名称】八島 耕司
(74)【代理人】
【識別番号】100147924
【弁理士】
【氏名又は名称】美恵 英樹
(74)【代理人】
【識別番号】100148149
【弁理士】
【氏名又は名称】渡邉 幸男
(74)【代理人】
【識別番号】100181618
【弁理士】
【氏名又は名称】宮脇 良平
(74)【代理人】
【識別番号】100174388
【弁理士】
【氏名又は名称】龍竹 史朗
(72)【発明者】
【氏名】石黒 夏実
【審査官】松平 英
(56)【参考文献】
【文献】特開2009-176076(JP,A)
【文献】特開2012-230583(JP,A)
【文献】特開2001-188673(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するモデルセット生成部、
対象のプログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するプログラム部品生成部、
前記モデルセットに含まれる前記モデルの性能を評価する評価パターンを生成する評価パターン生成部、および
前記評価パターンに基づいて前記モデルの性能の評価を行うプログラム評価部、
として機能させ、
前記プログラム部品生成部は、前記モデルセットに含まれる前記モデルのうち、前記プログラム評価部による評価が予め決められた条件を満たす前記モデルをひとつのファイルにした部品用モデルセットを関連付けて、前記プログラム部品を生成する、
プログラム作成支援プログラム。
【請求項2】
外部機器を制御する制御プログラムを実行する制御装置と接続するコンピュータを、
入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するモデルセット生成部、
対象のプログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するプログラム部品生成部、および、
前記制御プログラムを生成する制御プログラム生成部、
として機能させ、
前記プログラム部品生成部は、前記制御プログラム内に前記モデルを追加する前記プログラム部品を生成し、
前記制御プログラム生成部は、前記プログラム部品を使用した前記制御プログラムを生成し、前記プログラム部品において、追加する前記モデルのパラメータと処理方法との組み合わせを切り替えると、切り替えたパラメータと処理方法とでシミュレーションを行い、シミュレーション中の各パラメータの値を表示する、
プログラム作成支援プログラム。
【請求項3】
前記モデルセット生成部は、パラメータおよびアルゴリズムが同じ処理方法の設定を含む前記モデルの生成に関する設定を受け付け、入力された前記モデルの生成に関する設定に基づいて、パラメータと処理方法とのとり得るすべての組み合わせの前記モデルを生成し、ひとつのファイルにした前記モデルセットを生成する、
請求項1または2に記載のプログラム作成支援プログラム。
【請求項4】
前記評価パターン生成部は、評価対象の前記モデルと前記モデルの性能を評価するためのテストの判定基準およびテスト結果の評価指標との指定を受け付け、指定された内容に基づいて、前記評価パターンを生成する、
請求項1に記載のプログラム作成支援プログラム。
【請求項5】
前記制御プログラム生成部は、前記プログラム部品の前記モデルの選択を受け付け、選択された前記モデルを追加する前記プログラム部品を使用した前記制御プログラムを生成する、
請求項2に記載のプログラム作成支援プログラム。
【請求項6】
前記モデルセット生成部は、入力された特徴量に対して学習を行って値を出力する学習モデルを生成し、特徴量が異なりアルゴリズムが同じ学習を行う複数の前記学習モデルをひとつのファイルにした学習モデルセットを生成し、
前記プログラム部品生成部は、前記学習モデルセットを関連付けて、追加する前記学習モデルの特徴量と学習方法との組み合わせを切り替え可能な前記プログラム部品を生成する、
請求項1または2に記載のプログラム作成支援プログラム。
【請求項7】
入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するモデルセット生成部と、
対象のプログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するプログラム部品生成部と、
前記モデルセットに含まれる前記モデルの性能を評価する評価パターンを生成する評価パターン生成部と、
前記評価パターンに基づいて前記モデルの性能の評価を行うプログラム評価部と、
を備え、
前記プログラム部品生成部は、前記モデルセットに含まれる前記モデルのうち、前記プログラム評価部による評価が予め決められた条件を満たす前記モデルをひとつのファイルにした部品用モデルセットを関連付けて、前記プログラム部品を生成する、
プログラム作成支援装置。
【請求項8】
外部機器を制御する制御プログラムを実行する制御装置と接続するプログラム作成支援装置であって、
入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するモデルセット生成部と、
対象のプログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するプログラム部品生成部と、
前記制御プログラムを生成する制御プログラム生成部と、
を備え、
前記プログラム部品生成部は、前記制御プログラム内に前記モデルを追加する前記プログラム部品を生成し、
前記制御プログラム生成部は、前記プログラム部品を使用した前記制御プログラムを生成し、前記プログラム部品において、追加する前記モデルのパラメータと処理方法との組み合わせを切り替えると、切り替えたパラメータと処理方法とでシミュレーションを行い、シミュレーション中の各パラメータの値を表示する、
プログラム作成支援装置。
【請求項9】
プログラム作成支援装置が実行する、
入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するステップと、
対象のプログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するステップと、
前記モデルセットに含まれる前記モデルの性能を評価する評価パターンを生成するステップと、
前記評価パターンに基づいて前記モデルの性能の評価を行うステップと、
を備え、
前記プログラム部品を生成するステップでは、前記モデルセットに含まれる前記モデルのうち、前記モデルの性能の評価を行うステップでの評価が予め決められた条件を満たす前記モデルをひとつのファイルにした部品用モデルセットを関連付けて、前記プログラム部品を生成する、
プログラム作成支援方法。
【請求項10】
外部機器を制御する制御プログラムを実行する制御装置と接続するプログラム作成支援装置が実行する、
入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するステップと、
対象のプログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するステップと、
前記制御プログラムを生成するステップと、
を備え、
前記プログラム部品を生成するステップでは、前記制御プログラム内に前記モデルを追加する前記プログラム部品を生成し、
前記制御プログラムを生成するステップでは、前記プログラム部品を使用した前記制御プログラムを生成し、前記プログラム部品において、追加する前記モデルのパラメータと処理方法との組み合わせを切り替えると、切り替えたパラメータと処理方法とでシミュレーションを行い、シミュレーション中の各パラメータの値を表示する、
プログラム作成支援方法。
【請求項11】
外部機器を制御する制御プログラムを実行する制御装置と、前記制御プログラムを生成するプログラム作成支援装置とを備えるプログラム作成支援システムであって、
前記制御装置は、
前記制御プログラムを実行するプログラム実行部と、
前記外部機器に関するデータを収集するデータ収集部と、
を含み、
前記プログラム作成支援装置は、
前記データ収集部が収集した前記外部機器に関するデータに基づいて、入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するモデルセット生成部と、
前記制御プログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するプログラム部品生成部と、
前記プログラム部品を使用した前記制御プログラムを生成する制御プログラム生成部と、
前記モデルセットに含まれる前記モデルの性能を評価する評価パターンを生成する評価パターン生成部と、
前記評価パターンに基づいて前記モデルの性能の評価を行うプログラム評価部と、
を含み、
前記プログラム部品生成部は、前記モデルセットに含まれる前記モデルのうち、前記プログラム評価部による評価が予め決められた条件を満たす前記モデルをひとつのファイルにした部品用モデルセットを関連付けて、前記プログラム部品を生成する、
プログラム作成支援システム。
【請求項12】
外部機器を制御する制御プログラムを実行する制御装置と、前記制御プログラムを生成するプログラム作成支援装置とを備えるプログラム作成支援システムであって、
前記制御装置は、
前記制御プログラムを実行するプログラム実行部と、
前記外部機器に関するデータを収集するデータ収集部と、
を含み、
前記プログラム作成支援装置は、
前記データ収集部が収集した前記外部機器に関するデータに基づいて、入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数の前記モデルをひとつのファイルにしたモデルセットを生成するモデルセット生成部と、
前記制御プログラム内に前記モデルを追加するプログラム部品であって、前記モデルセットを関連付けて、追加する前記モデルのパラメータと処理方法との組み合わせを切り替え可能な前記プログラム部品を生成するプログラム部品生成部と、
前記プログラム部品を使用した前記制御プログラムを生成する制御プログラム生成部と、
を含み、
前記プログラム部品生成部は、前記制御プログラム内に前記モデルを追加する前記プログラム部品を生成し、
前記制御プログラム生成部は、前記プログラム部品を使用した前記制御プログラムを生成し、前記プログラム部品において、追加する前記モデルのパラメータと処理方法との組み合わせを切り替えると、切り替えたパラメータと処理方法とでシミュレーションを行い、シミュレーション中の各パラメータの値を表示する、
プログラム作成支援システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム作成支援プログラム、プログラム作成支援装置、プログラム作成支援方法、および、プログラム作成支援システムに関する。
【背景技術】
【0002】
一般的にC、Pythonなどのプログラミング言語では、繰り返し記述される処理および1つの機能として切り分けられる処理を部品化し、ファンクションとして定義したり、クラスを作成して、そのメソッドを定義したりすることで可読性、再利用性およびメンテナンス性の向上を実現している。
【0003】
近年の技術革新により、同一の計算方法でも、入力および出力の内容によって内部処理で使用されるパラメータが異なる処理が登場している。例えば機械学習で学習モデルを生成する際は、入力および出力の特徴量が異なるため内部処理で使用されるパラメータは異なるが学習手法のアルゴリズムは同一であるものがある。この場合、従来の方法を用いると、内部処理の流れは同じでも、引数の数が異なるファンクション、メソッドなどを複数定義する必要があり、可読性が悪いプログラムとなってしまう。
【0004】
特許文献1には、監視対象に異常が発生している可能性を判定するため機械学習を使用する方法が開示されている。この方法で採用されている学習モデルは異常の判定を行うアルゴリズムを複数備えており、プログラム中で使用されるファンクションブロックの入力値から使用するアルゴリズムを指定することができるとともに、あらかじめ定められた条件に応じてアルゴリズムを切り替える事が可能である。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2020-101904号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術では、監視対象に異常が発生しない時のデータ(教師ありデータ)のみを学習させた学習モデルただ1つを使用して異常が発生した際の判定を行う。この場合、判定に使用する特徴量が固定されており、学習モデルへ入力するパラメータを容易に別のものに切り替える事ができず、切り替えたい場合は再度学習モデルを作成しなおす必要がある。このため、プログラムの作成よび修正における工数が増大し、効率が悪いという問題点があった。
【0007】
本開示は、上記のような問題点を解決するためになされたものであり、プログラムの作成および修正において、工数を削減し、効率を向上させることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本開示に係るプログラムは、コンピュータを、モデルセット生成部、プログラム部品生成部、評価パターン生成部、および、プログラム評価部として機能させる。モデルセット生成部は、入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数のモデルをひとつのファイルにしたモデルセットを生成する。プログラム部品生成部は、対象のプログラム内にモデルを追加するプログラム部品であって、モデルセットを関連付けて、追加するモデルのパラメータと処理方法との組み合わせを切り替え可能なプログラム部品を生成する。評価パターン生成部は、モデルセットに含まれるモデルの性能を評価する評価パターンを生成する。プログラム評価部は、評価パターンに基づいてモデルの性能の評価を行う。プログラム部品生成部は、モデルセットに含まれるモデルのうち、プログラム評価部による評価が予め決められた条件を満たすモデルをひとつのファイルにした部品用モデルセットを関連付けて、プログラム部品を生成する。
上記目的を達成するため、本開示に係るプログラムは、外部機器を制御する制御プログラムを実行する制御装置と接続するコンピュータを、モデルセット生成部、プログラム部品生成部、および、制御プログラム生成部として機能させる。モデルセット生成部は、入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なりアルゴリズムが同じ処理を行う複数のモデルをひとつのファイルにしたモデルセットを生成する。プログラム部品生成部は、対象のプログラム内にモデルを追加するプログラム部品であって、モデルセットを関連付けて、追加するモデルのパラメータと処理方法との組み合わせを切り替え可能なプログラム部品を生成する。制御プログラム生成部は、制御プログラムを生成する。プログラム部品生成部は、制御プログラム内にモデルを追加するプログラム部品を生成する。制御プログラム生成部は、プログラム部品を使用した制御プログラムを生成し、プログラム部品において、追加するモデルのパラメータと処理方法との組み合わせを切り替えると、切り替えたパラメータと処理方法とでシミュレーションを行い、シミュレーション中の各パラメータの値を表示する。
【発明の効果】
【0009】
本開示によれば、プログラムの作成および修正において、対象のプログラム内に追加するモデルのパラメータと処理方法との組み合わせを切り替えることが容易となり、工数を削減し、効率を向上させることができる。
【図面の簡単な説明】
【0010】
図1】実施の形態に係るプログラム作成支援システムの構成例を示す図
図2A】実施の形態に係る異常検知を目的とした教師あり学習の学習用データの一例を示す図
図2B】実施の形態に係るコンベアの張力値の算出を目的とした教師あり学習の学習用データの一例を示す図
図3】実施の形態に係る教師あり学習の学習モデル作成画面の一例を示す図
図4】実施の形態に係る教師あり学習の学習方法および特徴量が設定された学習モデル作成画面の一例を示す図
図5】実施の形態に係る教師あり学習の学習モデルの一例を示す図
図6】実施の形態に係る教師あり学習の学習方法および特徴量が設定され、入力にデフォルト設定がある場合の学習モデル作成画面の一例を示す図
図7】実施の形態に係る入力にデフォルト設定がある場合の教師あり学習の学習モデルの一例を示す図
図8】実施の形態に係る異常検知を目的とした教師なし学習の学習用データの一例を示す図
図9】実施の形態に係る教師なし学習の学習モデル作成画面の一例を示す図
図10】実施の形態に係る教師なし学習の学習方法および特徴量が設定された学習モデル作成画面の一例を示す図
図11】実施の形態に係る教師なし学習の学習モデルの一例を示す図
図12】実施の形態に係る教師なし学習の学習方法および特徴量が設定され、入力にデフォルト設定がある場合の学習モデル作成画面の一例を示す図
図13】実施の形態に係る入力にデフォルト設定がある場合の教師なし学習の学習モデルの一例を示す図
図14】実施の形態に係る教師なし学習の学習モデルの評価パターン作成画面の一例を示す図
図15】実施の形態に係る教師なし学習の学習モデルの性能を評価したモデル評価結果画面を示す図
図16】実施の形態に係る教師あり学習の学習モデルの評価パターン作成画面の一例を示す図
図17】実施の形態に係る教師あり学習の学習モデルの性能を評価したモデル評価結果画面を示す図
図18】実施の形態に係る制御プログラム作成画面の一例を示す図
図19】実施の形態に係るシミュレーション中の制御プログラム作成画面の一例を示す図
図20】実施の形態に係る学習モデル選択画面の一例を示す図
図21】実施の形態に係るプログラム部品生成処理を示すフローチャート
図22】実施の形態に係る制御プログラム生成処理を示すフローチャート
図23】実施の形態に係るプログラム作成支援装置のハードウェア構成の一例を示す図
【発明を実施するための形態】
【0011】
以下に、本実施の形態に係るプログラム、プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援システムについて図面を参照して詳細に説明する。なお、図中同一または相当する部分には同じ符号を付す。本実施の形態では、パラメータが特徴量であり、モデルが学習モデルである場合の例について説明する。
【0012】
実施の形態に係るプログラム作成支援システム100の構成について、図1を用いて説明する。プログラム作成支援システム100は、制御装置2が実行する制御プログラムに使用可能なプログラム部品を生成するプログラム作成支援装置1、外部機器4を制御して、外部機器4に関する特徴量のデータを収集する制御装置2、および、制御装置2が収集した特徴量のデータを記憶する収集データ記憶部3を備える。図中、外部機器4を1つ記載しているが、複数であってもよい。外部機器4は、例えばカメラ、センサなどを備え、制御装置2は、カメラ、センサなどから外部機器4に関する特徴量のデータを収集する。以下、制御装置2が収集した特徴量のデータを収集データという。制御プログラムは、対象のプログラムの例である。
【0013】
プログラム作成支援装置1は、例えば、エンジニアリングツールがインストールされたパーソナルコンピュータである。プログラム作成支援装置1は、収集データに基づいて学習モデルを生成し、特徴量が異なる類似の学習方法の複数の学習モデルをひとつのファイルにした学習モデルセットを生成する学習モデルセット生成部11と、生成された学習モデルセットを記憶する学習モデルセット記憶部12と、学習モデルセットに含まれる学習モデルの性能を評価する評価パターンを生成する評価パターン生成部13と、評価パターンに基づいて学習モデルの性能の評価を行うプログラム評価部14と、評価された学習モデルのうち選択された学習モデルをひとつのファイルにした部品用モデルセットを記憶する部品用モデルセット記憶部15とを備える。また、プログラム作成支援装置1は、制御プログラム内に学習モデルを追加するプログラム部品であって、部品用モデルセットを関連付けて、特徴量と学習方法との組み合わせを切り替え可能なプログラム部品を生成するプログラム部品生成部16と、プログラム部品を使用した制御プログラムを生成する制御プログラム生成部17とを備える。学習方法は、処理方法の例である。学習モデルセット生成部11は、モデルセット生成部の例である。
【0014】
制御装置2は、例えば、PLC(Programmable Logic Controller)である。制御装置2は、外部機器4に関する特徴量のデータを収集するデータ収集部211~データ収集部21n(n≧1)と、プログラム作成支援装置1が生成した制御プログラムを実行するプログラム実行部221~プログラム実行部22m(m≧1)とを備える。制御装置2のデータ収集部211~データ収集部21nは、外部機器4からセンサデータ、製造データ、タイムスタンプなどを収集し、収集データとして収集データ記憶部3に記憶する。プログラム実行部221~プログラム実行部22mは、プログラム作成支援装置1が生成した制御プログラムをダウンロードして実行し、外部機器4を制御する。
【0015】
プログラム作成支援装置1の学習モデルセット生成部11は、収集データ記憶部3が記憶する収集データに基づいて、学習モデルを生成する。収集データは、そのままでは学習に使用できないので、学習モデルセット生成部11は、データの形式を変換したり、不要な情報を削除したりして、収集データを学習用データに変換する前処理を行う。
【0016】
まず、教師あり学習の学習モデルを生成する場合について説明する。図2Aおよび図2Bに、教師あり学習の学習用データの具体例を示す。図2Aは、異常検知を目的とした教師あり学習の学習用データの例である。図2Bは、コンベアの張力値の算出を目的とした教師あり学習の学習用データの例である。教師あり学習の学習用データは、入力と出力がセットになったデータであり、CSV(Comma Separated Values)ファイルといったテキスト形式になっている。図2Aでは、「状態」が出力であり、その他の特徴量が入力である。図2Bでは、「張力」が出力であり、その他の特徴量が入力である。
【0017】
図1に戻り、学習モデルセット生成部11は、ユーザによる学習モデルの設定を受け付ける学習モデル作成画面を表示する。学習モデルセット生成部11は、学習モデル作成画面に入力された設定に基づいて、学習モデルを生成する。
【0018】
ここで、教師あり学習の学習モデル作成画面について図3を用いて説明する。図3に示す例では、学習モデル作成画面は、ユーザが作成したい学習モデルの学習方法を設定する「学習方法」の項目と、入力および出力を設定する「特徴量」の項目とを有する。また、学習モデル作成画面は、生成するファイル名を設定する「生成するファイル」の項目と、学習データを読み込む「インポート」ボタンと、学習モデルの生成を開始する「生成開始」ボタンと、学習モデルの生成を中止する「キャンセル」ボタンとを有する。
【0019】
図3に示すように「学習方法」の項目では、教師あり学習の各種学習方法が設定可能である。「学習方法」の項目は、それぞれの学習方法についての詳細設定項目(学習時間、学習回数および生成する学習モデルの接頭辞)を指定可能な学習方法詳細選択画面がポップアップ表示されるボタンを有する。なお、詳細設定項目はこれに限らず、学習方法についてのその他の条件を含んでもよい。
【0020】
教師あり学習の場合、「特徴量」の項目は、入力および出力の項目を有する。入力および出力の項目には「デフォルト」チェックボックスが設けられている。「デフォルト」チェックボックスを有効にするとその項目は学習モデル生成時の特徴量にデフォルトで入り、この項目の特徴量を使用しない学習モデルは生成されない。学習モデルは、入力および出力に設定された特徴量と学習方法の全通りの組み合わせ分生成される。データ形式によっては「学習方法」で指定した方法で学習処理が行うことができず学習モデルが生成されないケースもありうるが、本実施の形態では、便宜上、指定された学習方法と特徴量で学習モデルの生成が可能であるものとして説明する。
【0021】
続いて、教師あり学習の学習モデルの生成方法について、図4および図5を用いて説明する。図4は、教師あり学習の学習方法および特徴量が設定された学習モデル作成画面の例である。学習モデル作成画面の「学習方法」の項目の学習方法1~学習方法4にそれぞれ、重回帰、K近傍法、ランダムフォレストおよびディープラーニングが設定されている。また、「特徴量」の項目の入力1~入力4にそれぞれ、送り速度、加速度、総運転時間および総運転距離が設定されており、出力1に張力が設定されている。なお、教師あり学習の場合、入力と出力は1つ以上必要なので、出力1の張力は自動的にデフォルトに設定されている。
【0022】
「インポート」ボタンが押下されると、学習モデルセット生成部11は、CSVファイルのヘッダを検索し、入力1~入力4に対応する送り速度、加速度、総運転時間および総運転距離の学習用データと、出力1に対応する張力の学習用データとを読み込む。「生成開始」ボタンが押下されると、学習モデルセット生成部11は、読み込んだ学習用データに基づいて、学習方法1~学習方法4に対応する学習方法で学習を開始する。
【0023】
図4に示すように学習モデル作成画面で設定が行われていた場合、図5に示すような学習モデルが生成される。入力を送り速度、加速度、総運転時間および総運転距離の全通りの組み合わせとし、出力を張力とする、重回帰、K近傍法、ランダムフォレストおよびディープラーニングの学習モデルがそれぞれ生成されている。図中、使用する特徴量を「○」、使用しない特徴量を「×」で表示している。出力1の張力はデフォルトに設定されているので、出力の張力は、すべて「○」になっている。
【0024】
生成される学習モデルの全通りの組み合わせは理論上、次のとおりである。教師あり学習の場合、入力と出力は1つ以上必要なので、入力数:M(M≧1)、出力数:L(L≧1)のとき、全て入力がなしの場合と出力がなしの場合は除く。このため入力についての全組み合わせは2-1通り、出力についての全組み合わせは2-1通りとなる。そして入力と出力の全組み合わせは(2-1)×(2-1)通りとなる。学習手法をN通り使用する場合、最終的に生成されるモデル数はN×(2-1)×(2-1)となる。
【0025】
学習モデルセット生成部11は、生成した教師あり学習の学習モデルをひとつのファイルにまとめた学習モデルセットを生成し、学習モデルセット記憶部12に記憶する。図5に示すファイル名がAI_Sample1の学習モデルセットは、コンベアの張力値算出を目的とした教師あり学習の学習モデルの集合である。
【0026】
入力にデフォルト設定がある場合の教師あり学習の学習モデルの生成について、図6および図7を用いて説明する。図6に示す学習モデル作成画面では、図4の例と同様に「学習方法」の項目の学習方法1~学習方法4にそれぞれ、重回帰、K近傍法、ランダムフォレストおよびディープラーニングが設定されており、「特徴量」の項目の入力1~入力4にそれぞれ、送り速度、加速度、総運転時間および総運転距離が設定されている。また、出力1に張力がデフォルト設定されている。図6の例では、さらに入力1の送り速度および入力2の加速度がデフォルトに設定されている。
【0027】
図6に示すように学習モデル作成画面で設定が行われていた場合、図7に示すような学習モデルが生成される。入力を送り速度および加速度と、総運転時間および総運転距離の全通りとの組み合わせとし、出力を張力とする、重回帰、K近傍法、ランダムフォレストおよびディープラーニングの学習モデルがそれぞれ生成されている。出力1の張力はデフォルトに設定されているので、出力の張力はすべて「○」になっている。また、入力1の送り速度および入力2の加速度がデフォルトに設定されているので、図中、太線で囲んで示すように、送り速度および加速度はすべて「○」になっている。
【0028】
生成される学習モデルの全通りの組み合わせは理論上、次のとおりである。入力のデフォルト設定数をD(1≦D≦M)、出力のデフォルト設定数をE(1≦E≦L)とする。教師あり学習の場合、入力と出力は1つ以上必要なので、入力数:M(M≧1)、出力数:L(L≧1)のとき、入力は2M-D通り、出力は2L-E通りとなる。従って、入力と出力の全組み合わせは2M-D×2L-E通りである。学習方法をN通り使用する場合、生成される全モデル数はN×2M-D×2L-Eとなる。
【0029】
続いて、教師なし学習の学習モデルを生成する場合について説明する。図8に、教師なし学習の学習用データの具体例を示す。図8は、異常検知を目的とした教師なし学習の学習用データの例である。教師なし学習の学習用データは、入力のみのデータであり、CSVファイルといったテキスト形式になっている。図8の学習用データは、正常時(正解)の各種特徴量を入力とするデータである。
【0030】
ここで、教師なし学習の学習モデル作成画面について図9を用いて説明する。図9に示すように、「学習方法」の項目では、教師なし学習の学習方法が設定可能である。教師なし学習の場合、入力のみが必要であるので、「特徴量」の項目の出力の項目は使用しない。学習モデルは、入力に設定された特徴量と学習方法の全通りの組み合わせ分生成される。その他の構成は、図3に示す学習モデル作成画面と同様である。
【0031】
続いて、教師なし学習の学習モデルの生成方法について、図10および図11を用いて説明する。図10は、教師なし学習の学習方法および特徴量が設定された学習モデル作成画面の例である。学習モデル作成画面の「学習方法」の項目の学習方法1~学習方法3にそれぞれ、MT法(Mahalanobis-Taguchi method)、オートエンコーダおよび類似波形認識が設定されている。また、「特徴量」の項目の入力1~入力4にそれぞれ、振動センサ:速度、振動センサ:加速度、電流および温度が設定されている。振動センサ:速度および振動センサ:加速度はそれぞれ、振動センサによって検知された速度および加速度である。
【0032】
「インポート」ボタンが押下されると、学習モデルセット生成部11は、CSVファイルのヘッダを検索し、入力1~入力4に対応する振動センサ:速度、振動センサ:加速度、電流および温度の学習用データを読み込む。「生成開始」ボタンが押下されると、学習モデルセット生成部11は、読み込んだ学習用データに基づいて、学習方法1~学習方法3に対応する学習方法で学習を開始する。
【0033】
図10に示すように学習モデル作成画面で設定が行われていた場合、図11に示すような学習モデルが生成される。入力を振動センサ:速度、振動センサ:加速度、電流および温度の全通りの組み合わせとする、MT法、オートエンコーダおよび類似波形認識の学習モデルがそれぞれ生成されている。
【0034】
生成される学習モデルの全通りの組み合わせは理論上、次のとおりである。教師なし学習の場合、入力が1つ以上必要なので、入力数:M(M≧1)のとき、全て入力がなしの場合を除くため入力についての全組み合わせは2-1通り。学習手法をN通り使用する場合、最終的に生成されるモデル数はN×(2-1)となる。
【0035】
学習モデルセット生成部11は、生成した教師なし学習の学習モデルをひとつのファイルにまとめた学習モデルセットを生成し、学習モデルセット記憶部12に記憶する。図11に示すファイル名がAI_Sample2の学習モデルセットは、異常検知を目的とした教師なし学習の学習モデルの集合である。
【0036】
入力にデフォルト設定がある場合の教師なし学習の学習モデルの生成について、図12および図13を用いて説明する。図12に示す学習モデル作成画面では、図10の例と同様に「学習方法」の項目の学習方法1~学習方法3にそれぞれ、MT法、オートエンコーダおよび類似波形認識が設定されており、「特徴量」の項目の入力1~入力4にそれぞれ、振動センサ:速度、振動センサ:加速度、電流および温度が設定されている。また、図12の例では、入力1の振動センサ:速度および入力2の振動センサ:加速度がデフォルトに設定されている。
【0037】
図12に示すように学習モデル作成画面で設定が行われていた場合、図13に示すような学習モデルが生成される。入力を振動センサ:速度および振動センサ:加速度と、電流および温度の全通りとの組み合わせとする、MT法、オートエンコーダおよび類似波形認識の学習モデルがそれぞれ生成されている。入力1の振動センサ:速度および入力2の振動センサ:加速度がデフォルトに設定されているので、図中、太線で囲んで示すように、振動センサ:速度および振動センサ:加速度はすべて「○」になっている。
【0038】
生成される学習モデルの全通りの組み合わせは理論上、次のとおりである。入力のデフォルト設定数をD(1≦D≦M)とする。教師なし学習の場合、出力はなく、入力は1つ以上必要なので、入力数:M(M≧1)のとき、入力は2M-D通りとなる。従って、学習方法をN通り使用する場合、生成される全モデル数はN×2M-Dとなる。
【0039】
図1に戻り、評価パターン生成部13は、学習モデルセット記憶部12に記憶された学習モデルセットに含まれる学習モデルの性能を評価するためのテストを行い、テスト結果を評価する評価パターンを生成する。プログラム評価部14は、評価パターン生成部13が生成した評価パターンで学習モデルの性能の評価を行う。評価パターン生成部13は、ユーザによる学習モデルの評価パターンの設定を受け付けるモデル評価パターン作成画面を表示する。評価パターン生成部13は、評価パターン作成画面に入力された設定に基づいて、対象の学習モデルの性能を評価するモデル評価パターンを生成する。
【0040】
ここで、教師なし学習の学習モデルの評価パターン作成画面について図14を用いて説明する。図14に示す例では、評価パターン作成画面は、ユーザが評価対象の学習モデルを含む学習モデルセットを設定する「評価対象モデルセット」の項目と、学習モデルに入力するテストデータを設定する「テストデータ」の項目と、評価対象の学習モデルの学習方法を設定する「評価対象選択」の項目とを有する。「評価対象モデルセット」の項目に、異常検知を目的とした教師なし学習の学習モデルセットであるAI_Sample2が設定されている。「評価対象選択」の項目は、それぞれの学習方法について、テストの判定基準とテスト結果の評価指標を指定可能な判定基準評価指標選択画面がポップアップ表示されるボタンを有する。図14に示す判定基準評価指標選択画面では、異常と判定する閾値と、正解率、F値、LogLoss、AUC、RMSE、R2、MAE、MAPE、適合率および再現率とを設定可能である。図14の例では、MT法の正解率、F値、LogLossおよびAUCを評価する評価パターンが設定されている。「評価開始」ボタンが押下されると、学習モデルの性能の評価が開始される。
【0041】
プログラム評価部14は、評価パターン作成画面で設定された評価パターンで学習モデルの性能の評価を行う。図14に示すように評価パターン作成画面で設定が行われており、「評価開始」ボタンが押下されると、プログラム評価部14は、MT法の学習モデル、MT_model_01、MT_model_02、MT_model_03、および、MT_model_04に、テストデータTest1.csvを入力し、異常判定のテストを行う。図14の例では、MT_model_01、MT_model_02、MT_model_03、および、MT_model_04の異常検知のテスト結果のグラフを示している。MT_model_01、MT_model_02、および、MT_model_04では、異常を検知しており、MT_model_03では、異常を検知していない。プログラム評価部14は、異常を検知した学習モデルのテスト結果の正解率、F値、LogLossおよびAUCを算出して評価する。
【0042】
プログラム評価部14は、学習モデルの性能の評価を完了すると、図15に示すようなモデル評価結果画面を表示する。図15に示す例では、モデル評価結果画面は、MT_model_01、MT_model_02、および、MT_model_04の正解率、F値、LogLossおよびAUCの値がそれぞれ表示されている。異常を検知しなかったMT_model_03は評価対象から外されている。モデル評価結果画面は、プログラム部品に用いる学習モデルの集合である部品用モデルセットに採用する学習モデルを選択可能なチェックボックスを有する。図15に示す例では、MT_model_04が選択されている。モデル評価結果画面は、学習モデルの選択を決定する「決定」ボタンを備える。「決定」ボタンが押下されると、プログラム評価部14は、学習モデルの選択を決定してモデル評価結果画面を閉じる。
【0043】
続いて、教師あり学習の学習モデルの評価パターン作成画面について図16を用いて説明する。図16に示す評価パターン作成画面の例では、「評価対象モデルセット」の項目にコンベアの張力値算出を目的とした教師あり学習の学習モデルセットであるAI_Sample1が設定されている。図16に示す判定基準評価指標選択画面では、テストデータと学習モデルの出力値との誤差許容範囲、正解率、F値、LogLoss、AUC、RMSE、R2、MAE、MAPE、適合率および再現率を設定可能である。図16の例では、重回帰およびランダムフォレストのRMSE、R2、MAEおよびMAPEを評価する評価パターンが設定されている。「評価開始」ボタンが押下されると、学習モデルの性能の評価が開始される。
【0044】
プログラム評価部14は、評価パターン作成画面で設定された評価パターンで学習モデルの性能の評価を行う。図16に示すように評価パターン作成画面で設定が行われており、「評価開始」ボタンが押下されると、プログラム評価部14は、重回帰の学習モデル、Multi_model_01、Multi_model_02、および、Multi_model_03とランダムフォレストの学習モデルRF_model_01とに、テストデータTest2.csvを入力し、コンベアの張力値算出のテストを行う。図16の例では、Multi_model_01、Multi_model_02、および、Multi_model_03のコンベアの張力値算出のテスト結果のグラフを示している。グラフを図示していないが、RF_model_01についてもコンベアの張力値算出のテストを行う。プログラム評価部14は、各学習モデルのテスト結果のRMSE、R2、MAEおよびMAPEを算出して評価する。
【0045】
プログラム評価部14は、学習モデルの性能の評価を完了すると、図17に示すようなモデル評価結果画面を表示する。図17に示す例では、モデル評価結果画面は、Multi_model_01、Multi_model_02、Multi_model_03、および、RF_model_01のRMSE、R2、MAEおよびMAPEの値がそれぞれ表示されている。ここでは、全ての学習モデルが評価対象になっているが、テストデータと学習モデルの出力値との誤差が設定された閾値以上の値となった学習モデルは評価対象から外される。図17に示す例では、部品用モデルセットに採用する学習モデルとして、Multi_model_01、Multi_model_02、および、RF_model_01が選択されている。
【0046】
図15および図17の例では、モデル評価結果画面でユーザが部品用モデルセットに採用する学習モデルを選択したが、これに限らず、プログラム評価部14が予め決められた条件に従って、評価値の高い学習モデルを部品用モデルセットに採用してもよい。予め決められた条件とは、例えば、評価値が閾値以上の学習モデルを部品用モデルセットに採用するといった条件である。
【0047】
図1に戻り、プログラム評価部14は、モデル評価結果画面で選択された学習モデルをひとつのファイルにした部品用モデルセットを生成し、部品用モデルセット記憶部15に記憶する。プログラム部品生成部16は、制御プログラム内に学習モデルを追加するプログラム部品であって、部品用モデルセット記憶部15が記憶する部品用モデルセットを関連付けて、追加する学習モデルの特徴量と学習方法との組み合わせを切り替え可能なプログラム部品を生成する。制御プログラム生成部17は、プログラム部品を使用可能な制御プログラムの作成を受け付ける制御プログラム作成画面を表示する。制御プログラム生成部17は、制御プログラム作成画面に入力された内容に基づいて、制御プログラムを生成する。
【0048】
制御プログラム作成画面について図18および図19を用いて説明する。図18に示す制御プログラム作成画面の例では、部品用モデルセットのプログラム部品が左の領域に表示されている(図中、破線で囲んで示す)。ここでは、部品用モデルセットを抽出した元の学習モデルセットのファイル名がそのままプログラム部品名として使用されている。ユーザが制御プログラムを記述する右の領域上にプログラム部品名をドラッグアンドドロップすることで制御プログラム内にプログラム部品を追加可能である。プログラム部品名がドラッグアンドドロップされると、制御プログラム内にプログラム部品が追加され、特徴量と学習モデルとの組み合わせを切り替え可能なプログラム部品設定画面が表示される。制御プログラムにプログラム部品を追加する操作は、プログラム部品名をドラッグアンドドロップする操作に限らず、例えば、制御プログラム内のプログラム部品を追加したい場所がアクティブな状態で、プログラム部品名をクリックしたらプログラム部品設定画面が表示される構成にしてもよい。
【0049】
図19に示すように、ユーザがプログラム部品設定画面上で、特徴量と学習モデルとの組み合わせを切り替えると、制御プログラム生成部17は、シミュレーションを行い、下の領域にシミュレーション中の各特徴量の値を表示するプログラム部品モニタ画面を表示する。プログラム部品の学習方法および特徴量が設定されていない状態で最初に設定することも「切り替え」に含むものとする。
【0050】
ユーザは、プログラム部品設定画面上で、プログラム部品の学習方法および特徴量をそれぞれ切り替えることができる。このとき、ユーザは、学習方法および特徴量を選択してもよいし、学習モデルを選択してもよい。図19に示すプログラム部品設定画面の例では、AI_Sample1がSpeed、AccelerationおよびTensionをデフォルト設定して生成された学習モデルセットから抽出した部品用モデルセットであるため、これらの特徴量は選択不可になっている。
【0051】
プログラム部品の特徴量および学習方法はプログラム部品モニタ画面でも切り替え可能であり、プログラム部品設定画面と設定内容がリンクしている。ユーザは、プログラム部品の学習方法および特徴量をそれぞれ切り替え、プログラム部品モニタ画面を確認して、どの学習方法および特徴量を採用するかを決定する。
【0052】
図19に示すように、制御プログラム作成画面は、プログラム部品の学習モデルを選択する「モデル選択」ボタンと、制御プログラムの作成を完了する「完了」ボタンとを備える。「モデル選択」ボタンが押下されると、制御プログラム生成部17は、プログラム部品の学習モデルの選択を受け付ける学習モデル選択画面を表示する。
【0053】
学習モデル選択画面について図20を用いて説明する。図20に示す学習モデル選択画面の例では、ユーザは、AI_Sample1のプログラム部品の学習モデルとしてMulti_model_02、K_model_02およびK_model_04が、AI_Sample2のプログラム部品の学習モデルとしてRandam_model_01およびRandam_model_05が、AI_Sample3のプログラム部品の学習モデルとしてGB_model1、AE_model1およびWFR_modelが選択されている。学習モデル選択画面は、学習モデルの選択を中止する「キャンセル」ボタンと、プログラム部品の学習モデルの選択を決定する「決定」ボタンとを備える。「決定」ボタンが押下されると、制御プログラム生成部17は、各プログラム部品の学習モデルの選択を決定して学習モデル選択画面を閉じる。選択された学習モデルと対応するプログラム部品は1つのファイルにまとめられる。1つのファイル内に、選択された学習モデルと対応するプログラム部品をまとめたものを複数含むことも可能である。
【0054】
図19に戻り、制御プログラム作成画面で「完了」ボタンが押下されると、制御プログラム生成部17は、制御プログラム作成画面に入力された内容に基づいて、制御プログラムを生成する。
【0055】
図1に戻り、制御プログラム生成部17は、生成した制御プログラムを制御装置2にダウンロードさせる。このとき、制御プログラム生成部17は、制御プログラムとともに選択された学習モデルと対応するプログラム部品をまとめたファイルを制御装置2にダウンロードさせる。制御装置2のプログラム実行部221~22mは、選択された学習モデルと対応するプログラム部品をまとめたファイルを用いて、制御プログラムを実行する。なお、制御装置2が制御プログラムをダウンロードした後に、ユーザは、制御プログラム生成部17が表示する学習モデル選択画面上で、制御プログラム内のプログラム部品の学習モデルを変更することができる構成にしてもよい。この場合、制御プログラム生成部17は、学習モデル選択画面上で変更された学習モデルと対応するプログラム部品をまとめたファイルを制御装置2にダウンロードさせる。制御装置2は、ダウンロードした変更された学習モデルと対応するプログラム部品をまとめたファイルを用いて制御プログラム内の対応するプログラム部品の学習モデルを切り替える。
【0056】
ここで、プログラム作成支援装置1が実行するプログラム部品生成処理について、図21を用いて説明する。図21に示すプログラム部品生成処理は、例えば、プログラム作成支援装置1にプログラム部品生成指示が入力されると開始する。プログラム作成支援装置1の学習モデルセット生成部11は、ユーザによる学習モデルの設定を受け付ける学習モデル作成画面を表示する(ステップS11)。学習モデルの生成を開始する操作がされない場合(ステップS12;NO)、処理はステップS12を繰り返し、学習モデルの生成を開始する操作を待機する。学習モデルの生成を開始する操作がされた場合(ステップS12;YES)、学習モデルセット生成部11は、学習モデル作成画面に入力された設定に基づいて、学習モデルを生成する(ステップS13)。図3に示す教師あり学習の学習モデル作成画面および図9に示す教師なし学習の学習モデル作成画面の例では、ユーザが作成したい学習モデルの学習方法を設定する「学習方法」の項目と、入力および出力を設定する「特徴量」の項目と、生成するファイル名を設定する「生成するファイル」の項目と、学習データを読み込む「インポート」ボタンと、学習モデルの生成を開始する「生成開始」ボタンと、学習モデルの生成を中止する「キャンセル」ボタンとを有する。
【0057】
図21に戻り、学習モデルセット生成部11は、生成した学習モデルをひとつのファイルにした学習モデルセットを生成し(ステップS14)、学習モデルセット記憶部12に記憶する。例えば、図5に示すファイル名がAI_Sample1の学習モデルセットは、コンベアの張力値算出を目的とした教師あり学習の学習モデルの集合である。図11に示すファイル名がAI_Sample2の学習モデルセットは、異常検知を目的とした教師なし学習の学習モデルの集合である。
【0058】
図21に戻り、評価パターン生成部13は、ユーザによる学習モデルの評価パターンの設定を受け付けるモデル評価パターン作成画面を表示する(ステップS15)。評価を開始する操作がされない場合(ステップS16;NO)、処理はステップS16を繰り返し、評価を開始する操作を待機する。評価を開始する操作がされた場合(ステップS16;YES)、評価パターン生成部13は、評価パターン作成画面に入力された設定に基づいて、対象の学習モデルの性能を評価するモデル評価パターンを生成する(ステップS17)。図14に示す教師なし学習の学習モデルの評価パターン作成画面および図16に示す教師あり学習の学習モデルの評価パターン作成画面の例では、ユーザが評価したい対象の学習モデルを含む学習モデルセットを設定する「評価対象モデルセット」の項目と、学習モデルに入力するテストデータを設定する「テストデータ」の項目と、ユーザが評価したい対象の学習モデルの学習方法を設定する「評価対象選択」の項目とを有する。また、「評価対象選択」の項目は、それぞれの学習方法についてテストの判定基準とテスト結果の評価指標を指定可能な判定基準評価指標選択画面がポップアップ表示されるボタンを有する。
【0059】
図21に戻り、プログラム評価部14は、評価パターン生成部13が生成した評価パターンで学習モデルの性能の評価を行う(ステップS18)。プログラム評価部14は、学習モデルの性能の評価を完了すると、モデル評価結果画面を表示する(ステップS19)。図15に示す教師なし学習の学習モデルのモデル評価結果画面の例では、部品用モデルセットに採用する学習モデルとして、MT_model_04が選択されている。図17に示す教師あり学習の学習モデルのモデル評価結果画面の例では、部品用モデルセットに採用する学習モデルとして、Multi_model_01、Multi_model_02、および、RF_model_01が選択されている。図15および図17に示す例では、モデル評価結果画面は、学習モデルの選択を決定する「決定」ボタンを備える。「決定」ボタンが押下されると、プログラム評価部14は、学習モデルの選択を決定してモデル評価結果画面を閉じる。
【0060】
図21に戻り、学習モデルの選択を決定する操作がされない場合(ステップS20;NO)、処理はステップS20を繰り返し、学習モデルの選択を決定する操作を待機する。学習モデルの選択を決定する操作がされた場合(ステップS20;YES)、プログラム評価部14は、モデル評価結果画面で選択された学習モデルをひとつのファイルにした部品用モデルセットを生成し(ステップS21)、部品用モデルセット記憶部15に記憶する。プログラム部品生成部16は、部品用モデルセット記憶部15が記憶する部品用モデルセットを関連付けて、特徴量と学習方法との組み合わせを切り替え可能なプログラム部品を生成し(ステップS22)、処理を終了する。
【0061】
続いて、プログラム作成支援装置1が実行する制御プログラム生成処理について、図22を用いて説明する。図22に示す制御プログラム生成処理は、例えば、プログラム作成支援装置1に制御プログラム生成指示が入力されると開始する。プログラム作成支援装置1の制御プログラム生成部17は、プログラム部品を使用可能な制御プログラムの作成を受け付ける制御プログラム作成画面を表示する(ステップS31)。図18に示す制御プログラム作成画面の例では、部品用モデルセットのプログラム部品が左の領域に表示されている。図18の例では、制御プログラムを記述する右の領域上にプログラム部品名をドラッグアンドドロップする操作を行うことで制御プログラムにプログラム部品を追加可能である。
【0062】
図22に戻り、プログラム部品を追加する操作がされない場合(ステップS32;NO)、処理はステップS32を繰り返し、プログラム部品を追加する操作を待機する。プログラム部品を追加する操作がされた場合(ステップS32;YES)、制御プログラム生成部17は、制御プログラムにプログラム部品を追加し、特徴量と学習モデルとの組み合わせを切り替え可能なプログラム部品設定画面を表示する(ステップS33)。プログラム部品設定画面上で、特徴量と学習モデルとの組み合わせを切り替える操作がされない場合(ステップS34;NO)、処理はステップS34を繰り返し、特徴量と学習モデルとの組み合わせを切り替える操作を待機する。特徴量と学習モデルとの組み合わせを切り替える操作がされた場合(ステップS34;YES)、制御プログラム生成部17は、シミュレーションを行い、シミュレーション中の各特徴量の値を表示するプログラム部品モニタ画面を表示する(ステップS35)。図19の制御プログラム作成画面の例では、プログラム部品の特徴量および学習方法はプログラム部品モニタ画面でも切り替え可能であり、プログラム部品設定画面と設定内容がリンクしている。
【0063】
図22に戻り、制御プログラム生成部17は、学習モデル選択画面を表示する操作が行われない場合(ステップS36;NO)、処理はステップS36を繰り返し、学習モデル選択画面を表示する操作を待機する。学習モデル選択画面を表示する操作がされた場合(ステップS36;YES)、プログラム部品の学習モデルの選択を受け付ける学習モデル選択画面を表示する(ステップS37)。プログラム部品の学習モデルの選択を決定する操作がされていない場合(ステップS38;NO)、処理はステップS38を繰り返し、プログラム部品の学習モデルの選択を決定する操作を待機する。プログラム部品の学習モデルの選択を決定する操作がされた場合(ステップS38;YES)、制御プログラム生成部17は、プログラム部品の学習モデルを決定して(ステップS39)、学習モデル選択画面を閉じる。選択された学習モデルと対応するプログラム部品は1つのファイルにまとめられる。図20に示す例では、学習モデル選択画面は、学習モデルの選択を中止する「キャンセル」ボタンと、プログラム部品の学習モデルの選択を決定する「決定」ボタンとを備える。「決定」ボタンが押下されると、制御プログラム生成部17は、プログラム部品の学習モデルを決定して学習モデル選択画面を閉じる。
【0064】
図22に戻り、制御プログラムの作成が完了していない場合(ステップS40;NO)、処理はステップS32に戻り、ステップS32~ステップS40を繰り返す。制御プログラムの作成が完了した場合(ステップS40;YES)、制御プログラム生成部17は、制御プログラム作成画面に入力された内容に基づいて、制御プログラムを生成する(ステップS41)。制御プログラム生成部17は、生成した制御プログラムを制御装置2にダウンロードさせ(ステップS42)、処理を終了する。ステップS42で、制御プログラム生成部17は、制御プログラムとともに選択された学習モデルと対応するプログラム部品をまとめたファイルを制御装置2にダウンロードさせる。
【0065】
実施の形態に係るプログラム作成支援装置1によれば、制御プログラムの作成および修正において、制御プログラム内に追加する学習モデルの特徴量と学習方法との組み合わせを切り替えることが容易となり、工数を削減し、効率を向上させることができる。特に、制御プログラムのデバック時に、制御プログラム内の学習モデルの特徴量と学習方法との組み合わせを切り替えることが容易となることで、より効果を奏する。
【0066】
プログラム作成支援装置1のハードウェア構成について図23を用いて説明する。図23に示すように、プログラム作成支援装置1は、一時記憶部101、記憶部102、計算部103、入力部104、送受信部105および表示部106を備える。一時記憶部101、記憶部102、入力部104、送受信部105および表示部106はいずれもBUSを介して計算部103に接続されている。
【0067】
計算部103は、例えばCPU(Central Processing Unit)である。計算部103は、記憶部102に記憶されている制御プログラムに従って、プログラム作成支援装置1の学習モデルセット生成部11、評価パターン生成部13、プログラム評価部14、プログラム部品生成部16、および、制御プログラム生成部17の処理を実行する。
【0068】
一時記憶部101は、例えばRAM(Random-Access Memory)である。一時記憶部101は、記憶部102に記憶されている制御プログラムをロードし、計算部103の作業領域として用いられる。
【0069】
記憶部102は、フラッシュメモリ、ハードディスク、DVD-RAM(Digital Versatile Disc - Random Access Memory)、DVD-RW(Digital Versatile Disc - ReWritable)などの不揮発性メモリである。記憶部102は、プログラム作成支援装置1の処理を計算部103に行わせるためのプログラムを予め記憶し、また、計算部103の指示に従って、このプログラムが記憶するデータを計算部103に供給し、計算部103から供給されたデータを記憶する。プログラム作成支援装置1の学習モデルセット記憶部12および部品用モデルセット記憶部15は、記憶部102に構成される。
【0070】
入力部104は、キーボード、ポインティングデバイス、音声入力機器などの入力装置と、入力装置をBUSに接続するインターフェース装置である。入力部104を介して、ユーザが入力した情報が計算部103に供給される。入力部104は、学習モデルセット生成部11、評価パターン生成部13、プログラム評価部14、および、制御プログラム生成部17として機能する。
【0071】
送受信部105は、ネットワークに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインターフェースまたはLAN(Local Area Network)インターフェースである。プログラム作成支援装置1の制御プログラム生成部17が制御プログラムを制御装置2に送信する構成の場合、送受信部105は、制御プログラム生成部17として機能する。また、プログラム作成支援装置1の学習モデルセット生成部11が、収集データ記憶部3から収集データを受信する構成の場合、送受信部105は、学習モデルセット生成部11として機能する。
【0072】
表示部106は、LCD(Liquid Crystal Display)、有機EL(electroluminescence)ディスプレイなどの表示装置である。表示部106は、学習モデルセット生成部11、評価パターン生成部13、プログラム評価部14、および、制御プログラム生成部17として機能する。
【0073】
図1に示すプログラム作成支援装置1の学習モデルセット生成部11、学習モデルセット記憶部12、評価パターン生成部13、プログラム評価部14、部品用モデルセット記憶部15、プログラム部品生成部16、および、制御プログラム生成部17の処理は、制御プログラムが、一時記憶部101、計算部103、記憶部102、入力部104、送受信部105および表示部106などを資源として用いて処理することによって実行される。
【0074】
その他、前記のハードウェア構成およびフローチャートは一例であり、任意に変更および修正が可能である。
【0075】
計算部103、一時記憶部101、記憶部102、入力部104、送受信部105、表示部106などのプログラム作成支援装置1の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムを、フレキシブルディスク、CD-ROM(Compact Disc - Read Only Memory)、DVD-ROM(Digital Versatile Disc - Read Only Memory)などのコンピュータが読み取り可能な記録媒体に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するプログラム作成支援装置1を構成してもよい。また、インターネットに代表される通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロードすることでプログラム作成支援装置1を構成してもよい。
【0076】
また、プログラム作成支援装置1の機能を、OS(Operating System)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体、記憶装置に格納してもよい。
【0077】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して提供することも可能である。例えば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、通信ネットワークを介して前記コンピュータプログラムを提供してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できる構成にしてもよい。
【0078】
上記の実施の形態では、プログラム作成支援装置1は、学習モデルセット生成部11と、学習モデルセット記憶部12と、評価パターン生成部13と、プログラム評価部14と、部品用モデルセット記憶部15と、プログラム部品生成部16と、制御プログラム生成部17とを備えるが、これに限らず、評価パターン生成部13と、プログラム評価部14と、部品用モデルセット記憶部15とを備えない構成にしてもよい。この場合、プログラム部品生成部16は、学習モデルセット記憶部12が記憶する学習モデルセットを関連付けて、特徴量と学習方法との組み合わせを切り替え可能なプログラム部品を生成する。ユーザはプログラム部品モニタ画面を確認することで、性能が低い学習モデルを除外することができる。
【0079】
上記の実施の形態では、プログラム作成支援装置1が制御プログラム生成部17を備えるが、これに限らず、制御プログラム生成部17は、外部の装置またはシステムが備えてもよい。
【0080】
上記の実施の形態では、プログラム作成支援装置1は、学習モデルセット記憶部12および部品用モデルセット記憶部15を備えるが、これに限らず、学習モデルセット記憶部12および部品用モデルセット記憶部15を外部の装置またはシステムが備えてもよい。また、収集データ記憶部3をプログラム作成支援装置1または制御装置2が備えてもよい。
【0081】
上記の実施の形態では、プログラム作成支援装置1の学習モデルセット生成部11が、データの形式を変換したり、不要な情報を削除したりして、収集データを学習用データに変換する前処理を行うが、これに限らず、この前処理を制御装置2のデータ収集部211~21nが行って、学習用データを収集データ記憶部3に記憶してもよい。
【0082】
上記の実施の形態では、特徴量が異なる類似の学習方法として、教師あり学習と、教師なし学習とを例として説明したが、これに限らない。例えば、特徴量が異なる類似の学習方法に強化学習を含んでもよい。
【0083】
上記の実施の形態では、プログラム作成支援装置1が、学習モデル作成画面、モデル評価パターン作成画面、制御プログラム作成画面、および、学習モデル選択画面を表示し、ユーザからの直接入力を受け付けたが、これに限らない。例えば、プログラム作成支援装置1は、ユーザが使用するユーザ端末に、学習モデル作成画面、モデル評価パターン作成画面、制御プログラム作成画面および学習モデル選択画面を送信して表示させてもよい。この場合、ユーザは、ユーザ端末に表示された各画面に情報を入力し、入力された情報をユーザ端末がプログラム作成支援装置1に送信する。
【0084】
以上、好ましい実施の形態について詳説したが、上述した実施の形態に制限されることはなく、特許請求の範囲に記載された範囲を逸脱することなく、上述した実施の形態に種々の変形及び置換を加えることができる。
【0085】
なお、本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。即ち、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。
【符号の説明】
【0086】
1 プログラム作成支援装置、2 制御装置、3 収集データ記憶部、4 外部機器、11 学習モデルセット生成部、12 学習モデルセット記憶部、13 評価パターン生成部、14 プログラム評価部、15 部品用モデルセット記憶部、16 プログラム部品生成部、17 制御プログラム生成部、100 プログラム作成支援システム、101 一時記憶部、102 記憶部、103 計算部、104 入力部、105 送受信部、106 表示部、211~21n データ収集部、221~22m プログラム実行部。
【要約】
コンピュータを、入力されたパラメータに対して処理を行って値を出力するモデルを生成し、パラメータが異なる類似の処理を行う複数のモデルをひとつのファイルにしたモデルセットを生成する学習モデルセット生成部(11)、および、対象のプログラム内にモデルを追加するプログラム部品であって、モデルセットを関連付けて、追加するモデルのパラメータと処理方法との組み合わせを切り替え可能なプログラム部品を生成するプログラム部品生成部(16)、として機能させるプログラム作成支援プログラム。
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23