(57)【要約】【課題】機械学習の探索範囲が不適切な場合に探索範囲を変更し再学習する。【解決手段】サーボモータを制御するサーボ制御装置に対して、サーボ制御装置の構成要素の第１パラメータの探索を行う機械学習装置であって、機械学習中又は機械学習後に、機械学習で用いる評価関数値の集合を取得し、評価関数値の集合を、第１パラメータ又は第１パラメータの探索に用いる第２パラメータの探索範囲でプロットし、探索範囲の端に又は該端から所定の範囲内に、探索解があるかどうかを検出する探索解検出部と、探索範囲の端に又は所定の範囲内に、探索解があるときに、評価関数値の集合に基づいて評価関数式を推定する評価関数式推定部と、推定された前記評価関数式に基づいて、第１パラメータ又は第２パラメータの新たな探索範囲に変更する探索範囲変更部と、を備える。【選択図】図８
2020134960.tif 000002
【特許請求の範囲】
【請求項１】
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して、前記サーボ制御装置の構成要素の第１パラメータの探索を行う機械学習装置であって、
機械学習中又は機械学習後に、機械学習で用いる評価関数値の集合を取得し、該評価関数値の集合を、前記第１パラメータ又は前記第１パラメータの探索に用いる第２パラメータの探索範囲でプロットし、該探索範囲の端に又は該端から所定の範囲内に、探索解があるかどうかを検出する探索解検出部と、
前記探索範囲の端に又は前記所定の範囲内に、探索解があるときに、前記評価関数値の集合に基づいて評価関数式を推定する評価関数式推定部と、
推定された前記評価関数式に基づいて、前記第１パラメータ又は前記第２パラメータの新たな探索範囲に変更する探索範囲変更部と、
を備えた機械学習装置。
【請求項２】
前記評価関数式推定部は、前記評価関数式を、前記第１パラメータ又は前記第２パラメータに対する多項式の評価関数式モデルを用いて推定する請求項１に記載の機械学習装置。
【請求項３】
前記サーボ制御装置の構成要素の第１パラメータは、数式モデル又はフィルタのパラメータを含む請求項１又は請求項２に記載の機械学習装置。
【請求項４】
前記構成要素は、速度フィードフォワード部又は位置フィードフォワード部であり、前記第１パラメータはフィルタの伝達関数の係数を含む、請求項３に記載の機械学習装置。
【請求項５】
前記構成要素はノッチフィルタであり、前記第１パラメータは該ノッチフィルタの伝達関数の係数である、請求項３に記載の機械学習装置。
【請求項６】
請求項１から４のいずれか１項に記載の機械学習装置と、
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、を備え、
前記機械学習装置は、前記サーボ制御装置の構成要素の第１パラメータの探索を行う、制御装置。
【請求項７】
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して、前記サーボ制御装置の構成要素の第１パラメータの探索を行う機械学習装置の探索範囲の設定方法であって、
機械学習中又は機械学習後に、機械学習で用いる評価関数値の集合を、前記第１パラメータ又は前記第１パラメータの探索に用いる第２パラメータの探索範囲でプロットし、
前記探索範囲の端に又は該端から所定の範囲内に、探索解があるかどうかを検出し、
前記探索範囲の端に又は前記所定の範囲内に、探索解があるときに、前記評価関数値の集合に基づいて評価関数式を推定し、
推定された前記評価関数式に基づいて、前記第１パラメータ又は前記第２パラメータの新たな探索範囲に変更する、探索範囲の設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習装置、制御装置、及び機械学習の探索範囲の設定方法に係り、特に、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して、サーボ制御装置の構成要素のパラメータの探索を行う機械学習装置、制御装置、及び機械学習の探索範囲の設定方法に関する。
【背景技術】
【０００２】
本発明に関連する技術として、光ディスクの記録再生条件を、記録パワーの探索範囲を変化させることで最適化する方法が知られている。例えば、特許文献１は、「ジッタ最小値が記録パワーの探索範囲の端で検出された場合、記録パワーの探索範囲を広げることにより、さらにジッタが最小となる記録パワーが検出できる可能性があるため、記録パワーの探索範囲を変化させ再度ジッタ最小値を検出する必要がある。」と記載している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】再公表２００５／０２９４７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置の構成要素のパラメータを機械学習装置によって探索する場合に、予め機械学習の探索範囲を設定するが、この探索範囲が適切な範囲でない場合がある。
【課題を解決するための手段】
【０００５】
（１）  本開示の一態様は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して、前記サーボ制御装置の構成要素の第１パラメータの探索を行う機械学習装置であって、
機械学習中又は機械学習後に、機械学習で用いる評価関数値の集合を取得し、該評価関数値の集合を、前記第１パラメータ又は前記第１パラメータの探索に用いる第２パラメータの探索範囲でプロットし、該探索範囲の端に又は該端から所定の範囲内に、探索解があるかどうかを検出する探索解検出部と、
前記探索範囲の端に又は前記所定の範囲内に、探索解があるときに、前記評価関数値の集合に基づいて評価関数式を推定する評価関数式推定部と、
推定された前記評価関数式に基づいて、前記第１パラメータ又は前記第２パラメータの新たな探索範囲に変更する探索範囲変更部と、
を備えた機械学習装置である。
【０００６】
（２）  本開示の他の態様は、上記（１）の機械学習装置と、
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、を備え、
前記機械学習装置は、前記サーボ制御装置の構成要素の第１パラメータの探索を行う、制御装置である。
【０００７】
（３）  本開示の更に他の態様は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して、前記サーボ制御装置の構成要素の第１パラメータの探索を行う機械学習装置の探索範囲の設定方法であって、
機械学習中又は機械学習後に、機械学習で用いる評価関数値の集合を、前記第１パラメータ又は前記第１パラメータの探索に用いる第２パラメータの探索範囲でプロットし、
前記探索範囲の端に又は該端から所定の範囲内に、探索解があるかどうかを検出し、
前記探索範囲の端に又は前記所定の範囲内に、探索解があるときに、前記評価関数値の集合に基づいて評価関数式を推定し、
推定された前記評価関数式に基づいて、前記第１パラメータ又は前記第２パラメータの新たな探索範囲に変更する、探索範囲の設定方法である。
【発明の効果】
【０００８】
本開示の各態様によれば、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置の構成要素のパラメータを機械学習装置によって探索する場合に、機械学習の探索範囲が適切な範囲でなくても、適切な範囲に変更することができる。
【図面の簡単な説明】
【０００９】
【図１】本開示の第１実施形態の制御装置の一構成例を示すブロック図である。
【図２】加工形状が八角形の場合のモータの動作を説明するための図である。
【図３】加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合のモータの動作を説明するための図である。
【図４】ＩＩＲフィルタの伝達関数の零点を極座標で表した半径ｒと偏角ωｎｔｓとを示す図である。
【図５】係数が最適化されたＩＩＲフィルタのフィルタゲインの一例を示す図である。
【図６】本開示の第１実施形態の機械学習装置２００を示すブロック図である。
【図７】現在の探索範囲を含む周波数での、機械特性と速度フィードフォワードのＩＩＲフィルタ特性を示す特性図である。
【図８】探索範囲設定部の一構成例を示すブロック図である。
【図９】探索範囲設定部を主体とする機械学習装置の動作を示すフローチャートである。
【図１０】現在設定されている探索範囲を含む周波数と、評価関数値との特性図である。
【図１１】現在設定されている探索範囲及び新たに設定される探索範囲を示す周波数と、評価関数値との関係、及び評価関数式を示す特性図である。
【図１２】現在設定されている探索範囲及び新たに設定される他の探索範囲を示す周波数と、評価関数値との関係、及び評価関数式を示す特性図である。
【図１３】新たに設定された探索範囲を含む周波数での、機械特性と速度フィードフォワードのＩＩＲフィルタ特性を示す特性図である。
【図１４】他の構成例における、現在設定されている探索範囲及び新たに設定される他の探索範囲を示す周波数と、評価関数値との関係、及び評価関数式を示す特性図である。
【図１５】本開示の第２実施形態の制御装置の一構成例を示すブロック図である。
【図１６】現在の探索範囲を含む周波数での、機械特性とノッチフィルタ特性を示す特性図である。
【図１７】新たに設定された探索範囲を含む周波数での、機械特性とノッチフィルタ特性を示す特性図である。
【図１８】本開示の第３実施形態の制御装置の一構成例を示すブロック図である。
【図１９】他の構成の制御装置を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、本開示の実施形態を列記する。
（第１実施形態）
図１は本開示の第１実施形態の制御装置の一構成例を示すブロック図である。図１に示す制御装置１０は、サーボ制御装置１００と機械学習装置２００とを備えている。
【００１１】
サーボモータ３００は、サーボ制御装置１００の制御対象であり、例えば工作機械、ロボット、又は産業機械等に含まれる。サーボ制御装置１００はサーボモータ３００とともに、工作機械，ロボット，又は産業機械等の一部として設けられてもよい。
【００１２】
最初に、サーボ制御装置１００について説明する。
図１に示すように、サーボ制御装置１００は、構成要素として、減算器１０１、位置制御部１０２、加算器１０３、減算器１０４、速度制御部１０５、加算器１０６、積分器１０７、速度フィードフォワード部１０８、及び位置フィードフォワード部１０９を備えている。速度フィードフォワード部１０８は、２回微分器１０８１及びＩＩＲフィルタ部１０８２を備えている。
【００１３】
位置指令は、減算器１０１、速度フィードフォワード部１０８、位置フィードフォワード部１０９、及び機械学習装置２００に出力される。
位置指令は、サーボモータ３００を動作させるプログラムに基づいて、上位装置によって作成される。サーボモータ３００は、例えば工作機械に含まれる。工作機械において、被加工物（ワーク）を搭載するテーブルがＸ軸方向及びＹ軸方向に移動される場合には、Ｘ軸方向及びＹ軸方向に対してそれぞれ図１に示すサーボ制御装置１００及びサーボモータ３００が設けられる。テーブルを３軸以上の方向に移動させる場合には、それぞれの軸方向に対してサーボ制御装置１００及びサーボモータ３００が設けられる。
位置指令は、加工プログラムにより指定される加工形状となるように、送り速度が設定される。
【００１４】
減算器１０１は位置指令値と位置フィードバックされた検出位置との差を求め、その差を位置偏差として位置制御部１０２及び機械学習装置２００に出力する。
位置制御部１０２は、位置偏差にポジションゲインＫｐを乗じた値を、速度指令値として加算器１０３に出力する。
加算器１０３は、速度指令値と位置フィードフォワード部１０９の出力値（位置フィードフォワード項）とを加算して、フィードフォワード制御された速度指令値として減算器１０４に出力する。減算器１０４は加算器１０３の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部１０５に出力する。
【００１５】
速度制御部１０５は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、トルク指令値として加算器１０６に出力する。
加算器１０６は、トルク指令値と速度フィードフォワード部１０８の出力値（速度フィードフォワード項）とを加算して、フィードフォワード制御されたトルク指令値として不図示の電流制御部を介してサーボモータ３００に出力してサーボモータ３００を駆動する。
【００１６】
サーボモータ３００の回転角度位置は、サーボモータ３００に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、速度検出値は速度フィードバックとして減算器１０４に入力される。速度検出値は積分器１０７で積分されて位置検出値となり、位置検出値は位置フィードバックとして減算器１０１に入力される。サーボモータはリニアモータであってもよい。
【００１７】
速度フィードフォワード部１０８の２回微分器１０８１は、位置指令値を２回微分し、ＩＩＲフィルタ部１０８２は２回微分器１０８１の出力に、伝達関数β・Ｆ（ｚ）で示されるＩＩＲフィルタ処理を行う。その処理結果は、速度フィードフォワード項として、加算器１０６に出力される。ＩＩＲフィルタ部１０８２の伝達関数β・Ｆ（ｚ）はＩＩＲフィルタの伝達関数Ｆ（ｚ）に定数βを掛けたものである。数式１（以下に数１として示す）で示されたＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ａ０、ａ１、ｒ０、ωｎｔｓの最適値は機械学習装置２００で機械学習される。係数ｒ０は減衰係数（ダンピング）、係数ωｎは減衰中心角周波数、係数ｔｓはサンプリング時間を示す。速度フィードフォワード部１０８はサーボ制御装置の構成要素となり、係数ｒ、ωｎｔｓを機械学習する場合は、係数ｒ、ωｎｔｓが第１パラメータとなる。
【数１】
2020134960.tif 000003
なお、ここでは、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の分母及び分子は、ともに２次関数となっているが特に２次関数に限定されず、３次関数以上であってもよい。
【００１８】
位置フィードフォワード部１０９は、位置指令値を微分して定数αを掛け、その処理結果を位置フィードフォワード項として、加算器１０３に出力する。
以上のように、サーボ制御装置１００は構成される。
次に機械学習装置２００について説明する。
【００１９】
機械学習装置２００は、予め設定された加工プログラム（以下、「学習時の加工プログラム」ともいう）を実行することで、速度フィードフォワード部１０８のＩＩＲフィルタの伝達関数Ｆ（ｚ）が０になるｚである零点を探索する。なお、極は伝達関数Ｆ（ｚ）が無限大になるｚの値、零点は、伝達関数Ｆ（ｚ）が０になるｚの値である。機械学習装置２００は、極と零点を探索してもよいが、振動を抑制するためには零点が重要であり、ここでは、機械学習装置２００が、極を固定して（係数ａ０、ａ１を固定して）、零点を探索し、係数ｒ、ωｎｔｓを最適化する場合について説明する。
また、機械学習装置２００は、学習中又は学習後に、探索範囲の端の選択が不適切であるかどうかを検出し、選択が不適切な場合に、新たな探索範囲に変更して学習（この学習を再学習と言う）を行う。
学習時の加工プログラムにより指定される加工形状は、例えば、八角形、又は八角形の角が一つ置きに円弧に置き換えられた形等である。なお、学習時の加工プログラムにより指定される加工形状はこれらの加工形状に限定されず、他の加工形状であってもよい。
【００２０】
図２は、加工形状が八角形の場合のモータの動作を説明するための図である。図３は、加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合のモータの動作を説明するための図である。図２及び図３において、被加工物（ワーク）が時計まわりに加工されるようにテーブルがＸ軸及びＹ軸方向に移動するものとする。
【００２１】
加工形状が八角形の場合は、図２に示すように、角の位置Ａ１で、テーブルをＹ軸方向に移動するモータは回転速度が遅くなり、テーブルをＸ軸方向に移動するモータは回転速度が速くなる。
角の位置Ａ２で、テーブルをＹ軸方向に移動するモータは、回転方向が反転し、テーブルをＸ軸方向に移動するモータは、位置Ａ１から位置Ａ２及び位置Ａ２から位置Ａ３にかけて、同じ回転方向で、等速度で回転する。
角の位置Ａ３で、テーブルをＹ軸方向に移動するモータは回転速度が速くなり、テーブルをＸ軸方向に移動するモータは回転速度が遅くなる。
角の位置Ａ４で、テーブルをＸ軸方向に移動するモータは、回転方向が反転し、テーブルをＹ軸方向に移動するモータは、位置Ａ３から位置Ａ４及び位置Ａ４から次の角の位置にかけて、同じ回転方向で、等速度で回転する。
【００２２】
加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合は、図３に示すように、角の位置Ｂ１で、テーブルをＹ軸方向に移動するモータは回転速度が遅くなり、テーブルをＸ軸方向に移動するモータは回転速度が速くなる。
円弧の位置Ｂ２で、テーブルをＹ軸方向に移動するモータは、回転方向が反転し、テーブルをＸ軸方向に移動するモータは位置Ｂ１から位置Ｂ３にかけて同じ回転方向で、等速度で回転する。図３に示した加工形状は八角形の場合と異なり、テーブルをＹ軸方向に移動するモータは位置Ｂ２の前後で円弧の加工形状が形成されるように、位置Ｂ２に向かって徐々に減速され、位置Ｂ２で回転が停止され、位置Ｂ２を過ぎると回転方向が徐々に増加していく。
【００２３】
角の位置Ｂ３で、テーブルをＹ軸方向に移動するモータは回転速度が速くなり、テーブルをＸ軸方向に移動するモータは回転速度が遅くなる。
円弧の位置Ｂ４で、テーブルをＸ軸方向に移動するモータは、回転方向が反転し、テーブルはＸ軸方向に直線反転するように移動する。また、テーブルをＹ軸方向に移動するモータは位置Ｂ３から位置Ｂ４、及び位置Ｂ４から次の角の位置にかけて同じ回転方向で、等速度で回転する。テーブルをＸ軸方向に移動するモータは位置Ｂ４の前後で円弧の加工形状が形成されるように、位置Ｂ４に向かって徐々に減速され、位置Ｂ４で回転が停止され、位置Ｂ４を過ぎると回転方向が徐々に増加していく。
【００２４】
本実施形態では、以上説明した、学習時の加工プログラムにより指定される加工形状の位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３により、線形制御において回転速度が変更されたときの振動を評価し、位置偏差に対する影響を調べることで、速度フィードフォワード部１０８のＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓの最適化に係る機械学習を行うものとする。なお、本実施形態では用いていないが、加工形状の位置Ａ２と位置Ａ４、及び位置Ｂ２と位置Ｂ４により、回転方向が反転する場合に生ずる惰走（惰性で動作する）を評価し、位置偏差に対する影響を調べることもできる。
伝達関数の係数の最適化に係る機械学習は、速度フィードフォワード部に特に限定されるものでなく、例えば、位置フィードフォワード部、又はサーボ制御装置の電流フィードフォワードを行う場合に設けられる電流フィードフォワード部にも適用可能である。
【００２５】
次に、機械学習装置２００について更に詳細に説明する。
以下の説明では機械学習装置２００が強化学習を行う場合について説明するが、機械学習装置２００が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
【００２６】
機械学習装置２００に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント（本実施形態における機械学習装置２００に相当）は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択（意思決定）を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【００２７】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、位置偏差を低減するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【００２８】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Ｓの下で、行動Ａを選択する価値Ｑ（Ｓ，Ａ）を学習する方法であるＱ学習（Q-learning）を用いる場合を例にとって説明をする。
Ｑ学習では、或る状態Ｓのとき、取り得る行動Ａのなかから、価値Ｑ（Ｓ，Ａ）の最も高い行動Ａを最適な行動として選択することを目的とする。
【００２９】
しかしながら、Ｑ学習を最初に開始する時点では、状態Ｓと行動Ａとの組合せについて、価値Ｑ（Ｓ，Ａ）の正しい値は全く分かっていない。そこで、エージェントは、或る状態Ｓの下で様々な行動Ａを選択し、その時の行動Ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（Ｓ，Ａ）を学習していく。
【００３０】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（Ｓ，Ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしＱ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Ｑ（Ｓ，Ａ）の更新式は、例えば、次の数式２（以下に数２として示す）により表すことができる。
【００３１】
【数２】
2020134960.tif 000004
【００３２】
上記の数式２において、Ｓｔは、時刻ｔにおける環境の状態を表し、Ａｔは、時刻ｔにおける行動を表す。行動Ａｔにより、状態はＳｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態Ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動Ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００３３】
上述した数式２は、試行Ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）を更新する方法を表している。
この更新式は、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）よりも、行動Ａｔによる次の状態Ｓｔ＋１における最良の行動の価値ｍａｘａ  Ｑ（Ｓｔ＋１，Ａ）の方が大きければ、Ｑ（Ｓｔ，Ａｔ）を大きくし、逆に小さければ、Ｑ（Ｓｔ，Ａｔ）を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬ｒｔ＋１のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
【００３４】
ここで、Ｑ学習では、すべての状態行動ペア（Ｓ，Ａ）についてのＱ（Ｓ，Ａ）のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのＱ（Ｓ，Ａ）の値を求めるには状態数が多すぎて、Ｑ学習が収束するのに多くの時間を要してしまう場合がある。
【００３５】
そこで、公知のＤＱＮ（Deep Q-Network）と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Ｑを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Ｑを適当なニューラルネットワークで近似することにより価値Ｑ（Ｓ，Ａ）の値を算出するようにしてもよい。ＤＱＮを利用することにより、Ｑ学習が収束するのに要する時間を短くすることが可能となる。なお、ＤＱＮについては、例えば、以下の非特許文献に詳細な記載がある。
【００３６】
＜非特許文献＞
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著［ｏｎｌｉｎｅ］、［平成２９年１月１７日検索］、インターネット〈ＵＲＬ：http://files.davidqiu.com/research/nature14236.pdf〉
【００３７】
以上説明をしたＱ学習を機械学習装置２００が行う。具体的には、機械学習装置２００は、速度フィードフォワード部１０８のＩＩＲフィルタ部１０８２のＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓ、並びに機械学習時の加工プログラムを実行することで取得されるサーボ制御装置１００の位置偏差情報、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る、ＩＩＲフィルタの伝達関数ＶＦＦ（ｚ）の係数ｒ、ωｎｔｓの調整を行動Ａとして選択する価値Ｑを機械学習（以下、学習という）する。機械学習装置２００は、数式１のＩＩＲフィルタの伝達関数Ｆ（ｚ）が０になるｚである零点を探索する。
具体的には、本発明の実施形態に係る機械学習装置２００は、図４に示すように、数式１のＩＩＲフィルタの伝達関数Ｆ（ｚ）の零点を極座標で表した半径ｒと偏角ωｎｔｓとをそれぞれ所定の範囲内で探索して学習することで、位置偏差が最小になるような半径ｒと偏角ωｎｔｓを学習して、位置偏差が最小になる伝達関数Ｆ（ｚ）の係数ｒと係数ωｎｔｓを設定する。
【００３８】
機械学習装置２００は、ＩＩＲフィルタ部１０８２のＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓの値に基づいて、学習時の加工プログラムを実行することで前述した加工形状の位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３における、サーボ制御装置１００の位置指令及び位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Ｓを観測して、行動Ａを決定する。機械学習装置２００は、行動Ａをするたびに報酬が返ってくる。機械学習装置２００は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習装置２００は、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の零点の値に基づいて算出される係数の値に基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置１００の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Ｓに対して、最適な行動Ａ（すなわち、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の最適な零点の値）を選択することが可能となる。位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３とでは、Ｘ軸方向及びＹ軸方向のサーボモータの回転方向は変わらず、機械学習装置２００は線形動作時のＩＩＲフィルタの伝達関数Ｆ（ｚ）の零点の学習を行うことができる。
【００３９】
すなわち、機械学習装置２００により学習された価値関数Ｑに基づいて、或る状態Ｓに係るＩＩＲフィルタの伝達関数Ｆ（ｚ）に対して適用される行動Ａのうち、Ｑの値が最大となるような行動Ａを選択することで、学習時の加工プログラムを実行することで取得される位置偏差が最小になるような行動Ａ（すなわち、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の零点の値）を選択することが可能となる。
【００４０】
零点の探索範囲は図４の複素平面において、半径ｒを、例えば０≦ｒ≦１の範囲とし、偏角ωｎｔｓを、速度ループの応答できる周波数範囲で規定する。ＩＩＲフィルタの伝達関数Ｆ（ｚ）の分子の解（零点）が複素根ｚ＝ｒｅ±jωｎｔｓを持つとき、（偏角）／ｔｓ＝ωｎは減衰中心角周波数[rad/s]を表す。中心周波数をｆｎとすると、減衰中心角周波数ωｎはωｎ＝２πｆｎで表される。例えば、減衰中心角周波数ωｎが１００・２π≦ωｎ≦５００・２πであるとき、探索範囲の周波数は１００−５００Ｈｚとなるが、ｔｓ＝０．０
００５[sec]の場合は、偏角の範囲は０．０５・２π≦ωｎｔｓ≦０．２５・２πとなる。図４の複素平面では、１８度から９０度の扇形の範囲が探索範囲となる。
【００４１】
極座標で零点を探索する場合、まず、半径ｒを、（０≦ｒ≦１）の範囲内の任意の値に固定し、上記の１８度から９０度の扇形の範囲の探索範囲において偏角ωｎｔｓ試行的に設定してｚ＝ｒｅｉωｎｔｓ及びその共役複素数ｚ＊＝ｒｅ-ｉωｎｔｓが、（ｚ２＋ｒ（−ｒｅｊωｎｔｓ−ｒｅ-ｊωｎｔｓ）ｚ＋ｒ２）の零点となるような係数（−ｒｅｊωｎｔｓ−ｒｅ-ｊωｎｔｓ）及びｒを設定する。偏角ωｎｔｓの初期設定値は上記の１８度から９０度の扇形の探索範囲で設定される。
【００４２】
機械学習装置２００は、求めた係数ｒ、ωｎｔｓの調整情報を行動ＡとしてＩＩＲフィルタ部１０８２に送り、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の分子の係数ｒ、ωｎｔｓを設定する。機械学習装置２００が偏角ωｎｔｓの探索を行う学習により価値Ｑの値が最大となるような、好適な偏角ωｎ０ｔｓが決定されると、その後に、偏角ωｎｔｓをその偏角ωｎ０ｔｓに固定して半径ｒを可変とし、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の分子の係数ｒ、ωｎｔｓを設定する。半径ｒの探索を行う学習により、価値Ｑの値が最大となるような、最適な半径ｒ０が決定される。
【００４３】
以上のようにして、位置偏差が最小になるように、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の零点を極座標で表した半径ｒと、偏角ωｎｔｓとをそれぞれ所定の範囲内を探索して学習することで、伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓの最適化を行うことができる。図５に係数が最適化されたＩＩＲフィルタのフィルタゲインの一例を示す。
なお、半径ｒと偏角ωｎｔｓとは同時に学習してもよいが、別々に学習することで、機械学習量を低減し、機械学習の収束時間を短縮化することができる。
【００４４】
図６は本開示の第１実施形態の機械学習装置２００を示すブロック図である。
上述した強化学習を行うために、図６に示すように、機械学習装置２００は、状態情報取得部２０１、学習部２０２、行動情報出力部２０３、価値関数記憶部２０４、及び最適化行動情報出力部２０５を備える。学習部２０２は報酬出力部２０２１、価値関数更新部２０２２、行動情報生成部２０２３及び探索範囲設定部２０２４を備える。探索範囲設定部２０２４は再学習のために用いられ、詳細な説明は後述する。
【００４５】
状態情報取得部２０１は、サーボ制御装置１００における速度フィードフォワード部１０８のＩＩＲフィルタ部１０８２のＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓの値に基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置１００の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Ｓを、サーボ制御装置１００から取得する。この状態情報Ｓは、Ｑ学習における、環境状態Ｓに相当する。
状態情報取得部２０１は、取得した状態情報Ｓを学習部２０２に対して出力する。
【００４６】
なお、最初にＱ学習を開始する時点でのＩＩＲフィルタの伝達関数Ｆ（ｚ）の初期設定は、予めユーザが設定するようにする。本実施形態では、その後、ユーザが初期設定したＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓを、前述したとおり、零点を極座標で表した半径ｒ及び偏角ωｎｔｓをそれぞれ所定の範囲内を探索する強化学習により最適なものに調整する。ＩＩＲフィルタ部１０８２の係数βは固定値とし、例えばβ＝１とする。また、伝達関数Ｆ（ｚ）の分子の係数ｒ、ωｎｔｓの初期設定については、例えばｒを０≦ｒ≦１の範囲内の値、ωｎｔｓを前述した所定の探索範囲内の値とすることができる。
また、係数ｒ、ωｎｔｓは予め操作者が工作機械を調整している場合には、調整済の伝達関数の係数ｒ、ωｎｔｓを初期値として機械学習してもよい。
【００４７】
学習部２０２は、或る環境状態Ｓの下で、ある行動Ａを選択する場合の価値Ｑ（Ｓ，Ａ）を学習する部分である。なお行動Ａは、例えば、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の分子の係数ｒ、ωｎｔｓの修正情報である。
【００４８】
報酬出力部２０２１は、或る状態Ｓの下で、行動Ａを選択した場合の報酬を算出する部分である。ここで、状態Ｓにおける状態変数である位置偏差の集合（位置偏差集合）をＰＤ（Ｓ）、行動情報Ａにより状態Ｓから変化した状態情報Ｓ´に係る状態変数である位置偏差集合をＰＤ（Ｓ´）で示す。また、状態Ｓにおける位置偏差の評価関数値を、予め設定された評価関数ｆ（ＰＤ（Ｓ））に基づいて算出される値とする。
【００４９】
評価関数ｆとしては、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の２ｎ（ｎは自然数）乗の積算値を算出する関数
∫e2ndt（ｎは自然数）
位置偏差の絶対値の最大値を算出する関数
Ｍａｘ｛|e|｝  
等を適用することができる。
【００５０】
このとき、行動情報Ａにより修正された状態情報Ｓ´に係る修正後の速度フィードフォワード部１０８に基づいて動作したサーボ制御装置１００の位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の速度フィードフォワード部１０８に基づいて動作したサーボ制御装置１００の位置偏差の評価関数値ｆ（ＰＤ（Ｓ））よりも大きくなった場合に、報酬出力部２０２１は、報酬の値を負の値とする。
【００５１】
一方で、位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、位置偏差の評価関数値ｆ（ＰＤ（Ｓ））よりも小さくなった場合に、報酬出力部２０２１は、報酬の値を正の値とする。
なお、位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、位置偏差の評価関数値ｆ（ＰＤ（Ｓ））と等しい場合は、報酬出力部２０２１は、報酬の値をゼロとする。
【００５２】
また、行動Ａを実行後の状態Ｓ´の位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、前の状態Ｓにおける位置偏差の評価関数値ｆ（ＰＤ（Ｓ））より大きくなった場合の負の値は、比率に応じて大きくするようにしてもよい。つまり位置偏差の評価関数値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Ａを実行後の状態Ｓ´の位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、前の状態Ｓにおける位置偏差の評価関数値ｆ（ＰＤ（Ｓ））より小さくなった場合の正の値は、比率に応じて大きくするようにしてもよい。つまり位置偏差の評価関数値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
【００５３】
価値関数更新部２０２２は、状態Ｓと、行動Ａと、行動Ａを状態Ｓに適用した場合の状態Ｓ´と、上記のようにして算出された報酬の値と、に基づいてＱ学習を行うことにより、価値関数記憶部２０４が記憶する価値関数Ｑを更新する。
価値関数Ｑの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
【００５４】
行動情報生成部２０２３は、現在の状態Ｓに対して、Ｑ学習の過程における行動Ａを選択する。行動情報生成部２０２３は、Ｑ学習の過程において、サーボ制御装置１００のＩＩＲフィルタ部１０８２のＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓ修正する動作（Ｑ学習における行動Ａに相当）を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部２０３に対して出力する。
より具体的には、行動情報生成部２０２３は、例えば、極座標で零点を探索するために、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の、ωｎｔｓ分子（ｚ２＋ｒ（−ｒｅｊωｎｔｓ−ｒｅ-ｊωｎｔｓ）ｚ＋ｒ２）においてｚの零点をｒｅｉｊωｎｔｓとして、状態情報取得部２０１から受けた半径ｒを固定した状態で、状態情報取得部２０１から受けた偏角ωｎｔｓを探索範囲内で増加又は減少させる。そして、固定した半径ｒ及び増加又は減少させた偏角ωｎｔｓにより、零点とするｚ及びその共役複素数ｚ＊を設定し、当該零点に基づいて係数ωｎｔｓを新たに求める。
【００５５】
行動情報生成部２０２３は、偏角ωｎｔｓを増加又は減少させて、ＩＩＲフィルタの伝達関数ＶＦＦ（ｚ）の係数ωｎｔｓを新たに設定することで状態Ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動Ａ´としては、偏角ωｎｔｓを前回のアクションと同様に増加又は減少等、位置偏差の値がより小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００５６】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部２０２３は、次の行動Ａ´としては、例えば、偏角ωｎｔｓを、前回のアクションとは逆に減少又は増加等、位置偏差が前回の値よりも小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００５７】
行動情報生成部２０２３は、偏角ωｎｔｓの探索を続けて、最適化行動情報出力部２０５からの後述する最適化行動情報によって、学習により価値Ｑの値が最大となるような好適な偏角ωｎ０ｔｓが決定されると、その後に、偏角ωｎｔｓをその偏角ωｎ０ｔｓに固定して半径ｒを０≦ｒ≦１の範囲内で探索し、偏角ωｎｔｓの探索と同様にＩＩＲフィルタの伝達関数Ｆ（ｚ）の分子の係数ｒを設定する。行動情報生成部２０２３は、半径ｒの探索を続けて、最適化行動情報出力部２０５からの後述する最適化行動情報によって、学習により、価値Ｑの値が最大となるような好適な半径ｒ０が決定されると、分子の最適な係数ｒ０が決定される。
【００５８】
行動情報出力部２０３は、学習部２０２から出力される行動情報Ａをサーボ制御装置１００に対して送信する部分である。サーボ制御装置１００は上述したように、この行動情報に基づいて、現在の状態Ｓ、すなわち現在設定されているＩＩＲフィルタの伝達関数Ｆ（ｚ）の零点を極座標で表した半径ｒ及び偏角ωｎｔｓを微修正することで、次の状態Ｓ´（すなわち修正された零点に対応する、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒ、ωｎｔｓ）に遷移する。
【００５９】
価値関数記憶部２０４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態Ｓ、行動Ａ毎にテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部２０４に記憶された価値関数Ｑは、価値関数更新部２０２２により更新される。また、価値関数記憶部２０４に記憶された価値関数Ｑは、他の機械学習装置２００との間で共有されるようにしてもよい。価値関数Ｑを複数の機械学習装置２００で共有するようにすれば、各機械学習装置２００にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
【００６０】
最適化行動情報出力部２０５は、価値関数更新部２０２２がＱ学習を行うことにより更新した価値関数Ｑに基づいて、価値Ｑ（Ｓ，Ａ）が最大となる動作を速度フィードフォワード部１０８に行わせるための行動情報Ａ（以下、「最適化行動情報」と呼ぶ）を生成する。
より具体的には、最適化行動情報出力部２０５は、価値関数記憶部２０４が記憶している価値関数Ｑを取得する。この価値関数Ｑは、上述したように価値関数更新部２０２２がＱ学習を行うことにより更新したものである。そして、最適化行動情報出力部２０５は、価値関数Ｑに基づいて、行動情報を生成し、生成した行動情報をサーボ制御装置１００（速度フィードフォワード部１０８のＩＩＲフィルタ部１０８２）に対して出力する。この最適化行動情報には、行動情報出力部２０３がＱ学習の過程において出力する行動情報と同様に、偏角ωｎｔｓ、半径ｒの学習によって、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数を修正する情報が含まれる。
【００６１】
サーボ制御装置１００では、偏角ωｎｔｓ、半径ｒに基づく、行動情報に基づいてＩＩＲフィルタの伝達関数Ｆ（ｚ）の分子に係る伝達関数の係数が修正される。
【００６２】
以上の説明は、ＩＩＲフィルタの伝達関数Ｆ（ｚ）の極の探索を行う場合についても適用される。その場合、伝達関数Ｆ（ｚ）の分母（ｚ２＋ａ１＋ａ０）において、ｚ＝ｒｅｉωｎｔｓ及びその共役複素数ｚ＊＝ｒｅ-ｉωｎｔｓを極（偏角ωｎｔｓは所定の範囲内、０≦ｒ≦１）とした場合に、伝達関数Ｆ（ｚ）の係数ａ１を（−ｒｅｉωｎｔｓ−ｒｅ-ｉωｎｔｓ）及び係数ａ０をｒ２として設定することで、前述した零点の探索と同様に最適な半径ｒ、偏角ωｎｔｓを求め、これを変換して係数ａ１、ａ０の値を学習する。
【００６３】
本実施形態においては、報酬出力部２０２１は、報酬の値を、状態Ｓにおける位置偏差ＰＤ（Ｓ）を入力として予め設定された評価関数ｆ（ＰＤ（Ｓ））に基づいて算出される状態Ｓの位置偏差の値ｆ（ＰＤ（Ｓ））と、状態Ｓ´における位置偏差ＰＤ（Ｓ´）を入力として評価関数ｆに基づいて算出される状態Ｓ´の位置偏差の値ｆ（ＰＤ（Ｓ´））とを比較することで算出した。
しかし、報酬の値の算出にあたっては位置偏差以外の他の要素を加えてもよい。
例えば、機械学習装置２００に、減算器１０１の出力となる位置偏差の他に、加算器１０３の出力となる位置フォワード制御された速度指令、位置フォワード制御された速度指令と速度フィードバックとの差、及び加算器１０６の出力となる位置フォワード制御されたトルク指令等の少なくとも１つが加えられてもよい。
【００６４】
＜再学習＞
以上、機械学習装置２００の学習について説明したが、次に、学習中又は学習後に、探索範囲の端の選択が不適切であるかどうかを検出し、選択が不適切な場合に、新たな探索範囲に変更して学習（再学習）を行う、機械学習装置２００の構成及び動作について説明する。
機械学習装置２００の学習において、速度フィードフォワードにおける偏角ωｎｔｓの探索範囲が不適切な場合、学習により得られた速度フィードフォワード部１０８２のＩＩＲフィルタの探索解の減衰中心周波数（ωｎ／２π）が機械特性のピーク周波数と合わない場合がある。ここで、探索解とは探索範囲で最小の評価関数値を得ることができるパラメータ（ここでは、減衰中心周波数（ωｎ／２π））をいう。なお、図７では減衰中心周波数により探索範囲を示しているが、探索範囲を偏角ωｎｔｓ、又は減衰中心角周波数により示してもよい。偏角ωｎｔｓは速度フィードフォワード部１０８のＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ωｎｔｓに対応し、第１パラメータとなる。減衰中心周波数（ωｎ／２π）又は減衰中心角周波数ωｎは第１パラメータ（ωｎｔｓ）の探索に用いる第２パラメータとなる。
例えば、減衰中心角周波数ωｎの探索範囲が６００・２π≦ωｎ≦１０００・２πであるとき、探索範囲の減衰中心周波数（ωｎ／２π）は６００−１０００Ｈｚとなるが、周波数が６００Ｈｚ−１０００Ｈｚとすると、減衰中心周波数（ωｎ／２π）の最適な探索解は下端の６００Ｈｚが選ばれる。しかし、機械特性のピークの周波数は４００Ｈｚにあり、減衰中心周波数の探索解の周波数６００Ｈｚと合わない。
【００６５】
本実施形態では機械特性のピークの周波数が、減衰中心周波数（ωｎ／２π）の探索解の周波数と合わない場合に、図６に示す探索範囲設定部２０２４は、減衰中心周波数（ωｎ／２π）の探索解が機械特性のピークに一致又は近づくように、探索範囲の変更動作を行う。ここで、探索範囲の変更とは、現在設定されている探索範囲の端を拡張すること、現在設定されている探索範囲の一部と重複するように探索範囲を設定すること、又は現在設定されている探索範囲とは別な範囲に探索範囲を設定すること等である。
【００６６】
図８は探索範囲設定部の一構成例を示すブロック図である。図９は探索範囲設定部を主体とする機械学習装置の動作を示すフローチャートである。図９による動作は、機械学習装置２００の学習中又は学習後に行われる。
図８に示すように、探索範囲設定部２０２４は、探索解検出部２０２４Ａ、評価関数式推定部２０２４Ｂ、及び探索範囲変更部２０２４Ｃを備えている。
【００６７】
図９に示すステップＳ１１において、探索範囲設定部２０２４を除く図６に示した機械学習装置２００は、設定された周波数６００Ｈｚ〜１０００Ｈｚを探索範囲Ｒ１として学習を行う。
【００６８】
ステップＳ１２において、探索解検出部２０２４Ａは、報酬出力部２０２１で算出された評価関数値の集合を取得し、評価関数値の集合を図１０に示すように現在設定されている探索範囲Ｒ１内でプロットする。
【００６９】
ステップＳ１３において、探索解検出部２０２４Ａは、プロットされた評価関数値の曲線から、探索範囲Ｒ１の端が評価関数値の探索解になったかどうかを検出する。探索解検出部２０２４Ａは探索範囲Ｒ１の端が探索解になったことを検出した場合（ＹＥＳの場合）は、評価関数式推定部２０４２Ｂに検出信号を送る。図１０では、探索範囲Ｒ１でプロットされた評価関数値の曲線は左下がりとなっており、探索範囲Ｒ１の端を超えて評価関数値が下がる可能性がある。図１０では探索範囲Ｒ１の端を超えた場合の評価関数値の曲線を未知の範囲として示している。
ステップＳ１３において、探索解検出部２０２４Ａが探索範囲Ｒ１の端が探索解になったことを検出しない場合（ＮＯの場合）は、処理を終了する。
【００７０】
ステップＳ１４において、評価関数式推定部２０４２Ｂは、検出信号を受けると、探索範囲Ｒ１内で得られた評価関数値に基づいて周波数に対する評価関数式を評価関数式モデルから推定する。図１１は推定された評価関数式が二次関数である場合を示している。評価関数モデルは多項式であり、図１０の評価関数値の分布では、例えば、Ａω２＋Ｂω＋Ｃの評価関数モデルを用いることができる。ここで、ωはフィルタの減衰中心周波数、Ａ，Ｂ，Ｃは二次関数式の係数を示す。
【００７１】
ステップＳ１５において、探索範囲変更部２０２４Ｃは、推定された評価関数式の形状から、新たに探索範囲と探索回数を決定する。図１１では、現在設定されている探索範囲Ｒ１を拡張して新たな探索範囲Ｒ２を設定している。なお、図１２に示すように、現在設定されている探索範囲Ｒ１とは別の新たな探索範囲Ｒ３を設定しても、現在設定されている探索範囲Ｒ１の一部と重複するように新たな探索範囲Ｒ４を設定してもよい。なお、新たな探索範囲Ｒ４又は探索範囲Ｒ３を設定する場合、例えば、推定された評価関数式が二次関数であるときに、極小値を中心に±Δｘの範囲を探索範囲にすることができる。探索範囲変更部２０２４Ｃは新たに設定した探索範囲を探索解検出部２０２４Ａに送る。
【００７２】
ステップＳ１６において、探索範囲設定部２０２４を除く機械学習装置２００は、新たに設定された探索範囲で学習を行う。必要に応じて、機械特性のピークの周波数が、減衰中心周波数ωｎ／２πの探索解の周波数と合うように、又は近づくようにステップＳ１１〜Ｓ１６の動作が繰り返される。
以上の動作によって、適切な探索範囲となるように探索範囲を変更することができる。現在設定されている探索範囲周波数６００Ｈｚ〜１０００Ｈｚを探索範囲３００Ｈｚ〜１０００Ｈｚに拡張した場合の結果を図１３に示す。図１３に示されるように、機械特性のピークの周波数が、減衰中心角周波数ωｎの探索解の周波数と合うように探索範囲を設定することができる。以上の説明では、減衰中心周波数（ωｎ／２π）の探索範囲を規定しているが、減衰中心角周波数ωｎ又は偏角（ωｎｔｓ）で探索範囲を規定してもよい。
【００７３】
以上の説明では、探索範囲Ｒ１の端が探索解になったかどうかによって、新たな探索範囲を設定していたが、図１４に示すように、現在の探索範囲Ｒ５の端から幅Ｌだけ離れた範囲内に探索解があるかどうかよって、図９に示したような探索範囲を変更する動作を行ってもよい。この場合、図９のステップＳ１３において、探索解検出部２０２４Ａは、プロットされた評価関数値の曲線から、探索範囲Ｒ５の端から幅（所定の範囲）Ｌだけ離れた範囲内に探索解があるかどうかを検出する。探索範囲Ｒ５の端から幅Ｌだけ離れた範囲内に探索解がある場合には、例えば、図１４に示すように、探索解を含む探索範囲Ｒ６を設定することができる。この動作によれば、現在の探索範囲Ｒ５内の探索解の周波数を基準とした探索範囲を設定することができ、現在の探索範囲Ｒ５外に更に評価関数値の低い探索解がある場合にも、その探索解を検出することができる。
以上説明した動作は、速度フィードフォワードにおける半径ｒの探索範囲が不適切である場合にも適用される。この場合、半径ｒは速度フィードフォワード部１０８のＩＩＲフィルタの伝達関数Ｆ（ｚ）の係数ｒに対応し、第１パラメータとなる。
【００７４】
以上のように、本実施形態に係る機械学習装置２００を利用することで、サーボ制御装置１００の速度フィードフォワード部１０８のパラメータ調整を簡易化することができる。また、探索範囲設定部によって、探索範囲が適切な範囲でない場合でも適切な探索範囲となるように探索範囲を変更することができる。
【００７５】
以上、サーボ制御装置１００、機械学習装置２００に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、サーボ制御装置１００、及び機械学習装置２００のそれぞれは、ＣＰＵ（Central Processing Unit）等の演算処理装置を備える。また、サーボ制御装置１００、及び機械学習装置２００のそれぞれは、アプリケーションソフトウェアやＯＳ（Operating System）等の各種の制御用プログラムを格納したＨＤＤ（Hard Disk Drive）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Random Access Memory）といった主記憶装置も備える。
【００７６】
そして、サーボ制御装置１００、及び機械学習装置２００のそれぞれにおいて、演算処理装置が補助記憶装置からアプリケーションソフトウェアやＯＳを読み込み、読み込んだアプリケーションソフトウェアやＯＳを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやＯＳに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００７７】
機械学習装置２００については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにＧＰＵ（Graphics Processing Units）を搭載し、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）と呼ばれる技術により、ＧＰＵを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなＧＰＵを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【００７８】
（第２実施形態）
図１５は本開示の第２実施形態の制御装置の一構成例を示すブロック図である。図１５に示す制御装置１１は、サーボ制御装置１００Ａと機械学習装置２００とを備えている。図１５において図１の構成部材と同じ構成部材については同一符号を付して説明を省略する。
図１５に示した本実施形態のサーボ制御装置１００Ａは、図１に示したサーボ制御装置１００と比べて、加算器１０３、加算器１０６、速度フィードフォワード部１０８、及び位置フィードフォワード部１０９がなく、速度制御部１０５とサーボモータ３００との間にフィルタ１１０が設けられている点で異なる。機械学習装置２００はサーボ制御装置の構成の違いに基づいて、状態情報及び行動情報が異なり、状態情報及び行動情報の違いに基づく動作が異なることを除いて図６〜図１４を用いて説明した第１実施形態の機械学習装置の構成及び動作と同じである。以下、第１実施形態と異なる、サーボ制御装置の構成と動作、及び機械学習装置の動作について説明する。
【００７９】
図１５に示すサーボ制御装置１００Ａのフィルタ１１０は特定の周波数成分を減衰させるフィルタで、例えばノッチフィルタが用いられる。モータで駆動される工作機械等の機械では共振点が存在し、サーボ制御装置１００Ａで共振が増大する場合がある。ノッチフィルタを用いることで共振を低減することができる。フィルタ１１０の出力はトルク指令としてサーボモータ３００に出力される。
数式３（以下に数３として示す）は、フィルタ１１０としてのノッチフィルタの伝達関数Ｇ(ｓ)を示す。学習されるパラメータは係数ωｃ、ζ、Ｒである。
数式３の係数Ｒは減衰係数（ノッチの深さ）、係数ωｃは減衰中心角周波数、係数ζは比帯域（ノッチの減衰）である。中心周波数をｆｃ、帯域幅をｆｗとすると、係数ωｃはωｃ＝２πｆｃ、係数ζはτ＝ｆｗ／ｆｃで表される。
【数３】
2020134960.tif 000005
【００８０】
機械学習装置２００は、フィルタ１１０の伝達関数Ｇ（ｓ）の各係数ωｃ、ζ、Ｒに基づいて、前述した学習時の加工プログラムを実行することで取得されるサーボ制御装置１００Ａの位置偏差情報、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る、フィルタ１１０の伝達関数Ｇ（ｓ）の各係数ω、ζ、Ｒの調整を行動Ａとして選択する価値Ｑを学習する。機械学習装置２００は、行動Ａをするたびに報酬が返ってくる。この報酬は第１実施形態で説明したと同様に、報酬出力部２０２１は行動情報Ａにより修正される前の状態情報Ｓに係る修正前のフィルタ１１０に基づいて動作したサーボ制御装置１００Ａの位置偏差の評価関数値ｆ（ＰＤ（Ｓ））を算出する。また、報酬出力部２０２１は行動情報Ａにより修正された状態情報Ｓ´に係る修正後のフィルタ１１０に基づいて動作したサーボ制御装置１００Ａの位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））を算出する。そして、報酬出力部２０２１は評価関数値ｆ（ＰＤ（Ｓ））と評価関数値ｆ（ＰＤ（Ｓ））とを比較することで報酬を与える。機械学習装置２００は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習装置２００は、フィルタ１１０の伝達関数の各係数ωｃ、ζ、Ｒに基づいて、学習時の加工プログラムを実行することで取得される位置偏差情報及び位置指令を含む状態Ｓに対して、最適な行動Ａ（すなわち、フィルタ１１０の伝達関数の最適な係数ωｃ、ζ、Ｒ）を選択することが可能となる。
【００８１】
すなわち、機械学習装置２００により学習された価値関数Ｑに基づいて、或る状態Ｓに係るフィルタ１１０の伝達関数の各係数ωｃ、ζ、Ｒに対して適用される行動Ａのうち、Ｑの値が最大となるような行動Ａを選択することで、学習時の加工プログラムを実行することで生ずる機械端の振動が最小になるような行動Ａ（すなわち、フィルタ１１０の伝達関数の各係数ωｃ、ζ、Ｒ）を選択することが可能となる。
なお、最初にＱ学習を開始する時点でのフィルタ１１０の伝達関数の各係数ωｃ、ζ、Ｒは、予めユーザが生成するようにする。本実施形態では、ユーザが作成したフィルタ１１０の伝達関数の各係数ω、ζ、Ｒの初期設定値を、強化学習により最適なものに調整する。係数ωｃ、ζ、Ｒは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
また、係数ωｃ、ζ、Ｒは同時に学習してもよいが、別々に学習することで、機械学習量を低減し、機械学習の収束時間を短縮化することができる。
【００８２】
また、機械学習装置２００は、探索範囲設定部２０２４によって、探索範囲が適切な範囲でない場合、適切な探索範囲となるように探索範囲を変更する。
図１６に示すように、ノッチフィルタ減衰中心周波数（ωｃ／２π）の探索範囲が５００Ｈｚ−１０００Ｈｚであるとき、ノッチフィルタ減衰中心周波数ωｃ／２πの最適な探索解は下端の５００Ｈｚが選ばれる。しかし、機械特性のピークの周波数は４００Ｈｚであり、ノッチフィルタ減衰中心周波数ωｃ／２πの探索解の周波数５００Ｈｚと合わない。本実施形態でも、第１実施形態と同様に、探索範囲設定部２０２４は、機械特性のピークの周波数とノッチフィルタ減衰中心周波数ωｃ／２πの探索解の周波数とが合わない場合、ノッチフィルタ減衰中心周波数ωｃ／２πの探索解が機械特性のピークに一致又は近づくように、探索範囲の変更動作を行う。
【００８３】
具体的には、探索解検出部２０２４Ａは、報酬出力部２０２１で算出された評価関数値の集合を取得し、評価関数値の集合を現在設定されている探索範囲（５００Ｈｚ−１０００Ｈｚ）内でプロットし、プロットされた評価関数値の曲線から、探索範囲の端（５００Ｈｚ）が評価関数値の探索解になったかどうかを検出する。評価関数式推定部２０４２Ｂは、探索範囲の端が評価関数値の探索解になった場合は、探索範囲内で得られた評価関数値に基づいてノッチフィルタ減衰中心周波数に対する評価関数式を評価関数式モデルから推定する。探索範囲変更部２０２４Ｃは、推定された評価関数式の形状から、新たに探索範囲（３００Ｈｚ−１０００Ｈｚ）と探索回数を決定する。こうして、図１７に示すように、探索範囲設定部の探索範囲を拡張する探索範囲の変更動作で、探索範囲を３００Ｈｚ−１０００Ｈｚとすることで、探索解を４００Ｈｚとすることができ、振動を抑制することができる。なお、減衰中心角周波数ωｃはフィルタ１１０の伝達関数の各係数ωｃに対応し、第１パラメータとなる。減衰中心周波数（ωｃ／２π）は、第１パラメータ（ωｃ）の探索に用いる第２パラメータとなる。以上の説明では、ノッチフィルタ減衰中心周波数（ωｃ／２π）で探索範囲を規定しているが、減衰中心角周波数ωｃで探索範囲を規定してもよい。
【００８４】
図１７では、現在設定されている探索範囲の端を拡張しているが、現在設定されている探索範囲の一部と重複するように探索範囲を設定したり、又は現在設定されている探索範囲とは別な範囲に探索範囲を設定することも可能である。
以上説明した動作は、フィルタ１１０における、係数ζ、Ｒの探索範囲が不適切である場合にも適用される。
【００８５】
（第３実施形態）
図１８は本開示の第３実施形態の制御装置の一構成例を示すブロック図である。図１８に示す制御装置１２は、サーボ制御装置１００Ｂと機械学習装置２００とを備えている。図１８において図１の構成部材と同じ構成部材については同一符号を付して説明を省略する。
【００８６】
図１８に示した本実施形態のサーボ制御装置１００Ｂは、図１に示したサーボ制御装置１００と比べて、速度フィードフォワード部１０８のＩＩＲフィルタ部１０８２が速度フィードフォワード処理部１０８３に替わり、及び位置フィードフォワード部１０９が微分器１０９１と位置フィードフォワード処理部１０９２からなることが異なる。機械学習装置２００はサーボ制御装置の構成の違いに基づいて、状態情報及び行動情報が異なり、状態情報及び行動情報の違いに基づく動作が異なることを除いて図６〜図１４を用いて説明した第１実施形態の機械学習装置の構成及び動作と同じである。以下、第１実施形態と異なる、サーボ制御装置の構成と動作、及び機械学習装置の動作について説明する。
速度フィードフォワード部１０８は、位置指令に対して２回微分器１０８１が２回微分を行い、さらに速度フィードフォワード処理部１０８３が速度フィードフォワード処理を行い、処理結果を速度フィードフォワード項として加算器１０６に出力する。速度フィードフォワード処理部１０８３の数式モデルの伝達関数は、数式４（以下に数４として示す）で示された伝達関数Ｋ（ｓ）である。数式４の係数ｃｉ、ｄｊ(０≦ｉ≦ｍ，０≦ｊ≦ｎ、ｍ，ｎは自然数である)の最適値は機械学習装置２００で機械学習される。
【数４】
2020134960.tif 000006
【００８７】
位置フィードフォワード部１０９は、位置指令に対して微分器１０９１が微分を行い、さらに位置フィードフォワード処理部１０９２が位置フィードフォワード処理を行い、処理結果を位置フィードフォワード項として加算器１０３に出力する。位置フィードフォワード処理部１０９２の数式モデルの伝達関数は、数式５（以下に数５として示す）で示された伝達関数Ｌ（ｓ）である。数式５の係数ｅｉ、ｆｊ(０≦ｉ≦ｍ，０≦ｊ≦ｎ、ｍ，ｎは自然数である)の最適値は機械学習装置２００で機械学習される。
【数５】
2020134960.tif 000007
【００８８】
第３実施形態では、機械学習装置２００は、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊと、位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊとを学習する。
第３実施形態では、機械学習装置２００は、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊの学習と、位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊの学習とは別に行い、位置フィードフォワード処理部１０９２より内側（インナーループ）にある速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊの学習を位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊの学習よりも先に行う。具体的には、位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊを固定し、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊの最適な値を学習する。その後に、機械学習装置２００は、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊを学習で得られた最適な値に固定して、位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊを学習する。
そうすることで、学習により最適化された速度フィードフォワード項の条件下で、位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊの最適化に係る学習を行うことができ、位置偏差の変動を抑制することができる。
このため、位置フィードフォワード処理部１０９２より内側（インナーループ）にある速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊの学習が位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊの学習より先にした方が、位置偏差の変動を抑制し、高精度化を実現できる。
【００８９】
機械学習装置２００は、まず、サーボ制御装置１００Ｂにおける、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の各係数ｃｉ、ｄｊ(０≦ｉ≦ｍ，０≦ｊ≦ｎ、ｍ，ｎは自然数である)の値、並びに学習時の加工プログラムを実行することで取得されるサーボ制御装置１００Ｂの位置偏差、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の各係数ｃｉ、ｃｊの値の調整を行動Ａとして選択する価値Ｑを学習する。
【００９０】
機械学習装置２００は、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の各係数ｃｉ、ｄｊに基づいて、学習時の加工プログラムを実行することで前述した加工形状の位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３における、サーボ制御装置１００Ｂの位置指令及び位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Ｓを観測して、行動Ａを決定する。機械学習装置２００は、行動Ａをするたびに報酬が返ってくる。この報酬は第１実施形態で説明したと同様に、報酬出力部２０２１は行動情報Ａにより修正される前の状態情報Ｓに係る修正前のフィルタ１１０に基づいて動作したサーボ制御装置１００Ｂの位置偏差の評価関数値ｆ（ＰＤ（Ｓ））を算出する。また、報酬出力部２０２１は行動情報Ａにより修正された状態情報Ｓ´に係る修正後のフィルタ１１０に基づいて動作したサーボ制御装置１００Ａの位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））を算出する。そして、報酬出力部２０２１は評価関数値ｆ（ＰＤ（Ｓ））と評価関数値ｆ（ＰＤ（Ｓ））とを比較することで報酬を与える。機械学習装置２００は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習装置２００は、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の各係数ｃｉ、ｄｊに基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置１００Ｂの位置指令及び位置偏差を含む指令、フィードバック等のサーボ状態を含む状態Ｓに対して、最適な行動Ａ（すなわち、速度フィードフォワード処理部１０８３の最適な係数ｃｉ、ｄｊ）を選択することが可能となる。位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３とでは、Ｘ軸方向及びＹ軸方向のサーボモータの回転方向は変わらず、機械学習装置２００は線形動作時の速度フィードフォワード処理部１０８３の伝達関数の各係数ｃｉ、ｄｊの学習を行うことができる。
【００９１】
すなわち、機械学習装置２００により学習された価値関数Ｑに基づいて、或る状態Ｓに係る速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の各係数ｃｉ、ｄｊに対して適用される行動Ａのうち、Ｑの値が最大となるような行動Ａを選択することで、学習時の加工プログラムを実行することで取得される位置偏差が最小になるような行動Ａ（すなわち、速度フィードフォワード処理部１０８３の係数ｃｉ、ｄｊ）を選択することが可能となる。
なお、最初にＱ学習を開始する時点での速度フィードフォワード処理部１０８３の係数ｃｉ、ｄｊは、予めユーザが生成するようにする。本実施形態では、ユーザが作成した速度フィードフォワード処理部１０８３の係数ｃｉ、ｄｊの初期設定値を、強化学習により最適なものに調整する。速度フィードフォワード処理部１０８３の係数ｃｉ、ｄｊは例えば、初期設定値として、数式４のｃ０＝１、ｃ１＝０、ｃ２＝０、・・・、ｃｍ＝０、ｄ０＝１、ｄ１＝０、ｄ２＝０、・・・ｄｎ＝０とする。また、係数ｃｉ、ｄｊの次数ｍ、ｎを予め設定する。すなわち、ｃｉについては０≦ｉ≦ｍ、ｄｊについては０≦ｊ≦ｎとする。
なお、係数ｃｉ、ｄｊは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
【００９２】
以上説明した速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊの学習が終了すると、位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊの学習が開始され、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊの学習と同様にして、位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊの学習が行われる。
【００９３】
また、機械学習装置２００は、第１実施形態と同様に、速度フィードフォワード処理部１０８３の伝達関数Ｋ（ｓ）の係数ｃｉ、ｄｊの学習及び位置フィードフォワード処理部１０９２の伝達関数Ｌ（ｓ）の係数ｅｉ、ｆｊの学習において、探索範囲設定部２０２４によって、探索範囲が適切な範囲でない場合でも適切な探索範囲となるように探索範囲を変更する。
本実施形態でも、第１実施形態と同様に、探索範囲設定部２０２４は、機械特性のピークの周波数と、速度フィードフォワード処理部１０８３又は位置フィードフォワード処理部１０９２の係数ｃｉ、ｄｊ又は係数ｅｉ、ｆｊの探索解によってきめられるフィルタ特性の減衰中心数の周波数とが合わない場合、フィルタ特性の減衰中心周波数が機械特性のピークに一致又は近づくように、係数ｃｉ、ｄｊ又はｅｉ、ｆｊの探索範囲の変更動作を行う。
【００９４】
具体的には、探索解検出部２０２４Ａは、報酬出力部２０２１で算出された評価関数値の集合を取得し、評価関数値の集合を現在設定されている係数ｃｉ、ｄｊ又は係数ｅｉ、ｆｊの探索範囲内でプロットし、プロットされた評価関数値の曲線から、探索範囲の端が評価関数値の探索解になったかどうかを検出する。評価関数式推定部２０４２Ｂは、探索範囲の端が評価関数値の探索解になった場合は、探索範囲Ｒ内で得られた評価関数値に基づいて係数ｃｉ、ｄｊ又は係数ｅｉ、ｆｊに対する評価関数式を評価関数式モデルから推定する。探索範囲変更部２０２４Ｃは、推定された評価関数式の形状から、新たに探索範囲と探索回数を決定する。こうして、探索範囲設定部の探索範囲を拡張する探索範囲の変更動作で、機械特性のピークの周波数と、速度フィードフォワード処理部１０８３又は位置フィードフォワード処理部１０９２のフィルタ特性の減衰中心数の周波数と合わせることができ、振動を抑制することができる。なお、係数ｃｉ、ｄｊ又は係数ｅｉ、ｆｊは第１パラメータとなる。
【００９５】
以上の説明では、現在設定されている探索範囲の端を拡張しているが、現在設定されている探索範囲の一部と重複するように探索範囲を設定したり、又は現在設定されている探索範囲とは別な範囲に探索範囲を設定することも可能である。
【００９６】
以上本発明に係る各実施形態について説明したが、上記のサーボ制御装置、及び機械学習装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のサーボ制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００９７】
プログラムは、様々なタイプの非一時的なコンピュータ読み取り可能な記録媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ読み取り可能な記録媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ読み取り可能な記録媒体の例は、磁気記録媒体（例えば、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。
【００９８】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態及び実施例のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００９９】
＜機械学習装置がサーボ制御装置に含まれる変形例＞
上述した実施形態では、機械学習装置２００、及びサーボ制御装置１００、１００Ａ、１００Ｂを制御装置１０、１１、１２として構成する第１実施形態〜第３実施形態について説明した。これらの実施形態では、機械学習装置２００、及びサーボ制御装置１００は別体の装置により構成しているが、これらの装置の一つを他の装置と一体に構成してもよい。例えば、機械学習装置２００の機能の一部又は全部をサーボ制御装置１００により実現するようにしてもよい。
【０１００】
＜システム構成の自由度＞
図１９は他の構成の制御装置を示すブロック図である。制御装置１３は、図１９に示すように、ｎ台の機械学習装置２００−１〜２００−ｎ、及びｎ台のサーボ制御装置１００−１〜１００−ｎ、サーボモータ３００−１〜３００−ｎ、及びネットワーク４００を備えている。なお、ｎは任意の自然数である。ｎ台の機械学習装置２００−１〜２００−ｎのそれぞれは図６に示した機械学習装置２００に対応している。ｎ台のサーボ制御装置１００−１〜１００−ｎのそれぞれは図１に示したサーボ制御装置１００、図１５に示したサーボ制御装置１００Ａ又は図１８に示したサーボ制御装置１００Ｂのいずれかに対応している。
【０１０１】
図１９では、機械学習装置２００−１〜２００−ｎとサーボ制御装置１００−１〜１００−ｎとのｎ個の組は、ネットワーク４００を介して接続されているが、機械学習装置２００−１〜２００−ｎとサーボ制御装置１００−１〜１００−ｎとのｎ個の組は、それぞれの組の機械学習装置とサーボ制御装置とが接続インタフェースを介して直接接続されてもよい。これら機械学習装置２００−１〜２００−ｎとサーボ制御装置１００−１〜１００−ｎとのｎ個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【０１０２】
なお、ネットワーク４００は、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク６００における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【０１０３】
上述した図１９の制御装置では、機械学習装置２００−１〜２００−ｎとサーボ制御装置１００−１−１００−ｎとが１対１の組として通信可能に接続されているが、例えば１台の機械学習装置２００−１が複数のサーボ制御装置１００−１〜１００−ｍ（ｍ＜ｎ又はｍ＝ｎ）とネットワーク４００を介して通信可能に接続され、１台の機械学習装置２００−１が各サーボ制御装置１００−１〜１００−ｍの機械学習を実施するようにしてもよい。
その際、機械学習装置２００−１の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置２００−１の各機能を実現してもよい。
また、複数の同じ型名、同一仕様、又は同一シリーズのサーボ制御装置１００−１〜１００−ｎとそれぞれ対応する複数の機械学習装置２００−１〜２００−ｎがあった場合に、各機械学習装置２００−１〜２００−ｎにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【符号の説明】
【０１０４】
１０、１１、１２、１３  制御装置
１００、１００Ａ、１００Ｂ  サーボ制御装置
２００  機械学習装置
２０１  状態情報取得部
２０２  学習部
２０３  行動情報出力部
２０４  価値関数記憶部
２０５  最適化行動情報出力部
２０２１  報酬出力部
２０２２  価値関数更新部
２０２３  行動情報生成部
２０２４  探索範囲設定部
３００  サーボモータ
４００  ネットワーク
【図１】
2020134960.tif 000008
【図２】
2020134960.tif 000009
【図３】
2020134960.tif 000010
【図４】
2020134960.tif 000011
【図５】
2020134960.tif 000012
【図６】
2020134960.tif 000013
【図７】
2020134960.tif 000014
【図８】
2020134960.tif 000015
【図９】
2020134960.tif 000016
【図１０】
2020134960.tif 000017
【図１１】
2020134960.tif 000018
【図１２】
2020134960.tif 000019
【図１３】
2020134960.tif 000020
【図１４】
2020134960.tif 000021
【図１５】
2020134960.tif 000022
【図１６】
2020134960.tif 000023
【図１７】
2020134960.tif 000024
【図１８】
2020134960.tif 000025
【図１９】
2020134960.tif 000026