(58)【調査した分野】(Int.Cl.,DB名)
産業機械を制御する制御装置の表示部に表示される操作画面に基づいてユーザが一連の操作を行う場合に前記ユーザにより使用された各操作画面の画面種類を示す画面種類データynと当該操作画面の表示されたときの前記制御装置により制御される前記産業機械の機械状態を示す機械状態データznとを含む状態ベクトルxnとし、
前記ユーザの一連の操作又は前記機械状態の変化に対応する操作画面の遷移に対応する前記状態ベクトルxnの集合となる時系列データである状態ベクトル列{xn:n≧1}を取得する状態観測部と、
前記状態観測部により取得される前記状態ベクトル列に含まれる、任意の状態ベクトルxn(n≧1)を先頭とする予め設定されたN個(N≧2)の連続する状態ベクトル部分列{xn、xn+1、・・・xn+N−1}を入力データとし、
前記入力データの状態ベクトル部分列の末尾の状態ベクトルxn+N−1に対応する操作画面の次に表示される画面の種類を示す画面種類データyn+N−1を含む前記操作画面の次以降に表示される画面の画面種類データをラベルデータとする訓練データを取得する訓練データ取得部と、
前記入力データとラベルデータとを訓練データとして教師あり機械学習を行い、前記ユーザが前記表示部に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡りN個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、前記ユーザが次以降に使用する画面種類データを予測するための学習済みモデルを生成する学習部と、
を備える機械学習装置。
前記リカレントニューラルネットワークとして、入力・出力・忘却ゲート付きRNNであるLSTM(Long Short−Term Memory)を適用する、請求項2に記載の機械学習装置。
請求項4から請求項7のいずれか1項に記載の画面予測装置により予測される、前記ユーザが次以降に使用する操作画面の画面種類データに対応する画面データをロードする画面データロード部を備える、制御装置。
【発明を実施するための形態】
【0012】
以下、一の実施形態について図面を用いて説明する。
<一の実施形態>
図1は、一の実施形態に係る数値制御システムの機能的構成例を示す機能ブロック図である。
図1に示すように、数値制御システムは、工作機械100、制御装置200、機械学習装置300、及び画面予測装置400を有する。
工作機械100、制御装置200、機械学習装置300、及び画面予測装置400は、図示しない接続インタフェースを介して互いに直接接続されてもよい。また、工作機械100、制御装置200、機械学習装置300、及び画面予測装置400は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して相互に接続されてもよい。
【0013】
工作機械100は、制御装置200の数値制御により動作する加工用の機械である。工作機械100は、制御装置200の動作指令に基づく動作状態を示す情報を、制御装置200にフィードバックする。
なお、本実施形態は、工作機械100に限定されず、産業機械全般に広く適用することができる。産業機械とは、例えば、工作機械、産業用ロボット、サービス用ロボット、鍛圧機械及び射出成形機といった様々な機械を含む。
制御装置200は、当業者にとって公知の数値制御装置であり、工作機械100の動作を制御する。なお、工作機械100がロボット等の場合、制御装置200は、ロボット制御装置等でもよい。
なお、以下の説明では、制御装置200により制御される工作機械100の状態は、単に「機械状態」ともいう。
【0014】
画面予測装置400は、コンピュータ装置等である。画面予測装置400は、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応した現在の状態ベクトルから過去に遡り予め設定されたN個(N≧2)の連続する状態ベクトルを含む状態ベクトル部分列を取得する。画面予測装置400は、取得した状態ベクトル部分列を、後述する機械学習装置300により生成された学習済みモデルに入力することにより、ユーザが次以降に使用する操作画面の画面種類データを予測する。そして、画面予測装置400は、予測結果を制御装置200に出力する。
これにより、制御装置200は、画面予測装置400により予測された次以降の画面種類データが示す操作画面の画面データのみをロードすればよく、予めロードする操作画面のデータ量を抑えることができる。
【0015】
画面予測装置400を説明する前に、学習済みモデルを生成するための機械学習について説明する。
<学習フェーズにおける制御装置200>
制御装置200は、学習フェーズにおいて、機械学習を行うために必要となる教師データを収集する。このため、制御装置200は、表示部212に表示される操作画面に基づいてユーザが一連の操作を行う場合に、ユーザにより使用された各操作画面の画面種類を示す画面種類データと当該操作画面の表示されたときの機械状態を示す機械状態データとを含むデータを状態ベクトルとして取得する。制御装置200は、取得した状態ベクトルを記憶するとともに、取得した状態ベクトルを図示しない通信部を介して機械学習装置300に出力する。
【0016】
学習フェーズにおける制御装置200は、表示部212と、記憶部213と、を備える。
【0017】
表示部212は、例えば、液晶ディスプレイ等であり、ユーザの操作に応じて操作画面を表示する。
記憶部213は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)等である。
記憶部213は、ユーザにより使用された各操作画面の画面種類を示す画面種類データと、当該操作画面の表示されたときの機械状態を示す機械状態データとを記憶するデータ領域220を有する。また、記憶部213は、M個の操作画面の画面データ230(1)−230(M)を記憶する(Mは2以上の整数)。
【0018】
<機械学習装置300>
機械学習装置300は、例えば、図示しない通信部を介して、制御装置200の記憶部213に記憶されている画面種類データと機械状態データとを取得する。機械学習装置300は、例えば、取得した画面種類データと機械状態データとを、後述するようにone−hot表現にして結合した状態ベクトルにベクトル化してもよい。機械学習装置300は、ベクトル化した状態ベクトルのうち、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応する状態ベクトルの集合を、時系列データである状態ベクトル列として取得してもよい。
また、機械学習装置300は、当該状態ベクトル列に含まれる、任意の状態ベクトルを先頭とするN個(N≧2)の連続する状態ベクトル部分列を入力データとして取得してもよい。機械学習装置300は、取得した入力データの状態ベクトル部分列の末尾の状態ベクトルに対応する操作画面の次に表示される操作画面の種類を示す画面種類データを含む次以降に表示される操作画面の画面種類データをラベルデータとして取得してもよい。
機械学習装置300は、取得した入力データとラベルデータとを訓練データとして教師あり機械学習をして、ユーザが表示部212に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡りN個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、ユーザが次以降に使用する画面種類データを予測する学習済みモデルを生成してもよい。
そうすることで、機械学習装置300は、画面予測装置400に対して学習済みモデル350を提供することができる。
機械学習装置300について、具体的に説明する。
なお、以下では、特に断らない限り、「N」は「3」とし、ユーザが「次に」使用する画面種類データを予測する場合について説明する。ただし、「N」は2や4以上の値でもよい。また、画面予測装置400は、ユーザが次以降(例えば、次も含む2回先や3回先)に使用する画面種類データを予測してもよい。
また、機械学習装置300による学習処理は、ユーザの一連の操作時、又は機械状態の変化時に、バックグラウンドタスクかサブプロセッサ等で実行されてもよい。
【0019】
機械学習装置300は、
図1に示すように、状態ベクトル化部311、状態観測部312、訓練データ取得部313、学習部314、及び記憶部315を有する。
【0020】
状態ベクトル化部311は、学習フェーズにおいて、図示しない通信部を介して、制御装置200から画面種類データy
nと機械状態データz
nとを取得する。状態ベクトル化部311は、取得した画面種類データy
nと機械状態データz
nとを、後述するようにone−hot表現にして結合した状態ベクトルx
nにベクトル化する。
状態観測部312は、ベクトル化された状態ベクトルx
nのうち、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応する前記状態ベクトルx
nの集合を、時系列データである状態ベクトル列{x
n:n≧1}として取得する。状態観測部312は、取得した状態ベクトル列を訓練データ取得部313及び記憶部315に出力する。
図2は、状態ベクトル列に含まれる状態ベクトルx
nの一例を示す図である。
図2に示すように、状態ベクトルx
1、x
2、x
3…は、ユーザによる操作又は機械状態の変化によって、時間t
1、t
2、t
3…においてユーザにより使用された操作画面の画面種類データy
n、及び機械状態データz
nの成分を有する。さらに、状態ベクトルx
1、x
2、x
3…の機械状態データz
nは、後述するモードとアラームの成分を有する。
【0021】
ここで、画面種類データy
nには、「手動操作」、「編集操作」、「自動運転」、「アラーム発生」等の状態毎に様々な種類がある。例えば、「手動操作」の場合には、一時的な短いNCプログラムを入力する「MDIプログラム」、ワーク、工具の大きさを計測する「計測」、工具中心点から刃先までの距離を設定する「工具オフセット」、及び機械の原点とワークの原点までの距離を設定する「ワーク原点オフセット」等の操作画面がある。また、「編集操作」の場合には、自動運転用NCプログラムを編集する「プログラム編集」や、機械を止めたままNCプログラムを実行し、工具軌跡とワーク形状をグラフィカルに描画する「切削シミュレーション」等の操作画面がある。また、「自動運転」の場合には、自動運転用NCプログラムを編集する「プログラム編集」、工具位置の座標を表示する「工具位置表示」、実行中のNCプログラムの内容を表示する「プログラムチェック」、実行中のNCプログラムに対し、工具軌跡とワーク形状をグラフィカルに描画する「加工中描画」、モータにかかる切削負荷をパーセント表示する「ロードメータ」等の操作画面がある。また、「アラーム」の場合には、CNC内の内部の状態を表示する「診断」、CNCの各種パラメータを入力する「パラメータ」、アラームメッセージを表示する「アラームメッセージ」、「アラーム履歴を表示する「アラーム履歴」等の操作画面がある。
【0022】
また、機械状態データz
nの「モード」には、MDIプログラムの編集及び実行、データ手動入力する「MDI」、自動運転用のNCプログラムを編集可にする「EDIT」、NCプログラムを自動運転する「MEM(AUTO)」、ハンドル操作による軸送りする「HANDLE」、ボタン操作による軸送りする「JOG」、原点復帰する「REFERENCE」、及び外部機器上のNCプログラムを実行する「REMOTE(TAPE)」がある。
また、機械状態データz
nの「アラーム」には、NCプログラムのエラーである「P/Sアラーム」、制限値を超えて軸が移動した「オーバトラベルアラーム」、制御装置又はモータがオーバヒート状態を示す「オーバヒートアラーム」、サーボモータ関連のアラームであるサーボアラーム」、スピンドルモータ関連のアラームである「スピンドルモータアラーム」、機器メーカ定義のアラームである「外部アラーム」等がある。
なお、機械状態データz
nの「アラーム」は、機械状態が変化した時に表示部212に表示される操作画面が遷移する場合の一例である。また、「アラーム」には、例えば、定期メンテナンスの通知や、ソフトウェアの更新通知を知らせるポップアップ表示の種類も含まれてもよい。
また、後述するように、機械状態データz
nには、モードとアラームとともに、運転状態や信号を有してもよい。
【0023】
図2に示すように、例えば、モードが「MDI」で、アラームがない機械状態において、時間t
1にユーザの操作により、表示部212の操作画面が「工具位置表示」の画面から「プログラムチェック」の画面に遷移した場合、状態ベクトルx
1の画面種類データy
1は、one−hot表現により「工具位置表示」の画面の成分(例えば1番目の成分)が「1」に、他の操作画面の成分が「0」となる。また、状態ベクトルx
1の機械状態データz
1の「モード」は、one−hot表現により「MDI」の成分(例えば3番目の成分)が「1」に、他のモードの成分が「0」となる。また、状態ベクトルx
1の機械状態データz
1の「アラーム」は、one−hot表現により「アラーム無し」の成分(例えば最後の成分)が「1」に、他のアラームの成分が「0」となる。
次の時間t
2では、モードが「MDI」でアラームがない状態のままで、ユーザの操作により表示部212の操作画面が「プログラムチェック」の画面から「ロードメータ」の画面に遷移した場合、状態ベクトルx
2の画面種類データy
2は、one−hot表現により「プログラムチェック」の画面の成分(例えば2番目の成分)が「1」に、他の操作画面の成分が「0」となる。さらに、時間t
3では、モードが「MDI」でアラームがない状態のままで、ユーザの操作により表示部212の操作画面が「ロードメータ」の画面から「加工中描画」の画面に遷移した場合、状態ベクトルx
3の画面種類データy
3は、one−hot表現により「ロードメータ」の画面の成分(例えば3番目の成分)が「1」、他の操作画面の成分が「0」となる。なお、状態ベクトルx
2、x
3の機械状態データz
2、z
3のモード及びアラームの各成分は、状態ベクトルx
1の機械状態データz
1と同様である。
【0024】
訓練データ取得部313は、取得された状態ベクトル列に含まれる、任意の状態ベクトルx
n(n≧1)を先頭とする3つの連続する状態ベクトル部分列{x
n、x
n+1、x
n+2}を入力データとして取得する。
また、訓練データ取得部313は、入力データの状態ベクトル部分列の末尾の状態ベクトルx
n+2に対応する操作画面の次に表示される操作画面の種類を示す画面種類データy
n+2をラベルデータとして取得する。訓練データ取得部313は、取得した入力データ及びラベルデータを、記憶部315に出力する。
【0025】
学習部314は、記憶部315に記憶された入力データとラベルデータとを訓練データとして教師あり機械学習をして、ユーザが表示部212に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡り3個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、ユーザが次に使用する画面種類データを予測する学習済みモデル350を生成する。
図3は、
図1の機械学習装置300による学習済みモデル350の生成処理の一例を説明する図である。
図3に示すように、学習済みモデル350は、例えば、現在の時間t
0に対応する状態ベクトルxp
0から過去に遡る3つの連続する状態ベクトルを含む状態ベクトル部分列{xp
−2、xp
−1、xp
0}を入力層とし、入力層の各ベクトルを入力するRNN(Recurrent Neural Network)10(1)−10(3)を中間層とし、ユーザが次に使用する画面種類データyp
0を出力層とする。なお、状態ベクトルxp
−1は、直近の画面操作の遷移時における画面種類データ及び機械状態データを示す。また、状態ベクトルxp
−2は、状態ベクトルxp
−1の時より1つ前の操作画面の遷移時における画面種類データ及び機械状態データを示す。
なお、以下、RNN10(1)−10(3)のそれぞれを個々に区別する必要がない場合、これらをまとめて「RNN10」ともいう。
図4は、本実施形態に係るRNN10の構成を模式的に示す図である。
図4に示すように、中間層における各パーセプトロンの出力が、自身のパーセプトロン及び同じ層のパーセプトロンに入力されている。
【0026】
学習部314は、学習済みモデル350のRNN10における重みベクトル等のパラメータを最適化するために、状態ベクトル部分列{x
1、x
2、x
3}、{x
2、x
3、x
4}・・・{x
N−2、x
N−1、x
N}の入力データと、画面種類データy
3、y
4・・・y
Nのラベルデータとの訓練データを、記憶部315から受け付ける。学習部314は、状態ベクトル部分列{xp
−2、xp
−1、xp
0}及び画面種類データy
p0に替えて、受け付けた訓練データを用いて、例えば、周知の誤差逆伝播法による教師あり学習を行う。この教師あり学習により、学習部314は、RNN10における重みベクトル等のパラメータを最適化し、学習済みモデル350を生成する。
なお、学習部314は、上記教師あり学習を、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、教師データが作成される都度、即座に教師あり学習を行うという学習方法である。また、バッチ学習とは、教師データが作成されることが繰り返される間に、繰り返しに応じた複数の教師データを収集し、収集した全ての教師データを用いて、教師あり学習を行うという学習方法である。さらに、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度教師データが溜まるたびに教師あり学習を行うという学習方法である。
そして、学習部314は、最適化された学習済みモデル350を画面予測装置400に対して提供する。
【0027】
なお、学習部314は、学習済みモデル350を生成した後に、新たな教師データを取得した場合には、学習済みモデル350に対してさらに教師あり学習を行うことにより、一度生成した学習済みモデル350を更新するようにしてもよい。
記憶部315は、SSDやHDD等であり、状態観測部312により取得された状態ベクトル列と、訓練データ取得部313により取得された入力データ及びラベルデータと、学習部314により生成された学習済みモデル350等を記憶する。
以上、画面予測装置400が備える学習済みモデル350を生成するための機械学習について説明した。
次に、画面予測装置400について説明する。
【0028】
<画面予測装置400>
図1に示すように、画面予測装置400は、状態取得部411、予測部412、及び記憶部413を含んで構成される。
【0029】
状態取得部411は、運用フェーズにおいて、制御装置200から画面種類データy
nと機械状態データz
nとを取得する。状態取得部411は、取得した画面種類データy
nと機械状態データz
nとをone−hot表現にして結合した状態ベクトルx
nにベクトル化する。状態取得部411は、ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルx
nから過去に遡り3つの連続する状態ベクトルの状態ベクトル部分列{x
n−2、x
n−1、x
n}を、状態ベクトル部分列{xp
−2、xp
−1、xp
0}として取得する。
予測部412は、記憶部413に記憶された学習済みモデル350に基づいて、状態取得部411により取得された状態ベクトル部分列{xp
−2、xp
−1、xp
0}から、ユーザが次に使用する操作画面の画面種類データyp
0を予測する。予測部412は、予測結果を制御装置200に出力する。
記憶部413は、RAM等であり、機械学習装置300により生成された学習済みモデル350を記憶する。
【0030】
<運用フェーズにおける制御装置200>
図1に示すように、運用フェーズにおける制御装置200は、画面データロード部211、表示部212、及び記憶部213を含んで構成される。ここで、表示部212及び記憶部213は、学習フェーズで説明したとおりである。
画面データロード部211は、図示しない通信部を介して、画面予測装置400により予測されたユーザが次に使用する操作画面の画面種類データyp
0を取得する。画面データロード部211は、取得した画面種類データyp
0に対応する操作画面の画面データ230を記憶部213から図示しないRAM等にロードする。
なお、画面データロード部211は、予測された画面種類データyp
0の操作画面の画面データ230をロードした後、ユーザにより別の操作画面が選択された場合、選択された別の操作画面の画面データ230を記憶部213からロードし、予測された画面種類データyp
0の操作画面の画面データ230をRAMからアンロードしてもよい。
【0031】
<運用フェーズにおける数値制御システムの画面予測処理>
次に、本実施形態に係る数値制御システムの画面予測処理に係る動作について説明する。
なお、画面予測装置400による予測処理及び制御装置200によるローディング処理は、ユーザの一連の操作時、又は機械状態の変化時に、バックグラウンドタスクかサブプロセッサ等で実行されてもよい。
図5は、運用フェーズにおける数値制御システムの画面予測処理について説明するフローチャートである。
ステップS11において、画面予測装置400の状態取得部411は、制御装置200から取得した画面種類データy
nと機械状態データz
nとに基づいて、現在の状態ベクトルx
nから過去に遡り3つの連続する状態ベクトルの状態ベクトル部分列{x
n−2、x
n−1、x
n}を、状態ベクトル部分列{xp
−2、xp
−1、xp
0}として取得する。
【0032】
ステップS12において、画面予測装置400の予測部412は、ステップS11で取得された状態ベクトル部分列{xp
−2、xp
−1、xp
0}を学習済みモデル350に入力し、ユーザが次に使用する操作画面の画面種類データyp
0を予測する。
【0033】
ステップS13において、制御装置200の画面データロード部211は、ステップS12で予測された画面種類データyp
0に対応する操作画面の画面データ230を記憶部213から図示しないRAM等にロードする。
【0034】
以上により、一の実施形態に係る画面予測装置400は、ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルから過去に遡り3つの連続する状態ベクトルの状態ベクトル部分列を、学習済みモデル350に入力することで、ユーザの一連の操作の流れを考慮した上で、ユーザが少なくとも次に使用する操作画面を予測することができる。これにより、画面予測装置400は、制御装置200がロードする操作画面のデータ量を最小限に抑えることができる。また、画面予測装置400は、機械状態や、表示・操作に関する機械設計、工場毎の工作機械100の運用ルール等に応じた、最適な操作画面を予測することができる。
【0035】
以上、一の実施形態について説明したが、制御装置200、機械学習装置300、画面予測装置400は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等が含まれる。
【0036】
<変形例1>
上述の実施形態では、機械学習装置300は、制御装置200及び画面予測装置400と異なる装置として例示したが、機械学習装置300の一部又は全部の機能を、制御装置200や画面予測装置400が備えるようにしてもよい。
【0037】
<変形例2>
上述の実施形態では、画面予測装置400は、制御装置200と異なる装置として例示したが、画面予測装置400の一部又は全部の機能を、制御装置200が備えるようにしてもよい。
あるいは、画面予測装置400の状態取得部411、予測部412、及び記憶部413の一部又は全部を、例えば、サーバが備えるようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、画面予測装置400の各機能を実現してもよい。
さらに、画面予測装置400は、画面予測装置400の各機能を適宜複数のサーバに分散される、分散処理システムとしてもよい。
【0038】
<変形例3>
また例えば、上述の実施形態では、
図3の学習済みモデル350は、中間層に、3つのRNN10の1層で構成されたが、これに限定されない。学習済みモデル350は、
図6に示すように、RNN10A(1)−10A(3k)を用いて、3つ1組を1層とする複数の層が配置された中間層を有し、深層学習化されてもよい(kは2以上の整数)。これにより、画面予測装置400は、
図3の場合と比べて過去の状態ベクトルの画面種類データと機械状態データの特徴をより正確に捉えることができ、より精度良く次の操作画面の画面種類データを予測することができる。なお、RNN10A(1)−10A(3k)の各々は、
図3のRNN10に対応する。
あるいは、学習済みモデル350は、
図6に示すように、
図3のRNN10(1)−10(3)に替えて、入力・出力・忘却ゲート付きRNNであるLSTM(Long Short−Term Memory)20(1)−20(3)が中間層に配置されてもよい。この場合、学習済みモデル350の中間層には、LSTM20(1)−20(3)とともに、全結合層30及びargmax40が配置される。argmax40は、全結合層30より出力された複数の画面種類データのうち、最も確率値が高い画面種類データを画面種類データyp
0として出力する。これにより、画面予測装置400は、
図3の場合と比べて過去の状態ベクトルの画面種類データと機械状態データの特徴をより正確に捉えることができ、より精度良く次の操作画面の画面種類データを予測することができる。なお、
図6では、LMST20の数は、3つとしたが1以上の数でもよい。
【0039】
<変形例4>
また例えば、上述の実施形態では、画面予測装置400は、ユーザが次に使用する操作画面を予測したが、ユーザが次以降に使用する操作画面を予測してもよい。
図8は、次以降の3回先までの操作画面の画面種類データyp
0、yp
1、yp
2を予測する学習済みモデル350の一例を示す図である。
図8に示すように、学習済みモデル350は、現在の状態ベクトルxp
0から過去に遡る3つの連続する状態ベクトルを含む状態ベクトル部分列{xp
−2、xp
−1、xp
0}を入力層とし、RNN10B(1)−10B(5)を中間層とし、ユーザが次以降の3回先までに使用する画面種類データyp
0、yp
1、yp
2を出力層とする。
この場合、機械学習装置300は、状態ベクトル部分列{x
1、x
2、x
3}、{x
2、x
3、x
4}・・・{x
N−2、x
N−1、x
N}の入力データと、画面種類データ{y
3、y
4、y
5}、{y
4、y
5、y
6}・・・{y
N−2、y
N−1、y
N}のラベルデータとを、訓練データとして記憶部315から受け付け、教師あり学習を行う。
なお、RNN10B(1)−10B(5)の各々は、
図3のRNN10に対応する。
【0040】
<変形例5>
また例えば、上述の実施形態では、画面予測装置400は、機械学習装置300により生成された学習済みモデル350を用いて、ユーザが次に使用する操作画面を予測したが、これに限定されない。例えば、
図9に示すように、サーバ500は、機械学習装置300により生成された学習済みモデル350を記憶し、ネットワーク50に接続されたm個の画面予測装置400A(1)−400A(m)と学習済みモデル350を共有してもよい(mは2以上の整数)。これにより、新たな工作機械、制御装置、及び画面予測装置が配置されても学習済みモデル350を適用することができる。
なお、画面予測装置400A(1)−400A(m)の各々は、制御装置200A(1)−200A(m)の各々と接続され、制御装置200A(1)−200A(m)の各々は、工作機械100A(1)−100A(m)の各々と接続される。
また、工作機械100A(1)−100A(m)の各々は、
図1の工作機械100に対応する。制御装置200A(1)−200A(m)の各々は、
図1の制御装置200に対応する。画面予測装置400A(1)−400A(m)の各々は、
図1の画面予測装置400に対応する。
あるいは、
図10に示すように、サーバ500は、例えば、画面予測装置400として動作し、ネットワーク50に接続された同一工場内の制御装置200A(1)−200A(m)の各々に対して、ユーザが次以降に使用する操作画面の画面種類データを予測してもよい。これにより、新たな工作機械及び制御装置が配置されても学習済みモデル350を適用することができる。
【0041】
<変形例6>
また例えば、上述の実施形態では、機械状態データz
nは、モードとアラームを有したが、モードとアラームとともに、前述したように運転状態や信号を有してもよい。
なお、機械状態データz
nの「運転状態」には、例えば、NCプログラムを実行している状態を示す「START(起動状態)」、運転を終了し停止している状態を示す「STOP(停止状態)」、実行する指令が残っているにも関わらず運転を中断し休止している状態を示す「HOLD(休止状態)」、初期状態、あるいは非常停止又はリセットボタンが押された状態を示す「RESET(リセット状態)」等がある。
また、機械状態データz
nの「信号」には、X、Y、Zのどの軸・方向(±)を動かすかを決定する「JOG送り軸方向選択」、X、Y、Zのどの軸・方向(±)を動かすかを決定する「ハンドル送り軸選択」、NCプログラムを1行実行後停止させる「シングルブロック」等がある。
【0042】
なお、一の実施形態における、制御装置200、機械学習装置300、及び画面予測装置400に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0043】
制御装置200に含まれる各構成部は、(電子回路等を含む)ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ(数値制御装置1)にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。また、ハードウェアで構成する場合、上記の制御装置に含まれる各構成部の機能の一部又は全部を、例えば、ASIC(Application Specific Integrated Circuit)、ゲートアレイ、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)等の集積回路(IC)で構成することができる。
【0044】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAMを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0045】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0046】
以上を換言すると、本開示の機械学習装置、画面予測装置、及び制御装置は、次のような構成を有する各種各様の実施形態を取ることができる。
(1)本開示の機械学習装置300は、産業機械(工作機械100)を制御する制御装置200の表示部212に表示される操作画面に基づいてユーザが一連の操作を行う場合にユーザにより使用された各操作画面の画面種類を示す画面種類データy
nと当該操作画面の表示されたときの制御装置200により制御される産業機械の機械状態を示す機械状態データz
nとを含む状態ベクトルx
nとし、ユーザの一連の操作又は機械状態の変化に対応する操作画面の遷移に対応する状態ベクトルx
nの集合となる時系列データである状態ベクトル列{x
n:n≧1}を取得する状態観測部312と、状態観測部312により取得される状態ベクトル列に含まれる、任意の状態ベクトルx
n(n≧1)を先頭とする予め設定されたN個(N≧2)の連続する状態ベクトル部分列{x
n、x
n+1、・・・x
n+N−1}を入力データとし、入力データの状態ベクトル部分列の末尾の状態ベクトルx
n+N−1に対応する操作画面の次に表示される画面の種類を示す画面種類データy
n+N−1を含む操作画面の次以降に表示される画面の画面種類データをラベルデータとする訓練データを取得する訓練データ取得部313と、入力データとラベルデータとを訓練データとして教師あり機械学習を行い、ユーザが表示部212に表示される操作画面に基づいて一連の操作を行う場合に、現在の状態ベクトルから過去に遡りN個の連続する状態ベクトルを含む状態ベクトル部分列に基づいて、ユーザが次以降に使用する画面種類データを予測するための学習済みモデル350を生成する学習部314と、を備える。
この機械学習装置300によれば、ユーザが次以降に使用する操作画面を予測し、制御装置200がロードする対象の操作画面のデータを予測した操作画面のデータに限定することで、ロードする画面のデータ量を最小限に抑えるための、学習済みモデル350を生成することができる。
【0047】
(2)学習部314は、リカレントニューラルネットワーク(RNN10)を用いて、一連の前記操作の流れを機械学習してもよい。
そうすることで、機械学習装置300は、一連の操作の流れに応じてユーザが次以降に使用する操作画面の画面種類データを予測できる学習済みモデル350を生成することができる。
【0048】
(3)リカレントニューラルネットワークとして、入力・出力・忘却ゲート付きRNNであるLSTM20を適用してもよい。
そうすることで、機械学習装置300は、より精度良くユーザが次以降に使用する操作画面の画面種類データを予測できる学習済みモデル350を生成することができる。
【0049】
(4)本開示の画面予測装置400は、ユーザの一連の操作に対応する操作画面に係る現在の状態ベクトルx
n(n≧N)から過去に遡りN個の連続する状態ベクトルを含む状態ベクトル部分列{x
n−N+1、・・・x
n}を取得する状態取得部411と、機械学習装置300により生成された学習済みモデル350に基づいて、状態取得部411により取得された状態ベクトル部分列{x
n−N+1、・・・x
n}から、ユーザが次以降に使用する操作画面の画面種類データを予測する予測部412と、を備える。
この画面予測装置400によれば、ユーザが次以降に使用する操作画面を予測し、制御装置200がロードする対象の操作画面のデータを予測した操作画面のデータに限定することで、ロードする画面のデータ量を最小限に抑えることができる。
【0050】
(5)(4)の画面予測装置400は、学習済みモデル350を備えてもよい。
そうすることで、上述の(4)と同様の効果を奏することができる。
【0051】
(6)画面予測装置400は、機械学習装置300を備えてもよい。
そうすることで、上述の(1)から(5)のいずれかと同様の効果を奏することができる。
【0052】
(7)(4)の画面予測装置400は、学習済みモデル350を、画面予測装置400からネットワーク50を介してアクセス可能に接続されるサーバ500に備えてもよい。
そうすることで、新たな工作機械100、制御装置200、及び画面予測装置400が配置されても学習済みモデル350を適用することができる。
【0053】
(8)本開示の制御装置200は、画面予測装置400により予測される、ユーザが次以降に使用する操作画面の画面種類データに対応する画面データをロードする画面データロード部を備える。
この制御装置200によれば、ロードする対象の操作画面のデータを予測した操作画面のデータに限定することで、ロードする画面のデータ量を最小限に抑えることができる。
【0054】
(9)(8)の制御装置200は、画面予測装置400を備えてもよい。
そうすることで、上述の(8)と同様の効果を奏することができる。