(57)【要約】【課題】外部指令に応じて発生させる指令を最適化する駆動装置及び機械学習装置を提供する。【解決手段】外部から入力される外部指令を変換した指令により加工機のサーボモータの速度又はトルクを制御する駆動装置１は、外部指令から指令への適切な変換を学習する機械学習装置１００を備え、機械学習装置は、外部指令、指令、及び加工機又はサーボモータの状態を、環境の現在状態を表す状態変数として観測する状態観測部１０６と、加工機による加工の評価結果を示す判定データを取得する判定データ取得部１０８と、状態変数と判定データとを用いて、外部指令、及び加工機又はサーボモータの状態と、指令と、を関連付けて学習する学習部１１０と、を備える。【選択図】図２
2019168973.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力される外部指令を変換した指令により加工機のサーボモータの速度又はトルクを制御する駆動装置であって、
前記外部指令から前記指令への適切な変換を学習する機械学習装置を備え、
前記機械学習装置は、
前記外部指令、前記指令、及び前記加工機又は前記サーボモータの状態を、環境の現在状態を表す状態変数として観測する状態観測部と、
前記加工機による加工の評価結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記外部指令及び前記加工機又は前記サーボモータの状態と、前記指令と、を関連付けて学習する学習部と、を備える
駆動装置。
【請求項２】
前記状態変数は、前記加工機又は前記サーボモータの状態として、前記加工機の各軸の速度指令値、トルク指令値、位置フィードバック、速度フィードバック、トルクフィードバック、モータ電流値及びモータ温度、前記加工のサイクルタイム、前記加工機の各部の温度、前記加工で使用される材料の形状及び素材、前記加工で使用される金型の形状及び素材の少なくとも１つを含む
請求項１記載の駆動装置。
【請求項３】
前記判定データは、加工品の精度及び品質、前記加工機、金型又はボールねじの振動、前記サーボモータの負荷、前記加工機の消費電力、及び前記加工のサイクルタイムの少なくとも１つを含む
請求項１又は２記載の駆動装置。
【請求項４】
前記学習部は、
前記評価結果に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記外部指令及び前記加工機又は前記サーボモータの状態に対する前記指令の価値を表す関数を更新する価値関数更新部と、を備える
請求項１乃至３いずれか１項記載の駆動装置。
【請求項５】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算する
請求項１乃至４いずれか１項記載の駆動装置。
【請求項６】
前記学習部による学習結果に基づいて前記指令の値を出力する意思決定部を更に備える
請求項１乃至５いずれか１項記載の駆動装置。
【請求項７】
前記学習部は、複数の前記駆動装置から得られた前記状態変数及び前記判定データを用いて学習を行う
請求項１乃至６いずれか１項記載の駆動装置。
【請求項８】
前記機械学習装置は、クラウドコンピューティング、フォグコンピューティング、エッジコンピューティング環境により実現される
請求項１乃至７いずれか１項記載の駆動装置。
【請求項９】
外部から駆動装置に入力される外部指令から、加工機のサーボモータの速度又はトルクを制御する指令への適切な変換を学習する機械学習装置であって、
前記外部指令、前記指令、及び前記加工機又は前記サーボモータの状態を、環境の現在状態を表す状態変数として観測する状態観測部と、
前記加工機による加工の評価結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記外部指令及び前記加工機又は前記サーボモータの状態と、前記指令と、を関連付けて学習する学習部と、を備える
機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、駆動装置及び機械学習装置に関し、特に外部指令に応じて発生させる指令を最適化する駆動装置及び機械学習装置に関する。
【背景技術】
【０００２】
制御装置が出力した指令（以下、外部指令という）を受けて、デバイスを制御するための指令（以下、単に指令という）を発生させる駆動装置がある。典型的には、図１０に示すように、制御装置が外部指令としてのアナログ電圧指令を出力し、サーボモータ駆動装置がアナログ電圧指令をＡ／Ｄ変換して速度指令及びトルク指令を生成し、変換後の指令（速度指令及びトルク指令）によりサーボモータを駆動させる例がある。
【０００３】
アナログ電圧指令はアナログ電圧値により指令値を伝達するが、半導体特性及び温度変化の影響（温度ドリフト）により生じる入力オフセット電圧並びにノイズ等により、制御装置が意図した指令値と、駆動装置がアナログ電圧受信値に基づいて解釈する指令値と、の間に誤差が生じる場合がある。このような誤差は、サーボモータの制御性に悪影響を与え、例えばサイクルタイムの増大、応答性の低下、加工品質の低下、消費電力の増大等の現象をもたらすことがある。
【０００４】
従来、このような現象の発生を抑えるため、例えば（１）制御装置が外部指令として０Ｖ指令を出力するときは、同時にサーボオフ信号や軸停止信号も出力する、（２）制御装置がサーボモータの動きをモニタし、サーボモータの動きを打ち消すような（逆方向の）外部指令を出力する（ループを組む）、（３）不感帯やフィルタを設ける（例えば±０．００１Ｖの電圧変動は無効とする）等の対策を行うことで、アナログ電圧指令の受信値に誤差が生じてもサーボモータを誤動作させないようにしていた。
【０００５】
関連技術として、特許文献１には、モータを制御するための位置指令、速度指令等の補正量を機械学習により算出するモータ制御装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−１０２６１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の手法は、種々の機械的要因により生じる、送り軸の送りの滑らかさの悪化を補正することを目的としており、上述のような好ましくない現象の原因となる、制御装置が意図した指令値と、駆動装置が解釈した指令値と、の間に生じる誤差を是正するためのものではない。
【０００８】
従来より行われていた対策（１）（２）は、ハードウェアの追加や制御装置での複雑な制御も含む大掛かりな仕組みを構築しなければならないという問題がある。（３）は、不感帯やフィルタのしきい値を下回る指令値の変動や、しきい値を超える誤差に対応できないという問題がある。したがってこれらの対策は十分でなく、付加的な対策が必要とされている。
【０００９】
本発明はこのような課題を解決するためのものであり、外部指令に応じて発生させる指令を最適化する駆動装置及び機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態にかかる駆動装置は、外部から入力される外部指令を変換した指令により加工機のサーボモータの速度又はトルクを制御する駆動装置であって、前記外部指令から前記指令への適切な変換を学習する機械学習装置を備え、前記機械学習装置は、前記外部指令、前記指令、及び前記加工機又は前記サーボモータの状態を、環境の現在状態を表す状態変数として観測する状態観測部と、前記加工機による加工の評価結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記外部指令及び前記加工機又は前記サーボモータの状態と、前記指令と、を関連付けて学習する学習部と、を備える。
本発明の一実施形態にかかる駆動装置において、前記状態変数は、前記加工機又は前記サーボモータの状態として、前記加工機の各軸の速度指令値、トルク指令値、位置フィードバック、速度フィードバック、トルクフィードバック、モータ電流値及びモータ温度、前記加工のサイクルタイム、前記加工機の各部の温度、前記加工で使用される材料の形状及び素材、前記加工で使用される金型の形状及び素材の少なくとも１つを含む。
本発明の一実施形態にかかる駆動装置において、前記判定データは、加工品の精度及び品質、前記加工機、金型又はボールねじの振動、前記サーボモータの負荷、前記加工機の消費電力、及び前記加工のサイクルタイムの少なくとも１つを含む。
本発明の一実施形態にかかる駆動装置において、前記学習部は、前記評価結果に関連する報酬を求める報酬計算部と、前記報酬を用いて、前記外部指令及び前記加工機又は前記サーボモータの状態に対する前記指令の価値を表す関数を更新する価値関数更新部と、を備える。
本発明の一実施形態にかかる駆動装置において、前記学習部は、前記状態変数と前記判定データとを多層構造で演算する。
本発明の一実施形態にかかる駆動装置において、前記学習部による学習結果に基づいて前記指令の値を出力する意思決定部を更に備える。
本発明の一実施形態にかかる駆動装置において、前記学習部は、複数の前記駆動装置から得られた前記状態変数及び前記判定データを用いて学習を行う。
本発明の一実施形態にかかる駆動装置において、前記機械学習装置は、クラウドコンピューティング、フォグコンピューティング、エッジコンピューティング環境により実現される。
本発明の一実施形態にかかる機械学習装置は、外部から駆動装置に入力される外部指令から、加工機のサーボモータの速度又はトルクを制御する指令への適切な変換を学習する機械学習装置であって、前記外部指令、前記指令、及び前記加工機又は前記サーボモータの状態を、環境の現在状態を表す状態変数として観測する状態観測部と、前記加工機による加工の評価結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記外部指令及び前記加工機又は前記サーボモータの状態と、前記指令と、を関連付けて学習する学習部と、を備える。
【発明の効果】
【００１１】
本発明により、外部指令に応じて発生させる指令を最適化する駆動装置及び機械学習装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態による駆動装置の概略的なハードウェア構成図である。
【図２】第１の実施形態による駆動装置の概略的な機能ブロック図である。
【図３】駆動装置の一形態を示す概略的な機能ブロック図である。
【図４】機械学習方法の一形態を示す概略的なフローチャートである。
【図５Ａ】ニューロンを説明する図である。
【図５Ｂ】ニューラルネットワークを説明する図である。
【図６】第２の実施形態による駆動装置の概略的な機能ブロック図である。
【図７】駆動装置を組み込んだシステムの一形態を示す概略的な機能ブロック図である。
【図８】駆動装置を組み込んだシステムの他の形態を示す概略的な機能ブロック図である。
【図９】機械学習方法の一形態を示す概略的なフローチャートである。
【図１０】駆動装置の動作を概略的に説明する図である。
【発明を実施するための形態】
【００１３】
本発明の実施の形態にかかる駆動装置１は、制御装置から出力され誤差を含んだ外部指令を受信し、受信した外部指令を変換して、典型的にはデバイス（サーボモータ等）を駆動するための指令を生成、出力する。指令によりデバイスが駆動し、加工が行われる。駆動装置１は、この加工結果の適否を評価し、加工結果が良くなるように、外部指令から指令への変換を最適化することができる。
【００１４】
制御装置は、典型的には加工機を制御する装置である。例えば射出成形機の制御装置は、射出軸、計量軸、型締軸、突出し軸、可塑化軸、付加軸等の複数の軸を制御することができる。駆動装置１は、例えばこのうち１つの軸のサーボモータを駆動させる、制御装置に従属する装置である。駆動装置１は、制御装置から出力されるアナログ電圧指令を受け、これをＡ／Ｄ変換して速度指令値及びトルク指令値を生成し、これらの指令値を出力することで実際にサーボモータを駆動させる。
【００１５】
図１は、本発明の第１の実施形態による駆動装置１と、駆動装置１が駆動するサーボモータとを含む概略的なハードウェア構成図である。駆動装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、インタフェース２１、インタフェース２２，バス２０、サーボ制御部３０を有する。駆動装置１には、サーボモータ５０、制御装置８０が接続される。
【００１６】
ＣＰＵ１１は、駆動装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをインタフェース２２，バス２０を介して読み出し、システム・プログラムに従って駆動装置１全体を制御する。
【００１７】
ＲＯＭ１２は、サーボモータ５０の駆動制御等を実行するためのシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）を予め格納している。
【００１８】
ＲＡＭ１３は、一時的な計算データ等を一時的に格納する。
【００１９】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされており、駆動装置１の電源が遮断されても記憶状態を保持する。不揮発性メモリ１４は、各種プログラムやデータ等を格納する。不揮発性メモリ１４に記憶されたプログラムやデータは、実行時及び利用時にはＲＡＭ１３に展開されても良い。
【００２０】
サーボ制御部３０は、ＣＰＵ１１が出力する速度指令及びトルク指令を受けて、サーボモータ５０を駆動する。
【００２１】
サーボモータ５０は、サーボ制御部３０により駆動されて加工機が備える軸を移動させる。サーボモータ５０は、典型的には位置・速度検出器を内蔵しても良い。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が制御装置８０にフィードバックされることで、位置・速度のフィードバック制御が行われる。
【００２２】
なお、図１では制御装置８０と駆動装置１とが１対１で接続されているが、実際には制御装置８０には制御対象となる加工機に備えられた軸の数だけ駆動装置１が接続される。例えば、６軸を備えた加工機を制御する制御装置８０には、それぞれの軸に対応する駆動装置１が合計６つ接続される。
【００２３】
制御装置８０は、加工機を制御するための装置であり、例えば数値制御装置である。制御装置８０は、加工プログラムに従って軸を制御するための外部指令を生成し、インタフェース２２を介してＣＰＵ１１に渡す。典型的には、外部指令はアナログ電圧値として入力されるが、そのアナログ電圧値には入力オフセット電圧やノイズ等に起因する誤差が含まれている場合がある。また制御装置８０は、後述する機械学習に必要な各種データを、インタフェース２２を介してＣＰＵ１１に渡す。
【００２４】
インタフェース２１は、駆動装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、プロセッサ１０１、ＲＯＭ１０２、ＲＡＭ１０３、不揮発性メモリ１０４を有する。
【００２５】
プロセッサ１０１は、機械学習装置１００全体を統御する。ＲＯＭ１０２は、システム・プログラム等を格納する。ＲＡＭ１０３は、機械学習に係る各処理における一時的な記憶を行う。不揮発性メモリ１０４は、学習モデル等を格納する。
【００２６】
機械学習装置１００は、駆動装置１が取得可能な各種情報（制御装置８０から入力された外部指令、各種データ等）をインタフェース２１を介して観測する。機械学習装置１００は、サーボモータ５０を駆動するための指令（速度指令及びトルク指令）をインタフェース２１を介して駆動装置１に出力する。駆動装置１は、機械学習装置１００が出力する指令を受け、サーボ制御部３０に出力する。
【００２７】
図２は、第１の実施形態における駆動装置１及び機械学習装置１００の概略的な機能ブロック図である。機械学習装置１００は、状態観測部１０６、判定データ取得部１０８、学習部１１０を有する。状態観測部１０６、判定データ取得部１０８、学習部１１０は、例えばプロセッサ１０１の一機能として実現され得る。又は、例えばＲＯＭ１０２に格納されたソフトウェアをプロセッサ１０１が実行することにより実現されても良い。
【００２８】
状態観測部１０６は、環境の現在状態を表す状態変数Ｓを観測する。状態変数Ｓは、誤差を含むアナログ電圧指令値を変換及び補正した指令値Ｓ１、誤差を含むアナログ電圧指令値Ｓ２、及び加工機の状態を示す各種情報を含む。例えば加工機が射出成形機である場合、状態変数Ｓは、射出成形機の全軸の状態に関する軸情報Ｓ３、射出成形機のサイクルタイムＳ４、射出成形機の温度Ｓ５、樹脂材料に関する材料情報Ｓ６、金型に関する金型情報Ｓ７を含み得る。
【００２９】
指令値Ｓ１は、後述するアナログ電圧指令値Ｓ２をＡ／Ｄ変換し、かつ補正を加えて生成される指令値である。なおＡ／Ｄ変換と補正の順序は逆でも良い。補正処理は、プロセッサ１０１が、例えば入力されたアナログ電圧に所定のオフセットを付加する、アナログ電圧の波形の一部（立ち上がり等）に所定の係数を乗じて波形を変化させる等により行うことができる。オフセットや係数等を変化させることにより、多様な指令値Ｓ１を得ることが可能である。
【００３０】
アナログ電圧指令値Ｓ２は、制御装置８０から駆動装置１に外部指令として入力されたアナログ電圧値である。状態観測部１０６は、アナログ電圧指令値Ｓ２を駆動装置１から取得できる。
【００３１】
軸情報Ｓ３は、射出成形機の全軸又は任意の１以上の軸の速度指令値、トルク指令値、位置フィードバック、速度フィードバック、トルクフィードバック、モータ電流値及びモータ温度等である。状態観測部１０６は、軸情報Ｓ３を駆動装置１から取得する。駆動装置１は、これらの情報を制御装置８０から取得することができる。
【００３２】
サイクルタイムＳ４は、射出成形機における加工のサイクルタイムである。状態観測部１０６は、サイクルタイムＳ４を駆動装置１から取得する。駆動装置１は、この情報を制御装置８０から取得することができる。
【００３３】
温度Ｓ５は、射出成形機の各部の温度である。状態観測部１０６は、温度Ｓ５を駆動装置１から取得する。駆動装置１は、この情報を制御装置８０から取得することができる。
【００３４】
材料情報Ｓ６は、射出成形機で使用されている樹脂材料の形状（例えば形状を一意に示す識別子）及び素材（例えば素材を一意に示す識別子）を示す情報である。状態観測部１０６は、材料情報Ｓ６を駆動装置１から取得する。駆動装置１は、これらの情報を制御装置８０から取得することができる。
【００３５】
金型情報Ｓ７は、射出成形機で使用されている金型の形状（例えば形状を一意に示す識別子）及び素材（例えば素材を一意に示す識別子）を示す情報である。状態観測部１０６は、金型情報Ｓ７を駆動装置１から取得する。駆動装置１は、これらの情報を制御装置８０から取得することができる。
【００３６】
判定データ取得部１０８は、状態変数Ｓの下でサーボモータを駆動した場合における結果を示す指標である判定データＤを取得する。判定データＤは、加工品の精度や品質に関する情報である精度Ｄ１、及び加工機の状態を示す各種情報を含む。例えば加工機が射出成形機である場合、射出成形機、金型又はボールねじ等の振動Ｄ２、サーボモータ５０の負荷Ｄ３、射出成形機の消費電力Ｄ４、射出成形機のサイクルタイムＤ５、サーボモータ５０の応答時間Ｄ６を含み得る。
【００３７】
判定データ取得部１０８は、精度Ｄ１として、例えば加工品の寸法と、設計値と、の誤差を示す値を用いることができる。精度Ｄ１として、加工品の品質（表面の状態等）を示す評価値を用いることもできる。上記誤差や評価値の取得方法や評価方法等は公知技術であるため、ここでは詳細な説明を省略する。上記誤差や評価値は、例えば加工機内で測定されても良く、加工機以外の検査機等で測定されても良い。検査機による測定結果は制御装置８０に入力される。駆動装置１は、これらの情報を制御装置８０から取得し、判定データ取得部１０８は、これらの情報を駆動装置１から取得する。
【００３８】
判定データ取得部１０８は、振動Ｄ２として、射出成形機、金型、ボールねじ等の振動を示す情報（変位、速度、加速度等）を駆動装置１から取得することができる。駆動装置１は、これらの情報を制御装置８０から取得することができる。
【００３９】
判定データ取得部１０８は、負荷Ｄ３として、サーボモータ５０の負荷を示す情報を駆動装置１から取得することができる。サーボモータ５０の負荷は制御装置８０が取得可能である。駆動装置１は、この情報を制御装置８０から取得し、判定データ取得部１０８は、この情報を駆動装置１から取得する。
【００４０】
判定データ取得部１０８は、消費電力Ｄ４として、射出成形機の消費電力を示す情報を駆動装置１から取得することができる。駆動装置１は、この情報を制御装置８０から取得することができる。
【００４１】
判定データ取得部１０８は、サイクルタイムＤ５として、射出成形機のサイクルタイムを示す情報を駆動装置１から取得することができる。駆動装置１は、この情報を制御装置８０から取得することができる。
【００４２】
判定データ取得部１０８は、応答時間Ｄ６として、サーボモータ５０の応答時間、すなわち指令値の出力から速度又はトルク等が指令値に達するまでの時間を駆動装置１から取得することができる。サーボモータ５０の応答時間は制御装置８０が取得可能である。駆動装置１は、この情報を制御装置８０から取得し、判定データ取得部１０８は、この情報を駆動装置１から取得する。
【００４３】
学習部１１０は、状態変数Ｓと判定データＤとを用いて、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、の相関関係を学習する。すなわち学習部１１０は、状態変数Ｓの構成要素Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７の相関性を示すモデル構造を生成する。
【００４４】
学習部１１０に対して入力される状態変数Ｓは、学習部１１０における学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。機械学習装置１００が学習を進める間、環境においては、（１）誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）、指令値Ｓ１の取得、（２）指令値Ｓ１に従ったサーボモータ５０の駆動、すなわち加工の実行、（３）判定データＤの取得が繰り返し実施される。（４）の判定データＤは、指令値Ｓ１に基づく加工における加工品の精度や品質、生産性、効率性等の評価結果である。
【００４５】
このような学習サイクルを繰り返すことにより、学習部１１０は、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、の相関関係を暗示する特徴を自動的に識別することができるようになる。学習アルゴリズムの開始時には、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、の相関関係は実質的に未知であるが、学習部１１０は学習を進めるに従い徐々に特徴を識別して相関性を解釈する。誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、の相関関係がある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態すなわち誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）に対して、どのような指令値Ｓ１を出力すべきかという行動の選択（意思決定）を行うために使用できるものとなる。つまり学習部１１０は、現在状態に対応する行動の最適解を出力できるようになる。
【００４６】
状態変数Ｓは外乱の影響を受け難いデータで構成され、判定データＤは、駆動装置１が制御装置８０から各種データを取得することにより一義的に求められる。したがって機械学習装置１００によれば、学習部１１０の学習結果を用いることで、現在状態すなわち誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）に対して最適な指令値Ｓ１を、演算や目算によらず、自動的かつ正確に求めることができる。換言すれば、現在状態すなわち誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）を把握するだけで、最適な指令値Ｓ１を迅速に決定することができる。したがって、外部指令から指令への適切な変換を効率よく行うことができる。
【００４７】
機械学習装置１００の変形例として、学習部１１０は、同一の作業を行う同種の複数の加工機のそれぞれについて得られた状態変数Ｓ及び判定データＤを用いて、それら加工機における適切な指令値を学習することができる。この構成によれば、一定時間で得られる状態変数Ｓと判定データＤとを含むデータ集合の量を増加させ、より多様なデータ集合を入力できるので、学習の速度や信頼性を向上させることができる。
【００４８】
なお、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図３は、図１に示す駆動装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１１０を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本実施形態では指令値の出力）を最適解として学習する手法である。
【００４９】
図３に示す駆動装置１が備える機械学習装置１００において、学習部１１０は、報酬計算部１１２、価値関数更新部１１４を有する。
【００５０】
報酬計算部１１２は、状態変数Ｓに基づいて加工条件が設定された場合における加工品の精度や品質、生産性、効率性等の評価結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める。
【００５１】
価値関数更新部１１４は、報酬Ｒを用いて、指令値の価値を表す関数Ｑを更新する。価値関数更新部１１４が関数Ｑの更新を繰り返すことにより、学習部１１０は、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、の相関関係を学習する。
【００５２】
学習部１１０が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００５３】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓｔ及びａｔはそれぞれ時刻ｔにおける状態及び行動であり、行動ａｔにより状態はｓｔ＋１に変化する。ｒｔ＋１は、状態がｓｔからｓｔ＋１に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００５４】
【数１】
2019168973.tif 000003
【００５５】
学習部１１０がＱ学習を実行する場合、状態観測部１０６が観測した状態変数Ｓ及び判定データ取得部１０８が取得した判定データＤは、更新式の状態ｓに該当し、現在状態すなわち誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）に対し、指令値Ｓ１をどのように決定するべきかという行動は、更新式の行動ａに該当し、報酬計算部１１２が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１４は、現在状態に対する指令値の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００５６】
報酬計算部１１２は、例えば、決定した指令値Ｓ１に基づいてサーボモータを駆動して加工を行い、加工品の精度や品質、生産性、効率性等の評価結果が「適」と判定される場合に、報酬Ｒを正（プラス）の値とすることができる。一方、加工品の精度や品質、生産性、効率性等の評価結果が「否」と判定される場合に、報酬Ｒを負（マイナス）の値とすることができる。正負の報酬Ｒの絶対値は、互いに同一であっても良いし異なっていても良い。
【００５７】
加工品の精度や品質、生産性、効率性等の評価結果が「適」である場合とは、例えば精度Ｄ１（加工品の寸法と設計値との誤差等）がしきい値未満である場合、振動Ｄ２がしきい値未満である場合、負荷Ｄ３がしきい値未満である場合、消費電力Ｄ４がしきい値未満である場合、サイクルタイムＤ５がしきい値未満である場合、及び応答時間Ｄ６がしきい値未満である場合等である。加工品の精度や品質、生産性、効率性等の評価結果が「否」である場合とは、例えば上記Ｄ１乃至Ｄ６が所定のしきい値以上である場合等である。なお、報酬計算部１１２は、判定データＤに含まれる複数の値を組み合わせて適否を判定するようにしても良い。
【００５８】
報酬計算部１１２は、上記Ｄ１乃至Ｄ６の経時変化を示す値（所定時間又は所定サイクルにおける変化量又は変化率等）を用いて、加工品の精度や品質、生産性、効率性等の評価結果を判定しても良い。例えば上記Ｄ１乃至Ｄ６の変化量が０又はマイナスであれば「適」、プラスであれば「否」と判定するようにしても良い。
【００５９】
加工品の精度や品質、生産性、効率性等の評価結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例えば、報酬計算部１１２は、上記Ｄ１乃至Ｄ６の値が、所定のしきい値との差分がプラスであればあるほど報酬Ｒを減少させ、差分がマイナスであればあるほど報酬Ｒを増加させることができる。また、例えば、報酬計算部１１２は、上記Ｄ１乃至Ｄ６の変化量又は変化率が、所定のしきい値との差分がプラスであればあるほど報酬Ｒを減少させ、差分がマイナスであればあるほど報酬Ｒを増加させることができる。
【００６０】
価値関数更新部１１４は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１４が関数Ｑを更新するという行為は、価値関数更新部１１４が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、の相関関係は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。報酬計算部１１２は、判定データＤが分かればこれに対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００６１】
加工品の精度や品質、生産性、効率性等の評価結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態すなわち誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、それに対する行動すなわち指令値Ｓ１と、の相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、の相関関係が徐々に最適解に近づけられる。
【００６２】
図４を参照して、学習部１１０が実行するＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。
ステップＳＡ０１：価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動として、指令値Ｓ１を無作為に選択する。
ステップＳＡ０２：価値関数更新部１１４は、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込む。
ステップＳＡ０３：価値関数更新部１１４は、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。
ステップＳＡ０４：価値関数更新部１１４は、判定データＤに基づき、指令値Ｓ１が適当であったか否かを判断する。適当であった場合、ステップＳＡ０５に遷移する。適当でなかった場合、ステップＳＡ０７に遷移する。
ステップＳＡ０５：価値関数更新部１１４は、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用する。
ステップＳＡ０６：価値関数更新部１１４は、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。
ステップＳＡ０７：価値関数更新部１１４は、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用する。
学習部１１０は、ステップＳＡ０１乃至ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、学習を進行させる。
【００６３】
なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。例えば図９は、判定データＤとして応答時間Ｄ６、消費電力Ｄ４の２つを使用した場合のフローチャートである。
ステップＳＢ０１：価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動として、指令値Ｓ１を無作為に選択する。
ステップＳＢ０２：価値関数更新部１１４は、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込む。
ステップＳＢ０３：価値関数更新部１１４は、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。
ステップＳＢ０４：価値関数更新部１１４は、判定データＤのうち応答時間Ｄ６に基づき、指令値Ｓ１が適当であったか否かを判断する。適当であった場合、ステップＳＢ０５に遷移する。適当でなかった場合、ステップＳＢ０６に遷移する。
ステップＳＢ０５：価値関数更新部１１４は、報酬計算部１１２が求めた正の報酬Ｒ１を関数Ｑの更新式に適用する。
ステップＳＢ０６：価値関数更新部１１４は、報酬計算部１１２が求めた負の報酬Ｒ１を関数Ｑの更新式に適用する。
ステップＳＢ０７：価値関数更新部１１４は、判定データＤのうち消費電力Ｄ４に基づき、指令値Ｓ１が適当であったか否かを判断する。適当であった場合、ステップＳＢ０８に遷移する。適当でなかった場合、ステップＳＢ０９に遷移する。
ステップＳＢ０８：価値関数更新部１１４は、報酬計算部１１２が求めた正の報酬Ｒ２を関数Ｑの更新式に適用する。
ステップＳＢ０９：価値関数更新部１１４は、報酬計算部１１２が求めた負の報酬Ｒ２を関数Ｑの更新式に適用する。
ステップＳＢ１０：価値関数更新部１１４は、現在状態における状態変数Ｓ及び判定データＤ６及びＤ４と報酬Ｒ１及びＲ２と行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。
【００６４】
図９のフローに従って進められる学習プロセスの具体例を示す。
（例１）
・ステップＳＢ０１において、指令値Ｓ１として以下の値を出力。
速度指令値Ｓ１：  Ｘ＝０．０２１Ｖの速度換算値
・ステップＳＢ０２において、状態変数Ｓとして以下の値を取得。
アナログ電圧指令値Ｓ２：  ０．０２１Ｖ（誤差０．０２１Ｖを含む）
軸情報３（位置フィードバック）：  Ｘ＝０．００１ｍｍ連続増
Ｙ＝５．０００ｍｍ連続増
Ｚ＝１０．０００ｍｍ連続増
軸情報３（速度フィードバック）：  Ｘ＝０．００１ｍｉｎ−１
Ｙ＝１．０００ｍｉｎ−１
Ｚ＝２．０００ｍｉｎ−１
・ステップＳＢ０３において、判定データＤとして以下の値を取得。
応答時間Ｄ６：  １００ｍｓ増加
消費電力Ｄ４：  １．０ｋＷｈ増加
・ステップＳＢ０４において、応答時間Ｄ６が増加しているため、指令値Ｓ１は適当でないと判定。
・ステップＳＢ０６において、報酬Ｒを減少。
・ステップＳＢ０７において、消費電力Ｄ４が増加しているため、指令値Ｓ１は適当でないと判定。
・ステップＳＢ０９において、報酬Ｒを減少。
・ステップＳＢ１０において、価値Ｑを更新。
【００６５】
（例２）
・ステップＳＢ０１において、指令値Ｓ１として以下の値を出力。
速度指令値Ｓ１：  Ｘ＝０．０００Ｖの速度換算値
・ステップＳＢ０２において、状態変数Ｓとして以下の値を取得。
アナログ電圧指令値Ｓ２：  ０．０２１Ｖ（誤差０．０２１Ｖを含む）
軸情報３（位置フィードバック）：  Ｘ＝０．０００ｍｍ停止状態
Ｙ＝５．０００ｍｍ連続増
Ｚ＝１０．０００ｍｍ連続増
軸情報３（速度フィードバック）：  Ｘ＝０．０００ｍｉｎ−１
Ｙ＝１．０００ｍｉｎ−１
Ｚ＝２．０００ｍｉｎ−１
・ステップＳＢ０３において、判定データＤとして以下の値を取得。
応答時間Ｄ６：  １００ｍｓ短縮
消費電力Ｄ４：  １．５ｋＷｈ減少
・ステップＳＢ０４において、応答時間Ｄ６が減少しているため、指令値Ｓ１は適当と判定。
・ステップＳＢ０５において、報酬Ｒを増加。
・ステップＳＢ０７において、消費電力Ｄ４が減少しているため、指令値Ｓ１は適当と判定。
・ステップＳＢ０８において、報酬Ｒを増加。
・ステップＳＢ１０において、価値Ｑを更新。
【００６６】
強化学習を進める際に、例えばＱ学習の代わりに、ニューラルネットワークを用いることができる。図５Ａは、ニューロンのモデルを模式的に示す。図５Ｂは、図５Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００６７】
図５Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）に対する結果ｙを出力するものである。各入力ｘ１〜ｘ３には、この入力ｘに対応する重みｗ（ｗ１〜ｗ３）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆｋは活性化関数である。
【００６８】
【数２】
2019168973.tif 000004
【００６９】
図５Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００７０】
図５Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００７１】
図５Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００７２】
機械学習装置１００においては、状態変数Ｓと判定データＤとを入力ｘとして、学習部１１０がニューラルネットワークに従う多層構造の演算を行うことで、指令値Ｓ１を結果ｙとして出力することができる。また、機械学習装置１００においては、ニューラルネットワークを強化学習における価値関数として用い、状態変数Ｓと行動ａとを入力ｘとして、学習部１１０がニューラルネットワークに従う多層構造の演算を行うことで、当該状態における当該行動の価値（結果ｙ）を出力することもできる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００７３】
上記した駆動装置１の構成は、プロセッサ１０１が実行する機械学習方法（或いはプログラム）として記述できる。この機械学習方法は、外部指令から指令値Ｓ１への適切な変換を学習する機械学習方法であって、コンピュータのＣＰＵが、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）を、環境の現在状態を表す状態変数Ｓとして観測するステップと、出力された指令値Ｓ１に従って実施された加工における加工品の精度や品質、生産性、効率性等の評価結果を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）と、指令値Ｓ１と、を関連付けて学習するステップとを有する。
【００７４】
図６は、本発明の第２の実施形態による駆動装置２を示す。駆動装置２は、機械学習装置１２０、状態データ取得部３を有する。
【００７５】
状態データ取得部３は、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）、及び指令値Ｓ１を、状態データＳ０として取得し、状態観測部１０６に供給する。状態データ取得部３は、例えば駆動装置２から状態データＳ０を取得することができる。
【００７６】
機械学習装置１２０は、状態観測部１０６、判定データ取得部１０８、学習部１１０に加え、意思決定部１２２を有する。意思決定部１２２は、例えばプロセッサ１０１の一機能として実現され得る。又は、例えばＲＯＭ１０２に格納されたソフトウェアをプロセッサ１０１が実行することにより実現されても良い。
【００７７】
機械学習装置１２０は、外部指令から指令値Ｓ１への適切な変換を機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ１０１等）に加えて、学習結果に基づいて求めた指令値Ｓ１をサーボモータ５０への指令として出力するためのソフトウェア（演算アルゴリズム等）及びハードウェア（プロセッサ１０１等）を含むものである。機械学習装置１２０は、１つの共通のプロセッサが、学習アルゴリズム、演算アルゴリズム等の全てのソフトウェアを実行する構成を有することもできる。
【００７８】
意思決定部１２２は、学習部１１０が学習した結果に基づいて、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）に対応する指令値Ｓ１である指令値Ｃを生成する。意思決定部１２２が指令値Ｃをサーボモータ５０に対して出力すると、サーボモータ５０駆動装置２が指令値Ｃに従って駆動される。こうして環境の状態が変化する。
【００７９】
状態観測部１０６は、意思決定部１２２が環境へ指令値Ｃを出力したことにより変化した状態変数Ｓを、次の学習周期において観測する。学習部１１０は、変化した状態変数Ｓを用いて、例えば価値関数Ｑ（すなわち行動価値テーブル）を更新することで、外部指令から指令値Ｓ１への適切な変換を学習する。なお、その際に状態観測部１０６は、指令値Ｓ１を状態データ取得部３が取得する状態データＳ０から取得するのではなく、第１の実施形態で説明したように機械学習装置１２０のＲＡＭ１０３から観測しても良い。
【００８０】
そして意思決定部１２２は、学習結果に基づいて求めた指令値Ｓ１である指令値Ｃを、再びサーボモータ５０へと出力する。この学習周期を繰り返すことにより、機械学習装置１２０は学習を進め、自身が決定する指令値Ｓ１の信頼性を徐々に向上させる。
【００８１】
機械学習装置１２０は、第１の実施形態の機械学習装置１００と同等の効果を奏する。加えて、機械学習装置１２０は、意思決定部１２２の出力によって環境の状態を変化させることができる。なお、機械学習装置１００では、意思決定部１２２に相当する機能を外部装置に求めることで、学習部１１０の学習結果を環境に反映させることが可能である。
【００８２】
図７は、複数の駆動装置を備えたシステム１７０を示す。システム１７０は、複数の駆動装置１６０及び駆動装置１６０’を有する。全ての駆動装置１６０と駆動装置１６０は、有線又は無線のネットワーク１７２により互いに接続される。
【００８３】
駆動装置１６０及び駆動装置１６０’は、同じ目的の作業に必要とされる機構を有する。一方、駆動装置１６０は機械学習装置１００を備えるが、駆動装置１６０’は機械学習装置１００を備えない。
【００８４】
機械学習装置１００を備えるほうの駆動装置１６０は、学習部１１０の学習結果を用いて、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）に対応する指令値Ｓ１を、演算や目算によらず、自動的かつ正確に求めることができる。また、少なくとも１つの駆動装置１６０の機械学習装置１００が、他の複数の駆動装置１６０及び駆動装置１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤを利用し、全ての駆動装置１６０及び駆動装置１６０に共通する外部指令から指令値Ｓ１への適切な変換を学習し、その学習結果を全ての駆動装置１６０及び駆動装置１６０’が共有するように構成できる。システム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、外部指令から指令値Ｓ１への適切な変換の学習の速度や信頼性を向上させることができる。
【００８５】
図８は、複数の駆動装置１６０’を備えたシステム１７０’を示す。システム１７０’は、同一の機械構成を有する複数の駆動装置１６０’と、機械学習装置１２０（又は機械学習装置１００）と、を有する。複数の駆動装置１６０’と機械学習装置１２０（又は機械学習装置１００）とは、有線又は無線のネットワーク１７２により互いに接続される。
【００８６】
機械学習装置１２０（又は機械学習装置１００）は、複数の駆動装置１６０’のそれぞれにおいて得られた状態変数Ｓ及び判定データＤに基づき、全ての駆動装置１６０’に共通する外部指令から指令値Ｓ１への適切な変換を学習する。機械学習装置１２０（又は機械学習装置１００）は、その学習結果を用いて、誤差を含むアナログ電圧指令値Ｓ２及び加工機の状態（軸情報Ｓ３、サイクルタイムＳ４、温度Ｓ５、材料情報Ｓ６、金型情報Ｓ７）に対応する指令値Ｓ１を、演算や目算によらず、自動的かつ正確に求めることができる。
【００８７】
機械学習装置１２０（又は機械学習装置１００）は、ネットワーク１７２に用意されたクラウドサーバ等に存在しても良い。この構成によれば、複数の駆動装置１６０’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の駆動装置１６０’を機械学習装置１２０（又は機械学習装置１００）に接続することができる。
【００８８】
システム１７０’又はシステム１７０’に従事する作業者は、機械学習装置１２０（又は１００）による学習開始後の適当な時期に、機械学習装置１２０（又は機械学習装置１００）による指令値Ｓ１の学習の到達度（すなわち出力される指令値Ｓ１の信頼性）が要求レベルに達したか否かの判断を実行することができる。
【００８９】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００９０】
例えば、機械学習装置１００や機械学習装置１２０が実行する学習アルゴリズム、駆動装置１や駆動装置２が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００９１】
また、上記した実施形態では、駆動装置１（又は駆動装置２）と、機械学習装置１００（又は機械学習装置１２０）と、は異なるＣＰＵを有する装置として説明しているが、機械学習装置１００（又は機械学習装置１２０）は、駆動装置１（又は駆動装置２）が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現されるよう構成しても良い。
【００９２】
また、機械学習装置１００（又は機械学習装置１２０）は、クラウドコンピューティング、フォグコンピューティング、エッジコンピューティング等と称される情報処理環境に実装されても良い。
【００９３】
また、上記した実施形態では、外部指令としてアナログ電圧指令値が入力される例について主に説明したが、本発明はこれに限定されるものではなく、何らかの外部指令を変換した指令によりデバイスを駆動するあらゆる駆動装置に適用可能である。
【符号の説明】
【００９４】
１，２  駆動装置
３  状態データ取得部
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
２１，２２  インタフェース
２０  バス
３０  サーボ制御部
８０  制御装置
１００  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０６  状態観測部
１０８  判定データ取得部
１１０  学習部
１１２  報酬計算部
１１４  価値関数更新部
１２０  機械学習装置
１２２  意思決定部
１６０，１６０’  駆動装置
１７０，１７０’  システム
１７２  ネットワーク
【図１】
2019168973.tif 000005
【図２】
2019168973.tif 000006
【図３】
2019168973.tif 000007
【図４】
2019168973.tif 000008
【図５Ａ】
2019168973.tif 000009
【図５Ｂ】
2019168973.tif 000010
【図６】
2019168973.tif 000011
【図７】
2019168973.tif 000012
【図８】
2019168973.tif 000013
【図９】
2019168973.tif 000014
【図１０】
2019168973.tif 000015