(57)【特許請求の範囲】
【請求項１】
第１部品を第１加工プログラムにしたがって加工する第１加工部と、第２部品を第２加工プログラムにしたがって加工する第２加工部と、前記第１部品と前記第２部品を組み立てる組立部と、を有する加工組立装置における前記第１加工プログラムおよび前記第２加工プログラムの加工条件を学習する機械学習装置であって、
前記第１部品と前記第２部品の組み立て後の形状を測定する寸法測定装置を有すると共に、前記第１加工プログラムおよび前記第２加工プログラムのパラメータを取得して状態変数を観測する状態観測部と、
前記状態変数に基づいて作成される行動価値テーブルに基づいて前記第１加工プログラムおよび前記第２加工プログラムを学習する学習部と、
を備え、
前記学習部は、
前記寸法測定装置により取得した前記第１部品と前記第２部品の組み立て後の形状から報酬を計算し、前記状態変数および前記報酬に基づいて、前記行動価値テーブルを変更する、ことを特徴とする機械学習装置。
【請求項２】
前記状態変数は、前記第１加工プログラムにおける前記第１部品の前記第２部品と組み合わされる第１部分の加工寸法の狙い値および前記第１部分の加工時間と、前記第２加工プログラムにおける前記第２部品の前記第１部品と組み合わされる第２部分の加工寸法の狙い値および前記第２部分の加工時間と、を含む請求項１に記載の機械学習装置。
【請求項３】
前記状態変数は、前記第１部品の前記第１部分以外の部分の加工寸法または前記第２部品の前記第２部分以外の部分の加工寸法をさらに含む請求項２に記載の機械学習装置。
【請求項４】
前記第１部分および前記第２部分は、一方が円筒部分であり、他方が円筒穴であり、加工時の保持位置を示すマークをそれぞれ有し、任意の相対角度で組み立てられ、
前記状態変数は、組み立て時の前記第１部品の前記マークおよび前記第２部品の前記マークの相対角度を更に含む請求項２または３に記載の機械学習装置。
【請求項５】
前記学習部は、
前記寸法測定装置により取得した前記第１部品と前記第２部品の組み立て後の形状および前記第１加工プログラムおよび前記第２加工プログラムによる加工の実行時間から前記報酬を計算する報酬計算部と、
前記状態変数および前記報酬に基づいて、前記行動価値テーブルを変更する学習器と、
を備える請求項１から４のいずれか１項に記載の機械学習装置。
【請求項６】
前記報酬計算部は、組み立て時の困難度に応じて前記報酬をさらに調整する請求項５に記載の機械学習装置。
【請求項７】
前記学習器は、前記状態変数および前記報酬に基づいて、ニューラルネットワークモデルに従って、前記行動価値テーブルを更新する請求項５または６に記載の機械学習装置。
【請求項８】
請求項１〜７のいずれか１項に記載の機械学習装置を備えた加工組立システムであって、
前記学習部が学習した結果に基づいて、現在の前記状態変数の入力に応答して、前記第１加工プログラムおよび前記第２加工プログラムを決定する決定部をさらに備えることを特徴とする加工組立システム。
【請求項９】
第１部品を第１加工プログラムにしたがって加工し、第２部品を第２加工プログラムにしたがって加工し、前記第１部品と前記第２部品を組み立てる加工組立装置における前記第１加工プログラムおよび前記第２加工プログラムの加工条件を学習する機械学習方法であって、
寸法測定装置により前記第１部品と前記第２部品の組み立て後の形状を測定すると共に、前記第１加工プログラムおよび前記第２加工プログラムのパラメータを取得して状態変数を観測する状態観測ステップと、
前記状態変数に基づいて作成される行動価値テーブルに基づいて前記第１加工プログラムおよび前記第２加工プログラムを学習する学習ステップと、
を備え、
前記学習ステップは、
測定された前記第１部品と前記第２部品の組み立て後の形状から報酬を計算し、前記状態変数および前記報酬に基づいて、前記行動価値テーブルを変更する、ことを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工プログラムを学習する機械学習装置および方法ならびに該機械学習装置を備えた加工組立システムに関する。
【背景技術】
【０００２】
自動機械加工装置は、加工プログラムにしたがったコンピュータ制御により機械加工を行う。加工プログラムは、対象物（ワーク）の加工形状（寸法）に応じて変更される。加工プログラムは、ワークの形状に応じて基本的な加工プロセスがあらかじめ決められており、パラメータを設定することにより、所望の形状が得られるようになっている。実際には、加工プログラムのパラメータをワークの形状に応じて設定するだけでは所望の精度の形状を得るのは難しく、作業者が加工したワークの寸法を検査し、加工プログラムまたはパラメータを調整するのが一般的である。
【０００３】
機械加工した複数の部品を組み立てる場合があり、例えば、第１部品を第２部品および第３部品で挟み込むことや、第１部品を第２部品に嵌めこんで摺動させることが行われる。モータの製造では、円筒のコアやシャフトである第１部品を、円筒の穴を有する第２部品に圧入して第１部品と第２部品を一体とすることが行われる。以下、円筒の第１部品を円筒の穴を有する第２部品に圧入する組立を例として説明する。ただし、本発明はこれに限定されるものではない。
【０００４】
第１部品を第２部品に圧入する場合、圧入後の第２部品の外径部が変形し、外径部の寸法が部分的にばらつき歪も発生する。変形の具合は、第１部品の円筒部分の寸法と第２部品の円筒穴部分の寸法に影響され、変形の大きなものは不良品になる。
【０００５】
これまでの圧入工程では、圧入する前に、第１部品の円筒部分および第２部品の円筒穴部分の寸法検査をそれぞれ単体で行い、理想形状に近いもののみを使用して圧入を行っていた。しかし、この方法は、部品単位での寸法検査の検査工数が多くコスト増になると共に、部品単体に要求される寸法精度を厳しくする必要があり、部品単位での不良判定が多くなり、部品の歩留まりが低下し、コスト増になる。部品の歩留まりを向上するには、部品単体の加工精度を高める必要があるが、それには精密な加工が要求され、その分加工時間が長くなり、コスト増になる。
【０００６】
また、別の組立方法として、圧入後に第２部品の外径部の寸法検査を行い、許容範囲外の変形を有するものについては、第２部品の外径部の仕上げ加工を追加で行い、組み立てた第２部品の外径部の寸法が所定範囲内になるようにしている。この方法は、仕上げ加工を必要とするためコスト増になる上、仕上げ加工では修正できないものについては組み立てた状態の第１部品および第２部品が共に不良になる。
【０００７】
特許文献１は、組み立て時に依存関係にある部分について、加工した一方の部分の寸法を測定し、他方の部分を加工する時に測定した一方の部分の寸法に応じて加工寸法を変更する技術を記載している。しかし、特許文献１に記載された技術は、組み立て前の部品の寸法を測定するため依然検査工数が多い上、圧入のような組立により部品の他の部分の寸法が変化する場合、組み立ての影響が不明なために、適用が難しかった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１０５８４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数の部品を組み立てる場合、たとえ部品単位では歪んでいるか、寸法が理想値から外れていても、組み立てられた部品の寸法が所望の精度範囲内であれば良品であると判定される。本発明はこの点に着目してなされたものであり、本発明の目的は、組み立てられる複数の部品を加工し、加工した複数の部品を組み立てる加工組立システムを、寸法検査工数を低減し、追加の加工無しに高い歩留まりで所望の形状の組立品が得られるようにする機械学習装置および方法ならびに該機械学習装置を備えた加工組立システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、第１部品を第１加工プログラムにしたがって加工する第１加工部と、第２部品を第２加工プログラムにしたがって加工する第２加工部と、第１部品と第２部品を組み立てる組立部と、を有する加工組立装置における第１加工プログラムおよび第２加工プログラムの加工条件を学習する機械学習装置であって、第１部品と第２部品の組み立て後の形状を測定する寸法測定装置を有すると共に、第１加工プログラムおよび第２加工プログラムのパラメータを取得して状態変数を観測する状態観測部と、状態変数に基づいて作成される行動価値テーブルに基づいて第１加工プログラムおよび第２加工プログラムを学習する学習部と、を備える。
【発明の効果】
【００１１】
本発明によれば、組み立てられるのに適した、すなわち組み立てられた時に所定の寸法になるように、第１部品および第２部品を加工する第１加工プログラムおよび第２加工プログラムが決定できる機械学習装置および方法ならびに該機械学習装置を備えた加工組立システムを実現することができる。
【００１２】
本発明の機械学習装置およびその方法は、組み立てに適した第１部品および第２部品を加工する第１加工プログラムおよび第２加工プログラムを自動的に学習し決定する。さらに、このような決定を、熟練した技術者無しで行える。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施例による機械学習装置の原理ブロック図である。
【図２】本発明の実施例よる機械学習方法の動作フローを示すフローチャートである。
【図３】本発明の実施例１による、強化学習を適用した機械学習装置の原理ブロック図である。
【図４】本発明の実施例１による、強化学習を適用した機械学習方法の動作フローを示すフローチャートである。
【図５】圧入時の圧入圧に対する報酬を説明する図である。
【図６】本発明の実施例１による、強化学習を適用した機械学習装置を備える加工組立システムの構成を示すブロック図である。
【図７】本発明の実施例１による、強化学習を適用した機械学習装置を備える加工プログラム決定装置の動作フローを示すフローチャートである。
【図８】ニューロンのモデルを示す模式図である。
【図９】Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【図１０】本発明の実施例２による、強化学習を適用した機械学習装置を備える加工組立システムの構成を示すブロック図である。
【図１１】本発明の実施例３による、教師あり学習を適用した機械学習装置を備える加工組立システムの構成を示すブロック図である。
【図１２】圧入を説明する図である。
【図１３】従来の圧入工程を説明する図である。
【図１４】従来の別の圧入工程を説明する図である。
【図１５】本発明の実施例の加工組立システムにおける機械学習の基本原理を説明する図である。
【図１６】部品加工時の部品保持位置に対する回転角度を、状態変数とすることを説明する図である。
【発明を実施するための形態】
【００１４】
本発明の実施例を説明する前に、図１２から図１４を参照して圧入工程について説明する。
図１２は、圧入処理を示す図である。図１２に示すように、円筒状の形状を有する部品Ａを円筒状の穴を有する部品Ｂに圧力を加えて押し込み一体の組立物を得ることを、圧入と称する。圧入により部品Ａと部品Ｂは円筒部分で強く接触し、例えば部品Ａまたは部品Ｂの一方を回転すると他方の部品も一緒に回転する。圧入は、ねじ止めに比べて構造が簡単で小型にできるため広く使用されている。
【００１５】
図１２に示す圧入処理を行う場合、部品Ａの円筒部分の直径を、部品Ｂの円筒穴部分の直径より若干大きくする。この場合、通常では部品Ａを部品Ｂの穴に嵌めることはできないが、部品Ａを部品Ｂに対して大きな圧力を加えて押し込むと、部品Ａの外径部分が部品Ｂの内径部分を押し広げるようにして挿入される。圧入を行う場合には、通常部品Ａの円筒部分の直径と部品Ｂの円筒穴部分の直径を「しまりばめ」と称する公差の関係を有するように加工する。この公差より緩い関係の場合には、小さな圧力で圧入することができるが、圧入された状態の部品Ａと部品Ｂの間で滑りが発生し、本来の目的を達成できない。また、この公差よりきつい関係の場合には、圧入に大きな力が必要で、圧入できないという状態や、無理に圧入すると部品ＡまたはＢが破損する。
【００１６】
いずれにしろ、圧入は部品Ａを部品Ｂに無理に押し込むので、図１２に示すように、部品Ａが圧入された部品Ｂの外径部分、すなわち組立物の外径部分は、圧入する前の部品Ｂの外径部分から変形し、外径部分の寸法がばらつき、歪も発生する。組立物の外径部分の形状の範囲、すなわち寸法精度があらかじめ決められており、この範囲に入らない場合には、組立物は不良品となる。
【００１７】
圧入により得られる組立物の外径部分が所定の精度範囲に入る部品Ａと部品Ｂの寸法公差の範囲はあらかじめ調べ、それに応じて部品Ａおよび部品Ｂの理想形状からの許容できる誤差範囲を決めることができる。この誤差範囲は一般的に非常に狭い。図１３に示すように、部品Ａおよび部品Ｂを加工する際に、部品Ａの円筒部分の直径精度と部品Ｂの円筒穴部分の直径精度がこの理想形状からの許容できる誤差範囲内に入るようにそれぞれ精密に加工し、寸法検査により部品Ａおよび部品Ｂの直径精度がこの範囲内であることを確認する。そして検査済みの部品Ａを、検査済みの部品Ｂに圧入すれば、理想形状に近いもの同士の組み合わせであるため、組み立て後の組立物の外径部分の形状はばらつきおよび歪が小さく、あらかじめ決められた寸法精度の組立物が得られる。
【００１８】
しかし、図１３に示した工程管理方法は、部品単位での寸法検査の検査工数が多くコスト増になると共に、部品単体に要求される寸法精度を厳しくする必要があり、部品単位での不良判定が多くなり、部品の歩留まりが低下し、コスト増になるという問題があった。また、部品の歩留まりを向上するには、部品単体の加工精度を高める必要があるが、それには精密な加工が要求され、その分加工時間が長くなり、コスト増になるという問題があった。
【００１９】
別の組立方法として、図１４に示すように、直径の寸法測定を行っていないかまたは比較的低い精度の部品Ａを部品Ｂに圧入した後に第２部品の外径部の寸法検査を行い、許容範囲外の変形を有するものについては、第２部品の外径部の仕上げ加工を追加で行い、組み立てた第２部品の外径部の寸法が所定範囲内になるようにする。この方法は、仕上げ加工を必要とするためコスト増になる上、仕上げ加工では修正できないものについては組み立てた状態の第１部品および第２部品が共に不良になるという問題があった。
【００２０】
図１５は、本発明の加工組立の原理を説明する図である。
本発明は、複数の部品を組み立てる場合、たとえ部品単位では歪んでいるか、寸法が理想値から外れていても、組み立てられた部品の寸法が所望の精度範囲内であれば良品であると判定されることに着目する。自動機械加工装置で部品Ａおよび部品Ｂを加工する際に、部品Ａ加工プログラムおよび部品Ｂ加工プログラムを使用する。部品Ａ加工プログラムでは、部品Ａを加工する際の送り速度、円筒部分の外径狙い寸法等のパラメータが設定される。送り速度は加工面の粗さや加工精度に関係し、送り速度が大きいと、加工時間が短く低コストであるが、表面が粗く、加工精度も低くなる。加工精度には、外径狙い寸法からの差だけでなく、真円度、部分的な外径寸法のばらつきも含まれる。同様に、部品Ｂ加工プログラムでは、部品Ｂを加工する際の送り速度、円筒穴の内径の狙い寸法および円筒部分の外径狙い寸法等のパラメータが設定される。本発明では、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを変化させて加工した部品Ａと部品Ｂを、寸法検査を行わずに組み立て（圧入し）、組立物の外径寸法検査を行い、所望の外径寸法精度を満たす組立物が得られる部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを、機械学習装置が学習する。
【００２１】
図１は、本発明の実施例に共通の機械学習装置の原理ブロック図である。以降、異なる図面において同じ参照符号が付されたものは同じ機能を有する構成要素であることを意味するものとする。
【００２２】
自動機械加工装置で部品Ａおよび部品Ｂを加工し、部品Ａを部品Ｂに圧入することにより組み立てる加工組立装置においては、部品Ａ加工プログラムにより部品Ａを加工し、部品Ｂ加工プログラムにより部品Ｂを加工し、加工した部品Ａを部品Ｂに圧入して組立物を製作する。本発明の実施例による機械学習装置１は、所定の形状精度を有する組立物が得られる部品Ａ（第１）加工プログラムおよび部品Ｂ（第２）加工プログラムを学習するものとして構成される。本発明では、機械学習装置１により、寸法測定装置により測定する組み立て後の形状、および部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを観測し、これらを行動価値テーブルとしてデータベース化することで、所望の組立物を得るための部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定する。
【００２３】
機械学習装置１は、状態観測部１１および学習部１２を備える。ここで、機械学習装置１は、加工組立装置に内蔵されてもよく、この場合は、当該加工組立装置のプロセッサを利用して機械学習を実行する。またあるいは、機械学習装置１は、ネットワークを介して加工組立装置に接続されるデジタルコンピュータとして構成されもよい。またあるいは、機械学習装置１は、クラウドサーバ上に設けられてもよく、この場合ネットワークを介して加工組立装置に接続される。
【００２４】
状態観測部１１は、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータから構成される状態変数を観測する。状態観測部１１は、さらに組み立て後の形状を測定する寸法測定装置を有し、組み立て後の形状に関するデータを観測する。また、状態観測部１１は、圧入時に印加する圧力（圧入圧）も観測することが望ましい。
【００２５】
なお、機械学習装置１がネットワークを介して加工組立装置に接続される場合やクラウドサーバ上に設けられる場合は、状態観測部１１は、ネットワークを介して状態変数を観測する。またあるいは、機械学習装置１が加工組立装置に内蔵される場合は、当該加工組立装置に格納された制御ソフトウェアの内部データや当該加工組立装置に接続された各種センサから出力されるデータに基づいて状態変数を観測する。
【００２６】
学習部１２は、状態観測部１１によって観測された状態変数に基づいて作成されるデータセットに従って、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを学習する。
【００２７】
図２は、本発明の実施例に共通な機械学習方法の動作フローを示すフローチャートである。部品Ａ加工プログラムにより部品Ａを加工し、部品Ｂ加工プログラムにより部品Ｂを加工し、加工した部品Ａを部品Ｂに圧入して組立物を製作する加工組立装置の、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを学習する機械学習方法は、状態観測ステップＳ１０１と、学習ステップＳ１０２とを備える。
【００２８】
状態観測ステップＳ１０１は、状態観測部１１により実行されるものであり、すなわち、組み立て後の形状を測定する寸法測定装置を有し、組み立て後の形状に関するデータを観測すると共に、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータから構成される状態変数を観測し、さらには圧入圧も観測する。
【００２９】
学習ステップＳ１０２は、学習部１２によって実行されるものであり、すなわち、状態観測部１１によって観測された状態変数に基づいて作成されるデータセットに従って、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを学習する。
【００３０】
学習部１２が用いる学習アルゴリズムはどのようなものを用いてもよい。機械学習装置１は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。その手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習（ディープラーニング：Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）」と呼ばれる手法がある。なお、これらの機械学習（機械学習装置１）は、例えば、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ ｃｏｍｐｕｔｉｎｇ ｏｎ Ｇｒａｐｈｉｃｓ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔｓ）や大規模ＰＣクラスター等を適用することにより実現される。
【００３１】
以下、一例として、強化学習を用いた場合について図３および図４を参照して説明する。「教師あり学習」、「教師なし学習」等については、後述する。
【００３２】
図３は、本発明の実施例１による、強化学習を適用した機械学習装置の原理ブロック図である。学習部１２は、報酬計算部３１と学習器３２とを備える。なお、報酬計算部３１および学習器３２以外の構成要素については図１に示す構成要素と同様であるので、同一の構成要素には同一符号を付して当該構成要素についての詳細な説明は省略する。
【００３３】
報酬計算部３１は、状態観測部１１の寸法検査装置によって観測された部品Ａと部品Ｂの組み立て後の形状（ここでは組立後の部品Ｂの外径部分）および状態観測部１１によって観測された加工時間に基づいて報酬を計算する。以下、組み立てた部品Ａと部品Ｂを組立物と称する。例えば、寸法検査装置は組立物の外径寸法および真円度を測定し、報酬計算部３１は、測定した外径寸法が理想に近い寸法であり、歪みが小さい、すなわち真円度が良いとプラスの報酬を与え、その逆であればマイナスの報酬を与える。さらに、報酬計算部３１は、状態観測部１１によって観測された加工時間に基づいて報酬を与える。前述のように、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータとして加工時の送り速度が設定され、部品Ａおよび部品Ｂの形状（加工部分の長さ）から部品Ａおよび部品Ｂの加工時間が算出でき、これらを合算した時間またはさらに組立時間を加えて加工時間を算出する。報酬計算部３１は、算出した加工時間が基準加工時間より短ければプラスの報酬を与え、その逆であればマイナスの報酬を与える。なお、圧入に関係する加工時間は、部品Ａの円筒部分（外径部分）の加工時間および部品Ｂの円筒穴部分（内径部分）の加工時間のみであるから、これらを合算した時間を加工時間としてもよい。
【００３４】
報酬計算部３１は、さらに状態観測部１１によって観測された圧入圧に応じて報酬を与えるようにしてもよい。図５は、圧入圧に応じた報酬を説明する図である。部品Ａを部品Ｂに圧入する場合、部品Ａの円筒部分の外径と部品Ｂの円筒穴部分の内径の差が重要であり、外径−内径に応じて圧入圧が変化する。実際には表面粗さや真円度も圧入圧に影響するが、ここでは無視するものとする。例えば、外径−内径がマイナスの場合には圧入にならず（すきまばめ）、外径−内径が大き過ぎると圧入が行えない。したがって、正常な圧入が行える外径−内径の範囲および圧入圧の範囲が存在する。実施例では、加工組立装置の組立部が、組立の際に圧入圧を測定し、状態観測部１１がこれを測定する。圧入圧は、圧入装置で圧力を測定するのみで得ることができ、工数が増加することは無い。図５に示すように、報酬計算部３１は、観測された圧入圧が所定範囲外であればマイナスの報酬を与え、所定範囲内であれば、プラスの報酬を与える。この際、範囲の中心に近いほど大きなプラスの値を与え、範囲の限界ではゼロになるようにしてもよい。
【００３５】
報酬計算部３１は、組立物の外径形状に応じた報酬、加工時間に応じた報酬および圧入圧に応じた報酬を合算して報酬を決定する。合算の方法は、各報酬を重み付けした上で加算してあるいは各報酬を重み付けした上で乗算して計算するなど各種の計算方法が可能であり、対象に応じて適宜定めることが望ましい。
【００３６】
学習器３２は、状態観測部１１によって観測された状態変数および報酬計算部３１によって計算された報酬に基づいて、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定するための関数（行動価値テーブル）を学習する。関数（行動価値テーブル）の学習方法については後述する。
【００３７】
学習部１２が、状態観測部１１で観測された状態変数を多層構造で演算し、関数（行動価値テーブル）をリアルタイムで更新してもよい。例えば、学習部３２は、状態観測部１１によって観測された状態変数および報酬計算部３１によって計算された報酬に基づいて、ニューラルネットワークモデルに従って、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定するための関数（行動価値テーブル）を更新するようにしてもよい。ここで、状態変数を多層構造で演算する方法として、例えば、後述する図９に示すような多層ニューラルネットワークを用いることができる。
【００３８】
図４は、本発明の実施例１による、強化学習を適用した機械学習方法の動作フローを示すフローチャートである。
【００３９】
まず、状態観測ステップＳ１０１において、状態観測部１１は、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータから構成される状態変数、加工物の形状、加工時間、圧入圧を観測する。
【００４０】
次いで、報酬計算ステップＳ１０２−１において、報酬計算部３１は、状態観測部１１によって観測された加工物の形状、加工時間、圧入圧に基づいて報酬を計算する。
【００４１】
次いで、学習（関数更新）ステップＳ１０２−２において、学習器３２は、状態観測部１１によって観測された状態変数および報酬計算部３１によって計算された報酬に基づいて、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを計算するための関数（行動価値テーブル）を更新する。
【００４２】
続いて、上述の機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムについて説明する。
【００４３】
図６は、本発明の実施例１による、強化学習を適用した機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムを示す原理ブロック図である。ここでは、円筒部分を有する部品Ａを加工し、円筒穴を有する部品Ｂを加工し、部品Ａの円筒部分を部品Ｂの円筒穴に圧入する場合について説明する。
【００４４】
加工組立システム１０００内で、加工組立装置５０の部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定する加工プログラム決定装置１００は、機械学習装置１と、意思決定部１３と、を備える。
【００４５】
加工組立装置５０は、部品Ａを部品Ａ加工プログラムにしたがって加工する部品Ａ加工部５１と、部品Ｂを部品Ｂ加工プログラムにしたがって加工する部品Ｂ加工部５２と、加工した部品Ａを部品Ｂに圧入して組み立てる組立部５３と、を有する。部品Ａ加工部５１と部品Ｂ加工部５２は、同じ自動加工装置でも、異なる自動加工装置でもよい。部品Ａ加工プログラムは、円筒部分の外径狙い寸法ａ、円筒部分加工時の送り速度ｂ等のパラメータが設定されるようになっている。部品Ａ加工プログラムの他のパラメータとしては、部品Ａの軸方向の長さの狙い寸法およびその部分の加工時の送り速度などがあり得る。部品Ｂ加工プログラムは、円筒穴部分の内径狙い寸法ｃ、円筒穴部分加工時の送り速度ｄ等のパラメータが設定されるようになっている。部品Ｂ加工プログラムの他のパラメータとしては、部品Ｂの円筒部分の外径の狙い寸法、その部分の加工時の送り速度、軸方向の長さの狙い寸法およびその部分の加工時の送り速度などがあり得る。組立部５３は、圧入動作におけるデータ、例えば前述の圧入圧力に関するデータや、組立工程において組立に手間取るような現象についてのデータも出力する。組立に手間取るような現象は、例えば、組立後には組立物の外径は真円になるが、部品単体の歪が大きいために組立が難しく、組立に時間を要することなどである。このような現象が生じた場合には、困難度を示すデータを出力する。なお、組立部５３は、圧入圧力に関するデータと組立困難度を示すデータを合成した組立データｅを出力するようにしてもよく、実施例１では合成した組立データｅが出力されるものとして説明を行う。
【００４６】
機械学習装置１内の状態観測部１１は、組立物の外径部分の形状を測定する寸法検査装置２１と、通信装置２２と、を有する。寸法検査装置２１は、加工組立装置５０が組み立てた組立物ｘの形状（外径部分の寸法等）を測定する。通信装置２２は、加工組立装置５０の部品Ａ加工部５１、部品Ｂ加工部５２および組立部５３から部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータおよび組立データと、を取得する。なお、組立部５３が圧入圧力に関するデータおよび組立困難度を示すデータをそれぞれ出力し、通信装置２２がそれらのデータから組立データを合成してもよい。さらに、通信装置２２は、部品Ａ加工プログラムおよび部品Ｂ加工プログラムの送り速度に関するパラメータから加工時間を計算して出力する。なお、加工組立装置５０が加工時間を計算して出力するようにしてもよい。いずれにしろ、状態観測部１１は、組立物の外径部分の形状ｉ、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータａ−ｄ、加工時間ｇおよび組立データｅを状態変数として観測する。
【００４７】
機械学習装置１内の学習部１２は、報酬計算部３１と学習器３２とを備え、状態観測部１１によって観測された状態変数に基づいて作成されるデータセットに従って、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを学習する。
【００４８】
学習部１２内の報酬計算部３１は、状態観測部１１によって観測された組立物の外径部分の形状ｉ、加工時間ｇおよび組立データｅに基づいて報酬を計算する。例えば、報酬計算部３１は、組立物の外径部分の形状ｉ、加工時間ｇおよび組立データｅを適宜重み付けした上で、加算するか乗算するかまたはその両方により報酬ｊを算出して出力する。
【００４９】
学習部１２内の学習器３２は、状態観測部１１によって観測された状態変数および報酬計算部３１によって計算された報酬に基づいて、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定するための関数（行動価値テーブル）を更新する。すなわち、状態変数および報酬のデータセットが関数（行動価値テーブル）に蓄積される。
【００５０】
意思決定部１３は、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータをどのように変更するかを決定し、加工組立装置５０にパラメータの変更を指示する。これに応じて、加工組立装置５０は加工および組立を行い、新たな状態変数および報酬のデータセットが関数（行動価値テーブル）にさらに蓄積される。このような動作を繰り返すと、状態変数および報酬のデータセットが多数蓄積され、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定できる状態になる。
【００５１】
さらに、意思決定部１３は、学習部１２がデータセットに従って学習した結果に基づいて、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定する。本実施例１では、一例として学習アルゴリズムとして強化学習を用いているので、学習部１２内の報酬計算部３１によって算出された報酬に基づいて学習部１２内の学習器３２は部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを計算するための関数を更新し、意思決定部１３は、更新された関数に基づき、報酬が最も多く得られる部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを選択し、これを出力する。
【００５２】
意思決定部１３によって決定された部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータは、加工組立装置５０へ直接出力されても、例えば、パソコン、携帯端末、タッチパネルなどのディスプレイや加工組立装置５０に付属のディスプレイなどに表示するようにしても、プリンタを用いて紙面等にプリントアウトして表示させる形態をとってもよい。
【００５３】
図７は、本発明の実施例１による、強化学習を適用した機械学習装置を備える加工プログラム決定装置の動作フローを示すフローチャートである。
【００５４】
本実施例では、ステップＳ２０１において、行動である部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータａ−ｄを選択する。この選択は、ランダムに行ってもよいが、意思決定部１３が過去のデータに基づいて学習に適したパラメータを選択することが望ましい。
【００５５】
ステップＳ２０２では、加工組立装置５０は、その内部に格納された部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータａ−ｄを指定された値を設定して一連の加工および組立動作を実行する。
【００５６】
ステップＳ２０３において、状態観測部１１は、パラメータａ−ｄおよび圧入圧を含む組立データｅを加工組立装置５０から取得し、パラメータｂ、ｄから加工時間ｇを算出し、さらに寸法検査装置２１で組立物の形状データｉを測定する。状態観測部１１は、観測した状態変数ａ−ｅ，ｇ，ｉを出力する。
【００５７】
次いで、ステップＳ２０４において、学習部１２の報酬計算部３１が報酬ｊを計算する。
【００５８】
次いで、ステップＳ２０５において、学習部１２の学習器３２が、状態変数ａ−ｅ，ｇ，ｉと報酬ｊを関連づけてデータセットとして蓄積することで、関数を更新する。
【００５９】
次いで、ステップＳ２０６において、意思決定部１３が、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータａ−ｄを決定するのに十分なデータセットが蓄積されたかを判定し、不足していればステップＳ２０７に進み、満たしていればステップＳ２０８に進む。
【００６０】
ステップＳ２０７において、意思決定部１３が、学習する例に適した新たな部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータａ−ｄに変更することを決定し、変更したパラメータａ−ｄを加工組立装置５０に通知し、ステップＳ２０２に戻る。これにより、ステップＳ２０２からＳ２０７がデータセットの蓄積が終了するまで繰り返される。
【００６１】
ステップＳ２０８において、意思決定部１３が、更新された関数（行動価値テーブル）、すなわち決定を行うのに十分な数のデータセットに基づいて、報酬が最も多く得られる部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータａ−ｄを決定し、終了する。
【００６２】
次に、機械学習装置１についてより詳細に説明する。機械学習装置１は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。上述のように、機械学習装置１の学習アルゴリズムとして、大別すると「教師あり学習」、「教師なし学習」、「強化学習」がある。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。なお、これらの機械学習（機械学習装置１）は、例えば、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ ｃｏｍｐｕｔｉｎｇ ｏｎ Ｇｒａｐｈｉｃｓ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔｓ）や大規模ＰＣクラスター等を適用することにより実現される。
【００６３】
「教師あり学習」とは、ある入力と結果（ラベル）のデータの組を大量に機械学習装置１に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、すなわち、その関係性を帰納的に獲得するものである。この教師あり学習を本実施形態に適用する場合、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータの決定に用いることができる。後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【００６４】
「教師なし学習」とは、入力データのみを大量に機械学習装置１に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。例えば、それらのデータセットにある特徴を似たものどうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することできる。
【００６５】
また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、これは一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータ（例えばシミュレーションのデータ）である場合がこれに当たる。本実施形態においては、実際に加工および組立を行わなくても取得することができるデータを教師なし学習で利用し、学習を効率的に行うことができる。
【００６６】
まず、機械学習装置１の学習アルゴリズムを強化学習とした例について説明する。
【００６７】
強化学習の問題設定として、次のように考える。
・加工組立装置は環境の状態を観測し、行動を決定する。
・環境は何らかの規則に従って変化し、さらに自分の行動が、環境に変化を与えることもある。
・行動するたびに報酬信号が帰ってくる。
・最大化したいのは報酬である。
・行動が引き起こす結果を全く知らない、または不完全にしか知らない状態から学習はスタートする。すなわち、加工組立装置が実際に動作して初めて、その結果（組立物）をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００６８】
ここで、「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち、将来的に得られる報酬を最大にするための学習する方法である。このことは、本実施例１において、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータが正確に決定できるといった、未来に影響を及ぼすような行動を獲得できることを表している。例えばＱ学習の場合で説明を続けるが、それに限るものではない。
【００６９】
Ｑ学習は、ある環境状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法である。つまり、ある状態ｓのとき、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェント（行動主体）は、ある状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して報酬が与えられる。それにより、エージェントはより良い行動の選択、すなわち正しい価値Ｑ（ｓ，ａ）を学習していく。
【００７０】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σγtｒt］となるようにすることを目指す。ここで、期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、それは分かっていないので、探索しながら学習することになる。そのような価値Ｑ（ｓ，ａ）の更新式は、例えば式１により表すことができる。
【００７１】
【数１】
0006625868.tif 000002
【００７２】
上記の式１において、ｓ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）が掛けられる。これにより、ニューロンは、式２により表現される出力ｙを出力する。なお、入力ｘ、出力ｙおよび重みｗは、すべてベクトルである。また、下記の式２において、θはバイアスであり、ｆkは活性化関数である。
【００７７】
【数２】
0006625868.tif 000003
【００７８】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図９を参照して説明する。図９は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【００７９】
図９に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００８０】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてｗ１と標記されている。
【００８１】
ニューロンＮ１１〜Ｎ１３は、それぞれ、ｚ１１〜ｚ１３を出力する。図９において、これらｚ１１〜ｚ１３はまとめて特徴ベクトルｚ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴ベクトルである。ｚ１１〜ｚ１３は、２つのニューロンＮ２１、Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ２と標記されている。
【００８２】
ニューロンＮ２１、Ｎ２２は、それぞれ、ｚ２１、ｚ２２を出力する。図９において、これらｚ２１、ｚ２２は、まとめて特徴ベクトルｚ２と標記されている。この特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴ベクトルである。特徴ベクトルｚ２１、ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ３と標記されている。
【００８３】
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００８４】
ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて学習データセットを用いて重みｗを学習し、そのパラメータを用いて予測モードにおいて組立加工装置の行動判断を行う。なお、便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能なのはいうまでもない。
【００８５】
ここで、予測モードで実際に組立加工装置を動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００８６】
また、重みｗ１〜ｗ３は、誤差逆伝搬法（バックプロパゲーション：Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００８７】
このようなニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【００８８】
そこで、本実施例１の機械学習装置１は、上述のＱ学習を実施すべく、例えば図６に示すように状態観測部１１、学習部１２、および意思決定部１３を備えている。ただし、本発明に適用される機械学習方法は、Ｑ学習に限定されるものではないのは前述したとおりである。すなわち、機械学習装置で用いることが出来る手法である「教師あり学習」、「教師なし学習」、「半教師あり学習」および「強化学習」等といった様々な手法が適用可能である。なお、これらの機械学習（機械学習装置１）は、例えば、ＧＰＧＰＵや大規模ＰＣクラスター等を適用することで実現可能である。例えば教師あり学習を適用する場合、価値関数は学習モデル、報酬は誤差に対応する。なお、この行動価値テーブルとして、前述のニューラルネットワークを用いて近似した関数を用いることも可能であり、これはｓおよびａの情報量が莫大であるときは特に有効である。
【００８９】
図１６は、部品Ａと部品Ｂの加工時の保持角度の組立（圧入）への影響を説明する図である。
円筒部分を有する部品Ａおよび円筒穴部分を有する部品Ｂを加工する場合、部品Ａおよび部品Ｂをスピンドルに設けられたチャックに装着して回転し、回転する円筒部分および円筒穴部分にバイトを接触させて加工する。加工される部品は、チャックの爪またはコレットに挟まれて保持される。加工される円筒部分および円筒穴部分の形状は、スピンドルの微小な偏心の影響でチャックへの取付位置（取付角度）、すなわち爪またはコレットによる把持位置により変形することが知られている。変形は、偏心、断面の円形から楕円形またはそれ以外の形状への変形、真円度の劣化等の形で現れる。
【００９０】
図１６の（Ａ）に示すように、チャックの取付位置（取付角度）の基準位置（基準角度）をあらかじめ定め、加工した部品Ａおよび部品Ｂの基準位置（基準角度）に対応する位置（角度）にマーキングを行う。図１６の（Ａ）では、部品Ａおよび部品Ｂは、共に良好な加工が行われ、すなわち外径・内径寸法および真円度が良好であり、マーキングを揃えて圧入すると、良好な組立物が得られる。
【００９１】
図１６の（Ｂ）に示すように、部品Ａおよび部品Ｂは加工により断面が楕円に変形するが、マーキングに対して同じように変形する。すなわち、部品Ａおよび部品Ｂで、楕円の長辺側にマーキングがある。この場合、部品Ａの部品Ｂへの圧入は比較的容易に（特に大きな圧入圧にならずに）行えると考えられるが、組立物の外側の円筒部分は楕円のままであると考えられる。
【００９２】
図１６の（Ｃ）に示すように、部品Ａおよび部品Ｂは加工により断面が楕円に変形するが、マーキングに対して９０度異なる方向に変形する。すなわち、部品Ａではマーキングは楕円の長辺側であるが、部品Ｂではマーキングは短辺側である。この場合、部品Ａの部品Ｂへの圧入は困難になる（特に大きな圧入圧が必要になる）と考えられるが、組立物の外側の円筒部分は、部品Ａを圧入したことにより部品Ｂは外径部分が円形（円筒）に近づくように変形する可能性があると考えられる。
【００９３】
実施例１では状態変数としてこのような加工時の変形の影響を考慮していなかったが、上記のように部品Ａおよび部品Ｂの変形は組立にも影響すると考えられるので、以下に説明する実施例２では、部品の加工時の把持位置も状態変数とする。
【００９４】
さらに、実施例１では、圧入される部品Ａの円筒部分と部品Ｂの円筒穴部分の外径寸法狙い値および加工速度を状態変数としたが、部品Ｂの外側の円筒部分の加工条件も組立（圧入）に影響する可能性がある。そこで、実施例２では、部品Ｂの外側の円筒部分の加工条件（外径寸法の狙い値および加工速度）も状態変数とする。
【００９５】
図１０は、本発明の実施例２による、強化学習を適用した機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムを示す原理ブロック図である。実施例２の加工組立システム１００１は、実施例１の加工組立システム１０００と同様に、円筒部分を有する部品Ａを加工し、円筒穴を有する部品Ｂを加工し、部品Ａの円筒部分を部品Ｂの円筒穴に圧入するものである。以下、実施例１と実施例２で異なる点についてのみ説明する。
【００９６】
実施例２では、状態観測部１１の通信装置２２は、部品Ｂの外側の円筒部分の加工時の外径寸法の狙い値ｑおよびその部分の加工速度ｋも状態変数として取得し、学習部１２の学習器３２に状態変数として供給する。さらに、組立部５３は、部品Ａと部品Ｂのマーキングの角度差ｐを考慮して圧入を行うものとする。実施例２での状態変数は、部品Ａの外側の円筒部分の加工時の外径寸法の狙い値ａおよびその部分の加工速度ｂ、部品Ｂの円筒穴部分の内径寸法の狙い値ｃおよびその部分の加工速度ｄ、部品Ｂの外側の円筒部分外径寸法の狙い値ｑおよびその部分の加工速度ｋ、および組立時の部品Ａと部品Ｂのマーキングの角度差ｐである。
【００９７】
報酬計算部３１は、実施例１と同様に、組立物の外径部分の形状ｉ、加工時間ｇおよび組立データｅに基づいて報酬ｊを算出して出力する。学習器３２は、上記の状態変数ａ−ｄ，ｑ，ｋ，ｐおよびそれに対する報酬ｊに基づいて学習を行う。
【００９８】
続いて、機械学習装置１の学習アルゴリズムを教師あり学習とした例について説明する。
【００９９】
図１１は、本発明の実施例３による、教師あり学習を適用した機械学習装置を備える加工組立装置およびこの加工組立装置を備える加工組立システムを示す原理ブロック図である。実施例３の加工組立システム１００３は、実施例１の加工組立システム１０００と同様に、円筒部分を有する部品Ａを加工し、円筒穴を有する部品Ｂを加工し、部品Ａの円筒部分を部品Ｂの円筒穴に圧入するものである。以下、実施例１と実施例２で異なる点についてのみ説明する。
【０１００】
実施例３の加工組立システム１００３は、実施例１の加工組立システム１０００において、学習部１２の代わりに学習部６０を設け、さらに評価（ラベル）提供部７０を設けたものであり、意思決定部１３は機能が異なるが、加工組立装置５０および状態観測部１１は、実施例１のものと同じである。
【０１０１】
評価（ラベル）提供部７０は、実施例１の報酬計算部３１と同様のものでよく、状態観測部１１によって観測された組立物の外径部分の形状ｉ、加工時間ｇおよび組立データｅに基づいて報酬を計算する。具体的には、例えば、評価（ラベル）提供部７０は、組立物の外径部分の形状ｉ、加工時間ｇおよび組立データｅを適宜重み付けした上で、加算するか乗算するかまたはその両方により報酬ｊに相当するラベル付データｔを算出して出力する。
【０１０２】
誤差計算部６１は、状態観測部１１からの信号とともに、評価（ラベル）提供部７０からのラベル付きデータｔを受け取って学習モデルの誤差計算を行い、さらに、学習モデル更新部６２は、学習モデルの更新を行う。例えば、学習モデル更新部６２が部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータの少なくとも１つの変更を指示し、これに応じて加工組立装置５０が加工および組立を行い、得られた結果である組立物について状態変数ａ−ｄと共にラベル付データｔが得られる。誤差計算部６１は、これらのデータに基づいて学習モデルの誤差計算を行い、学習モデル更新部６２は、ラベル付データｔが向上するために、部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータをどのように変更する決定し、変更した部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを加工組立装置５０に指示する。以下、このような動作を繰り返すことで、学習部６０における学習が進み、良好な組立物が得られる部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータが分かる。
【０１０３】
意思決定部１３は、学習モデル更新部６２におけるパラメータの変更およびラベル付データｔの変化を監視し、学習が極限に近い状態まで進行したかを判定し、好適な部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定する。なお、学習してもラベル付データｔの下限を満たす部品Ａ加工プログラムおよび部品Ｂ加工プログラムのパラメータを決定できない場合も起こり得る。
【０１０４】
以上、実施例３による、教師あり学習を適用した機械学習装置を備える加工組立システムについて説明したが、加工組立装置５０および状態観測部１１を、実施例２のものと同じにすることも、さらに状態変数を増加させることも可能である。
【０１０５】
なお、本発明における機械学習装置１としては、上述した強化学習（例えば、Ｑ学習）または教師あり学習を適用したものに限定されず、様々な機械学習のアルゴリズムを適用することが可能である。
【０１０６】
さらに、上述した状態観測部１１、学習部１２、６０、評価（ラベル）提供部７０および意思決定部１３は、例えばソフトウェアプログラム形式で構築されてもよく、あるいは各種電子回路とソフトウェアプログラムとの組み合わせで構築されてもよい。例えばこれらをソフトウェアプログラム形式で構築する場合は、加工組立装置５０内にある演算処理装置をこのソフトウェアプログラムに従って動作させたり、クラウドサーバ上においてこのソフトウェアプログラムを動作させることで、上述の各部の機能を実現することができる。またあるいは、状態観測部１１および学習部１２、６０を備える機械学習装置１を、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路として実現してもよい。またあるいは、状態観測部１１および学習部１２、６０を備える機械学習装置１のみならず意思決定部１３等も含めた形で、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路を実現してもよい。
【符号の説明】
【０１０７】
１    機械学習装置
１１    状態観測部
１２、６０    学習部
１３    意思決定部
２１    寸法検査装置
３１    報酬計算部
３２    学習器
６１    誤差計算部
６２    学習モデル更新部
７０ 評価（ラベル）提供部
【図１】
0006625868.tif 000004
【図２】
0006625868.tif 000005
【図３】
0006625868.tif 000006
【図４】
0006625868.tif 000007
【図５】
0006625868.tif 000008
【図６】
0006625868.tif 000009
【図７】
0006625868.tif 000010
【図８】
0006625868.tif 000011
【図９】
0006625868.tif 000012
【図１０】
0006625868.tif 000013
【図１１】
0006625868.tif 000014
【図１２】
0006625868.tif 000015
【図１３】
0006625868.tif 000016
【図１４】
0006625868.tif 000017
【図１５】
0006625868.tif 000018
【図１６】
0006625868.tif 000019