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

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

▶ 日本電信電話株式会社の特許一覧

特許7586191処理方法、処理システム及び処理プログラム
<>
  • 特許-処理方法、処理システム及び処理プログラム 図1
  • 特許-処理方法、処理システム及び処理プログラム 図2
  • 特許-処理方法、処理システム及び処理プログラム 図3
  • 特許-処理方法、処理システム及び処理プログラム 図4
  • 特許-処理方法、処理システム及び処理プログラム 図5
  • 特許-処理方法、処理システム及び処理プログラム 図6
  • 特許-処理方法、処理システム及び処理プログラム 図7
  • 特許-処理方法、処理システム及び処理プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】処理方法、処理システム及び処理プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241112BHJP
   G06N 3/098 20230101ALI20241112BHJP
   G16Y 40/30 20200101ALI20241112BHJP
【FI】
G06N20/00
G06N3/098
G16Y40/30
【請求項の数】 3
(21)【出願番号】P 2022564857
(86)(22)【出願日】2020-11-24
(86)【国際出願番号】 JP2020043686
(87)【国際公開番号】W WO2022113175
(87)【国際公開日】2022-06-02
【審査請求日】2023-03-15
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】史 旭
(72)【発明者】
【氏名】榎本 昇平
(72)【発明者】
【氏名】江田 毅晴
(72)【発明者】
【氏名】坂本 啓
【審査官】大倉 崚吾
(56)【参考文献】
【文献】特開2018-010475(JP,A)
【文献】特開2020-024534(JP,A)
【文献】特開2018-045369(JP,A)
【文献】榎本昇平 ほか,"モデルカスケードによる深層学習推論の高速化",電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2020年03月09日,Vol. 119,No. 481,p. 203-208,PRMU2019-98,ISSN 2432-6380
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G16Y 40/30
(57)【特許請求の範囲】
【請求項1】
エッジ装置において第1の推論を行い、サーバ装置において第2の推論を行う処理システムが実行する処理方法であって、
前記エッジ装置と前記サーバ装置との少なくとも一方における、負荷の変動または推論精度の低下に基づいて、前記エッジ装置と前記サーバ装置との少なくとも一方において、推論を行う対象データ群の傾向が変化したか否かを判定する判定工程と、
前記判定工程において前記対象データ群の傾向が変化したと判定された場合、前記第1の推論を行う第1のモデルと前記第2の推論を行う第2のモデルとのうち少なくともいずれか一方の再学習を実行する再学習工程と、
前記対象データ群のうち、前記第2の推論において推論が実行された対象データに、その対象データの前記第2の推論による推論結果をラベルとして対応付けたデータを、前記第1のモデルに対するエッジ用再学習データとして生成する生成工程と、
前記対象データ群のうち、前記第2の推論が実行された対象データに、該対象データの前記第2の推論における推論結果への修正の入力を受け付け、前記第2の推論が実行された対象データに、該対象データの前記第2の推論における推論結果にラベル修正が加えられた修正済み推論結果を対応付けたデータを、前記第2のモデルに対するクラウド用再学習データとして生成する修正工程と、
を含み、
前記判定工程は、前記サーバ装置における処理率が設定値から増加した場合、前記第1のモデルの推論精度が所定精度よりも低下した場合、または、保持されている前記エッジ用再学習データがバッチ量に達した場合に、前記第1のモデルの再学習の実行を判定し、
前記判定工程は、前記第2の推論における推論結果に対する修正率が所定率以上となった場合、前記第2のモデルの推論精度が所定精度よりも低下した場合、または、保持されている前記クラウド用再学習データがバッチ量に達した場合に、前記第2のモデルの再学習の実行を判定することを特徴とする処理方法。
【請求項2】
エッジ装置において第1の推論を行い、サーバ装置において第2の推論を行う処理システムであって、
前記エッジ装置と前記サーバ装置との少なくとも一方における、負荷の変動または推論精度の低下に基づいて、前記エッジ装置と前記サーバ装置との少なくとも一方において、推論を行う対象データ群の傾向が変化したか否かを判定する判定部と、
前記判定部において前記対象データ群の傾向が変化したと判定された場合、前記第1の推論を行う第1のモデルと前記第2の推論を行う第2のモデルとのうち少なくともいずれか一方の再学習を実行する再学習部と、
前記対象データ群のうち、前記第2の推論において推論が実行された対象データに、その対象データの前記第2の推論による推論結果をラベルとして対応付けたデータを、前記第1のモデルに対するエッジ用再学習データとして生成する生成部と、
前記対象データ群のうち、前記第2の推論が実行された対象データに、該対象データの前記第2の推論における推論結果への修正の入力を受け付け、前記第2の推論が実行された対象データに、該対象データの前記第2の推論における推論結果にラベル修正が加えられた修正済み推論結果を対応付けたデータを、前記第2のモデルに対するクラウド用再学習データとして生成する修正部と、
を有し、
前記判定部は、前記サーバ装置における処理率が設定値から増加した場合、前記第1のモデルの推論精度が所定精度よりも低下した場合、または、保持されている前記エッジ用再学習データがバッチ量に達した場合に、前記第1のモデルの再学習の実行を判定し、
前記判定部は、前記第2の推論における推論結果に対する修正率が所定率以上となった場合、前記第2のモデルの推論精度が所定精度よりも低下した場合、または、保持されている前記クラウド用再学習データがバッチ量に達した場合に、前記第2のモデルの再学習の実行を判定することを特徴とする処理システム。
【請求項3】
エッジ装置とサーバ装置との少なくとも一方における、負荷の変動または推論精度の低下に基づいて、前記エッジ装置と前記サーバ装置との少なくとも一方において、推論を行う対象データ群の傾向が変化したか否かを判定する判定ステップと、
前記判定ステップにおいて前記対象データ群の傾向が変化したと判定された場合、前記エッジ装置において第1の推論を行う第1のモデルと前記サーバ装置において第2の推論を行う第2のモデルとのうち少なくともいずれか一方の再学習を実行する再学習ステップと、
前記対象データ群のうち、前記第2の推論において推論が実行された対象データに、その対象データの前記第2の推論による推論結果をラベルとして対応付けたデータを、前記第1のモデルに対するエッジ用再学習データとして生成する生成ステップと、
前記対象データ群のうち、前記第2の推論が実行された対象データに、該対象データの前記第2の推論における推論結果への修正の入力を受け付け、前記第2の推論が実行された対象データに、該対象データの前記第2の推論における推論結果にラベル修正が加えられた修正済み推論結果を対応付けたデータを、前記第2のモデルに対するクラウド用再学習データとして生成する修正ステップと、
をコンピュータに実行させ、
前記判定ステップは、前記サーバ装置における処理率が設定値から増加した場合、前記第1のモデルの推論精度が所定精度よりも低下した場合、または、保持されている前記エッジ用再学習データがバッチ量に達した場合に、前記第1のモデルの再学習の実行を判定し、
前記判定ステップは、前記第2の推論における推論結果に対する修正率が所定率以上となった場合、前記第2のモデルの推論精度が所定精度よりも低下した場合、または、保持されている前記クラウド用再学習データがバッチ量に達した場合に、前記第2のモデルの再学習の実行を判定する
処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理方法、処理システム及び処理プログラムに関する。
【背景技術】
【0002】
センサに代表されるIoTデバイスにより収集されたデータのデータ量は、膨大であるため、クラウドコンピューティングで収集されたデータを集約及び処理する際、膨大な通信量が発生する。このため、ユーザに近いエッジ装置でも、収集されたデータを処理するエッジコンピューティングに注目が集まっている。
【0003】
しかしながら、エッジ装置で用いられる装置の演算量やメモリ等のリソースは、エッジ装置よりもユーザから物理的及び論理的に遠くに配置されたエッジ装置以外の装置(以下、簡便のためクラウドと記載する)と比して、貧弱である。このため、演算負荷が大きい処理をエッジ装置で行うと、処理が完了するまでに多大な時間を要したり、演算量が大きくない他の処理が完了するまでにも時間を要したりする場合がある。
【0004】
ここで、演算量が大きい処理の一つに機械学習に係る処理が挙げられる。非特許文献1には、いわゆるアダプティブラーニングのエッジ・クラウドへの適用が提案されている。すなわち、非特許文献1に記載の方法は、クラウドで汎用的な学習データを用いて学習を行った学習済みモデルをエッジ装置に展開し、エッジ装置で取得されたデータを用いて、クラウドで学習を行ったモデルに対して再度学習を行うことでクラウドとエッジ装置との利点を活かした運用を実現している。
【先行技術文献】
【非特許文献】
【0005】
【文献】:大越他, “クラウド・エッジ連携によるDNNモデル運用方式の提案と評価”, 第80回全国大会講演論文集 2018(1), 3-4, 2018-03-13.
【発明の概要】
【発明が解決しようとする課題】
【0006】
ここで、運用を続けていくと、時間の経過にともなって、モデルの精度が劣化する場合がある。このため、エッジ装置及びクラウドにそれぞれ配置されるモデルに再学習を実行させることで、必要な精度を維持する必要がある。しかしながら、モデルの再学習のためには、システムの管理者が、運用中に取得した全データを確認し、モデルごとに、どのデータを用いて、どのタイミングで、モデルの再学習を実行するかを判断し、モデルの再学習処理を手配するという、煩雑な処理を行う必要があった。
【0007】
本発明は、上記に鑑みてなされたものであって、エッジ及びクラウドにそれぞれ配置されるモデルの再学習を適切に実行し、モデルの精度の維持を図ることができる処理方法、処理システム及び処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明に係る処理方法は、エッジ装置において第1の推論を行い、サーバ装置において第2の推論を行う処理システムが実行する処理方法であって、エッジ装置とサーバ装置との少なくとも一方における、負荷の変動または推論精度の低下に基づいて、エッジ装置とサーバ装置との少なくとも一方において、推論を行う対象データ群の傾向が変化したか否かを判定する判定工程と、判定工程において対象データ群の傾向が変化したと判定された場合、第1の推論を行う第1のモデルと第2の推論を行う第2のモデルとのうち少なくともいずれか一方の再学習を実行する再学習工程と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、エッジ及びクラウドにそれぞれ配置されるモデルの再学習を適切に実行し、モデルの精度の維持を図ることができる。
【図面の簡単な説明】
【0010】
図1図1は、実施の形態に係る処理システムの処理方法の概要を説明する図である。
図2図2は、DNN1及びDNN2の一例を説明する図である。
図3図3は、実施の形態に係る処理システムの構成の一例を模式的に示す図である。
図4図4は、オフロード率と全体精度との関係を示す図である。
図5図5は、実施の形態における学習データ生成処理の処理手順を示すフローチャートである。
図6図6は、実施の形態におけるDNN1に対する再学習判定処理の処理手順を示すフローチャートである。
図7図7は、実施の形態におけるDNN2に対する再学習判定処理の処理手順を示すフローチャートである。
図8図8は、プログラムが実行されることにより、エッジ装置及びサーバ装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0012】
[実施の形態]
[実施の形態の概要]
本発明の実施の形態について説明する。本発明の実施の形態では、学習済みの高精度モデル及び軽量モデルを使って推論処理を行う処理システムについて説明する。なお、実施の形態の処理システムでは、推論処理において用いるモデルとして、DNN(Deep Neural Network)を用いた場合を例に説明する。実施の形態の処理システムでは、DNN以外のニューラルネットワークを用いてもよいし、学習済みモデルに代えて低演算量の信号処理と高演算量の信号処理を用いてもよい。
【0013】
図1は、実施の形態に係る処理システムの処理方法の概要を説明する図である。実施の形態の処理システムは、高精度モデル及び軽量モデルを用いたモデルカスケードを構成する。実施の形態の処理システムでは、高速かつ低精度な軽量モデル(例えば、DNN1(第1のモデル))を用いるエッジ装置と、低速かつ高精度な高精度モデル(例えば、DNN2(第2のモデル))を用いるクラウド(サーバ装置)とのいずれにおいて処理を実行するかを制御する。例えば、サーバ装置は、ユーザから物理的及び論理的に遠い場所に配置された装置である。エッジ装置は、ユーザから物理的及び論理的に近い場所に配置されたIoT機器及び各種端末装置であり、サーバ装置と比してリソースが少ない。
【0014】
DNN1及びDNN2は、入力された処理対象データを基に推論結果を出力するモデルである。図1の例では、DNN1及びDNN2は、画像を入力とし、当該画像に写る物体のクラスごとの確率を推論する。なお、図1に示す2つの画像は、いずれも同じ画像である。
【0015】
図1に示すように、処理システムでは、入力画像に写る物体に対するDNN1のクラス分類の推論についての確信度を取得する。確信度は、DNN1による被写体認識の結果が正解であることの確からしさの度合いである。例えば、確信度は、DNN1が出力した、画像に写る物体のクラスの確率、例えば最も高いクラスの確率であってもよい。
【0016】
そして、処理システムでは、取得した確信度が、例えば、所定の閾値以上である場合、DNN1の推論結果が採用される。つまり、軽量モデルの推論結果が、モデルカスケードの最終的な推定結果として出力される。一方で、処理システムでは、確信度が所定の閾値未満である場合、同一の画像をDNN2に入力して得られた推論結果が、最終的な推論結果として出力される。
【0017】
このように、実施の形態に係る処理システムは、エッジ装置とサーバ装置とのいずれにおいて処理対象データを処理すべきかを確信度を基に、エッジ装置またはサーバ装置を選択して、処理対象データを処理する。
【0018】
[軽量モデル及び高精度モデル]
次に、DNN1、DNN2について説明する。図2は、DNN1及びDNN2の一例を説明する図である。DNNは、データが入る入力層、入力層から入力されたデータを様々に変換する複数の中間層、確率や尤度など、いわゆる推論した結果を出力する出力層を有する。各層から出力される出力値は、入力されるデータが匿名性を保つ必要がある場合は非可逆としてもよい。
【0019】
図2に示すように、処理システムは、それぞれ独立したDNN1及びDNN2を用いてもよい。例えば、DNN2が既知の方法でトレーニングされた後、DNN1が、DNN2のトレーニングで使用された学習データを用いてトレーニングされてもよい。
【0020】
ここで、DNN1は、DNN2と同じ問題を解き、かつ、DNN2よりも軽量であればよい。例えば、図3の例の場合、DNN1は、DNN2の第1中間層~第S中間層よりも、層が少ない第1中間層~第P(P<S)中間層を有する。このように、DNN1及びDNN2は、DNN2が、DNN1よりも層が深くなるように設計してもよい。また、比較的軽量かつ高速であるYOLOv2のバックエンドモデルであるdarknet19(以下、YOLOv2と記載する。)をDNN1として選定し、比較的高精度であるYOLOv3のバックエンドモデルであるdarknet53(以下、YOLOv3と記載する。)をDNN2として選定してもよい。簡単な例では、同一のNNで、DNN1とDNN2とで深さが異なるように構成してもよい。DNN1とDNN2とはそれぞれどのようなネットワークを用いてもよい。例えばCNNを用いてもよい。
【0021】
本実施の形態では、DNN1もしくは/およびDNN2の再学習のタイミングを判定して、自動的にDNN1、DNN2の再学習を実行するシステムを提案する。そして、本実施の形態では、再学習用のデータを自動的に選択し、再学習を実行する。これによって、本実施の形態によれば、モデルの再学習処理に関する管理者の負担を低減しながら、エッジ及びクラウドにそれぞれ配置されるモデルの再学習を適切に実行し、モデルの精度の維持を図ることができる。
【0022】
[処理システム]
次に、処理システムの構成について説明する。図3は、実施の形態に係る処理システムの構成の一例を模式的に示す図である。
【0023】
実施の形態に係る処理システム100は、サーバ装置20及びエッジ装置30を有する。また、サーバ装置20及びエッジ装置30は、ネットワークNを介して接続される。ネットワークNは、例えばインターネットである。例えば、サーバ装置20は、クラウド環境に設けられたサーバである。また、エッジ装置30は、例えば、IoT機器及び各種端末装置である。なお、本実施の形態では、サーバ装置20及びエッジ装置30における処理対象の対象データ群が、画像群である場合を例に説明する。
【0024】
サーバ装置20及びエッジ装置30は、それぞれROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等を含むコンピュータ等に所定のプログラムが読み込まれて、CPUが所定のプログラムを実行することで実現される。また、GPUやVPU(Vision Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)や専用のAI(Artificial Intelligence)チップに代表されるいわゆるアクセラレータも用いられる。サーバ装置20及びエッジ装置30は、それぞれ、NIC(Network Interface Card)等を有し、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置との間の通信を行うことも可能である。
【0025】
図3に示すように、サーバ装置20は、学習済みの高精度モデルであるDNN2を用いて推論(第2の推論)を行う推論部21を有する。DNN2は、モデルパラメータ等の情報を含む。
【0026】
推論部21は、DNN2を用いて、エッジ装置30から出力された画像に対する推論処理を実行する。推論部21は、エッジ装置30から出力された画像を、DNN2の入力とする。推論部21は、DNN2を用いて、入力画像に対する推論処理を実行する。推論部21は、DNN2の出力として推論結果(例えば、画像に写る物体のクラスごとの確率)を取得する。入力画像は、ラベルが未知の画像であるものとする。また、推論結果をユーザに返す場合、推論部21で得られた推論結果はエッジ装置30に伝送され、エッジ装置30からユーザに返してもよい。
【0027】
ここで、サーバ装置20及びエッジ装置30は、モデルカスケードを構成する。このため、推論部21は、常に推論を行うわけではない。推論部21は、エッジ装置30において、推論処理をサーバ装置20に実行させると判定された分割画像の入力を受け付けて、DNN2による推論を行う。ここでは画像と記載するが、画像そのものではなく画像から抽出された特徴量であってもよい。
【0028】
エッジ装置30は、学習済みの軽量モデルであるDNN1を有する推論部31と、判定部32とを有する。
【0029】
推論部31は、DNN1に、処理対象の画像を入力して推論結果を取得する。推論部31は、DNN1を用いて、入力画像に対する推論処理(第1の推論)を実行する。推論部31は、処理対象の画像の入力を受け付け、処理対象の画像を処理し、推論結果(例えば、画像に写る物体のクラスごとの確率)を出力する。
【0030】
判定部32は、エッジ装置30とサーバ装置20とのいずれの推論結果を採用するか否かを、確信度と所定の閾値とを比較することで判定する。本実施の形態では、エッジ装置30において、エッジ装置30が推論した推論結果を採用か否かを判定し、この推論結果を採用しないと判定した場合には、サーバ装置20の推論結果を採用することとなる。
【0031】
判定部32は、確信度が所定の閾値以上である場合、推論部31が推論した推論結果を出力する。判定部32は、信頼度が所定の閾値未満である場合、処理対象の画像をサーバ装置20に出力して、推論処理をサーバ装置20に配置されたDNN2に実行させることを判定する。
【0032】
そして、処理システム100は、DNN1、DNN2に対する再学習処理に関する機能として、例えば、サーバ装置20に、学習データ生成部22、学習データ管理部23及び再学習部24を設ける。なお、学習データ生成部22、学習データ管理部23及び再学習部24は、サーバ装置20内には限らず、サーバ装置20及びエッジ装置30と通信可能である他の装置内に設けてもよい。
【0033】
学習データ生成部22は、DNN1、DNN2の再学習時に使用する学習データをDNN1、DNN2ごとに生成する。学習データ生成部22は、運用中に実際に推論処理を実行した画像群のうち、負荷の変動または推論精度の低下への貢献度が大きいデータを、再学習データとして生成する。学習データ生成部22は、生成部221と修正部222とを有する。
【0034】
生成部221は、DNN2への入力画像のうち、DNN2において推論が実行された画像に、その画像のDNN2による推論結果をラベルとして対応付けたデータを、エッジ装置30のDNN1に対するエッジ用再学習データとして生成する。この学習データのラベルは、自動アノテーションにより付与されたものである。生成部221は、DNN1の再学習時に使用する学習データと、テスト用のデータとを分けて生成してもよい。DNN1の再学習用データとして、サーバ側で推論を行うと判定されたデータ全てを対象としてもよい。
【0035】
修正部222は、入力画像のDNN2による推論結果に対する、修正の入力を受け付ける。この修正は、いわゆる手動アノテーションであり、管理者が、処理対象の画像を判別して、推論結果を修正する。或いは、修正は、DNN2とは異なる別の機構を用いた推論処理の実行によって、推論結果を修正する処理である。
【0036】
そして、修正部222は、DNN2において推論が実行された画像に、該画像のDNN2による推論結果にラベル修正が加えられた修正済み推論結果(正解ラベル)を対応付けたデータを、サーバ装置20のDNN2に対するクラウド用再学習データとして生成する。修正部222は、DNN2の再学習時に使用する学習データと、テスト用のデータとを分けて生成してもよい。
【0037】
学習データ管理部23は、学習データ生成部22が生成したDNN1、DNN2の再学習用の学習用データを管理する。学習データ管理部23は、格納部231と選択部232とを有する。
【0038】
格納部231は、学習データ生成部22が生成したDNN1用のエッジ用再学習データを、エッジ用再学習データデータベース(DB)251に格納する。格納部231は、DNN1が複数ある場合に、DNN1ごとに分けてエッジ用再学習データを格納する。格納部231は、学習データ生成部22が生成したDNN2用のクラウド用再学習データを、クラウド用再学習データDB252に格納する。格納部231は、DNN2が複数ある場合に、DNN2ごとに分けてクラウド用再学習データを格納する。
【0039】
選択部232は、後述する再学習部24により再学習データの出力を要求された場合には、要求に応じた再学習データを、エッジ用再学習データDB251またはクラウド用再学習データDB252から取り出し、再学習部24に出力する。
【0040】
再学習部24は、DNN1とDNN2とのうち少なくともいずれか一方の再学習を実行する。再学習部24は、DNN1またはDNN2の再学習の実行の可否を判定する再学習判定部241(判定部)と、再学習実行部242(再学習部)とを有する。
【0041】
再学習判定部241は、エッジ装置30とサーバ装置20との少なくとも一方における、負荷の変動または推論精度の低下に基づいて、エッジ装置30とサーバ装置20との少なくとも一方において、推論を行う画像群の傾向が変化したか否かを判定する。そして、再学習判定部241は、画像群の傾向が変化したと判定した場合に、DNN1またはDNN2の再学習を実行することを判定する。再学習判定部241は、オフロード率(サーバ装置20における処理率)の設定値からの変化、推論精度の低下、または、保持されている学習データ量に応じて、DNN1またはDNN2の再学習を実行することを判定する。また、オフロード率が下がった際、システムの管理者が、再学習を行うかを推論精度に基づき判断する。これは、オフロード率が下がる場合は必ずしもDNN1を再学習する必要があるとは限らないためである。なお、オフロード率が上がる場合は、DNN1を再学習するトリガーとしてよい。サーバ装置20では、このように決定された再学習の要否に従って、再学習の実行を指示し、その指示にしたがって、再学習判定部241は、DNN1またはDNN2の再学習を実行する。なお、DNN2は、複数のDNN1からオフロードされたデータを対象として推論する場合が多くなるため、オフロード率ではなく修正率に基づいて行う方が好ましい。
【0042】
再学習実行部242は、再学習判定部241によって、画像群の傾向が変化したと判定された場合、DNN1とDNN2とのうち少なくともいずれか一方の再学習を実行する。再学習実行部242は、画像群のうち、負荷の変動または推論精度の低下への貢献度が大きいデータを用いて、DNN1またはDNN2とのうち少なくともいずれか一方の再学習を実行する。
【0043】
再学習実行部242は、エッジ用再学習データを学習データとして、DNN1の再学習を実行する。再学習実行部242は、クラウド用再学習データを学習データとして、DNN2の再学習を実行する。再学習実行部242は、DNN1(或いはDNN1と同等のモデル)を再学習したDNN1を、エッジ装置30に伝送し、エッジ側のモデルとして配置する。再学習実行部242は、DNN2(或いはDNN2と同等のモデル)を再学習したDNN2を、推論部21に出力し、クラウド側のモデルとして配置する。なお、再学習に用いるためのDNN1及びDNN2と、再学習後のDNN1及びDNN2とは、サーバ装置20内で保持するほか、エッジ装置30及びサーバ装置20と通信が可能である他の装置で保持してもよい。
【0044】
[確信度の閾値とオフロード率]
確信度の閾値の決め方と、オフロード率について説明する。図4は、オフロード率と全体精度との関係を示す図である。図4は、運用中の推論結果を基に、オフロード率の変動に伴う推論結果の全体精度の変動を求めることによって得られたものである。なお、閾値は、オフロード率に連動し、オフロード率を下げる場合には確信度の閾値を上げる。図4において、「Offload rate 0」は、全てのデータがエッジ装置30により処理され、精度(acc_origin)が低い状態であり、「Offload rate 1」は、すべてのデータがサーバ装置20により処理され、精度(acc_origin)が高い状態である。
【0045】
また、オフロード率が0.4(閾値が0.5)を超えると、オフロード率を上げても、すなわち、確信度の閾値を下げても、精度の向上が少なくなっている。このため、確信度の閾値を0.5に設定すると、オフロード率(0.4)と精度(0.75)のバランスが取れるものと考えられる。言い換えると、オフロード率を0.4とする際には、確信度の閾値を0.5に設定する。このように、オフロード率と精度とのバランスに応じて閾値を設定することで、それぞれのユースケースに応じたオフロード率や全体精度の調整が可能になる。
【0046】
そして、運用時におけるオフロード率は、統計を取ることが可能である。オフロード率の統計の取り方にはDNN1からDNN2、つまりエッジ装置30からサーバ装置20に伝送する伝送量を指標値として使ってもよい。例えば、エッジ装置30における単位時間当たりに処理する推論処理、例えば秒間5フレームの推論を行っており、2フレームに相当する伝送量が発生していた場合、オフロード率は0.4と推定することができる。このように、オフロード率の統計を取ったり、オフロード率の変化を検知したりすることが可能である。
【0047】
[再学習判定部の処理]
再学習判定部241は、オフロード率の設定値からの変化、推論精度の低下、学習データ量を基に、DNN1またはDNN2の再学習を実行するか否かを判定する。
【0048】
[DNN1の再学習判定]
再学習判定部241は、以下の場合に、エッジ装置30におけるDNN1の再学習の実行を判定する。
【0049】
まず、再学習判定部241は、オフロード率が設定値から変化した場合にDNN1の再学習の実行を判定する。この場合には、推論対象の画像群の傾向が変化したことでオフロード率が増加し、サーバ装置20での処理数が多くなったものと考えられる。すなわち、サーバ装置20での処理数が多くなることで、全体の計算コストが変動していることが検知される。このような場合、エッジ装置30におけるDNN1の推論結果の確信度が所定の閾値を下回る推論結果が多くなるため、DNN1の精度が低下したと考えられる。なお、上記設定値は設定範囲でもよく、設定範囲よりも上の値となった場合、設定範囲よりも下の場合となった場合、のいずれの場合でも再学習の実行を判定するようにしてもよい。
【0050】
また、再学習判定部241は、DNN1の推論精度が、所定精度よりも低下した場合にDNN1の再学習の実行を判定する。この場合には、システムの管理者によって、DNN1の推論精度が低下したと判断され、DNN1の再学習の実行が指示される。また、再学習判定部241は、エッジ用再学習データがバッチ量に達した場合にDNN1の再学習の実行を判定する。
【0051】
そして、再学習判定部241は、以下の場合に、サーバ装置20におけるDNN2の再学習を実行する。具体的には、再学習判定部241は、DNN2の推論精度が、所定精度よりも低下した場合にDNN2の再学習の実行を判定する。この場合には、システムの管理者によって、DNN2の推論精度が低下したと判断され、DNN2の再学習の実行が指示される。
【0052】
また、再学習判定部241は、修正部222によるDNN2の推論結果に対する修正率が、所定率以上となった場合に、DNN2の再学習の実行を判定する。DNN2の推論精度が低下したと判断されるためである。また、再学習判定部241は、クラウド用再学習データがバッチ量に達した場合にDNN2の再学習の実行を判定する。
【0053】
[学習データ生成処理]
次に、サーバ装置20における学習データ生成処理について説明する。図5は、実施の形態における学習データ生成処理の処理手順を示すフローチャートである。
【0054】
図5に示すように、サーバ装置20では、生成部221が、DNN2の推論結果及びDNN2において推論が実行された画像を取得する(ステップS11)。続いて、生成部221は、DNN2において推論が実行された画像に、その画像のDNN2による推論結果をラベルとして対応付けたデータをエッジ用再学習データとして生成し(ステップS12)、格納部231に、エッジ用再学習データDB251への格納を指示する(ステップS13)。
【0055】
そして、学習データ生成部22は、DNN2の推論結果への修正の入力を受け付けたか否かを判定する(ステップS14)。学習データ生成部22は、入力画像のDNN2による推論結果への修正の入力を受け付けていない場合(ステップS14:No)、ステップS11に戻る。
【0056】
入力画像のDNN2による推論結果への修正の入力を受け付けると(ステップS14:Yes)、修正部222は、DNN2において推論が実行された画像と、該画像の修正済み推論結果(正解ラベル)を対応付けたデータとを、サーバ装置20のDNN2に対するクラウド用再学習データとして生成する(ステップS15)。そして、修正部222は、格納部231に、このデータの、クラウド用再学習データDB252への格納を指示する(ステップS16)。
【0057】
[DNN1の再学習判定処理]
次に、DNN1に対する再学習判定処理について説明する。図6は、実施の形態におけるDNN1に対する再学習判定処理の処理手順を示すフローチャートである。
【0058】
図6に示すように、再学習判定部241は、オフロード率が設定値から増加したか否かを判定する(ステップS21)。オフロード率が設定値から増加していない場合(ステップS21:No)、再学習判定部241は、DNN1の推論精度が所定精度よりも低下したか否かを判定する(ステップS22)。DNN1の推論精度が所定精度よりも低下していない場合(ステップS22:No)、再学習判定部241は、エッジ用再学習データがバッチ量に達したか否かを判定する(ステップS23)。エッジ用再学習データがバッチ量に達していない場合(ステップS23:No)、再学習判定部241は、ステップS21に戻り、オフロード率の変化に対する判定を行う。
【0059】
オフロード率が設定値から増加した場合(ステップS21:Yes)、または、DNN1の推論精度が所定精度よりも低下した場合(ステップS22:Yes)、または、エッジ用再学習データがバッチ量に達した場合(ステップS23:Yes)、再学習判定部241は、DNN1の再学習の実行を判定する(ステップS24)。
【0060】
続いて、再学習実行部242は、エッジ用再学習データの出力を選択部232に要求することで、選択部232は、エッジ用再学習データを選択し(ステップS25)、再学習実行部242に出力する。再学習実行部242は、このエッジ用再学習データを学習データとして、DNN1の再学習を実行する(ステップS26)。
【0061】
再学習実行部242は、DNN1に対応するテストデータで精度テストを行い(ステップS27)、精度が向上した場合には(ステップS28:Yes)、オフロード率と該オフロード率に対応する確信度の閾値を設定し、再学習したDNN1を、エッジ装置30のモデルとして配置する(ステップS29)。なお、再学習したDNN1の精度が向上しなかった場合には(ステップS28:No)、DNN2の推論精度も低下していると想定される。このような場合、再学習実行部242は、ステップS24に戻り、ヒューリスティックにラベルを付けなおす、もしくはDNN2とは異なるDNN(例えば、さらに高負荷高精度なDNN)でラベルを付けなおしたデータを用いてDNN1を再学習させればよい。このような場合、DNN2についても同様に再学習をすべきである。
【0062】
[DNN2の再学習判定処理]
次に、DNN2に対する再学習判定処理について説明する。図7は、実施の形態におけるDNN2に対する再学習判定処理の処理手順を示すフローチャートである。
【0063】
図7に示すように、再学習判定部241は、修正部222によるDNN2の推論結果に対する修正率が、所定率以上となったか否かを判定する(ステップS31)。修正部222によるDNN2の推論結果に対する修正率が、所定率以上となっていない場合(ステップS31:No)、再学習判定部241は、推論精度が所定の精度よりも低下したか否かを判定する(ステップS32)。推論精度が所定の精度よりも低下していない場合(ステップS32:No)、再学習判定部241は、クラウド用再学習データがバッチ量に達したか否かを判定する(ステップS33)。クラウド用再学習データがバッチ量に達していない場合(ステップS33:No)、再学習判定部241は、ステップS31に戻り、オフロード率の変化に対する判定を行う。
【0064】
修正部222によるDNN2の推論結果に対する修正率が、所定率以上となった場合(ステップS31:Yes)、または、推論精度が所定の精度よりも低下した場合(ステップS32:Yes)、または、クラウド用再学習データがバッチ量に達した場合(ステップS33:Yes)、再学習判定部241は、DNN2の再学習の実行を判定する(ステップS34)。
【0065】
続いて、再学習実行部242は、クラウド用再学習データの出力を選択部232に要求することで、選択部232は、クラウド用再学習データを選択し(ステップS35)、再学習実行部242に出力する。再学習実行部242は、このクラウド用再学習データを学習データとして、DNN2の再学習を実行する(ステップS36)。再学習実行部242は、DNN2に対応するテストデータで精度テストを行い(ステップS37)、精度が向上した場合には(ステップS38:Yes)、再学習したDNN2を、サーバ装置20のモデルとして配置する(ステップS39)。再学習実行部242は、精度向上がなかった場合には(ステップS38:No)、ステップS34に進み、再学習の実行を行う。
【0066】
[実施の形態の効果]
このように、本実施の形態に係る処理システム100では、エッジ装置と前記サーバ装置との少なくとも一方における、負荷の変動または推論精度の低下に基づいて、エッジ装置30とサーバ装置20との少なくとも一方において、推論を行う画像群(対象データ群)の傾向が変化したか否かを判定する。そして、処理システム100では、画像群の傾向が変化したと判定された場合、DNN1とDNN2とのうち少なくともいずれか一方の再学習を実行する。したがって、処理システム100によれば、DNN1、DNN2ごとに再学習のタイミングを判定して、自動的にDNN1、DNN2の再学習を実行することができる。
【0067】
そして、処理システム100では、システムの運用中に処理された画像群のうち、負荷の変動または推論精度の低下への貢献度が大きいデータを用いて、DNN1とDNN2とのうち少なくともいずれか一方の再学習を実行するため、再学習によって、負荷の変動または推論精度の低下に対して対処することができるDNN1、DNN2を構築することができる。そして、処理システム100では、これらのDNN1、DNN2をエッジ装置30、サーバ装置20に配置することによって、エッジ及びクラウドにそれぞれ配置されるモデルの精度の維持を図ることができる。
【0068】
処理システム100では、システムの運用中に処理された画像群のうち、DNN2において実際に推論処理が実行された画像と、該画像のDNN2による推論結果とを、学習データとしてDNN1の再学習を実行する。言い換えると、処理システム100では、DNN1において実際に推論が行われた画像であって、DNN1よりも精度の高いDNN2の推論結果をラベルとして付された画像を、エッジ用再学習データとして生成し、このエッジ用再学習データを用いてDNN1の再学習を行う。このため、DNN1は、再学習する度にドメイン特化されたモデルとなり、エッジ装置30に要求される精度を適切に維持することができる。
【0069】
そして、処理システム100では、システムの運用中に処理された画像群のうち、DNN2において実際に推論処理が実行された画像と、該画像のDNN2による推論結果に修正が加えられた修正済み推論結果とを、学習用データとしてDNN2の再学習を実行する。すなわち、DNN2では、DNN2において行われた推論が誤っていた画像であって、正解ラベルが付された画像を、クラウド用再学習データとして生成し、このクラウド用再学習データを用いてDNN2の再学習を行うため、DNN2の精度向上を図ることができる。
【0070】
このように、処理システム100によれば、モデルの再学習処理に関する管理者の負担を低減しながら、エッジ及びクラウドにそれぞれ配置されるモデルの再学習を適切に実行し、モデルの精度の維持を図ることができる。
【0071】
なお、本実施の形態では、エッジ装置30またはサーバ装置20が複数であってもよく、また、エッジ装置30とサーバ装置20とがいずれも複数であってもよい。その際には、エッジ装置30ごとに、エッジ用再学習データを生成し、サーバ装置20ごとにクラウド用再学習データを生成して、それぞれ対応する学習データを用いて、各モデルの再学習を実行する。
【0072】
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0073】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0074】
[プログラム]
図8は、プログラムが実行されることにより、エッジ装置30及びサーバ装置20が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、演算を補助するために前述したアクセラレータを備えてもよい。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0075】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0076】
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、エッジ装置30及びサーバ装置20の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、エッジ装置30及びサーバ装置20における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0077】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0078】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0079】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0080】
20 サーバ装置
21,31 推論部
22 学習データ生成部
23 学習データ管理部
24 再学習部
30 エッジ装置
32 判定部
100 処理システム
221 生成部
222 修正部
231 格納部
232 選択部
241 再学習判定部
242 再学習実行部
251 エッジ用再学習データDB
252 クラウド用再学習データDB
図1
図2
図3
図4
図5
図6
図7
図8