(57)【要約】【課題】研磨品質を最適化する制御装置及び機械学習装置を提供する。【解決手段】ワークの研磨を行うロボットを制御する制御装置１は、研磨を行う際の研磨条件を学習する機械学習装置１００を備え、機械学習装置１００は、研磨後のワークの表面状態の特徴と、研磨条件と、を環境の現在状態を表す状態変数として観測する状態観測部１０６と、研磨後のワークの表面状態の評価結果を示す判定データを取得する判定データ取得部１０８と、状態変数と判定データとを用いて、研磨後のワークの表面状態の特徴と、研磨条件と、を関連付けて学習する学習部１１０と、を備える。【選択図】図２
2019162712.tif 000002
【特許請求の範囲】
【請求項１】
ワークの研磨を行うロボットを制御する制御装置であって、
前記研磨を行う際の研磨条件を学習する機械学習装置を備え、
前記機械学習装置は、前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を環境の現在状態を表す状態変数として観測する状態観測部と、
前記研磨の後の前記ワークの表面状態の評価結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を関連付けて学習する学習部と、を備える
制御装置。
【請求項２】
前記状態変数のうち前記研磨条件は、研磨ツールの回転速度、前記研磨ツールの回転トルク、前記研磨ツールの押付力、及びロボットの動作速度のうち少なくとも１つを含み、
前記判定データは、前記研磨の後の前記ワークの表面の筋の濃さＤ１、前記筋の滑らかさＤ２、前記筋の間隔Ｄ３のうち少なくとも１つを含む
請求項１記載の制御装置。
【請求項３】
前記学習部は、
前記評価結果に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記研磨の後の前記ワークの表面状態の特徴に対する前記研磨条件の価値を表す関数を更新する価値関数更新部と、を備える
請求項１又は２記載の制御装置。
【請求項４】
前記学習部は、
前記状態変数及び前記判定データから前記研磨を行う際の研磨条件を導く相関性モデルと予め用意された教師データから識別される相関性特徴との誤差を計算する誤差計算部と、
前記誤差を縮小するように前記相関性モデルを更新するモデル更新部とを備える、
請求項１又は２記載の制御装置。
【請求項５】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算する
請求項１乃至４いずれか１項記載の制御装置。
【請求項６】
前記学習部による学習結果に基づいて、前記研磨条件に基づく指令値を出力する意思決定部を更に備える
請求項１乃至５いずれか１項記載の制御装置。
【請求項７】
前記学習部は、複数の前記ロボットから得られた前記状態変数及び前記判定データを用いて前記研磨条件を学習する
請求項１乃至６いずれか１項記載の制御装置。
【請求項８】
前記機械学習装置は、クラウドコンピューティング、フォグコンピューティング、エッジコンピューティング環境により実現される
請求項１乃至７いずれか１項記載の制御装置。
【請求項９】
ロボットによりワークの研磨を行う際の研磨条件を学習する機械学習装置であって、
前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を環境の現在状態を表す状態変数として観測する状態観測部と、
前記研磨の後の前記ワークの表面状態の評価結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を関連付けて学習する学習部と、を備える
機械学習装置。
【請求項１０】
複数の装置がネットワークを介して相互に接続されたシステムであって、
前記複数の装置は、少なくとも請求項１に記載された制御装置を備えた第１のロボットを含む
システム。
【請求項１１】
前記複数の装置は、機械学習装置を備えたコンピュータを含み、
前記コンピュータは、前記制御装置の前記学習部における学習により生成された少なくとも１つの学習モデルを取得し、
前記コンピュータが備える機械学習装置は、取得した前記学習モデルに基づいて最適化乃至効率化を行う、
請求項１０に記載のシステム。
【請求項１２】
前記複数の装置は、前記第１のロボットとは異なる第２のロボットを含み、
前記第１のロボットが備えた制御装置が備える学習部による学習結果は、前記第２のロボットと共有される、
請求項１０に記載のシステム。
【請求項１３】
前記複数の装置は、前記第１のロボットとは異なる第２のロボットを含み、
前記第２のロボットにおいて観測されたデータは、前記ネットワークを介して前記第１のロボットが備えた制御装置が備える学習部による学習に利用可能である、
請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、機械学習装置及びシステムに関し、特に研磨品質を最適化する制御装置、機械学習装置及びシステムに関する。
【背景技術】
【０００２】
従来、ロボットが機械部品等の研磨作業を行う場合において、研磨品質の確認作業は人の目視によることが一般的であった。また、研磨品質を向上させるためには、ロボットの動作速度、押付力、研磨ツールの回転数、トルクなど様々な条件を変更しながらテスト研磨を繰り返し実施する必要があった。
【０００３】
特許文献１には、残存ばり高さをセンサで計測する計測動作と、削り動作と、を交互に繰り返すばり研削ロボットが記載されている。特許文献２には、検査ロボットが撮像手段を用いてワークの表面状態の欠陥を監視する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２４６５５２号公報
【特許文献２】特開平５−１９６４４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
人手による試行錯誤で所望の研磨品質を得るまでには、多大な手間と時間が必要である。この点、特許文献１及び特許文献２のいずれも、研磨品質を自動的に最適化するための具体的な技術手段は開示していない。
【０００６】
そこで、研磨品質を最適化する制御装置、機械学習装置及びシステムが望まれている。
【課題を解決するための手段】
【０００７】
本発明の一態様にかかる制御装置は、ワークの研磨を行うロボットを制御する制御装置であって、前記研磨を行う際の研磨条件を学習する機械学習装置を備え、前記機械学習装置は、前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を環境の現在状態を表す状態変数として観測する状態観測部と、前記研磨の後の前記ワークの表面状態の評価結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を関連付けて学習する学習部と、を備える。
本発明の他の態様にかかる機械学習装置は、ロボットによりワークの研磨を行う際の研磨条件を学習する機械学習装置であって、前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を環境の現在状態を表す状態変数として観測する状態観測部と、前記研磨の後の前記ワークの表面状態の評価結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記研磨の後の前記ワークの表面状態の特徴と、前記研磨条件と、を関連付けて学習する学習部と、を備える。
本発明の他の態様にかかるシステムは、複数の装置がネットワークを介して相互に接続されたシステムであって、前記複数の装置は、少なくとも機械学習装置を有する制御装置を備えた第１のロボットを含むシステムである。
【発明の効果】
【０００８】
本発明により、研磨品質を最適化する制御装置及び機械学習装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】制御装置１のハードウェア構成図である。
【図２】第１の実施形態による制御装置１の機能ブロック図である。
【図３】制御装置１の一形態を示す機能ブロック図である。
【図４】機械学習方法の一形態を示す概略的なフローチャートである。
【図５Ａ】ニューロンを説明する図である。
【図５Ｂ】ニューラルネットワークを説明する図である。
【図６】第２の実施形態による制御装置１の機能ブロック図である。
【図７】クラウドサーバ、フォグコンピュータ、エッジコンピュータを含む３階層構造のシステムの例を示す図である。
【図８】制御装置１を組み込んだシステムの一形態を示す機能ブロック図である。
【図９】制御装置１を組み込んだシステムの他の形態を示す機能ブロック図である。
【図１０】制御装置１を組み込んだシステムの他の形態を示す機能ブロック図である。
【図１１】図１０で示したコンピュータの概略的なハードウェア構成図である。
【図１２】制御装置１を組み込んだシステムの他の形態を示す機能ブロック図である。
【図１３】研磨を行うロボットの概略的な模式図である。
【図１４】研磨を行うロボットの概略的な模式図である。
【図１５】ワークの表面状態の一例を示す図である。
【図１６】制御装置１の一形態を示す機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１は、本発明の一実施形態による制御装置１と、制御装置１によって制御される産業用ロボットの要部とを示す概略的なハードウェア構成図である。制御装置１は、例えば研磨を行う産業用ロボット（以下、単にロボットという）を制御する制御装置である。制御装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、インタフェース１８、インタフェース１９、インタフェース２１、インタフェース２２，バス２０、軸制御回路３０、サーボアンプ４０を有する。制御装置１には、サーボモータ５０、教示操作盤６０、研磨ツール７０、撮像装置８０が接続される。
【００１１】
ＣＰＵ１１は、制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをインタフェース２２，バス２０を介して読み出し、システム・プログラムに従って制御装置１全体を制御する。
【００１２】
ＲＯＭ１２は、ロボットの各種制御等を実行するためのシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）を予め格納している。
【００１３】
ＲＡＭ１３は、一時的な計算データや表示データ、後述する教示操作盤６０を介してオペレータが入力したデータ等を一時的に格納する。
【００１４】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされており、制御装置１の電源が遮断されても記憶状態を保持する。不揮発性メモリ１４は、教示操作盤６０から入力されるデータや、図示しないインタフェースを介して入力されたロボット制御用のプログラムやデータ等を格納する。不揮発性メモリ１４に記憶されたプログラムやデータは、実行時及び利用時にはＲＡＭ１３に展開されても良い。
【００１５】
軸制御回路３０は、ロボットが備えるアームの関節等の軸を制御する。軸制御回路３０は、ＣＰＵ１１が出力する軸の移動指令量を受けて、軸の移動指令をサーボアンプ４０に出力する。
【００１６】
サーボアンプ４０は、軸制御回路３０が出力する軸の移動指令を受けて、サーボモータ５０を駆動する。
【００１７】
サーボモータ５０は、サーボアンプ４０により駆動されてロボットが備える軸を移動させる。サーボモータ５０は、典型的には位置・速度検出器を内蔵する。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が軸制御回路３０にフィードバックされることで、位置・速度のフィードバック制御が行われる。
【００１８】
なお、図１では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となるロボットに備えられた軸の数だけ用意される。例えば、６軸を備えたロボットを制御する場合、それぞれの軸に対応する軸制御回路３０、サーボアンプ４０、サーボモータ５０が合計６セット用意される。
【００１９】
教示操作盤６０は、ディスプレイやハンドル、ハードウェアキー等を備えた手動データ入力装置である。教示操作盤６０は、インタフェース１８を介してＣＰＵ１１から受けた情報をディスプレイに表示する。教示操作盤６０は、ハンドルやハードウェアキー等から入力されたパルス、指令、データ等をインタフェース１８を介してＣＰＵ１１に渡す。
【００２０】
研磨ツール７０は、ロボットのアーム先端に保持されて、回転する砥石により研磨対象（ワーク）を研磨する。研磨ツール７０は、インタフェース１９を介してＣＰＵ１１から受けた指令に基づく回転速度、回転トルク及び押付力で研磨を実施する。
【００２１】
撮像装置８０は、ワークの表面状態を撮影するための装置であり、例えばビジョンセンサである。撮像装置８０は、インタフェース２２を介してＣＰＵ１１から受けた指令に応じてワークの表面状態を撮影する。撮像装置８０は、撮影した画像データをインタフェース２２を介してＣＰＵ１１に渡す。
【００２２】
インタフェース２１は、制御装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、プロセッサ１０１、ＲＯＭ１０２、ＲＡＭ１０３、不揮発性メモリ１０４を有する。
【００２３】
プロセッサ１０１は、機械学習装置１００全体を統御する。ＲＯＭ１０２は、システム・プログラム等を格納する。ＲＡＭ１０３は、機械学習に係る各処理における一時的な記憶を行う。不揮発性メモリ１０４は、学習モデル等を格納する。
【００２４】
機械学習装置１００は、制御装置１が取得可能な各種情報（研磨ツール７０の回転速度、回転トルク及び押付力、ロボットのアームの動作速度、撮像装置８０により取得された画像データ等）をインタフェース２１を介して観測する。機械学習装置１００は、サーボモータ５０や研磨ツール７０を制御するための指令をインタフェース２１を介して制御装置１に出力する。制御装置１は、機械学習装置１００からの指令を受けて、ロボットの制御指令の修正等を行う。
【００２５】
図１３及び図１４は、制御装置１が制御するロボットの一例を示す模式図である。
図１３に示すロボットは、サーボモータ５０が駆動することにより自在に動くアームを備える。アームの先端には撮像装置８０（ビジョンセンサ）付きの研磨ツール７０が備えられており、研磨ツール７０が研磨対象であるワークの表面を研磨する。研磨後は、図１４に示すように撮像装置８０がワークの表面状態を撮影する。
【００２６】
図２は、第１の実施形態における制御装置１及び機械学習装置１００の概略的な機能ブロック図である。機械学習装置１００は、状態観測部１０６、判定データ取得部１０８、学習部１１０を有する。状態観測部１０６、判定データ取得部１０８、学習部１１０は、例えばプロセッサ１０１の一機能として実現され得る。又は、例えばＲＯＭ１０２に格納されたソフトウェアをプロセッサ１０１が実行することにより実現されても良い。
【００２７】
状態観測部１０６は、環境の現在状態を表す状態変数Ｓを観測する。状態変数Ｓは、研磨ツール７０の回転速度Ｓ１、研磨ツール７０の回転トルクＳ２、研磨ツール７０の押付力Ｓ３、ロボットのアームの動作速度Ｓ４、ワークの表面状態の特徴Ｓ５を含む。
【００２８】
状態観測部１０６は、制御装置１から、研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３を取得する。制御装置１は、これらの値を研磨ツール７０のモータ又は研磨ツール７０に付加されたセンサ等から取得することができる。
【００２９】
状態観測部１０６は、制御装置１から、ロボットのアームの動作速度Ｓ４を取得する。制御装置１は、この値をサーボモータ５０又はアームに付加されたセンサ等から取得することができる。
【００３０】
状態観測部１０６は、制御装置１から、ワークの表面状態の特徴Ｓ５を取得する。ワークの表面状態の特徴Ｓ５は、研磨後に撮像装置８０が撮影したワークの表面状態の画像から抽出された特徴を示すデータである。例えば、撮像装置８０が有する機能により、又は制御装置１が備える画像処理ソフトウェアにより、ワークの表面状態の画像に含まれる特徴量を抽出することでワークの表面状態の特徴Ｓ５を取得できる。撮像装置８０又は制御装置１は、例えば深層学習等の公知の手法により、ワーク表面の筋の濃さ（深さ）、滑らかさ、間隔等を示す特徴量を自動的に抽出することができる。
【００３１】
図１５に、研磨後に撮像装置８０が撮影したワークの表面状態の画像の一例を示す。このように研磨後のワーク表面には様々な濃さ（深さ）、滑らかさ、間隔の筋が残される。状態観測部１０６は、画像からこのような筋の特徴を認識し、ワークの表面状態の特徴Ｓ５として抽出する。
【００３２】
判定データ取得部１０８は、状態変数Ｓの下でロボットが研磨を行った場合における結果を示す指標である判定データＤを取得する。判定データＤは、研磨後に撮像装置８０が撮影したワークの表面状態の画像における筋の濃さＤ１、筋の滑らかさＤ２、筋の間隔Ｄ３を含む。
【００３３】
例えば、撮像装置８０が有する機能又は制御装置１が備える画像処理ソフトウェアが、研磨後に撮像装置８０が撮影したワークの表面状態の画像を解析することにより、筋の濃さＤ１、滑らかさＤ２、間隔Ｄ３をそれぞれ数値化して出力することができる。又は、作業者が、研磨後に撮像装置８０が撮影したワークの表面状態の画像を目視で評価し、評価結果を示す値（例えば適＝「１」、否＝「０」）を教示操作盤６０から入力することによって、Ｄ１，Ｄ２，Ｄ３が与えられても良い。
【００３４】
一変形例として、判定データＤは、研磨ツール７０の回転トルクＤ４を含んでも良い。回転トルクＤ４はワーク表面の滑らかさと相関関係があることが知られている。また判定データＤは、研磨ツール７０の温度Ｄ５を含んでも良い。温度Ｄ５は適切な押付力と相関関係があることが知られている。
【００３５】
学習部１１０は、状態変数Ｓと判定データＤとを用いて、ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関関係を学習する。すなわち学習部１１０は、状態変数Ｓの構成要素Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５の相関性を示すモデル構造を生成する。
【００３６】
学習部１１０に対して入力される状態変数Ｓは、学習部１１０における学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。機械学習装置１００が学習を進める間、環境においては、（１）ワークの表面状態の特徴Ｓ５の取得、（２）研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４の設定、すなわち研磨条件の設定、（３）上記（１）（２）に従った研磨の実行、（４）判定データＤの取得が繰り返し実施される。（２）の研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４は、前回までの学習結果に基づいて得られた研磨条件である。（４）の判定データＤは、研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４に従って行った研磨の評価結果である。
【００３７】
このような学習サイクルを繰り返すことにより、学習部１１０は、ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関関係を暗示する特徴を自動的に識別することができるようになる。学習アルゴリズムの開始時には、ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関関係は実質的に未知であるが、学習部１１０は学習を進めるに従い徐々に特徴を識別して相関性を解釈する。ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関関係がある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態すなわちワークの表面状態の特徴Ｓ５に対して、どのような研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を設定すべきかという行動の選択（意思決定）を行うために使用できるものとなる。つまり学習部１１０は、現在状態に対応する行動の最適解を出力できるようになる。
【００３８】
状態変数Ｓは外乱の影響を受け難いデータで構成され、判定データＤは制御装置１から撮像装置８０の画像データの解析結果を取得することにより一義的に求められる。したがって機械学習装置１００によれば、学習部１１０の学習結果を用いることで、現在状態すなわちワークの表面状態の特徴Ｓ５に対して最適な研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を、演算や目算によらず、自動的かつ正確に求めることができる。換言すれば、現在状態すなわちワークの表面状態の特徴Ｓ５を把握するだけで、最適な研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を迅速に決定することができる。したがって、ロボットによる研磨における研磨条件の設定を効率よく行うことができる。
【００３９】
機械学習装置１００の変形例として、学習部１１０は、同一の作業を行う複数のロボットのそれぞれについて得られた状態変数Ｓ及び判定データＤを用いて、全てのロボットに共通の適切な研磨条件を学習することができる。この構成によれば、一定時間で得られる状態変数Ｓと判定データＤとを含むデータ集合の量を増加させ、より多様なデータ集合を入力できるので、学習の速度や信頼性を向上させることができる。
【００４０】
なお、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図３は、図２に示す制御装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１１０を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本実施形態では研磨条件の設定）を最適解として学習する手法である。
【００４１】
図３に示す制御装置１が備える機械学習装置１００において、学習部１１０は、報酬計算部１１２、価値関数更新部１１４を有する。
【００４２】
報酬計算部１１２は、状態変数Ｓに基づいて研磨条件が設定された場合における研磨の評価結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める。
【００４３】
価値関数更新部１１４は、報酬Ｒを用いて、研磨条件の価値を表す関数Ｑを更新する。価値関数更新部１１４が関数Ｑの更新を繰り返すことにより、学習部１１０は、ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関関係を学習する。
【００４４】
学習部１１０が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００４５】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓt及びａtはそれぞれ時刻ｔにおける状態及び行動であり、行動ａtにより状態はｓt+1に変化する。ｒt+1は、状態がｓtからｓt+1に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００４６】
【数１】
2019162712.tif 000003
【００４７】
学習部１１０がＱ学習を実行する場合、状態観測部１０６が観測した状態変数Ｓ及び判定データ取得部１０８が取得した判定データＤは、更新式の状態ｓに該当し、現在状態すなわちワークの表面状態の特徴Ｓ５に対し、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）をどのように決定するべきかという行動は、更新式の行動ａに該当し、報酬計算部１１２が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１４は、現在状態に対する研磨条件の設定の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００４８】
報酬計算部１１２は、例えば、決定した研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）に基づく研磨を行い、研磨の評価結果が「適」と判定される場合に、報酬Ｒを正（プラス）の値とすることができる。一方、研磨の評価結果が「否」と判定される場合に、報酬Ｒを負（マイナス）の値とすることができる。正負の報酬Ｒの絶対値は、互いに同一であっても良いし異なっていても良い。
【００４９】
判定データＤが多値で与えられる場合であれば、例えば筋の濃さを示す値Ｄ１、滑らかさを示す値Ｄ２及び間隔を示す値Ｄ３と、それぞれについて予め定められた基準値と、の差分が所定の範囲内である場合に、研磨の評価結果が「適」であると判定できる。一方、所定の範囲外であれば「否」と判定できる。判定データＤが２値で与えられる場合、例えばＤ１，Ｄ２，Ｄ３がそれぞれ適＝「１」、否＝「０」等の値で与えられる場合は、入力が「１」であれば研磨の評価結果は「適」、「０」であれば研磨の評価結果は「否」と判定できる。
【００５０】
研磨の評価結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例えば、報酬計算部１１２は、Ｄ１，Ｄ２，Ｄ３がそれぞれ基準値から遠くなるほど、すなわちＤ１，Ｄ２，Ｄ３と、それぞれについて予め定められた基準値と、の差分が大きくなるほど、報酬Ｒを減じるよう構成することができる。
【００５１】
なお、報酬計算部１１２は、判定データＤに含まれる複数の値を組み合わせて適否を判定するようにしても良い。
【００５２】
価値関数更新部１１４は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１４が関数Ｑを更新するという行為は、価値関数更新部１１４が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には、ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関関係は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。報酬計算部１１２は、判定データＤが分かればこれ対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００５３】
研磨の評価結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態すなわちワークの表面状態の特徴Ｓ５と、それに対する行動すなわち設定される研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、の相関関係が徐々に最適解に近づけられる。
【００５４】
図４を参照して、学習部１１０が実行するＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。
ステップＳＡ０１：価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動として、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を無作為に選択する。
ステップＳＡ０２：価値関数更新部１１４は、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込む。
ステップＳＡ０３：価値関数更新部１１４は、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。
ステップＳＡ０４：価値関数更新部１１４は、判定データＤに基づき、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）が適当であったか否かを判断する。適当であった場合、ステップＳＡ０５に遷移する。適当でなかった場合、ステップＳＡ０７に遷移する。
ステップＳＡ０５：価値関数更新部１１４は、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用する。
ステップＳＡ０６：価値関数更新部１１４は、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。
ステップＳＡ０７：価値関数更新部１１４は、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用する。
【００５５】
学習部１１０は、ステップＳＡ０１乃至ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００５６】
図１６は、図２に示す制御装置１の他の形態であって、学習アルゴリズムの他の例として教師あり学習を実行する学習部１１０を備えた構成を示す。教師あり学習は、入力と出力との関係が未知の状態で学習を開始する前述した強化学習と異なり、入力とそれに対応する出力との既知のデータセット（教師データと称する）が予め大量に与えられ、それら教師データから入力と出力との相関性を暗示する特徴を識別することで、新たな入力に対する所要の出力を推定するための相関性モデル（本願の機械学習装置１００ではロボットによる研磨の際の研磨条件)を学習する手法である。
【００５７】
図１６に示す機械学習装置１００において、学習部１１０は、状態変数Ｓ及び判定データＤからロボットによる研磨の際の研磨条件を導く相関性モデルＭと予め用意された教師データＴから識別される相関性特徴との誤差Ｅを計算する誤差計算部１１６と、誤差Ｅを縮小するように相関性モデルＭを更新するモデル更新部１１８とを備える。学習部１１０は、モデル更新部１１８が相関性モデルＭの更新を繰り返すことによって、ロボットによる研磨の際の研磨条件を学習する。
【００５８】
相関性モデルＭの初期値は、例えば、状態変数Ｓ及び判定データＤとロボットによる研磨の際の研磨条件の相関性を単純化して（例えば一次関数で）表現したものであり、教師あり学習の開始前に学習部１１０に与えられる。教師データＴは、例えば、過去の研磨において熟練の作業者が決定した研磨条件を記録することで蓄積された経験値（ワークの表面状態の特徴と、ロボットによる研磨の際の研磨条件との既知のデータセット）によって構成でき、教師あり学習の開始前に学習部１１０に与えられる。誤差計算部１１６は、学習部１１０に与えられた大量の教師データＴからワークの表面状態の特徴と、ロボットによる研磨の際の研磨条件と、の相関性を暗示する相関性特徴を識別し、この相関性特徴と、現在状態における状態変数Ｓ及び判定データＤに対応する相関性モデルＭとの誤差Ｅを求める。モデル更新部１１８は、例えば予め定めた更新ルールに従い、誤差Ｅが小さくなる方向へ相関性モデルＭを更新する。
【００５９】
次の学習サイクルでは、誤差計算部１１６は、更新後の相関性モデルＭに従って研磨を試行することにより変化した状態変数Ｓ及び判定データＤを用いて、それら変化した状態変数Ｓ及び判定データＤに対応する相関性モデルＭに関し誤差Ｅを求め、モデル更新部１１８が再び相関性モデルＭを更新する。このようにして、未知であった環境の現在状態（ワークの表面状態の特徴）とそれに対する行動（ロボットによる研磨の際の研磨条件との決定）との相関性が徐々に明らかになる。つまり相関性モデルＭの更新により、ワークの表面状態の特徴と、ロボットによる研磨の際の研磨条件と、の関係が、最適解に徐々に近づけられる。
【００６０】
なお、機械学習装置１００では、学習の初期段階は学習部１１０が教師あり学習を実行し、学習がある程度進行した段階で、教師あり学習で得たロボットによる研磨の際の研磨条件初期値として学習部１１０が強化学習を実行するように構成することもできる。強化学習における初期値がある程度の信頼性を有しているので、比較的迅速に最適解に到達することができる。
【００６１】
強化学習や教師あり学習を進める際に、例えばＱ学習の代わりに、ニューラルネットワークを用いることができる。図５Ａは、ニューロンのモデルを模式的に示す。図５Ｂは、図５Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００６２】
図５Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００６３】
【数２】
2019162712.tif 000004
【００６４】
図５Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してＷ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００６５】
図５Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してＷ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００６６】
図５Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してＷ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００６７】
機械学習装置１００においては、状態変数Ｓと判定データＤとを入力ｘとして、学習部１１０がニューラルネットワークに従う多層構造の演算を行うことで、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を結果ｙとして出力することができる。また、機械学習装置１００においては、ニューラルネットワークを強化学習における価値関数として用い、状態変数Ｓと行動ａとを入力ｘとして、学習部１１０がニューラルネットワークに従う多層構造の演算を行うことで、当該状態における当該行動の価値（結果ｙ）を出力することもできる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００６８】
上記した制御装置１の構成は、プロセッサ１０１が実行する機械学習方法（或いはプログラム）として記述できる。この機械学習方法は、ロボットによる研磨における研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を学習する機械学習方法であって、コンピュータのＣＰＵが、ワークの表面状態の特徴Ｓ５を、研磨を行う環境の現在状態を表す状態変数Ｓとして観測するステップと、設定された研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）に従って実施された研磨の評価結果を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、ワークの表面状態の特徴Ｓ５と、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）と、を関連付けて学習するステップとを有する。
【００６９】
図６は、本発明の第２の実施形態による制御装置２を示す。制御装置２は、機械学習装置１２０、状態データ取得部３を有する。
状態データ取得部３は、ワークの表面状態の特徴Ｓ５、及び研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を、状態データＳ０として取得し、状態観測部１０６に供給する。状態データ取得部３は、例えば制御装置２や、ロボットが備える各種デバイス及びセンサから、状態データＳ０を取得することができる。
【００７０】
機械学習装置１２０は、状態観測部１０６、判定データ取得部１０８、学習部１１０をに加え、意思決定部１２２を有する。意思決定部１２２は、例えばプロセッサ１０１の一機能として実現され得る。又は、例えばＲＯＭ１０２に格納されたソフトウェアをプロセッサ１０１が実行することにより実現されても良い。
【００７１】
機械学習装置１２０は、ロボットによる研磨における研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ１０１等）に加えて、学習結果に基づいて求めた研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を制御装置２への指令として出力するためのソフトウェア（演算アルゴリズム等）及びハードウェア（プロセッサ１０１等）を含むものである。機械学習装置１２０は、１つの共通のプロセッサが、学習アルゴリズム、演算アルゴリズム等の全てのソフトウェアを実行する構成を有することもできる。
【００７２】
意思決定部１２２は、学習部１１０が学習した結果に基づいて、ワークの表面状態の特徴Ｓ５に対応する研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を決定する指令を含む指令値Ｃを生成する。意思決定部１２２が指令値Ｃを制御装置２に対して出力すると、制御装置２が指令値Ｃに従ってロボットを制御する。こうして環境の状態が変化する。
【００７３】
状態観測部１０６は、意思決定部１２２が環境へ指令値Ｃを出力したことにより変化した状態変数Ｓを、次の学習周期において観測する。学習部１１０は、変化した状態変数Ｓを用いて、例えば価値関数Ｑ（すなわち行動価値テーブル）を更新することで、ロボットによる研磨における研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を学習する。なお、その際に状態観測部１０６は、研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を状態データ取得部３が取得する状態データＳ０から取得するのではなく、第１の実施形態で説明したように機械学習装置１２０のＲＡＭ１０３から観測しても良い。
【００７４】
そして意思決定部１２２は、学習結果に基づいて求めた研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を指令する指令値Ｃを、再び制御装置２へと出力する。この学習周期を繰り返すことにより、機械学習装置１２０は学習を進め、自身が決定する研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）の信頼性を徐々に向上させる。
【００７５】
機械学習装置１２０は、第１の実施形態の機械学習装置１００と同等の効果を奏する。加えて、機械学習装置１２０は、意思決定部１２２の出力によって環境の状態を変化させることができる。なお、機械学習装置１００では、意思決定部１２２に相当する機能を外部装置に求めることで、学習部１１０の学習結果を環境に反映させることが可能である。
【００７６】
以下の第３〜５の実施形態では、第１，第２の実施形態による制御装置１，２が、クラウドサーバやホストコンピュータ、フォグコンピュータ、エッジコンピュータ（ロボットコントローラ、制御装置等）を含む複数の装置と有線／無線のネットワークを介して相互に接続した実施形態について説明する。図７に例示されるように、以下の第３〜５の実施形態では、複数の装置のそれぞれがネットワークに接続された状態でクラウドサーバ６等を含む層、フォグコンピュータ７等を含む層、エッジコンピュータ８（セル９に含まれるロボットコントローラ、制御装置等）等を含む層の、３つの階層に論理的に分けて構成されているシステムを想定する。この様なシステムに於いて、制御装置１，２は、クラウドサーバ６、フォグコンピュータ７、エッジコンピュータ８のいずれの上にも実装することが可能であり、それぞれの複数の装置との間でネットワークを介して相互に学習データを共有して分散学習をしたり、生成した学習モデルをフォグコンピュータ７やクラウドサーバ６に収集して大規模な解析を行ったり、更に、生成した学習モデルの相互再利用等をしたりすることができる。図７に例示されるシステムにおいて、セル９は各地の工場にそれぞれ複数設けられ、それぞれのセル９を所定の単位（工場単位、同じ製造業者の複数の工場単位等）で上位層のフォグコンピュータ７が管理する。そして、これらフォグコンピュータ７が収集、解析したデータを、更に上位層のクラウドサーバ６で収集、解析等を行い、その結果として得られた情報を各々のエッジコンピュータの制御等に活用することができる。
【００７７】
図８は、制御装置１，２に複数のロボットを加えた第３の実施形態によるシステム１７０を示す。システム１７０は、複数のロボット１６０及びロボット１６０’を有する。全てのロボット１６０とロボット１６０’は、有線又は無線のネットワーク１７２により互いに接続される。
【００７８】
ロボット１６０及びロボット１６０’は、同じ目的の作業に必要とされる機構を有し、同一の作業を行う。一方、ロボット１６０は制御装置１，２を備えるが、ロボット１６０’は制御装置１，２と同じ制御装置は備えない。
【００７９】
制御装置１，２を備えるほうのロボット１６０は、学習部１１０の学習結果を用いて、ワークの表面状態の特徴Ｓ５に対応する研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を、演算や目算によらず、自動的かつ正確に求めることができる。また、少なくとも１つのロボット１６０の制御装置２が、他の複数のロボット１６０及びロボット１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤを利用し、全てのロボット１６０及びロボット１６０’に共通するロボットによる研磨における研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を学習し、その学習結果を全てのロボット１６０及びロボット１６０’が共有するように構成できる。システム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、ロボットによる研磨における研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）の学習の速度や信頼性を向上させることができる。
【００８０】
図９は、複数のロボット１６０’を備えた第４の実施形態によるシステム１７０を示す。システム１７０は、同一の機械構成を有する複数のロボット１６０’と、機械学習装置１２０（又は機械学習装置１００）と、を有する。複数のロボット１６０’と機械学習装置１２０（又は機械学習装置１００）とは、有線又は無線のネットワーク１７２により互いに接続される。
【００８１】
機械学習装置１２０（又は機械学習装置１００）は、複数のロボット１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全てのロボット１６０’に共通するロボットによる研磨における研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を学習する。機械学習装置１２０（又は機械学習装置１００）は、その学習結果を用いて、ワークの表面状態の特徴Ｓ５に対応する研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）を、演算や目算によらず、自動的かつ正確に求めることができる。
【００８２】
機械学習装置１２０（又は機械学習装置１００）は、クラウドサーバ、フォグコンピュータ、エッジコンピュータ等に実装されても良い。この構成によれば、複数のロボット１６０’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数のロボット１６０’を機械学習装置１２０（又は機械学習装置１００）に接続することができる。
【００８３】
システム１７０又はシステム１７０に従事する作業者は、機械学習装置１２０（又は１００）による学習開始後の適当な時期に、機械学習装置１２０（又は機械学習装置１００）による研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）の学習の到達度（すなわち出力される研磨条件（研磨ツール７０の回転速度Ｓ１、回転トルクＳ２、押付力Ｓ３、ロボットのアームの動作速度Ｓ４）の信頼性）が要求レベルに達したか否かの判断を実行することができる。
【００８４】
図１０は、制御装置１を備えた第５の実施形態によるシステム１７０を示す。システム１７０は、エッジコンピュータやフォグコンピュータ、ホストコンピュータ、クラウドサーバ等のコンピュータ５の上に実装された少なくとも１台の機械学習装置１００’と、ロボット１６０を制御する制御装置（エッジコンピュータ）として実装された少なくとも１台の制御装置１と、コンピュータ５及びロボット１６０を互いに接続する有線／無線のネットワーク１７２とを備える。
【００８５】
上記構成を有するシステム１７０では、機械学習装置１００’を備えるコンピュータ５が、各々のロボット１６０を制御する制御装置１から、該制御装置１が備える機械学習装置１００による機械学習の結果として得られた学習モデルを取得する。そして、コンピュータ５が備える機械学習装置１００’は、これら複数の学習モデルに基づく知識の最適化や効率化の処理を行うことで、新たに最適化乃至効率化された学習モデルを生成し、生成した学習モデルを各々のロボット１６０を制御する制御装置１に対して配布する。
【００８６】
機械学習装置１００’が行う学習モデルの最適化乃至効率化の例としては、各制御装置１から取得した複数の学習モデルに基づいた蒸留モデルの生成が挙げられる。この場合、本実施形態による機械学習装置１００’は、学習モデルに対して入力する入力データを作成し、該入力モデルを各々の学習モデルに対して入力した結果として得られる出力を用いて、１から学習を行うことで新たに学習モデル（蒸留モデル）を生成する。このようにして生成された蒸留モデルは、上記でも説明したように、外部記憶媒体やネットワーク等を介した他のコンピュータに対する配布により適している。
【００８７】
機械学習装置１００’が行う学習モデルの最適化乃至効率化の他の例としては、各制御装置１から取得した複数の学習モデルに対して蒸留を行う過程において、入力データに対する各学習モデルの出力の分布を一般的な統計的手法で解析し、入力データと出力データの組の外れ値を抽出し、該外れ値を除外した入力データと出力データの組を用いて蒸留を行うことも考えられる。このような過程を経ることで、それぞれの学習モデルから得られる入力データと出力データの組から例外的な推定結果を除外し、自例外的な推定結果を除外した入力データと出力データの組を用いて蒸留モデルを生成することができる。このようにして生成された蒸留モデルは、複数の制御装置１で生成された学習モデルから、当該制御装置１が制御するロボット１６０に対して汎用的な蒸留モデルを生成することができる。
なお、他の一般的な学習モデルの最適化乃至効率化の手法（各学習モデルを解析し、その解析結果に基づいて学習モデルのハイパパラメータを最適化する等）も適宜導入することが可能である。
【００８８】
本実施形態によるシステム１７０では、例えばエッジコンピュータとしての複数のロボット１６０（制御装置１）に対して設置されたフォグコンピュータとしてのコンピュータ５の上に機械学習装置１００’を配置し、各々のロボット１６０（制御装置１）で生成された学習モデルをフォグコンピュータ上に集約して記憶しておき、記憶した複数の学習モデルに基づいた最適化乃至効率化を行った上で、最適化乃至効率化された学習モデルを必要に応じて各ロボット１６０（制御装置１）に対して再配布するという運用を行うことができる。
【００８９】
また、本実施形態によるシステム１７０では、例えばフォグコンピュータとしてのコンピュータ５の上に集約して記憶された学習モデルや、フォグコンピュータ上で最適化乃至効率化された学習モデルを、更に上位のホストコンピュータやクラウドサーバ上に集め、これら学習モデルを用いて工場やロボット１６０のメーカでの知的作業への応用（上位サーバでの更なる汎用的な学習モデルの構築及び再配布、学習モデルの解析結果に基づく保守作業の支援、各々のロボット１６０の性能等の分析、新しい機械の開発への応用等）を行うことができる。
【００９０】
図１１は、図１０で示したコンピュータ５の概略的なハードウェア構成図である。
コンピュータ５が備えるＣＰＵ５１１は、コンピュータ５を全体的に制御するプロセッサである。ＣＰＵ５１１は、ＲＯＭ５１２に格納されたシステム・プログラムをバス５２０を介して読み出し、該システム・プログラムに従ってコンピュータ５全体を制御する。ＲＡＭ５１３には一時的な計算データ、入力装置５３１を介して作業者が入力した各種データ等が一時的に格納される。
【００９１】
不揮発性メモリ５１４は、例えば図示しないバッテリでバックアップされたメモリやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等で構成され、コンピュータ５の電源がオフされても記憶状態が保持される。不揮発性メモリ５１４には、コンピュータ５の動作に係る設定情報が格納される設定領域や、入力装置５３１から入力されたデータ、各ロボット１６０（の制御装置）から取得される学習モデル、図示しない外部記憶装置やネットワークを介して読み込まれたデータ等が記憶される。不揮発性メモリ５１４に記憶されたプログラムや各種データは、実行時／利用時にはＲＡＭ５１３に展開されても良い。また、ＲＯＭ５１２には、各種データを解析するための公知の解析プログラム等を含むシステム・プログラムが予め書き込まれている。
【００９２】
コンピュータ５は、インタフェース５１６を介してネットワーク１７２と接続されている。ネットワーク１７２には、少なくとも１つのロボット１６０や他のコンピュータ等が接続され、コンピュータ５との間で相互にデータのやり取りを行っている。
【００９３】
表示装置５３０には、メモリ上に読み込まれた各データ、プログラム等が実行された結果として得られたデータ等がインタフェース５１７を介して出力されて表示される。また、キーボードやポインティングデバイス等から構成される入力装置５３１は、作業者による操作に基づく指令，データ等をインタフェース５１８を介してＣＰＵ５１１に渡す。
なお、機械学習装置１００については、コンピュータ５のＣＰＵ５１１と協働して学習モデルの最適化乃至効率化に用いられる点を除けば、図１で説明したものと同様のハードウェア構成を備える。
【００９４】
図１２は、制御装置１を備えた第６の実施形態によるシステム１７０を示す。システム１７０は、ロボット１６０を制御する制御装置（エッジコンピュータ）として実装された複数の制御装置１と、複数台の他のロボット１６０（制御装置１）と、これらを互いに接続する有線／無線のネットワーク１７２とを備える。
【００９５】
上記構成を有するシステム１７０では、機械学習装置１００を備える制御装置１は、制御対象となるロボット１６０から取得された状態データや判定データ、（機械学習装置１００を備えていない）他のロボット１６０から取得した状態データや判定データに基づいた機械学習を行い、学習モデルを生成する。このようにして生成された学習モデルは、自身の制御するロボット１６０の研磨動作における研磨条件の決定に用いられる他、機械学習装置１００を備えていない他のロボット１６０’からの要求に応じて該他のロボット１６０（の制御装置）による研磨動作における研磨条件の決定にも用いられる。また、新たに学習モデル生成前の機械学習装置１００を備えた制御装置１が導入された際には、ネットワーク１７２を介して学習モデルを備えた他の制御装置１から該学習モデルを取得して利用することも可能となる。
【００９６】
本実施形態によるシステムでは、いわゆるエッジコンピュータとしての複数のロボット１６０（制御装置１）の間で学習に用いるデータや学習モデルを共有して活用することが可能となるため、機械学習の効率の向上や、機械学習にかけるコストの削減（ロボット１６０を制御する１台の制御装置（制御装置１）にのみ機械学習装置１００を導入し、他のロボット１６０との間で共有するなど）をすることができる。
【００９７】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００９８】
例えば、機械学習装置１００や機械学習装置１２０が実行する学習アルゴリズム、機械学習装置１２０が実行する演算アルゴリズム、制御装置１や制御装置２が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００９９】
また、上記した実施形態では、制御装置１（又は制御装置２）と、機械学習装置１００（又は機械学習装置１２０）と、は異なるＣＰＵを有する装置として説明しているが、機械学習装置１００（又は機械学習装置１２０）は、制御装置１（又は制御装置２）が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現されるよう構成しても良い。
【符号の説明】
【０１００】
１，２  制御装置
３  状態データ取得部
５  コンピュータ
６  クラウドサーバ
７  フォグコンピュータ
８  エッジコンピュータ
９  セル
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８，１９，２１，２２  インタフェース
２０  バス
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
６０  教示操作盤
７０  研磨ツール
８０  撮像装置
１００  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０６  状態観測部
１０８  判定データ取得部
１１０  学習部
１１２  報酬計算部
１１４  価値関数更新部
１１６  誤差計算部
１１８  モデル更新部
１２０  機械学習装置
１２２  意思決定部
１６０，１６０’  ロボット
１７０，１７０’  システム
１７２  ネットワーク
５１１  ＣＰＵ
５１２  ＲＯＭ
５１３  ＲＡＭ
５１４  不揮発性メモリ
５１６、５１６，５１７  インタフェース
５２０  バス
５３０  表示装置
５３１  入力装置
【図１】
2019162712.tif 000005
【図２】
2019162712.tif 000006
【図３】
2019162712.tif 000007
【図４】
2019162712.tif 000008
【図５Ａ】
2019162712.tif 000009
【図５Ｂ】
2019162712.tif 000010
【図６】
2019162712.tif 000011
【図７】
2019162712.tif 000012
【図８】
2019162712.tif 000013
【図９】
2019162712.tif 000014
【図１０】
2019162712.tif 000015
【図１１】
2019162712.tif 000016
【図１２】
2019162712.tif 000017
【図１３】
2019162712.tif 000018
【図１４】
2019162712.tif 000019
【図１５】
2019162712.tif 000020
【図１６】
2019162712.tif 000021