(57)【特許請求の範囲】
【請求項１】
制御対象物の制御を行う制御装置であって、
電気的ノイズを検出するノイズ検出部と、
前記制御装置の入出力信号および内部信号の状態および状態変化に関する情報、前記制御対象物の動作状態に関する情報、および前記制御装置の環境条件に関する情報の少なくとも一部からなる状態変数と、を観察し、観察した前記状態変数および前記ノイズ検出部の検出した電気的ノイズに関するノイズデータから、前記電気的ノイズの発生原因を学習する学習部と、を有し、
前記学習部は、
前記状態変数および前記ノイズデータが入力される状態観測部と、
前記状態変数および前記ノイズデータから、前記状態変数と前記ノイズデータの関係を学習するノイズ源学習部と、
前記ノイズ源学習部の学習結果から、前記ノイズの発生原因を決定するノイズ源決定部と、を有することを特徴とする制御装置。
【請求項２】
前記ノイズ源学習部は、
前記ノイズデータからラベル値を算出するラベル算出部と、
前記状態変数を入力ベクトルとし、前記ラベル値への決定木を学習する決定木学習器と、を有する請求項１に記載の制御装置。
【請求項３】
前記ノイズ源学習部は、
前記ノイズデータから検出ラベル値を算出するラベル算出部と、
前記状態変数を入力とし、計算ラベル値を計算するニューラルネットワーク関数を有するニューラルネットワーク学習器と、
前記計算ラベル値と前記検出ラベル値の比較結果に基づいて、前記計算ラベル値と前記検出ラベル値が一致するように前記ニューラルネットワーク関数を更新する関数更新部と、を有する請求項１に記載の制御装置。
【請求項４】
前記制御装置は、誤り検出符号または誤り訂正符号を含むデータを通信し、通信したデータの前記誤り検出符号または前記誤り訂正符号から通信エラーの発生を検出する通信部を有し、
前記ノイズデータを、前記通信エラー発生時にノイズ有りとし、前記通信エラー非発生時にノイズ無しとする請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
通信ネットワークを介して他の制御装置と相互に通信可能に接続され、他の制御装置と前記学習部の学習結果を交換または共有する請求項１から４のいずれか１項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノイズの発生原因を検出する学習機能を有する制御装置に関する。
【背景技術】
【０００２】
制御装置により制御対象物を制御することが広く行われており、例えば、工作機械は数値制御装置により制御され、ロボットはロボット制御装置で制御される。このような制御装置の誤動作の原因の一つに電気的ノイズ（雑音）（以下、単にノイズと称する場合がある）がある。
【０００３】
ノイズによる誤動作の防止策として、ノイズの発生原因を取り除く方法や、ノイズの混入を抑制する方法などが考えられる。例えば、ノイズ発生源を周囲から電気的に遮断する方法や、ノイズの影響を受けないように信号経路をシールドする方法等である。このような対策を行うには、ノイズの発生原因（ノイズ源）を特定することが重要になる。
【０００４】
工作機械等の制御装置でノイズの発生原因を特定するためには、一般に機械の設置現場において、オシロスコープ等の測定装置を用いてノイズを観測する方法がとられる。ノイズの観測は、制御装置の内部信号、入出力信号等を変化させ、それに応じて機械の動作状態を変化させた状態で行われる。
【０００５】
しかし、このようなノイズ測定を行うには、制御装置のサービス員が測定器材を持参して機械の設置場所に赴く必要があり、高額のサービス費用が発生するため好ましくない。さらに、誤動作を伴うノイズ障害は、状況に応じて間欠的に発生することが多く、その観測には長時間を要することが多い。
【０００６】
特許文献１は、給湯制御運転を行う給湯システムにおいて、ノイズ検出時にノイズ発生状況に関係する情報を記憶することを開示している。しかし、特許文献１に開示された技術では、サービス員が記憶した情報に基づいてノイズの発生原因を調べる必要がある。
【０００７】
特許文献２は、電源装置の放出する電磁波を検出する電磁波ノイズ検出装置を開示している。特許文献２に開示された技術では、閾値以上の電磁波ノイズを検出した場合には、サービス員がさらにノイズ発生状況に関する情報を収集し、その上でノイズの発生原因を調べる必要がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−１５９９８８号公報
【特許文献２】特開２０１５−５０９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以上の通り、ノイズ発生状況に関係する情報を自動的に収集することは行われていたが、ノイズの発生原因を自動で特定することは行われていなかった。もしノイズの発生原因を自動で特定できれば、サービス員以外の機械の使用者がノイズの発生原因に対する対策を行うことが可能になり、またサービス員が対策を行う場合にも直ちに対策を行うことが可能になるので、サービス費用を低減することができる。
【００１０】
本発明の目的は、ノイズの原因を自動的に特定するノイズ解析機能を有する制御装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の制御装置は、制御対象物の制御を行う制御装置であって、電気的ノイズを検出するノイズ検出部と、制御装置の入出力信号および内部信号の状態および状態変化に関する情報、制御対象物の動作状態に関する情報、および制御装置の環境条件に関する情報の少なくとも一部からなる状態変数と、を観察し、観察した状態変数およびノイズ検出部の検出した電気的ノイズに関するノイズデータから、電気的ノイズの発生原因を学習する学習部と、を有し、学習部は、状態変数およびノイズデータが入力される状態観測部と、状態変数およびノイズデータから、状態変数とノイズデータの関係を学習するノイズ源学習部と、ノイズ源学習部の学習結果から、ノイズの発生原因を決定するノイズ源決定部と、を有することを特徴とする。
【００１２】
ノイズ検出部は、制御装置内部のノイズ量を測定するが、測定箇所は一個所に限定されず、複数個所であってもよい。さらに、ノイズ検出部は、制御装置外であっても影響する可能性があるノイズ量の測定値を受信して制御装置内部のノイズ量の測定値と合成してノイズデータとしてもよい。状態変数は、電気的ノイズの発生に関係する可能性がある事象、例えば、制御装置の外部から制御装置に入力される信号（各種操作スイッチの状態、各種センサの値等）の状態および変化量、制御装置から外部に出力する信号（表示灯のON/OFF信号、クーラントの制御信号、ドア開閉制御信号等）の状態および変化量、制御対象物の動作状態（モータの速度、加速度、加加速度等）、制御装置の動作状態（制御部のプロセッサの負荷状況、通信部の帯域使用状況等）、もし近傍の他の制御装置が存在すればその動作状態、制御装置が置かれている環境条件（温度、湿度等）から、選択される。学習部は、状態変数のノイズデータの値に対する相関関係を、例えば教師有り学習の手法で学習する。なお、ノイズ検出部は複数個所のノイズ量の測定値を合成せず、学習部は複数個所のノイズ量の測定値それぞれについて学習を行うようにしてもよい。学習の結果得られた学習モデルから、ノイズの発生原因を特定する。
【００１３】
学習部は、状態変数およびノイズデータが入力される状態観測部と、状態変数およびノイズデータから、状態変数の電気的ノイズに対する影響具合を学習するノイズ源学習部と、ノイズ源学習部の学習結果から、ノイズの発生原因を決定するノイズ源決定部と、を有するように構成する。
【００１４】
ノイズ源学習部は、ノイズデータからラベル値を算出するラベル算出部と、状態変数を入力とし、ラベル値への決定木を学習する決定木学習器と、を有するように構成する。
【００１５】
また、ノイズ源学習部は、ノイズデータから検出ラベル値を算出するラベル算出部と、状態変数を入力とし、計算ラベル値を計算するニューラルネットワーク関数を有するニューラルネットワーク学習器と、計算ラベル値と検出ラベル値の比較結果に基づいて計算ラベル値と検出ラベル値が一致するようにニューラルネットワーク関数を更新する関数更新部と、を有するように構成してもよい。
【００１６】
制御装置は、誤り検出符号または誤り訂正符号を含むデータを通信し、通信したデータの誤り検出符号または誤り訂正符号から通信エラーの発生を検出する通信部を有し、ノイズデータを、通信エラー発生時にノイズ有りとし、通信エラー非発生時にノイズ無しとするように決定してもよい。
【００１７】
さらに、通信ネットワークを介して他の制御装置と相互に通信可能に接続され、他の制御装置と前記学習部の学習結果を交換または共有するようにしてもよい。
【発明の効果】
【００１８】
本発明によれば、制御装置で自動的にノイズ発生原因を特定することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１実施形態の機械システムの全体構成を示す図である。
【図２】１台の機械の概略構成を示す図である。
【図３】第１実施形態における学習に関する処理を示すフローチャートである。
【図４】第２実施形態におけるノイズ源学習部の構成を示す図である。
【図５】第２実施形態で得られた決定木の例を示す図である。
【図６】第２実施形態における学習に関する処理を示すフローチャートである。
【図７】第３実施形態におけるノイズ源学習部の構成を示す図である。
【図８】第３実施形態における機械学習の動作フローを示すフローチャートである。
【図９】ニューロンのモデルを示す模式図である。
【図１０】３層の重みを有するニューラルネットワークを示す模式図である。
【発明を実施するための形態】
【００２０】
図１は、本発明の第１実施形態の機械システムの全体構成を示す図である。
第１実施形態の機械システムは、複数の機械１Ａ、１Ｂ、…、１Ｎを有する。例えば、機械は、工作機械、鍛圧機械、射出成形機、産業機械、あるいは各種ロボットであり、工場内に近接して複数台が配置されている。ここでは、工作機械を例として説明するがこれに限定されるものではない。
【００２１】
機械１Ａ、１Ｂ、…、１Ｎは、制御対象物２Ａ、２Ｂ、…、２Ｎと、制御装置３Ａ、３Ｂ、…、３Ｎと、を有する。制御対象物２Ａ、２Ｂ、…、２Ｎは、旋盤、フライス盤、マシニングセンタ等の加工部であり、制御装置３Ａ、３Ｂ、…、３Ｎにより数値制御される。制御装置３Ａ、３Ｂ、…、３Ｎは、数値制御(Computer Numerical Control: CNC)装置であり、それぞれ学習部４Ａ、４Ｂ、…、４Ｎが搭載されている。学習部４Ａ、４Ｂ、…、４Ｎを含む制御装置３Ａ、３Ｂ、…、３Ｎは、コンピュータにおいて、ソフトウェアまたはファームウェアにより実現される。制御装置３Ａ、３Ｂ、…、３Ｎは、ネットワークにより相互に通信可能に接続されている。制御装置３Ａ、３Ｂ、…、３Ｎは、全体の制御指令を出力するホストとなる機械（または専用の全体制御装置）からの指令に基づいて動作する。なお、学習部を実現するコンピュータ等を、これまでのＣＮＣ装置に付属するように設けることで上記の構成を実現することも考えられ、そのような場合は、ＣＮＣ装置と付属のコンピュータを含めて制御装置と称する。いずれにしろ、学習部の実現方法は各種可能であり、特に限定されない。
【００２２】
図２は、１台の機械の概略構成を示す図である。
図２の機械は、図１の機械１Ａ、１Ｂ、…、１Ｎのうちの１台で、その制御装置は、他の機械の制御装置と通信可能に接続されている。機械は、制御対象物２と、制御装置３と、を有する。制御対象物２は、工作機械の機械部分に加えて、モータを含む駆動部２１と、センサ２２と、を有する。ここでは、駆動部２１は、ノイズセンサ２３を有するが、ノイズセンサ２３は、かならず設けられるものではない。
【００２３】
制御装置３は、ＮＣ制御部３１と、通信部３２と、ノイズ検出部３４と、学習部４と、を有する。ＮＣ制御部３１は、工作機械の数値制御に広く使用されるもので、特に限定されない。通信部３２は、図１に示した他の工作機械および専用の全体制御装置との通信を行い、当該工作機械での動作指令を受信すると共に、当該工作機械の動作状態等に関するデータを他の工作機械および専用の全体制御装置に送信する。通信部３２は、誤り検出符号または誤り訂正符号を含むデータを通信し、受信した誤り検出符号または誤り訂正符号から通信エラーの発生率を検出する通信エラー検出部３３を有する。
【００２４】
ＮＣ制御部３１は、受信した動作指令に基づいて駆動部２１のモータを指令値の位置に移動させる制御に必要なモータの電流指令値の演算処理を行い、対応するＰＷＭ信号を生成して駆動部２１に出力すると共に、モータからのフィードバック信号を受け、モータが所望の回転を行うように制御するサーボ制御を行う。さらに、ＮＣ制御部３１は、センサ２２が検出した制御対象物２の状態を示す検出信号を受信し、制御に利用する。
【００２５】
ノイズ検出部３４は、制御装置３内で発生した電気的ノイズ量を検出する。例えば、ノイズ検出部３４は、制御装置３内で発生した電気的ノイズ量が所定値以上の場合に、ノイズ発生を示すフラグを「１」にし、所定値より小さければフラグを「０」にする。所定値は、例えば誤動作が発生した時のノイズ量を考慮して決定する。この場合、制御装置３で誤動作が発生した時でも、ノイズ量が所定値より小さければフラグは「０」になる。これは、誤動作がノイズに起因しない場合もあるからである。
【００２６】
さらに、ノイズ検出部３４は、通信エラー検出部１３の検出した通信エラー量およびノイズセンサ２３からの制御対象物２内の電気的ノイズ量に関するデータを受信する。ノイズ検出部３４は、通信エラー検出部３３の検出した通信エラー量が所定値以上の場合に、ノイズ発生を示すフラグを「１」にし、所定値より小さければフラグを「０」にしてもよい。また、ノイズ検出部３４は、制御装置３内で発生した電気的ノイズ量と、ノイズセンサ２３が検出した制御対象物２内の電気的ノイズ量との和が所定値以上の場合に、ノイズ発生を示すフラグを「１」にし、所定値より小さければフラグを「０」にしてもよい。
【００２７】
図２では、ノイズ検出部３４は、１個に設けられているが、複数個設け、各ノイズ検出部に対応した複数のフラグの値を設定しても、複数個のノイズ検出部の検出した電気的ノイズ量の重み付け合成値に基づいてフラグの値を設定してもよく、記載した例以外のノイズ量の組み合わせに基づいてフラグの設定を行ってもよい。さらに、フラグではなく、３つ以上のレベルでノイズの程度を表すことも可能である。
【００２８】
学習部４は、状態観測部４１と、ノイズ源学習部４４と、ノイズ源決定部４５と、を有する。状態観測部４１は、ベクトル入力部４２と、ノイズデータ入力部４３と、を有する。ベクトル入力部４２は、制御装置３から外部に出力する信号の状態および変化量、外部から制御装置３に入力される信号の状態および変化量、制御対象物２内のモータの動作状態、制御装置３が置かれている環境状態、および図１に示した他の機械の制御装置の動作状態等の観測可能な状態変数を受ける。状態変数は、学習におけるベクトル入力となる。ノイズデータ入力部４３は、ノイズ検出部３４が検出したノイズデータを受ける。ここでは、ノイズ検出部３４が、上記のようにノイズが大きい状態であるかを判定し、ノイズが大きいと判定すればノイズ発生フラグを「１」にし、ノイズが小さいと判定すればノイズ発生フラグを「０」にするものとし、ノイズデータ入力部４３はこのノイズ発生フラグをノイズデータとして受けるものとして説明を行う。
【００２９】
ベクトル入力部４２およびノイズデータ入力部４３は、同じ時点の状態変数とノイズデータを受ける。後述する学習を行う上では、ノイズ発生フラグが「１」と「０」のデータ数が近いことが望ましい。そこで、ノイズ発生フラグが「１」になる頻度と「０」になる頻度が大きく異なる場合には、状態観測部４１は、ノイズ発生フラグが「１」と「０」のデータ数が近くなるようにサンプリングすることが望ましい。例えば、ノイズ発生フラグが「１」となる大きなノイズの発生頻度が小さい場合にはノイズ発生フラグが「０」となる場合のデータをランダムに破棄し、逆にノイズ発生フラグが「０」となる大きなノイズの発生頻度が小さい場合にはノイズ発生フラグが「１」となる場合のデータをランダムに破棄し、ノイズ発生フラグが「１」と「０」のデータ数が近くなるようにサンプリングする。
【００３０】
ノイズ源学習部４４は、状態観測部４１からの状態変数とノイズデータの関係を学習する。以下、ノイズ源学習部４４における学習処理についついて説明する。
【００３１】
観測可能な入力をｘ、観測不能な環境変数をΘ、出力をｙとする。上記のように、ｘは、制御装置３から外部に出力する信号の状態および変化量、外部から制御装置３に入力される信号の状態および変化量、制御対象物２内のモータの動作状態、制御装置３が置かれている環境状態、および図１に示した他の機械の制御装置の動作状態等のデータである。Θは、ノイズ発生原因となる機器からの距離、ケーブルのフォーミング等の制御装置３の設置状況等、観測不可能な環境状態である。ｙは、ノイズ量であり、ここでは「１」または「０」である。
【００３２】
ここで、入力ｘ、Θからｙを得るための関数をｆΘ（ｘ）とする。これを学習モデルと呼び、このｆを表現するのに、ニューラルネットワークや決定木などが用いられる。ノイズ源学習部４４は、入力ｘとノイズデータｙの組を多数受け、これらを用いて学習モデルｆのパラメータの調整を行う。
【００３３】
本実施形態においては、制御装置３から外部に出力する信号の状態および変化量、外部から制御装置３に入力される信号の状態および変化量、制御対象物２におけるモータの動作状態、制御装置３が置かれている環境状態、および図１に示した他の機械の制御装置の動作状態等の観測可能なデータのうちの少なくとも一つを入力ｘ、その時のノイズ量を出力ｙとし、機械の動作時の入力ｘと出力ｙの観測を複数回実施して複数のデータセットを獲得し、学習器（ニューラルネットワークや決定木等）で学習する。これにより、入力ｘと出力ｙの関係性ｆを学習することになる。この時、本実施形態においては、制御装置３の設置状況等の観測不可能な環境変数Θにより、この表現される学習モデルｆΘ（ｘ）は異なることになる。
【００３４】
ノイズ源決定部４５は、このようにして得られた学習モデルｆΘを元に、ノイズ原因の特定を行う。
【００３５】
図３は、第１実施形態における学習に関する処理を示すフローチャートである。
ステップＳ１０１で、状態観測部４１が状態変数を観測する。
ステップＳ１０２で、ノイズ源学習部４４が機械学習を行う。
ステップＳ１０３で、ノイズ源決定部４５が学習モデルを元に、ノイズ原因の特定を行う。
ステップＳ１０４で、制御装置３が、ノイズ源学習部４４で得られた学習モデルｆΘ、およびノイズ源決定部４５が特定したノイズ原因を、通信部３２から他の制御装置等に通信することにより、学習結果を交換し共有する。
【００３６】
以上、第１実施形態の機械システムについて説明したが、次に学習部４をより詳細に説明した実施形態を示す。
【００３７】
図４は、第２実施形態におけるノイズ源学習部の構成を示す図である。
第２実施形態の機械システムは、第１実施形態の機械システムと同様の構成を有し、ノイズ源学習部４４を決定木学習器で実現したものである。第２実施形態のノイズ源学習部４４は、コンピュータ上でソフトウェアまたはファームウェア等で実現され、図４に示すような機能構成を有する。
【００３８】
ノイズ源学習部４４は、ラベル算出部５１と、入力データ記憶部５２と、エントロピ算出部５３と、変数選別部５４と、決定木学習器５５と、を有する。ラベル算出部５１は、状態観測部４１のノイズデータ入力部４３からのノイズデータを元に、学習器に適したラベルを算出するが、ノイズデータがノイズ発生フラグであればそのままラベルとして使用することも可能である。
【００３９】
入力データ記憶部５２は、決定木学習を行うのに十分な状態変数の組（入力ｘ、ラベル）を蓄積するように記憶する。
【００４０】
エントロピ算出部５３は、入力ｘの各変数によるエントロピ差を算出する。決定木学習におけるエントロピの算出については広く知られているので、詳しい説明は省略するが、各変数（要素）での分岐によるエントロピの変化（エントロピ差）から各変数のノイズ発生に関する影響度を求めることができる。
【００４１】
変数選別部５４は、エントロピ算出部５３が算出した各変数によるエントロピ差から、学習に使用する変数を選別する。学習器は変数が多いほどノイズ原因について深く学習することが可能であるが、変数の数に応じて計算量が飛躍的に増加するため、実際の学習では、ノイズ発生に影響の少ない変数はできるだけ除くように選別することが望ましい。
なお、入力ｘの変数の数が、学習のためのコンピュータの演算能力に比べて少ない場合には、エントロピ算出部５３および変数選別部５４は、不要である。
【００４２】
決定木学習器５５は、入力ｘの変数およびラベルの組から、決定木学習方法にしたがって、ノイズ有り（ノイズ発生フラグ「１」）となる変数の条件を、ノイズ無し（ノイズ発生フラグ「０」）となる条件から分離する決定木を作成する。
【００４３】
図５は、第２実施形態で得られた決定木の例を示す図である。
決定木において、内部ノードは入力ｘの要素（変数）に対応し、子ノードへの枝はその要素（変数）の取り得る値の条件を示す。葉ノードは、ルートノードからの経路によって表される入力ｘの値の組み合わせに対する、出力ｙの予測値を表す。図５の決定木の例では、「外部出力信号ＤＯｘｘの値」と「モータＸの速度」が内部のノードに現れているので、この２つがノイズの原因であると判断できる。また、ノイズ発生条件としてはＤＯｘｘの値が１、モータＸの速度が１０００ｒｐｍ以上の時であることが分かる。
【００４４】
以上の通り、決定木に現れる要素（変数）がノイズ発生要因であり、枝の条件がノイズ発生の条件であると判断できる。そこで、ノイズ源決定部４５は、決定木を元にノイズ発生の原因を探索し、ノイズ発生原因に関する情報を出力する。
【００４５】
図６は、第２実施形態における学習に関する処理を示すフローチャートである。
ステップＳ２０１で、状態観測部４１が状態変数を観測し、入力データ（変数およびノイズデータ）を収集する。これに応じて、ラベル算出部５１がノイズデータからラベルを算出し、入力データ記憶部５２が、変数およびラベルを記憶する。
ステップＳ２０２で、入力データ記憶部５２がデータ量が十分であるか判定し、十分でなければＳ２０１に戻り、十分であればＳ２０３に進む。
ステップＳ２０３で、エントロピ算出部５３が各変数によるエントロピの変化を算出する。
ステップＳ２０４で、変数選別部５４が学習に使用する変数を選別する。
ステップＳ２０５で、決定木学習部５５が、選別した入力ｘの変数およびラベルから決定木を作成する機械学習を行う。
ステップＳ２０６で、ノイズ源決定部４５が決定木を元に、ノイズ原因の特定を行う。
その後、第１実施形態と同様に、制御装置３が、ノイズ源決定部４５が特定したノイズ原因、すなわち学習結果を、通信部３２から他の制御装置等に通信する。
【００４６】
図７は、第３実施形態におけるノイズ源学習部の構成を示す図である。図７では、状態観測部が一緒に示されている。
第３実施形態の機械システムは、第１実施形態の機械システムと同様の構成を有し、ノイズ源学習部４４を「教師有り」のニューラルネットワーク学習器で実現したものである。第３実施形態のノイズ源学習部４４は、コンピュータ上でソフトウェアまたはファームウェア等で実現され、図７に示すような機能構成を有する。
【００４７】
状態観測部４１は、第１実施形態と同様にベクトル入力部４２と、ノイズデータ入力部４３と、を有する。
ノイズ源学習部４４は、ラベル算出部６１と、ニューラルネットワーク（ＮＷ）学習器６２と、関数更新部６３と、を有する。
【００４８】
ラベル算出部６１は、ノイズデータ入力部４３の出力するノイズデータからラベルを算出する。
【００４９】
ＮＷ学習器６２は、ベクトル入力部４２の出力する状態変数を変数とし、ノイズの有無を示す結果を出力するニューラルネットワーク（関数）を有する。
関数更新部６３は、ラベル算出部６１の出力するラベルとＮＷ学習器６２の出力する結果を比較し、比較結果をＮＷ学習器６２に出力する。
ＮＷ学習器６２は、比較結果が一致するようにニューラルネットワーク（関数）を更新する学習を行う。
【００５０】
図８は、第３実施形態における機械学習の動作フローを示すフローチャートである。
ステップＳ３０１で、工作機械を稼働する。
ステップＳ３０２で、状態観測部４１は、状態変数およびノイズデータを観測する。
【００５１】
ステップＳ３０３で、ラベル算出部６１は、状態観測部４１のノイズデータ入力部４３によって観測されたノイズデータに基づいてラベルを計算する。前述のように、ノイズデータがノイズ発生フラグであればそのままラベルとして使用される。
【００５２】
ステップＳ３０４で、ＮＷ学習器６２は、状態観測部４１のベクトル入力部４２によって観測された状態変数に基づいて、その時に入力された状態変数によりノイズが発生するか否かを計算し、その計算結果を出力する。計算結果は、ノイズが発生する場合は「１」であり、ノイズが発生しない場合は「０」である。
【００５３】
ステップＳ３０５で、関数更新部６３は、ラベル算出部６１の出力するラベルとＮＷ学習器６２の出力する計算結果が一致するか比較し、一致しない場合はステップＳ３０６に進み、一致する場合にはＳ３０７に進む。
【００５４】
ステップＳ３０６で、計算結果がラベルに一致するようにニューラルネットワーク（関数）を更新し、Ｓ３０２に戻る。ニューラルネットワーク（関数）の更新については、後で詳述する。
【００５５】
ステップＳ３０７で、計算結果がラベルに連続して一致した回数が所定回数ＴＨを超えたかを判定し、超えていなければＳ３０２に戻り、超えていればＳ３０８に進む。
ステップＳ３０８に進んだ場合は、ニューラルネットワーク（関数）が、変数に応じてノイズが発生するか否か適切に判定できる状態になったことを意味する。Ｓ３０８で、ノイズ源決定部４５は、ニューラルネットワーク（関数）の内部状態を元にノイズ発生の原因を探索し、ノイズ発生原因に関する情報を出力する。
【００５６】
次に、ＮＷ学習器６２についてより詳細に説明する。ＮＷ学習器６２は、入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。ここでは、学習アルゴリズムとして、「教師有り学習」を使用し、さらに「深層学習」と呼ばれる手法を使用する。なお、ＮＷ学習器６２は、例えば、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ ｃｏｍｐｕｔｉｎｇ ｏｎ Ｇｒａｐｈｉｃｓ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔｓ）や大規模ＰＣクラスター等を適用することにより実現される。
【００５７】
「教師有り学習」とは、ある入力と結果（ラベル）のデータの組を大量にＮＷ学習器６２に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、すなわち、その関係性を帰納的に獲得するものである。この教師有り学習を本実施形態に適用する場合、ニューラルネットワークのアルゴリズムを用いて実現することができる。
【００５８】
まず、ＮＷ学習器６２の学習アルゴリズムを説明する。
学習の問題設定として、次のように考える。
・制御装置３の学習部４は環境の状態を観測し、ニューラルネットワーク（関数）の値（ノイズの有無）を計算する。
・環境は動作に従って変化する。
・観測した環境（状態変数）に対して、実際のノイズの有無が観測され、ラベルが得られる。
・ニューラルネットワーク（関数）は、計算結果が実際の結果であるラベルに一致するように更新される。
・環境（状態変数）が引き起こす結果（ノイズの有無）を全く知らない、または不完全にしか知らない状態から学習はスタートする。すなわち、機械（制御装置）が実際に動作して初めて、その結果（ノイズ）をデータとして得ることができる。つまり、試行錯誤しながら最適な関数が得られ、ノイズの原因を探索できるようにする必要がある。
【００５９】
ＮＷ学習器６２は、ニューラルネットワークを用いた関数を有し、確率勾配降下法などの手法で関数のパラメータを調整していくことで関数を更新する。ニューラルネットワークは、たとえば図９に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置およびメモリ等で構成される。図９は、ニューロンのモデルを示す模式図である。
【００６０】
図９に示すように、ニューロンは、複数の入力ｘ（図８では、一例として、入力x1〜入力x3）に対する出力ｙを出力するものである。各入力x1〜x3には、この入力ｘに対応する重みｗ（w1〜w3）が掛けられる。これにより、ニューロンは、式１により表現される出力ｙを出力する。なお、入力ｘ、出力ｙおよび重みｗは、すべてベクトルである。また、下記の式１において、θはバイアスであり、ｆkは活性化関数である。
【００６１】
【数１】
0006444851.tif 000002
【００６２】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図１０を参照して説明する。図１０は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【００６３】
図１０に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。なお、第３実施形態では、出力ｙはｙ１のみである。
【００６４】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてＷ１と標記されている。
【００６５】
ニューロンＮ１１〜Ｎ１３は、それぞれ、Ｚ１１〜Ｚ１３を出力する。図１０において、これらＺ１１〜Ｚ１３はまとめて特徴ベクトルＺ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルＺ１は、重みＷ１と重みＷ２との間の特徴ベクトルである。Ｚ１１〜Ｚ１３は、２つのニューロンＮ２１、Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ２と標記されている。
【００６６】
ニューロンＮ２１、Ｎ２２は、それぞれ、Ｚ２１、Ｚ２２を出力する。図１０において、これらＺ２１、Ｚ２２は、まとめて特徴ベクトルＺ２と標記されている。この特徴ベクトルＺ２は、重みＷ２と重みＷ３との間の特徴ベクトルである。特徴ベクトルＺ２１、Ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ３と標記されている。
【００６７】
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００６８】
ニューラルネットワークの動作には、学習モードと探索モードがある。例えば、学習モードにおいて学習データセットを用いて重みｗを学習し、ノイズ源決定部４５はそのパラメータを用いて探索モードにおいてノイズの原因を探索する。
【００６９】
ここで、探索モードで実際に機械を稼働して得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行う（バッチ学習）こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００７０】
また、重みＷ１〜Ｗ３は、誤差逆伝搬法（バックプロパゲーション：Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）（ここでは結果の一致・不一致）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００７１】
このようなニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する学習器を、教師データのみから自動的に獲得することが可能である。
【００７２】
第１から第３実施形態では、ノイズデータは、２値のフラグで表したが、３値以上の多値データにすることも可能である。さらに、前述のように、異なる場所に複数のノイズ検出部を設け、複数のノイズ検出部の出力についてそれぞれ学習を行うことも可能である。
【符号の説明】
【００７３】
１Ａ−１Ｎ    機械
２、２Ａ−２Ｎ    制御対象物（工作機械）
３、３Ａ−３Ｎ    制御装置
４、４Ａ−４Ｎ    学習部
２１    モータを含む駆動部
３１    ＮＣ制御部
３１    報酬計算部
３２    通信部
３３    通信エラー検出部
３４    ノイズ検出部
４１    状態観測部
４２    ベクトル入力部
４３    ノイズデータ入力部
４４    ノイズ源学習部
４５    ノイズ源決定部
５１    ラベル算出部
５２    入力データ記憶部
５３    エントロピ算出部
５４    変数選別部
５５    決定木学習器
【図１】
0006444851.tif 000003
【図２】
0006444851.tif 000004
【図３】
0006444851.tif 000005
【図４】
0006444851.tif 000006
【図５】
0006444851.tif 000007
【図６】
0006444851.tif 000008
【図７】
0006444851.tif 000009
【図８】
0006444851.tif 000010
【図９】
0006444851.tif 000011
【図１０】
0006444851.tif 000012