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