(57)【要約】【課題】ユーザが一連の操作で使用する操作画面を予測し、ロードする操作画面のデータ量を抑えること。【解決手段】機械学習装置は、産業機械を制御する制御装置の表示部の操作画面において一連の操作により使用された各操作画面の画面種類データと当該操作画面の表示時の機械状態の機械状態データとを含む状態ベクトルのうち、一連の操作又は機械状態の変化により操作画面が遷移した状態ベクトルの集合の状態ベクトル列を取得する状態観測部と、当該状態ベクトル列で任意の状態ベクトルを先頭とするＮ個の連続する状態ベクトルの状態ベクトル部分列を入力データとし、当該状態ベクトル部分列の末尾の状態ベクトルの操作画面の次以降の画面種類データをラベルデータとする訓練データを取得する訓練データ取得部と、当該訓練データで教師あり機械学習を行い、ユーザが次以降に使用する画面種類データを予測する学習済みモデルを生成する学習部と、を備える。【選択図】図１
2020177264.tif 000002
【特許請求の範囲】
【請求項１】
産業機械を制御する制御装置の表示部に表示される操作画面に基づいてユーザが一連の操作を行う場合に前記ユーザにより使用された各操作画面の画面種類を示す画面種類データｙｎと当該操作画面の表示されたときの前記制御装置により制御される前記産業機械の機械状態を示す機械状態データｚｎとを含む状態ベクトルｘｎとし、
前記ユーザの一連の操作又は前記機械状態の変化に対応する操作画面の遷移に対応する前記状態ベクトルｘｎの集合となる時系列データである状態ベクトル列｛ｘｎ：ｎ≧１｝を取得する状態観測部と、
前記状態観測部により取得される前記状態ベクトル列に含まれる、任意の状態ベクトルｘｎ（ｎ≧１）を先頭とする予め設定されたＮ個（Ｎ≧２）の連続する状態ベクトル部分列｛ｘｎ、ｘｎ＋１、・・・ｘｎ＋Ｎ−１｝を入力データとし、
前記入力データの状態ベクトル部分列の末尾の状態ベクトルｘｎ＋Ｎ−１に対応する操作画面の次に表示される画面の種類を示す画面種類データｙｎ＋Ｎ−１を含む前記操作画面の次以降に表示される画面の画面種類データをラベルデータとする訓練データを取得する訓練データ取得部と、
前記入力データとラベルデータとを訓練データとして教師あり機械学習を行い、前記ユーザが前記表示部に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡りＮ個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、前記ユーザが次以降に使用する画面種類データを予測するための学習済みモデルを生成する学習部と、
を備える機械学習装置。
【請求項２】
前記学習部は、リカレントニューラルネットワークを用いて、前記一連の操作の流れを機械学習する、請求項１に記載の機械学習装置。
【請求項３】
前記リカレントニューラルネットワークとして、入力・出力・忘却ゲート付きＲＮＮであるＬＳＴＭ（Ｌｏｎｇ Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）を適用する、請求項２に記載の機械学習装置。
【請求項４】
前記ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルｘｎ（ｎ≧Ｎ）から過去に遡りＮ個の連続する状態ベクトルを含む状態ベクトル部分列｛ｘｎ−Ｎ＋１、・・・ｘｎ｝を取得する状態取得部と、
請求項１から請求項３のいずれか１項に記載の機械学習装置により生成された前記学習済みモデルに基づいて、前記状態取得部により取得された状態ベクトル部分列｛ｘｎ−Ｎ＋１、・・・ｘｎ｝から、前記ユーザが次以降に使用する操作画面の画面種類データを予測する予測部と、
を備える画面予測装置。
【請求項５】
前記学習済みモデルを備える、請求項４に記載の画面予測装置。
【請求項６】
請求項１から請求項３のいずれか１項に記載の機械学習装置を備える、請求項５に記載の画面予測装置。
【請求項７】
前記学習済みモデルを、前記画面予測装置からネットワークを介してアクセス可能に接続されるサーバに備える、
請求項４に記載の画面予測装置。
【請求項８】
請求項４から請求項７のいずれか１項に記載の画面予測装置により予測される、前記ユーザが次以降に使用する操作画面の画面種類データに対応する画面データをロードする画面データロード部を備える、制御装置。
【請求項９】
請求項４から請求項７のいずれか１項に記載の画面予測装置を備える、請求項８に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習装置、画面予測装置、及び制御装置に関する。
【背景技術】
【０００２】
工作機械を制御する数値制御装置は、追加される機能の増加に伴い、液晶ディスプレイ等の出力装置に表示する情報量そしてこれに伴い操作画面の種類も増加している。このため、ユーザが画面の切り替えを頻繁に行う必要が生じ、切り替え時間の増加は、現場のユーザの生産性に悪影響を与えている。
そこで、数値制御装置は、画面表示処理で使用する全ての操作画面の画面データを、装置立ち上げ時にＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリにロードすることにより、画面切り替えの高速化を図っている。
しかしながら、操作画面自身の高機能化により操作画面のデータサイズが増加し、制御装置の立ち上げ時間が増加している。これにより、機械調整時における電源の入れ直し等において待ち時間が生じてしまうため、機械調整時の生産性が低下するという問題がある。また、一度も使用しない操作画面の画面データもロードされるため、画面データ用に確保したメモリが不足する可能性が高くなる。
そこで、ロードする操作画面のデータ量の抑える方法として、操作画面がマルチウィンドウの場合、子ウィンドウの画面データを、親ウィンドウの表示時に予めロードする方法が知られている。あるいは、コンピュータゲームのように、所定の作業まで終了した時点で、次の作業を開始するにあたり、プログラムで定められた次の操作画面の画面データをロードする方法が知られている。
また、加工における加工状態を示す情報、及び選択されたメニュー項目を示す情報を含む状態データに基づいて、メニュー表示におけるメニュー項目の表示順を決定する機械学習の技術が知られている。あるいは、操作者を検知し、検知した操作者の情報に基づいた操作メニューの表示を学習する機械学習の技術が知られている。例えば、特許文献１、２参照。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６２９０８３５号
【特許文献２】特開２０１７−１３８８８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、操作画面のそれぞれは、用途が想定されており、例えば、「手動操作」、「編集操作」、「自動運転」、「アラーム発生」等の状態毎に分けることができる。しかしながら、「手動操作」から「自動運転」や、「手動操作」又は「自動運転」から「アラーム発生」等のように、状態は動的に切り替わり、すなわち、操作画面の切り替わりは、工作機械の状態に依存している。また、操作画面の切り替わりは、表示・操作に関する機械設計や、工場毎の工作機械の運用ルール等にも依存している。このため、操作画面の表示の順序を予め決定することは困難なことがある。
【０００５】
そこで、予めロードする対象の操作画面のデータを限定することにより、ロードする操作画面のデータ量を抑えるため、ユーザが一連の操作で使用する操作画面を予測することが望まれている。
【課題を解決するための手段】
【０００６】
（１）本開示の機械学習装置の一態様は、産業機械を制御する制御装置の表示部に表示される操作画面に基づいてユーザが一連の操作を行う場合に前記ユーザにより使用された各操作画面の画面種類を示す画面種類データｙｎと当該操作画面の表示されたときの前記制御装置により制御される前記産業機械の機械状態を示す機械状態データｚｎとを含む状態ベクトルｘｎとし、前記ユーザの一連の操作又は前記機械状態の変化に対応する操作画面の遷移に対応する前記状態ベクトルｘｎの集合となる時系列データである状態ベクトル列｛ｘｎ：ｎ≧１｝を取得する状態観測部と、前記状態観測部により取得される前記状態ベクトル列に含まれる、任意の状態ベクトルｘｎ（ｎ≧１）を先頭とする予め設定されたＮ個（Ｎ≧２）の連続する状態ベクトル部分列｛ｘｎ、ｘｎ＋１、・・・ｘｎ＋Ｎ−１｝を入力データとし、前記入力データの状態ベクトル部分列の末尾の状態ベクトルｘｎ＋Ｎ−１に対応する操作画面の次に表示される画面の種類を示す画面種類データｙｎ＋Ｎ−１を含む前記操作画面の次以降に表示される画面の画面種類データをラベルデータとする訓練データを取得する訓練データ取得部と、前記入力データとラベルデータとを訓練データとして教師あり機械学習を行い、前記ユーザが前記表示部に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡りＮ個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、前記ユーザが次以降に使用する画面種類データを予測するための学習済みモデルを生成する学習部と、を備える。
【０００７】
（２）前記ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルｘｎ（ｎ≧Ｎ）から過去に遡りＮ個の連続する状態ベクトルを含む状態ベクトル部分列｛ｘｎ−Ｎ＋１、・・・ｘｎ｝を取得する状態取得部と、（１）の機械学習装置により生成された前記学習済みモデルに基づいて、前記状態取得部により取得された状態ベクトル部分列｛ｘｎ−Ｎ＋１、・・・ｘｎ｝から、前記ユーザが次以降に使用する操作画面の画面種類データを予測する予測部と、を備える。
【０００８】
（３）（２）の画面予測装置の一態様は、（１）の機械学習装置を備える。
【０００９】
（４）本開示の制御装置の一態様は、（２）又は（３）の画面予測装置を備える。
【発明の効果】
【００１０】
一態様によれば、ユーザが一連の操作で使用する操作画面を予測し、予めロードする対象の操作画面のデータを予測された操作画面のデータに限定することで、ロードする操作画面のデータ量を抑えることができる。
【図面の簡単な説明】
【００１１】
【図１】一の実施形態に係る数値制御システムの機能的構成例を示す機能ブロック図である。
【図２】状態ベクトル列に含まれる状態ベクトルの一例を示す図である。
【図３】図１の機械学習装置による学習済みモデルの生成処理の一例を説明する図である。
【図４】一の実施形態に係るＲＮＮの構成を模式的に示す図である。
【図５】運用フェーズにおける数値制御システムの画面予測処理について説明するフローチャートである。
【図６】学習済みモデルの一例を示す図である。
【図７】学習済みモデルの一例を示す図である。
【図８】次以降の３回先までの操作画面の画面種類データを予測する学習済みモデルの一例を示す図である。
【図９】数値制御システムの構成の一例を示す図である。
【図１０】数値制御システムの構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、一の実施形態について図面を用いて説明する。
＜一の実施形態＞
図１は、一の実施形態に係る数値制御システムの機能的構成例を示す機能ブロック図である。図１に示すように、数値制御システムは、工作機械１００、制御装置２００、機械学習装置３００、及び画面予測装置４００を有する。
工作機械１００、制御装置２００、機械学習装置３００、及び画面予測装置４００は、図示しない接続インタフェースを介して互いに直接接続されてもよい。また、工作機械１００、制御装置２００、機械学習装置３００、及び画面予測装置４００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット等の図示しないネットワークを介して相互に接続されてもよい。
【００１３】
工作機械１００は、制御装置２００の数値制御により動作する加工用の機械である。工作機械１００は、制御装置２００の動作指令に基づく動作状態を示す情報を、制御装置２００にフィードバックする。
なお、本実施形態は、工作機械１００に限定されず、産業機械全般に広く適用することができる。産業機械とは、例えば、工作機械、産業用ロボット、サービス用ロボット、鍛圧機械及び射出成形機といった様々な機械を含む。
制御装置２００は、当業者にとって公知の数値制御装置であり、工作機械１００の動作を制御する。なお、工作機械１００がロボット等の場合、制御装置２００は、ロボット制御装置等でもよい。
なお、以下の説明では、制御装置２００により制御される工作機械１００の状態は、単に「機械状態」ともいう。
【００１４】
画面予測装置４００は、コンピュータ装置等である。画面予測装置４００は、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応した現在の状態ベクトルから過去に遡り予め設定されたＮ個（Ｎ≧２）の連続する状態ベクトルを含む状態ベクトル部分列を取得する。画面予測装置４００は、取得した状態ベクトル部分列を、後述する機械学習装置３００により生成された学習済みモデルに入力することにより、ユーザが次以降に使用する操作画面の画面種類データを予測する。そして、画面予測装置４００は、予測結果を制御装置２００に出力する。
これにより、制御装置２００は、画面予測装置４００により予測された次以降の画面種類データが示す操作画面の画面データのみをロードすればよく、予めロードする操作画面のデータ量を抑えることができる。
【００１５】
画面予測装置４００を説明する前に、学習済みモデルを生成するための機械学習について説明する。
＜学習フェーズにおける制御装置２００＞
制御装置２００は、学習フェーズにおいて、機械学習を行うために必要となる教師データを収集する。このため、制御装置２００は、表示部２１２に表示される操作画面に基づいてユーザが一連の操作を行う場合に、ユーザにより使用された各操作画面の画面種類を示す画面種類データと当該操作画面の表示されたときの機械状態を示す機械状態データとを含むデータを状態ベクトルとして取得する。制御装置２００は、取得した状態ベクトルを記憶するとともに、取得した状態ベクトルを図示しない通信部を介して機械学習装置３００に出力する。
【００１６】
学習フェーズにおける制御装置２００は、表示部２１２と、記憶部２１３と、を備える。
【００１７】
表示部２１２は、例えば、液晶ディスプレイ等であり、ユーザの操作に応じて操作画面を表示する。
記憶部２１３は、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
記憶部２１３は、ユーザにより使用された各操作画面の画面種類を示す画面種類データと、当該操作画面の表示されたときの機械状態を示す機械状態データとを記憶するデータ領域２２０を有する。また、記憶部２１３は、Ｍ個の操作画面の画面データ２３０（１）−２３０（Ｍ）を記憶する（Ｍは２以上の整数）。
【００１８】
＜機械学習装置３００＞
機械学習装置３００は、例えば、図示しない通信部を介して、制御装置２００の記憶部２１３に記憶されている画面種類データと機械状態データとを取得する。機械学習装置３００は、例えば、取得した画面種類データと機械状態データとを、後述するようにｏｎｅ−ｈｏｔ表現にして結合した状態ベクトルにベクトル化してもよい。機械学習装置３００は、ベクトル化した状態ベクトルのうち、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応する状態ベクトルの集合を、時系列データである状態ベクトル列として取得してもよい。
また、機械学習装置３００は、当該状態ベクトル列に含まれる、任意の状態ベクトルを先頭とするＮ個（Ｎ≧２）の連続する状態ベクトル部分列を入力データとして取得してもよい。機械学習装置３００は、取得した入力データの状態ベクトル部分列の末尾の状態ベクトルに対応する操作画面の次に表示される操作画面の種類を示す画面種類データを含む次以降に表示される操作画面の画面種類データをラベルデータとして取得してもよい。
機械学習装置３００は、取得した入力データとラベルデータとを訓練データとして教師あり機械学習をして、ユーザが表示部２１２に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡りＮ個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、ユーザが次以降に使用する画面種類データを予測する学習済みモデルを生成してもよい。
そうすることで、機械学習装置３００は、画面予測装置４００に対して学習済みモデル３５０を提供することができる。
機械学習装置３００について、具体的に説明する。
なお、以下では、特に断らない限り、「Ｎ」は「３」とし、ユーザが「次に」使用する画面種類データを予測する場合について説明する。ただし、「Ｎ」は２や４以上の値でもよい。また、画面予測装置４００は、ユーザが次以降（例えば、次も含む２回先や３回先）に使用する画面種類データを予測してもよい。
また、機械学習装置３００による学習処理は、ユーザの一連の操作時、又は機械状態の変化時に、バックグラウンドタスクかサブプロセッサ等で実行されてもよい。
【００１９】
機械学習装置３００は、図１に示すように、状態ベクトル化部３１１、状態観測部３１２、訓練データ取得部３１３、学習部３１４、及び記憶部３１５を有する。
【００２０】
状態ベクトル化部３１１は、学習フェーズにおいて、図示しない通信部を介して、制御装置２００から画面種類データｙｎと機械状態データｚｎとを取得する。状態ベクトル化部３１１は、取得した画面種類データｙｎと機械状態データｚｎとを、後述するようにｏｎｅ−ｈｏｔ表現にして結合した状態ベクトルｘｎにベクトル化する。
状態観測部３１２は、ベクトル化された状態ベクトルｘｎのうち、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応する前記状態ベクトルｘｎの集合を、時系列データである状態ベクトル列｛ｘｎ：ｎ≧１｝として取得する。状態観測部３１２は、取得した状態ベクトル列を訓練データ取得部３１３及び記憶部３１５に出力する。
図２は、状態ベクトル列に含まれる状態ベクトルｘｎの一例を示す図である。図２に示すように、状態ベクトルｘ１、ｘ２、ｘ３…は、ユーザによる操作又は機械状態の変化によって、時間ｔ１、ｔ２、ｔ３…においてユーザにより使用された操作画面の画面種類データｙｎ、及び機械状態データｚｎの成分を有する。さらに、状態ベクトルｘ１、ｘ２、ｘ３…の機械状態データｚｎは、後述するモードとアラームの成分を有する。
【００２１】
ここで、画面種類データｙｎには、「手動操作」、「編集操作」、「自動運転」、「アラーム発生」等の状態毎に様々な種類がある。例えば、「手動操作」の場合には、一時的な短いＮＣプログラムを入力する「ＭＤＩプログラム」、ワーク、工具の大きさを計測する「計測」、工具中心点から刃先までの距離を設定する「工具オフセット」、及び機械の原点とワークの原点までの距離を設定する「ワーク原点オフセット」等の操作画面がある。また、「編集操作」の場合には、自動運転用ＮＣプログラムを編集する「プログラム編集」や、機械を止めたままＮＣプログラムを実行し、工具軌跡とワーク形状をグラフィカルに描画する「切削シミュレーション」等の操作画面がある。また、「自動運転」の場合には、自動運転用ＮＣプログラムを編集する「プログラム編集」、工具位置の座標を表示する「工具位置表示」、実行中のＮＣプログラムの内容を表示する「プログラムチェック」、実行中のＮＣプログラムに対し、工具軌跡とワーク形状をグラフィカルに描画する「加工中描画」、モータにかかる切削負荷をパーセント表示する「ロードメータ」等の操作画面がある。また、「アラーム」の場合には、ＣＮＣ内の内部の状態を表示する「診断」、ＣＮＣの各種パラメータを入力する「パラメータ」、アラームメッセージを表示する「アラームメッセージ」、「アラーム履歴を表示する「アラーム履歴」等の操作画面がある。
【００２２】
また、機械状態データｚｎの「モード」には、ＭＤＩプログラムの編集及び実行、データ手動入力する「ＭＤＩ」、自動運転用のＮＣプログラムを編集可にする「ＥＤＩＴ」、ＮＣプログラムを自動運転する「ＭＥＭ（ＡＵＴＯ）」、ハンドル操作による軸送りする「ＨＡＮＤＬＥ」、ボタン操作による軸送りする「ＪＯＧ」、原点復帰する「ＲＥＦＥＲＥＮＣＥ」、及び外部機器上のＮＣプログラムを実行する「ＲＥＭＯＴＥ（ＴＡＰＥ）」がある。
また、機械状態データｚｎの「アラーム」には、ＮＣプログラムのエラーである「Ｐ／Ｓアラーム」、制限値を超えて軸が移動した「オーバトラベルアラーム」、制御装置又はモータがオーバヒート状態を示す「オーバヒートアラーム」、サーボモータ関連のアラームであるサーボアラーム」、スピンドルモータ関連のアラームである「スピンドルモータアラーム」、機器メーカ定義のアラームである「外部アラーム」等がある。
なお、機械状態データｚｎの「アラーム」は、機械状態が変化した時に表示部２１２に表示される操作画面が遷移する場合の一例である。また、「アラーム」には、例えば、定期メンテナンスの通知や、ソフトウェアの更新通知を知らせるポップアップ表示の種類も含まれてもよい。
また、後述するように、機械状態データｚｎには、モードとアラームとともに、運転状態や信号を有してもよい。
【００２３】
図２に示すように、例えば、モードが「ＭＤＩ」で、アラームがない機械状態において、時間ｔ１にユーザの操作により、表示部２１２の操作画面が「工具位置表示」の画面から「プログラムチェック」の画面に遷移した場合、状態ベクトルｘ１の画面種類データｙ１は、ｏｎｅ−ｈｏｔ表現により「工具位置表示」の画面の成分（例えば１番目の成分）が「１」に、他の操作画面の成分が「０」となる。また、状態ベクトルｘ１の機械状態データｚ１の「モード」は、ｏｎｅ−ｈｏｔ表現により「ＭＤＩ」の成分（例えば３番目の成分）が「１」に、他のモードの成分が「０」となる。また、状態ベクトルｘ１の機械状態データｚ１の「アラーム」は、ｏｎｅ−ｈｏｔ表現により「アラーム無し」の成分（例えば最後の成分）が「１」に、他のアラームの成分が「０」となる。
次の時間ｔ２では、モードが「ＭＤＩ」でアラームがない状態のままで、ユーザの操作により表示部２１２の操作画面が「プログラムチェック」の画面から「ロードメータ」の画面に遷移した場合、状態ベクトルｘ２の画面種類データｙ２は、ｏｎｅ−ｈｏｔ表現により「プログラムチェック」の画面の成分（例えば２番目の成分）が「１」に、他の操作画面の成分が「０」となる。さらに、時間ｔ３では、モードが「ＭＤＩ」でアラームがない状態のままで、ユーザの操作により表示部２１２の操作画面が「ロードメータ」の画面から「加工中描画」の画面に遷移した場合、状態ベクトルｘ３の画面種類データｙ３は、ｏｎｅ−ｈｏｔ表現により「ロードメータ」の画面の成分（例えば３番目の成分）が「１」、他の操作画面の成分が「０」となる。なお、状態ベクトルｘ２、ｘ３の機械状態データｚ２、ｚ３のモード及びアラームの各成分は、状態ベクトルｘ１の機械状態データｚ１と同様である。
【００２４】
訓練データ取得部３１３は、取得された状態ベクトル列に含まれる、任意の状態ベクトルｘｎ（ｎ≧１）を先頭とする３つの連続する状態ベクトル部分列｛ｘｎ、ｘｎ＋１、ｘｎ＋２｝を入力データとして取得する。
また、訓練データ取得部３１３は、入力データの状態ベクトル部分列の末尾の状態ベクトルｘｎ＋２に対応する操作画面の次に表示される操作画面の種類を示す画面種類データｙｎ＋２をラベルデータとして取得する。訓練データ取得部３１３は、取得した入力データ及びラベルデータを、記憶部３１５に出力する。
【００２５】
学習部３１４は、記憶部３１５に記憶された入力データとラベルデータとを訓練データとして教師あり機械学習をして、ユーザが表示部２１２に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡り３個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、ユーザが次に使用する画面種類データを予測する学習済みモデル３５０を生成する。
図３は、図１の機械学習装置３００による学習済みモデル３５０の生成処理の一例を説明する図である。
図３に示すように、学習済みモデル３５０は、例えば、現在の時間ｔ０に対応する状態ベクトルｘｐ０から過去に遡る３つの連続する状態ベクトルを含む状態ベクトル部分列｛ｘｐ−２、ｘｐ−１、ｘｐ０｝を入力層とし、入力層の各ベクトルを入力するＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）１０（１）−１０（３）を中間層とし、ユーザが次に使用する画面種類データｙｐ０を出力層とする。なお、状態ベクトルｘｐ−１は、直近の画面操作の遷移時における画面種類データ及び機械状態データを示す。また、状態ベクトルｘｐ−２は、状態ベクトルｘｐ−１の時より１つ前の操作画面の遷移時における画面種類データ及び機械状態データを示す。
なお、以下、ＲＮＮ１０（１）−１０（３）のそれぞれを個々に区別する必要がない場合、これらをまとめて「ＲＮＮ１０」ともいう。
図４は、本実施形態に係るＲＮＮ１０の構成を模式的に示す図である。図４に示すように、中間層における各パーセプトロンの出力が、自身のパーセプトロン及び同じ層のパーセプトロンに入力されている。
【００２６】
学習部３１４は、学習済みモデル３５０のＲＮＮ１０における重みベクトル等のパラメータを最適化するために、状態ベクトル部分列｛ｘ１、ｘ２、ｘ３｝、｛ｘ２、ｘ３、ｘ４｝・・・｛ｘＮ−２、ｘＮ−１、ｘＮ｝の入力データと、画面種類データｙ３、ｙ４・・・ｙＮのラベルデータとの訓練データを、記憶部３１５から受け付ける。学習部３１４は、状態ベクトル部分列｛ｘｐ−２、ｘｐ−１、ｘｐ０｝及び画面種類データｙｐ０に替えて、受け付けた訓練データを用いて、例えば、周知の誤差逆伝播法による教師あり学習を行う。この教師あり学習により、学習部３１４は、ＲＮＮ１０における重みベクトル等のパラメータを最適化し、学習済みモデル３５０を生成する。
なお、学習部３１４は、上記教師あり学習を、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、教師データが作成される都度、即座に教師あり学習を行うという学習方法である。また、バッチ学習とは、教師データが作成されることが繰り返される間に、繰り返しに応じた複数の教師データを収集し、収集した全ての教師データを用いて、教師あり学習を行うという学習方法である。さらに、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度教師データが溜まるたびに教師あり学習を行うという学習方法である。
そして、学習部３１４は、最適化された学習済みモデル３５０を画面予測装置４００に対して提供する。
【００２７】
なお、学習部３１４は、学習済みモデル３５０を生成した後に、新たな教師データを取得した場合には、学習済みモデル３５０に対してさらに教師あり学習を行うことにより、一度生成した学習済みモデル３５０を更新するようにしてもよい。
記憶部３１５は、ＳＳＤやＨＤＤ等であり、状態観測部３１２により取得された状態ベクトル列と、訓練データ取得部３１３により取得された入力データ及びラベルデータと、学習部３１４により生成された学習済みモデル３５０等を記憶する。
以上、画面予測装置４００が備える学習済みモデル３５０を生成するための機械学習について説明した。
次に、画面予測装置４００について説明する。
【００２８】
＜画面予測装置４００＞
図１に示すように、画面予測装置４００は、状態取得部４１１、予測部４１２、及び記憶部４１３を含んで構成される。
【００２９】
状態取得部４１１は、運用フェーズにおいて、制御装置２００から画面種類データｙｎと機械状態データｚｎとを取得する。状態取得部４１１は、取得した画面種類データｙｎと機械状態データｚｎとをｏｎｅ−ｈｏｔ表現にして結合した状態ベクトルｘｎにベクトル化する。状態取得部４１１は、ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルｘｎから過去に遡り３つの連続する状態ベクトルの状態ベクトル部分列｛ｘｎ−２、ｘｎ−１、ｘｎ｝を、状態ベクトル部分列｛ｘｐ−２、ｘｐ−１、ｘｐ０｝として取得する。
予測部４１２は、記憶部４１３に記憶された学習済みモデル３５０に基づいて、状態取得部４１１により取得された状態ベクトル部分列｛ｘｐ−２、ｘｐ−１、ｘｐ０｝から、ユーザが次に使用する操作画面の画面種類データｙｐ０を予測する。予測部４１２は、予測結果を制御装置２００に出力する。
記憶部４１３は、ＲＡＭ等であり、機械学習装置３００により生成された学習済みモデル３５０を記憶する。
【００３０】
＜運用フェーズにおける制御装置２００＞
図１に示すように、運用フェーズにおける制御装置２００は、画面データロード部２１１、表示部２１２、及び記憶部２１３を含んで構成される。ここで、表示部２１２及び記憶部２１３は、学習フェーズで説明したとおりである。
画面データロード部２１１は、図示しない通信部を介して、画面予測装置４００により予測されたユーザが次に使用する操作画面の画面種類データｙｐ０を取得する。画面データロード部２１１は、取得した画面種類データｙｐ０に対応する操作画面の画面データ２３０を記憶部２１３から図示しないＲＡＭ等にロードする。
なお、画面データロード部２１１は、予測された画面種類データｙｐ０の操作画面の画面データ２３０をロードした後、ユーザにより別の操作画面が選択された場合、選択された別の操作画面の画面データ２３０を記憶部２１３からロードし、予測された画面種類データｙｐ０の操作画面の画面データ２３０をＲＡＭからアンロードしてもよい。
【００３１】
＜運用フェーズにおける数値制御システムの画面予測処理＞
次に、本実施形態に係る数値制御システムの画面予測処理に係る動作について説明する。
なお、画面予測装置４００による予測処理及び制御装置２００によるローディング処理は、ユーザの一連の操作時、又は機械状態の変化時に、バックグラウンドタスクかサブプロセッサ等で実行されてもよい。
図５は、運用フェーズにおける数値制御システムの画面予測処理について説明するフローチャートである。
ステップＳ１１において、画面予測装置４００の状態取得部４１１は、制御装置２００から取得した画面種類データｙｎと機械状態データｚｎとに基づいて、現在の状態ベクトルｘｎから過去に遡り３つの連続する状態ベクトルの状態ベクトル部分列｛ｘｎ−２、ｘｎ−１、ｘｎ｝を、状態ベクトル部分列｛ｘｐ−２、ｘｐ−１、ｘｐ０｝として取得する。
【００３２】
ステップＳ１２において、画面予測装置４００の予測部４１２は、ステップＳ１１で取得された状態ベクトル部分列｛ｘｐ−２、ｘｐ−１、ｘｐ０｝を学習済みモデル３５０に入力し、ユーザが次に使用する操作画面の画面種類データｙｐ０を予測する。
【００３３】
ステップＳ１３において、制御装置２００の画面データロード部２１１は、ステップＳ１２で予測された画面種類データｙｐ０に対応する操作画面の画面データ２３０を記憶部２１３から図示しないＲＡＭ等にロードする。
【００３４】
以上により、一の実施形態に係る画面予測装置４００は、ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルから過去に遡り３つの連続する状態ベクトルの状態ベクトル部分列を、学習済みモデル３５０に入力することで、ユーザの一連の操作の流れを考慮した上で、ユーザが少なくとも次に使用する操作画面を予測することができる。これにより、画面予測装置４００は、制御装置２００がロードする操作画面のデータ量を最小限に抑えることができる。また、画面予測装置４００は、機械状態や、表示・操作に関する機械設計、工場毎の工作機械１００の運用ルール等に応じた、最適な操作画面を予測することができる。
【００３５】
以上、一の実施形態について説明したが、制御装置２００、機械学習装置３００、画面予測装置４００は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等が含まれる。
【００３６】
＜変形例１＞
上述の実施形態では、機械学習装置３００は、制御装置２００及び画面予測装置４００と異なる装置として例示したが、機械学習装置３００の一部又は全部の機能を、制御装置２００や画面予測装置４００が備えるようにしてもよい。
【００３７】
＜変形例２＞
上述の実施形態では、画面予測装置４００は、制御装置２００と異なる装置として例示したが、画面予測装置４００の一部又は全部の機能を、制御装置２００が備えるようにしてもよい。
あるいは、画面予測装置４００の状態取得部４１１、予測部４１２、及び記憶部４１３の一部又は全部を、例えば、サーバが備えるようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、画面予測装置４００の各機能を実現してもよい。
さらに、画面予測装置４００は、画面予測装置４００の各機能を適宜複数のサーバに分散される、分散処理システムとしてもよい。
【００３８】
＜変形例３＞
また例えば、上述の実施形態では、図３の学習済みモデル３５０は、中間層に、３つのＲＮＮ１０の１層で構成されたが、これに限定されない。学習済みモデル３５０は、図６に示すように、ＲＮＮ１０Ａ（１）−１０Ａ（３ｋ）を用いて、３つ１組を１層とする複数の層が配置された中間層を有し、深層学習化されてもよい（ｋは２以上の整数）。これにより、画面予測装置４００は、図３の場合と比べて過去の状態ベクトルの画面種類データと機械状態データの特徴をより正確に捉えることができ、より精度良く次の操作画面の画面種類データを予測することができる。なお、ＲＮＮ１０Ａ（１）−１０Ａ（３ｋ）の各々は、図３のＲＮＮ１０に対応する。
あるいは、学習済みモデル３５０は、図６に示すように、図３のＲＮＮ１０（１）−１０（３）に替えて、入力・出力・忘却ゲート付きＲＮＮであるＬＳＴＭ（Ｌｏｎｇ Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）２０（１）−２０（３）が中間層に配置されてもよい。この場合、学習済みモデル３５０の中間層には、ＬＳＴＭ２０（１）−２０（３）とともに、全結合層３０及びａｒｇｍａｘ４０が配置される。ａｒｇｍａｘ４０は、全結合層３０より出力された複数の画面種類データのうち、最も確率値が高い画面種類データを画面種類データｙｐ０として出力する。これにより、画面予測装置４００は、図３の場合と比べて過去の状態ベクトルの画面種類データと機械状態データの特徴をより正確に捉えることができ、より精度良く次の操作画面の画面種類データを予測することができる。なお、図６では、ＬＭＳＴ２０の数は、３つとしたが１以上の数でもよい。
【００３９】
＜変形例４＞
また例えば、上述の実施形態では、画面予測装置４００は、ユーザが次に使用する操作画面を予測したが、ユーザが次以降に使用する操作画面を予測してもよい。
図８は、次以降の３回先までの操作画面の画面種類データｙｐ０、ｙｐ１、ｙｐ２を予測する学習済みモデル３５０の一例を示す図である。図８に示すように、学習済みモデル３５０は、現在の状態ベクトルｘｐ０から過去に遡る３つの連続する状態ベクトルを含む状態ベクトル部分列｛ｘｐ−２、ｘｐ−１、ｘｐ０｝を入力層とし、ＲＮＮ１０Ｂ（１）−１０Ｂ（５）を中間層とし、ユーザが次以降の３回先までに使用する画面種類データｙｐ０、ｙｐ１、ｙｐ２を出力層とする。
この場合、機械学習装置３００は、状態ベクトル部分列｛ｘ１、ｘ２、ｘ３｝、｛ｘ２、ｘ３、ｘ４｝・・・｛ｘＮ−２、ｘＮ−１、ｘＮ｝の入力データと、画面種類データ｛ｙ３、ｙ４、ｙ５｝、｛ｙ４、ｙ５、ｙ６｝・・・｛ｙＮ−２、ｙＮ−１、ｙＮ｝のラベルデータとを、訓練データとして記憶部３１５から受け付け、教師あり学習を行う。
なお、ＲＮＮ１０Ｂ（１）−１０Ｂ（５）の各々は、図３のＲＮＮ１０に対応する。
【００４０】
＜変形例５＞
また例えば、上述の実施形態では、画面予測装置４００は、機械学習装置３００により生成された学習済みモデル３５０を用いて、ユーザが次に使用する操作画面を予測したが、これに限定されない。例えば、図９に示すように、サーバ５００は、機械学習装置３００により生成された学習済みモデル３５０を記憶し、ネットワーク５０に接続されたｍ個の画面予測装置４００Ａ（１）−４００Ａ（ｍ）と学習済みモデル３５０を共有してもよい（ｍは２以上の整数）。これにより、新たな工作機械、制御装置、及び画面予測装置が配置されても学習済みモデル３５０を適用することができる。
なお、画面予測装置４００Ａ（１）−４００Ａ（ｍ）の各々は、制御装置２００Ａ（１）−２００Ａ（ｍ）の各々と接続され、制御装置２００Ａ（１）−２００Ａ（ｍ）の各々は、工作機械１００Ａ（１）−１００Ａ（ｍ）の各々と接続される。
また、工作機械１００Ａ（１）−１００Ａ（ｍ）の各々は、図１の工作機械１００に対応する。制御装置２００Ａ（１）−２００Ａ（ｍ）の各々は、図１の制御装置２００に対応する。画面予測装置４００Ａ（１）−４００Ａ（ｍ）の各々は、図１の画面予測装置４００に対応する。
あるいは、図１０に示すように、サーバ５００は、例えば、画面予測装置４００として動作し、ネットワーク５０に接続された同一工場内の制御装置２００Ａ（１）−２００Ａ（ｍ）の各々に対して、ユーザが次以降に使用する操作画面の画面種類データを予測してもよい。これにより、新たな工作機械及び制御装置が配置されても学習済みモデル３５０を適用することができる。
【００４１】
＜変形例６＞
また例えば、上述の実施形態では、機械状態データｚｎは、モードとアラームを有したが、モードとアラームとともに、前述したように運転状態や信号を有してもよい。
なお、機械状態データｚｎの「運転状態」には、例えば、ＮＣプログラムを実行している状態を示す「ＳＴＡＲＴ（起動状態）」、運転を終了し停止している状態を示す「ＳＴＯＰ（停止状態）」、実行する指令が残っているにも関わらず運転を中断し休止している状態を示す「ＨＯＬＤ（休止状態）」、初期状態、あるいは非常停止又はリセットボタンが押された状態を示す「ＲＥＳＥＴ（リセット状態）」等がある。
また、機械状態データｚｎの「信号」には、Ｘ、Ｙ、Ｚのどの軸・方向（±）を動かすかを決定する「ＪＯＧ送り軸方向選択」、Ｘ、Ｙ、Ｚのどの軸・方向（±）を動かすかを決定する「ハンドル送り軸選択」、ＮＣプログラムを１行実行後停止させる「シングルブロック」等がある。
【００４２】
なお、一の実施形態における、制御装置２００、機械学習装置３００、及び画面予測装置４００に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００４３】
制御装置２００に含まれる各構成部は、（電子回路等を含む）ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ（数値制御装置１）にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。また、ハードウェアで構成する場合、上記の制御装置に含まれる各構成部の機能の一部又は全部を、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ゲートアレイ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等の集積回路（ＩＣ）で構成することができる。
【００４４】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（Ｎｏｎ-ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（Ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（Ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【００４５】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００４６】
以上を換言すると、本開示の機械学習装置、画面予測装置、及び制御装置は、次のような構成を有する各種各様の実施形態を取ることができる。
（１）本開示の機械学習装置３００は、産業機械（工作機械１００）を制御する制御装置２００の表示部２１２に表示される操作画面に基づいてユーザが一連の操作を行う場合にユーザにより使用された各操作画面の画面種類を示す画面種類データｙｎと当該操作画面の表示されたときの制御装置２００により制御される産業機械の機械状態を示す機械状態データｚｎとを含む状態ベクトルｘｎとし、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応する状態ベクトルｘｎの集合となる時系列データである状態ベクトル列｛ｘｎ：ｎ≧１｝を取得する状態観測部３１２と、状態観測部３１２により取得される状態ベクトル列に含まれる、任意の状態ベクトルｘｎ（ｎ≧１）を先頭とする予め設定されたＮ個（Ｎ≧２）の連続する状態ベクトル部分列｛ｘｎ、ｘｎ＋１、・・・ｘｎ＋Ｎ−１｝を入力データとし、入力データの状態ベクトル部分列の末尾の状態ベクトルｘｎ＋Ｎ−１に対応する操作画面の次に表示される画面の種類を示す画面種類データｙｎ＋Ｎ−１を含む操作画面の次以降に表示される画面の画面種類データをラベルデータとする訓練データを取得する訓練データ取得部３１３と、入力データとラベルデータとを訓練データとして教師あり機械学習を行い、ユーザが表示部２１２に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡りＮ個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、ユーザが次以降に使用する画面種類データを予測するための学習済みモデル３５０を生成する学習部３１４と、を備える。
この機械学習装置３００によれば、ユーザが次以降に使用する操作画面を予測し、制御装置２００がロードする対象の操作画面のデータを予測した操作画面のデータに限定することで、ロードする画面のデータ量を最小限に抑えるための、学習済みモデル３５０を生成することができる。
【００４７】
（２）学習部３１４は、リカレントニューラルネットワーク（ＲＮＮ１０）を用いて、一連の前記操作の流れを機械学習してもよい。
そうすることで、機械学習装置３００は、一連の操作の流れに応じてユーザが次以降に使用する操作画面の画面種類データを予測できる学習済みモデル３５０を生成することができる。
【００４８】
（３）リカレントニューラルネットワークとして、入力・出力・忘却ゲート付きＲＮＮであるＬＳＴＭ２０を適用してもよい。
そうすることで、機械学習装置３００は、より精度良くユーザが次以降に使用する操作画面の画面種類データを予測できる学習済みモデル３５０を生成することができる。
【００４９】
（４）本開示の画面予測装置４００は、ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルｘｎ（ｎ≧Ｎ）から過去に遡りＮ個の連続する状態ベクトルを含む状態ベクトル部分列｛ｘｎ−Ｎ＋１、・・・ｘｎ｝を取得する状態取得部４１１と、機械学習装置３００により生成された学習済みモデル３５０に基づいて、状態取得部４１１により取得された状態ベクトル部分列｛ｘｎ−Ｎ＋１、・・・ｘｎ｝から、ユーザが次以降に使用する操作画面の画面種類データを予測する予測部４１２と、を備える。
この画面予測装置４００によれば、ユーザが次以降に使用する操作画面を予測し、制御装置２００がロードする対象の操作画面のデータを予測した操作画面のデータに限定することで、ロードする画面のデータ量を最小限に抑えることができる。
【００５０】
（５）（４）の画面予測装置４００は、学習済みモデル３５０を備えてもよい。
そうすることで、上述の（４）と同様の効果を奏することができる。
【００５１】
（６）画面予測装置４００は、機械学習装置３００を備えてもよい。
そうすることで、上述の（１）から（５）のいずれかと同様の効果を奏することができる。
【００５２】
（７）（４）の画面予測装置４００は、学習済みモデル３５０を、画面予測装置４００からネットワーク５０を介してアクセス可能に接続されるサーバ５００に備えてもよい。
そうすることで、新たな工作機械１００、制御装置２００、及び画面予測装置４００が配置されても学習済みモデル３５０を適用することができる。
【００５３】
（８）本開示の制御装置２００は、画面予測装置４００により予測される、ユーザが次以降に使用する操作画面の画面種類データに対応する画面データをロードする画面データロード部を備える。
この制御装置２００によれば、ロードする対象の操作画面のデータを予測した操作画面のデータに限定することで、ロードする画面のデータ量を最小限に抑えることができる。
【００５４】
（９）（８）の制御装置２００は、画面予測装置４００を備えてもよい。
そうすることで、上述の（８）と同様の効果を奏することができる。
【符号の説明】
【００５５】
１００  工作機械
２００  制御装置
２１１  画面データロード部
３００  機械学習装置
３１１  状態ベクトル化部
３１２  状態観測部
３１４  学習部
３５０  学習済みモデル
４００  画面予測装置
４１１  状態取得部
４１２  予測部
【図１】
2020177264.tif 000003
【図２】
2020177264.tif 000004
【図３】
2020177264.tif 000005
【図４】
2020177264.tif 000006
【図５】
2020177264.tif 000007
【図６】
2020177264.tif 000008
【図７】
2020177264.tif 000009
【図８】
2020177264.tif 000010
【図９】
2020177264.tif 000011
【図１０】
2020177264.tif 000012