(58)【調査した分野】(Int.Cl.,DB名)
前記振り分け機は、前記複数の収容部に一対一で設けられ、それぞれ対応する収容部に振り分けられた物の計量を行う計量器の計量結果を変化させ得る複数の個別機械要素を備え、
前記決定ステップでは、前記ニューラルネットワークから出力されるQ値に基づいて、前記複数の個別機械要素のうちの1つ個別機械要素への制御である前記行動の内容を決定する
請求項1又は2に記載の学習方法。
前記ニューラルネットワークは、前記複数の個別機械要素のそれぞれについて制御したときの前記複数の個別機械要素のそれぞれごとのQ値を出力する複数の出力ノードを有し、
前記学習ステップでは、前記算出ステップで算出する誤差を限りなく0に近づけるように前記ニューラルネットワークを学習し、
前記決定ステップでは、前記複数の出力ノードのそれぞれから出力されるQ値のうち、最も小さいQ値に対応する個別機械要素を選択して当該個別機械要素への制御である前記行動の内容を決定する
請求項3に記載の学習方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されるような振り分け機について、振り分けた物の重量等の計量結果が目標値に近づくように、正確に複数の物を振り分けることが求められている。
【0005】
そこで、本発明は、振り分け機が正確に複数の物を振り分けることができるようになる学習方法等を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために本発明の一態様に係る学習方法は、上流から連続的に送られてくる複数の物を複数の収容部へ振り分ける振り分け機の制御についての学習方法であって、前記複数の収容部に一対一で設けられた複数の計量器であって、それぞれ対応する収容部に振り分けられた物の計量を行う複数の計量器の計量結果の組み合わせである状態が入力されるニューラルネットワークから出力される、強化学習に用いられるQ値に基づいて、前記振り分け機への制御である行動を決定する決定ステップと、決定された前記行動が行われたときの次の前記状態が入力された前記ニューラルネットワークから出力される次のQ値と、当該Q値の前回に前記ニューラルネットワークから出力されたQ値と、次の前記状態における報酬とを用いて誤差を算出する算出ステップと、算出された誤差を用いて前記ニューラルネットワークを学習する学習ステップと、を含み、前記報酬は、前記複数の計量器の計量結果のそれぞれと前記複数の計量器の計量結果のそれぞれに対応付けられた目標値との差が小さいほど大きくなるように算出され、前記決定ステップと、前記算出ステップと、前記学習ステップとの一連の処理を繰り返し行う。
【0007】
これによれば、強化学習によって、最終的に受け取る報酬の総量を最大化するように振り分け機の制御を学習することができる。つまり、強化学習によって、振り分けられた物の計量結果が目標値に近づくように、複数の物を複数の収容部へ振り分けることができる。また、強化学習は、全ての状態と行動とのペアについてのQ値の表を作成して学習を行う方法であるのに対して、小数点以下を含む計量器の計量結果の組み合わせをそのまま状態として使用する場合、状態数が多くなる(いわゆる状態爆発を起こす)場合がある。そこで、ニューラルネットワークを用いた深層強化学習を利用することで、各状態を適当なニューラルネットワークの隠れ層の状態に近似することができ、状態爆発を抑制することができる。このように、本態様によれば、深層強化学習を用いて、振り分け機が正確に複数の物を振り分けることができるようになる。
【0008】
また、前記複数の計量器のそれぞれは、対応する収容部に振り分けられた物の重量を計量する計量器であり、前記報酬は、前記複数の計量器の重量の計量結果のそれぞれと前記複数の計量器の重量の計量結果のそれぞれに対応付けられた重量の目標値との差が小さくなるほど大きくなるように算出されてもよい。
【0009】
これによれば、振り分けられた物の重量が目標値の重量となるように、複数の物を複数の収容部へ振り分けることができる。
【0010】
また、前記振り分け機は、前記複数の収容部に一対一で設けられ、それぞれ対応する収容部に振り分けられた物の計量を行う計量器の計量結果を変化させ得る複数の個別機械要素を備え、前記決定ステップでは、前記ニューラルネットワークから出力されるQ値に基づいて、前記複数の個別機械要素のうちの1つ個別機械要素への制御である前記行動の内容を決定してもよい。
【0011】
これによれば、複数の個別機械要素により変化し得る複数の計量結果の組み合わせを状態としてニューラルネットワークに入力することで、制御の対象がある1つの個別機械要素であっても、複数の個別機械要素の最適な制御が可能となる。
【0012】
また、前記ニューラルネットワークは、前記複数の個別機械要素のそれぞれについて制御したときの前記複数の個別機械要素のそれぞれごとのQ値を出力する複数の出力ノードを有し、前記学習ステップでは、前記算出ステップで算出する誤差を限りなく0に近づけるように前記ニューラルネットワークを学習し、前記決定ステップでは、前記複数の出力ノードのそれぞれから出力されるQ値のうち、最も小さいQ値に対応する個別機械要素を選択して当該個別機械要素への制御である前記行動の内容を決定してもよい。
【0013】
ニューラルネットワークの複数の出力ノードから出力されるQ値のうち最も小さいQ値に対応する個別機械要素は、対応する計量器の計量結果と目標値との差(計量誤差と呼ぶ)が複数の計量器のうち最も大きくなっているものである。したがって、1サイクル毎に最も小さいQ値に対応する個別機械要素を選択し、選択した個別機械要素に対して決定した行動の内容に応じた制御をすることを繰り返して学習を進めることで、複数の計量器のそれぞれについて全体的に計量誤差を小さくしていくことができる。言い換えると、計量誤差の水準の底上げが可能となる。
【0014】
また、前記報酬をr
k、前記決定ステップで選択された個別機械要素に対応する計量器の計量結果をm
k、当該計量器の計量結果に対応付けられた目標値をw
k、前記決定ステップで選択された個別機械要素に対応する計量器の計量結果から当該計量器の計量結果に対応付けられた目標値を引いたときに許容される許容誤差をpとした場合、|m
k−w
k|≦pのときには、r
k=(p−|m
k−w
k|)/pであり、|m
k−w
k|>pのときには、r
k=−|m
k−w
k|/pであってもよい。
【0015】
このような計算式を用いることで、計量結果と目標値との差が小さいほど大きくなるような報酬を算出することができる。
【0016】
また、前記決定ステップでは、前記複数の出力ノードのそれぞれから出力されるQ値のうち、1−ε(0≦ε≦1)の確率で、最も小さいQ値に対応する個別機械要素を選択して当該個別機械要素への制御である前記行動の内容を決定し、前記複数の出力ノードのそれぞれから出力されるQ値のうち、εの確率で、無作為に選択したQ値に対応する個別機械要素を選択して当該個別機械要素への制御である前記行動の内容を決定してもよい。
【0017】
これによれば、常に最も小さいQ値に対応する個別機械要素だけが選択されて制御されることが抑制され、試行錯誤的に様々な個別機械要素が選択されて制御されるため、様々な行動に対する適切なQ学習を行うことができる。
【0018】
また、前記複数の個別機械要素のそれぞれは、振動することで前記複数の物を対応する収容部へ向けて搬送する振動器であり、前記決定ステップでは、前記行動の内容として選択した個別機械要素の振動強度及び振動時間を決定してもよい。
【0019】
これによれば、行動の内容として選択した振動器の振動強度及び振動時間を決定することで、選択した個別機械要素に対応する計量器の計量誤差を小さくすることができる。
【0020】
また、前記決定ステップでは、選択した個別機械要素に対応する計量器の計量結果をm
k、当該計量器の計量結果に対応付けられた目標値をw
k、選択した個別機械要素に対応する計量器の計量結果から当該計量器の計量結果に対応付けられた目標値を引いたときに許容される許容誤差をpとした場合、(m
k−w
k)<−pのときには、前記行動の内容として、選択した個別機械要素の振動強度及び振動時間を増加することを決定し、−p≦(m
k−w
k)≦pのときには、前記行動の内容として、選択した個別機械要素の振動強度及び振動時間を維持することを決定し、p<(m
k−w
k)のときには、前記行動の内容として、選択した個別機械要素の振動強度及び振動時間を減少することを決定してもよい。
【0021】
これによれば、選択した個別機械要素に対応する計量器の計量結果が目標値よりも小さく、計量誤差が許容される誤差外のときには、選択した個別機械要素の振動強度及び振動時間を増加することで、計量結果を大きくして計量誤差が許容される誤差に収まるようにすることができる。選択した個別機械要素に対応する計量器の計量結果が目標値よりも大きく、計量誤差が許容される誤差外のときには、選択した個別機械要素の振動強度及び振動時間を減少することで、計量結果を小さくして計量誤差が許容される誤差に収まるようにすることができる。
【0022】
また、前記振り分け機は、さらに、前記複数の計量器の計量結果の全てを変化させ得る1つの共通機械要素を備え、前記決定ステップでは、さらに、前記複数の計量器の計量結果のそれぞれの合計と、前記複数の計量器の計量結果のそれぞれに対応付けられた目標値の合計との差に応じて、前記共通機械要素の制御内容を決定してもよい。
【0023】
複数の計量器の計量結果のそれぞれの合計と、複数の計量器の計量結果のそれぞれに対応付けられた目標値の合計との差が大きい場合、複数の計量器の計量結果のそれぞれが全体的に目標値からずれていることになる。そこで、複数の計量器の計量結果の全てを変化させ得る1つの共通機械要素の制御内容を決定することで、複数の計量器の計量結果のそれぞれを全体的に目標値に近づけることができる。
【0024】
また、前記共通機械要素は、回転しながら前記複数の物を前記複数の個別機械要素へ振り分ける回転テーブルであり、前記決定ステップでは、さらに、前記共通機械要素の回転数を決定してもよい。
【0025】
これによれば、回転テーブルの回転数を決定することで、複数の計量器の計量結果のそれぞれを全体的に目標値に近づけることができる。
【0026】
また、前記決定ステップでは、後述する式5のときには、前記共通機械要素の回転数を増加することを決定し、後述する式6のときには、前記共通機械要素の回転数を維持することを決定し、後述する式7のときには、前記共通機械要素の回転数を減少することを決定してもよい。
【0027】
これによれば、複数の計量器の計量結果のそれぞれが全体的に目標値よりも小さいときには、共通機械要素の回転数を増加することで、複数の計量器の計量結果のそれぞれを全体的に目標値に近づけることができる。複数の計量器の計量結果のそれぞれが全体的に目標値よりも大きいときには、共通機械要素の回転数を減少することで、複数の計量器の計量結果のそれぞれを全体的に目標値に近づけることができる。
【0028】
また、前記複数の計量器の計量結果のそれぞれに対応付けられた目標値は、互いに同じ値であってもよい。
【0029】
これによれば、複数の物を均等に振り分けることができる。
【0030】
また、上記目的を達成するために本発明の一態様に係るプログラムは、上記の学習方法をコンピュータに実行させるためのプログラムである。
【0031】
これによれば、振り分け機が正確に複数の物を振り分けることができるようになるプログラムを提供できる。
【0032】
また、上記目的を達成するために本発明の一態様に係る学習装置は、上流から連続的に送られてくる複数の物を複数の収容部へ振り分ける振り分け機の制御についての学習を行う学習装置であって、前記複数の収容部に一対一で設けられた複数の計量器であって、それぞれ対応する収容部に振り分けられた物の計量を行う複数の計量器の計量結果の組み合わせである状態が入力されるニューラルネットワークから出力される、強化学習に用いられるQ値に基づいて、前記振り分け機への制御である行動を決定する行動決定部と、決定された前記行動が行われたときの次の前記状態が入力された前記ニューラルネットワークから出力される次のQ値と、当該Q値の前回に前記ニューラルネットワークから出力されたQ値と、次の前記状態における報酬とを用いて、誤差を算出する誤差算出部と、を備え、前記ニューラルネットワークは、算出された誤差を用いて前記ニューラルネットワークを学習し、前記報酬は、前記複数の計量器の計量結果のそれぞれと前記複数の計量器の計量結果のそれぞれに対応付けられた目標値との差が小さいほど大きくなるように算出され、前記行動決定部による前記行動の決定と、前記誤差算出部による誤差の算出と、前記ニューラルネットワークによる学習との一連の処理を繰り返し行う。
【0033】
これによれば、振り分け機が正確に複数の物を振り分けることができるようになる学習装置を提供できる。
【発明の効果】
【0034】
本発明によれば、振り分け機が正確に複数の物を振り分けることができるようになる。
【発明を実施するための形態】
【0036】
(実施の形態)
以下、実施の形態について、
図1から
図9を参照しながら説明する。
【0037】
図1は、実施の形態における振り分け機100の一例を示す外観上面図である。
【0038】
図2は、実施の形態における振り分け機100及び学習装置10の一例を示す構成図である。
【0039】
振り分け機100は、上流から連続的に送られてくる複数の物を複数の収容部へ振り分ける装置である。なお、複数の物は、例えば菓子等であるが、特に限定されない。複数の物は、例えば流体等であってもよい。
【0040】
図1及び
図2に示されるように、振り分け機100は、複数の振動器110、複数の収容部120、回転テーブル130、搬送路140、複数の計量器150及び制御部160を備える。なお、
図2では、振り分け機100の模式的な側面図を表しており、搬送路140、回転テーブル130、振動器110及び収容部120の上下の位置関係は、例えば、
図2に示すものとなっている。また、
図1及び
図2において、太い矢印は複数の物の流れを示しており、
図2において太い矢印とは異なる実線の矢印は信号の流れを示している。
【0041】
搬送路140は、例えばベルトコンベアであり、回転テーブル130へ向けて複数の物を搬送する。
【0042】
回転テーブル130は、振り分け機100が備える1つの共通機械要素の一例であり、搬送路140の下方に設けられて、自身の中心を通る回転軸を中心に自転するテーブルである。
図1には、回転テーブル130が自転することを破線の矢印で示している。回転テーブル130は、例えば下方に向かって広がるなだらかな円錐形状を有し、回転しながら複数の物を回転テーブル130の外縁に向けて放射状に搬送し、複数の振動器110へ振り分ける。
【0043】
複数の振動器110は、振り分け機100が備える複数の個別機械要素の一例であり、回転テーブル130の外縁に沿って放射状に設けられ、また、複数の収容部120と一対一で設けられる。なお、
図2では、複数の振動器110のうちの2つの振動器110を代表して示している。複数の振動器110のそれぞれの先端側に収容部120が設けられており、複数の振動器110のそれぞれは、振動することで複数の物を回転テーブル130側から対応する収容部120へ向けて搬送する。
【0044】
複数の収容部120のそれぞれは、対応する振動器110の先端側の下方に設けられ、対応する振動器110から搬送された物を収容する。なお、
図2では、複数の収容部120のうちの2つの収容部120を代表して示している。例えば、収容部120は、その底部が開閉可能となっており、底部が開くことで収容された物が下方へ排出される。例えば、収容部120の下方には包装袋が設けられ、排出された物は包装袋に袋詰めされる。
【0045】
複数の計量器150は、複数の収容部120に一対一で設けられ、それぞれ対応する収容部120に振り分けられた物の計量を行う。なお、
図2では、複数の計量器150のうちの2つの計量器150を代表して示している。複数の計量器150のそれぞれは、例えば、対応する収容部120に振り分けられた物の重量を計量する計量器である。計量器150は、振り分けられた物の重量を示す計量結果を出力する。例えば、計量器150は、計量結果を外部の装置に出力したり、振り分け機100内の他の構成要素に出力したりする。後述するように、振り分け機100の制御について学習装置10によって学習が行われ、計量器150の計量結果は学習装置10に出力される。また、例えば、収容部120と計量器150とは一体に設けられていてもよい。
【0046】
複数の振動器110は、振動強度及び振動時間が制御されることで、主に対応する収容部120へ搬送される物の量が変化するため、対応する収容部120に振り分けられた物の計量を行う計量器150の計量結果を変化させ得る要素となっている。ただし、複数の振動器110は、回転テーブル130への物の量が一定のときは、対応する収容部120以外の収容部120に振り分けられる物の量も変化させ得る。回転テーブル130は、回転数が制御されることで、複数の収容部120の全てについて搬送される物の量が変化するため、複数の計量器150の計量結果の全てを変化させ得る要素となっている。
【0047】
制御部160は、振り分け機100での複数の物の振り分けを制御する処理部であり、振動制御部161及び回転制御部162を有する。制御部160は、例えば、プロセッサ(マイクロプロセッサ)及びメモリ等からなる回路である。メモリは、ROM、RAM等であり、プロセッサにより実行されるプログラムを記憶することができる。例えばプロセッサがプログラムに従って動作することにより、制御部160の機能である振動制御部161及び回転制御部162が実現される。制御部160は、後述する学習装置10の出力部14から振動器110及び回転テーブル130の制御パラメータを取得し、取得した制御パラメータに応じて振動器110及び回転テーブル130を制御する。
【0048】
振動制御部161は、複数の振動器110の振動強度及び振動時間を制御する。例えば、振動制御部161は、複数の振動器110のそれぞれについて個別に異なる振動強度及び振動時間によって制御することができる。
【0049】
回転制御部162は、回転テーブル130の回転数を制御する。
【0050】
学習装置10は、振り分け機100による複数の物の振り分けの制御についての学習を行う装置であり、行動決定部11、誤差算出部12、入力部13、出力部14及びニューラルネットワーク20を備える。振り分け機100と学習装置10とは接続され、振り分け機100が制御された後の複数の計量器150の計量結果の組み合わせである状態が振り分け機100から学習装置10の入力部13へ送信され、振り分け機100への制御である行動が学習装置10の出力部14から振り分け機100へ送信される。
【0051】
学習装置10は、複数の計量器150の計量結果のそれぞれと、複数の計量器150の計量結果のそれぞれに対応付けられた目標値との差が小さくなるような振り分け機100の制御を学習する装置である。なお、複数の計量器150の計量結果のそれぞれに対応付けられた目標値は、互いに同じ値であってもよい。この場合、複数の物を均等に振り分けることができる。
【0052】
ここで、学習装置10の各構成要素の説明の前に、強化学習の概要について説明する。
【0053】
図3は、強化学習におけるエージェントと環境との相互作用を示す図である。
【0054】
強化学習は、ある環境内のエージェントが環境との相互作用から学習して目標を達成する問題を扱う機械学習の一種である。
図3に示されるように、エージェントが継続的に環境に対して行動を実行し、その行動の応答として環境から新しい状態と報酬が提示されるという、エージェントと環境との相互作用から学習が行われる。
【0055】
具体的には、各時間ステップtにおいて、エージェントは環境からの状態(state)s
t∈Sを受け取り、受け取った状態に基づいて行動(action)a
t∈A(s
t)を選択する。A(s
t)は、エージェントが状態s
tのときに実行可能な行動の集合である。
【0056】
1つの時間ステップtの後に、エージェントは当該1つの時間ステップtでの行動の結果として報酬(reward)r
t+1∈Rと新しい状態s
t+1を受け取る。各時間ステップにおいて、状態から可能な行動を選択する確率の写像をエージェントの方策(policy)と呼びπ
tで示す。例えば、π
t(s,a)は、s
t =sのときにa
t=aとなる確率である。強化学習においてエージェントは、自身の経験の結果として最終的に受け取る報酬の総量を最大化する方策を学習する。
【0057】
強化学習の一種として、価値関数Qを学習するQ学習(Q-learning)がある。Q学習は、ある状態sのときに取り得る行動aのなかから、価値関数Q(s,a)の最も高い行動aを最適な行動として選択することを目的として行われる。価値関数Q(s,a)は、エージェントが状態sにおいて行動aを行うことで、将来にわたって得られることが期待される報酬の総量である。報酬は、その環境が即自的で固有の望ましさを決定するのに対し、価値関数Qはその後に続きそうな状態群とそれらの状態群によって得られそうな報酬を考慮に入れた上での長期的な望ましさを表す。Q学習の過程で最適な行動は不明であるため、様々な行動について探索しながら強化学習が行われる。このため、価値関数Q(s,a)は、次の状態s’における報酬rと行動a’を用いて以下の式1で更新される。
【0059】
上記式1において、状態sは、ある時刻における環境のある状態を表し、行動aは、その時刻における行動を表す。行動aにより、状態は状態s’に変化する。報酬rは、この状態の変化により得られる報酬を表す。また、maxの項は、状態s’のもとで、取り得る様々な行動のなかから、最も高いQ値が得られる行動a’を選択したときの当該Q値である。なお、Q値とは強化学習(例えばQ学習)で用いられるものである。
【0060】
ただし、本態様では、最も高いQ値が得られる行動が行われない。すなわち、本態様では、最も小さいQ値に対応する振動器110の制御(行動)を行い、当該振動器110の計量誤差を小さくすることでQ値を大きくすることができる。そのため、本態様では、価値関数Q(s,a)は、上記式1ではなく、以下の式2が用いられる。
【0062】
minの項は、状態s’のもとで、取り得る様々な行動のなかから、最も小さいQ値が得られる行動a’を選択したときの当該Q値である。
【0063】
γは、割引率と呼ばれるパラメータであり0≦γ≦1である。割引率は、将来の価値が現在においてどれだけの価値があるかを決定するパラメータである。例えば、γ=0のときには、次の状態で得られる即時報酬のみを最大化することを目的とし、エージェントは近視眼的なものとなる。一方で、γが1に近づくに伴い、エージェントは将来の報酬を考慮に入れることを重視するようになる。
【0064】
また、αは、学習率と呼ばれるパラメータであり0<α≦1である。学習率に着目すると、Q(s,a)は以下の式3に置き換えることができる。
【0066】
上記式3より、学習率は、現状までに学習を積み重ねた推定値Q(s,a)を優先するか、学習の結果次の状態から得られる価値を優先するかを決定するパラメータであることが分かる。例えば、α=1のときには、現状の推定値を無視して、次の状態の報酬のみで推定値を更新(学習)することになる。一方で、αが限りなく0に近づけば、次の状態にて得られる価値を無視し、今まで学習してきた推定値の変更が行われなくなる。実際のQ学習では、α=1にて学習を開始し、学習回数が増えるに従ってαを減少させ、最終的にαを限りなく0に近づけて学習を終了させる。
【0067】
上記式2では、行動aの結果得られる報酬rを使って、状態sにおける行動aの価値関数Q(s,a)が更新される。具体的には、ある状態sにおけるある行動aの価値を、その行動aによる次の状態s’における最良の行動a’の価値に近づける。Q学習では、上記式2における左辺のQ(s,a)(つまり更新後のQ値)と右辺のQ(s,a)(つまり更新前のQ値)とが同じになるように学習が進められる。言い換えると、Q学習では、誤差関数
【数4】
が限りなく0になるように学習が進められる。
【0068】
例えば、状態[0,1,2,3]、行動[0,1,2,3,4]の場合に、本態様と異なり、最も高いQ値が得られる行動が行われて、
図4に示されるようにQ学習が行われたとする。
【0069】
図4は、状態と行動とのペアについてのQ値の表である。
【0070】
状態2のときには、行動3のQ値が3となっており、それ以外の行動のQ値は3よりも小さい1となっているため、Q値が最も大きい行動3が選択される。同じように、状態3のときには、最もQ値の大きい行動4が選択される。なお、実際には、ε-greedy法を用いて試行錯誤的に行動が選択される。つまり、1−εの確率で最も大きいQ値の行動が選択され、εの確率で無作為に行動が選択される。これは、常に最も大きいQ値の行動が選択されると、他のQ値の行動が試されることなく学習が終了してしまうためである。
【0071】
強化学習は、
図4に示されるように、状態が[0,1,2,3]のように有限の場合、表形式での方策を使用することができる。しかし、本実施の形態の計量器150の計量結果のように、重量センサのセンシング結果等の入力値を離散化することなく有効桁数分をそのまま使用する(すなわち小数点以下も使用する)場合、入力値の組み合わせとする状態は、状態爆発を起こしてしまう。例えば、計量器150が18個あるとし、各計量器150の計量結果が95.0から104.9の場合、小数点1桁まで有効とすると100通りの入力値となり、18個の計量器150の入力値の組み合わせは100
18となり状態爆発を起こす。そこで、
図5に示されるように、ニューラルネットワークを用いてQ値を構成する深層強化学習を利用する。
【0072】
図5は、深層強化学習を説明するための図である。
【0073】
深層強化学習では、ある近似的な入力セットに対する状態はネットワーク上の隠れ状態として構築されているとみなし、それらの隠れ状態を単位にQ学習を行うことになる。例えば、
図5では、入力値の組み合わせはニューラルネットワーク上の隠れ状態2に近似され、その状態における各行動のQ値はそれぞれニューラルネットワークの出力層として出力される。
図4に示される例では、行動3のQ値が最も大きいので、行動3が選択されることになる。なお、実際には、ε-greedy法を用いて試行錯誤的に行動が選択されて学習が進められる。
【0074】
学習装置10は、複数の計量器150の計量結果(重量)がそのまま入力されるため、深層強化学習を用いる。深層強化学習では、学習装置10をエージェントとみなす。また、エージェントが認識する環境を複数の計量器150の計量結果とし、状態を複数の計量器150の計量結果の組み合わせとする。学習装置10が認識する環境は、複数の計量器150の全ての計量結果が出揃う間隔を1サイクルとしたときに、サイクル単位で状態が変化する環境である。
【0075】
学習装置10の各構成要素について、
図6を用いて説明する。
【0076】
図6は、実施の形態における学習方法の一例を示すフローチャートである。
【0077】
実施の形態に係る学習方法は、上流から連続的に送られてくる複数の物を複数の収容部120へ目標値に従って振り分ける振り分け機100の制御についての学習方法である。
図6に示されるように、学習方法は、決定ステップ(ステップS11)と、算出ステップ(ステップS12)と、学習ステップ(ステップS13)とを含み、決定ステップ(ステップS11)と、算出ステップ(ステップS12)と、学習ステップ(ステップS13)との一連の処理を繰り返し行う。決定ステップ(ステップS11)では、複数の計量器150の計量結果の組み合わせである状態sが入力されるニューラルネットワーク20から出力されるQ値に基づいて、振り分け機100への制御である行動aを決定する。行動aは、ニューラルネットワーク20から出力される最も小さいQ値に対するε-greedy法にて選択した振り分け機100への制御(具体的には、ある1つの振動器110への制御)である。算出ステップ(ステップS12)では、決定された行動aが行われたときの次の状態s’が入力されたニューラルネットワーク20から出力される次のQ値と、当該Q値の前回にニューラルネットワーク20から出力されたQ値と、次の状態s’における報酬rとを用いて誤差(具体的には上記式4に示す誤差関数E(s,a))を算出する。次のQ値は、Q(s’,a’)に対応し、当該Q値の前回にニューラルネットワーク20から出力されたQ値は、Q(s,a)に対応する。学習ステップ(ステップS13)では、算出された誤差を用いてニューラルネットワーク20を学習する。ニューラルネットワーク20の学習には、例えば、誤差逆伝播法等が用いられるが、これらに限定されるものではない。
【0078】
例えば、学習装置10は、
図6に示される学習方法を行う装置であり、行動決定部11は決定ステップに対応し、誤差算出部12は算出ステップに対応し、ニューラルネットワーク20は学習ステップに対応している。学習装置10は、行動決定部11による行動の決定と、誤差算出部12による誤差の算出と、ニューラルネットワーク20による学習との一連の処理を繰り返し行う。また、学習装置10は、入力部13を介して状態を取得し、出力部14を介して行動を出力する。
【0079】
ニューラルネットワーク20は、状態(複数の計量器150の計量結果の組み合わせ)を入力とし、複数の振動器110のそれぞれについて制御したときの複数の振動器110のそれぞれごとのQ値を出力する複数の出力ノードを有する。例えば、複数の振動器110の数とQ値を出力する出力ノードの数とは同じであり、複数の振動器110と、複数の出力ノードとは一対一の対応関係となっている。言い換えると、複数の振動器110と、複数の出力ノードから出力されるQ値とは一対一の対応関係となっている。
【0080】
誤差算出部12は、具体的には、上記の
図6に示される学習方法で述べた算出ステップに従って式4の誤差E(s,a)を算出し、ニューラルネットワーク20に出力した後、ニューラルネットワーク20にて、誤差逆伝搬法などを用いて、誤差E(s,a)が限りなく0に近づくように学習を行う。
【0081】
行動決定部11は、ニューラルネットワーク20から出力されるQ値に基づいて、行動の内容を決定する。具体的には、行動決定部11は、ニューラルネットワーク20が有する複数の出力ノードのそれぞれから出力されるQ値に基づいて、複数の振動器110のうちの1つの振動器110への制御である行動の内容を決定する。なお、行動決定部11は、選択した行動の内容に対応する振動器110の制御パラメータを制御部160の振動制御部161に出力することで、振動制御部161は複数の振動器110を選択された行動の内容に応じて制御する。
【0082】
通常の強化学習であれば、複数の出力ノードから出力されるQ値のうち最も大きいQ値に対応する行動が行われるが、上述したように、本態様では、最も小さいQ値に対応する行動が行われる。すなわち、行動決定部11は、ニューラルネットワーク20が有する複数の出力ノードのそれぞれから出力されるQ値のうち、最も小さいQ値に対応する振動器110を選択して当該振動器110への制御である行動の内容を決定する。これについて、報酬の算出方法と合わせて説明する。
【0083】
報酬は、振動器110が制御された後の複数の計量器150の計量結果のそれぞれと複数の計量器150の計量結果のそれぞれに対応付けられた目標値との差(計量誤差)が小さいほど大きくなるように算出される。つまり、計量器150の計量結果が目標値と同じであれば最も高い報酬が与えられ、計量結果と目標値との計量誤差が大きくなるほど報酬も低くなる。ここに、報酬は、目標の重量となるように振り分ける目的を達成するための、個々の行動の効果度合とすることができる。
【0084】
報酬をr
k、行動決定部11で選択された振動器110に対応する計量器150の計量結果をm
k、当該計量器150の計量結果に対応付けられた目標値をw
k、行動決定部11で選択された振動器110に対応する計量器150の計量結果から当該計量器150の計量結果に対応付けられた目標値を引いたときに許容される許容誤差をpとした場合、|m
k−w
k|≦pのときには、r
k=(p−|m
k−w
k|)/pであり、|m
k−w
k|>pのときには、r
k=−|m
k−w
k|/pである。
【0085】
報酬r
kは、計量結果m
kと目標値w
kとの計量誤差に対する許容される許容誤差pとの比となり、これらの式をグラフ化したものを
図7に示す。
【0086】
図7は、実施の形態におけるQ学習での報酬の与え方の一例を示すグラフである。
【0087】
図7に示されるように、計量器150の計量結果m
kと当該計量器150の計量結果m
kに対応付けられた目標値w
kとが同一の場合、つまり計量誤差が0の場合、最大の報酬である1.0が与えられる。つまり、その報酬を得た行動は計量誤差を0にすることができ効果度合が最も高かったとすることができる。一方で、計量結果m
kと目標値w
kとの計量誤差が大きくなるほど報酬(効果度合)は低くなり、計量誤差が許容される許容誤差pを超えると、報酬(効果度合)はマイナスとなる。
【0088】
そこで、複数の出力ノードから出力されるQ値のうち最も大きいQ値に対応する行動が決定される通常の強化学習と異なり、最も小さいQ値に対応する行動が決定される。つまり、行動決定部11は、最も小さいQ値、つまり累積報酬(効果度合)が最も低い行動を選択することで、最も大きな計量誤差を引き起こしてきた計量器150に対応する振動器110を選択して、当該計量器150の計量誤差を小さくするように選択した振動器110への制御である行動の内容を決定する。これにより、エージェントは、最も計量誤差を起こしてきた効果度合の累積が低い振動器110を選択して行動することで、計算誤差の水準の底上げが可能となる。
【0089】
本態様では、行動決定部11は、学習時にε-greedy法を用いて、複数の出力ノードのそれぞれから出力されるQ値のうち、1−ε(0≦ε≦1)の確率で、最も小さいQ値に対応する振動器110を選択して当該振動器110への制御である行動の内容を決定し、複数の出力ノードのそれぞれから出力されるQ値のうち、εの確率で、無作為に選択したQ値に対応する振動器110を選択して当該振動器110への制御である行動の内容を決定する。なお、学習が完了した後は、行動決定部11では、報酬の計算は行わず、ε-greedy法を用いず、常に最も小さいQ値に対応する振動器110が選択される。また誤差算出部12の実行はスキップされ、ニューラルネットワーク20への誤差の出力もしない。ここに、学習済みのニューラルネットワーク20を用いて順次、推定した一番小さいQ(s,a)に従って行動を選択していけば、累積報酬(効果度合)の最も小さい振動器110を常に選択することができ、計量誤差の水準を効率的に上げることができる。つまり、目標の重量となるように振り分ける目的を最も効率的に達成することができる。
【0090】
次に、本実施の形態のQ学習における具体的な行動、すなわち、行動決定部11の振動器110への制御について
図8を用いて説明する。
【0091】
図8は、実施の形態における行動決定部11の振動器110への具体的な制御内容の決定方法の一例を示すフローチャートである。
【0092】
例えば、行動決定部11は、行動の内容として選択した振動器110の振動強度及び振動時間を決定する。例えば、振動器110の振動強度及び振動時間が変化することで、当該振動器110に対応する収容部120へ振り分けられる物の量が変化する。振動器110の振動強度及び振動時間が増加することで、当該振動器110に対応する収容部120へ振り分けられる物の量が多くなる。一方で、振動器110の振動強度及び振動時間が減少することで、当該振動器110に対応する収容部120へ振り分けられる物の量が少なくなる。
【0093】
まず、行動決定部11は、上述したように、ニューラルネットワーク20が有する複数の出力ノードのそれぞれから出力されるQ値のうち、最も小さいQ値に対応する振動器110を選択して制御する(ステップS101)。
【0094】
選択した振動器110に対応する計量器150の計量結果をm
k、当該計量器150の計量結果に対応付けられた目標値をw
k、選択した振動器110に対応する計量器150の計量結果から当該計量器150の計量結果に対応付けられた目標値を引いたときに許容される許容誤差をpとした場合に、行動決定部11は、計量結果m
kと目標値w
kとの誤差(計量誤差)と、許容誤差pとの関係を判定する(ステップS102)。
【0095】
行動決定部11は、(m
k−w
k)<−pのときには、行動の内容として、選択した振動器110の振動強度及び振動時間を増加することを決定する(ステップS103)。つまり、行動決定部11は、計量結果が目標値に対して小さく、計量誤差が許容誤差を超えている場合には、選択した振動器110の振動強度及び振動時間を増加することで、対応する計量器150へ振り分けられる物の量を増やし、当該計量器150の計量結果が目標値に近づくようにする。
【0096】
行動決定部11は、−p≦(m
k−w
k)≦pのときには、行動の内容として、選択した振動器110の振動強度及び振動時間を維持することを決定する(ステップS104)。つまり、行動決定部11は、計量誤差が許容誤差内に収まっている場合には、選択した振動器110の振動強度及び振動時間を維持することで、今後も対応する計量器150の計量誤差が許容誤差を超えないようにする。
【0097】
行動決定部11は、p<(m
k−w
k)のときには、行動の内容として、選択した振動器110の振動強度及び振動時間を減少することを決定する(ステップS105)。つまり、行動決定部11は、計量結果が目標値に対して大きく、計量誤差が許容誤差を超えている場合には、選択した振動器110の振動強度及び振動時間を減少することで、対応する計量器150へ振り分けられる物の量を減らし、当該計量器150の計量結果が目標値に近づくようにする。
【0098】
なお、複数の計量器150のそれぞれの計量結果が全体的に目標値からずれている場合がある。このような場合に振動器110を個別に制御していっても、複数の計量器150のそれぞれの計量結果が目標値に近づきにくく、Q学習を効果的に進められないことがある。
【0099】
そこで、行動決定部11は、さらに、複数の計量器150の計量結果のそれぞれの合計と、複数の計量器150の計量結果のそれぞれに対応付けられた目標値の合計との差に応じて、回転テーブル130の制御内容を決定する。具体的には、行動決定部11は、回転テーブル130の回転数を決定する。なお、行動決定部11は、決定した制御内容に対応する回転テーブル130の制御パラメータを制御部160の回転制御部162に出力することで、回転制御部162は回転テーブル130を決定された制御内容に応じて制御する。例えば、回転テーブル130の回転数が変化することで、回転テーブル130から複数の振動器110のそれぞれへ搬送される物の量が変化する。回転テーブル130の回転数が増加することで、複数の振動器110のそれぞれへ搬送される物の量が多くなる。一方で、回転テーブル130の回転数が減少することで、複数の振動器110のそれぞれへ搬送される物の量が少なくなる。
【0100】
回転テーブル130の制御内容の決定方法について
図9を用いて説明する。
【0101】
図9は、実施の形態における行動決定部11の回転テーブル130への具体的な制御内容の決定方法の一例を示すフローチャートである。
【0102】
複数の計量器150の数をn、選択した振動器110に対応する計量器150の計量結果をm
k、当該計量器150の計量結果に対応付けられた目標値をw
k、選択した振動器110に対応する計量器150の計量結果から当該計量器150の計量結果に対応付けられた目標値を引いたときに許容される許容誤差をpとした場合に、行動決定部11は、計量結果m
kと目標値w
kとの計量誤差の合計と、許容誤差pの合計との関係を判定する(ステップS121)。
【0103】
行動決定部11は、
【数5】
のときには、回転テーブル130の回転数を増加することを決定する(ステップS122)。つまり、行動決定部11は、複数の計量器150の計量結果のそれぞれが全体的に目標値よりも小さく、計量誤差が全体的に許容誤差を超えている場合には、回転テーブル130の回転数を増加することで、複数の計量器150のそれぞれへ搬送される物の量を増やし、複数の計量器150のそれぞれの計量結果が全体的に目標値に近づくようにする。
【0104】
行動決定部11は、
【数6】
のときには、回転テーブル130の回転数を維持することを決定する(ステップS123)。つまり、行動決定部11は、複数の計量器150の計量誤差のそれぞれが全体的に許容誤差内に収まっている場合には、回転テーブル130の回転数を維持することで、今後も複数の計量器150の計量誤差のそれぞれが許容誤差を超えないようにする。
【0105】
行動決定部11は、
【数7】
のときには、回転テーブル130の回転数を減少することを決定する(ステップS124)。つまり、行動決定部11は、複数の計量器150の計量結果のそれぞれが全体的に目標値よりも大きく、計量誤差が全体的に許容誤差を超えている場合には、回転テーブル130の回転数を減少することで、複数の計量器150のそれぞれへ搬送される物の量を減らし、複数の計量器150のそれぞれの計量結果が全体的に目標値に近づくようにする。
【0106】
なお、行動決定部11は、複数の計量器150のそれぞれの計量誤差があまりにも大きい場合には、学習時の制御又は運用時の制御を強制的に終了させてもよい。例えば、行動決定部11は、計量誤差があまりにも大きいか否かを、1サイクルの合計報酬が所定値以下であるか否かに応じて判定してもよい。
【0107】
以上、本実施の形態の学習方法及び学習装置10では、複数の計量器150の計量結果の組み合わせが揃う間隔を1サイクルとした状態を単位とした強化学習が行われるため、エージェント全体での計量誤差を最小とする学習が可能となる。
【0108】
また、本実施の形態の学習方法及び学習装置10では、回転テーブル130の制御と振動器110の制御とを並行して行うことが可能である。
【0109】
また、本実施の形態の学習方法及び学習装置10では、複数の振動器110のそれぞれに着目して制御を行うのではなく、誤差が生じている状態(計量結果の組み合わせ)に対する制御手順が試行錯誤しながら求められる。
【0110】
また、本実施の形態の学習方法及び学習装置10では、許容誤差pが報酬r
kの算出における唯一の定数であり、報酬r
kを容易に算出できるようになる。
【0111】
また、式6のときのみ、つまり回転数が維持されているときのみ、振動器110の制御をして良い。
【0112】
また、本実施の形態の学習方法及び学習装置10では、計量器150の計量結果m
k、及び、当該計量器150の計量結果に対応付けられた目標値w
kを用途に応じて変更することで、振り分けられる複数の物として様々な商品に対する転移学習が期待される。
【0113】
(その他の実施の形態)
以上、実施の形態に係る学習方法及び学習装置10について説明したが、本発明は、上記実施の形態に限定されるものではない。
【0114】
例えば、上記実施の形態では、計量器150は、重量を計量する計量器であると説明したが、これに限らない。例えば、計量器150は、面積、体積、圧力又は温度等を計量する計量器であってもよい。つまり、計量器150の計量結果は、面積、体積、圧力又は温度等の計量結果であってもよい。
【0115】
また、例えば、上記実施の形態では、振り分け機100は、複数の個別機械要素として複数の振動器110を備えると説明したが、複数の個別機械要素は複数の振動器110に限らない。例えば、複数の個別機械要素は複数のベルトコンベア等であってもよく、行動決定部11はベルトコンベアの搬送速度を行動の内容として決定してもよい。
【0116】
また、例えば、上記実施の形態では、振り分け機100は、1つの共通機械要素として回転テーブル130を備えると説明したが、複数の物を複数の個別機械要素へ振り分ける量を制御できるものであれば、回転テーブル130に限らない。
【0117】
また、例えば、上記実施の形態では、学習装置10は、ニューラルネットワーク20を備えると説明したが、学習装置10自体がニューラルネットワーク20を備えていなくてもよく、ニューラルネットワーク20は、学習装置10外に設けられていてもよい。この場合、誤差算出部12は、学習装置10の外部に設けられたニューラルネットワーク20を学習してもよい。
【0118】
また、例えば、上記実施の形態では、振り分け機100は、複数の個別機械要素を備えると説明したが、複数の個別機械要素を備えていなくてもよい。
【0119】
また、例えば、上記実施の形態では、振り分け機100は、1つの共通機械要素を備えると説明したが、1つの共通機械要素を備えていなくてもよい。
【0120】
また、例えば、学習方法におけるステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本発明は、学習方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。
【0121】
さらに、本発明は、そのプログラムを記録したCD−ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
【0122】
例えば、本発明が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリ及び入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリ又は入出力回路等から取得して演算したり、演算結果をメモリ又は入出力回路等に出力したりすることによって、各ステップが実行される。
【0123】
また、上記実施の形態の学習装置10に含まれる各構成要素は、専用又は汎用の回路として実現されてもよい。
【0124】
また、上記実施の形態の学習装置10に含まれる各構成要素は、集積回路(IC:Integrated Circuit)であるLSI(Large Scale Integration)として実現されてもよい。
【0125】
また、集積回路はLSIに限られず、専用回路又は汎用プロセッサで実現されてもよい。プログラム可能なFPGA(Field Programmable Gate Array)、又は、LSI内部の回路セルの接続及び設定が再構成可能なリコンフィギュラブル・プロセッサが、利用されてもよい。
【0126】
さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、学習装置10に含まれる各構成要素の集積回路化が行われてもよい。
【0127】
その他、実施の形態に対して当業者が思いつく各種変形を施して得られる形態、本発明の趣旨を逸脱しない範囲で各実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本発明に含まれる。
【解決手段】学習方法は、複数の計量器の計量結果の組み合わせである状態が入力されるニューラルネットワークから出力されるQ値に基づいて、振り分け機への制御である行動を決定する決定ステップ(S11)と、決定された行動が行われたときの次の状態が入力されたニューラルネットワークから出力される次のQ値と、当該Q値の前回にニューラルネットワークから出力されたQ値と、次の状態における報酬とを用いて誤差を算出する算出ステップ(S12)と、算出された誤差を用いてニューラルネットワークを学習する学習ステップ(S13)と、を含み、決定ステップ(S11)と、算出ステップ(S12)と、学習ステップ(S13)との一連の処理を繰り返し行う。