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

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

▶ 株式会社アクセルの特許一覧

特許7505730推論システム、情報処理装置、及び情報処理プログラム
<>
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図1
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図2
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図3
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図4
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図5
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図6
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図7
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図8
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図9
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図10
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図11
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図12
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図13
  • 特許-推論システム、情報処理装置、及び情報処理プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】推論システム、情報処理装置、及び情報処理プログラム
(51)【国際特許分類】
   G06N 5/04 20230101AFI20240618BHJP
   G06N 20/00 20190101ALI20240618BHJP
   G06N 3/02 20060101ALI20240618BHJP
【FI】
G06N5/04
G06N20/00 130
G06N3/02
【請求項の数】 13
(21)【出願番号】P 2019206313
(22)【出願日】2019-11-14
(65)【公開番号】P2021081787
(43)【公開日】2021-05-27
【審査請求日】2022-09-20
(73)【特許権者】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100085660
【弁理士】
【氏名又は名称】鈴木 均
(74)【代理人】
【識別番号】100149892
【弁理士】
【氏名又は名称】小川 弥生
(74)【代理人】
【識別番号】100185672
【弁理士】
【氏名又は名称】池田 雅人
(72)【発明者】
【氏名】客野 一樹
【審査官】新井 則和
(56)【参考文献】
【文献】米国特許出願公開第2017/0286401(US,A1)
【文献】国際公開第2019/171443(WO,A1)
【文献】特開2018-073024(JP,A)
【文献】特開2017-215898(JP,A)
【文献】特開2015-135552(JP,A)
【文献】特開2017-058406(JP,A)
【文献】The TensorFlow Hub Authors,TensorFlow Hub 0.2.0,2018年,[検索日 2024.02.07]インターネット<URL:https://github.com/tensorflow/hub/releases/tag/v0.2.0>,hub-0.2.0.zip中のREADME.md、docs/basics.md及びexamples/colab/object_detection.ipynb
【文献】奥山 果穂 ほか,複数推論器推論サーバのためのFPGAおよびDPDKによる通信高効率化手法,電子情報通信学会技術研究報告 ,一般社団法人電子情報通信学会,2018年,Vol.118 No.93 ,頁101~106
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
サーバ装置と推論装置とを含む推論システムであって、
前記サーバ装置は、
前記推論装置から、推論の対象の入力データを受信する第1受信部と、
前記推論装置から受信した入力データを記憶する記憶部と、
前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、
を備え、
前記推論装置は、
前記入力データが入力されたとき、前記入力データに基づく推論処理を、前記学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、
前記入力データが入力されたとき、前記入力データを前記サーバ装置に送信する第1送信部と、
を備え、
前記サーバ装置の前記第1受信部は、前記推論装置から、前記推論部による推論結果を示す推論結果出力データを受信し、
前記サーバ装置は、さらに、
前記推論結果出力データを受信したとき、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行う後処理部と、
前記後段の処理に対応する形式に変換した変換出力データを、前記推論装置に送信する第2送信部と、
を備え、
前記推論装置の前記第1送信部は、前記推論結果出力データを前記サーバ装置に送信し、
前記推論装置は、
前記変換出力データを受信する第2受信部と、
前記変換出力データを受信したとき、前記変換出力データを前記後段の処理に出力する出力部と、
を備えることを特徴とする、
推論システム。
【請求項2】
サーバ装置と推論装置とを含む推論システムであって、
前記サーバ装置は、
前記推論装置から、推論の対象の入力データを受信する第1受信部と、
前記推論装置から受信した入力データを記憶する記憶部と、
前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、
を備え、
前記推論装置は、
前記入力データが入力されたとき、前記入力データに基づく推論処理を、前記学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、
前記入力データが入力されたとき、前記入力データを前記サーバ装置に送信する第1送信部と、
を備え、
前記サーバ装置の第1受信部は、前記推論装置から、前記入力データを受信し、
前記サーバ装置は、
前記入力データを受信したとき、前記入力データの形式を前記推論装置で実行される推論処理に対応する形式に変換する前処理を行う前処理部と、
前記推論処理に対応する形式に変換した変換入力データを、前記推論装置に送信する第2送信部と、をさらに備え、
前記推論装置は、
前記サーバ装置から前記変換入力データを受信する第2受信部と、
前記変換入力データを受信したとき、前記変換入力データをニューラルネットワークに入力する入力部と、をさらに備え、
前記推論装置の前記推論部は、前記変換入力データが前記ニューラルネットワークに入力されたとき、前記ニューラルネットワークを用いて推論処理を実行する、
ことを特徴とする推論システム。
【請求項3】
請求項1に記載の推論システムにおいて、
前記推論装置は、前記推論装置で用いられる前記ニューラルネットワークを構成する前記学習済みモデルの識別子を、前記推論部による推論結果を示す推論結果出力データに付与する付与部を備え、
前記推論装置の前記第1送信部は、前記学習済みモデルの前記識別子が付与された前記推論結果出力データを前記サーバ装置に送信し、
前記サーバ装置の前記後処理部は、前記サーバ装置の前記第1受信部が前記推論結果出力データを受信したとき、前記後処理として、前記推論結果出力データに付与される前記識別子に応じて、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換し、
前記サーバ装置の前記第2送信部は、前記後段の処理に対応する形式に変換した変換出力データを、前記推論装置に送信する、
ことを特徴とする推論システム。
【請求項4】
サーバ装置と推論装置とを含む推論システムであって、
前記サーバ装置は、
前記推論装置から、推論の対象の入力データを受信する第1受信部と、
前記推論装置から受信した入力データを記憶する記憶部と、
前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、
を備え、
前記推論装置は、
前記入力データが入力されたとき、前記入力データに基づく推論処理を、前記学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、
前記入力データが入力されたとき、前記入力データを前記サーバ装置に送信する第1送信部と、
を備え、
前記サーバ装置は、さらに、
前記学習済みモデルの取得を要求する取得要求を受け付ける第1受付部と、
前記第1受付部が前記取得要求を受け付けたとき、前記学習済みモデルを前記推論装置に送信する第2送信部と、
を備え、
前記推論装置は、さらに、
ユーザからの前記取得要求を受け付ける第2受付部を備え、
前記推論装置の前記第1送信部は、前記第2受付部が前記取得要求を受け付けたとき、前記取得要求を前記サーバ装置に送信する、
ことを特徴とする推論システム。
【請求項5】
推論処理を行う推論装置と接続される情報処理装置であって、
前記推論装置は、入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、前記入力データと、前記推論処理の結果を示す推論結果出力データと、を前記情報処理装置に送信し、
前記情報処理装置は、
前記推論装置から、推論の対象の入力データを受信する受信部と、
前記推論装置から受信した入力データを記憶する記憶部と、
前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、
を備え、
前記受信部は、前記推論装置から前記推論結果出力データを受信し、
前記情報処理装置は、
前記推論結果出力データを受信したとき、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行う後処理部と、
前記後段の処理に対応する形式に変換した変換出力データを、前記変換出力データを用いた後段処理のために前記推論装置に送信する送信部と、
を備えることを特徴とする情報処理装置。
【請求項6】
推論処理を行う推論装置と接続される情報処理装置であって、
前記推論装置は、入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、前記入力データを前記情報処理装置に送信し、
前記情報処理装置は、
前記推論装置から、推論の対象の入力データを受信する受信部と、
前記推論装置から受信した入力データを記憶する記憶部と、
前記入力データを受信したとき、前記入力データの形式を前記推論装置で実行される推論処理に対応する形式に変換する前処理を行う前処理部と、
前記推論処理に対応する形式に変換した変換入力データを、前記変換入力データを用いた推論処理のために前記推論装置に送信する送信部と、
前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、
を備える、
ことを特徴とする情報処理装置。
【請求項7】
推論処理を行う推論装置と接続される情報処理装置であって、
前記推論装置は、入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、前記入力データを前記情報処理装置に送信し、
前記情報処理装置は、
ユーザからの前記学習済みモデルの取得を要求する取得要求を受け付けた前記推論装置から前記取得要求を受け付ける受付部と、
前記推論装置から、推論の対象の入力データを受信する受信部と、
前記推論装置から受信した入力データを記憶する記憶部と、
前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、
前記受付部が前記取得要求を受け付けたとき、前記学習済みモデルを前記推論装置に送信する送信部と、
を備えることを特徴とする情報処理装置。
【請求項8】
推論処理を行う推論装置と接続される情報処理装置の情報処理方法をプロセッサに実行させる情報処理プログラムであって、
前記推論装置は、入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、前記入力データと、前記推論処理の結果を示す推論結果出力データと、を前記情報処理装置に送信し、
前記プロセッサは、
前記推論装置から、推論の対象の入力データを受信し、
受信した前記入力データを用いた学習を行って学習済みモデルを作成し、
前記推論装置から前記推論結果出力データを受信し、
前記推論結果出力データを受信したとき、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行い、
前記後段の処理に対応する形式に変換した変換出力データを、前記変換出力データを用いた後段処理のために前記推論装置に送信する、
ことを特徴とする情報処理プログラム。
【請求項9】
推論処理を行う推論装置と接続される情報処理装置のプロセッサによって実行される情報処理プログラムであって、
前記推論装置は、入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、前記入力データを前記情報処理装置に送信し、
前記プロセッサは、
前記推論装置から、推論の対象の入力データを受信し、
前記入力データを受信したとき、前記入力データの形式を前記推論装置で実行される推論処理に対応する形式に変換する前処理を行い、
前記推論処理に対応する形式に変換した変換入力データを、前記変換入力データを用いた推論処理のために前記推論装置に送信し、
受信した前記入力データを用いた学習を行って学習済みモデルを作成する、
ことを特徴とする情報処理プログラム。
【請求項10】
推論処理を行う推論装置と接続される情報処理装置のプロセッサによって実行される情報処理プログラムであって、
前記推論装置は、入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、前記入力データを前記情報処理装置に送信し、
前記プロセッサは、
ユーザからの前記学習済みモデルの取得を要求する取得要求を受け付けた前記推論装置から前記取得要求を受け付け、
前記推論装置から、推論の対象の入力データを受信し、
受信した前記入力データを用いた学習を行って学習済みモデルを作成し、
前記取得要求を受け付けたとき、前記学習済みモデルを前記推論装置に送信する、
ことを特徴とする情報処理プログラム。
【請求項11】
サーバ装置と推論装置とを含む推論システムであって、
前記推論装置は、
入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、
前記推論装置で用いられる前記ニューラルネットワークを構成する前記学習済みモデルの識別子を、前記推論部による推論結果を示す推論結果出力データに付与する付与部と、
前記学習済みモデルの前記識別子が付与された前記推論結果出力データを前記サーバ装置に送信する第1送信部と、
を備え、
前記サーバ装置は、前記推論装置から、前記推論結果出力データを受信する第1受信部と、
前記推論結果出力データを受信したとき、前記推論結果出力データに付与される前記識別子に応じて、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行う後処理部と、
前記後段の処理に対応する形式に変換した変換出力データを、前記推論装置に送信する第2送信部と、
を備え、
前記推論装置は、
前記変換出力データを受信する第2受信部と、
前記変換出力データを受信したとき、前記変換出力データを前記後段の処理に出力する出力部と、
を備えることを特徴とする、
推論システム。
【請求項12】
推論処理を行う推論装置と接続される情報処理装置であって、
前記推論装置は、
入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、
前記推論処理の結果を示し、前記推論装置で用いられる前記ニューラルネットワークを構成する前記学習済みモデルの識別子を付与した推論結果出力データと、前記入力データと、を前記情報処理装置に送信し、
前記情報処理装置は、
前記推論装置から、前記推論結果出力データを受信する受信部と、
前記推論結果出力データを受信したとき、前記推論結果出力データに付与される前記識別子に応じて、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行う後処理部と、
前記後段の処理に対応する形式に変換した変換出力データを、前記変換出力データを用いた後段処理のために前記推論装置に送信する送信部と、
を備えることを特徴とする、
情報処理装置。
【請求項13】
推論処理を行う推論装置と接続される情報処理装置のプロセッサによって実行される情報処理プログラムであって、
前記推論装置は、
入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行するとともに、
前記推論処理の結果を示し、前記推論装置で用いられる前記ニューラルネットワークを構成する前記学習済みモデルの識別子を付与した推論結果出力データと、前記入力データと、を前記情報処理装置に送信し、
前記プロセッサは、
前記推論装置から、前記推論結果出力データを受信し、
前記推論結果出力データを受信したとき、前記推論結果出力データに付与される前記識別子に応じて、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行い、
前記後段の処理に対応する形式に変換した変換出力データを、前記変換出力データを用いた後段処理のために前記推論装置に送信する、
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推論システム、情報処理装置、及び情報処理プログラムに関する。
【背景技術】
【0002】
画像認識、音声認識、文字認識などのアプリケーションにおいて、入力層、中間層、及び出力層を含むニューラルネットワークを用いた推論処理が用いられている。
ニューラルネットワークの学習処理では、中間層を多層化した構成を用いたディープラーニングを実行することにより、高い精度で推論可能な学習済みモデルを作成する。
アプリケーションの利用者は、推論装置が実行する推論フレームワークに、ネットワーク構造と重み係数で定義される学習済みモデル(例えば、特許文献1)を読み込ませることにより推論処理を実行する。
なお、推論処理における入力データの形式は、学習時の設計に応じた制限がかけられる。このような制限には、入力ニューロンの数に対応する1データの要素数、及びデータの分解能などがある。
推論装置は、入力データを上記制限に適応した形式にする前処理を実行し、前処理済みの入力データをニューラルネットワークに入力する。
また推論装置は、ニューラルネットワークの出力データを後段で実行される処理に適応した形式にする後処理を実行し、後処理済みの出力データを後段のアプリケーションに出力する。
【0003】
特許文献2には、学習時にニューラルネット演算装置に与えられる学習データについて前処理を施す前処理装置と、認識時にニューラルネット演算装置に与えられる認識データに前処理を施す前処理装置が開示されている。
学習時の前処理では、例えば2値化処理でニューラルネット演算装置に入力させる学習データのデータセット数を適正に少なくして学習時間を短縮させることができる。また認識時の前処理は、例えば量子化処理で認識データの特徴を際立てさせることにより認識率を向上させることができる。
また特許文献2には、前処理装置により前処理された学習データ又は認識データに基づきニューラルネット演算装置で学習演算又は認識演算された結果を受けて、後で使用する機器に合わせてデータ変換(後処理)を行う後処理装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-159499公報
【文献】特開平8-212182公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ニューラルネットワークを用いた推論を行う学習済みモデルは、推論装置の利用者自身が作成するのではなく、推論システムの開発を商業的に行う販売者が作成し、利用者に提供されるケースがある。
この場合、推論装置の利用者は、販売者がネットワーク上にアップロードした学習済みモデルを購入・ダウンロードし、自身の推論装置に予め導入した推論フレームワークに組み込んで利用する。
この場合、学習済みモデルのダウンロード後、推論処理は基本的に推論装置内で完結して行われる。
推論装置における入力データの画像、さらにはその推論結果の情報は、非常に重要な情報である。
特定の学習済みモデルを用いた推論は、その学習済みモデルが適合する種類の画像(車、人物、動物など)に対して行われた可能性が高いからである。
学習済みモデルが適合する入力データを用いて再学習を行うことで、推論の精度が高い学習済みモデルを作成することが出来る。
しかし、推理処理が推論装置内で完結している限りは、学習済みモデルを販売した販売者は、自分たちが作成した学習済みモデルを用いて画像に対して推論を行われたか、どのような推論結果が出力されたかを知ることが出来ない。
本発明はこのような事情を鑑みてなされたものであり、一側面として、学習済みモデルの販売者が、推論装置の入力データを用いて学習済みモデルの再学習を可能とすることを目的とする。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するためになされたものであり、一形態として、サーバ装置と推論装置とを含む推論システムであって、前記サーバ装置は、前記推論装置から、推論の対象の入力データを受信する第1受信部と、前記推論装置から受信した入力データを記憶する記憶部と、前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、を備え、前記推論装置は、前記入力データが入力されたとき、前記入力データに基づく推論処理を、前記学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、前記入力データが入力されたとき、前記入力データを前記サーバ装置に送信する第1送信部と、を備え、前記サーバ装置の前記第1受信部は、前記推論装置から、前記推論部による推論結果を示す推論結果出力データを受信し、前記サーバ装置は、さらに、前記推論結果出力データを受信したとき、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行う後処理部と、前記後段の処理に対応する形式に変換した変換出力データを、前記推論装置に送信する第2送信部と、を備え、前記推論装置の前記第1送信部は、前記推論結果出力データを前記サーバ装置に送信し、前記推論装置は、前記変換出力データを受信する第2受信部と、前記変換出力データを受信したとき、前記変換出力データを前記後段の処理に出力する出力部と、を備える推論システムを特徴とする。
また本発明は、一形態として、サーバ装置と推論装置とを含む推論システムであって、前記サーバ装置は、前記推論装置から、推論の対象の入力データを受信する第1受信部と、前記推論装置から受信した入力データを記憶する記憶部と、前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、を備え、前記推論装置は、前記入力データが入力されたとき、前記入力データに基づく推論処理を、前記学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、前記入力データが入力されたとき、前記入力データを前記サーバ装置に送信する第1送信部と、を備え、前記サーバ装置の第1受信部は、前記推論装置から、前記入力データを受信し、前記サーバ装置は、前記入力データを受信したとき、前記入力データの形式を前記推論装置で実行される推論処理に対応する形式に変換する前処理を行う前処理部と、前記推論処理に対応する形式に変換した変換入力データを、前記推論装置に送信する第2送信部と、をさらに備え、前記推論装置は、前記サーバ装置から前記変換入力データを受信する第2受信部と、前記変換入力データを受信したとき、前記変換入力データをニューラルネットワークに入力する入力部と、をさらに備え、前記推論装置の前記推論部は、前記変換入力データが前記ニューラルネットワークに入力されたとき、前記ニューラルネットワークを用いて推論処理を実行する、推論システムを特徴とする。
また本発明は、一形態として、サーバ装置と推論装置とを含む推論システムであって、前記サーバ装置は、前記推論装置から、推論の対象の入力データを受信する第1受信部と、前記推論装置から受信した入力データを記憶する記憶部と、前記記憶部に記憶された入力データを用いた学習を行って学習済みモデルを作成する学習部と、を備え、前記推論装置は、前記入力データが入力されたとき、前記入力データに基づく推論処理を、前記学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、前記入力データが入力されたとき、前記入力データを前記サーバ装置に送信する第1送信部と、を備え、前記サーバ装置は、さらに、前記学習済みモデルの取得を要求する取得要求を受け付ける第1受付部を備え、前記第1受付部が前記取得要求を受け付けたとき、前記学習済みモデルを前記推論装置に送信する第2送信部と、を備え、前記推論装置は、さらに、ユーザからの前記取得要求を受け付ける第2受付部を備え、前記推論装置の前記第1送信部は、前記第2受付部が前記取得要求を受け付けたとき、前記取得要求を前記サーバ装置に送信する、推論システムを特徴とする。
また本発明は、一形態として、サーバ装置と推論装置とを含む推論システムであって、前記推論装置は、入力データが入力されたとき、前記入力データに基づく推論処理を、学習済みモデルが構成するニューラルネットワークを用いて実行する推論部と、前記推論装置で用いられる前記ニューラルネットワークを構成する前記学習済みモデルの識別子を、前記推論部による推論結果を示す推論結果出力データに付与する付与部と、前記学習済みモデルの前記識別子が付与された前記推論結果出力データを前記サーバ装置に送信する第1送信部と、を備え、前記サーバ装置は、前記推論装置から、前記推論結果出力データを受信する第1受信部と、前記推論結果出力データを受信したとき、前記推論結果出力データに付与される前記識別子に応じて、前記推論結果出力データの形式を前記推論処理の後段の処理に対応する形式に変換する後処理を行う後処理部と、前記後段の処理に対応する形式に変換した変換出力データを、前記推論装置に送信する第2送信部と、を備え、前記推論装置は、前記変換出力データを受信する第2受信部と、前記変換出力データを受信したとき、前記変換出力データを前記後段の処理に出力する出力部と、を備える推論システムを特徴とする。
【発明の効果】
【0007】
本発明によれば、一側面として、学習済みモデルの販売者が、推論装置の入力データを用いて学習済みモデルの再学習を可能とする。
【図面の簡単な説明】
【0008】
図1】本実施形態の推論装置を適用可能な推論システムの概要を説明する図である。
図2】第1の例に係る推論処理の流れを概説する図である。
図3】第1の例に係る推論装置の機能構成を示すブロック図である。
図4】第1の例に係るサーバ装置の機能構成を示すブロック図である。
図5】第2の例に係る推論処理の流れを概説する図である。
図6】第2の例に係る推論装置の機能構成を示すブロック図である。
図7】第2の例に係るサーバ装置の機能構成を示すブロック図である。
図8】推論装置が実行する学習済みモデル要求処理を説明するフローチャートである。
図9図8の学習済みモデル要求処理に対応してサーバ装置が実行する学習済みモデル送信処理を説明するフローチャートである。
図10】第1の例に対応して推論装置が実行する推論実行処理を説明するフローチャートである。
図11図10の推論装置の処理に対応してサーバ装置が行う処理を説明するフローチャートである。
図12】第2の例に対応して推論装置が実行する推論実行処理を説明するフローチャートである。
図13図12の推論装置の処理に対応してサーバ装置が行う処理を説明するフローチャートである。
図14】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【0009】
図1は、本実施形態の推論装置を適用可能な推論システムの概要を説明する図である。
システムは、学習済みモデルの利用者が利用する推論装置1と、推論フレームワークの提供者が利用するフレームワーク提供者装置2と、例えばアプリケーションの販売者である、学習済みモデルの販売者が利用するサーバ装置3と、を含む。これらの装置は、インターネットなどのネットワークNWに接続され、互いに通信可能に構成されている。
【0010】
図2は、第1の例に係る推論処理の流れを概説する図である。
(1)推論フレームワークの提供者は、推論フレームワーク(推論ランタイム)を利用者に提供する。学習済みモデルの利用者は、提供された推論フレームワークを推論装置1に導入する。推論ランタイムは推論ランタイムライブラリの略であり、ニューラルネットワーク(メインプログラム)を実行するときに用いられるプログラムの部品をひとまとめにしたファイルである。
(2)学習済みモデルの販売者は、推論装置1に提供された推論フレームワーク向けに、サーバ装置3を用いて作成した学習済みモデルを利用者に提供する。本実施形態では、学習済みモデルはサーバ装置3から直接利用者に販売提供される。あるいは、学習済みモデルの販売者が学習済みモデルストアのサーバにアップロードした学習済みモデルを、推論装置1を用いて利用者がダウンロードすることで学習済みモデルが提供されてもよい。
(3)推論装置1の利用者は、(1)で提供された推論フレームワークに、(2)で提供されたダウンロードした学習済みモデルを読み込ませる。
(4)推論装置1の利用者が、推論対象の画像データ(入力データ)を入力すると、推論装置1が備える前処理プログラムが、入力された画像データを推論処理に対応した形式に変換する等の前処理を行う。なお、以下の説明では、画像データを用いた推論処理を一例として説明するが、入力データは、音声データ、文字データなどの他のデータでもよい。
【0011】
例えば「Yolo」などでは、前処理として、入力された8bitの画像をfloatに変換し、RGB順の並び替え、リサイズを行ったあとでCNNに投入する。学習済みモデルの種類によって、RGB値のレンジが-128~127や、0~1.0、-0.5~0.5など、期待する入力が異なるため、それを合わせ込むために行われる。
前処理として入力画像をフーリエ変換したあとに推論フレームワークに入力する場合や、フレーム間の動きベクトルを計算したあとに推論フレームワークに入力する場合もある。
さらに、上記の「Yolo」の場合、CNNの出力は1470次元のベクトルである。後処理として下記に示すようなコードでバウンディングボックスに変換する必要がある。
(5)前処理された画像データが、推論装置1が備えるニューラルネットワーク(推論部)に入力され、推論処理が行われる。ニューラルネットワークは、学習済みモデルを読み込ませた推論フレームワークによって構成される。
(6)推論装置1は、後処理プログラム(後処理部)を実行することにより、(5)の推論処理の出力データ(推論結果出力データ)の形式を、推論処理の後段の処理に対応する形式に変換する後処理を行う。推論装置1は、例えば、推論処理の出力データの形式を、後段のアプリケーションで実行される処理に適合させる。後処理済みの推論結果出力データは、後段で実行されるアプリケーションに出力される。
(7)推論装置1は、(1)で入力された画像データと、後処理済みの推論結果出力データ(変換出力データ)とをサーバ装置3に送信する。サーバ装置3に送信するのは後処理前の推論結果出力データであってもよい。サーバ装置3に送信するのは前処理後の入力データであってもよい。
(8)サーバ装置3では、推論装置1から送信された画像データと、後処理済みの推論結果出力データとを用いて学習を行う。そして、学習済みモデルの転移学習モデルを新たに作成し、あるいは既存の学習済みモデルを更新した派生モデルを作成する。
サーバ装置3は、転移学習モデルを作成する場合も、派生モデルを作成する場合も、複数の(一定数の)画像データ、推論結果出力データが送信されたあとで学習済みモデルの作成を行う。
【0012】
推論装置1おける入力データの画像、さらにはその推論結果の情報(後処理済みの推論結果出力データ)は非常に重要な情報である。
特定の学習済みモデルを用いた推論は、その学習済みモデルが適合する種類の画像(車、人物、動物など)に対して行われた可能性が高いからである。
学習済みモデルが適合する入力データを用いて再学習を行うことで、推論の精度が高い学習済みモデルを作成することが出来る。
推理処理が推論装置1内で完結している限りは、学習済みモデルを販売した販売者は、自分たちが作成した学習済みモデルを用いてどのような画像に対して推論を行われたか、どのような推論結果が出力されたかを知ることが出来ない。
本実施形態では、推論装置1が入力された入力データをサーバ装置3に送信することで、学習済みモデルの販売者が推論装置の入力データを用いて学習済みモデルの再学習を行って推論の精度を高めることが出来る。
推論装置1は(7)において、推論装置1が使用する学習済みモデルを識別する識別子を付与した入力データ又は前処理済みの入力データを、サーバ装置3に送信してもよい。
また推論装置1は(7)において、推論装置1が使用した学習済みモデルを識別する識別子を付与した後処理済みの推論結果出力データ又は推論結果出力データを、サーバ装置3に送信してもよい。
サーバ装置3は(8)において、推論装置1から受信した入力データや推論結果出力データを、識別子に対応する学習済みモデルの再学習用のデータとして用いる。
識別子を用いることで、入力データや推論結果出力データが関連する学習済みモデルを正確に特定し、適切な再学習を行うことが出来る。
【0013】
図3は、第1の例に係る推論装置の機能構成を示すブロック図である。
推論装置1は、制御部30と記憶部40とを備える。
制御部30は、受付部31と、送信部32(第1送信部)と、受信部33(第2受信部)と、読込部34と、前処理部35と、推論部36と、後処理部37と、出力部38と、付与部39とを備える。
記憶部40は、画像データ記憶部41と、学習済みモデル記憶部42と、前処理済み画像データ記憶部43と、推論結果記憶部44と、後処理済み推論結果記憶部45と、を備える。
受付部31(第2受付部)は、画像データ記憶部41からの画像データ等の入力を受け付ける。また、受付部31は、学習済みモデルの取得を要求する学習済みモデル取得要求を、利用者(ユーザ)から受け付ける。
送信部32は、受付部31が学習済みモデル取得要求を受け付けたことに応じて、サーバ装置3に対して学習済みモデル取得要求を送信する。送信部32はまた、受付部31が入力を受け付けた画像データをサーバ装置3に対して送信する。
受信部33は、サーバ装置3から学習済みモデルを受信して学習済みモデル記憶部42に格納する。
読込部34は、学習済みモデル記憶部42から学習済みモデルを読み出して推論フレームワーク(推論部36)に組み込む。
【0014】
前処理部35は、入力された画像データ等に対する前処理を行い、前処理済みの画像データ等を前処理済み画像データ記憶部43に格納する。
上記したように、前処理は画像データを推論処理に対応した形式に変換する処理である。
推論部36は、推論フレームワークであり、前処理済み画像データ記憶部43に格納されている前処理済みの画像データに対する推論処理を行い、推論結果出力データを推論結果記憶部44に格納する。
後処理部37は、推論結果記憶部44に格納されている推論結果出力データに対する後処理を行い、後処理済みの推論結果出力データを後処理済み推論結果記憶部45に格納する。
上記したように、後処理は、推論結果出力データを後段のアプリケーションで実行される処理に適合させる処理である。
出力部38は、後処理済み推論結果記憶部45に格納されている後処理済みの推論結果出力データを後段のアプリケーションに対して出力する。
付与部39は、受付部31が入力を受け付けた画像データ又は前処理済みの画像データに、推論部36が利用する学習済みモデルを識別する識別子を付与してもよい。また、付与部39は、推論結果出力データ又は後処理済みの推論結果出力データに、推論部36が利用する学習済みモデルを識別する識別子を付与してもよい。
そして、送信部32は、識別子が付与された、画像データ又は前処理済みの画像データと、識別子が付与された、推論結果出力データ又は後処理済みの推論結果出力データと、をサーバ装置3に送信してもよい。
【0015】
図4は、第1の例に係るサーバ装置の機能構成を示すブロック図である。
サーバ装置3は、制御部50と記憶部60とを備える。
制御部50は、受信部51(第1受信部)と、学習部52と、受付部53と(第1受付部)、送信部54(第2送信部)と、を備える。
記憶部60は、受信データ記憶部61と、学習済みモデル記憶部62と、を備える。
受信部51は、推論装置1から、推論対象となった画像データと後処理済の推論結果出力データとを受信して受信データ記憶部61に格納する。
学習部52は、受信データ記憶部61に格納された、少なくとも推論対象となった画像データを用いて学習を行い、学習済みモデルを作成して学習済みモデル記憶部62に格納する。
上記したように、学習部52は、再学習を実行し、学習済みモデルの転移学習モデルを新たに作成し、あるいは既存の学習済みモデルを更新した派生モデルを作成してもよい。
サーバ装置3は、転移学習モデルを作成する場合も、派生モデルを作成する場合も、複数の(一定数の)画像データ、推論結果出力データが送信されたあとで学習済みモデルの作成を行う。
受付部53は、推論装置1からの学習済みモデル取得要求を受信し、受け付ける。
送信部54は、推論装置1に対して作成あるいは更新した学習済みモデルを送信する。
【0016】
受信部51は、推論装置1から学習済みモデルを識別する識別子が付与された、画像データ又は前処理済みの画像データと、学習済みモデルを識別する識別子が付与された、推論結果出力データ又は後処理済みの推論結果出力データを受信してもよい。
この場合には、学習部52は、画像データ又は前処理済みの画像データと、推論結果出力データ又は後処理済みの推論結果出力データを用いて、各データに付与されている識別子に対応する学習済みモデルの転移学習モデル又は派生モデルを作成してもよい。
これにより、サーバ装置3は、複数の学習済みモデルを取り扱うモデルストアを構成する場合においても、各学習済みモデルに対応するデータを用いて、学習済みモデルの作成及び更新を実行することができる。
【0017】
なおサーバ装置3は、学習済みモデルと、学習済みモデルを識別する識別子とを対応付けて記憶してもよい。そしてサーバ装置3は、複数の学習済みモデルを取り扱うモデルストアを構成する場合には、ネットワーク上に提供可能な学習済みモデルの種類を公開し、ユーザから利用を希望する学習済みモデルの選択を受け付けてもよい。
またサーバ装置3は、推論装置1から利用する学習済みモデルの選択を受け付け、選択された学習済みモデルに、選択された学習済みモデルを識別する識別子を付与して推論装置1に提供してもよい。
そして推論装置1において、付与部39は、推論部36が利用する学習済みモデルに付与された識別子を、画像データ又は前処理済みの画像データ、推論結果出力データ又は後処理済みの推論結果出力データに付与してもよい。これにより、推論装置1において、送信部32は、識別子が付与された画像データ又は前処理済みの画像データと、推論結果出力データ又は後処理済みの推論結果出力データとをサーバ装置3に送信してもよい。
【0018】
ところで、推論フレームワーク自体はマルチプラットフォームで動作するため、ワンソース・マルチユースが実現できている。
しかしながら、推論フレームワークへの入力データのフォーマットをあわせる前処理部と、出力ベクトルから期待する結果(バウンディングボックスなど)に整形する後処理部は、C++言語やPythonなどで記述されているため学習済みモデルに含めることができない。
前処理部、後処理部については、学習済みモデルの使用者が自ら実現するためのプログラムコードを記述する必要があり、これは非常に難度が高い。
また異なるプラットフォーム上で学習済みモデルを使いたい場合、プラットフォーム毎にコンパイルしなおす必要がありポータビリティが低い。その結果、学習済みモデルを利用することは決して容易ではない。
この問題は、学習済みモデルの販売プラットフォームを作る時に障害になる。販売者から見ると、前処理、後処理をプログラムで提供する必要がありノウハウが流出してしまう恐れがある。また利用者から見ると、前処理、後処理を自らコーディングする必要があり取扱が煩雑である。
【0019】
またニューラルネットワークでは、学習済みモデルを作成するとき教師データを利用して学習を実行する。学習済みモデルをアップデートするときには、新たな教師データを利用して学習を実行する。
教師データとは、ニューラルネットワークが学習しやすいように、例えば、ラベル、オフセット、バウンディングボックスが調整された例題と答えについてのデータである。従って、教師データが変わると、推論時に利用する前処理及び後処理も調整する必要が生じる。
前処理部及び後処理部は、学習時に使用した推論フレームワーク及び学習時の設定などに対応するように作成されるからである。また学習時の設定は、推論対象に応じた入力データごとに適切な設定を技術者が適宜設定するものなので、一意に決まるものではない。前処理及び後処理は学習済みモデルごとに異なる処理となる。
学習済みモデルのアップデート時にも改めて前処理、後処理をコーディングする必要があり、利用者にとってはとりわけ取扱が煩雑となる。
下記に説明する第2の例では、販売者による学習済みモデルの再学習を容易にするとともに、前処理、後処理をサーバ装置3で行うことによって利用者が学習済みモデルを利用しやすくする。
【0020】
図5は、第2の例に係る推論処理の流れを概説する図である。
(1)推論フレームワークの提供者は、推論フレームワークを利用者に提供する。学習済みモデルの利用者は、提供された推論フレームワークを推論装置1に導入する。
(2)学習済みモデルの販売者は、推論装置1に提供された推論フレームワーク向けに、サーバ装置3を用いて作成した学習済みモデルを利用者に提供する。
【0021】
(3)推論装置1の利用者は、(1)で提供された推論フレームワークに、(2)で提供された学習済みモデルをダウンロードして読み込ませる。
(4)推論装置1の利用者が、推論対象の画像データを入力すると、推論装置1は、画像データを、サーバ装置3に送信する。
(5)サーバ装置3が備える前処理プログラム(前処理部)が、画像データを推論処理に対応した画像形式に変換する等の前処理を行う。
(6)サーバ装置3は、前処理された画像データを推論装置1に送信する。
(7)前処理された画像データは、推論装置1が備えるニューラルネットワークに入力され、推論処理が行われる。ニューラルネットワークは、学習済みモデルを読み込ませた推論フレームワークによって構成される。
(8)推論装置1は、推論結果出力データをサーバ装置3に送信する。
(9)サーバ装置3が備える後処理プログラム(後処理部)が、推論結果出力データに対する後処理を実行する。
(10)サーバ装置3は、後処理済みの推論結果出力データを推論装置1に送信する。推論装置1は、受信した後処理済みの推論結果出力データを後段のアプリケーションに出力する。
(11)サーバ装置3は、推論装置1から送信された画像データ、(9)で作成した後処理済みの推論結果出力データを用いて、学習済みモデルの転移学習モデルを新たに作成し、あるいは既存の学習済みモデルを更新した派生モデルを作成する。
【0022】
本実施形態では、推論装置1が入力された画像データ等の入力データをサーバ装置3に送信することで、学習済みモデルの販売者が推論装置の入力データを用いて学習済みモデルの再学習を行って推論の精度を高めることが出来る。
推論装置1は(4)において、推論装置1が使用する学習済みモデルを識別する識別子を付与した入力データをサーバ装置3に送信する。
また推論装置1は(8)において、推論装置1が使用した学習済みモデルを識別する識別子を付与した推論結果出力データをサーバ装置3に送信する。
サーバ装置3は(11)において、識別子が付与された、推論装置1から受信した入力データや、入力データに対してサーバ装置3が前処理を行った前処理済みの入力データを再学習用のデータとして用いる。
この再学習時に、サーバ装置3は、識別子が付与された、推論装置1から受信した推論結果出力データ、それに対してサーバ装置3が後処理を行った後処理済みの推論結果出力データも用いる。
識別子を用いることで、サーバ装置3は適切な学習済みモデルを正確に特定して再学習を行うことが出来る。
また前処理、後処理をサーバ装置3で行うことで、利用者が自ら前処理、後処理のプログラムを実装する必要が無く、利用者が学習済みモデルを利用しやすくなる。また、処理負荷の高い前処理、後処理をサーバ装置3で行うことで推論装置1の負荷を軽減することが出来る。
【0023】
図6は、第2の例に係る推論装置の機能構成を示すブロック図である。
推論装置1は、制御部30と記憶部40とを備える。
制御部30は、受付部31と、送信部32と、受信部33と、読込部34と、推論部36と、出力部38と、付与部39とを備える。
図3に示した第1の例とは異なり、推論装置1は、前処理部35と、後処理部37と、を備えない。なお、推論装置1は、前処理及び後処理のいずれか一方又は前処理及び後処理の一部の処理を実行する場合には、前処理部35と後処理部37との少なくとも一方を備えてもよい。
記憶部40は、画像データ記憶部41と、学習済みモデル記憶部42と、前処理済み画像データ記憶部43と、推論結果記憶部44と、後処理済み推論結果記憶部45と、を備える。
受付部31は、画像データ記憶部41からの画像データ等の入力を受け付ける。受付部31はまた、利用者による学習済みモデル取得要求を受け付ける。
送信部32は、受付部31が学習済みモデル取得要求を受け付けたことに応じて、サーバ装置3に対して学習済みモデル取得要求を送信する。送信部32はまた、受付部31が入力を受け付けた画像データをサーバ装置3に対して送信する。送信部32はさらに、推論部36による推論結果出力データをサーバ装置3に送信する。
受信部33は、サーバ装置3から学習済みモデルを受信して学習済みモデル記憶部42に格納する。受信部33はさらに、サーバ装置3から前処理済み画像データと、後処理済みの推論結果出力データと、を受信する。そして、受信部33は、前処理済み画像データを前処理済み画像データ記憶部43に格納する。また、受信部33は、後処理済みの推論結果出力データを後処理済み推論結果記憶部45に格納する。
【0024】
読込部34は、学習済みモデル記憶部42から学習済みモデルを読み出して推論フレームワーク(推論部36)に組み込む。
推論部36は、推論フレームワークであり、前処理済み画像データ記憶部43に格納されている前処理済みの画像データに対する推論処理を行い、推論結果出力データを推論結果記憶部44に格納する。
出力部38は、後処理済み推論結果記憶部45に格納されている後処理済みの推論結果出力データを後段のアプリケーションに対して出力する。
付与部39は、受付部31が入力を受け付けた画像データに、推論部36が利用する学習済みモデルを識別する識別子を付与してもよい。また、付与部39は、推論結果出力データに、推論部36が利用する学習済みモデルを識別する識別子を付与してもよい。
そして、送信部32は、識別子が付与された画像データと、識別子が付与された推論結果出力データと、をサーバ装置3に送信してもよい。
【0025】
図7は、第2の例に係るサーバ装置の機能構成を示すブロック図である。
サーバ装置3は、制御部50と記憶部60とを備える。
制御部50は、受信部51と、学習部52と、受付部53と、送信部54と、前処理部56と、後処理部57と、を備える。
記憶部60は、受信データ記憶部61と、学習済みモデル記憶部62と、前処理済み画像データ記憶部63と、後処理済み推論結果記憶部64と、を備える。
受信部51は、推論装置1から、推論対象となった画像データと推論結果出力データとを受信して受信データ記憶部61に格納する。
学習部52は、受信データ記憶部61に格納された、少なくとも推論対象となった画像データを用いて学習を行い、学習済みモデルを作成して学習済みモデル記憶部62に格納する。
上記したように、学習部52は、再学習を実行し、学習済みモデルの転移学習モデルを新たに作成し、あるいは既存の学習済みモデルを更新した派生モデルを作成してもよい。
【0026】
受付部53は、推論装置1からの学習済みモデル取得要求を受信し、受け付ける。
送信部54は、推論装置1に対して、作成あるいは更新した学習済みモデルを送信する。送信部54はまた、前処理済み画像データを推論装置1に対して送信する。送信部54はまた、後処理済の推論結果出力データを推論装置1に対して送信する。
前処理部56は、受信データ記憶部61に格納された画像データに対して前処理を行い、前処理済みの画像データを前処理済み画像データ記憶部63に格納する。
後処理部57は、受信データ記憶部61に格納された推論結果出力データに対して後処理を行い、後処理済みの推論結果出力データを後処理済み推論結果記憶部64に格納する。
受信部51は、推論装置1から学習済みモデルを識別する識別子が付与された画像データと、学習済みモデルを識別する識別子が付与された推論結果出力データとを受信してもよい。この場合には、前処理部56は、画像データに対して、画像データに付与されている識別子に対応する学習済みモデルに応じた前処理を実行してもよい。
また、後処理部57は、推論結果出力データに対して、画像データに付与されている識別子に対応する学習済みモデルに応じた後処理を実行してもよい。これにより、サーバ装置3は、複数の学習済みモデルを取り扱うモデルストアを構成する場合においても、各学習済みモデルに対応する前処理及び後処理を、画像データ及び推論結果出力データに対して実行することができる。
【0027】
また、学習部52は、画像データ又は前処理済みの画像データと、推論結果出力データ又は後処理済みの推論結果出力データとを用いて、画像データ又は推論結果出力データに付与されている識別子に対応する学習済みモデルの転移学習モデル又は派生モデルを作成してもよい。これにより、サーバ装置3は、複数の学習済みモデルを取り扱うモデルストアを構成する場合においても、各学習済みモデルに対応するデータを用いて、学習済みモデルの作成及び更新を実行することができる。
なお、サーバ装置3は、学習済みモデルと、学習済みモデルを識別する識別子とを対応付けて記憶してもよい。そして、サーバ装置3は、複数の学習済みモデルを取り扱うモデルストアを構成する場合には、ネットワーク上に提供可能な学習済みモデルの種類を公開し、ユーザから利用を希望する学習済みモデルの選択を受け付けてもよい。
またサーバ装置3は、推論装置1から利用する学習済みモデルの選択を受け付け、選択された学習済みモデルに、選択された学習済みモデルを識別する識別子を付与して推論装置1に提供してもよい。
そして、推論装置1において、付与部39は、推論部36が利用する学習済みモデルに付与された識別子を、画像データと、推論結果出力データとに付与してもよい。これにより、推論装置1において、送信部32は、識別子が付与された画像データと、推論結果出力データとをサーバ装置3に送信してもよい。
【0028】
図8は、推論装置が実行する学習済みモデル要求処理を説明するフローチャートである。
ステップS101において、受付部31は、学習済みモデル取得要求があったか否かを判定する。この学習済みモデル取得要求は、推論装置1の利用者によって、推論装置1が備えるキーボードやマウスなどの入力装置を用いて行われてもよい。
学習済みモデル取得要求があったと判定した場合(ステップS101でYes)、受付部31は、ステップS102において、学習済みモデル取得要求を受け付ける。そして送信部32は、学習済みモデル取得要求をサーバ装置3に送信する。
受付部31において、学習済みモデル取得要求がなかったと判定された場合(ステップS101でNo)、受信部33は、ステップS104において、サーバ装置3から学習済みモデルを受信したか否かを判定する。学習済みモデルを受信したと判定した場合(ステップS104でYes)、受信部33は、ステップS105において、受信した学習済みモデルを記憶部40に格納する。そして、読込部34は、ステップS106において、記憶部40に格納された学習済みモデルを読み出し、推論フレームワークに学習済みモデルを組み込む。
学習済みモデルを受信したと判定しなかった場合(ステップS104でNo)、受信部33は何も行わず、学習済みモデル要求処理は終了する。
【0029】
図9は、図8の学習済みモデル要求処理に対応してサーバ装置が実行する学習済みモデル送信処理を説明するフローチャートである。
ステップS111において、受付部53は、学習済みモデル取得要求が推論装置1からあったか否かを判定する。学習済みモデル取得要求があったと判定した場合(ステップS111でYes)、受付部53は、ステップS112において、学習済みモデル取得要求を受け付ける。送信部54は、ステップS113において、要求に応じて記憶部60から学習済みモデルを読み出して推論装置1に送信する。
【0030】
図10は、第1の例に対応して図3の推論装置が実行する推論実行処理を説明するフローチャートである。
図3及び図10を参照して説明する。
ステップS121において、受付部31は、推論対象の画像データなどの入力が行われたか、すなわち入力データがあったかを判定する。
画像データの入力は、例えば、推論装置1が備えるキーボードやマウスなどの入力装置を用いて記憶部40に予め格納されている画像データを利用者が選択することによって行われてもよい。あるいは、推論装置1が備えるカメラなどの撮像装置によって直接撮像された画像データが入力されてもよい。
入力データがなかったと判定した場合(ステップS121にてNo)、受付部31は、S121の処理を繰り返し実行する。入力データがあったと判定した場合(ステップS121でYes)、ステップS122において、受付部31は、入力データを受け付ける。
ステップS123において、前処理部35は、入力データに対して前処理を実行し、前処理済みの入力データ(変換入力データ)を記憶部40に格納する。
【0031】
ステップS124において、推論部36は、記憶部40に格納されている前処理済みの入力データに対して推論処理を実行し、推論結果出力データを記憶部40に格納する。
ステップS125において、後処理部37は、記憶部40に格納されている推論結果出力データに対して後処理を実行し、後処理済みの推論結果出力データを記憶部40に格納する。
ステップS126において、出力部38は、記憶部40に格納されている後処理済みの推論結果出力データを後段のアプリケーションに対して出力する。
ステップS127において、付与部39は、ステップS122で受け付けられた入力データ、ステップS123で得られた前処理済みの入力データに、推論部36が利用する学習済みモデルを識別する識別子を付与する。
ステップS128において、送信部32は、ステップS127で識別子を付与した入力データ及び前処理済みの入力データの少なくとも一方をサーバ装置3に送信する。
なお、ステップS127、ステップS128の処理は、ステップS122で入力データを受け付けた後、又はステップS123で前処理を行った後で、他の処理に割り込んで実行されてもよい。
さらにステップS129において、付与部39は、ステップS124で得た推論結果出力データ又はステップS125で得た後処理済みの推論結果出力データに、学習済みモデルを識別する識別子を付与してもよい。
この場合、ステップS130において、送信部32は、推論結果出力データ及び後処理済みの推論結果出力データの少なくとも一方をサーバ装置3に送信してもよい。
なお、ステップS129及びステップS130の処理を行う場合、これらの処理は、ステップS124の推論処理又はステップS125の後処理の後で、他の処理に割り込んで実行されてもよい。
【0032】
図11は、図10の推論装置の処理に対応して図4のサーバ装置が行う処理を説明するフローチャートである。
図4及び図11を参照して説明する。
ステップS131において、受信部51は、推論装置1から画像データ(入力データ)を受信したか否かを判定する。
入力データを受信したと判定した場合、ステップS132において、受信部51は、受信した入力データを記憶部60に格納する。
図3をさらに参照して説明する。
推論装置1において付与部39は、推論部36で利用する学習済みモデルとの対応関係を特定可能な識別情報(識別子)を入力データ又は前処理済みの入力データに付与する。
そして、送信部32は、入力データ又は前処理済みの入力データを識別情報とともにサーバ装置3に送信する。
付与部39は、推論部36で利用した学習済みモデルとの対応関係を特定可能な識別情報(識別子)を推論結果出力データ又は後処理済み推論結果出力データに付与してもよい。このとき、送信部32は、推論結果出力データ又は後処理済み推論結果出力データを識別情報とともにサーバ装置3に送信する。
図4及び図11を参照して説明する。
ステップS133において、学習部52は、記憶部60に格納した入力データ又は前処理済みの入力データを用いて学習済みモデルを作成又は更新して記憶部60に格納する。このとき、学習部52は、推論結果出力データ又は後処理済み推論結果出力データを学習に利用することが出来る。
【0033】
図12は、第2の例に対応して図6の推論装置が実行する推論実行処理を説明するフローチャートである。
図6及び図12を参照して説明する。
ステップS141において、受付部31は、推論対象の画像データなどの入力が行われたか、すなわち入力データがあったかを判定する。
画像データの入力は、例えば、推論装置1が備えるキーボードやマウスなどの入力装置を用いて記憶部40に予め格納されている画像データを利用者が選択することによって行われてもよい。あるいは、推論装置1が備えるカメラなどの撮像装置によって直接撮像された画像データが入力されてもよい。
入力データがあったと判定した場合(ステップS141でYes)、ステップS142において、受付部31は、入力データを受け付ける。
ステップS143において、付与部39は、受付部31が入力を受け付けた画像データに、推論部36が利用する学習済みモデルを識別する識別子を付与する。
そして、ステップS144において、送信部32は、ステップS143で受け付けた入力データをサーバ装置3に送信する。
入力データがないと判定した場合(ステップS142でNo)、ステップS145において、受信部33は、サーバ装置3から前処理済みの入力データを受信したか否かを判定する。
【0034】
サーバ装置3から前処理済みの入力データを受信したと判定した場合(ステップS145でYes)、受信部33は、ステップS146において前処理済みの入力データを記憶部60に格納する。
推論部36は、ステップS147において前処理済みの入力データに対して推論処理を実行する。
付与部37は、ステップS148において、推論結果出力データに学習済みモデルを識別するための識別子を付与する。
そして、送信部32は、ステップS149において、識別子を付与した推論結果出力データをサーバ装置3に送信する。
サーバ装置3から前処理済みの入力データを受信していないと判定した場合(ステップS145でNo)、受信部33は、ステップS150において、サーバ装置3から後処理済みの推論結果出力データを受信したか否かを判定する。
後処理済みの推論結果出力データから受信したと判定した場合(ステップS150でYes)、受信部33は、ステップS151において、後処理済みの推論結果出力データを記憶部60に格納する。このとき、送信部32が、後処理済みの推論結果出力データをサーバ装置3に送信してもよい。
ステップS152において、出力部38は、後処理済みの推論結果出力データを後段のアプリケーションに対して出力する。
【0035】
図13は、図12の推論装置の処理に対応して図7のサーバ装置が行う処理を説明するフローチャートである。
図7及び図13を参照して説明する。
ステップS161において、受信部51は、推論装置1から画像データ(入力データ)を受信したか否かを判定する。
画像データを受信したと判定した場合(ステップS161でYes)、ステップS162において、受信部51は、推論装置1から受信した入力データを記憶部60に格納する。
ステップS163において、前処理部56は、推論装置1から受信した入力データに対して前処理を実行する。
図6をさらに参照して、前処理部56による前処理の一例を説明する。
推論装置1において付与部39は、推論部36で利用する学習済みモデルとの対応関係を特定可能な識別情報(識別子)を入力データに付与する。そして、送信部32は、入力データを識別情報とともにサーバ装置3に送信する。
前処理部56は、入力データに付与されている識別情報を参照して、推論装置1で用いられる学習済みモデルに適合した前処理を入力データに対して実行する。
【0036】
図7及び図13を参照して説明する。
ステップS164において、送信部54は、前処理済みの入力データを推論装置1に送信する。
入力データを受信していないと判定した場合(ステップS161でNo)、ステップS165において、受信部51は、推論装置1から推論結果出力データを受信したか否かを判定する。
推論結果出力データを受信したと判定した場合(ステップS165でYes)、ステップS166において、受信部51は、推論結果出力データを記憶部60に格納する。
ステップS167において、後処理部57は、推論結果出力データに対して後処理を実行する。
図6をさらに参照して、後処理部57による後処理の一例を説明する。
推論装置1において付与部39は、推論部36で利用する学習済みモデルとの対応関係を特定可能な識別情報(識別子)を推論結果出力データに付与する。そして、送信部32は、推論結果出力データを識別情報とともにサーバ装置3に送信する。
後処理部57は、推論結果出力データに付与されている識別情報を参照して、推論装置1で用いられる学習済みモデルに適合した後処理を推論結果出力データに対して実行する。
図7及び図13を参照して説明する。
ステップS168において、送信部54は、後処理済みの推論結果出力データを推論装置1に送信する。
ステップS169において、学習部52は、記憶部60に格納した入力データ又は前処理済みの入力データを用いて学習済みモデルを作成して記憶部60に格納する。
あるいは、学習部52は、記憶部60に格納した入力データ又は前処理済みの入力データを用いて既存の学習済みモデルを更新して記憶部60に格納する。
いずれの場合も、学習部52は推論結果出力データ又は後処理済み推論結果出力データを学習に利用することが出来る。
【0037】
図14は、コンピュータ装置の一実施例を示すブロック図である。
図14を参照して、コンピュータ装置200の構成について説明する。
コンピュータ装置200は、例えば、各種情報を処理する情報処理装置である。そして、コンピュータ装置200は、制御回路201と、記憶装置202と、読書装置203と、記録媒体204と、通信インターフェイス205と、入出力インターフェイス206と、入力装置207と、表示装置208とを含む。また、通信インターフェイス205は、ネットワーク300と接続される。そして、各構成要素は、バス210により接続される。
推論装置1及びサーバ装置3は、コンピュータ装置200に記載の構成要素の一部又は全てを適宜選択して構成することができる。
【0038】
制御回路201は、コンピュータ装置200全体の制御をする。制御回路201は、例えば、Central Processing Unit(CPU)などのプロセッサである。制御回路201は、例えば、図3図6における制御部30、図4図7における制御部50として機能する。
【0039】
記憶装置202は、各種データを記憶する。そして、記憶装置202は、例えば、Read Only Memory(ROM)及びRandom Access Memory(RAM)などのメモリや、Hard Disk(HD)などである。記憶装置202は、制御回路201を、制御部30、制御部50として機能させる情報処理プログラムを記憶してもよい。記憶装置202は、例えば、図3図6における制御部30、図4図7における制御部50として機能する。なお、情報処理プログラムは、制御回路201を制御部30として機能させる推論プログラムと、制御回路201を制御部50として機能させる学習プログラムとの少なくとも一方を含む。
【0040】
推論装置1及びサーバ装置3は、推論処理を行うとき、記憶装置202に記憶されたプログラムをRAMに読み出す。
推論装置1は、RAMに読み出されたプログラムを制御回路201で実行することにより、受付処理、送信処理、受信処理、読込処理、前処理に係る処理、推論処理、後処理に係る処理、出力処理、付与処理のいずれか1以上を含む処理を実行する。
サーバ装置3は、RAMに読み出されたプログラムを制御回路201で実行することにより、受信処理、学習処理、受付処理、送信処理、前処理に係る処理、後処理に係る処理のいずれか1以上を含む処理を実行する。
なお、プログラムは、制御回路201が通信インターフェイス205を介してアクセス可能であれば、ネットワーク300上のサーバが有する記憶装置に記憶されていても良い。
【0041】
読書装置203は、制御回路201に制御され、着脱可能な記録媒体204のデータのリード/ライトを行なう。
記録媒体204は、各種データを保存する。記録媒体204は、例えば、情報処理プログラムを記憶する。記録媒体204は、例えば、Secure Digital(SD)メモリーカード、Floppy Disk(FD)、Compact Disc(CD)、Digital Versatile Disk(DVD)、Blu-ray(登録商標) Disk(BD)、及びフラッシュメモリなどの不揮発性メモリ(非一時的記録媒体)である。
【0042】
通信インターフェイス205は、ネットワーク300を介してコンピュータ装置200と他の装置とを通信可能に接続する。通信インターフェイス205は、例えば、図3図6において、送信部32、受信部33として機能する。通信インターフェイス205は、また図4図7において、受信部51、受付部53、送信部54として機能する。
入出力インターフェイス206は、例えば、各種入力装置と着脱可能に接続するインターフェイスである。入出力インターフェイス206と接続される入力装置207には、例えば、キーボード、及びマウスなどがある。入出力インターフェイス206は、接続された各種入力装置とコンピュータ装置200とを通信可能に接続する。そして、入出力インターフェイス206は、接続された各種入力装置から入力された信号を、バス210を介して制御回路201に出力する。また、入出力インターフェイス206は、制御回路201から出力された信号を、バス210を介して入出力装置に出力する。入出力インターフェイス206は、例えば、図3図6において、受付部31として機能する。また、入出力インターフェイス206は、例えば、図4図7において、受付部53として機能する。
【0043】
表示装置208は、各種情報を表示する。ネットワーク300は、例えば、LAN、無線通信、P2Pネットワーク、又はインターネットなどであり、コンピュータ装置200と他の装置を通信接続する。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成又は実施形態を取ることができる。
【符号の説明】
【0044】
1…推論装置、2…フレームワーク提供者装置、3…サーバ装置、30…制御部、31…受付部、32…送信部、33…受信部、34…読込部、35…前処理部、36…推論部、37…後処理部、38…出力部、39…付与部、40…記憶部、41…画像データ記憶部、42…モデル記憶部、43…画像データ記憶部、44…推論結果記憶部、45…後処理済み推論結果記憶部、50…制御部、51…受信部、52…学習部、53…受付部、54…送信部、60…記憶部、61…受信データ記憶部、62…学習済みモデル記憶部、63…前処理済み画像データ記憶部、64…後処理済み推論結果記憶部、200…コンピュータ装置、201…制御回路、202…記憶装置、203…読書装置、204…記録媒体、205…通信インターフェイス、206…入出力インターフェイス、207…入力装置、208…表示装置、210…バス、300…ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14