(57)【要約】【課題】網羅的且つ効率的な意地悪試験を行うことが可能な試験装置及び機械学習装置を提供すること。【解決手段】本発明の試験装置１が備える機械学習装置１００は、前記試験項目を示す試験項目データ、前記製造機械の稼働状態を示す製造機械稼働状態データ、及び前記製造機械の仕様を示す製造機械仕様データを、環境の現在状態を表す状態変数として観測する状態観測部１０６と、試験項目が実施された場合における製造機械の稼働状態の適否判定結果を示す判定データを取得する判定データ取得部１０８と、状態変数と判定データとを用いて、製造機械稼働状態データ及び製造機械仕様データと、試験項目データとを関連付けて学習する学習部１１０とを備える。【選択図】図２
2019082882.tif 000002
【特許請求の範囲】
【請求項１】
製造機械を試験する試験項目を決定する試験装置であって、前記製造機械の稼働状態及び前記製造機械の仕様に対する試験項目を決定する試験装置において、
前記製造機械に対する前記試験項目の決定を学習する機械学習装置を備え、
前記機械学習装置は、
前記試験項目を示す試験項目データ、前記製造機械の稼働状態を示す製造機械稼働状態データ、及び前記製造機械の仕様を示す製造機械仕様データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記試験項目が実施された場合における前記製造機械の稼働状態の適否判定結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記製造機械稼働状態データ及び前記製造機械仕様データと、前記試験項目データとを関連付けて学習する学習部と、
を備える試験装置。
【請求項２】
前記学習部は、
前記適否判定結果に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記製造機械の稼働状態、及び前記製造機械の仕様に対する前記試験項目の価値を表す関数を更新する価値関数更新部と、
を備え、
前記報酬計算部は、前記製造機械の動作が不安定になるほど高い報酬を計算する、
請求項１に記載の試験装置。
【請求項３】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算する、
請求項１または２に記載の試験装置。
【請求項４】
製造機械を試験する試験項目を決定する試験装置であって、前記製造機械の稼働状態及び前記製造機械の仕様に対する試験項目を決定する試験装置において、
前記製造機械に対する前記試験項目の決定を学習した機械学習装置を備え、
前記機械学習装置は、
前記試験項目を示す試験項目データ、前記製造機械の稼働状態を示す製造機械稼働状態データ、及び前記製造機械の仕様を示す製造機械仕様データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記製造機械稼働状態データ及び前記製造機械仕様データと、前記試験項目データとを関連付けて学習した学習部と、
前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、前記試験項目に基づく試験の動作指令を出力する推論結果出力部と
を備える試験装置。
【請求項５】
前記機械学習装置は、クラウドサーバに存在する、
請求項１〜４のいずれか１つに記載の試験装置。
【請求項６】
製造機械を試験する試験項目の決定を学習する機械学習装置であって、
前記試験項目を示す試験項目データ、前記製造機械の稼働状態を示す製造機械稼働状態データ、及び前記製造機械の仕様を示す製造機械仕様データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記試験項目が実施された場合における前記製造機械の稼働状態の適否判定結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記製造機械稼働状態データ及び前記製造機械仕様データと、前記試験項目データとを関連付けて学習する学習部と、
を備える機械学習装置。
【請求項７】
製造機械を試験する試験項目の決定を学習する機械学習装置であって、
前記試験項目を示す試験項目データ、前記製造機械の稼働状態を示す製造機械稼働状態データ、及び前記製造機械の仕様を示す製造機械仕様データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記製造機械稼働状態データ及び前記製造機械仕様データと、前記試験項目データとを関連付けて学習した学習部と、
前記状態観測部が観測した状態変数と、前記学習部による学習結果に基づいて、前記試験項目に基づく試験の動作指令を出力する推論結果出力部と
を備える試験装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験装置及び機械学習装置に関し、特に意地悪試験を自動設定可能な試験装置及び機械学習装置に関する。
【背景技術】
【０００２】
工作機械やロボット等の製造機械を開発する際、該製造機械の信頼性向上のために前もって意地悪試験を行っている。意地悪試験とは、仕様等により定められた範囲にはない信号や電流値などの入力値や、想定していない運用手順に従って製造機械を運転した場合に、該製造機械の運転に異常が発生しないかを試験する工程のことである。この意地悪試験の内容（即ち、試験項目及び試験手順）は、意地悪試験の内容を決定する担当者が経験に基づいて決定している。
【０００３】
このよう試験工程における作業を支援する従来技術として、例えば特許文献１には、試験対象となるデバイスを制御する制御データをパターン化する技術が開示されている。また、特許文献２には、制御装置の試験を自動で行う試験装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２０３１２５号公報
【特許文献２】特開２０１２−０１４５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、意地悪試験においては、主として試験担当者の経験や過去の不具合事例に基づいて作成された試験項目に基づいた試験しか行わないため、不測の事態を予見した網羅的な試験を行うことは困難であり、製造機械を出荷した後に現場で不具合が発生してしまうことがあるという問題があった。
【０００６】
そこで本発明の目的は、網羅的且つ効率的な意地悪試験を行うことが可能な試験装置及び機械学習装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明の試験装置では、意地悪試験において製造機械に対して与える入力（試験項目）を生成し、該入力に基づく試験の結果を評価する機械学習器を導入することにより、上記課題を解決する。本発明の試験装置に導入された機械学習器は、学習結果に基づいて製造機械に対して与える入力電圧や入力電流を決定し、その入力により機械の出力が不安定になると該試験項目の評価を向上させる。本発明の試験装置に導入された機械学習器は、機械が不安定になるような入力（意地悪動作）を網羅的に索敵し、製造機械の開発者が予期していなかった意地悪動作を開発段階で把握することが可能になる。製造機械の開発者はその情報をもとに、機械の改良や予防保全を行うことが可能になり、商品を発売した後に不測の事態で不具合を発生させずに済むようになる。
【０００８】
そして、本発明の一態様は、製造機械を試験する試験項目を決定する試験装置であって、前記製造機械の稼働状態及び前記製造機械の仕様に対する試験項目を決定する試験装置において、前記製造機械に対する前記試験項目の決定を学習する機械学習装置を備え、前記機械学習装置は、前記試験項目を示す試験項目データ、前記製造機械の稼働状態を示す製造機械稼働状態データ、及び前記製造機械の仕様を示す製造機械仕様データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記試験項目が実施された場合における前記製造機械の稼働状態の適否判定結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記製造機械稼働状態データ及び前記製造機械仕様データと、前記試験項目データとを関連付けて学習する学習部と、を備える試験装置である。
【０００９】
本発明の他の態様は、製造機械を試験する試験項目の決定を学習する機械学習装置であって、前記試験項目を示す試験項目データ、前記製造機械の稼働状態を示す製造機械稼働状態データ、及び前記製造機械の仕様を示す製造機械仕様データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記試験項目が実施された場合における前記製造機械の稼働状態の適否判定結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記製造機械稼働状態データ及び前記製造機械仕様データと、前記試験項目データとを関連付けて学習する学習部と、を備える機械学習装置である。
【発明の効果】
【００１０】
本発明により、製造機械の開発者が想定していなかった不具合や（ソフトウェアの）バグ等を発見可能となり、また、効率的な意地悪試験の実施が可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態による試験装置の概略的なハードウェア構成図である。
【図２】第１の実施形態による試験装置の概略的な機能ブロック図である。
【図３】試験装置の一形態を示す概略的な機能ブロック図である。
【図４】機械学習方法の一形態を示す概略的なフローチャートである。
【図５Ａ】ニューロンを説明する図である。
【図５Ｂ】ニューラルネットワークを説明する図である。
【図６】試験装置を組み込んだシステムの一形態を示す概略的な機能ブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面と共に説明する。
図１は第１の実施形態による試験装置の要部を示す概略的なハードウェア構成図である。試験装置１は、例えばロボットや工作機械などの製造機械に対する信号入力や電源などを制御することにより試験を行う試験装置として実装することができる。また、試験装置１は、例えばロボットや工作機械などの製造機械の制御装置の一部として実装することができる。更に、試験装置１は、例えばセルコンピュータやホストコンピュータ、クラウドサーバ等のネットワークを介して製造機械と接続されるコンピュータの一部として実装することができる。本実施形態による試験装置１が備えるＣＰＵ１１は、試験装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って試験装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
【００１３】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、試験装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、図示しない入力部を介してオペレータが入力した各種データ（例えば、製造機械７０の制御信号の一覧と信号の取り得る値の範囲、製造機械７０の駆動部を駆動するモータの特性等を含む製造機械７０の仕様等）や、図示しないインタフェースを介して入力された制御用のプログラムなどが記憶されている。不揮発性メモリ１４に記憶されたプログラムや各種データは、実行時／利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、公知の解析プログラムなどの各種のシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）があらかじめ書き込まれている。
【００１４】
センサ６０は、製造機械７０を外部から観測するために設けられる。センサ６０としては、例えば視覚センサや音声センサ、温度センサ、距離センサなどを用いても良い。センサ６０は、製造機械７０自身では検出できない製造機械７０の稼働に係る情報を検出し、インタフェース１８を介してＣＰＵ１１へと通知する。
【００１５】
製造機械７０は、意地悪試験の対象となる機械である。製造機械７０は、例えばロボットや工作機械、放電加工機、射出成形機等の加工機であっても良い。製造機械７０は、ＣＰＵ１１からの動作指令をインタフェース１９を介して信号等により受けて各部を制御することが出来るようになっている。また、製造機械７０は、各部に設けられたセンサやモータ等に供給される電流値などを検出してインタフェース１９を介してＣＰＵ１１へと通知する。
【００１６】
インタフェース２１は、試験装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、機械学習装置１００全体を統御するプロセッサ１０１と、システム・プログラム等を記憶したＲＯＭ１０２、機械学習に係る各処理における一時的な記憶を行うためのＲＡＭ１０３、及び学習モデル等の記憶に用いられる不揮発性メモリ１０４を備える。機械学習装置１００は、インタフェース２１を介して試験装置１で取得可能な各情報（製造機械７０の制御信号の一覧と信号の取り得る値の範囲、製造機械７０の駆動部を駆動するモータの特性などを含む製造機械７０の仕様、センサ６０や製造機械７０から取得した製造機械７０の稼働状況等）を観測することができる。また、試験装置１は、機械学習装置１００から出力される、製造機械７０の試験に係る動作指令を受けて、製造機械７０を制御する
【００１７】
図２は、第１の実施形態による試験装置１と機械学習装置１００の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した試験装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、試験装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００１８】
本実施形態の試験装置１は、機械学習装置１００から出力された推論結果に基づいて製造機械７０に対して試験の動作指令を出力する制御部３４を備える。制御部３４が出力する試験の動作指令は、例えば、電源に対する制御指令（急な電圧上昇、電圧降下、瞬断等）、製造機械７０の各部に対する製造機械７０の仕様により定められる設定可能範囲内外でのパラメータ値のリスト、製造機械７０が備える各モータに対する電流制御、製造機械７０が備える周辺装置への指令等の組合せが例示されるが、これに限定されるものではなく、製造機械７０が備える機能や仕様等によって制御可能な様々な動作指令を出力できるようにしても良い。
【００１９】
本実施形態の機械学習装置１００は、製造機械７０の稼働状態、及び製造機械７０の仕様に対する、次回実施する試験項目を、いわゆる機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ１０１等）を含む。試験装置１が備える機械学習装置１００が学習するものは、製造機械７０の稼働状態、及び製造機械７０の仕様と、次回実施する試験項目との、相関性を表すモデル構造に相当する。
【００２０】
図２に機能ブロックで示すように、試験装置１が備える機械学習装置１００は、次回実施する試験項目を示す試験項目データＳ１と、製造機械７０の稼働状態を示す製造機械稼働状態データＳ２、製造機械７０の仕様を示す製造機械仕様データＳ３を含む環境の現在状態を表す状態変数Ｓとして観測する状態観測部１０６と、次回実施する試験項目が実施された場合における製造機械７０の稼働状態の適否判定結果を示す稼働状態判定データＤ１を含む判定データＤを取得する判定データ取得部１０８と、状態変数Ｓと判定データＤとを用いて、製造機械７０の稼働状態、及び製造機械７０の仕様に、試験項目データＳ１を関連付けて学習する学習部１１０とを備える。
【００２１】
状態観測部１０６が観測する状態変数Ｓのうち、試験項目データＳ１は、製造機械７０に対する試験に係る動作指令のセットとして取得することができる。製造機械７０に対する試験に係る動作指令としては、電源に対する制御指令（急な電圧上昇、電圧降下、瞬断等）、製造機械７０の各部に対する製造機械７０の仕様により定められる設定可能範囲内外でのパラメータ値のリスト、製造機械７０が備える各モータに対する電流制御、製造機械７０が備える周辺装置への指令等の組合せが例示される。このような製造機械７０に対する試験に係る動作指令は、製造機械７０が備える機能や周辺装置等によって異なり、また、製造機械７０の仕様によって設定可能なパラメータの範囲も異なる。状態観測部１０６は、製造機械７０に対する試験に係る動作指令として、静的な指令（値）以外にも、動的な指令（所定の時間幅での値の変動を示す波形、例えばモータに対して出力する電流値の変化を示す波形）として定義できるようにしても良い。
【００２２】
試験項目データＳ１は、学習の初期においては、例えば製造機械７０の仕様に基づいて試験装置が網羅的に作成した製造機械７０の制御可能な電源やパラメータ、モータ、周辺機器の指令の組合せを用いるようにしても良い。また、試験項目データＳ１は、過去に行われた試験において用いられた試験項目の集合から取得するようにしても良い。更に、試験項目データＳ１は、学習がある程度進んだ段階では、機械学習装置１００が学習部１１０の学習結果に基づいて１つ前の学習周期において決定した次回実施する試験項目を用いることができ、このような場合においては、機械学習装置１００は決定した次回実施する試験項目を学習周期毎にＲＡＭ１０３に一時的に記憶しておき、状態観測部１０６は、ＲＡＭ１０３から１つ前の学習周期において機械学習装置１００が決定した次回実施する試験項目を取得するようにしても良い。
【００２３】
状態変数Ｓのうち、製造機械稼働状態データＳ２は、例えば製造機械７０の各部から取得された電流値等の情報や、センサ６０から取得された検出値等に基づいて解析された、製造機械７０の稼働状態に係るデータを用いることができる。製造機械稼働状態データＳ２は、例えば、製造機械７０の各部を駆動するモータの電流値から解析された該モータの負荷や振動値、音声センサとしてのセンサ６０により検出された衝撃音、視覚センサとしてのセンサ６０により検出された製造機械７０の各部の移動状況、温度センサとしてのセンサ６０により検出された製造機械７０の各部の温度等、製造機械７０の稼働状態を評価するための様々な値を取り扱うことが出来る。
【００２４】
状態変数Ｓのうち、製造機械仕様データＳ３は、例えば作業者により試験装置１に対して設定された製造機械７０の仕様を用いることができる。製造機械仕様データＳ３としては、製造機械７０の制御可能な制御項目のリストと、それぞれの制御項目が取り得る値の範囲等が用いられる。
【００２５】
判定データ取得部１０８は、判定データＤとして、次回実施する試験項目が実施された場合における製造機械７０の稼働状態の適否判定値である稼働状態判定データＤ１を用いることができる。判定データ取得部１０８が用いる判定データＤとして、製造機械７０の各部を駆動するモータの負荷が適正な負荷の範囲であるか、振動が発生していないか、製造機械７０に衝撃が発生していないか、製造機械７０が適正な位置にあるか、製造機械７０の各部の温度が適正な範囲に収まっているか等が例示される。判定データＤは、状態変数Ｓの下で製造機械７０に試験の動作指令を行った場合における該試験の動作指令の有効性を表す指標である。
【００２６】
学習部１１０に対して同時に入力される状態変数Ｓは、学習部１１０による学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。このように、試験装置１が備える機械学習装置１００が学習を進める間、環境においては、製造機械稼働状態データＳ２、及び製造機械仕様データＳ３の取得、試験項目データＳ１に基づいた製造機械７０の稼働状態の実行、判定データＤの取得が繰り返し実施される。
【００２７】
学習部１１０は、機械学習と総称される任意の学習アルゴリズムに従い、製造機械７０の稼働状態、製造機械７０の仕様に対する、試験項目データＳ１を学習する。学習部１１０は、前述した状態変数Ｓと判定データＤとを含むデータ集合に基づく学習を反復実行することができる。製造機械７０の稼働状態、製造機械７０の仕様に対する、試験項目データＳ１の学習サイクルの反復中、状態変数Ｓのうち、製造機械稼働状態データＳ２、及び製造機械仕様データＳ３は、上記したように１学習周期前に製造機械７０やセンサ６０から取得した情報の解析結果や不揮発性メモリ１４に設定された製造機械７０の仕様に係る情報から取得し、試験項目データＳ１は、前回までの学習結果に基づいて決定された次回実施する試験項目とし、また判定データＤは、試験項目データＳ１に基づく試験項目が実施された後に実行された今回の学習周期における製造機械７０の稼働状態の適否判定結果とする。
【００２８】
このような学習サイクルを繰り返すことにより、学習部１１０は、製造機械７０の稼働状態（製造機械稼働状態データＳ２）、及び製造機械７０の仕様（製造機械仕様データＳ３）と該状態に対する次回実施する試験項目との相関性を暗示する特徴を自動的に識別することができる。学習アルゴリズムの開始時には製造機械稼働状態データＳ２、及び製造機械仕様データＳ３と、次回実施する試験項目との相関性は実質的に未知であるが、学習部１１０は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。製造機械稼働状態データＳ２、及び製造機械仕様データＳ３と次回実施する試験項目との相関性が、ある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態（つまり製造機械７０の稼働状態、及び製造機械７０の仕様）に対して、次回実施する試験項目をどうするべきかという行動の選択（つまり意思決定）を行うために使用できるものとなる。つまり学習部１１０は、学習アルゴリズムの進行に伴い、製造機械７０の稼働状態、及び製造機械７０の仕様と、当該状態に対して次回実施する試験項目をどのような値とするべきかという行動との、相関性を最適解に徐々に近づけることができる。
【００２９】
推論結果出力部１２２は、学習部１１０が学習した結果に基づいて、次回実施する試験項目の推論を行い、該推論結果を制御部３４へと出力する。推論結果出力部１２２は、学習部１１０による学習が完了した状態において、機械学習装置１００に製造機械７０の稼働状態、及び製造機械７０の仕様が入力されると、次回実施する試験項目を出力する。
【００３０】
上記したように、試験装置１が備える機械学習装置１００は、状態観測部１０６が観測した状態変数Ｓと判定データ取得部１０８が取得した判定データＤとを用いて、学習部１１０が機械学習アルゴリズムに従い、次回実施する試験項目を学習するものである。状態変数Ｓは、試験項目データＳ１、製造機械稼働状態データＳ２、及び製造機械仕様データＳ３といったデータで構成され、また判定データＤは、試験装置１が製造機械７０やセンサ６０から取得した情報を解析することで一義的に求められる。したがって、試験装置１が備える機械学習装置１００によれば、学習部１１０の学習結果を用いることで、製造機械７０の稼働状態、及び製造機械７０の仕様に応じた、次回実施する試験項目を、自動的かつ正確に求めることができるようになる。
【００３１】
そして、次回実施する試験項目を、自動的に求めることができれば、製造機械７０の稼働状態（製造機械稼働状態データＳ２）、及び製造機械７０の仕様（製造機械仕様データＳ３）を把握するだけで、次回実施する試験項目の適切な値を迅速に決定することができる。したがって、次回実施する試験項目の決定を効率よく行うことができる。
【００３２】
上記構成を有する機械学習装置１００では、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図３は、図２に示す試験装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１１０を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本願の機械学習装置では次回実施の試験項目）を最適解として学習する手法である。
【００３３】
図３に示す試験装置１が備える機械学習装置１００において、学習部１１０は、状態変数Ｓに基づいて次回実施する試験項目が実施された場合における製造機械７０の稼働状態の適否判定結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める報酬計算部１１２と、報酬Ｒを用いて、次回実施する試験項目の価値を表す関数Ｑを更新する価値関数更新部１１４とを備える。学習部１１０は、価値関数更新部１１４が関数Ｑの更新を繰り返すことによって製造機械７０の稼働状態、及び製造機械７０の仕様に対する次回実施する試験項目を学習する。
【００３４】
学習部１１０が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００３５】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓt及びａtはそれぞれ時刻ｔにおける状態及び行動であり、行動ａtにより状態はｓt+1に変化する。ｒt+1は、状態がｓtからｓt+1に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００３６】
【数１】
2019082882.tif 000003
【００３７】
学習部１１０がＱ学習を実行する場合、状態観測部１０６が観測した状態変数Ｓ及び判定データ取得部１０８が取得した判定データＤは、更新式の状態ｓに該当し、現在状態（つまり、製造機械７０の稼働状態、及び製造機械７０の仕様）に対する次回実施する試験項目をどのように決定するべきかという行動は、更新式の行動ａに該当し、報酬計算部１１２が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１４は、現在状態に対する次回実施する試験項目の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００３８】
報酬計算部１１２が求める報酬Ｒは、例えば、次回実施する試験項目を決定した後に決定した試験項目に基づいて製造機械７０に動作指令を出力した時に、製造機械７０の稼働状態の適否判定結果が「適」と判定される場合（例えば、モータに予め定めた閾値以上の負荷が発生した場合、製造機械７０に予め定めた閾値以上の振動が発生した場合、想定される軸の移動からみて予め定めた閾値以上に誤差が生じた場合等、製造機械７０の動作が不安定になった場合）に正（プラス）の報酬Ｒとし、次回実施する試験項目を決定した後に決定した動作パラメータに基づいて製造機械７０の稼働状態を行ったときに、製造機械７０の稼働状態の適否判定結果が「否」と判定される場合（例えば、モータの負荷が予め定めた閾値未満の場合、製造機械７０に発生した振動が予め定めた閾値未満の場合、想定される軸の移動からみて予め定めた閾値未満の誤差に収まった場合等、製造機械７０の動作が安定している場合）に負（マイナス）の報酬Ｒとすることができる。正負の報酬Ｒの絶対値は、互いに同一であってもよいし異なっていてもよい。また、判定の条件として、判定データＤに含まれる複数の値を組み合わせて判定するようにしても良い。
【００３９】
また、ロボットの動作の適否判定結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例として、モータに発生した負荷の許容範囲の最大値がＴmaxの場合、モータに発生した負荷Ｔが、０≦Ｔ＜Ｔmax／５のときは報酬Ｒ＝１を与え、Ｔmax／５≦Ｔ＜Ｔmax／２のときは報酬Ｒ＝２を与え、Ｔmax／２≦Ｔ＜Ｔmaxのときは報酬Ｒ＝３を、Ｔmax≦Ｔのときは報酬Ｒ＝５を与えるような構成とすることができる。さらに、学習の初期段階はＴmaxを比較的大きく設定し、学習が進行するにつれてＴmaxを縮小する構成とすることもできる。
【００４０】
価値関数更新部１１４は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１４が関数Ｑを更新するという行為は、価値関数更新部１１４が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には環境の現在状態と次回実施する試験項目との相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。なお報酬計算部１１２は、判定データＤが分かれば、これに対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００４１】
製造機械７０の稼働状態の適否判定結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動（本発明の場合、より製造機械７０を不安定にさせる行動）ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態（製造機械７０の稼働状態、及び製造機械７０の仕様）とそれに対する行動（次回実施する試験項目の決定）との相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、製造機械７０の稼働状態、及び製造機械７０の仕様と、次回実施する試験項目との関係が最適解に徐々に近づけられる。
【００４２】
図４を参照して、学習部１１０が実行する上記したＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。まずステップＳＡ０１で、価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動として次回実施する試験項目を無作為に選択する。次に価値関数更新部１１４は、ステップＳＡ０２で、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込み、ステップＳＡ０３で、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。次に価値関数更新部１１４は、ステップＳＡ０４で、判定データＤに基づき、次回実施する試験項目が適当であったか否かを判断し、適当であった場合、ステップＳＡ０５で、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。ステップＳＡ０４で、次回実施する試験項目が適当でなかったと判断した場合、ステップＳＡ０７で、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。学習部１１０は、ステップＳＡ０１〜ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、次回実施する試験項目の学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００４３】
前述した強化学習を進める際に、例えばニューラルネットワークを応用することができる。図５Ａは、ニューロンのモデルを模式的に示す。図５Ｂは、図５Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００４４】
図５Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００４５】
【数２】
2019082882.tif 000004
【００４６】
図５Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００４７】
図５Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００４８】
図５Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００４９】
試験装置１が備える機械学習装置１００においては、状態変数Ｓと判定データＤとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、次回実施する試験項目（結果ｙ）を出力することができる。また、試験装置１が備える機械学習装置１００においては、ニューラルネットワークをＱ学習における価値関数として用い、状態変数Ｓと行動ａとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、当該状態における当該行動の価値（結果ｙ）を出力することもできる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００５０】
上記した試験装置１の構成は、プロセッサ１０１が実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、次回実施する試験項目を学習する機械学習方法であって、コンピュータのＣＰＵが、試験項目データＳ１，製造機械稼働状態データＳ２、及び製造機械仕様データＳ３を、製造機械７０の試験を行う環境の現在状態を表す状態変数Ｓとして観測するステップと、決定された動作パラメータに基づく製造機械７０の稼働状態の適否判定結果を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、製造機械稼働状態データＳ２、及び製造機械仕様データＳ３と、次回実施する試験項目とを関連付けて学習するステップとを有する。
【００５１】
図６は、試験装置１を備えた一実施形態によるシステム１７０を示す。システム１７０は、セルコンピュータやホストコンピュータ、クラウドサーバ等のコンピュータの一部として実装された少なくとも１台の試験装置１と、試験の対象となる複数の製造機械７０と、試験装置１、製造機械７０を互いに接続する有線／無線のネットワーク１７２とを備える。
【００５２】
上記構成を有するシステム１７０は、機械学習装置１００を備える試験装置１が、学習部１１０の学習結果を用いて、製造機械７０の稼働状態、及び製造機械７０の仕様に対する、次回実施する試験項目を、自動的かつ正確に求めることができる。また、試験装置１の機械学習装置１００が、複数の製造機械７０のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての製造機械７０に共通する次回実施する試験項目を学習し、その学習結果を全ての製造機械７０の試験において共有するように構成できる。したがってシステム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、次回実施する試験項目の学習の速度や信頼性を向上させることができる。
【００５３】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００５４】
例えば、機械学習装置１００が実行する学習アルゴリズムや演算アルゴリズム、試験装置１が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００５５】
また、上記した実施形態では試験装置１と機械学習装置１００が異なるＣＰＵを有する装置として説明しているが、機械学習装置１００は試験装置１が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【符号の説明】
【００５６】
１  試験装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８，１９，２１  インタフェース
２０  バス
３４  制御部
６０  センサ
７０  製造機械
１００  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０６  状態観測部
１０８  判定データ取得部
１１０  学習部
１１２  報酬計算部
１１４  価値関数更新部
１２２  推論結果出力部
１７０  システム
１７２  ネットワーク
【図１】
2019082882.tif 000005
【図２】
2019082882.tif 000006
【図３】
2019082882.tif 000007
【図４】
2019082882.tif 000008
【図５Ａ】
2019082882.tif 000009
【図５Ｂ】
2019082882.tif 000010
【図６】
2019082882.tif 000011