IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通テン株式会社の特許一覧

特許7325270制御プログラム、制御方法および制御装置
<>
  • 特許-制御プログラム、制御方法および制御装置 図1A
  • 特許-制御プログラム、制御方法および制御装置 図1B
  • 特許-制御プログラム、制御方法および制御装置 図2
  • 特許-制御プログラム、制御方法および制御装置 図3
  • 特許-制御プログラム、制御方法および制御装置 図4A
  • 特許-制御プログラム、制御方法および制御装置 図4B
  • 特許-制御プログラム、制御方法および制御装置 図5
  • 特許-制御プログラム、制御方法および制御装置 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-03
(45)【発行日】2023-08-14
(54)【発明の名称】制御プログラム、制御方法および制御装置
(51)【国際特許分類】
   G06N 3/082 20230101AFI20230804BHJP
【FI】
G06N3/082
【請求項の数】 6
(21)【出願番号】P 2019159963
(22)【出願日】2019-09-02
(65)【公開番号】P2021039522
(43)【公開日】2021-03-11
【審査請求日】2022-03-31
(73)【特許権者】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】飯野 賢吾
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開平11-039274(JP,A)
【文献】特開2018-156451(JP,A)
【文献】特開平06-149768(JP,A)
【文献】米国特許出願公開第2019/0108436(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
コンピュータに実行させる制御プログラムであって、
記憶部に記憶されたニューラルネットワークによって構成されるモデルのパラメータのうち、増減させるノードの重みパラメータと、バイアスパラメータとを変更してニューラルネットワークのノード数を疑似的に変更す
制御プログラム。
【請求項2】
記ノード数の切り替えが必要か否かを判定し、判定結果に応じた前記ノード数を切り替える
請求項1に記載の制御プログラム。
【請求項3】
記モデルに要求される精度に応じて、前記ノード数の切替が必要か判定する
請求項2に記載の制御プログラム。
【請求項4】
前記ニューラルネットワークを構成する少なくとも1つの層を削減する場合、前記層の各出力経路の重みパラメータを1に設定し、中間層の各ノードのバイアスパラメータを0に設定する
請求項1~3のいずれか1つに記載の制御プログラム。
【請求項5】
制御装置を制御する制御方法であって、
記憶部に記憶されたニューラルネットワークによって構成されるモデルのパラメータのうち、増減させるノードの重みパラメータと、バイアスパラメータとを変更してニューラルネットワークのノード数を疑似的に変更す
御方法。
【請求項6】
制御装置の制御部は、
記憶部に記憶されたニューラルネットワークによって構成されるモデルのパラメータのうち、増減させるノードの重みパラメータと、バイアスパラメータとを変更してニューラルネットワークのノード数を疑似的に変更する
制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラム、制御方法および制御装置に関する。
【背景技術】
【0002】
従来、機械学習によって生成された複数のモデルを用いて、音声認識を行う音声認識装置がある。かかる音声認識装置では、複数のモデルから得られる出力データのうち、最も適合度の高いデータを音声認識結果と見做す(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平6-67698号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、複数のモデルをメモリに記憶しておく必要があるため、メモリ容量の大きい記憶媒体が必要となる。
【0005】
本発明は、上記に鑑みてなされたものであって、メモリ容量を抑えつつ、複数のモデルを用いることができる制御装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、実施形態に係る制御装置は、記憶部と、切替部とを備える。前記記憶部は、ニューラルネットワークによって構成されるモデルを記憶する。前記切替部は、前記記憶部に記憶された前記モデルのパラメータを変更することで、ニューラルネットワークのノード数を疑似的に切り替える。
【発明の効果】
【0007】
本発明によれば、メモリ容量を抑えつつ、複数のモデルを用いることができる。
【図面の簡単な説明】
【0008】
図1A図1Aは、制御装置の搭載例を示す図である。
図1B図1Bは、制御方法の概要を示す図である。
図2図2は、制御装置のブロック図である。
図3図3は、パラメータDBの一例を示す図である。
図4A図4Aは、切替部が切り替えるパラメータの一例を示す図(その1)である。
図4B図4Bは、切替部が切り替えるパラメータの一例を示す図(その2)である。
図5図5は、切替部が切り替えるパラメータの一例を示す図(その3)である。
図6図6は、制御装置が実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、実施形態に係る制御装置および制御方法について説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【0010】
まず、図1Aおよび図1Bを用いて、実施形態に係る制御装置および制御方法の概要について説明する。図1Aは、制御装置の搭載例を示す図である。図1Bは、制御方法の概要を示す図である。なお、かかる制御方法は、図1Aに示す制御装置1によって実行される。
【0011】
図1Aに示すように、実施形態に係る制御装置1は、車両100に搭載される。制御装置1は、車両100の車載センサから入力されるセンサ情報に基づく入力データDiをモデルMに入力することで出力データDoを生成する。ここで、モデルMとは、入力層、中間層(隠れ層)、および出力層と呼ばれるレイヤを有し、入力層から入力された入力データDiを各接続経路を伝播させながら出力層まで伝達する。なお、各層は、それぞれノードNによって構成される。
【0012】
この際、各接続経路に設定されたパラメータに基づいた演算処理を実行することで、入力データDiに対応する出力データDoを生成する。
【0013】
ところで、複数のモデルを記憶しておき、入力データ等に応じて、複数のモデルを切り替えて用いる場合が想定される。この場合、制御装置は、複数のモデルを予め記憶しておく必要があり、メモリ容量の圧迫を招く。また、上述のように、複数のモデルを車両に搭載する場合、それぞれのモデルについて、品質保証などの検査を行う必要があり、コストの増大を招くおそれがある。
【0014】
そこで、実施形態に係る制御方法では、モデルMのニューラルネットワーク構造を切り替えることで、1つのモデルMを複数のモデルMとして用いることとした。
【0015】
具体的には、図1Bに示すように、実施形態に係る制御方法では、大規模モデルM1と、大規模モデルM1よりもノード数が少ない小規模モデルM2とを切り替えることが可能である。
【0016】
より詳細には、実施形態に係る制御方法では、モデルMのパラメータを変更することで、大規模モデルM1と小規模モデルM2とを切り替えることが可能である。ここで、パラメータには、重みパラメータや、バイアスパラメータが含まれる。
【0017】
図1Bに示す例において、小規模モデルM2が、大規模モデルM1に比べて、中間層Lが少ない場合を示す。この場合、中間層Lの各ノードの出力経路の重みパラメータを「1」とし、各ノードのバイアスパラメータを「0」とすることで、実質的に中間層Lを削減したモデルMとすることができる。
【0018】
また、小規模モデルM2から大規模モデルM1へ切り替える場合には、上記の重みパラメータおよびバイアスパラメータをそれぞれ大規模モデルM1用に設定すればよい。
【0019】
このように、実施形態に係る制御方法では、1つのモデルMを大規模モデルM1と小規模モデルM2とで切り替えることが可能である。したがって、実施形態に係る制御方法では、1つのモデルMを記憶しておけばよいので、メモリ容量を抑えつつ、複数のモデルMを用いることができる。
【0020】
なお、上述の例では、大規模モデルM1と、1つの小規模モデルM2との間でモデルMを切り替える場合について示したが、これに限定されるものではなく、小規模モデルM2は2つ以上であってもよい。また、上述した実施形態では、中間層Lを増減させる場合について示したが、これに限定されるものではない。すなわち、任意のノードNを増減させることが可能である。
【0021】
次に、図2を用いて、実施形態に係る制御装置1の構成例について説明する。図2は、制御装置1のブロック図である。なお、図2には、車載センサ類101を併せて示す。車載センサ類101は、例えば、車両100の内燃機関(エンジン)の状態を検出するセンサ類である。制御装置1は、車載センサ類101から入力されるセンサ情報をモデルMに入力することで、エンジンの失火などといった状態を判定することができる。
【0022】
図2に示すように、制御装置1は、記憶部2と、制御部3とを備える。記憶部2は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0023】
また、図2に示すように、記憶部2は、モデルDB21と、パラメータDB22とを備える。モデルDB21は、モデルMを記憶するデータベースである。モデルDB21には、上述の大規模モデルM1が記憶される。
【0024】
パラメータDB22は、モデルMに適用するパラメータを記憶するデータベースである。図3は、パラメータDB22の一例を示す図である。図3に示すように、パラメータDB22には、「パラメータID」、「適用条件」、「重みパラメータ」、「バイアスパラメータ」等が互いに関連付けられて記憶される。
【0025】
パラメータIDは、パラメータを識別する識別子であり、大規模モデルM1および小規模モデルM2を識別する識別子であるとも言える。適用条件は、対応するパラメータを適用する条件を示す。また、重みパラメータおよびバイアスパラメータは、上述のパラメータの一例である。また、これらパラメータは、機械学習によって導出される値である。なお、図3に示す例では、重みパラメータおよびバイアスパラメータを「C01」や「D01」のように模式的に示したが、「C01」や「D01」には具体的な情報が記載されているものとする。
【0026】
また、「C01」や「D01」には、モデルMのノード数に応じた個数のパラメータが記載される。詳細については後述するが、大規模モデルM1から小規模モデルM2へ切り替える場合に、削減するノードの重みパラメータおよびバイアスパラメータは「0」または「1」である。
【0027】
図2の説明に戻り、制御部3について説明する。制御部3は、コントローラであり、例えば、CPUやMPU等によって、記憶部2に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部3は、例えば、ASICやFPGA等の集積回路により実現することができる。
【0028】
図2に示すように、制御部3は、取得部31と、判定部32と、切替部33と、演算部34とを備える。取得部31は、車載センサ類101からセンサ情報を取得する。取得部31によって取得されたセンサ情報は、判定部32へ通知される。
【0029】
判定部32は、モデルMのノード数を切り替えるか否かを所定条件に基づいて判定する。具体的には、判定部32は、パラメータDB22を参照し、どの適用条件に合致するかを判定する。
【0030】
ここで、適用条件の一例として、モデルMに要求される精度が挙げられる。すなわち、かかる精度が高い場合、大規模モデルM1の方が好ましく、精度が低い場合には小規模モデルM2であっても対応可能である。
【0031】
判定部32は、例えば、不図示の上位装置から要求される精度に基づいて、どの適用条件に合致するかを判定することができる。そして、判定部32は、判定結果となるパラメータIDを切替部33へ通知する。
【0032】
なお、上記の所定条件は、モデルMに要求される精度に限られず、例えば、エンジン回転数など、センサ情報から読み取れるものであってもよいし、車両100の現在の走行位置などその他の情報から読み取れるものであってもよい。すなわち、所定条件については、任意に設定することが可能である。
【0033】
切替部33は、記憶部2に記憶されたモデルMのパラメータを変更することで、ニューラルネットワークのノード数を疑似的に切り替える。ここで、切替部33は、上記の判定部32による判定結果に基づいて、パラメータを変更することで、モデルMのノード数を調節する。これにより、現在の要求に応じたノード数のモデルMを設定することが可能となる。
【0034】
具体的には、切替部33は、判定部32から通知されたパラメータIDの重みパラメータおよびバイアスパラメータをモデルMに設定することで、モデルMのノード数を疑似的に切り替える。
【0035】
図4A図4Bおよび図5は、切替部33が切り替えるパラメータの具体例を示す図である。まず、図4Aおよび図4Bを用いて、中間層L2を疑似的に削減する場合について説明する。なお、図4Aに示す「A1」、「B1」および「C1」などは、対応するノードNのバイアスパラメータを示し、「a11」や「b11」などは、対応するノードN間の接続経路における重みパラメータを示すものとする。また、図4Aでは、活性化関数がReLUであるものとして説明する。
【0036】
図4Aに示すように、ノードN21~ノードN23から成る中間層L2を疑似的に削減する場合、ノードN21~N23のバイアスパラメータB1~B3を切り替えるとともに、ノードN21~N23の出力経路における重みパラメータb11~b33を切り替える。
【0037】
具体的には、切替部33は、ノードN21~N23のバイアスパラメータB1~B3を全て「0」へ切り替え、重みパラメータb11、b22、b33を全て「1」とし、その他の重みパラメータ(b12、b13、b21、b23、b31、b32)を全て「0」へ切り替える。
【0038】
つまり、切替部33は、削減するノードNのバイアスパラメータを「0」に切り替えるとともに、かかるノードNから図中水平に延びるノードNへの出力経路の重みパラメータを「1」に、他の出力経路の重みパラメータを「0」に切り替える。
【0039】
これにより、図4Bに示すように、中間層L2のノードN21~N23が疑似的に削減され、ノードN11~N13が、それぞれノードN31~N33と重みパラメータa11~a33で接続され状態に実質的に切り替えることが可能となる。
【0040】
つまり、中間層L2に入力されるデータは、中間層L2において変更されることなく、次のノードN31~N33へ入力されることになる。言い換えれば、中間層L2について、実質的に意味を持たなくさせることができる。
【0041】
このように、切替部33は、モデルMの構造を層単位で切り替えることで、モデルMを容易に縮小することが可能となる。
【0042】
次に、図5を用いて、任意のノードNを疑似的に削減する場合について説明する。なお、ここでは、活性化関数がReLUまたはTanhであるものとして説明する。
【0043】
切替部33は、図5に示す下段のノード列Ncを疑似的に削減する場合、ノード列Ncに関するバイアスパラメータおよび重みパラメータをそれぞれ「0」とする。
【0044】
具体的には、切替部33は、ノード列Ncを構成するノードN13、ノードN23およびノードN33のバイアスパラメータA3、B3およびC3を全て「0」にし、かつ、ノードN13、ノードN23およびノードN33に関する重みパラメータを全て「0」へ切り替える。
【0045】
ここで、ノードN13、ノードN23およびノードN33に関する重みパラメータとは、ノードN13、ノードN23およびノードN33に対する入力経路の重みパラメータ(a13、a23、a33、b13、b23、b33)と、ノードN13、ノードN23およびノードN33の出力経路の重みパラメータ(a31、a32、a33、b31、b32、b33)の双方を示す。
【0046】
すなわち、ノードN13、ノードN23およびノードN33には、全て「0」としてデータが入力されるとともに、ノードN13、ノードN23およびノードN33から「0」として、次の各ノードNへ出力されることになる。なお、ノードN13、ノードN23およびノードN33から出力されるデータが「0」であればよいので、バイアスパラメータおよび入力経路の重みパラメータを保持した状態で、出力経路の重みパラメータのみを切り替えることにしてもよい。
【0047】
なお、ここでは、ノード列Ncを疑似的に削減する場合について説明したが、任意のノードNを1つのノード単位で削減することも可能である。なお、ここでは、疑似的に削減したノードNを元に戻す場合は、重みパラメタ―およびバイアスパラメータをそれぞれ戻すことになる。
【0048】
図2の説明に戻り、演算部34について説明する。演算部34は、センサ情報に基づく入力データDiをモデルMに入力することで出力データDoを生成する。ここで、上述のように、演算部34が演算処理に用いるモデルMは、切替部33によってノード数が疑似的に変更される。
【0049】
すなわち、演算部34は、大規模モデルM1または小規模モデルM2のいずれかを用いて、演算処理を行うことになる。
【0050】
次に、図6を用いて、実施形態に係る制御装置1が実行する処理手順について説明する。図6は、制御装置1が実行する処理手順を示すフローチャートである。なお、以下に示す処理手順は、制御部3によってセンサ情報の取得毎に実行される。
【0051】
図6に示すように、制御装置1は、まず、センサ情報を取得すると(ステップS101)、高精度が要求されているか否かを判定する(ステップS102)。ここで、制御装置1は、高精度が要求されていると判定した場合(ステップS102,Yes)、モデルMに大規模モデルM1用のパラメータを設定する(ステップS103)。
【0052】
その後、制御装置1は、大規模モデルM1を用いて演算処理を行い(ステップS104)、処理を終了する。また、制御装置1は、ステップS102の判定処理において、高精度が求められていないと判定した場合(ステップS102,No)、モデルMに小規模モデルM2用のパラメータを設定する(ステップS105)。
【0053】
その後、制御装置1は、小規模モデルM2を用いて演算処理を行い(ステップS104)、処理を終了する。
【0054】
上述したように、実施形態に係る制御装置1は、記憶部2と、切替部33とを備える。記憶部2は、ニューラルネットワークによって構成されるモデルMを記憶する。切替部33は、記憶部2に記憶されたモデルMのパラメータを変更することで、ニューラルネットワークのノード数を疑似的に切り替える。したがって、実施形態に係る制御装置1によれば、メモリ容量を抑えつつ、複数のモデルを用いることができる。
【0055】
ところで、上述した実施形態では、大規模モデルM1と小規模モデルM2とが精度の異なるモデルMである場合について説明したが、これに限定されるものではない。すなわち、大規模モデルM1と小規模モデルM2とは、使用目的が全く異なるモデルMであってもよい。すなわち、例えば、大規模モデルM1で、ノッキングを判定し、小規模モデルM2でエンジンの故障を判定することにしてもよい。
【0056】
また、上述した実施形態では、制御装置1が車両100に搭載される場合について説明したが、これに限定されるものではない。すなわち、本発明は、パーソナルコンピュータをはじめとする種々の装置に適用することが可能である。
【0057】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【0058】
1 制御装置
31 取得部
32 判定部
33 切替部
34 演算部
M モデル
図1A
図1B
図2
図3
図4A
図4B
図5
図6