JP2021043772A - 提供装置、提供方法及びプログラム - Google Patents

提供装置、提供方法及びプログラム Download PDF

Info

Publication number
JP2021043772A
JP2021043772A JP2019166084A JP2019166084A JP2021043772A JP 2021043772 A JP2021043772 A JP 2021043772A JP 2019166084 A JP2019166084 A JP 2019166084A JP 2019166084 A JP2019166084 A JP 2019166084A JP 2021043772 A JP2021043772 A JP 2021043772A
Authority
JP
Japan
Prior art keywords
machine learning
learning model
information
unit
extraction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019166084A
Other languages
English (en)
Other versions
JP7051772B2 (ja
Inventor
昭行 谷沢
Akiyuki Tanizawa
昭行 谷沢
敦司 谷口
Atsushi Yaguchi
敦司 谷口
修平 新田
Shuhei Nitta
修平 新田
幸辰 坂田
Koshin Sakata
幸辰 坂田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2019166084A priority Critical patent/JP7051772B2/ja
Priority to US16/802,231 priority patent/US11436490B2/en
Publication of JP2021043772A publication Critical patent/JP2021043772A/ja
Application granted granted Critical
Publication of JP7051772B2 publication Critical patent/JP7051772B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

【課題】演算量の異なる複数の機械学習モデルを、計算コスト及びストレージコストを抑えて提供できるようにする。【解決手段】実施形態の提供装置は、記憶制御部と取得部と設定部と抽出部と提供部とを備える。記憶制御部は、ニューラルネットワークのモデルの演算量を変更可能な第1機械学習モデルを記憶部に記憶する。取得部は、デバイス情報を取得する。設定部は、前記デバイス情報に基づいて、前記第1機械学習モデルから第2機械学習モデルを抽出する条件を示す抽出条件を設定する。抽出部は、前記抽出条件に基づいて前記第1機械学習モデルから第2機械学習モデルを抽出する。提供部は、前記第2機械学習モデルを前記デバイス情報により特定されるデバイスに提供する。【選択図】図1

Description

本発明の実施形態は提供装置、提供方法及びプログラムに関する。
ニューラルネットワーク(機械学習モデル)を活用することで、画像認識、音声認識及びテキスト処理などの分野で著しい性能向上が実現されている。一般的に、ニューラルネットワークには、多数の層を有し、各層の各ノードの値は前の層の各ノードの値に重み係数を掛けて足し合わせることで計算する深層学習(Deep learning)を用いる方法が多く用いられている。
国際公開第2018/173121号公報
W.Liu,et.al."SSD:Single Shot MultiBox Detector,"ArXiv preprint,https://arxiv.org/abs/1512.02325 R.T.Q.Chen,et.al."Neural Ordinary Differential Equations,"ArXiv preprint,https://arxiv.org/abs/1806.07366
しかしながら、従来の技術では、演算量の異なる複数の機械学習モデルを、計算コスト及びストレージコストを抑えて提供することが難しかった。
実施形態の提供装置は、記憶制御部と取得部と設定部と抽出部と提供部とを備える。記憶制御部は、ニューラルネットワークのモデルの演算量を変更可能な第1機械学習モデルを記憶部に記憶する。取得部は、デバイス情報を取得する。設定部は、前記デバイス情報に基づいて、前記第1機械学習モデルから第2機械学習モデルを抽出する条件を示す抽出条件を設定する。抽出部は、前記抽出条件に基づいて前記第1機械学習モデルから第2機械学習モデルを抽出する。提供部は、前記第2機械学習モデルを前記デバイス情報により特定されるデバイスに提供する。
第1実施形態の提供システムの機能構成の例を示す図。 第1実施形態のデバイス情報の例を示す図。 第1実施形態の抽出条件リストの例を示す図。 重み係数のテンソルを分解した分解層を持つ第1機械学習モデルの例を示す図。 第1実施形態における第1機械学習モデルの重み行列Wの幅rについて説明するための図。 第1実施形態の幅rの設定例(一様な場合)を示す図である。 第1実施形態の幅rの設定例(非一様な場合)を示す図である。 第1実施形態の抽出部により、第1機械学習モデルの幅を変更する例を示す図。 第1実施形態の提供方法の例を示すフローチャート。 第2実施形態の提供システムの機能構成の例を示す図。 第2実施形態の管理情報の例を示す図。 第2実施形態のモデル管理の具体例を説明するための図。 第2実施形態の提供方法の例を示すフローチャート。 第3実施形態の提供システムの機能構成の例を示す図。 第3実施形態の学習部の機能構成の例を示す図。 第3実施形態の学習方法の例を示すフローチャート。 第1乃至第3実施形態の提供装置のハードウェア構成の例を示す図。
以下に添付図面を参照して、提供装置、提供方法及びプログラムの実施形態を詳細に説明する。
深層学習によって得られるネットワークは、ディープニューラルネットワーク(Deep neural network:DNN)と呼ばれるが、各層において畳み込み処理や全結合処理などを行うため計算量が多い、もしくはパラメータ数が多い特徴がある。また、重み係数データが多いためハードウェアなどで実現する場合に、メモリ使用量や転送量が多くなり、モバイルや車載など比較的ハードウェアスペックが低いエッジ機器でのリアルタイムでの推論処理が困難であるという特徴がある。このような学習済みのニューラルネットワーク(以下、モデルと呼ぶ)を、枝刈りする手法や蒸留学習などによりモデルサイズを小さくする技術が提案されている。一般的に、深層学習を含む機械学習を用いる手法は、学習プロセスと推論プロセスを有している。学習プロセスでは、予め用意したデータセットと学習前のモデルに対して、反復処理を行ってモデルを設計するため、エッジデバイスでの実現が困難である。そこで、学習フェーズを、GPU(Graphic Processing Unit)を有する大規模サーバー環境で実施し、学習済みのモデルをエッジデバイスに提供(デプロイ)するモデル提供システムが開示されている。エッジデバイスでは、デプロイされたモデルを用いて推論処理のみを行うことで、小規模のエッジデバイスでも高精度な認識処理が実現できる。
(第1実施形態)
はじめに、第1実施形態の提供システム100の機能構成の例について説明する。
[機能構成の例]
図1は第1実施形態の提供システム100の機能構成の例を示す図である。第1実施形態の提供システム100は、提供装置10、及び、デバイス20a〜20cを備える。提供装置10、及び、デバイス20a〜20cは、ネットワーク200を介して接続されている。以下、デバイス20a〜20cを区別しない場合は、単にデバイス20という。
なお、ネットワーク200の通信方式は、有線方式でも無線方式でもよく、また、有線方式と無線方式とを組み合わせて実現されていてもよい。また、ネットワーク200は、高速な通信を実現する専用の通信回線で接続されてもよいし、パブリックネットワーク回線で接続されていてもよい。また、ネットワーク200は、専用の通信回線とパブリックネットワーク回線とを組み合わせて実現されていてもよい。
第1実施形態の提供装置10は、取得部1、設定部2、抽出部3、記憶制御部4、記憶部5及び提供部6を備える。
はじめに、デバイス20について説明する。デバイス20a〜20cは同一のハードウェアスペックでもよいし、異なるハードウェアスペックでもよい。
デバイス20は、例えば車やドローン、鉄道などの移動体に搭載されるデバイスであってもよい。例えば自動運転車の実現には、車に多量のセンサを搭載し、センシングされた情報(例えばカメラで撮影された画像)をニューラルネットワークで推論することで認識処理を行う。この場合のニューラルネットワークによる推論は、例えば画像から物体を検出したり、検出した物体を分類したり、検出した物体までの距離を計測したりすることである。
また例えば、デバイス20は、工場の生産ラインに設置されるロボットや検査装置などに搭載されるデバイスであってもよい。例えば、外観検査では、センサで撮影したデータに対して、異常があるかどうかをニューラルネットワークで推論することで認識処理を行う。この場合のニューラルネットワークによる推論は、例えば異常が含まれているかを判定したり、異常部分を抽出したりすることである。
また例えば、デバイス20は、トラックや配送、倉庫などで利用される移動体やロボットなどに搭載されるデバイスであってもよい。例えば倉庫などで用いられるピッキングロボットでは、ピッキング対象領域をセンシングし、そのデータをニューラルネットワークで推論することで認識処理を行う。この場合のニューラルネットワークによる推論は、例えばピッキング対象領域に含まれる荷物の個数を判定したり、その荷物の幅、高さ、奥行きを判定したりすることである。
また例えば、デバイス20は、建物やイベント会場などの入退室をチェックするようなカメラデバイスであってもよい。具体的には、デバイス20は、例えば特定の人物の顔や歩容、生体情報を照合するようなアプリケーションがインストールされたスマートフォンや携帯端末などでもよい。また例えば、アプリケーションは、撮影した画像や動画を加工したり、自動でタグ付けしたり、顔認識・人物認識してアルバム化したりするような機械学習を用いるアプリケーションであってもよい。加工処理・タグ付け処理・認識処理などは機械学習における一般的な例であり、予め学習したモデルを用いて推論処理を行うことによってこのようなアプリケーションを実現可能である。
ここでは、デバイス20の一例を示したが、上記のようにエッジサイドでリアルタイム処理が必要なデバイス20に搭載されるニューラルネットワークを用いた推論機能を持つデバイス20は、上記デバイス20としてネットワーク200に接続可能である。デバイス20は、エッジサイドでセンシングしたデータをクラウドなどのサーバー側に通信して、サーバー側で推論処理を行ってその結果を受け取るシステム構成と比較した場合に、その通信などで発生するレイテンシが問題となるシステムである。リアルタイム処理が最重要となるため、これらはエッジデバイス上にニューラルネットワークでの推論処理を実行するハードウェアを搭載することが望ましい。上記のようなシステムをここではリアルタイムエッジシステムと呼ぶ。
また、上記とは用途が異なるが、デバイス20を監視カメラのようなデバイスと考えてもよい。例えば、監視カメラに映る不審者や危険物、不法投棄などの特定の物体や行動を検知するような監視システムである。監視カメラでは、一般的に監視領域を動画撮影し、その映像がイベント発生時(イベント確認時)に再生される。しかし、動画データは静止画などと比較してデータ量が多いため、クラウドなどのサーバー側にすべてをアップロードできるとは限らない。このようにアプリケーションによっては、その通信量の観点で、エッジデバイス側で認識処理を行い、認識処理結果だけをクラウドなどに通信する。一方で、動画データはすべてをクラウドには送らず、一部のみ、もしくはローカルストレージやエッジサーバーに一定期間だけ保存する場合が考えられる。このようにシステム上通信コストが大きい場合に、エッジデバイス上でニューラルネットワークでの推論処理を実行するハードウェアを搭載するケースが考えられる。上記のようなシステムをここではアナリティクスエッジシステムと呼ぶ。
なお、リアルタイムエッジシステムとアナリティクスエッジシステムを組み合わせることも可能である。このようなシステムはハイブリッドエッジシステムと呼ぶ。
デバイス20は、ネットワーク200を介して、相互に接続されてもよい。上記デバイス20は、一般的には用途に応じて選定されたハードウェアであり、それぞれのスペックは異なっていてもよい。いずれにしてもデバイス20は、学習済みのモデルを用いて推論処理を行う機能を有している。
なお、第1実施形態では、簡単な例として、デバイス20を車に搭載される車載LSIとする。例えば、デバイス20aが一般車、デバイス20bが高級車、デバイス20cが特殊車両などとし、それぞれのハードウェアスペックが異なる場合について説明する。
次に、取得部1について説明する。
取得部1は、デプロイ対象のデバイス20のデバイス情報を取得する。
[デバイス情報の例]
図2は第1実施形態のデバイス情報の例を示す図である。第1実施形態のデバイス情報は、特定情報、スペック情報及び制御情報を含む。
特定情報は、デバイスを特定する情報である。特定情報は、例えばグループID、デバイスID及びデバイス名称等を含む。グループIDは、デバイスが属するグループを識別する識別情報である。デバイスIDは、デバイスを識別する識別情報である。デバイス名称は、デバイスの固有名称である。
具体的には、特定情報は、複数のエッジデバイスからデプロイ先のデバイス20を特定するための情報として使用される。特定情報として、例えば、同一のデバイスであってもその中のどのデバイス20かを特定できる固有のIDがあることが望ましい。また、特定情報は、デバイス20を管理する上で重要な情報として、デバイス20の設置位置や用途、利用目的、備考など、様々な情報を含む。なお、デバイス20のハードウェアやソフトウェアに関する情報は、次のスペック情報122に該当する。
スペック情報は、機械学習モデルを用いて推論処理を行うデバイス20のハードウェア仕様を示す情報である。スペック情報は、例えばデバイス種類、デバイス演算能力及びメモリサイズ等を含む。デバイス種類は、CPUなどの汎用演算機であるか、FPGAやLSI、SoCなどの専用演算機であるかなどのデバイス20の種類を示す情報である。近年、エッジデバイスで深層学習モデルを推論するためのデバイスとして、ハードウェアアクセラレターを搭載するデバイスが増えている。これらのデバイスでは、デプロイするモデルを変更することで、デバイスの認識処理をプログラマブルに変更することが可能である。デバイス演算能力は、デバイス種類により表現方法は異なるが、例えばFlops、Topsなどで表される演算能力である。メモリサイズは、デバイス20に搭載されたメモリ量である。スペック情報は、上述のデバイス種類、デバイス演算能力及びメモリサイズの他に、メモリバンド幅、及び、消費電力などのハードウェアスペックに依存する情報を含んでいてもよい。また、エッジデバイスが小型のコンピュータであれば、スペック情報は、例えば導入されているOSの種類や、デバイスドライバ情報、ファームウェア情報、推論処理を行うソフトウェア名称やバージョン、フレームワーク情報などを含む。
制御情報は、モデルを用いた推論処理で制御される情報である。制御情報は、例えば目標演算量、目標モデルサイズ、目標レイテンシ及び目標認識率等のうち、少なくとも1つを含む。目標演算量は、モデルが搭載されたデバイス20で実行される推論処理の目標演算量である。目標モデルサイズは、デバイス20で実行される推論処理に用いられるモデルの目標モデルサイズである。目標レイテンシは、モデルが搭載されたデバイス20で実行される推論処理の目標速度である。目標認識率は、モデルが搭載されたデバイス20で実行される推論処理の目標認識率である。目標認識率は、分類タスクであれば分類率、検出タスクであれば検出率など、セグメンテーションタスクであれば、F値やPrecision、Recall値などを含む。
制御情報は、上述の目標演算量、目標モデルサイズ、目標レイテンシ及び目標認識率等の他に、モデル搭載数、モデルの優先度、モデルの演算精度(8ビット、12ビット、16ビットなど)、及び、目標消費電力等の情報を含んでいてもよい。
上述の制御情報は、例えばデバイス上で動作するアプリケーションの設計情報として使用される。
提供装置10は、例えばデバイス20のハードウェアスペック上限に合わせて、モデルを当該デバイス20にデプロイするケースでは、上述のスペック情報を重視してデプロイする。一方で、複数のモデルをデプロイする場合には、提供装置10は、上記スペック情報122の上限の下で、どのモデルをどの優先度でデプロイするかを制御しなければならない。
なお、図2では、デバイス情報が、特定情報、スペック情報及び制御情報を含む場合を一例として説明しているが、これらに関連する付帯情報をデバイス情報に追加してもよい。例えばスペック情報が同一であっても、その用途が異なる場合に、特定情報にデバイス名称を追加してもよい。あるいは、スペック情報にその製品の紹介URLなどの情報を追加してもよい。デバイス20と、デプロイされたモデルとは紐づけて管理されるため、管理を容易にする情報が、デバイス情報として記憶されていることが望ましい。
なお、制御情報は、デバイス情報に含まれていなくてもよい。例えば図2においてデバイスグループ05のデバイスID1119では、目標演算量や目標モデルサイズをN/A(Not Appricable)としている。このような場合は、基本的にそれ以外の目標値の制御条件を優先することを意味する。この場合では、目標レンテンシが1000msec以内となるように、後述の抽出条件が設定される。
図1に戻り、取得部1は、例えばデバイス10aからデバイス情報を取得する。なお、取得部1は、ネットワーク20を介してデバイス10aから直接、デバイス情報を取得してもよいし、ネットワーク200に接続された他のシステムから、デバイス情報を取得してもよい。ネットワーク200に接続された他のシステムは、例えばモデル学習装置やモデル設計装置、モデル管理アプリケーションなどである。
取得部1は、デバイス情報を取得すると、当該デバイス情報を設定部2に入力する。
次に、設定部2について説明する。
設定部2は、取得部1からデバイス情報を受け付けると、当該デバイス情報に基づいて、第1機械学習モデルから第2機械学習モデルを抽出する条件を示す抽出条件を設定する。設定部2は、例えばデバイス情報に含まれるスペック情報及び制御情報に基づいて、抽出条件リストから抽出条件を選択することによって、抽出条件を設定する。
[抽出条件の例]
図3は第1実施形態の抽出条件リストの例を示す図である。図3の例では、抽出条件リストは、制御ランク、モデル情報及び推論情報を含む。
制御ランクは、抽出ID及びランクを含む。抽出IDは、抽出条件リストに含まれる抽出条件を識別する識別情報である。ランクは、第2機械学習モデルの演算量を制御するランクである。第2機械学習モデルのランクについては後述する。
モデル情報は、モデルサイズ及び演算量等を含む。モデルサイズは、第2機械学習モデルのサイズである。演算量は、第2機械学習モデルを用いた推論処理の演算量である。
推論情報は、レイテンシ、認識率及びメモリサイズ等を含む。レイテンシは、第2機械学習モデルが搭載されたデバイスで実行される推論処理の速度である。認識率は、第2機械学習モデルが搭載されたデバイスで実行される推論処理の認識率である。メモリサイズは、第2機械学習モデルが搭載されたデバイスで実行される推論処理の実行に必要とされるメモリのサイズである。
設定部2は、デバイス情報に含まれるスペック情報と制御情報とを満たす抽出条件を、抽出条件リストから選択することにより、抽出条件を設定する。例えば、図2に示されるデバイス情報において、デバイスグループ06、デバイスID1111の場合を例にして説明する。この例では、制御情報に、目標演算量50GFlopsが指定されている。図3に戻ると、演算量が50GFlopsを満たす抽出IDは00002であることが分る。そこで、設定部2は、抽出ID0002によって識別される抽出条件を設定する。
なお、デバイス情報に含まれる制御情報で複数の項目が指定されている場合、設定部2は、例えばすべての項目を満たす抽出条件を設定する。
複数の項目が指定されている場合に、すべての項目を満たす抽出IDを選択する例を説明する。例えば、図2のデバイスグループ04のデバイスID0222の例では、目標演算量が100MFlops以下であり、目標レイテンシが100msec以下である。図4の抽出条件リストでは、この2つの条件を満たす抽出IDは0006である。この場合、設定部2は、抽出ID0006によって識別される抽出条件を設定する。
また例えば、デバイス情報に含まれる制御情報で複数の項目が指定されている場合、設定部2は、例えば予め決められたポリシーに従って優先度順に、制御情報に含まれる項目を満たす抽出条件を設定する。例えば、設定部2は、制御情報に優先度を設け、スペック情報が許容する範囲で、優先度の高い項目を優先して抽出条件を設定してもよい。例えば、図2のデバイスグループ04のデバイスID0222の例では、目標演算量は100MFlopsであり、デバイス演算能力も100MFlopsである。つまり、演算量が100MFlopsより大きな抽出条件は設定できない。この場合、目標演算量よりもレイテンシの優先度が低いため、設定部2は、演算量を100MFlops以下に抑えられる抽出ID0005によって識別される抽出条件を設定してもよい。
なお、設定部2は、上記以外のポリシーや選定基準を用いて、抽出条件を設定してもよい。ただし、スペック情報で指定されたスペックを上回るモデル情報を含む抽出条件は、当該抽出条件に基づいて抽出された第2機械学習モデルが、当該デバイス20で実行できない可能性があるため望ましくない。
次に、抽出部3、記憶制御部4及び記憶部5について説明する。
抽出部3が、設定部2から抽出条件を受け付けると、記憶制御部4が、記憶部5から第1機械学習モデルを読み出し、当該第1機械学習モデルを抽出部3に入力する。抽出部3は、抽出条件に基づいて、第1機械学習モデルの一部を、第2機械学習モデルとして抽出する。すなわち、第2機械学習モデルのサイズは、第1機械学習モデルのサイズよりも小さい。
ここで、記憶部5に登録されている第1機械学習モデルは、ニューラルネットワークのモデルの演算量を変更可能なスケーラブルNN(Neural Network)である。
<スケーラブルNNの説明>
第1機械学習モデルは、一般的なニューラルネットワークで用いられる各層(全結合層や畳み込み層)の重み係数のテンソルを、テンソル分解法によって2以上のテンソル(分解テンソル)に分解された分解層を持つように学習されている。
図4は、重み係数のテンソルを分解した分解層を持つ第1機械学習モデルの例を示す図である。図4の例は、m×nサイズの重み行列Wが幅Rの二つの行列に分解されている場合を示す。重み行列Wの各成分は、実数値の重みを示す。分解方法は、例えば特異値分解(SVD:singular value decomposition)を用いて、図4のように分解する。なおここでは2つに分解されている例を示しているが、重み行列Wを三つ以上に分解してもよい。
抽出部3は、1≦R≦min(m,n)の範囲で設定された抽出条件のランクRに従って、第1機械学習モデルから第2機械学習モデルを抽出する。ランクRは、上述の図4で説明した抽出条件リストに記載されたランクである。具体的には、Rは、基底ベクトル(USの各列またはVの各行)のうち、寄与度が低い基底ベクトルを削除後に抽出された数に該当する。j(=1,…,min(m,n))番目の各基底ベクトルの寄与度αは、例えば特異値の大きさに基づいて計算される。第1実施形態では、寄与度αは、特異値を最大値で正規化する下記式(1)を用いて計算される。
Figure 2021043772
ここでσは、j番目の基底ベクトルの特異値(対角行列Sの対角成分)を表す。なお寄与度として、分散基準、情報量基準及び判別基準などを用いてもよい。モデルサイズは、重み行列Uの成分(重み係数)の数mR、及び、重み行列V の成分の数Rnの和で示される。
ニューラルネットワークが複数の層を持つ場合など、第1機械学習モデルが複数の重み行列Wを有する場合は、それぞれの重み行列Wについて上記分解処理が行われてもよい。なお、抽出部3の抽出処理は、第1機械学習モデルに対して一度だけ実行されればよい。
モデルサイズは、抽出部3によって生成される第2機械学習モデルのサイズである。
抽出部3は、ランクRに応じて、重み係数のテンソルの分解テンソルの幅を設定する。第1実施形態では、抽出部3は、設定部2から抽出条件を受け付けるたびに、重み行列Wの幅rとして(U)V の幅r(1≦r≦R)を設定する。
図5は第1実施形態における第1機械学習モデルの重み行列Wの幅rについて説明するための図である。重み行列Wの幅rは、分解された重み行列Uの列数r(分解された重み行列V の行数r)によって決定される。抽出部3は、R個の基底ベクトルからr(1≦r≦R)個の基底ベクトルを選択することによって、分解テンソル(図3では、重み行列UrSr及び重み行列V )の幅を設定する。具体的には、抽出部3は、設定部2から入力される抽出条件をもとに、寄与度αの大きい基底ベクトルから基底ベクトルを追加して、目的のモデルサイズとなるまで、重み行列Wの幅rを増加させる。または、抽出部3は、寄与度αの小さい基底ベクトルから基底ベクトルを削除して、目的のモデルサイズとなるまで重み行列Wの幅rを減少させる。
第1機械学習モデルが複数の重み行列Wを有する場合(多層の場合)は、各重み行列Wが目的のサイズになるまで、独立に幅rの設定を行ってもよい。この場合は各重み行列Wのパラメータ数が同じであれば、幅rは一様になる。または、複数の重み行列Wに含まれる基底ベクトルの寄与度を大きい順または小さい順に一列に並べた上で、上記幅rの設定を行ってもよい。この場合は、寄与度の大きい基底ベクトルを含む重み行列Wの幅rが優先的に増加するため、各重み行列Wのパラメータ数が同じであっても、幅rは非一様になる。
図6Aは第1実施形態の幅rの設定例(一様な場合)を示す図である。図6Bは第1実施形態の幅rの設定例(非一様な場合)を示す図である。図6A及びBの例は、512ノードをもつ中間層3つからならニューラルネットワークの幅rを設定した場合を示す。h1〜3は、中間層の階層を示す。非一様の方式では、図6Bに示すように、寄与度の大きい層(寄与度の大きい基底ベクトルをより多く含む重み行列Wに対応する層)ほど幅rが大きくなる。これらの各重み行列Wの幅rとモデルサイズとの関係は予め抽出条件リストに登録されておくことが望ましい。なお、図6A及びBは、中間層3つからならニューラルネットワークの場合を例示しているが、中間層の層数は任意でよい。
図1に戻り、抽出部3は、抽出条件に応じて幅r(1≦r≦R)が設定されるたびに、抽出処理を行い、抽出されたモデルを第2機械学習モデルとして提供部6へ入力する。具体的には、抽出部3は、第1機械学習モデルを、設定された幅を有する2以上の分解テンソルによって表される第2機械学習モデルに変更する。第1実施形態では、抽出部3は、幅r(1≦r≦R)を示すランクが入力されるたびに、重み行列Wの幅rを変更し、変更されたモデル(重み係数)を第2機械学習モデルとして提供部6に入力する。これにより重み行列Wのパラメータ数(重み係数の数)を、(m+n)≦(m+n)r≦(m+n)Rの範囲で変更できる。
図7は第1実施形態の抽出部3により、第1機械学習モデルの幅を変更する例を示す図である。図7の例は、中間層3つからなるニューラルネットワークの幅を変更する場合を示す。この場合、1層、2層、3層目につながる重み行列Wのそれぞれが、上述の分解処理によって、重み行列US及びVに分解される。抽出部3は、第1層につながる重み行列Wを、幅r1の重み行列US及びVに変更し、第2層につながる重み行列Wを、幅r2の重み行列US及びVに変更し、第3層につながる重み行列Wを、幅r3の重み行列US及びVに変更することにより、フルランクRを有する第1機械学習モデルから特定のランクを保持した第2機械学習モデルを生成する。
なお、抽出部3は、第1機械学習モデルに含まれる重み行列の一部を分解の対象としてもよい。すなわち、抽出部3は、第1機械学習モデルに含まれる重み行列のうち、少なくとも1つの重み行列を特異値分解により2つ以上の行列に分解し、分解後の行列のサイズをランクに応じて変えることによって、第1機械学習モデルから第2機械学習モデルを抽出してもよい。
また、抽出部3は、モデルが正規化処理を有する場合、幅r(1≦r≦R)に基づいて、正規化処理のパラメータを変更することで、幅変更の影響を補正する。例えば、第1機械学習モデルが正規化処理をする正規化層を含む場合、正規化処理で使用されるパラメータを、抽出条件のランクに応じて補正する。第1実施形態ではニューラルネットワークがBatch normalization層を有する場合に、平均及び分散のパラメータを補正する場合について説明する。
Batch normalization層は、重み行列Wによる入力xの射影後のベクトルyを、以下のように正規化する。
Figure 2021043772
Figure 2021043772
Figure 2021043772
Figure 2021043772
ここで、Γ、βは学習で決定されるスケールおよびバイアスパラメータ、μ、Zが学習で決定される平均および分散のパラメータである。幅rを用いると、μ、Zの補正値μr、Zrは以下のように計算される。
Figure 2021043772
Figure 2021043772
Figure 2021043772
ここでΣは、学習サンプルを用いて計算されたyの共分散行列である。ZrはΣrの対角成分のみを取出した対角行列である。
次に、提供部6について説明する。
提供部6は、抽出部3から第2機械学習モデルを受け付けると、当該第2機械学習モデルをデバイス情報により特定されるデバイスに、ネットワーク200を介して提供する。提供部6は、第2機械学習モデルを、通信するために好適なフォーマットに整形する機能を有していてもよい。このフォーマットは例えば、HTTP通信などで一般的に使われるXMLやJSONなど、またはSQLなどでもよい。ネットワーク200は、通信プロトコルに合わせて、第2機械学習モデルをデバイス20に送信する。
デバイス20は、提供装置10から第2機械学習モデルを受信すると、当該機械学習モデルをデバイス20のメモリやストレージに保存する。デバイス20は、ニューラルネットワークの推論機能を有しており、センサなどから得たデータを、第2機械学習モデルを用いて処理する。
[提供方法の例]
次に、第1実施形態の提供方法の例について説明する。
図8は第1実施形態の提供方法の例を示すフローチャートである。はじめに、取得部1が、デプロイ対象のデバイス20のデバイス情報を取得する(ステップS1)。次に、設定部2が、ステップS1の処理により取得されたデバイス情報に基づいて、上述の抽出条件を設定する(ステップS2)。次に、記憶制御部4が、記憶部5から第1機械学習モデルを読み出す(ステップS3)。
次に、抽出部3が、ステップS2の処理により設定された抽出条件に基づいて、ステップS3の処理により読み出された第1機械学習モデルの一部を、第2機械学習モデルとして抽出する(ステップS4)。次に、提供部6が、ステップS4の処理により抽出された第2機械学習モデルを、ステップS1の処理により取得されたデバイス情報により特定されるデバイス20に、ネットワーク200を介して提供する(ステップS5)。
以上、説明したように、第1実施形態の提供装置10では、記憶制御部4が、ニューラルネットワークのモデルの演算量を変更可能な第1機械学習モデルを記憶部5に記憶する。取得部2が、デバイス情報を取得する。設定部2が、デバイス情報に基づいて、第1機械学習モデルから第2機械学習モデルを抽出する条件を示す抽出条件を設定する。抽出部が、抽出条件に基づいて第1機械学習モデルから第2機械学習モデルを抽出する。そして、提供部6が、第2機械学習モデルをデバイス情報により特定されるデバイス20に提供する。
これにより第1実施形態の提供装置10によれば、演算量の異なる複数の機械学習モデルを、計算コスト及びストレージコストを抑えて提供できる。
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
[機能構成の例]
図9は第2実施形態の提供システム100−2の機能構成の例を示す図である。第2実施形態の提供システム100−2は、提供装置10−2、及び、デバイス20a〜20cを備える。
第2実施形態の提供装置10−2は、取得部1、設定部2、抽出部3、記憶制御部4、記憶部5、提供部6及びUI(User Interface)部7を備える。
第2実施形態では、第1実施形態の構成に更にUI部7が追加されている。また、記憶制御部4が、取得部1からデバイス情報を受け付け、提供部6からデプロイ情報を受け付け、デバイス情報及びデプロイ情報と、第1機械学習モデルの学習情報とを関連付けて管理情報として記憶部5に記憶する。
[管理情報の例]
図10は第2実施形態の管理情報の例を示す図である。第2実施形態の管理情報は、デバイス情報、デプロイ情報及び学習情報を含む。
デバイス情報は、グループID及びデバイスIDを含む。グループID及びデバイスIDは、図2の説明と同じなので省略する。図10の管理情報の例では、管理情報でグループID及びデバイスIDを記憶することによって、図2のデバイス情報と関連付けられている。
デプロイ情報は、デプロイ日及び抽出IDを含む。デプロイ日は、抽出IDにより識別される抽出条件を満たすようにして抽出された第2機械学習モデルがデプロイされた日である。抽出IDは、図3の説明と同じなので省略する。
学習情報は、モデルID、モデル生成日及びデータIDを含む。モデルIDは、第1機械学習モデルを識別する識別情報である。モデル生成日は、第1機械学習モデルが生成された日である。データIDは、第1機械学習モデルの学習に使用された学習データセットを識別する識別情報である。
図11は第2実施形態のモデル管理の具体例を説明するための図である。図11の例では、デバイス20a−1は、図10の管理情報の2行目と3行目にデータが登録されており、デプロイ日が異なることから、抽出IDが更新されていることが分かるので、第2機械学習モデルが更新されていることが分かる。また、デバイス20a−2は、図10の管理情報の5行目のデータから、モデルIDが更新されていることが分かるので、第2機械学習モデルの抽出元の第1機械学習モデルが更新されていることが分かる。
図1に戻り、UI部7は、ネットワーク200を介してリクエストを受信した場合、当該リクエストに応じて管理情報を出力することによって、管理情報をユーザに公開する。
次に、第2実施形態の動作について説明する。
<モデルデプロイ時の動作例>
提供部6は、第2機械学習モデルをデバイス20に提供すると、抽出条件に提供時の付随情報を付加したデプロイ情報を生成し、当該デプロイ情報を記憶制御部4へ入力する。付随情報は、例えばデプロイ日時、デプロイ時の送受信結果、デプロイ時の通信時間、及び、エラー情報などの情報である。記憶制御部4は、デプロイ情報、及び、取得部1により取得されたデバイス情報を、上述の学習情報に関連付けて、管理情報として記憶部5に記憶する。
これにより、いつ、どのデバイスに、どのような第2機械学習モデルを提供したのかという情報が、様々な情報と紐づけて管理できる。具体的には、上述のデバイス情報、抽出条件、デプロイ情報及び学習情報などを紐付けて管理できる。UI部7は、これらの情報を紐づけて管理することにより、特定のデバイスで不具合が発生した場合に、いつ、どこで、どのデバイスに、どうようなモデルを提供したのかを、ユーザに即座に伝えることが可能となる。
<公開リクエスト受信時の動作例>
次に、提供装置10−2が、ネットワーク200を介して管理情報の公開リクエストを受信した場合の動作について説明する。
UI部7は、管理情報の公開リクエストを受信し、公開リクエストで指定された検索条件に応じた応答を返すことにより、管理情報を公開する。公開リクエストの送信元は、例えばデバイス20等のネットワーク200に接続された装置である。
具体的には、UI部7は、例えばAPIアプリケーションとして、管理情報の公開リクエストを受信し、当該公開リクエストに応じた応答を返す。例えば、UI部7は、デバイスグループ01のデバイスID0001の過去のすべての管理情報の公開リクエストを受信した場合、管理情報からデバイスグループ01、デバイスID0001に該当するすべてのデータを検索し、検索結果を含む応答を公開リクエストの送信元に返す。
また例えば、UI部7は、ウェブアプリケーションとして、ウェブ画面に入力されたデバイスグループ01のデバイスID0001の公開リクエストを受信し、上述の検索結果をウェブアプリケーションの画面に表示してもよい。当該画面には、例えばデバイス情報、デプロイ情報及び学習情報が一覧表示される。これによりユーザは、いつ、どのデータID、どのモデルIDで学習されたモデルが、いつ、どの抽出IDで、どのデバイスIDにデプロイされているかを一覧画面で見ることができ、モデルの更新履歴や、不具合履歴などを即座に知ることが可能となる。
[提供方法の例]
次に、第2実施形態の提供方法の例について説明する。
図12は第2実施形態の提供方法の例を示すフローチャートである。ステップS11〜ステップS15の説明は、第1実施形態のステップS1〜ステップS5と同じなので省略する。
提供部6は、ステップS15の処理により提供された第2機械学習モデルのデプロイ情報を生成する(ステップS16)。次に、記憶制御部4が、ステップS16の処理により生成されたデプロイ情報を記憶部5に記憶する(ステップS17)。次に、UI部7は、公開リクエストに応じて、管理情報を公開する(ステップS18)。
以上、説明したように、第2実施形態によれば、任意のモデルサイズで推論が可能な第1機械学習モデルが、いつ、どこで、どうやって学習されたかを管理すると共に、第1機械学習モデルが、いつ、どこで、どうやって、第2機械学習モデルとして提供されたかを管理できる。第2実施形態の管理情報を用いれば、モデルそのものを管理するストレージコストを要することなく、デプロイ時の抽出IDから、デプロイ時の同一IDのモデルを再現できる。不具合時には、デプロイ時と同一モデルを生成して検証することができ、管理コストを低減できる。第2実施形態によれば、どのデバイスにどのモデルをデプロイしたかが他の情報を合わせて一覧管理できるので、例えば、デプロイするデバイス20が1万台などに増えた場合でも、ネットワーク200を介してデバイス20を特定し、新しくモデルサイズ等を変更したモデルをデプロイできる。このため、再学習が不要であり、学習コストを低減できる。
(第3実施形態)
次に第3実施形態について説明する。第3実施形態の説明では、第2実施形態と同様の説明については省略し、第2実施形態と異なる箇所について説明する。
[機能構成の例]
図13は第3実施形態の提供システム100−3の機能構成の例を示す図である。第2実施形態の提供システム100−3は、提供装置10−3、及び、デバイス20a〜20cを備える。
第3実施形態の提供装置10−3は、取得部1、設定部2、抽出部3、記憶制御部4、記憶部5、提供部6、UI部7及び学習部8を備える。
第3実施形態では、第2実施形態の構成に更に学習部8が追加されている。また、記憶部5が、学習データセットが登録された学習DB(Database)を記憶する。
学習DBは、ニューラルネットワークの学習に用いるあらゆるデータセットが登録されたデータベースである。例えば、自動車の運転支援で用いられる物体検出のモデルを開発する場合には、自動車などを用いて予め撮影された画像と、その画像に含まれる物体を教示したラベル画像とのペアデータが大量に登録されている。また、そのモデルを学習するために使われるニューラルネットワークのモデルも、同学習データセットの一部として多数登録されている。
第3実施形態では、例として、画像から目標物を検出する物体検出タスクを例に挙げて説明する。例えば、物体検出の従来技術としてSingle Shot Detection(SSD)という従来技術(非特許文献2)が公開されている。
ここでは、上記SSDにおいて前段の特徴抽出部分にResNet−Nを利用した例を示す。ResNetは近年様々なタスクに利用されるネットワーク構造であり、ResBlockを複数組み合わせてニューラルネットワークを深くすることで、モデルの表現能力を向上させ、性能向上させると共に、ネットワークを深くしても安定して学習が可能な深層学習モデルである。上記NはResNetの深さを表しており、例えばResNet−34、ResNet−50などの様々な構造が知られている。これらの学習前のモデルが学習DBに登録されている。なお、ここでは単純化のためのResNetの例を説明したが、学習前のモデルで用いられる畳み込み層や全結合層が持つ重み行列Wは、第1機械学習モデルと同じように分解が可能な構造を持つ。
記憶制御部4は、学習DBから学習データセットを読み出し、当該学習データセットを学習部8に入力する。学習部8は、学習データセットを用いて第1機械学習モデルを学習する。第1機械学習モデルは、学習情報として、利用したデータIDやモデルを生成した日時などの情報と共に記憶部5に記憶される。
<学習部の動作例>
図14は第3実施形態の学習部8の機能構成の例を示す図である。第3実施形態の学習部8は、モデル取得部21、学習データ取得部22、近似部23、損失計算部24、勾配計算部25、勾配集積部26及び更新部27を備える。
学習データセットは、モデルの入力データと、教師データとを含む。教師データは、入力データに対応するモデルの出力データ(正解ラベル)を示す。学習データ取得部22は、学習中の各ステップでは、入力データの全てまたは一部を、幅A〜Cモデル101a〜cに入力し、教師データの全てまたは一部を損失計算部24に入力する。
近似部23は、m×nサイズの重み行列Wを、よりランクの低い重み行列Wrに近似する。近似方法は、例えば上述の特異値分解を用いて、Wr=U とする。次数r(上述の幅r)には、1≦r≦min(m,n)の範囲で予め決定された値、累積寄与率などを用いて計算された値、及び、ランダムに選択された値などが用いられる。
なお、モデルが複数の重み行列Wを有する場合は、近似部23は、全ての重み行列Wを近似しても良いし、一部の重み行列Wを選択して近似しても良い。重み行列Wrに含まれるr個の基底の選択に当たっては、特異値などに基づいて定められた寄与度が大きいものから選択するとよい。近似部23は、上述の近似方法で単一のモデルから、ランクrの異なる複数の近似モデルを生成する。なお、近似モデルの数は、3つに限らず任意でよい。
図14の例では、近似部23は、近似モデルとして、幅A〜Cモデル101a〜cを生成する。幅Aモデル101aは、幅r=Aである重み行列Wによって表されるモデルである。幅Bモデル101bは、幅r=Bである重み行列Wによって表されるモデルである。幅Cモデル101cは、幅r=Cである重み行列Wによって表されるモデルである。近似モデルは、それぞれの重み行列W〜W以外の全てのパラメータを共有して処理を行う。
損失計算部24は、各ランクri(i=1,…,M)の近似モデルについて、損失関数L(D,Wri,Θ)(i=1,…,M)を計算する。ここで、Mはモデル数であり、例えば、図7に示す三つのモデルを用いる場合はM=3である。Dは学習データである。Lは損失関数であり、分類問題などでは例えばクロスエントロピー関数などを用いる。Wriは、ランクriの近似モデルの重み行列を表す。ΘはWri以外の全ての学習可能なパラメータを表す。なお損失関数に、重みのL正則化などの正則化関数を追加してもよい。
勾配計算部25は、各近似モデルについて、下記式(9)及び(10)により、損失関数を微分して勾配を計算する。
Figure 2021043772
Figure 2021043772
ここで、上記式(9)の重み行列Wに関する微分は、各近似モデルの重み行列Wriについてではなく、近似前の重み行列Wに関して計算する。具体的には例えば、下記式(11)又は(12)により計算する。
Figure 2021043772
Figure 2021043772
ここでUriおよびVriは、ランクriに近似した際に得られる行列である。
勾配集積部26は、各近似モデルの勾配を集積して更新部27へ入力する。具体的には、勾配集積部26は、下記式(13)及び(14)によって、各近似モデルの勾配を集積する。
Figure 2021043772
Figure 2021043772
ここでα,β(i=1,…,M)は、各損失の加重を表す係数である。α,βは、例えば予め決定された値、各モデルのランク(幅r)に応じて計算される値、及び、学習の進捗によって決定される値などである。なお損失関数に、重みのL正則化などの正則化関数を追加する場合は、上記式(13)及び(14)に正則化関数の勾配を加える。
更新部27は、勾配集積部26で集積された勾配を使って、複数の近似モデルに対して同時に損失関数を最小化することによって、学習対象のモデルのパラメータを更新する。更新方法は、momentum−SGD及びAdamなどの確率的勾配法を用いるとよい。
このような順序で学習が行われ、学習部8により学習された第1機械学習モデルが記憶部5に記憶される。
[提供方法の例]
次に、第3実施形態の学習方法の例について説明する。
図15は第3実施形態の学習方法の例を示すフローチャートである。はじめに、学習部8が、記憶制御部4により読み出された学習データセットを受け付ける(ステップS21)。次に、学習部8が、ステップS21の処理により受け付けられた学習データセットを用いて第1機械学習モデルを学習する(ステップS22)。次に、記憶制御部4が、ステップS22の処理により学習された第1機械学習モデルを記憶部5に記憶する(ステップS23)。
以上、説明したように、第3実施形態では、提供装置10−3が学習部8を備えることにより、同じシステム内で、学習処理、モデル抽出処理、モデル提供処理、が統一的に扱われ、それぞれの処理に係る情報を統合管理するデータベースで扱うことができる。これにより情報管理の分散を防ぎ、各作業を行うユーザの管理作業の手間を減らすことができる。
次に、上述の第1乃至第3実施形態の変形例として、NeuralODEを用いる場合について説明する。
<NeuralODEの説明>
ニューラルネットワークの推論時に、深さ方向を任意に変更可能な技術としてネットワークの常微分方程式による表現方法が従来技術(非特許文献2、ODEと略す)として公開されている。
一般的なニューラルネットワークは、有限回の処理層を組み合わせて構成され、例えば畳み込み処理を複数回実施することで推論処理が行われる。一方、ODEでは、処理層を連続表現と捉え、任意の処理層で推論することが可能である(例えば従来10層あったものを8.9層のように小数点も扱える)。画像認識処理などで利用されるResNetを常微分方程式の形で表現し、学習させておき、推論時に解を求めるときに、評価点を自由に変更することが可能である。この技術は、例えばResNetが持つ1つのResBlockのパラメータで、複数回の処理層を表現できるため、メモリ効率が良い。また、推論時に任意の評価点(層数)で推論できるため、演算量と精度を調整することが可能である。この技術を用いて、学習したモデルを第1機械学習モデルとし、表現する評価点の数を図3の抽出条件リストにランクとして設定しておくことで、幅方向だけでなく、深さ(ニューラルネットワークの層数)方向でも任意の演算量でモデルを表現(第2機械学習モデルを生成)することが可能である。この場合、モデルサイズは変わらないので、演算量と推論情報などを加味してデバイス20に最適な抽出条件リストを作成すればよい。
この変形例では、第1機械学習モデルは、ResNetブロックを含み、抽出条件は、例えば第2機械学習モデルの層数を含む。抽出部3は、ResNetブロックを常微分方程式とみなして、抽出条件で指定された層数に展開されたネットワーク表現に分解することによって、第1機械学習モデルから第2機械学習モデルを抽出する。
最後に、第1乃至第3実施形態の提供装置100(100−2,100−3)のハードウェア構成の例について説明する。
[ハードウェア構成の例]
図16は第1乃至第3実施形態の提供装置100(100−2,100−3)のハードウェア構成の例を示す図である。なお、提供装置100は1つのハードウェア構成で実現しても良いし、複数のハードウェア構成を組み合わせても良い。
提供装置100は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
制御装置301は、例えばCPU(Central Processing Unit)である。制御装置301は、補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。主記憶装置302は、ROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。主記憶装置302は、一般的にはDRAMなどで実現される。補助記憶装置303は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及び、メモリカード等である。
表示装置304は表示情報を表示する。表示装置304は、例えばGPUである。ここでは外部に表示する機能として、液晶ディスプレイ等と接続されていても良い。入力装置305は、提供装置100を操作するための入力インタフェースである。入力装置305は、例えばキーボードやマウス等である。提供装置100がスマートフォン及びタブレット型端末等のスマートデバイスの場合、表示装置304及び入力装置305は、例えばタッチパネルである。通信装置306は、他の装置と通信するためのインタフェースである。
第1乃至第3実施形態の提供装置100(100−2,100−3)で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R及びDVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
また第1乃至第3実施形態の提供装置100(100−2,100−3)で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また第1乃至第3実施形態の提供装置100(100−2,100−3)で実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
また第1乃至第3実施形態の提供装置100(100−2,100−3)のプログラム、ROM等に予め組み込んで提供するように構成してもよい。
第1乃至第3実施形態の提供装置100(100−2,100−3)で実行されるプログラムは、上述した図1(図9,図13)の機能ブロックのうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御装置301が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置302上にロードされる。すなわち上記各機能ブロックは主記憶装置302上に生成される。
なお上述した図1(図9,図13)の各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC等のハードウェアにより実現してもよい。
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2以上を実現してもよい。
また第1乃至第3実施形態の提供装置100(100−2,100−3)の動作形態は任意でよい。第1乃至第3実施形態の提供装置100(100−2,100−3)を、例えばネットワーク上のクラウドシステムとして動作させてもよい。
以上、説明したように、第1乃至第3実施形態の提供装置100(100−2,100−3)では、同一タスクに関して任意に処理能力を変更可能な共有スケーラブルモデル(第1機械学習モデル)を、例えば1つ有しておけばよい。設定部2が、取得部1により取得されたデバイス情報に応じて抽出条件を設定し、記憶部5が、複数のエッジデバイスのデバイス情報と、抽出条件を満たすデプロイ情報とを含む管理情報(図10参照)を記憶する。これにより、例えば複数のエッジデバイス向けモデルを学習するための計算コストを低減し、複数のエッジデバイス向けモデルのストレージコストも低減できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 取得部
2 設定部
3 抽出部
4 記憶制御部
5 記憶部
6 提供部
7 UI部
8 学習部
10 提供装置
20 デバイス
21 モデル取得部
22 学習データ取得部
23 近似部
24 損失計算部
25 勾配計算部
26 集積部
27 更新部
200 ネットワーク
301 制御装置
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信装置

Claims (13)

  1. ニューラルネットワークのモデルの演算量を変更可能な第1機械学習モデルを記憶部に記憶する記憶制御部と、
    デバイス情報を取得する取得部と、
    前記デバイス情報に基づいて、前記第1機械学習モデルから第2機械学習モデルを抽出する条件を示す抽出条件を設定する設定部と、
    前記抽出条件に基づいて前記第1機械学習モデルから第2機械学習モデルを抽出する抽出部と、
    前記第2機械学習モデルを前記デバイス情報により特定されるデバイスに提供する提供部と、
    を備える提供装置。
  2. 前記第2機械学習モデルのサイズは、前記第1機械学習モデルのサイズよりも小さい、
    請求項1に記載の提供装置。
  3. 前記記憶制御部は、前記デバイス情報と前記抽出条件とを関連付けて、管理情報として前記記憶部に記憶する、
    請求項1又は2に記載の提供装置。
  4. 前記第1機械学習モデルを学習する学習部を更に備え、
    前記記憶制御部は、前記管理情報に、前記第1機械学習モデルの学習情報を更に関連付けて前記記憶部に記憶する、
    請求項3に記載の提供装置。
  5. 前記学習情報は、前記第1機械学習モデルを識別する識別情報、前記第1機械学習モデルが生成された日、及び、前記第1機械学習モデルの学習に使用された学習データセットを識別する識別情報を含む、
    請求項4に記載の提供装置。
  6. 前記管理情報の公開リクエストを受信し、前記公開リクエストで指定された検索条件に応じた応答を返すUI(User Interface)、
    を更に備える請求項3乃至5のいずれか1項に記載の提供装置。
  7. 前記デバイス情報は、前記デバイスを特定する特定情報、及び、前記デバイスのハードウェア仕様を示すスペック情報を含む、
    請求項1乃至6のいずれか1項に記載の提供装置。
  8. 前記デバイス情報は、前記第2機械学習モデルを用いた推論処理の制御情報を更に含む、
    請求項7に記載の提供装置。
  9. 前記制御情報は、前記第2機械学習モデルが搭載されたデバイスで実行される推論処理の目標演算量、前記デバイスで実行される推論処理に用いられる前記第2機械学習モデルの目標モデルサイズ、前記デバイスで実行される推論処理の目標速度、及び、前記デバイスで実行される推論処理の目標認識率のうち、少なくとも1つを含む、
    請求項8に記載の提供装置。
  10. 前記抽出条件は、前記第2機械学習モデルの演算量を制御するランクを含み、
    前記抽出部は、前記第1機械学習モデルに含まれる重み行列のうち、少なくとも1つの重み行列を特異値分解により2つ以上の行列に分解し、分解後の行列のサイズを前記ランクに応じて変えることによって、前記第1機械学習モデルから前記第2機械学習モデルを抽出する、
    請求項1乃至9のいずれか1項に記載の提供装置。
  11. 前記抽出条件は、前記第2機械学習モデルの層数を含み、
    前記第1機械学習モデルは、ResNetブロックを含み、
    前記抽出部は、前記ResNetブロックを常微分方程式とみなして、前記抽出条件で指定された層数に展開されたネットワーク表現に分解することによって、前記第1機械学習モデルから前記第2機械学習モデルを抽出する、
    請求項1乃至9のいずれか1項に記載の提供装置。
  12. ニューラルネットワークのモデルの演算量を変更可能な第1機械学習モデルを記憶部から読み出すステップと、
    デバイス情報を取得するステップと、
    前記デバイス情報に基づいて、前記第1機械学習モデルから第2機械学習モデルを抽出する条件を示す抽出条件を設定するステップと、
    前記抽出条件に基づいて前記第1機械学習モデルから第2機械学習モデルを抽出するステップと、
    前記第2機械学習モデルを前記デバイス情報により特定されるデバイスに提供するステップと、
    を含む提供方法。
  13. コンピュータを、
    ニューラルネットワークのモデルの演算量を変更可能な第1機械学習モデルを記憶部に記憶する記憶制御部と、
    デバイス情報を取得する取得部と、
    前記デバイス情報に基づいて、前記第1機械学習モデルから第2機械学習モデルを抽出する条件を示す抽出条件を設定する設定部と、
    前記抽出条件に基づいて前記第1機械学習モデルから第2機械学習モデルを抽出する抽出部と、
    前記第2機械学習モデルを前記デバイス情報により特定されるデバイスに提供する提供部、
    として機能させるためのプログラム。
JP2019166084A 2019-09-12 2019-09-12 提供装置、提供方法及びプログラム Active JP7051772B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019166084A JP7051772B2 (ja) 2019-09-12 2019-09-12 提供装置、提供方法及びプログラム
US16/802,231 US11436490B2 (en) 2019-09-12 2020-02-26 Providing apparatus, providing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019166084A JP7051772B2 (ja) 2019-09-12 2019-09-12 提供装置、提供方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2021043772A true JP2021043772A (ja) 2021-03-18
JP7051772B2 JP7051772B2 (ja) 2022-04-11

Family

ID=74863432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019166084A Active JP7051772B2 (ja) 2019-09-12 2019-09-12 提供装置、提供方法及びプログラム

Country Status (2)

Country Link
US (1) US11436490B2 (ja)
JP (1) JP7051772B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022190801A1 (ja) * 2021-03-10 2022-09-15 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理システム、情報処理方法及び記録媒体
WO2022202366A1 (ja) * 2021-03-25 2022-09-29 パナソニックIpマネジメント株式会社 データ支援システム、データ支援方法、プログラム、統合システム、及び処理装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6595151B2 (ja) 2017-06-29 2019-10-23 株式会社Preferred Networks 訓練方法、訓練装置、プログラム及び非一時的コンピュータ可読媒体
US20220310069A1 (en) * 2021-03-25 2022-09-29 Kwai Inc. Methods and devices for irregular pruning for automatic speech recognition
WO2024088580A1 (en) * 2023-02-03 2024-05-02 Lenovo (Singapore) Pte. Ltd Assisting an analytics training function to select a machine learning model in a wireless communication network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142766A1 (ja) * 2017-02-03 2018-08-09 パナソニックIpマネジメント株式会社 学習済みモデル提供方法および学習済みモデル提供装置
WO2018173121A1 (ja) * 2017-03-21 2018-09-27 株式会社Preferred Networks サーバ装置、学習済モデル提供プログラム、学習済モデル提供方法及び学習済モデル提供システム
US20190122108A1 (en) * 2017-10-24 2019-04-25 Baidu Usa Llc Systems and methods for trace norm regularization and faster inference for embedded models

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11488035B2 (en) * 2017-11-08 2022-11-01 Siemens Aktiengesellschaft Method and device for machine learning in a computing unit
US11475369B2 (en) * 2019-06-28 2022-10-18 Intel Corporation Methods and apparatus to provide machine assisted programming
JP7114528B2 (ja) 2019-07-08 2022-08-08 株式会社東芝 推論装置、学習装置、推論方法及び学習方法
US11475128B2 (en) * 2019-08-16 2022-10-18 Mandiant, Inc. System and method for heterogeneous transferred learning for enhanced cybersecurity threat detection
US11537882B2 (en) * 2019-10-28 2022-12-27 Samsung Sds Co., Ltd. Machine learning apparatus and method for object detection
US11087883B1 (en) * 2020-04-02 2021-08-10 Blue Eye Soft, Inc. Systems and methods for transfer-to-transfer learning-based training of a machine learning model for detecting medical conditions
US11557399B2 (en) * 2020-04-30 2023-01-17 Optum, Inc. Integrative machine learning framework for combining sentiment-based and symptom-based predictive inferences

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142766A1 (ja) * 2017-02-03 2018-08-09 パナソニックIpマネジメント株式会社 学習済みモデル提供方法および学習済みモデル提供装置
WO2018173121A1 (ja) * 2017-03-21 2018-09-27 株式会社Preferred Networks サーバ装置、学習済モデル提供プログラム、学習済モデル提供方法及び学習済モデル提供システム
US20190122108A1 (en) * 2017-10-24 2019-04-25 Baidu Usa Llc Systems and methods for trace norm regularization and faster inference for embedded models

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022190801A1 (ja) * 2021-03-10 2022-09-15 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理システム、情報処理方法及び記録媒体
WO2022202366A1 (ja) * 2021-03-25 2022-09-29 パナソニックIpマネジメント株式会社 データ支援システム、データ支援方法、プログラム、統合システム、及び処理装置

Also Published As

Publication number Publication date
US20210081781A1 (en) 2021-03-18
US11436490B2 (en) 2022-09-06
JP7051772B2 (ja) 2022-04-11

Similar Documents

Publication Publication Date Title
JP7051772B2 (ja) 提供装置、提供方法及びプログラム
US11693901B2 (en) Systems and methods for geolocation prediction
US10360500B2 (en) Two-phase distributed neural network training system
EP3416105A1 (en) Information processing method and information processing device
US20160092767A1 (en) Apparatus and method for learning a model corresponding to time-series input data
WO2017003886A1 (en) Training and operation of computational models
CN108780314A (zh) 针对不稳定环境的模型适配和在线学习
JP6948851B2 (ja) 情報処理装置、情報処理方法
JP7114528B2 (ja) 推論装置、学習装置、推論方法及び学習方法
JP6516406B2 (ja) 処理装置、処理方法、およびプログラム
CN111783810A (zh) 用于确定用户的属性信息的方法和装置
US11227228B2 (en) Processing apparatus, processing method, estimating apparatus, estimating method, and program
Snyder et al. A deep learning approach for lower back-pain risk prediction during manual lifting
Wang et al. Road surface real-time detection based on Raspberry Pi and recurrent neural networks
US20230115987A1 (en) Data adjustment system, data adjustment device, data adjustment method, terminal device, and information processing apparatus
WO2019234156A1 (en) Training spectral inference neural networks using bilevel optimization
US20200104644A1 (en) Training apparatus, training method and recording medium
CN116843022A (zh) 一种数据处理方法及相关装置
US20230052255A1 (en) System and method for optimizing a machine learning model
US20210209489A1 (en) Processing a classifier
CN115718740A (zh) 用于稀疏时间序列数据集的数据插补的方法和装置
JP2023106081A (ja) モデル生成方法、モデル生成装置、推論プログラム、及び推論装置
WO2019235370A1 (ja) 学習装置、予測装置、方法、及びプログラム
Augsondit et al. Rockfall Isolation Technique Based on DC-DBSCAN with k-Means Clustering and k-Nearest Neighbors Algorithm
US20240005172A1 (en) Learning system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210312

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220330

R150 Certificate of patent or registration of utility model

Ref document number: 7051772

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150