(57)【要約】【課題】本発明は、複数個の物品を把持する機能を有するハンドを備えたロボットが複数の物品を容器に収納するサイクルタイムを最小にすることを目的とする。【解決手段】本発明の機械学習装置は、搬送装置上に配置された複数の物品を複数個把持するハンドを用いて容器に収納するためのロボットの稼働条件を学習する機械学習装置であって、複数の物品の位置姿勢、並びに複数の物品を容器に収納するまでのサイクルタイム、ロボットが物品を把持する際に生じるトルク及び振動のうちの少なくとも１つを含む状態変数をロボットの動作中に観測する状態観測部と、サイクルタイム、トルク及び振動のそれぞれの許容値に対する余裕を判定する判定データを取得する判定データ取得部と、状態変数及び判定データの組合せによって構成される訓練データセットに従って、ロボットの稼働条件を学習する学習部と、を備える。【選択図】図２
2018051664.tif 000002
【特許請求の範囲】
【請求項１】
搬送装置上に配置された複数の物品を複数個把持するハンドを用いて容器に収納するためのロボットの稼働条件を学習する機械学習装置であって、
前記複数の物品の位置姿勢、並びに前記複数の物品を容器に収納するまでのサイクルタイム、前記ロボットが物品を把持する際に生じるトルク及び振動のうちの少なくとも１つを含む状態変数を前記ロボットの動作中に観測する状態観測部と、
前記サイクルタイム、トルク及び振動のそれぞれの許容値に対する余裕を判定する判定データを取得する判定データ取得部と、
前記状態変数及び前記判定データの組合せによって構成される訓練データセットに従って、前記ロボットの稼働条件を学習する学習部と、
を備えることを特徴とする機械学習装置。
【請求項２】
前記サイクルタイムは、前記ロボットが前記複数の物品の容器への収納を開始してから所定数の物品を容器へ収納するまでの時間、請求項１に記載の機械学習装置。
【請求項３】
前記トルクは、前記ロボットを駆動するモータに流れる電流に基づいて計算される、請求項１または２に記載の機械学習装置。
【請求項４】
前記振動は、前記ハンドに備えられた加速度センサによって検出される加速度に基づいて計算される、請求項１乃至３のいずれか一項に記載の機械学習装置。
【請求項５】
前記学習部は、
前記判定データに基づいて報酬を計算する報酬計算部と、
前記報酬に基づいて、前記サイクルタイム、トルク及び振動のうちの少なくとも１つを低減する、物品を把持する順序を推測するための価値関数を更新する価値関数更新部と、
を備える、請求項１乃至４のいずれか一項に記載の機械学習装置。
【請求項６】
前記学習部は、前記サイクルタイム、トルク及び振動のうちの少なくとも１つの状態変数並びに前記報酬に基づいて、物品を把持する順序に対応する行動価値テーブルを更新する、請求項５に記載の機械学習装置。
【請求項７】
前記学習部は、前記ロボットと同一構成の他のロボットの状態変数と前記報酬に基づいて、当該他のロボットが他の複数の物品を容器に収納する際のサイクルタイム、トルク及び振動のうちの少なくとも１つに対応する行動価値テーブルを更新する、請求項６に記載の機械学習装置。
【請求項８】
前記報酬計算部は、前記サイクルタイム、トルク及び振動の少なくとも１つに基づいて報酬を計算する、請求項５乃至７のいずれか一項に記載の機械学習装置。
【請求項９】
前記学習部が前記訓練データセットに従って学習した結果に基づいて、前記複数の物品を把持する順序を決定する意思決定部をさらに備える、請求項１乃至８のいずれか一項に記載の機械学習装置。
【請求項１０】
前記機械学習装置がネットワークを介して前記ロボットに接続されており、
前記状態観測部は、前記ネットワークを介して、現在の状態変数を取得するように構成される、請求項１乃至９のいずれか一項に記載の機械学習装置。
【請求項１１】
前記機械学習装置は、クラウドサーバに存在する、請求項１乃至１０のいずれか一項に記載の機械学習装置。
【請求項１２】
搬送装置上に配置された複数の物品を複数個把持するハンドを用いて容器に収納するためのロボットの稼働条件を学習する機械学習方法であって、
前記複数の物品の位置姿勢、並びに前記複数の物品を容器に収納するまでのサイクルタイム、前記ロボットが物品を把持する際に生じるトルク及び振動のうちの少なくとも１つを含む状態変数を前記ロボットの動作中に観測し、
前記サイクルタイム、トルク及び振動の許容値に対する余裕を判定する判定データを取得し、
前記状態変数及び前記判定データの組合せによって構成される訓練データセットに従って、前記ロボットの稼働条件を学習する、
ことを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習装置、及び機械学習方法に関し、特に、搬送装置上に配置された物品をロボットで把持する際における、最適な物品把持経路を学習する機械学習装置、及び機械学習方法に関する。
【背景技術】
【０００２】
搬送装置であるコンベヤ上を流れて来る物品を、複数個の物品を把持可能なハンド（多指ハンド）で１つずつ連続的に取り出して、同様に他のコンベヤ上を流れて来る収納容器に収納する物品搬送システムが知られている。従来は、物品を把持して取り出す際には、基本的にコンベヤの下流側に位置する物品から、順番に把持する物品を割り当てるということが行われてきた。
【０００３】
例えば、コンベヤを物品が流れる方向に沿って２分割して、その中で下流側に位置する物品から順に把持して容器に収納するという方法が提案されている（例えば、特許文献１）。
【０００４】
図１に、従来技術により、コンベヤ１０上に配置された複数の物品（ａ１〜ａ３、ｂ１〜ｂ３）をロボット２０に設けられたハンド（図示せず）によって把持して、容器（図示せず）に収納する方法について説明する。物品はコンベヤ１０の平面上に配置されるとともに、物品（ａ１〜ａ３、ｂ１〜ｂ３）自体が示す矢印のようにランダムな方向に向き（姿勢）を有するものとする。
【０００５】
ここで、ハンドは３つの物品を把持して容器に収納する機能を備えているものとする。この場合、コンベヤ１０が図１の左側から右側へ流れるものとすると、コンベヤ１０の下流側に近い物品は、ａ１、ａ２、ａ３の順となる。そこで、ハンドは物品ａ１、ａ２、ａ３をこの順で把持し、容器に収納した後、物品ｂ１、ｂ２、ｂ３をこの順で把持し、容器に収納する。
【０００６】
従来は下流から順に割り当てられるため、図１の矢印で示したようにハンドが行ったり来たりするような割り当てになる場合がある。
【０００７】
また、物品の姿勢も考慮されていないため、図１のようにロボット２０のハンドが大きく回転する場合がある。例えば、物品ａ１とａ３はほぼ同じ姿勢であるので、物品ａ１の次にａ３を把持し、それからａ２を把持した方が最小限の回転で済むことになる。しかしながら、下流から順に把持しようとすると、図１のように、ａ１→ａ２→ａ３のような順序となる。その結果、ロボット２０のハンドは、物品ａ１を把持した後に物品ａ２を把持しようとして約１８０度回転し、次に物品ａ３を把持するために、再度、約１８０度回転することになる。
【０００８】
このように、特許文献１に記載の方法では、下流から順番に物品を把持するだけであって、コンベヤ１０の幅方向における物品の位置や物品の向きが考慮されていない。そのため、ハンドの移動時間のばらつきが大きく、場合によっては物品の容器への収納が、容器がロボットの前を通過するまでの期間に間に合わない場合が生じうる。
【０００９】
物品を把持する都度、容器側のコンベヤを止めて置くことも考えられる。しかしながら、所定期間内に生産量が決まっている場合や、後工程との関係で容器の流れを止めてはならないケースも存在するため、実際の現場では適用しにくいという問題がある。
【００１０】
特許文献１には、領域を分割することでより狭い範囲で把持を行い、搬送距離を短くする方法が開示されている。しかしながら、コンベヤの幅が広い場合には、分割しても大きな効果は得られない恐れもある。また、物品の向き（姿勢）が考慮されていないため、ロボットが物品を把持するための目標姿勢と現在姿勢が大きく異なっている物品でも取りに行ってしまう可能性がある。
【００１１】
さらに、特許文献１に記載の方法では、ロボット固有の能力（例えば、メカの強度など）や、物品のコンベヤ上での配置の違いによる搬送能力の差が加味されていないという問題がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１４−１０４５２４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、複数個の物品を把持する機能を有するハンドを備えたロボットが複数の物品を容器に収納するサイクルタイムを最小にするとともに、ロボットの負荷を抑えることが可能な機械学習装置及び機械学習方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一実施例に係る機械学習装置は、搬送装置上に配置された複数の物品を複数個把持するハンドを用いて容器に収納するためのロボットの稼働条件を学習する機械学習装置であって、複数の物品の位置姿勢、並びに複数の物品を容器に収納するまでのサイクルタイム、ロボットが物品を把持する際に生じるトルク及び振動のうちの少なくとも１つを含む状態変数をロボットの動作中に観測する状態観測部と、サイクルタイム、トルク及び振動のそれぞれの許容値に対する余裕を判定する判定データを取得する判定データ取得部と、状態変数及び判定データの組合せによって構成される訓練データセットに従って、ロボットの稼働条件を学習する学習部と、を備えることを特徴とする。
【００１５】
本発明の一実施例に係る機械学習方法は、搬送装置上に配置された複数の物品を複数個把持するハンドを用いて容器に収納するためのロボットの稼働条件を学習する機械学習方法であって、複数の物品の位置姿勢、並びに複数の物品を容器に収納するまでのサイクルタイム、ロボットが物品を把持する際に生じるトルク及び振動のうちの少なくとも１つを含む状態変数をロボットの動作中に観測し、サイクルタイム、トルク及び振動の許容値に対する余裕を判定する判定データを取得し、状態変数及び判定データの組合せによって構成される訓練データセットに従って、ロボットの稼働条件を学習する、ことを特徴とする。
【発明の効果】
【００１６】
本発明の一実施例に係る機械学習装置及び機械学習方法によれば、複数個の物品を把持する機能を有するハンドを備えたロボットが複数の物品を容器に収納するサイクルタイムを最小にするとともに、ロボットの負荷を抑えることができる。
【図面の簡単な説明】
【００１７】
【図１】従来技術により、コンベヤ上に配置された複数の物品をロボットに設けられたハンドによって把持して、容器に収納する方法について説明するための図である。
【図２】本発明の実施例１に係る機械学習装置の構成図である。
【図３】本発明の実施例１に係る機械学習装置により、コンベヤ上に配置された複数の物品をロボットに設けられたハンドによって把持して、容器に収納する方法について説明するための図である。
【図４】本発明の実施例１に係る機械学習装置を用いて、ロボットが物品を把持する手順を説明するためのフローチャートである。
【図５】本発明の実施例１に係る機械学習装置により学習を行った後に、コンベヤ上に配置された複数の物品をロボットに設けられたハンドによって把持して、容器に収納する方法について説明するための図である。
【図６】本発明の実施例１に係る機械学習装置により報酬を計算する方法を説明するためのフローチャートである。
【図７】ニューロンのモデルを示す模式図である。
【図８】３層のニューラルネットワークモデルを示す模式図である。
【図９】本発明の実施例２に係る機械学習装置の構成図である。
【図１０】本発明の実施例３に係る機械学習装置の構成図である。
【図１１】本発明の実施例４に係る機械学習装置の構成図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明に係る機械学習装置、及び機械学習方法について説明する。
【００１９】
［実施例１］
まず、本発明の実施例１に係る機械学習装置について図面を用いて説明する。図２に、本発明の実施例１に係る機械学習装置１０１の構成図を示す。また、図３に、本発明の実施例１に係る機械学習装置により、搬送装置（コンベヤ）上に配置された複数の物品をロボットに設けられたハンドによって把持して、容器に収納する方法について説明するための図を示す。本発明の実施例１に係る機械学習装置１０１は、搬送装置１０上に配置された複数の物品ｐ１〜ｐ６を複数個把持するハンド（図示せず）を用いて容器（図示せず）に収納するためのロボット２０の稼働条件を学習する。
【００２０】
機械学習装置１０１は、状態観測部１１と、判定データ取得部１２と、学習部１３と、を備える。
【００２１】
状態観測部１１は、複数の物品（ｐ１〜ｐ６）の位置姿勢、並びに複数の物品を容器に収納するまでのサイクルタイム、ロボット２０が物品を把持する際に生じるトルク及び振動のうちの少なくとも１つを含む状態変数をロボット２０の動作中に観測する。複数の物品の位置姿勢は、カメラ（図示せず）によって撮像した画像に基づいて解析するようにしてもよい。この場合、物品の位置姿勢の解析は、ロボット２０が物品（ｐ１〜ｐ６）の把持を開始する時点までに完了していることが好ましい。そのため、カメラは、ロボット２０よりもコンベヤ１０の上流側に設置することが好ましい。なお、コンベヤ１０は図３及び図５において、左側から右側に向かって一定の速度で物品を搬送するものとする。
【００２２】
サイクルタイムとは、ロボットが複数の物品の容器への収納を開始してから所定数の物品を容器へ収納するまでの時間をいう。ここで、所定数の物品とは、物品を把持する順序（経路）を決定する対象とする物品であって、図３の所定の領域３０に含まれる物品をいう。ロボット２０は、サイクルタイムを計測するための計時装置を備えることが好ましい。
【００２３】
トルクは、ハンドを物品が配置された位置まで移動させる場合、及び物品の姿勢に応じてハンドを回転させる場合に生じる。トルクは、ロボット２０のハンド及びアーム（図示せず）を駆動するモータに流れる電流に基づいて計算することができる。ロボット２０は、モータに流れる電流を計測するための電流検出器を備えていることが好ましい。なお、１つの物品を把持してから他の物品を把持するために位置を移動する間にハンドが回転するものとする。即ち、１つの物品を把持した後、次の物品を把持するのに適した角度になるようにハンドを回転させながら移動する。
【００２４】
振動は、ハンドを物品が配置された位置まで移動させ停止させる場合、及び物品の姿勢に応じてハンドを回転させ、回転を停止させる場合に生じる。振動を計測するために、ハンドに加速度センサを設けることが好ましい。振動は、速度センサが検出した加速度に基づいて算出することができる。
【００２５】
判定データ取得部１２は、サイクルタイム、トルク及び振動のそれぞれの許容値に対する余裕を判定する判定データを取得する。サイクルタイム、トルク及び振動のそれぞれの許容値は、記憶部（図示せず）に記憶しておくことができる。サイクルタイム、トルク及び振動の全てが許容値以下であることが好ましい。
【００２６】
学習部１３は、状態変数及び判定データの組合せによって構成される訓練データセットに従って、ロボットの稼働条件を学習する。サイクルタイム、トルク及び振動の全てが許容値以下である場合は、サイクルタイムが最小となる順序で物品を把持することが好ましい。
【００２７】
次に、本発明の実施例１に係る機械学習装置を用いて、ロボットが物品を把持する手順について図４に示したフローチャートを用いて説明する。まず、ステップＳ１０１において、複数の物品（ｐ１〜ｐ６）の現在の位置姿勢を取得する。ここで、把持する順序を決定する物品は、図３の点線で示した、コンベヤ１０上の所定の領域３０内に含まれる物品とする。図３に示した例では、物品（ｐ１〜ｐ６）がこれに相当する。コンベヤ１０上の所定の領域３０は、物品の把持の順序の全ての組み合わせについてのサイクルタイム、トルク、及び振動の計算に要する時間と、物品が移動するコンベヤの速度との兼ね合いから、最適な数の物品が含まれる範囲とすることが好ましい。
【００２８】
次に、ステップＳ１０２において、学習結果に基づいて物品を把持する順番を割り当てる。次に、ステップＳ１０３において、ロボット２０からの要求に対して把持する物品の順番を機械学習装置１０１からロボット２０へ送信する。
【００２９】
図５に、本発明の実施例１に係る機械学習装置により学習を行った後に、コンベヤ上に配置された複数の物品をロボットに設けられたハンドによって把持して、容器に収納する方法について説明するための図を示す。学習を行った結果、矢印で示すように、まず、物品ｐ１を把持し、次に物品ｐ３を把持し、最後に物品ｐ２を把持することができる。
【００３０】
このような順序で物品を把持することによって、従来技術の例として示した図１の場合と比較して、物品を把持するためにハンドを移動させる距離が短くなる。その結果、３個の物品（ｐ１〜ｐ３）を把持する時間が短縮される。そのため、複数の物品の全てを容器に収納するためのサイクルタイムを短縮することができる。
【００３１】
本実施例では、ハンドが把持する物品の数が３個の場合を例にとって説明しているが、このような場合には限られず、ハンドが把持する物品の数は２個でもよいし、４個以上でもよい。さらに、ハンドによる「把持」には「吸着」も含まれる。
【００３２】
さらに、本発明によれば、物品ｐ１を把持してから、物品ｐ３を把持するためにハンドを回転させる角度を、従来技術（図１参照）のように物品ａ１を把持してから物品ａ２を把持するためにハンドを回転させる角度よりも小さくすることができる。その結果、３個の物品（ｐ１〜ｐ３）を把持する際に生じるトルク及び振動を小さくすることができる。そのため、複数の物品の全てを容器に収納する際に生じるトルク及び振動の合計値を小さくすることができる。
【００３３】
次に、学習部１３の構成について説明する。図２に示すように、学習部１３は、判定データに基づいて報酬を計算する報酬計算部１４と、報酬に基づいて、サイクルタイム、トルク及び振動のうちの少なくとも１つを低減する、物品を把持する順序を推測するための価値関数を更新する価値関数更新部１５と、を備える。
【００３４】
学習部１３は、サイクルタイム、トルク及び振動のうちの少なくとも１つの状態変数並びに報酬に基づいて、物品を把持する順序に対応する行動価値テーブルを更新する。
【００３５】
学習部１３は、ロボット２０と同一構成の他のロボットの状態変数と報酬に基づいて、当該他のロボットが他の複数の物品を容器に収納する際のサイクルタイム、トルク及び振動のうちの少なくとも１つに対応する行動価値テーブルを更新するようにしてもよい。
【００３６】
報酬計算部１４は、サイクルタイム、トルク及び振動の少なくとも１つに基づいて報酬を計算する。さらに、物品を把持し損なった場合、即ち、把持ミスが生じた場合にマイナス報酬を与えるようにしてもよい。
【００３７】
学習部１３が訓練データセットに従って学習した結果に基づいて、複数の物品を把持する順序を決定する意思決定部１６をさらに備えることが好ましい。
【００３８】
次に、報酬の計算方法について説明する。図６に、本発明の実施例１に係る機械学習装置により報酬を計算する方法を説明するためのフローチャートを示す。まず、ステップＳ２０１において、状態観測部１１が、サイクルタイム、トルク、及び振動量の各データを取得する。
【００３９】
次に、ステップＳ２０２において、報酬計算部１４が、サイクルタイムが基準値よりも短縮したか否かを判断する。サイクルタイムが基準値よりも短縮している場合はステップＳ２０３において、プラス報酬を与える。一方、サイクルタイムが基準値と同一か、あるいはサイクルタイムが基準値より短縮していない場合は、ステップＳ２０５において、報酬なしとする。ここで、サイクルタイムの基準値は、過去にロボットを所定期間動作させた際のサイクルタイムの平均値を基準値とする。さらに学習結果に応じて平均値を初期値として基準値を調整しても良い。
【００４０】
次に、ステップＳ２０４において、報酬計算部１４が、トルクが増加したか否かを判断する。トルクが基準値と同一か、トルクが基準値より減少している場合は、ステップＳ２０５において、報酬なしとする。一方、トルクが基準値よりも増加している場合は、ステップＳ２０７において、マイナス報酬とする。ここで、トルクの基準値は、過去にロボットを所定期間動作させた際のトルクの平均値を基準値とする。さらに学習結果に応じて平均値を初期値として基準値を調整しても良い。
【００４１】
次に、ステップＳ２０６において、報酬計算部１４が、振動量が増加したか否かを判断する。振動量が基準値と同一か、振動量が基準値より減少している場合は、ステップＳ２０５において、報酬なしとする。一方、振動量が基準値よりも増加している場合は、ステップＳ２０７において、マイナス報酬とする。ここで、振動量の基準値は、過去にロボットを所定期間動作させた際の振動量の平均値を基準値とする。さらに学習結果に応じて平均値を初期値として基準値を調整しても良い。
【００４２】
次に、ステップＳ２０８において、報酬を計算する。ここで、サイクルタイム、トルク、及び振動に基づく報酬をそれぞれＲC、ＲT、ＲVとすると、報酬の合計値Ｒは、重み付けを規定する所定の係数を用いて、Ｒ＝α×ＲC＋β×ＲT＋γ×ＲVから算出できる。
【００４３】
次に、ステップＳ２０９において、学習部１３は、サイクルタイム、トルク及び振動のうちの少なくとも１つの状態変数並びに報酬に基づいて、物品を把持する順序に対応する行動価値テーブルを更新する。
【００４４】
学習部１３が、状態観測部１１で観測された状態変数を多層構造で演算し、行動価値テーブルをリアルタイムで更新することが好ましい。ここで、状態変数を多層構造で演算する方法として、例えば、図８に示すような多層ニューラルネットワークを用いることができる。
【００４５】
ここで、図２に示される機械学習装置１０１について詳細に説明する。機械学習装置１０１は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。その手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。
【００４６】
「教師あり学習」は、ある入力と結果（ラベル）のデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、即ち、その関係性を帰納的に獲得することができる。後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【００４７】
「教師なし学習」とは、入力データのみを大量に機械学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。それらのデータセットにある特徴を似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することができる。また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。本実施例においては、実際にロボットを動作させなくても取得することが出来るデータを教師なし学習で利用し、学習を効率的に行うことが出来る。
【００４８】
強化学習の問題を以下のように設定する。
・ロボットは環境の状態を観測し、行動を決定する。
・環境は何らかの規則に従って変化し、さらに自分の行動が、環境に変化を与えることもある。
・行動するたびに報酬信号が帰ってくる。
・最大化したいのは将来にわたっての（割引）報酬の合計である。
・行動が引き起こす結果を全く知らない、または不完全にしか知らない状態から学習はスタートする。ロボットは実際に動作して初めて、その結果をデータとして得ることが出来る。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００４９】
「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、即ち、将来的に得られる報酬を最大にするための学習を行う方法である。このことは、本実施例において、未来に影響を及ぼすような行動を獲得できることを表している。例えばＱ学習の場合で説明を続けるが、それに限るものではない。
【００５０】
Ｑ学習は、或る環境状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法である。つまり、或る状態ｓのとき、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェント（行動主体）は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して報酬が与えられる。それにより、エージェントはより良い行動の選択、すなわち正しい価値Ｑ（ｓ，ａ）を学習していく。
【００５１】
行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σγtｒt］となるようにすることを目指す（期待値は最適な行動に従って状態変化したときについてとる。もちろん、それは分かっていないので、探索しながら学習しなければならない）。そのような価値Ｑ（ｓ，ａ）の更新式は、例えば次式により表すことができる。
【００５２】
【数１】
2018051664.tif 000003
【００５３】
ここで、ｓtは時刻ｔにおける環境の状態を表し、ａtは時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。ｒt+1は、その状態の変化により貰える報酬を表している。また、ｍａｘの付いた項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。γは、０＜γ≦１のパラメータで、割引率と呼ばれる。αは学習係数で、０＜α≦１の範囲とする。
【００５４】
この式は、試行ａtの結果帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）を更新する方法を表している。状態ｓにおける行動ａの評価値Ｑ（ｓt，ａt）よりも、報酬ｒt+1＋行動ａによる次の状態における最良の行動ｍａｘ ａの評価値Ｑ（ｓt+1，ｍａｘ ａt+1）の方が大きければ、Ｑ（ｓt，ａt）を大きくするし、反対に小さければ、Ｑ（ｓt，ａt）も小さくする事を示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【００５５】
Ｑ（ｓ，ａ）の計算機上での表現方法は、すべての状態行動ペア（ｓ，ａ）に対して、その値をテーブル（行動価値テーブル）として保持しておく方法と、Ｑ（ｓ，ａ）を近似するような関数を用意する方法がある。後者の方法では、前述の更新式は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことで実現することが出来る。近似関数としては、後述のニューラルネットワークを用いることが出来る。
【００５６】
教師あり学習、教師なし学習、及び強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。ニューラルネットワークは、たとえば図７に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置及びメモリ等で構成される。図７は、ニューロンのモデルを示す模式図である。
【００５７】
図７に示すように、ニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する出力ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の式により表現される出力ｙを出力する。なお、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。
【数２】
2018051664.tif 000004
ここで、θはバイアスであり、ｆkは活性化関数である。
【００５８】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図８を参照して説明する。図８は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【００５９】
図８に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００６０】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてｗ１と標記されている。
【００６１】
ニューロンＮ１１〜Ｎ１３は、それぞれ、Ｚ１１〜Ｚ１３を出力する。これらのＺ１１〜Ｚ１３はまとめて特徴ベクトルＺ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルＺ１は、重みＷ１と重みＷ２との間の特徴ベクトルである。
【００６２】
Ｚ１１〜Ｚ１３は、２つのニューロンＮ２１，Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ２と標記されている。
【００６３】
ニューロンＮ２１，Ｎ２２は、それぞれ、Ｚ２１，Ｚ２２を出力する。これらは、まとめて特徴ベクトルＺ２と標記されている。この特徴ベクトルＺ２は、重みＷ２と重みＷ３との間の特徴ベクトルである。
【００６４】
特徴ベクトルＺ２１，Ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ３と標記されている。
【００６５】
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００６６】
ニューラルネットワークの動作には、学習モードと価値予測モードとがあり、学習モードにおいて学習データセットを用いて重みＷを学習し、そのパラメータを用いて予測モードにおいてロボットの行動判断を行う（便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能である）。
【００６７】
予測モードで実際にロボットを動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００６８】
重みＷ１〜Ｗ３は、誤差逆伝搬法（バックプロパゲーション）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００６９】
このようなニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【００７０】
そこで、実施例１の機械学習装置１０１は、上述のＱ学習を実施すべく、図２に示されるように状態観測部１１、学習部１３、および意思決定部１６を備えている。但し、本発明に適用される機械学習方法は、Ｑ学習に限定されるものではない。たとえば教師あり学習を適用する場合、価値関数は学習モデル、報酬は誤差に対応する。
【００７１】
図２に示すように、ロボット２０における状態には、行動で間接的に変化する状態と、行動で直接的に変化する状態とがある。行動で間接的に変化する状態には、サイクルタイム、トルク、及び振動が含まれる。行動で直接的に変化する状態には、電流値が含まれる。
【００７２】
学習部１３は更新式及び報酬に基づいて、行動価値テーブルの中から現在の状態変数及び取り得る行動に対応する行動価値を更新する。
【００７３】
また、図２に示した例では、自己の機械学習装置の学習部で更新された行動価値テーブルを用いて自己の行動価値テーブルを更新する例を示したが、このような例には限られない。即ち、自己の機械学習装置とは別の他の機械学習装置の学習部で更新された行動価値テーブルを用いて自己の行動価値テーブルを更新するようにしてもよい。
【００７４】
［実施例２］
次に、本発明の実施例２に係る機械学習装置について説明する。図９に、本発明の実施例２に係る機械学習装置の構成図を示す。本発明の実施例２に係る機械学習装置１０２が、実施例１に係る機械学習装置１０１と異なっている点は、機械学習装置１０２がネットワークである通信部１８を介して第１ロボット２１及び第２ロボット２２に接続されており、状態観測部１１は、ネットワークを介して、現在の状態変数を取得するように構成されている点である。実施例２に係る機械学習装置１０２のその他の構成は、実施例１に係る機械学習装置１０１における構成と同様であるので、詳細な説明は省略する。
【００７５】
また、機械学習装置１０２は、クラウドサーバに存在することが好ましい。
【００７６】
ロボットが高速動作中に学習を行うことは、処理負荷が大きく難しい場合が生じる。そこで、本発明の実施例２に係る機械学習装置のように構成することにより、ロボット制御装置とは別の装置で学習を行うことができ、ロボットにおける負担を軽減することができる。
【００７７】
［実施例３］
次に、本発明の実施例３に係る機械学習装置について説明する。図１０に、本発明の実施例３に係る機械学習装置の構成図を示す。本発明の実施例３に係る機械学習装置１０３−１及び１０３−２が、実施例１に係る機械学習装置１０１と異なっている点は、機械学習装置が複数のロボット制御装置にそれぞれ設けられており、ハブ１９で接続されている点である。実施例３に係る機械学習装置１０３−１及び１０３−２のその他の構成は、実施例１に係る機械学習装置１０１における構成と同様であるので、詳細な説明は省略する。
【００７８】
第１機械学習装置１０３−１は、第１ロボット２１を制御する第１ロボット制御装置２０１に設けられ、第２機械学習装置１０３−２は、第２ロボット２２を制御する第２ロボット制御装置２０２に設けられている。
【００７９】
このような構成とすることにより、１つの機械学習装置で作成した行動価値テーブルを他の機械学習装置で共有することができ、学習の効率化を図ることができる。
【００８０】
［実施例４］
次に、本発明の実施例４に係る機械学習装置について説明する。図１１に、本発明の実施例４に係る機械学習装置の構成図を示す。本発明の実施例４に係る機械学習装置１０４が、実施例１に係る機械学習装置１０１と異なっている点は、コンベヤ上の物品の位置姿勢を記録収集し、オフラインでコンベヤ１０上の物品（ｐ１〜ｐ６）の位置姿勢を再生して、最適な物品の把持の順序を学習する点である。実施例４に係る機械学習装置１０４のその他の構成は、実施例１に係る機械学習装置１０１における構成と同様であるので、詳細な説明は省略する。
【００８１】
第１ロボット２１は第１ロボット制御装置２０１により制御され、第２ロボット２２は第２ロボット制御装置２０２により制御されるが、機械学習装置１０４は、第１ロボット制御装置２０１及び第２ロボット制御装置２０２の外部に設けられている。また、第１ロボット２１及び第２ロボット２２の近傍にそれぞれ設けられたカメラ（図示せず）が撮像した画像から得られた複数の物品の位置姿勢に関するデータ（「Ｌｏｇ」）は機械学習装置１０４に送信され、最適な物品の把持の順序が学習される。学習の結果は、第１ロボット制御装置２０１及び第２ロボット制御装置２０２にそれぞれ送信され、第１ロボット２１及び第２ロボット２２が最適な順序で物品を把持することができる。
【符号の説明】
【００８２】
１０    コンベヤ
１１    状態観測部
１２    判定データ取得部
１３    学習部
１４    報酬計算部
１５    価値関数更新部
１６    意思決定部
２０    ロボット
【図１】
2018051664.tif 000005
【図２】
2018051664.tif 000006
【図３】
2018051664.tif 000007
【図４】
2018051664.tif 000008
【図５】
2018051664.tif 000009
【図６】
2018051664.tif 000010
【図７】
2018051664.tif 000011
【図８】
2018051664.tif 000012
【図９】
2018051664.tif 000013
【図１０】
2018051664.tif 000014
【図１１】
2018051664.tif 000015