(57)【特許請求の範囲】
【請求項１】
モータを駆動する電動機制御部が検出したモータ回転数、トルク、電流、電圧の各値を観測する状態観測部と、
前記状態観測部が観測したモータ回転数、トルク、電流、電圧の各値からモータ出力を計算するモータ出力計算部と、
前記モータ出力に基づいて報酬を計算する報酬計算部と、
前記モータ回転数、トルク、電流、電圧の各値及び前記報酬に基づいて行動価値テーブルを更新する学習部と、
前記行動価値テーブルに基づいて最適な前記モータ回転数、トルク、電流、電圧の各値を決定する意思決定部と、を備え、
前記報酬計算部は、前記モータ出力がモータの目標出力の規定範囲を超えて大きいか又は小さいときにマイナスの報酬を与え、モータの目標出力の規定範囲内であるときにプラスの報酬を与え、
前記学習部が、前記状態観測部で観測された状態変数を多層構造で演算し、前記行動価値テーブルをリアルタイムで更新する、
ことを特徴とする機械学習装置。
【請求項２】
請求項１に記載の機械学習装置と、
前記電動機制御部と、
を具備する電動機制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習装置及び電動機制御装置に関し、特に、パラメータを自動調整する機能を有する機械学習装置及び電動機制御装置に関する。
【背景技術】
【０００２】
モータは、所望の出力特性が得られるように、モータ制御装置における種々の駆動パラメータにより制御される。従来のモータ制御装置においては、所望の出力特性に対して、手動によってモータの駆動パラメータの調整が行われていた（例えば、特許文献１）。
【０００３】
しかしながら、手動による場合には、駆動パラメータの調整に多大な工数がかかるという問題があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２７０５９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、機械学習によって、所望の出力特性に対して、モータの駆動パラメータを自動調整することが可能な機械学習装置及び電動機制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施例に係る機械学習装置は、モータを駆動する電動機制御部が検出したモータ回転数、トルク、電流、電圧の各値を観測する状態観測部と、状態観測部が観測したモータ回転数、トルク、電流、電圧の各値からモータ出力を計算するモータ出力計算部と、モータ出力に基づいて報酬を計算する報酬計算部と、モータ回転数、トルク、電流、電圧の各値に基づいて行動価値テーブルを更新する学習部と、を有することを特徴とする。
【０００７】
本発明の一実施例に係る電動機制御装置は、機械学習装置と、電動機制御部と、を具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、機械学習によって、所望の出力特性に対して、モータの駆動パラメータを自動調整することが可能な機械学習装置及び電動機制御装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例に係る機械学習装置の構成図である。
【図２】本発明の実施例に係る機械学習装置によるパラメータの調整前後のモータ出力特性を示すグラフである。
【図３】本発明の実施例に係るモータ駆動装置の機械学習器において用いられるニューロンのモデルを示す模式図である。
【図４】本発明の実施例に係るモータ駆動装置の機械学習器において用いられる３層のニューラルネットワークモデルを示す模式図である。
【図５】本発明の実施例に係る機械学習装置の動作手順を説明するためのフローチャートである。
【図６】本発明の実施例に係る機械学習装置によるパラメータの調整前後のモータ出力特性を示す表である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明に係る機械学習装置及び電動機制御装置について説明する。
【００１１】
図１は、本発明の実施例に係る機械学習装置の構成図である。本発明の実施例に係る機械学習装置１０は、状態観測部１と、モータ出力計算部２と、報酬計算部３と、学習部４と、を備える。
【００１２】
状態観測部１は、モータ（図示せず）を駆動する電動機制御部２０が検出したモータ回転数、トルク、電流、電圧の各値を観測する。ただし、これらのパラメータは一例であって他のパラメータを観測するようにしてもよい。
【００１３】
モータ出力計算部２は、状態観測部１が観測したモータ回転数、トルク、電流、電圧の各値からモータ出力を計算する。モータ出力Ｗ［Ｗ］は、トルクＴ［Ｎ・ｍ]及び回転速度Ｎ［ｍｉｎ-1］から下記の式で算出できる。
Ｗ＝（２×π×Ｔ×Ｎ）／６０
【００１４】
報酬計算部３は、モータ出力に基づいて報酬を計算する。報酬の計算方法については後述する。
【００１５】
学習部４は、モータ回転数、トルク、電流、電圧の各値に基づいて行動価値テーブルを更新する。行動価値テーブルの更新方法については後述する。
【００１６】
機械学習装置１０は、行動価値テーブルに基づいて最適なパラメータを決定する意思決定部５をさらに備えることが好ましい。
【００１７】
報酬の計算方法について説明する。一例として、報酬計算部３は、モータ出力がモータの目標出力の規定範囲を超えて大きいか又は小さいときにマイナスの報酬を与え、モータの目標出力の規定範囲内であるときにプラスの報酬を与えるようにしてもよい。
【００１８】
例えば、図２に示すように、モータ回転数が１０００［ｍｉｎ-1］のときのモータ出力［ｋＷ］が目標出力の規定範囲を超えて大き過ぎるものと仮定する。この場合は、報酬計算部３はマイナス報酬を与える。また、モータ回転数が２０００［ｍｉｎ-1］のときのモータ出力［ｋＷ］が目標出力の規定範囲を超えて小さ過ぎるものと仮定する。この場合も、報酬計算部３はマイナス報酬を与える。一方、モータ回転数が３０００［ｍｉｎ-1］のときのモータ出力［ｋＷ］が適切であったものとする。この場合は、モータ出力が目標出力の規定範囲内であるので、報酬計算部３はプラス報酬を与える。
【００１９】
学習部４は、状態観測部１で観測された状態変数を多層構造で演算し、行動価値テーブルをリアルタイムで更新することが好ましい。ここで、状態変数を多層構造で演算する方法として、例えば、図４に示すような多層ニューラルネットワークを用いることができる。
【００２０】
ここで、図１に示される機械学習器１０について詳細に説明する。機械学習器１０は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。その手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、及び「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。
【００２１】
「教師あり学習」は、ある入力と結果（ラベル）のデータの組を大量に学習装置（機械学習器）に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、即ち、その関係性を帰納的に獲得することができる。本実施形態においては、モータ回転数（＋すべり）、モータトルク、モータ電流、及びモータ電圧の状態観測部１での観測結果、並びに報酬計算部３での報酬に基づいて、パラメータの変更設定に用いることが出来る。上記学習は、後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【００２２】
「教師なし学習」とは、入力データのみを大量に学習装置（機械学習器）に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。それらのデータセットにある特徴を似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することができる。また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。本実施形態においては、実際にファンモータを動作させなくても取得することが出来るデータを教師なし学習で利用し、学習を効率的に行うことが出来る。
【００２３】
強化学習の問題を以下のように設定する。
・電動機制御部は環境の状態を観測し、行動を決定する。
・環境は何らかの規則に従って変化し、さらに自分の行動が、環境に変化を与えることもある。
・行動するたびに報酬信号が帰ってくる。
・最大化したいのは将来にわたっての（割引）報酬の合計である。
・行動が引き起こす結果を全く知らない、または不完全にしか知らない状態から学習はスタートする。電動機制御部はモータを実際に動作して初めて、その結果をデータとして得ることが出来る。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００２４】
「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、即ち、将来的に得られる報酬を最大にするために学習する方法である。このことは、本実施形態において、未来に影響を及ぼすような行動を獲得できることを表している。例えば、Ｑ学習の場合で説明を続けるが、それに限るものではない。
【００２５】
Ｑ学習は、或る環境状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法である。つまり、或る状態ｓのとき、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェント（行動主体）は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して報酬が与えられる。それにより、エージェントはより良い行動の選択、すなわち正しい価値Ｑ（ｓ，ａ）を学習していく。
【００２６】
行動の結果、将来にわたって得られる報酬の合計を最大化したい。そこで、最終的に、Ｑ（ｓ，ａ）＝Ｅ［Σγtｒt］（報酬の割引期待値。γ：割引率）となるようにすることを目指す（期待値は最適な行動に従って状態変化したときについてとる。もちろん、それは分かっていないので、探索しながら学習しなければならない）。そのような価値Ｑ（ｓ，ａ）の更新式は、例えば次式により表すことができる。
【００２７】
【数１】
0006457369.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）が掛けられる。これにより、ニューロンは、次の式により表現される出力ｙを出力する。なお、入力ｘ、出力ｙ、及び重みｗは、全てベクトルである。
【数２】
0006457369.tif 000003
ここで、θはバイアスであり、ｆkは活性化関数である。
【００３３】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図４を参照して説明する。図４は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【００３４】
図４に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００３５】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みは、まとめてＷ１と標記されている。
【００３６】
ニューロンＮ１１〜Ｎ１３は、それぞれ、Ｚ１１〜Ｚ１３を出力する。これらのＺ１１〜Ｚ１３はまとめて特徴ベクトルＺ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルＺ１は、重みＷ１と重みＷ２との間の特徴ベクトルである。
【００３７】
Ｚ１１〜Ｚ１３は、２つのニューロンＮ２１，Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ２と標記されている。
【００３８】
ニューロンＮ２１，Ｎ２２は、それぞれ、Ｚ２１，Ｚ２２を出力する。これらは、まとめて特徴ベクトルＺ２と標記されている。この特徴ベクトルＺ２は、重みＷ２と重みＷ３との間の特徴ベクトルである。
【００３９】
特徴ベクトルＺ２１，Ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ３と標記されている。
【００４０】
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００４１】
ニューラルネットワークの動作には、学習モードと価値予測モードとがあり、学習モードにおいて学習データセットを用いて重みＷを学習し、そのパラメータを用いて予測モードにおいてファンモータの行動判断を行う（便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能である）。
【００４２】
予測モードで実際にモータを動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）こともできる。また、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００４３】
重みＷ１〜Ｗ３は、誤差逆伝搬法（バックプロパゲーション）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００４４】
このようなニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【００４５】
そこで、本実施形態の機械学習器１０は、上述のＱ学習を実施すべく、図１に示されるように状態観測部１、学習部４、及び意思決定部５を備えている。但し、本発明に適用される機械学習方法は、Ｑ学習に限定されるものではない。例えば、教師あり学習を適用する場合において、価値関数は学習モデル、報酬は誤差にそれぞれ対応する。
【００４６】
図１に示すように、電動機制御部２０における状態には、行動で間接的に変化する状態と、行動で直接的に変化する状態とがある。行動で間接的に変化する状態には、モータ回転数（＋すべり）、モータトルク、モータ電流、モータ電圧が含まれる。行動で直接的に変化する状態には、モータ出力が含まれる。
【００４７】
学習部４は更新式及び報酬に基づいて、行動価値テーブルの中から現在の状態変数及び取り得る行動に対応する行動価値を更新する。
【００４８】
機械学習装置１０がネットワークを介して電動機制御部２０に接続されており、状態観測部１は、ネットワークを介して、現在の状態変数を取得するように構成してもよい。また、機械学習装置１０は、クラウドサーバに存在することが好ましい。
【００４９】
機械学習装置１０は、モータを制御する電動機制御装置に内蔵されていてもよい。即ち、電動機制御装置が、機械学習装置１０と、電動機制御部２０と、を具備するようにしてもよい。
【００５０】
また、図１に示した例では、自己の機械学習装置の学習部で更新された行動価値テーブルを用いて自己の行動価値テーブルを更新する例を示したが、このような例には限られない。即ち、自己の機械学習装置とは別の他の機械学習装置の学習部で更新された行動価値テーブルを用いて自己の行動価値テーブルを更新するようにしてもよい。
【００５１】
次に、本発明の実施例に係る機械学習装置の動作について説明する。図５に本発明の実施例に係る機械学習装置の動作手順を説明するためのフローチャートを示す。
【００５２】
まず、ステップＳ１０１において、電動機（モータ）の各種状態を状態観測部１で観測する。即ち、状態観測部１は、電動機（モータ）を駆動する電動機制御部２０が検出したモータ回転数、トルク、電流、電圧の各値を観測する。
【００５３】
次に、ステップＳ１０２において、報酬計算部３が観測した状態から報酬を計算する。例えば、報酬計算部３は、モータ出力がモータの目標出力の規定範囲を超えて大きいか又は小さいときにマイナスの報酬を与え、モータの目標出力の規定範囲内であるときにプラスの報酬を与える。
【００５４】
次に、ステップＳ１０３において、学習部４が観測した状態と報酬から行動価値を学習する。
【００５５】
次に、ステップＳ１０４において、状態及び行動価値に基づいて、意思決定部５で最適なパラメータ（行動）を決定する。例えば、所望のモータ出力特性を得るための駆動パラメータ（モータ回転数、トルク、電流、電圧の各値）を決定する。
【００５６】
次に、ステップＳ１０５において、パラメータ（行動）により状態が変化する。即ち、電動機制御部２０が、所望のモータ出力を実現する。
【００５７】
以上のようにして、行動で直接的に変化する状態であるモータ出力が目標値に到達する。本発明により駆動パラメータの調整例を図６（ａ）及び（ｂ）に示す。図６（ａ）及び（ｂ）は、それぞれ、本発明の実施例に係る機械学習装置によるパラメータの調整前後のモータ出力特性を示す表である。図６（ａ）は、特定のパラメータの値を調整前のパラメータである１００（標準設定）にした場合の回転数、トルク、電圧、電流、すべり、入力、出力、損失、ＬＭ、効率、力率、電源電圧、温度の各値を示す。図６（ｂ）は、特定のパラメータの値を１０５に調整した場合の上記各値を示す。
【００５８】
図６（ａ）及び（ｂ）からわかるように、特定のパラメータを１００から１０５に変化させることにより、出力を４４．３９［ｋＷ］から４１．２８［ｋＷ］に調整できる。本発明によれば、このような調整を機械学習によって自動で行うことができる。
【００５９】
以上説明したように、本発明の実施例に係る機械学習装置及び電動機制御装置によれば、機械学習によって、所望の出力特性に対して、モータの駆動パラメータを自動調整することができ、パラメータ調整の工数を削減することができる。
【符号の説明】
【００６０】
１    状態観測部
２    モータ出力計算部
３    報酬計算部
４    学習部
５    意思決定部
１０    機械学習装置
２０    電動機制御部
【図１】
0006457369.tif 000004
【図２】
0006457369.tif 000005
【図３】
0006457369.tif 000006
【図４】
0006457369.tif 000007
【図５】
0006457369.tif 000008
【図６】
0006457369.tif 000009