本発明の実施例を説明する前に、図12から図14を参照して圧入工程について説明する。
図12は、圧入処理を示す図である。図12に示すように、円筒状の形状を有する部品Aを円筒状の穴を有する部品Bに圧力を加えて押し込み一体の組立物を得ることを、圧入と称する。圧入により部品Aと部品Bは円筒部分で強く接触し、例えば部品Aまたは部品Bの一方を回転すると他方の部品も一緒に回転する。圧入は、ねじ止めに比べて構造が簡単で小型にできるため広く使用されている。
図12に示す圧入処理を行う場合、部品Aの円筒部分の直径を、部品Bの円筒穴部分の直径より若干大きくする。この場合、通常では部品Aを部品Bの穴に嵌めることはできないが、部品Aを部品Bに対して大きな圧力を加えて押し込むと、部品Aの外径部分が部品Bの内径部分を押し広げるようにして挿入される。圧入を行う場合には、通常部品Aの円筒部分の直径と部品Bの円筒穴部分の直径を「しまりばめ」と称する公差の関係を有するように加工する。この公差より緩い関係の場合には、小さな圧力で圧入することができるが、圧入された状態の部品Aと部品Bの間で滑りが発生し、本来の目的を達成できない。また、この公差よりきつい関係の場合には、圧入に大きな力が必要で、圧入できないという状態や、無理に圧入すると部品AまたはBが破損する。
いずれにしろ、圧入は部品Aを部品Bに無理に押し込むので、図12に示すように、部品Aが圧入された部品Bの外径部分、すなわち組立物の外径部分は、圧入する前の部品Bの外径部分から変形し、外径部分の寸法がばらつき、歪も発生する。組立物の外径部分の形状の範囲、すなわち寸法精度があらかじめ決められており、この範囲に入らない場合には、組立物は不良品となる。
圧入により得られる組立物の外径部分が所定の精度範囲に入る部品Aと部品Bの寸法公差の範囲はあらかじめ調べ、それに応じて部品Aおよび部品Bの理想形状からの許容できる誤差範囲を決めることができる。この誤差範囲は一般的に非常に狭い。図13に示すように、部品Aおよび部品Bを加工する際に、部品Aの円筒部分の直径精度と部品Bの円筒穴部分の直径精度がこの理想形状からの許容できる誤差範囲内に入るようにそれぞれ精密に加工し、寸法検査により部品Aおよび部品Bの直径精度がこの範囲内であることを確認する。そして検査済みの部品Aを、検査済みの部品Bに圧入すれば、理想形状に近いもの同士の組み合わせであるため、組み立て後の組立物の外径部分の形状はばらつきおよび歪が小さく、あらかじめ決められた寸法精度の組立物が得られる。
しかし、図13に示した工程管理方法は、部品単位での寸法検査の検査工数が多くコスト増になると共に、部品単体に要求される寸法精度を厳しくする必要があり、部品単位での不良判定が多くなり、部品の歩留まりが低下し、コスト増になるという問題があった。また、部品の歩留まりを向上するには、部品単体の加工精度を高める必要があるが、それには精密な加工が要求され、その分加工時間が長くなり、コスト増になるという問題があった。
別の組立方法として、図14に示すように、直径の寸法測定を行っていないかまたは比較的低い精度の部品Aを部品Bに圧入した後に第2部品の外径部の寸法検査を行い、許容範囲外の変形を有するものについては、第2部品の外径部の仕上げ加工を追加で行い、組み立てた第2部品の外径部の寸法が所定範囲内になるようにする。この方法は、仕上げ加工を必要とするためコスト増になる上、仕上げ加工では修正できないものについては組み立てた状態の第1部品および第2部品が共に不良になるという問題があった。
図15は、本発明の加工組立の原理を説明する図である。
本発明は、複数の部品を組み立てる場合、たとえ部品単位では歪んでいるか、寸法が理想値から外れていても、組み立てられた部品の寸法が所望の精度範囲内であれば良品であると判定されることに着目する。自動機械加工装置で部品Aおよび部品Bを加工する際に、部品A加工プログラムおよび部品B加工プログラムを使用する。部品A加工プログラムでは、部品Aを加工する際の送り速度、円筒部分の外径狙い寸法等のパラメータが設定される。送り速度は加工面の粗さや加工精度に関係し、送り速度が大きいと、加工時間が短く低コストであるが、表面が粗く、加工精度も低くなる。加工精度には、外径狙い寸法からの差だけでなく、真円度、部分的な外径寸法のばらつきも含まれる。同様に、部品B加工プログラムでは、部品Bを加工する際の送り速度、円筒穴の内径の狙い寸法および円筒部分の外径狙い寸法等のパラメータが設定される。本発明では、部品A加工プログラムおよび部品B加工プログラムのパラメータを変化させて加工した部品Aと部品Bを、寸法検査を行わずに組み立て(圧入し)、組立物の外径寸法検査を行い、所望の外径寸法精度を満たす組立物が得られる部品A加工プログラムおよび部品B加工プログラムのパラメータを、機械学習装置が学習する。
図1は、本発明の実施例に共通の機械学習装置の原理ブロック図である。以降、異なる図面において同じ参照符号が付されたものは同じ機能を有する構成要素であることを意味するものとする。
自動機械加工装置で部品Aおよび部品Bを加工し、部品Aを部品Bに圧入することにより組み立てる加工組立装置においては、部品A加工プログラムにより部品Aを加工し、部品B加工プログラムにより部品Bを加工し、加工した部品Aを部品Bに圧入して組立物を製作する。本発明の実施例による機械学習装置1は、所定の形状精度を有する組立物が得られる部品A(第1)加工プログラムおよび部品B(第2)加工プログラムを学習するものとして構成される。本発明では、機械学習装置1により、寸法測定装置により測定する組み立て後の形状、および部品A加工プログラムおよび部品B加工プログラムのパラメータを観測し、これらを行動価値テーブルとしてデータベース化することで、所望の組立物を得るための部品A加工プログラムおよび部品B加工プログラムのパラメータを決定する。
機械学習装置1は、状態観測部11および学習部12を備える。ここで、機械学習装置1は、加工組立装置に内蔵されてもよく、この場合は、当該加工組立装置のプロセッサを利用して機械学習を実行する。またあるいは、機械学習装置1は、ネットワークを介して加工組立装置に接続されるデジタルコンピュータとして構成されもよい。またあるいは、機械学習装置1は、クラウドサーバ上に設けられてもよく、この場合ネットワークを介して加工組立装置に接続される。
状態観測部11は、部品A加工プログラムおよび部品B加工プログラムのパラメータから構成される状態変数を観測する。状態観測部11は、さらに組み立て後の形状を測定する寸法測定装置を有し、組み立て後の形状に関するデータを観測する。また、状態観測部11は、圧入時に印加する圧力(圧入圧)も観測することが望ましい。
なお、機械学習装置1がネットワークを介して加工組立装置に接続される場合やクラウドサーバ上に設けられる場合は、状態観測部11は、ネットワークを介して状態変数を観測する。またあるいは、機械学習装置1が加工組立装置に内蔵される場合は、当該加工組立装置に格納された制御ソフトウェアの内部データや当該加工組立装置に接続された各種センサから出力されるデータに基づいて状態変数を観測する。
学習部12は、状態観測部11によって観測された状態変数に基づいて作成されるデータセットに従って、部品A加工プログラムおよび部品B加工プログラムのパラメータを学習する。
図2は、本発明の実施例に共通な機械学習方法の動作フローを示すフローチャートである。部品A加工プログラムにより部品Aを加工し、部品B加工プログラムにより部品Bを加工し、加工した部品Aを部品Bに圧入して組立物を製作する加工組立装置の、部品A加工プログラムおよび部品B加工プログラムのパラメータを学習する機械学習方法は、状態観測ステップS101と、学習ステップS102とを備える。
状態観測ステップS101は、状態観測部11により実行されるものであり、すなわち、組み立て後の形状を測定する寸法測定装置を有し、組み立て後の形状に関するデータを観測すると共に、部品A加工プログラムおよび部品B加工プログラムのパラメータから構成される状態変数を観測し、さらには圧入圧も観測する。
学習ステップS102は、学習部12によって実行されるものであり、すなわち、状態観測部11によって観測された状態変数に基づいて作成されるデータセットに従って、部品A加工プログラムおよび部品B加工プログラムのパラメータを学習する。
学習部12が用いる学習アルゴリズムはどのようなものを用いてもよい。機械学習装置1は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。その手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習(ディープラーニング:Deep Learning)」と呼ばれる手法がある。なお、これらの機械学習(機械学習装置1)は、例えば、GPGPU(General−Purpose computing on Graphics Processing Units)や大規模PCクラスター等を適用することにより実現される。
以下、一例として、強化学習を用いた場合について図3および図4を参照して説明する。「教師あり学習」、「教師なし学習」等については、後述する。
図3は、本発明の実施例1による、強化学習を適用した機械学習装置の原理ブロック図である。学習部12は、報酬計算部31と学習器32とを備える。なお、報酬計算部31および学習器32以外の構成要素については図1に示す構成要素と同様であるので、同一の構成要素には同一符号を付して当該構成要素についての詳細な説明は省略する。
報酬計算部31は、状態観測部11の寸法検査装置によって観測された部品Aと部品Bの組み立て後の形状(ここでは組立後の部品Bの外径部分)および状態観測部11によって観測された加工時間に基づいて報酬を計算する。以下、組み立てた部品Aと部品Bを組立物と称する。例えば、寸法検査装置は組立物の外径寸法および真円度を測定し、報酬計算部31は、測定した外径寸法が理想に近い寸法であり、歪みが小さい、すなわち真円度が良いとプラスの報酬を与え、その逆であればマイナスの報酬を与える。さらに、報酬計算部31は、状態観測部11によって観測された加工時間に基づいて報酬を与える。前述のように、部品A加工プログラムおよび部品B加工プログラムのパラメータとして加工時の送り速度が設定され、部品Aおよび部品Bの形状(加工部分の長さ)から部品Aおよび部品Bの加工時間が算出でき、これらを合算した時間またはさらに組立時間を加えて加工時間を算出する。報酬計算部31は、算出した加工時間が基準加工時間より短ければプラスの報酬を与え、その逆であればマイナスの報酬を与える。なお、圧入に関係する加工時間は、部品Aの円筒部分(外径部分)の加工時間および部品Bの円筒穴部分(内径部分)の加工時間のみであるから、これらを合算した時間を加工時間としてもよい。
報酬計算部31は、さらに状態観測部11によって観測された圧入圧に応じて報酬を与えるようにしてもよい。図5は、圧入圧に応じた報酬を説明する図である。部品Aを部品Bに圧入する場合、部品Aの円筒部分の外径と部品Bの円筒穴部分の内径の差が重要であり、外径−内径に応じて圧入圧が変化する。実際には表面粗さや真円度も圧入圧に影響するが、ここでは無視するものとする。例えば、外径−内径がマイナスの場合には圧入にならず(すきまばめ)、外径−内径が大き過ぎると圧入が行えない。したがって、正常な圧入が行える外径−内径の範囲および圧入圧の範囲が存在する。実施例では、加工組立装置の組立部が、組立の際に圧入圧を測定し、状態観測部11がこれを測定する。圧入圧は、圧入装置で圧力を測定するのみで得ることができ、工数が増加することは無い。図5に示すように、報酬計算部31は、観測された圧入圧が所定範囲外であればマイナスの報酬を与え、所定範囲内であれば、プラスの報酬を与える。この際、範囲の中心に近いほど大きなプラスの値を与え、範囲の限界ではゼロになるようにしてもよい。
報酬計算部31は、組立物の外径形状に応じた報酬、加工時間に応じた報酬および圧入圧に応じた報酬を合算して報酬を決定する。合算の方法は、各報酬を重み付けした上で加算してあるいは各報酬を重み付けした上で乗算して計算するなど各種の計算方法が可能であり、対象に応じて適宜定めることが望ましい。
学習器32は、状態観測部11によって観測された状態変数および報酬計算部31によって計算された報酬に基づいて、部品A加工プログラムおよび部品B加工プログラムのパラメータを決定するための関数(行動価値テーブル)を学習する。関数(行動価値テーブル)の学習方法については後述する。
学習部12が、状態観測部11で観測された状態変数を多層構造で演算し、関数(行動価値テーブル)をリアルタイムで更新してもよい。例えば、学習部32は、状態観測部11によって観測された状態変数および報酬計算部31によって計算された報酬に基づいて、ニューラルネットワークモデルに従って、部品A加工プログラムおよび部品B加工プログラムのパラメータを決定するための関数(行動価値テーブル)を更新するようにしてもよい。ここで、状態変数を多層構造で演算する方法として、例えば、後述する図9に示すような多層ニューラルネットワークを用いることができる。
図4は、本発明の実施例1による、強化学習を適用した機械学習方法の動作フローを示すフローチャートである。
まず、状態観測ステップS101において、状態観測部11は、部品A加工プログラムおよび部品B加工プログラムのパラメータから構成される状態変数、加工物の形状、加工時間、圧入圧を観測する。
次いで、報酬計算ステップS102−1において、報酬計算部31は、状態観測部11によって観測された加工物の形状、加工時間、圧入圧に基づいて報酬を計算する。
次いで、学習(関数更新)ステップS102−2において、学習器32は、状態観測部11によって観測された状態変数および報酬計算部31によって計算された報酬に基づいて、部品A加工プログラムおよび部品B加工プログラムのパラメータを計算するための関数(行動価値テーブル)を更新する。
続いて、上述の機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムについて説明する。
図6は、本発明の実施例1による、強化学習を適用した機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムを示す原理ブロック図である。ここでは、円筒部分を有する部品Aを加工し、円筒穴を有する部品Bを加工し、部品Aの円筒部分を部品Bの円筒穴に圧入する場合について説明する。
加工組立システム1000内で、加工組立装置50の部品A加工プログラムおよび部品B加工プログラムのパラメータを決定する加工プログラム決定装置100は、機械学習装置1と、意思決定部13と、を備える。
加工組立装置50は、部品Aを部品A加工プログラムにしたがって加工する部品A加工部51と、部品Bを部品B加工プログラムにしたがって加工する部品B加工部52と、加工した部品Aを部品Bに圧入して組み立てる組立部53と、を有する。部品A加工部51と部品B加工部52は、同じ自動加工装置でも、異なる自動加工装置でもよい。部品A加工プログラムは、円筒部分の外径狙い寸法a、円筒部分加工時の送り速度b等のパラメータが設定されるようになっている。部品A加工プログラムの他のパラメータとしては、部品Aの軸方向の長さの狙い寸法およびその部分の加工時の送り速度などがあり得る。部品B加工プログラムは、円筒穴部分の内径狙い寸法c、円筒穴部分加工時の送り速度d等のパラメータが設定されるようになっている。部品B加工プログラムの他のパラメータとしては、部品Bの円筒部分の外径の狙い寸法、その部分の加工時の送り速度、軸方向の長さの狙い寸法およびその部分の加工時の送り速度などがあり得る。組立部53は、圧入動作におけるデータ、例えば前述の圧入圧力に関するデータや、組立工程において組立に手間取るような現象についてのデータも出力する。組立に手間取るような現象は、例えば、組立後には組立物の外径は真円になるが、部品単体の歪が大きいために組立が難しく、組立に時間を要することなどである。このような現象が生じた場合には、困難度を示すデータを出力する。なお、組立部53は、圧入圧力に関するデータと組立困難度を示すデータを合成した組立データeを出力するようにしてもよく、実施例1では合成した組立データeが出力されるものとして説明を行う。
機械学習装置1内の状態観測部11は、組立物の外径部分の形状を測定する寸法検査装置21と、通信装置22と、を有する。寸法検査装置21は、加工組立装置50が組み立てた組立物xの形状(外径部分の寸法等)を測定する。通信装置22は、加工組立装置50の部品A加工部51、部品B加工部52および組立部53から部品A加工プログラムおよび部品B加工プログラムのパラメータおよび組立データと、を取得する。なお、組立部53が圧入圧力に関するデータおよび組立困難度を示すデータをそれぞれ出力し、通信装置22がそれらのデータから組立データを合成してもよい。さらに、通信装置22は、部品A加工プログラムおよび部品B加工プログラムの送り速度に関するパラメータから加工時間を計算して出力する。なお、加工組立装置50が加工時間を計算して出力するようにしてもよい。いずれにしろ、状態観測部11は、組立物の外径部分の形状i、部品A加工プログラムおよび部品B加工プログラムのパラメータa−d、加工時間gおよび組立データeを状態変数として観測する。
機械学習装置1内の学習部12は、報酬計算部31と学習器32とを備え、状態観測部11によって観測された状態変数に基づいて作成されるデータセットに従って、部品A加工プログラムおよび部品B加工プログラムのパラメータを学習する。
学習部12内の報酬計算部31は、状態観測部11によって観測された組立物の外径部分の形状i、加工時間gおよび組立データeに基づいて報酬を計算する。例えば、報酬計算部31は、組立物の外径部分の形状i、加工時間gおよび組立データeを適宜重み付けした上で、加算するか乗算するかまたはその両方により報酬jを算出して出力する。
学習部12内の学習器32は、状態観測部11によって観測された状態変数および報酬計算部31によって計算された報酬に基づいて、部品A加工プログラムおよび部品B加工プログラムのパラメータを決定するための関数(行動価値テーブル)を更新する。すなわち、状態変数および報酬のデータセットが関数(行動価値テーブル)に蓄積される。
意思決定部13は、部品A加工プログラムおよび部品B加工プログラムのパラメータをどのように変更するかを決定し、加工組立装置50にパラメータの変更を指示する。これに応じて、加工組立装置50は加工および組立を行い、新たな状態変数および報酬のデータセットが関数(行動価値テーブル)にさらに蓄積される。このような動作を繰り返すと、状態変数および報酬のデータセットが多数蓄積され、部品A加工プログラムおよび部品B加工プログラムのパラメータを決定できる状態になる。
さらに、意思決定部13は、学習部12がデータセットに従って学習した結果に基づいて、部品A加工プログラムおよび部品B加工プログラムのパラメータを決定する。本実施例1では、一例として学習アルゴリズムとして強化学習を用いているので、学習部12内の報酬計算部31によって算出された報酬に基づいて学習部12内の学習器32は部品A加工プログラムおよび部品B加工プログラムのパラメータを計算するための関数を更新し、意思決定部13は、更新された関数に基づき、報酬が最も多く得られる部品A加工プログラムおよび部品B加工プログラムのパラメータを選択し、これを出力する。
意思決定部13によって決定された部品A加工プログラムおよび部品B加工プログラムのパラメータは、加工組立装置50へ直接出力されても、例えば、パソコン、携帯端末、タッチパネルなどのディスプレイや加工組立装置50に付属のディスプレイなどに表示するようにしても、プリンタを用いて紙面等にプリントアウトして表示させる形態をとってもよい。
図7は、本発明の実施例1による、強化学習を適用した機械学習装置を備える加工プログラム決定装置の動作フローを示すフローチャートである。
本実施例では、ステップS201において、行動である部品A加工プログラムおよび部品B加工プログラムのパラメータa−dを選択する。この選択は、ランダムに行ってもよいが、意思決定部13が過去のデータに基づいて学習に適したパラメータを選択することが望ましい。
ステップS202では、加工組立装置50は、その内部に格納された部品A加工プログラムおよび部品B加工プログラムのパラメータa−dを指定された値を設定して一連の加工および組立動作を実行する。
ステップS203において、状態観測部11は、パラメータa−dおよび圧入圧を含む組立データeを加工組立装置50から取得し、パラメータb、dから加工時間gを算出し、さらに寸法検査装置21で組立物の形状データiを測定する。状態観測部11は、観測した状態変数a−e,g,iを出力する。
次いで、ステップS204において、学習部12の報酬計算部31が報酬jを計算する。
次いで、ステップS205において、学習部12の学習器32が、状態変数a−e,g,iと報酬jを関連づけてデータセットとして蓄積することで、関数を更新する。
次いで、ステップS206において、意思決定部13が、部品A加工プログラムおよび部品B加工プログラムのパラメータa−dを決定するのに十分なデータセットが蓄積されたかを判定し、不足していればステップS207に進み、満たしていればステップS208に進む。
ステップS207において、意思決定部13が、学習する例に適した新たな部品A加工プログラムおよび部品B加工プログラムのパラメータa−dに変更することを決定し、変更したパラメータa−dを加工組立装置50に通知し、ステップS202に戻る。これにより、ステップS202からS207がデータセットの蓄積が終了するまで繰り返される。
ステップS208において、意思決定部13が、更新された関数(行動価値テーブル)、すなわち決定を行うのに十分な数のデータセットに基づいて、報酬が最も多く得られる部品A加工プログラムおよび部品B加工プログラムのパラメータa−dを決定し、終了する。
次に、機械学習装置1についてより詳細に説明する。機械学習装置1は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。上述のように、機械学習装置1の学習アルゴリズムとして、大別すると「教師あり学習」、「教師なし学習」、「強化学習」がある。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。なお、これらの機械学習(機械学習装置1)は、例えば、GPGPU(General−Purpose computing on Graphics Processing Units)や大規模PCクラスター等を適用することにより実現される。
「教師あり学習」とは、ある入力と結果(ラベル)のデータの組を大量に機械学習装置1に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、すなわち、その関係性を帰納的に獲得するものである。この教師あり学習を本実施形態に適用する場合、部品A加工プログラムおよび部品B加工プログラムのパラメータの決定に用いることができる。後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
「教師なし学習」とは、入力データのみを大量に機械学習装置1に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。例えば、それらのデータセットにある特徴を似たものどうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することできる。
また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、これは一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータ(例えばシミュレーションのデータ)である場合がこれに当たる。本実施形態においては、実際に加工および組立を行わなくても取得することができるデータを教師なし学習で利用し、学習を効率的に行うことができる。
まず、機械学習装置1の学習アルゴリズムを強化学習とした例について説明する。
強化学習の問題設定として、次のように考える。
・加工組立装置は環境の状態を観測し、行動を決定する。
・環境は何らかの規則に従って変化し、さらに自分の行動が、環境に変化を与えることもある。
・行動するたびに報酬信号が帰ってくる。
・最大化したいのは報酬である。
・行動が引き起こす結果を全く知らない、または不完全にしか知らない状態から学習はスタートする。すなわち、加工組立装置が実際に動作して初めて、その結果(組立物)をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように事前学習(前述の教師あり学習や、逆強化学習といった手法)した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
ここで、「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち、将来的に得られる報酬を最大にするための学習する方法である。このことは、本実施例1において、部品A加工プログラムおよび部品B加工プログラムのパラメータが正確に決定できるといった、未来に影響を及ぼすような行動を獲得できることを表している。例えばQ学習の場合で説明を続けるが、それに限るものではない。
Q学習は、ある環境状態sの下で、行動aを選択する価値Q(s,a)を学習する方法である。つまり、ある状態sのとき、価値Q(s,a)の最も高い行動aを最適な行動として選択すればよい。しかし、最初は状態sと行動aとの組合せについて、価値Q(s,a)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、ある状態sの下で様々な行動aを選択し、その時の行動aに対して報酬が与えられる。それにより、エージェントはより良い行動の選択、すなわち正しい価値Q(s,a)を学習していく。
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(s,a)=E[Σγtrt]となるようにすることを目指す。ここで、期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、それは分かっていないので、探索しながら学習することになる。そのような価値Q(s,a)の更新式は、例えば式1により表すことができる。
上記の式1において、stは時刻tにおける環境の状態を表し、atは時刻tにおける行動を表す。行動atにより、状態はst+1に変化する。rt+1は、その状態の変化により貰える報酬を表している。また、maxの付いた項は、状態st+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。γは、0<γ≦1のパラメータで、割引率と呼ばれる。αは学習係数で、0<α≦1の範囲とする。
式1は、試行atの結果帰ってきた報酬rt+1を元に、状態stにおける行動atの評価値Q(st,at)を更新する方法を表している。状態sにおける行動aの評価値Q(st,at)よりも、報酬rt+1+行動aによる次の状態における最良の行動max aの評価値Q(st+1,max at+1)の方が大きければ、Q(st,at)を大きくするし、反対に小さければ、Q(st,at)も小さくする事を示している。つまり、ある状態におけるある行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近づけるようにしている。
ここで、Q(s,a)の計算機上での表現方法は、すべての状態行動ペア(s,a)に対して、その値をテーブル(行動価値テーブル)として保持しておく方法と、Q(s,a)を近似するような関数を用意する方法がある。後者の方法では、前述の更新式は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことで実現することができる。近似関数としては、後述のニューラルネットワークを用いることができる。
また、教師あり学習、教師なし学習、および強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。ニューラルネットワークは、たとえば図8に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置およびメモリ等で構成される。図8は、ニューロンのモデルを示す模式図である。
図8に示すように、ニューロンは、複数の入力x(図8では、一例として、入力x1〜入力x3)に対する出力yを出力するものである。各入力x1〜x3には、この入力xに対応する重みw(w1〜w3)が掛けられる。これにより、ニューロンは、式2により表現される出力yを出力する。なお、入力x、出力yおよび重みwは、すべてベクトルである。また、下記の式2において、θはバイアスであり、fkは活性化関数である。
次に、上述したニューロンを組み合わせた3層の重みを有するニューラルネットワークについて、図9を参照して説明する。図9は、D1〜D3の3層の重みを有するニューラルネットワークを示す模式図である。
図9に示すように、ニューラルネットワークの左側から複数の入力x(ここでは一例として、入力x1〜入力x3)が入力され、右側から結果y(ここでは一例として、結果y1〜結果y3)が出力される。
具体的には、入力x1〜入力x3は、3つのニューロンN11〜N13の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてw1と標記されている。
ニューロンN11〜N13は、それぞれ、z11〜z13を出力する。図9において、これらz11〜z13はまとめて特徴ベクトルz1と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルz1は、重みw1と重みw2との間の特徴ベクトルである。z11〜z13は、2つのニューロンN21、N22の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてw2と標記されている。
ニューロンN21、N22は、それぞれ、z21、z22を出力する。図9において、これらz21、z22は、まとめて特徴ベクトルz2と標記されている。この特徴ベクトルz2は、重みw2と重みw3との間の特徴ベクトルである。特徴ベクトルz21、z22は、3つのニューロンN31〜N33の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてw3と標記されている。
最後に、ニューロンN31〜N33は、それぞれ、結果y1〜結果y3を出力する。
ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて学習データセットを用いて重みwを学習し、そのパラメータを用いて予測モードにおいて組立加工装置の行動判断を行う。なお、便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能なのはいうまでもない。
ここで、予測モードで実際に組立加工装置を動かして得られたデータを即時学習し、次の行動に反映させる(オンライン学習)ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う(バッチ学習)こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
また、重みw1〜w3は、誤差逆伝搬法(バックプロパゲーション:Backpropagation)により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力xが入力されたときの出力yと真の出力y(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。
このようなニューラルネットワークは、3層以上にさらに層を増やすことも可能である(深層学習と称される)。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
そこで、本実施例1の機械学習装置1は、上述のQ学習を実施すべく、例えば図6に示すように状態観測部11、学習部12、および意思決定部13を備えている。ただし、本発明に適用される機械学習方法は、Q学習に限定されるものではないのは前述したとおりである。すなわち、機械学習装置で用いることが出来る手法である「教師あり学習」、「教師なし学習」、「半教師あり学習」および「強化学習」等といった様々な手法が適用可能である。なお、これらの機械学習(機械学習装置1)は、例えば、GPGPUや大規模PCクラスター等を適用することで実現可能である。例えば教師あり学習を適用する場合、価値関数は学習モデル、報酬は誤差に対応する。なお、この行動価値テーブルとして、前述のニューラルネットワークを用いて近似した関数を用いることも可能であり、これはsおよびaの情報量が莫大であるときは特に有効である。
図16は、部品Aと部品Bの加工時の保持角度の組立(圧入)への影響を説明する図である。
円筒部分を有する部品Aおよび円筒穴部分を有する部品Bを加工する場合、部品Aおよび部品Bをスピンドルに設けられたチャックに装着して回転し、回転する円筒部分および円筒穴部分にバイトを接触させて加工する。加工される部品は、チャックの爪またはコレットに挟まれて保持される。加工される円筒部分および円筒穴部分の形状は、スピンドルの微小な偏心の影響でチャックへの取付位置(取付角度)、すなわち爪またはコレットによる把持位置により変形することが知られている。変形は、偏心、断面の円形から楕円形またはそれ以外の形状への変形、真円度の劣化等の形で現れる。
図16の(A)に示すように、チャックの取付位置(取付角度)の基準位置(基準角度)をあらかじめ定め、加工した部品Aおよび部品Bの基準位置(基準角度)に対応する位置(角度)にマーキングを行う。図16の(A)では、部品Aおよび部品Bは、共に良好な加工が行われ、すなわち外径・内径寸法および真円度が良好であり、マーキングを揃えて圧入すると、良好な組立物が得られる。
図16の(B)に示すように、部品Aおよび部品Bは加工により断面が楕円に変形するが、マーキングに対して同じように変形する。すなわち、部品Aおよび部品Bで、楕円の長辺側にマーキングがある。この場合、部品Aの部品Bへの圧入は比較的容易に(特に大きな圧入圧にならずに)行えると考えられるが、組立物の外側の円筒部分は楕円のままであると考えられる。
図16の(C)に示すように、部品Aおよび部品Bは加工により断面が楕円に変形するが、マーキングに対して90度異なる方向に変形する。すなわち、部品Aではマーキングは楕円の長辺側であるが、部品Bではマーキングは短辺側である。この場合、部品Aの部品Bへの圧入は困難になる(特に大きな圧入圧が必要になる)と考えられるが、組立物の外側の円筒部分は、部品Aを圧入したことにより部品Bは外径部分が円形(円筒)に近づくように変形する可能性があると考えられる。
実施例1では状態変数としてこのような加工時の変形の影響を考慮していなかったが、上記のように部品Aおよび部品Bの変形は組立にも影響すると考えられるので、以下に説明する実施例2では、部品の加工時の把持位置も状態変数とする。
さらに、実施例1では、圧入される部品Aの円筒部分と部品Bの円筒穴部分の外径寸法狙い値および加工速度を状態変数としたが、部品Bの外側の円筒部分の加工条件も組立(圧入)に影響する可能性がある。そこで、実施例2では、部品Bの外側の円筒部分の加工条件(外径寸法の狙い値および加工速度)も状態変数とする。
図10は、本発明の実施例2による、強化学習を適用した機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムを示す原理ブロック図である。実施例2の加工組立システム1001は、実施例1の加工組立システム1000と同様に、円筒部分を有する部品Aを加工し、円筒穴を有する部品Bを加工し、部品Aの円筒部分を部品Bの円筒穴に圧入するものである。以下、実施例1と実施例2で異なる点についてのみ説明する。
実施例2では、状態観測部11の通信装置22は、部品Bの外側の円筒部分の加工時の外径寸法の狙い値qおよびその部分の加工速度kも状態変数として取得し、学習部12の学習器32に状態変数として供給する。さらに、組立部53は、部品Aと部品Bのマーキングの角度差pを考慮して圧入を行うものとする。実施例2での状態変数は、部品Aの外側の円筒部分の加工時の外径寸法の狙い値aおよびその部分の加工速度b、部品Bの円筒穴部分の内径寸法の狙い値cおよびその部分の加工速度d、部品Bの外側の円筒部分外径寸法の狙い値qおよびその部分の加工速度k、および組立時の部品Aと部品Bのマーキングの角度差pである。
報酬計算部31は、実施例1と同様に、組立物の外径部分の形状i、加工時間gおよび組立データeに基づいて報酬jを算出して出力する。学習器32は、上記の状態変数a−d,q,k,pおよびそれに対する報酬jに基づいて学習を行う。
続いて、機械学習装置1の学習アルゴリズムを教師あり学習とした例について説明する。
図11は、本発明の実施例3による、教師あり学習を適用した機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムを示す原理ブロック図である。実施例3の加工組立システム1003は、実施例1の加工組立システム1000と同様に、円筒部分を有する部品Aを加工し、円筒穴を有する部品Bを加工し、部品Aの円筒部分を部品Bの円筒穴に圧入するものである。以下、実施例1と実施例2で異なる点についてのみ説明する。
実施例3の加工組立システム1003は、実施例1の加工組立システム1000において、学習部12の代わりに学習部60を設け、さらに評価(ラベル)提供部70を設けたものであり、意思決定部13は機能が異なるが、加工組立装置50および状態観測部11は、実施例1のものと同じである。
評価(ラベル)提供部70は、実施例1の報酬計算部31と同様のものでよく、状態観測部11によって観測された組立物の外径部分の形状i、加工時間gおよび組立データeに基づいて報酬を計算する。具体的には、例えば、評価(ラベル)提供部70は、組立物の外径部分の形状i、加工時間gおよび組立データeを適宜重み付けした上で、加算するか乗算するかまたはその両方により報酬jに相当するラベル付データtを算出して出力する。
誤差計算部61は、状態観測部11からの信号とともに、評価(ラベル)提供部70からのラベル付きデータtを受け取って学習モデルの誤差計算を行い、さらに、学習モデル更新部62は、学習モデルの更新を行う。例えば、学習モデル更新部62が部品A加工プログラムおよび部品B加工プログラムのパラメータの少なくとも1つの変更を指示し、これに応じて加工組立装置50が加工および組立を行い、得られた結果である組立物について状態変数a−dと共にラベル付データtが得られる。誤差計算部61は、これらのデータに基づいて学習モデルの誤差計算を行い、学習モデル更新部62は、ラベル付データtが向上するために、部品A加工プログラムおよび部品B加工プログラムのパラメータをどのように変更する決定し、変更した部品A加工プログラムおよび部品B加工プログラムのパラメータを加工組立装置50に指示する。以下、このような動作を繰り返すことで、学習部60における学習が進み、良好な組立物が得られる部品A加工プログラムおよび部品B加工プログラムのパラメータが分かる。
意思決定部13は、学習モデル更新部62におけるパラメータの変更およびラベル付データtの変化を監視し、学習が極限に近い状態まで進行したかを判定し、好適な部品A加工プログラムおよび部品B加工プログラムのパラメータを決定する。なお、学習してもラベル付データtの下限を満たす部品A加工プログラムおよび部品B加工プログラムのパラメータを決定できない場合も起こり得る。
以上、実施例3による、教師あり学習を適用した機械学習装置を備える加工組立システムについて説明したが、加工組立装置50および状態観測部11を、実施例2のものと同じにすることも、さらに状態変数を増加させることも可能である。
なお、本発明における機械学習装置1としては、上述した強化学習(例えば、Q学習)または教師あり学習を適用したものに限定されず、様々な機械学習のアルゴリズムを適用することが可能である。
さらに、上述した状態観測部11、学習部12、60、評価(ラベル)提供部70および意思決定部13は、例えばソフトウェアプログラム形式で構築されてもよく、あるいは各種電子回路とソフトウェアプログラムとの組み合わせで構築されてもよい。例えばこれらをソフトウェアプログラム形式で構築する場合は、加工組立装置50内にある演算処理装置をこのソフトウェアプログラムに従って動作させたり、クラウドサーバ上においてこのソフトウェアプログラムを動作させることで、上述の各部の機能を実現することができる。またあるいは、状態観測部11および学習部12、60を備える機械学習装置1を、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路として実現してもよい。またあるいは、状態観測部11および学習部12、60を備える機械学習装置1のみならず意思決定部13等も含めた形で、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路を実現してもよい。