(57)【要約】【課題】横引き溝切削加工において工具の刃部がワークを抜ける際に生じる刃部の振動を防止することが可能な制御装置及び機械学習装置を提供すること。【解決手段】本発明の制御装置１が備える機械学習装置１００は、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量を示す送り量データ、及び工具の刃部がワークを抜ける際の該工具の刃部の振動量を示す振動量データを、環境の現在状態を表す状態変数として観測する状態観測部１０２と、工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果を示す判定データを取得する判定データ取得部１０４と、状態変数と判定データとを用いて、工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を前記振動量データと関連付けて学習する学習部１０６と、を備える。【選択図】図２
2018199189.tif 000002
【特許請求の範囲】
【請求項１】
横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量を決定する制御装置であって、
前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を学習する機械学習装置を備え、
前記機械学習装置は、
前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を示す送り量データ、及び前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量を示す振動量データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量の適否判定結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を前記振動量データと関連付けて学習する学習部と、
を備える制御装置。
【請求項２】
前記状態観測部は、前記状態変数として、工具の情報を示す工具データ、ワークの情報を示すワークデータ、加工形状の情報を示す加工形状データ、機械の情報を示す機械データの少なくともいずれかを更に観測し、
前記学習部は、前記状態観測部が観測したデータを、前記振動量データと関連付けて学習する、
請求項１に記載の制御装置。
【請求項３】
前記判定データには、前記工具の刃部の振動量の適否判定結果に加えて、横引き溝切削加工に掛かるサイクルタイムの適否判定結果を含む、
請求項１又は２のいずれか１つに記載の制御装置。
【請求項４】
前記学習部は、
前記適否判定結果に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量に対する前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量の価値を表す関数を更新する価値関数更新部とを備える、
請求項１〜３のいずれか１つに記載の制御装置。
【請求項５】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算する、
請求項１〜４のいずれか１つに記載の制御装置。
【請求項６】
前記学習部による学習結果に基づいて、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量に基づく指令値を出力する意思決定部を更に備える、
請求項１〜５のいずれか１つに記載の制御装置。
【請求項７】
前記状態観測部は、前記状態変数として、主軸の回転数を示す主軸回転数データを更に観測し、
前記学習部は、前記状態観測部が観測したデータを、前記振動量データと関連付けて学習する、
請求項６に記載の制御装置。
【請求項８】
前記指令値は、前記工具の刃部が前記ワークを抜ける際の主軸の回転数に基づく指令値を出力する、
請求項７に記載の制御装置。
【請求項９】
前記学習部は、複数の工作機械のそれぞれについて得られた前記状態変数及び前記判定データを用いて、該複数の工作機械のそれぞれにおける前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を学習する、
請求項１〜８のいずれか１つに記載の制御装置。
【請求項１０】
前記機械学習装置は、クラウドサーバに存在する、
請求項１〜９のいずれか１つに記載の制御装置。
【請求項１１】
横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量を学習する機械学習装置であって、
前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を示す送り量データ、及び前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量を示す振動量データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量の適否判定結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を前記振動量データと関連付けて学習する学習部と、
を備える機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び機械学習装置に関し、特に切削抜け時の振動を防止する制御装置及び機械学習装置に関する。
【背景技術】
【０００２】
工作機械を用いてエンドミルで横引き溝切削加工する場合（図９）、切削時に工具に生じる切削負荷が生じ、工具の刃部に撓みが生じる（特許文献１の段落「００３７」など）。図１０は、エンドミルによる横引き溝切削加工の様子を示す図である。図１０に示すように、横引き溝切削加工においては、ワークを加工する際に工具の刃部に対して工具の送り方向とは逆方向に切削負荷が掛かっており、その切削負荷が原因で工具の刃部に撓みが生じる。工具の刃部に掛かる切削負荷は、ワークの切削加工が終了する時点、すなわち工具がワークの端部に到達して工具の刃部がワークから抜ける瞬間に急激に減少し、これと同時に工具の刃部に生じた撓みが急激に元に戻るが、その際に撓みが元に戻ったことによる反動で工具の刃部に振動が生じる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−０８４７９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようにして生じる刃部の振動は、ワークの端部における加工面の品質に少なからず影響を与え、場合によってはワークの加工形状の精度が崩れたり、刃物の寿命が減少したり、過大な振動より機械の故障の原因にもなり得る。このような問題に対して、従来は工具の刃部がワークから抜ける時の振動を無視するか、若しくはプログラムで工具の刃部がワークから抜ける時に低めの単位周期あたりの送り量（送り速度）を指定して、急激な撓み変化を防ぐようにしてきた。しかしながら、急激な撓みの変化を防ぐことができる単位周期あたりの送り量（送り速度）がどの程度の値となるのかは、ワークの材質や工具の種類、工具や機械の剛性などによって異なり、また、単位周期あたりの送り量（送り速度）を低く調製することはサイクルタイムを増加させることを意味するためむやみに低く設定することができず、経験の乏しい作業者では最適な単位周期あたりの送り量（送り速度）を見つけ出すのに時間が掛かるという問題がある。
【０００５】
そこで本発明の目的は、横引き溝切削加工において工具の刃部がワークを抜ける際に生じる刃部の振動を防止することが可能な制御装置及び機械学習装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明の制御装置では、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する該工具の単位周期あたりの送り量を機械学習し、機械学習した結果に基づいて、ワークの横引き溝切削加工を行う工作機械を制御する際に振動が発生しないように工具の単位周期あたりの送り量を自動的に制御することで、上記課題を解決する。
【０００７】
そして、本発明の一態様は、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量を決定する制御装置であって、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を学習する機械学習装置を備え、前記機械学習装置は、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を示す送り量データ、及び前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量を示す振動量データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量の適否判定結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を前記振動量データと関連付けて学習する学習部と、を備える制御装置である。
【０００８】
本発明の他の態様は、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量を学習する機械学習装置であって、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を示す送り量データ、及び前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量を示す振動量データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記工具の刃部が前記ワークを抜ける際の該工具の刃部の振動量の適否判定結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量を前記振動量データと関連付けて学習する学習部と、を備える機械学習装置である。
【発明の効果】
【０００９】
本発明により、学習結果に基づいて工具の刃部が前記ワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を決定することで、横引き溝切削加工において工具の刃部がワークを抜ける際に生じる刃部の振動を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態による制御装置の概略的なハードウェア構成図である。
【図２】第１の実施形態による制御装置の概略的な機能ブロック図である。
【図３】制御装置の一形態を示す概略的な機能ブロック図である。
【図４】機械学習方法の一形態を示す概略的なフローチャートである。
【図５Ａ】ニューロンを説明する図である。
【図５Ｂ】ニューラルネットワークを説明する図である。
【図６】第２の実施形態による制御装置の概略的な機能ブロック図である。
【図７】制御装置を組み込んだシステムの一形態を示す概略的な機能ブロック図である。
【図８】制御装置を組み込んだシステムの他の形態を示す概略的な機能ブロック図である。
【図９】従来技術における横引き溝加工の例を示す図である。
【図１０】従来技術における横引き溝加工の問題点について説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面と共に説明する。
図１は第１の実施形態による制御装置と該制御装置によって制御される工作機械の要部を示す概略的なハードウェア構成図である。制御装置１は、例えば、横引き溝切削加工を行う工作機械（図示せず）を制御する数値制御装置として実装することができる。本実施形態による制御装置１が備えるＣＰＵ１１は、制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び後述する表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データ等が格納される。
【００１２】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、インタフェース１５を介して読み込まれた加工プログラムや後述する表示器／ＭＤＩユニット７０を介して入力された加工プログラムなどが記憶されている。不揮発性メモリ１４には更に、加工プログラムを運転するために用いられる加工プログラム運転処理用プログラム等が記憶されるが、これらプログラムは実行時にはＲＡＭ１３に展開される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理などを実行するための各種のシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）があらかじめ書き込まれている。
【００１３】
インタフェース１５は、制御装置１とアダプタ等の外部機器７２と接続するためのインタフェースである。外部機器７２側からは加工プログラムや各種パラメータ等が読み込まれる。また、制御装置１内で編集した加工プログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、制御装置１に内蔵されたシーケンス・プログラムで工作機械の周辺装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００１４】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８は表示器／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は各軸を手動で駆動させる際に用いる手動パルス発生器等を備えた操作盤７１に接続されている。
【００１５】
工作機械が備える軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、工作機械が備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となる工作機械に備えられた軸の数だけ用意される。例えば、直線３軸を備えた工作機械の場合には、軸制御回路３０、サーボアンプ４０、サーボモータ５０は、直線軸であるＸ軸、Ｙ軸、Ｚ軸に対してそれぞれ用意される。
【００１６】
スピンドル制御回路６０は、工作機械への主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ６２を指令された回転速度で回転させ、工具を駆動する。
スピンドルモータ６２にはポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００１７】
インタフェース２１は、制御装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、インタフェース２１を介して制御装置１で取得可能な各情報（ＰＭＣ１６を介して取得される各信号の値や、サーボモータ５０、スピンドルモータ６２の電流値、ＲＡＭ１３等に記憶される実行中の加工プログラムや工具に関する設定情報等）を観測することができる。また、制御装置１は、機械学習装置１００から出力される、サーボモータ５０やスピンドルモータ６２、工作機械の周辺装置を制御するための指令を受けて、加工プログラムに基づく工作機械の制御指令の修正等を行う。
【００１８】
図２は、第１の実施形態による制御装置１と機械学習装置１００の概略的な機能ブロック図である。機械学習装置１００は、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する該工具の単位周期あたりの送り量（送り速度）を、いわゆる機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（コンピュータのＣＰＵ等）を含む。制御装置１が備える機械学習装置１００が学習するものは、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量と、該工具の単位周期あたりの送り量（送り速度）との、相関性を表すモデル構造に相当する。
【００１９】
図２に機能ブロックで示すように、制御装置１が備える機械学習装置１００は、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を示す送り量データＳ１と、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量を示す振動量データＳ２を含む環境の現在状態を表す状態変数Ｓとして観測する状態観測部１０２と、設定された工具の単位周期あたりの送り量（送り速度）の元での横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果を示す判定データＤを取得する判定データ取得部１０４と、状態変数Ｓと判定データＤとを用いて、工具の刃部の振動量に送り量データＳ１を関連付けて学習する学習部１０６とを備える。
【００２０】
状態観測部１０２は、例えばコンピュータのＣＰＵの一機能として構成できる。或いは状態観測部１０２は、例えばコンピュータのＣＰＵを機能させるためのソフトウェアとして構成できる。状態観測部１０２が観測する状態変数Ｓのうち、送り量データＳ１は、例えば熟練した作業者により申告されて制御装置１に与えられる加工プログラムの送り量を用いることができる。また、送り量データＳ１は、学習がある程度進んだ段階では、機械学習装置１００が学習部１０６の学習結果に基づいて１つ前の学習周期において決定した工具の単位周期あたりの送り量（送り速度）を用いることができ、このような場合においては、機械学習装置１００は決定した工具の単位周期あたりの送り量（送り速度）を学習周期毎に内部メモリに一時的に記憶しておき、状態観測部１０２は、内部メモリから１つ前の学習周期において機械学習装置１００が決定した工具の単位周期あたりの送り量（送り速度）を取得するようにしても良い。
【００２１】
また、状態変数Ｓのうち、振動量データＳ２は、例えば工具の刃部がワークを抜ける際のサーボモータ５０に流れる電流値の振動などから間接的に求めた値を用いることができる。振動量データＳ２は、工作機械の主軸に内蔵した加速度センサを用いて直接的に求めても良く、また、工作機械に併設した撮像手段を用いて撮像した画像に基づいて直接的に求めるようにしても良い。更に、加工完了後にワークの加工部分を距離センサや撮像手段等により計測し、その計測結果に基づいて特定される加工面の粗さに基づいて間接的に振動量を求めるようにしても良い。
【００２２】
判定データ取得部１０４は、例えばコンピュータのＣＰＵの一機能として構成できる。或いは判定データ取得部１０４は、例えばコンピュータのＣＰＵを機能させるためのソフトウェアとして構成できる。判定データ取得部１０４は、判定データＤとして、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する適否判定値Ｄ１を用いることができる。判定データ取得部１０４は、状態観測部１０２が振動量データＳ２を観測するのと同様の手段を用いて、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量を取得することができる。判定データＤは、状態変数Ｓの下での横引き溝切削加工を行った場合における結果を表す指標である。
【００２３】
学習部に対して同時に入力される状態変数Ｓは、学習部１０６による学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。このように、制御装置１が備える機械学習装置１００が学習を進める間、環境においては、振動量データＳ２の取得、送り量データＳ１に基づく横引き溝切削加工の実行、判定データＤの取得が繰り返し実施される。
【００２４】
学習部１０６は、例えばコンピュータのＣＰＵの一機能として構成できる。或いは学習部１０６は、例えばコンピュータのＣＰＵを機能させるためのソフトウェアとして構成できる。学習部１０６は、機械学習と総称される任意の学習アルゴリズムに従い、工具の刃部の振動量に対する送り量データＳ１を学習する。学習部１０６は、前述した状態変数Ｓと判定データＤとを含むデータ集合に基づく学習を反復実行することができる。工具の刃部の振動量に対する送り量データＳ１に対する学習サイクルの反復中、状態変数Ｓのうち、振動量データＳ２は、上記したように１学習周期前に取得された横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量とし、送り量データＳ１は、前回までの学習結果に基づいて得られた横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）とし、また判定データＤは、送り量データＳ１に基づく設定が為された状態での今学習周期における工具の刃部の振動量に対する適否判定結果とする。
【００２５】
このような学習サイクルを繰り返すことにより、学習部１０６は、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量（振動量データＳ２）と該工具の単位周期あたりの送り量（送り速度）との相関性を暗示する特徴を自動的に識別することができる。学習アルゴリズムの開始時には振動量データＳ２と工具の単位周期あたりの送り量（送り速度）との相関性は実質的に未知であるが、学習部１０６は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。振動量データＳ２と該工具の単位周期あたりの送り量（送り速度）との相関性が、ある程度信頼できる水準まで解釈されると、学習部１０６が反復出力する学習結果は、現在状態（つまり横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量）に対して、工具の刃部がワークを抜ける際に工具の単位周期あたりの送り量（送り速度）をどの程度の値とするべきかと言う行動の選択（つまり意思決定）を行うために使用できるものとなる。つまり学習部１０６は、学習アルゴリズムの進行に伴い、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量と、当該状態に対して該工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）をどの程度の値とするべきかという行動との、相関性を最適解に徐々に近づけることができる。
【００２６】
上記したように、制御装置１が備える機械学習装置１００は、状態観測部１０２が観測した状態変数Ｓと判定データ取得部１０４が取得した判定データＤとを用いて、学習部１０６が機械学習アルゴリズムに従い、工具の単位周期あたりの送り量（送り速度）を学習するものである。状態変数Ｓは、送り量データＳ１及び振動量データＳ２といった、外乱の影響を受け難いデータで構成され、また判定データＤは、制御装置１で実測されたサーボモータ５０の電流値等を取得することにより一義的に求められる。したがって、制御装置１が備える機械学習装置１００によれば、学習部１０６の学習結果を用いることで、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量に応じた、該工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を、演算や目算によらずに自動的に、しかも正確に求めることができるようになる。
【００２７】
そして、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を、演算や目算によらずに自動的に求めることができれば、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量（振動量データＳ２）を把握するだけで、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の適切な値を迅速に決定することができる。したがって、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の決定を効率よく行うことができる。
【００２８】
制御装置１が備える機械学習装置１００の一変形例として、状態観測部１０２は、状態変数Ｓとして、工具の刃部がワークを抜ける際の主軸の回転数（工具の回転数）を含む主軸回転数データＳ３を更に観測することができる。このようにする場合、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）と工具の刃部がワークを抜ける際の主軸の回転数（工具の回転数）の双方を、振動量データＳ２と関連付けて学習することができる。
【００２９】
上記変形例によれば、機械学習装置１００は、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する、横引き溝切削加工をする際の工具の刃部がワークを抜ける時の該工具の単位周期あたりの送り量（送り速度）と主軸の回転数（工具の回転数）とを学習することができる。このようにすることで、横引き溝切削加工において工具の刃部がワークを抜ける際に該工具の刃部がある振動量を示す場合において、当該状態に対して横引き溝切削加工をする際の工具の刃部がワークを抜ける時の該工具の単位周期あたりの送り量（送り速度）と主軸の回転数（工具の回転数）の双方を適切な値へと変更することで、より適切に振動量を抑えることができるようになる。
【００３０】
制御装置１が備える機械学習装置１００の他の変形例として、状態観測部１０２は、状態変数Ｓとして、工具の種類や工具の形状、工具の材質（剛性）等の情報を含む工具データＳ４や、ワークの材質や硬度等の情報を含むワークデータＳ５、工具の刃部がワークを抜ける部分の加工形状等の情報を含む加工形状データＳ６、機械の型番や剛性などの情報を含む機械データＳ７、その他の工具の刃部の振動量に影響を与える要素等を更に観測することができる。このようにする場合、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を、振動量データＳ２に加えて工具データＳ４、ワークデータＳ５、加工形状データＳ６、機械データＳ７などの少なくともいずれかと関連付けて学習することができる。
【００３１】
上記変形例によれば、機械学習装置１００は、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量だけでなく、工具の種類や工具形状、工具の材質（剛性）、ワークの材質や硬度、加工形状、機械の型番や剛性等の、工具の刃部の振動量に影響を与える事項に対する、横引き溝切削加工をする際の工具の刃部がワークを抜ける時の該工具の単位周期あたりの送り量（送り速度）を学習することができる。
【００３２】
制御装置１が備える機械学習装置１００の他の変形例として、判定データ取得部１０４は、判定データＤとして、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する適否判定値Ｄ１に加えて、横引き溝切削加工に掛かるサイクルタイムの評価値Ｄ２を用いることができる。
【００３３】
上記変形例によれば、機械学習装置１００は、横引き溝切削加工において工具の刃部がワークを抜ける際の工具の刃部の振動量に対する、工具の刃部がワークを抜ける際の工具の単位周期あたりの送り量（送り速度）の学習に際して、横引き溝切削加工に掛かるサイクルタイムを考慮することができる。
【００３４】
制御装置１が備える機械学習装置１００の他の変形例として、学習部１０６は、同一の横引き溝切削加工を行う複数の工作機械のそれぞれについて得られた状態変数Ｓ及び判定データＤを用いて、それら工作機械における横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を学習することができる。この構成によれば、一定時間で得られる状態変数Ｓと判定データＤとを含むデータ集合の量を増加できるので、より多様なデータ集合を入力として、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の学習の速度や信頼性を向上させることができる。
【００３５】
上記構成を有する機械学習装置１００では、学習部１０６が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図３は、図１に示す制御装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１０６を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本願の機械学習装置では横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度））を最適解として学習する手法である。
【００３６】
図３に示す制御装置１が備える機械学習装置１００において、学習部１０６は、状態変数Ｓに基づいて横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める報酬計算部１０８と、報酬Ｒを用いて、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の価値を表す関数Ｑを更新する価値関数更新部１１０とを備える。学習部１０６は、価値関数更新部１１０が関数Ｑの更新を繰り返すことによって横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する該工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を学習する。
【００３７】
学習部１０６が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００３８】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓt及びａtはそれぞれ時刻ｔにおける状態及び行動であり、行動ａtにより状態はｓt+1に変化する。ｒt+1は、状態がｓtからｓt+1に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００３９】
【数１】
2018199189.tif 000003
【００４０】
学習部１０６がＱ学習を実行する場合、状態観測部１０２が観測した状態変数Ｓ及び判定データ取得部１０４が取得した判定データＤは、更新式の状態ｓに該当し、現在状態（つまり横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量）に対する工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）をどのように変更するべきかという行動は、更新式の行動ａに該当し、報酬計算部１０８が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１０は、現在状態に対するＦＰＧＡデバイスの回路構成の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００４１】
報酬計算部１０８が求める報酬Ｒは、例えば、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を決定した後に決定した工具の単位周期あたりの送り量（送り速度）に基づいて横引き溝切削加工を行ったときに、該横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果が「適」と判定される場合（例えば、工具の刃部がワークを抜ける際の該工具の刃部の振動量が許容できる範囲内の場合、横引き溝切削加工に掛かるサイクルタイムが許容できる範囲内の場合など）に正（プラス）の報酬Ｒとし、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を決定した後に決定した工具の単位周期あたりの送り量（送り速度）に基づいて横引き溝切削加工を行ったときに、該横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果が「否」と判定される場合（例えば、工具の刃部がワークを抜ける際の該工具の刃部の振動量が許容できる範囲外の場合、横引き溝切削加工に掛かるサイクルタイムが許容できる範囲外の場合など）に負（マイナス）の報酬Ｒとすることができる。正負の報酬Ｒの絶対値は、互いに同一であってもよいし異なっていてもよい。また、判定の条件として、判定データＤに含まれる複数の値を組み合わせて判定するようにしても良い。
【００４２】
また、該横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例として、工具の刃部の振動量の許容範囲の最大値がＶmaxの場合、工具の刃部の振動量Ｖが、０≦Ｖ＜Ｖmax／５のときは報酬Ｒ＝５を与え、Ｖmax／５≦Ｖ＜Ｖmax／２のときは報酬Ｒ＝２を与え、Ｖmax／２≦Ｖ≦Ｖmaxのときは報酬Ｒ＝１を与えるような構成とすることができる。さらに、学習の初期段階はＶmaxを比較的大きく設定し、学習が進行するにつれてＶmaxを縮小する構成とすることもできる。
【００４３】
価値関数更新部１１０は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１０が関数Ｑを更新するという行為は、価値関数更新部１１０が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には環境の現在状態と工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）との相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。なお報酬計算部１０８は、判定データＤが分かればこれ対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００４４】
横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き替えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態（横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量）とそれに対する行動（工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度））との相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量と、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）との関係が最適解に徐々に近づけられる。
【００４５】
図４を参照して、学習部１０６が実行する上記したＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。まずステップＳＡ０１で、価値関数更新部１１０は、その時点での行動価値テーブルを参照しながら、状態観測部１０２が観測した状態変数Ｓが示す現在状態で行う行動として工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を無作為に選択する。次に価値関数更新部１１０は、ステップＳＡ０２で、状態観測部１０２が観測している現在状態の状態変数Ｓを取り込み、ステップＳＡ０３で、判定データ取得部１０４が取得している現在状態の判定データＤを取り込む。次に価値関数更新部１１０は、ステップＳＡ０４で、判定データＤに基づき、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）が適当であったか否かを判断し、適当であった場合、ステップＳＡ０５で、報酬計算部１０８が求めた正の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。ステップＳＡ０４で、ＦＰＧＡデバイスの回路構成が適当でなかったと判断した場合、ステップＳＡ０７で、報酬計算部１０８が求めた負の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。学習部１０６は、ステップＳＡ０１〜ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００４６】
前述した強化学習を進める際に、例えばＱ学習の代わりに、ニューラルネットワークを用いることができる。図５Ａは、ニューロンのモデルを模式的に示す。図５Ｂは、図５Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００４７】
図５Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００４８】
【数２】
2018199189.tif 000004
【００４９】
図５Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す)が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００５０】
図５Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴を表す。
【００５１】
図５Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００５２】
制御装置１が備える機械学習装置１００においては、状態変数Ｓと判定データＤとを入力ｘとして、学習部１０６が上記したニューラルネットワークに従う多層構造の演算を行うことで、ＦＰＧＡデバイスの回路構成（結果ｙ）を出力することができる。なおニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００５３】
上記した制御装置１の構成は、コンピュータのＣＰＵが実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を学習する機械学習方法であって、コンピュータのＣＰＵが、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を示す送り量データＳ１、及び工具の刃部がワークを抜ける際の該工具の刃部の振動量を示す振動量データＳ２を、横引き溝切削加工を行う環境の現在状態を表す状態変数Ｓとして観測するステップと、工具の刃部がワークを抜ける際の該工具の刃部の振動量の適否判定結果を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、振動量データＳ２と工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）とを関連付けて学習するステップとを有する。
【００５４】
図６は、第２の実施形態による制御装置２を示す。制御装置２は、機械学習装置１２０と、状態観測部１０２が観測する状態変数Ｓの送り量データＳ１及び振動量データＳ２を状態データＳ０として取得する状態データ取得部３とを備える。状態データ取得部３が取得する状態データＳ０は、主軸回転数データＳ３、工具データＳ４、ワークデータＳ５、加工形状データＳ６、機械データＳ７等を含むこともできる。状態データ取得部３は、制御装置２の各部や、工作機械が備える各種センサ、作業者による適宜のデータ入力等から、状態データＳ０を取得することができる。
【００５５】
制御装置２が有する機械学習装置１２０は、横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（コンピュータのＣＰＵ等）に加えて、学習した横引き溝切削加工において工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を制御装置２への指令として出力するためのソフトウェア（演算アルゴリズム等）及びハードウェア（コンピュータのＣＰＵ等）を含むものである。制御装置２が含む機械学習装置１２０は、１つの共通のＣＰＵが、学習アルゴリズム、演算アルゴリズム等の全てのソフトウェアを実行する構成を有することもできる。
【００５６】
意思決定部１２２は、例えばコンピュータのＣＰＵの一機能として構成できる。或いは意思決定部１２２は、例えばコンピュータのＣＰＵを機能させるためのソフトウェアとして構成できる。意思決定部１２２は、学習部１０６が学習した結果に基づいて、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を決定する指令を含む指令値Ｃを生成し、生成した指令値Ｃとして出力する。意思決定部１２２が指令値Ｃを制御装置２に対して出力した場合、これに応じて、環境の状態が変化する。なお、意思決定部１２２は、指令値Ｃとして、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を決定する指令に加えて、工具の刃部がワークを抜ける際の主軸の回転数（工具の回転数）を決定する指令を含んでいても良い。
【００５７】
状態観測部１０２は、意思決定部１２２による環境への指令値Ｃを出力した後に変化した状態変数Ｓを次の学習周期において観測する。学習部１０６は、変化した状態変数Ｓを用いて、例えば価値関数Ｑ（すなわち行動価値テーブル）を更新することで、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を学習する。なお、その際に状態観測部１０２は、送り量データＳ１を状態データ取得部３が取得する状態データＳ０から取得するのではなく、第１の実施形態で説明したように機械学習装置１２０の内部メモリから観測するようにしても良い。
意思決定部１２２は、学習した工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の下で状態変数Ｓに応じて指令値Ｃを制御装置２へと出力する。この学習周期を繰り返すことにより、機械学習装置１２０は工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の学習を進め、自身が決定する工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の信頼性を徐々に向上させる。
【００５８】
上記構成を有する制御装置２が備える機械学習装置１２０は、前述した機械学習装置１００と同等の効果を奏する。特に機械学習装置１２０は、意思決定部１２２の出力によって環境の状態を変化させることができる。他方、機械学習装置１００では、学習部１０６の学習結果を環境に反映させるための意思決定部に相当する機能を、外部装置に求めることができる。
【００５９】
図７は、工作機械１６０を備えた一実施形態によるシステム１７０を示す。システム１７０は、少なくとも同一の機械構成を有する複数の工作機械１６０、１６０’と、それら工作機械１６０、１６０’を互いに接続する有線／無線のネットワーク１７２とを備え、複数の工作機械１６０のうち少なくとも１つが、上記した制御装置２を備える工作機械１６０として構成される。またシステム１７０は、制御装置２を備えない工作機械１６０’を含むことができる。工作機械１６０、１６０’は、同じ目的で構成された横引き溝切削加工に必要とされる機構を有する。
【００６０】
上記構成を有するシステム１７０は、複数の工作機械１６０、１６０’のうちで制御装置２を備える工作機械１６０が、学習部１０６の学習結果を用いて、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を、演算や目算によらずに自動的に、しかも正確に求めることができる。また、少なくとも１つの工作機械１６０の制御装置２が、他の複数の工作機械１６０、１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての工作機械１６０、１６０’に共通する工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を学習し、その学習結果を全ての工作機械１６０、１６０’が共有するように構成できる。したがってシステム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の学習の速度や信頼性を向上させることができる。
【００６１】
図８は、工作機械１６０’を備えた他の実施形態によるシステム１７０’を示す。システム１７０’は、機械学習装置１２０（又は２０）と、同一の機械構成を有する複数の工作機械１６０’と、それら工作機械１６０’と機械学習装置１２０（又は１００）とを互いに接続する有線／無線のネットワーク１７２とを備える。
【００６２】
上記構成を有するシステム１７０’は、機械学習装置１２０（又は１００）が、複数の工作機械１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての工作機械１６０’に共通する横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を学習し、その学習結果を用いて、横引き溝切削加工における工具の刃部がワークを抜ける際の該工具の刃部の振動量に対する工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を、演算や目算によらずに自動的に、しかも正確に求めることができる。
【００６３】
システム１７０’は、機械学習装置１２０（又は１００）が、ネットワーク１７２に用意されたクラウドサーバ等に存在する構成を有することができる。この構成によれば、複数の工作機械１６０’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の工作機械１６０’を機械学習装置１２０（又は１００）に接続することができる。
【００６４】
システム１７０、１７０’に従事する作業者は、機械学習装置１２０（又は１００）による学習開始後の適当な時期に、機械学習装置１２０（又は１００）による工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の学習の到達度（すなわち工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）の信頼性）が要求レベルに達したか否かの判断を実行することができる。
【００６５】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００６６】
例えば、機械学習装置１００，１２０が実行する学習アルゴリズム、機械学習装置１２０が実行する演算アルゴリズム、制御装置１、２が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００６７】
また、上記した実施形態では制御装置１（又は２）と機械学習装置１００（又は１２０）が異なるＣＰＵを有する装置として説明しているが、機械学習装置１００（又は１２０）は制御装置１（又は２）が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【００６８】
更に、上記した実施形態では機械学習装置１２０が出力する指令値Ｃに基づいて制御装置２が工具の刃部がワークを抜ける際の該工具の単位周期あたりの送り量（送り速度）を制御する構成を示したが、機械学習装置１２０が出力する指令値Ｃを制御装置２の表示器／ＭＤＩユニット７０上に表示して、作業者が加工プログラムを作成する際の参考となるようにしても良い。
【符号の説明】
【００６９】
１  制御装置
２  制御装置
３  状態データ取得部
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５  インタフェース
１６  ＰＭＣ
１７  Ｉ／Ｏユニット
１８，１９，２１  インタフェース
２０  バス
２１  インタフェース
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  スピンドルモータ
６３  ポジションコーダ
７０  表示器／ＭＤＩユニット
７１  操作盤
７２  外部機器
１００，１２０  機械学習装置
１０２  状態観測部
１０４  判定データ取得部
１０６  学習部
１０８  報酬計算部
１１０  価値関数更新部
１２２  意思決定部
１６０，１６０’  工作機械
１７０，１７０’  システム
１７２  ネットワーク
【図１】
2018199189.tif 000005
【図２】
2018199189.tif 000006
【図３】
2018199189.tif 000007
【図４】
2018199189.tif 000008
【図５Ａ】
2018199189.tif 000009
【図５Ｂ】
2018199189.tif 000010
【図６】
2018199189.tif 000011
【図７】
2018199189.tif 000012
【図８】
2018199189.tif 000013
【図９】
2018199189.tif 000014
【図１０】
2018199189.tif 000015