(57)【要約】【課題】機械学習により最適なオーバライド制御用設定値を学習する数値制御装置及び機械学習装置を提供すること。【解決手段】本発明の数値制御装置１は、オーバライド制御に用いられる設定値の調整を機械学習する機械学習装置２０を備え、該機械学習装置２０は、数値制御装置及び機械の状態を示す状態データを取得する状態観測部２１と、報酬条件を設定する報酬条件設定部２３と、報酬を計算する報酬計算部２４と、オーバライド制御に用いられる設定値の調整を機械学習するオーバライド制御用設定値調整学習部２５と、オーバライド制御用設定値調整学習部２５による機械学習結果と、状態データとに基づいて、オーバライド制御に用いられる設定値の調整を決定して出力するオーバライド制御用設定値調整量決定部２７とを備える。【選択図】図６
2018120357.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの軸を備えた機械を制御する数値制御装置において、
前記軸を駆動するモータのオーバライド制御に用いられる設定値の調整を機械学習する機械学習装置を備え、
前記機械学習装置は、
前記モータのオーバライド制御に用いられる設定値の現在値を含む前記数値制御装置及び前記機械の状態を示す状態データを取得する状態観測部と、
報酬条件を設定する報酬条件設定部と、
前記状態観測部が取得した前記状態データと前記報酬条件に基づいて報酬を計算する報酬計算部と、
前記オーバライド制御に用いられる設定値の調整を機械学習するオーバライド制御用設定値調整学習部と、
前記オーバライド制御用設定値調整学習部による前記オーバライド制御に用いられる設定値の調整の機械学習結果と、前記状態データとに基づいて、前記オーバライド制御に用いられる設定値の調整を決定して出力するオーバライド制御用設定値調整量決定部と、
を有し、
前記オーバライド制御用設定値調整学習部は、調整された前記設定値と、前記設定値の調整後に取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記オーバライド制御に用いられる設定値の調整を機械学習する、
数値制御装置。
【請求項２】
前記報酬計算部は、前記機械の動作のサイクルタイム、前記機械の主軸負荷、前記機械に取り付けられた工具の破損、前記機械により加工されたワークの加工精度の少なくともいずれかに基づいて報酬を計算する、
請求項１に記載の数値制御装置。
【請求項３】
少なくとも１つの他の数値制御装置と接続されており、
前記他の数値制御装置との間で機械学習の結果を相互に交換または共有する、
請求項１または２に記載の数値制御装置。
【請求項４】
数値制御装置により制御される機械が備える少なくとも１つの軸を駆動するモータのオーバライド制御に用いられる設定値の調整を機械学習した機械学習装置であって、
前記オーバライド制御に用いられる設定値の調整の機械学習結果を記憶する学習結果記憶部と、
前記モータのオーバライド制御に用いられる設定値の現在値を含む前記数値制御装置及び前記機械の状態を示す状態データを取得する状態観測部と、
報酬条件を設定する報酬条件設定部と、
前記状態観測部が取得した前記状態データと前記報酬条件に基づいて報酬を計算する報酬計算部と、
前記オーバライド制御に用いられる設定値の調整を機械学習するオーバライド制御用設定値調整学習部と、
前記オーバライド制御用設定値調整学習部による前記オーバライド制御に用いられる設定値の調整の機械学習結果と、前記状態データとに基づいて、前記オーバライド制御に用いられる設定値の調整を決定して出力するオーバライド制御用設定値調整量決定部と、
を有し、
前記オーバライド制御用設定値調整学習部は、調整された前記設定値と、前記設定値の調整後に取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記オーバライド制御に用いられる設定値の調整を機械学習する、
機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置及び機械学習装置に関し、特に機械学習により最適なオーバライド制御用設定値を学習する数値制御装置及び機械学習装置に関する。
【背景技術】
【０００２】
工作機械による加工をする際の従来技術として、主軸負荷を入力値としたＰＩＤ制御により、送り速度オーバライドを制御する機能がある（例えば、特許文献１）。この機能を用いることにより、負荷が低い部分では、オーバライドを増加させ、サイクルタイムの短縮を図り、負荷が高い部分では、オーバライドを減少させ、工具破損、オーバヒートを防止する。送り速度の制御方法は、一般的に対象の値を一定値に保つための制御としてＰＩＤ制御が広く使われている。ＰＩＤ制御による出力は一般に数１式で算出することができる。なお、数１式ではＰＩＤ制御開始時の時刻をｔ0としている。
【０００３】
【数１】
2018120357.tif 000003
【０００４】
図８は、従来技術によるＰＩＤ制御を用いたフィードバック制御のブロック線図の例を示している。主軸の負荷が一定になるように送り速度を制御する場合は、出力値Ｏ（ｔ）を送り速度（オーバライド）とし、ｅL（ｔ）を目標主軸負荷と時刻ｔでの主軸負荷との差分とし、定数に適切な値を設定することで主軸負荷を目標へ近づけることができる。切削していない状態、つまり主軸の空転時には送り速度を上げても主軸負荷は変動しないため、切削中、つまり主軸負荷が一定値以上に達しているときのみ制御を行うのが望ましい。
【０００５】
ＰＩＤ制御では、制御対象の状態（工作機械においては、例えば、機械構成や工具の種類、ワーク材質、切り込み量など）に応じて各ゲイン（数１式、図８におけるＫp、Ｋi、Ｋd）を調整することにより、該状態に合わせた適切なフィードバック制御を行うことができるようになる。ＰＩＤ制御は一般的なフィードバック制御であるため、例えば限界感度法などのような、経験的なゲインの設定方法が多数考案されている。また、特許文献２，３には、ＰＩＤ制御の動作を補償するためにニューラルネットを用いる技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−０３２８６９号公報
【特許文献２】特許平０７−０３６５０６号公報
【特許文献３】国際公開第２００７／０４９４１２号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術によるＰＩＤ制御方法では、ゲインを加工における制御対象の状態（機械構成や工具の種類、ワーク材質、切り込み量など）に設定する必要があり、かつ安定した制御とするには、何度も試行する必要が有るという課題があった。
【０００８】
そこで本発明の目的は、機械学習により最適なオーバライド制御用設定値を学習する数値制御装置及び機械学習装置を提供することである。
【課題を解決するための手段】
【０００９】
本願の請求項１に係る発明は、少なくとも１つの軸を備えた機械を制御する数値制御装置において、前記軸を駆動するモータのオーバライド制御に用いられる設定値の調整を機械学習する機械学習装置を備え、前記機械学習装置は、前記モータのオーバライド制御に用いられる設定値の現在値を含む前記数値制御装置及び前記機械の状態を示す状態データを取得する状態観測部と、報酬条件を設定する報酬条件設定部と、前記状態観測部が取得した前記状態データと前記報酬条件に基づいて報酬を計算する報酬計算部と、前記オーバライド制御に用いられる設定値の調整を機械学習するオーバライド制御用設定値調整学習部と、前記オーバライド制御用設定値調整学習部による前記オーバライド制御に用いられる設定値の調整の機械学習結果と、前記状態データとに基づいて、前記オーバライド制御に用いられる設定値の調整を決定して出力するオーバライド制御用設定値調整量決定部と、を有し、前記オーバライド制御用設定値調整学習部は、調整された前記設定値と、前記設定値の調整後に取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記オーバライド制御に用いられる設定値の調整を機械学習する、数値制御装置である。
【００１０】
本願の請求項２に係る発明は、前記報酬計算部は、前記機械の動作のサイクルタイム、前記機械の主軸負荷、前記機械に取り付けられた工具の破損、前記機械により加工されたワークの加工精度の少なくともいずれかに基づいて報酬を計算する、請求項１に記載の数値制御装置である。
【００１１】
本願の請求項３に係る発明は、少なくとも１つの他の数値制御装置と接続されており、前記他の数値制御装置との間で機械学習の結果を相互に交換または共有する、請求項１または２に記載の数値制御装置である。
【００１２】
本願の請求項４に係る発明は、数値制御装置により制御される機械が備える少なくとも１つの軸を駆動するモータのオーバライド制御に用いられる設定値の調整を機械学習した機械学習装置であって、前記オーバライド制御に用いられる設定値の調整の機械学習結果を記憶する学習結果記憶部と、前記モータのオーバライド制御に用いられる設定値の現在値を含む前記数値制御装置及び前記機械の状態を示す状態データを取得する状態観測部と、報酬条件を設定する報酬条件設定部と、前記状態観測部が取得した前記状態データと前記報酬条件に基づいて報酬を計算する報酬計算部と、前記オーバライド制御に用いられる設定値の調整を機械学習するオーバライド制御用設定値調整学習部と、前記オーバライド制御用設定値調整学習部による前記オーバライド制御に用いられる設定値の調整の機械学習結果と、前記状態データとに基づいて、前記オーバライド制御に用いられる設定値の調整を決定して出力するオーバライド制御用設定値調整量決定部と、を有し、前記オーバライド制御用設定値調整学習部は、調整された前記設定値と、前記設定値の調整後に取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記オーバライド制御に用いられる設定値の調整を機械学習する、機械学習装置である。
【発明の効果】
【００１３】
本発明により、制御対象の機械の状態（機械構成、工具の種類、ワーク材質、切り込み量、指令送り速度など）に基づいて、最適なオーバライド制御用の設定値を自動的に設定することができるようになる。これにより、機械の状態（機械構成、工具の種類、ワーク材質、切り込み量、指令送り速度など）に応じて作業者がゲインを調整する必要がなくなるため、ゲイン調整にかかる手間と時間を削減できる。
【図面の簡単な説明】
【００１４】
【図１】強化学習アルゴリズムの基本的な概念を説明する図である。
【図２】ニューロンのモデルを示す模式図である。
【図３】３層の重みを有するニューラルネットワークを示す模式図である。
【図４】自己符号化器を学習モデルとして用いた場合の例を示す図である。
【図５】本発明の実施形態による数値制御装置の機械学習に関するイメージ図である。
【図６】本発明の実施形態による数値制御装置の概略的な機能ブロック図である。
【図７】本発明の実施形態における機械学習の流れを示すフローチャートである。
【図８】従来技術によるＰＩＤ制御を用いたフィードバック制御のブロック線図の例である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面と共に説明する。
本発明では、機械を数値制御装置に対して人工知能となる機械学習装置を導入し、機械の状態（機械構成、工具の種類、ワーク材質、切り込み量、指令送り速度など）に応じたオーバライド制御用設定値（ＰＩＤ制御の各ゲイン）の調整を機械学習することで、機械の状態に対して適切なＰＩＤ制御を行えるようにする。
以下では、本発明で導入する機械学習について簡単に説明する。
【００１６】
＜１．機械学習＞
ここで、機械学習について簡単に説明する。機械学習は、機械学習を行う装置（以下、機械学習装置）に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力すると共に、知識の学習を行うことで実現される。機械学習の手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現する上で、特徴量そのものの抽出を学習する「深層学習」と呼ばれる手法がある。
【００１７】
「教師あり学習」とは、ある入力と結果（ラベル）のデータの組を大量に機械学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、即ち、その関係性を帰納的に獲得することができる。これは後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【００１８】
「教師なし学習」とは、入力データのみを大量に学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。それらのデータセットにある特徴を似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することができる。また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、これは一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。本実施形態においては、実際に加工機を動作させなくても取得することが出来るデータを教師なし学習で利用し、学習を効率的に行うことが出来る。
【００１９】
「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、即ち、将来的に得られる報酬を最大にするための学習する方法である。強化学習においては、機械学習装置は行動が引き起こす結果を全く知らない状態から、または不完全にしか知らない状態から学習はスタートすることができる。また、人間の動作を真似るように事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
なお、工作機械を制御する数値制御装置に対して機械学習を適用する場合、工作機械が実際に動作して初めて、その結果をデータとして得ることが出来ること、即ち、試行錯誤しながら最適な行動を探索する必要があることを考慮する必要がある。本発明では、機械学習装置の主たる学習アルゴリズムとして報酬を与えることで機械学習装置が目標到達のための行動を自動的に学習する強化学習のアルゴリズムを採用している。
【００２０】
図１は、強化学習アルゴリズムの基本的な概念を説明する図である。強化学習においては、学習する主体となるエージェント（機械学習装置）と、制御対象となる環境（制御対象システム）とのやりとりにより、エージェントの学習と行動が進められる。より具体的には、（１）エージェントはある時点における環境の状態ｓtを観測し、（２）観測結果と過去の学習に基づいて自分が取れる行動ａtを選択して行動ａtを実行し、（３）何らかの規則および行動ａtの実行に基づいて環境の状態ｓtが次の状態ｓt+1へと変化し、（４）行動ａtの結果としての状態の変化に基づいてエージェントが報酬ｒt+1を受け取り、（５）エージェントが状態ｓt、行動ａt、報酬ｒt+1および過去の学習の結果に基づいて学習を進める、といったやりとりがエージェントと環境の間で行われる。
【００２１】
強化学習の初期の段階では、エージェントは（２）の行動選択において環境の状態ｓtに対する最適な行動ａtを選択するための価値判断の基準が全く分かっていない。そこで、エージェントは或る状態ｓtの元で様々な行動ａtを選択し、その時の行動ａtに対して与えられた報酬ｒt+1に基づいて、より良い行動の選択、すなわち正しい価値判断の基準を学習していく。
【００２２】
上記した（５）における学習においては、エ−ジェントは将来取得できる報酬の量を判断するための基準となる情報として、観測された状態ｓt，行動ａt，報酬ｒt+1のマッピングを獲得する。例えば、各時刻において取り得る状態の個数がｍ、取り得る行動の個数がｎとすると、行動を繰り返すことによって状態ｓtと行動ａtの組に対する報酬ｒt+1を記憶するｍ×ｎの２次元配列が得られる。
そして、上記得られたマッピングに基づいて選択した状態や行動がどのくらい良いのかを示す関数である価値関数（評価関数）を用い、行動を繰り返す中で価値関数（評価関数）を更新していくことにより状態に対する最適な行動を学習していく。
【００２３】
状態価値関数は、ある状態ｓtがどのくらい良い状態であるのかを示す価値関数である。状態価値関数は、状態を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態の価値などに基づいて更新される。状態価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、強化学習アルゴリズムの１つであるＴＤ学習においては、状態価値関数は以下の数２式で更新される。なお、数２式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２４】
【数２】
2018120357.tif 000004
【００２５】
また、行動価値関数は、ある状態ｓtにおいて行動ａtがどのくらい良い行動であるのかを示す価値関数である。行動価値関数は、状態と行動を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態における行動の価値などに基づいて更新される。行動価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、代表的な強化学習アルゴリズムの１つであるＱ学習においては、行動価値関数は以下の数３式で更新される。なお、数３式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２６】
【数３】
2018120357.tif 000005
【００２７】
数３式は、行動ａtの結果帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）を更新する方法を表している。状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）よりも、報酬ｒt+1＋行動ａtによる次の状態における最良の行動ｍａｘ（ａ）の評価値Ｑ（ｓt+1，ｍａｘ（ａ））の方が大きければ、Ｑ（ｓt，ａt）を大きくするし、反対に小さければ、Ｑ（ｓt，ａt）も小さくする事を示している。つまり、ある状態におけるある行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
Ｑ学習においては、このような更新を繰り返すことで、最終的にＱ（ｓt，ａt）が期待値Ｅ［Σγtｒt］となるようにすることを目指す（期待値は最適な行動に従って状態変化した時についてとる。もちろん、それは分かっていないので、探索しながら学習しなければならない）。
【００２８】
そして、上記した（２）における行動の選択においては、過去の学習によって作成された価値関数（評価関数）を用いて現在の状態ｓtにおいて将来にわたっての報酬（ｒt+1＋ｒt+2＋…）が最大となる行動ａt（状態価値関数を用いている場合には、もっとも価値の高い状態へ移るための行動、行動価値関数を用いている場合には該状態において最も価値の高い行動）を選択する。なお、エージェントの学習中には学習の進展を目的として（２）における行動の選択において一定の確率でランダムな行動を選択することもある（εグリーディ法）。
【００２９】
なお、学習結果としての価値関数（評価関数）を記憶する方法としては、すべての状態行動ペア（ｓ，ａ）に対して、その値をテーブル（行動価値テーブル）として保持しておく方法や、上記価値関数を近似するような関数を用意する方法がある。後者の方法では、前述の更新式は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことで実現することが出来る。近似関数としては、ニューラルネットワークなどの教師あり学習器を用いることが出来る。
【００３０】
ニューラルネットワークは、たとえば図２に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置及びメモリ等で構成される。図２は、ニューロンのモデルを示す模式図である。
図２に示すように、ニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する出力ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数４式により表現される出力ｙを出力する。なお、数４式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００３１】
【数４】
2018120357.tif 000006
【００３２】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図３を参照して説明する。図３は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。図３に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００３３】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてｗ１と標記されている。ニューロンＮ１１〜Ｎ１３は、それぞれ、ｚ１１〜ｚ１３を出力する。これらのｚ１１〜ｚ１３はまとめて特徴ベクトルｚ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴ベクトルである。
【００３４】
ｚ１１〜ｚ１３は、２つのニューロンＮ２１、Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ２と標記されている。ニューロンＮ２１、Ｎ２２は、それぞれ、ｚ２１、ｚ２２を出力する。これらは、まとめて特徴ベクトルｚ２と標記されている。この特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴ベクトルである。
【００３５】
特徴ベクトルｚ２１、ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ３と標記されている。
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００３６】
ニューラルネットワークの動作には、学習モードと予測モードとがあり、学習モードにおいて学習データセットを用いて重みｗを学習し、そのパラメータを用いて予測モードにおいて加工機の行動判断を行う（便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能である）。
【００３７】
予測モードで実際に制御装置により機械を制御して得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００３８】
重みｗ１〜ｗ３は、誤差逆伝搬法（バックプロパゲーション）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００３９】
ニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。また、多層のニューラルネットを用いる場合には、図４に示すような公知のオートエンコーダを構成して、特徴量そのものを抽出して自律的に学習するようにしても良い。
【００４０】
このようなニューラルネットワークを近似関数として用いることで、上記した強化学習の過程における（１）〜（５）を繰り返しつつ上記した価値関数（評価関数）をニューラルネットワークとして記憶して学習を進めることができる。
一般的に機械学習装置は、ある環境において学習が終了した後に、新たな環境におかれた場合でも追加の学習を行うことでその環境に適応するように学習を進めることができる。したがって、本発明のように機械の状態に応じたオーバライド制御用設定値（ＰＩＤ制御の各ゲイン）の調整に適用することで、新しい機械制御の前提条件に適用したりする場合であっても、過去のオーバライド制御用設定値の調整の学習を基にして、新たな加工の前提条件における追加の学習をすることで、オーバライド制御用設定値の調整の学習を短時間で行うことが可能となる。
【００４１】
また、強化学習においては、複数のエージェントをネットワークなどを介して接続したシステムとし、エージェント間で状態ｓ、行動ａ、報酬ｒなどの情報を共有してそれぞれの学習に利用することで、それぞれのエージェントが他のエージェントの環境も考慮して学習をする分散強化学習を行うことで効率的な学習を行うことができる。本発明においても、複数の環境（機械を制御する数値制御装置）に組み込まれた複数のエージェント（機械学習装置）がネットワークなどを介して接続された状態で分散機械学習を行うことで、機械を制御する数値制御装置におけるオーバライド制御用設定値の調整の学習を効率的に行わせることができるようになる。
【００４２】
なお、強化学習のアルゴリズムとしては、Ｑ学習、ＳＡＲＳＡ法、ＴＤ学習、ＡＣ法など様々な手法が周知となっているが、本発明に適用する方法としていずれの強化学習アルゴリズムを採用してもよい。上記したそれぞれの強化学習アルゴリズムは周知なので、本明細書における各アルゴリズムの詳細な説明は省略する。
以下では、機械学習装置を導入した本発明の数値制御装置について、具体的な実施形態に基づいて説明する。
【００４３】
＜２．実施形態＞
図５は、本発明の一実施形態による機械学習装置を導入した数値制御装置におけるオーバライド制御用設定値の調整の機械学習に関するイメージを示す図である。なお、図５には本実施形態における数値制御装置の機械学習の説明に必要な構成のみを示している。
【００４４】
本実施形態において、機械学習装置２０が環境（＜１．機械学習＞で説明した状態ｓt）を特定するための情報として、機械２から取得された機械構成や工具種類、ワーク材質、切込量、及びプログラムによる指令送り速度、オーバライド制御用設定値（ＰＩＤ制御の各ゲインなど）の現在値などの情報を状態情報として機械学習装置２０に対して入力している。
本実施形態では、機械学習装置２０が環境に対して出力するもの（＜１．機械学習＞で説明した行動ａt）として、機械２のＰＩＤ制御に用いられるオーバライド制御用設定値の調整量を出力する。
【００４５】
本実施形態による数値制御装置１では、上記した状態情報を、機械２から取得された機械構成や工具種類、ワーク材質、切込量、及びプログラムによる指令送り速度、オーバライド制御用設定値（ＰＩＤ制御の各ゲインなど）などにより状態を定義する。そして、上記した調整行動は機械学習装置２０が出力する機械２のＰＩＤ制御に用いられるオーバライド制御用設定値の調整量により定義できる。
【００４６】
また本実施形態では、機械学習装置２０に対して与えられる報酬（＜１．機械学習＞で説明した報酬ｒt）として、サイクルタイムの増減（プラス・マイナス報酬）、主軸負荷軽減（プラス・マイナス報酬）、工具破損（マイナス報酬）、加工精度（プラス・マイナス報酬）などを採用する。なお、いずれのデータに基づいて報酬を決定するのかについては、作業者が適宜設定するようにしてもよい。
【００４７】
更に、本実施形態では、機械学習装置２０は上記した状態情報（入力データ）、調整行動（出力データ）、報酬に基づいて機械学習を行う。機械学習においては、ある時刻ｔにおいて、入力データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに対して行われるゲインの調整が行動ａtとなり、そして、行動ａtによりオーバライド制御用設定値の調整が行われた結果として新たに得られた機械の稼動結果のデータに基づいて評価計算された値が報酬ｒt+1となり、これを＜１．機械学習＞で説明したように、機械学習のアルゴリズムに応じた価値関数（評価関数）の更新式に当てはめることにより学習を進める。
【００４８】
以下では、制御システムの機能ブロック図に基づいて説明する。
図６は、本実施形態による数値制御装置の機能ブロック図である。本実施形態の数値制御装置１は、制御対象となる機械２が備える軸を駆動するサーボモータ（図示せず）を制御するサーボ制御部（図示せず）などの数値制御装置が標準的に備える構成と、該サーボ制御部や周辺機器などを制御する制御部１０、および機械学習を行う人工知能となる機械学習装置２０を備える。図６に示した構成を、図１に示した強化学習における要素と対比すると、機械学習装置２０がエージェントに対応し、機械学習装置２０を除く機械２などの構成が環境に対応する。なお、数値制御装置１は、上記した以外にも一般的な数値制御装置の構成を備えているものとし、本発明における機械学習の動作の説明に特段必要な構成以外は本明細書での詳細な説明を省略する。
【００４９】
制御部１０は、図示しないメモリから読み出された、または図示しない入力機器などを介して入力されたプログラムを解析し、解析結果として得られた制御データに基づいて機械２の各部を制御する。制御部１０は、通常はプログラムの解析結果に基づいた制御を行なうが、本実施形態においては、機械２の各軸の制御においては、機械学習装置２０からの出力により調整されたオーバライド制御用設定値に従って行われる。
【００５０】
機械学習を行う機械学習装置２０は、状態観測部２１、状態データ記憶部２２、報酬条件設定部２３、報酬計算部２４、オーバライド制御用設定値調整学習部２５、学習結果記憶部２６、オーバライド制御用設定値調整量決定部２７を備える。機械学習装置２０は、図に示すように数値制御装置１内に備えてもよいし、数値制御装置１外のパソコン等に備えるようにしてもよい。
【００５１】
状態観測部２１は、制御部１０を介して数値制御装置１及び機械２に関する状態を観測して状態データとして機械学習装置２０内に取得する機能手段である。状態データとしては機械２から取得された機械構成や工具種類、ワーク材質、切込量、及びプログラムによる指令送り速度、オーバライド制御用設定値（ＰＩＤ制御の各ゲインなど）の現在値、更に各物理量を演算処理して算出した算出値などがある。状態観測部２１は、数値制御装置１及び機械２に関する状態を状態データとして取得する際に、あらかじめ定められたルールに従って文字や記号などの数値以外のデータの数値化を行うようにしても良い。
【００５２】
状態データ記憶部２２は状態データを入力して記憶し、記憶した該状態データを報酬計算部２４やオーバライド制御用設定値調整学習部２５に対して出力する機能手段である。入力される状態データは、最新の加工運転で取得したデータでも、過去の加工運転で取得したデータでも構わない。また、他の数値制御装置１や集中管理システム３０に記憶された状態データを入力して記憶したり、出力したりすることも可能である。
【００５３】
報酬条件設定部２３は、操作者などにより設定された機械学習において報酬を与える条件を設定するための機能手段である。報酬にはプラスの報酬とマイナスの報酬があり、適宜設定が可能である。報酬条件設定部２３への入力は集中管理システムで使用しているパソコンやタブレット端末等からでも構わないが、数値制御装置１が備える図示しないＭＤＩ機器を介して入力できるようにすることで、より簡便に設定することが可能となる。
報酬計算部２４は、報酬条件設定部２３で設定された条件に基づいて状態観測部２１または状態データ記憶部２２から入力された状態データを分析し、計算された報酬をオーバライド制御用設定値調整学習部２５に出力する。
【００５４】
以下に、本実施形態における報酬条件設定部２３で設定する報酬条件の例を示す。なお、以下に示す報酬条件は一例であり、それぞれ設計的に変更してもよく、また、他の様々な報酬条件を設定できるようにしても良い。
●［報酬１：サイクルタイムの増減（プラス報酬，マイナス報酬）］
機械２の一連の動作（加工動作）におけるサイクルタイムがあらかじめ定めた所定の基準値よりも短い場合、その短い度合いに応じてプラスの報酬を与える。
一方で、機械２の一連の動作（加工動作）におけるサイクルタイムがあらかじめ定めた所定の基準値よりも長い場合、その短い度合いに応じてマイナスの報酬を与える。
【００５５】
●［報酬２：主軸負荷軽減（プラス・マイナス報酬）］
機械２の動作（加工動作）における主軸にかかった負荷があらかじめ定めた所定の基準値よりも小さい場合、その小さい度合いに応じてプラスの報酬を与える。
一方で、機械２の動作（加工動作）における主軸にかかった負荷があらかじめ定めた所定の基準値よりも大きい場合、その大きい度合いに応じてマイナスの報酬を与える。
【００５６】
●［報酬３：工具破損（マイナス報酬）］
機械２に取り付けられた工具が破損した場合、大きなマイナス報酬を与える。
●［報酬４：加工精度（プラス・マイナス報酬）］
機械２の動作（加工動作）により加工されたワークの加工精度があらかじめ定めた所定の基準値よりも高い場合（例えば、ＣＡＤなどで設計されているワーク図面と加工されたワークとの寸法誤差があらかじめ定めた所定の基準値よりも小さい場合）、その高さの度合いに応じてプラスの報酬を与える。
一方で、機械２の動作（加工動作）により加工されたワークの加工精度があらかじめ定めた所定の基準値よりも低い場合（例えば、ＣＡＤなどで設計されているワーク図面と加工されたワークとの寸法誤差があらかじめ定めた所定の基準値よりも大きい場合）、その低さの度合いに応じてマイナスの報酬を与える。
【００５７】
オーバライド制御用設定値調整学習部２５は、状態観測部２１が観測した状態にかかるデータと、自身が行ったオーバライド制御用設定値の調整（調整量の出力）、および報酬計算部２４で計算された報酬とに基づいて機械学習（強化学習）を行う。オーバライド制御用設定値調整学習部２５が行う機械学習においては、ある時刻ｔにおける状態データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに応じて後述するオーバライド制御用設定値調整量決定部２７がオーバライド制御用設定値の調整動作を決定して数値制御装置１に対して出力し、実際にオーバライド制御用設定値を調整することが行動ａtとなり、オーバライド制御用設定値が調整され、機械２の動作の制御が行われ、その結果として状態観測部２１が取得した状態データに基づいて報酬計算部２４で計算された値が報酬ｒt+1となる。学習に用いられる価値関数については、適用する学習アルゴリズムに応じて決定する。例えば、Ｑ学習を用いる場合には、上記した数３式に従って行動価値関数Ｑ（ｓt，ａt）を更新することにより学習を進めるようにすれば良い。
【００５８】
学習結果記憶部２６は、オーバライド制御用設定値調整学習部２５が学習した結果を記憶する。また、オーバライド制御用設定値調整学習部２５が学習結果を再使用する際には、学習結果記憶部２６は記憶している学習結果をオーバライド制御用設定値調整学習部２５に出力する。学習結果の記憶には、上述したように、利用する機械学習アルゴリズムに応じた価値関数を、近似関数や、配列、又は多値出力のＳＶＭやニューラルネットワーク等の教師あり学習器などにより記憶するようにすれば良い。
なお、学習結果記憶部２６に、他の数値制御装置１や集中管理システム３０が記憶している学習結果を入力して記憶させたり、学習結果記憶部２６が記憶している学習結果を他の数値制御装置１や集中管理システム３０に対して出力したりすることも可能である。
【００５９】
オーバライド制御用設定値調整量決定部２７は、オーバライド制御用設定値調整学習部２５が学習した（そして、学習結果記憶部２６に記憶されている）学習結果と状態観測部２１が観測した状態に係るデータとに基づいてオーバライド制御用設定値の調整行動を決定し、制御部１０に対して出力する。ここでいうオーバライド制御用設定値の調整行動の決定が、機械学習に用いられる行動ａに相当する。オーバライド制御用設定値の調整行動は、調整対象となるゲイン（Ｋp、ＫI、Ｋd）の選択と、選択されたゲインに対してどの程度に調整するかを組にして、それぞれの組を選択可能な行動（例えば、行動１＝ＫpをＸＸに設定、行動２＝ＫIを＋ＹＹ、…）としてあらかじめ設定して用意しておき、過去の学習結果に基づいて将来に得られる報酬が最も大きくなるように行動を選択するようにしてもよい。選択可能な行動は、複数のゲインを同時に調整する行動としてもよい。また、上記したεグリーディ法を採用し、所定の確率でランダムな行動を選択することで後のオーバライド制御用設定値調整学習部２５による学習の進展を図るようにしてもよい。
そして、制御部１０は、オーバライド制御用設定値調整量決定部２７から受けたオーバライド制御用設定値の調整量に基づいてオーバライド制御用設定値を調整する。
【００６０】
図７のフローチャートを用いて、オーバライド制御用設定値調整学習部２５が行う機械学習の流れを説明する。
●［ステップＳＡ０１］機械学習が開始されると、状態観測部２１が制御部１０を介して数値制御装置１と機械２の状態を状態データとして観測する。
●［ステップＳＡ０２］オーバライド制御用設定値調整学習部２５は、状態観測部２１が観測した状態に係るデータに基づいて現在の状態ｓtを特定する。
【００６１】
●［ステップＳＡ０３］オーバライド制御用設定値調整量決定部２７は、過去の学習結果とステップＳＡ０２で特定した状態ｓtに基づいて行動ａt（オーバライド制御用設定値の調整行動）を選択する。
●［ステップＳＡ０４］制御部１０は、ステップＳＡ０３で選択されたオーバライド制御用設定値の調整行動ａtを実行する。
【００６２】
●［ステップＳＡ０５］状態観測部２１が、数値制御装置１と機械２の状態を状態データとして取得する。この段階においては、数値制御装置１及び機械２の状態は時刻ｔから時刻ｔ＋１への時間的推移と共にステップＳＡ０４で実行された行動ａtによって変化している。
●［ステップＳＡ０６］ステップＳＡ０５で取得された状態データに基づいて、報酬計算部２４が報酬ｒt+1を算出する。
●［ステップＳＡ０７］ステップＳＡ０２で特定された状態ｓt、ステップＳＡ０３で選択された行動ａt、ステップＳＡ０６で算出された報酬ｒt+1に基づいて、オーバライド制御用設定値調整学習部２５が機械学習を進め、ステップＳＡ０２へ戻る。
【００６３】
上記したように、オーバライド制御用設定値調整量決定部２７の決定に基づいてオーバライド制御用設定値が調整され、調整されたオーバライド制御用設定値により機械２が制御されて機械２が動作（ワークを加工）し、状態観測部２１による状態データの観測が行われ、機械学習を繰り返すことにより、より優れた学習結果を得ることができる。
【００６４】
上記した機械学習が十分に行われた学習データを用いて実際にオーバライド制御用設定値を調整する際には、機械学習装置２０が新たな学習を行なわないようにしておいて、機械学習が十分に行われた学習データをそのまま使用して運転をするようにしてもよい。
また、機械学習が完了した機械学習装置２０（または、他の機械学習装置２０の機械学習が完了した学習データを複写した機械学習装置２０）を他の数値制御装置１に取付けて、機械学習が十分に行われた時の学習データをそのまま使用して運転をするようにしてもよい。
【００６５】
数値制御装置１の機械学習装置２０は単独で機械学習をするようにしてもよいが、複数の数値制御装置１がそれぞれ外部との通信手段を更に備えると、それぞれの学習結果記憶部２６に記憶された価値関数を互いに送受信して共有することが可能となり、より効率良く機械学習を行うことができる。例えば、複数の数値制御装置１において異なる調整対象と異なる調整量を所定の範囲内でそれぞれ変動させながら、それぞれの数値制御装置１の間で状態に係るデータや学習結果としての価値関数をやり取りすることにより並列して学習を進めるようにすることで効率的に学習させることができる。
このように複数の数値制御装置１の間でやり取りする際には、通信は図示しない管理装置等を経由しても良いし、直接数値制御装置１同士が通信しても構わないし、クラウドを使用しても構わないが、大量のデータを取り扱う場合があるため、なるべく通信速度が速い通信手段が好ましい。
【００６６】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００６７】
例えば、上記実施形態で示した数値制御装置１が備える各機能手段の関係は図６の機能ブロック図に示したものに限定されるものではなく、各機能手段の機能に相当する構成を備えているのであれば、どのような機能単位に分割しても、また、機能間にどのような上下関係を持たせても良い。
【符号の説明】
【００６８】
１  数値制御装置
２  機械
１０  制御部
２０  機械学習装置
２１  状態観測部
２２  状態データ記憶部
２３  報酬条件設定部
２４  報酬計算部
２５  オーバライド制御用設定値調整学習部
２６  学習結果記憶部
２７  オーバライド制御用設定値調整量決定部
３０  集中管理システム
【図１】
2018120357.tif 000007
【図２】
2018120357.tif 000008
【図３】
2018120357.tif 000009
【図４】
2018120357.tif 000010
【図５】
2018120357.tif 000011
【図６】
2018120357.tif 000012
【図７】
2018120357.tif 000013
【図８】
2018120357.tif 000014