(57)【要約】  サーバ（２）が、ディープニューラルネットワークが要件を満たすか否かの検証に用いられる検証用データを生成してクライアント（３）に送信する。
2019211909.tif 000002
【特許請求の範囲】
【請求項１】
検証用データを用いてディープニューラルネットワークが要件を満たすか否かの検証を行う検証装置から受信したリクエストに応じて、要件を満たすように学習されたディープニューラルネットワークを生成するＤＮＮ生成部と、
前記ＤＮＮ生成部によって生成されたディープニューラルネットワークが要件を満たすか否かの検証に用いられる検証用データを生成する検証用データ生成部と、
前記ＤＮＮ生成部によって生成されたディープニューラルネットワークおよび前記検証用データ生成部によって生成された検証用データを前記検証装置へ送信するデータ送信部とを備えたこと
を特徴とする学習装置。
【請求項２】
前記ＤＮＮ生成部は、ディープニューラルネットワークの機能、性能、フレームワークの種類および前記検証装置のハードウェア性能を要件として、ディープニューラルネットワークを学習すること
を特徴とする請求項１記載の学習装置。
【請求項３】
前記検証用データ生成部は、前記ＤＮＮ生成部によって生成されたディープニューラルネットワークに対して誤差逆伝播法を行って中間層のノードの重みを更新したときに得られた勾配値および勾配値に関する閾値を含む検証用データを生成すること
を特徴とする請求項１記載の学習装置。
【請求項４】
前記検証用データ生成部は、前記ＤＮＮ生成部によって生成されたディープニューラルネットワークで得られた中間記述子および中間記述子に関する閾値を含む検証用データを生成すること
を特徴とする請求項１記載の学習装置。
【請求項５】
学習装置から受信した検証用データを用いて、前記学習装置によって生成されたディープニューラルネットワークが要件を満たすか否かの検証を行うデータ検証部と、
ディープニューラルネットワーク生成のリクエストを前記学習装置へ送信するリクエスト送信部とを備え、
前記リクエスト送信部は、前記データ検証部によってディープニューラルネットワークが要件を満たさないと検証されると、再リクエストの要因と検証結果を含むリクエストを前記学習装置へ再度送信すること
を特徴とする検証装置。
【請求項６】
前記データ検証部は、前記学習装置から受信したディープニューラルネットワークに対して誤差逆伝播法を行って中間層のノードの重みを更新したときに得られた勾配値と検証用データに含まれる勾配値との差分を、検証用データに含まれる閾値と比較し、この比較の結果に基づいてディープニューラルネットワークが要件を満たすか否かを検証すること
を特徴とする請求項５記載の検証装置。
【請求項７】
前記データ検証部は、前記学習装置から受信したディープニューラルネットワークから得られた中間記述子と検証用データに含まれる中間記述子との差分を、検証用データに含まれる閾値と比較し、この比較の結果に基づいてディープニューラルネットワークが要件を満たすか否かを検証すること
を特徴とする請求項５記載の検証装置。
【請求項８】
請求項１から請求項４のいずれか１項記載の学習装置と、
請求項５から請求項７のいずれか１項記載の前記検証装置とを備えたこと
を特徴とするデータ処理システム。
【請求項９】
ＤＮＮ生成部が、検証装置から受信したリクエストに応じて、要件を満たすように学習されたディープニューラルネットワークを生成するステップと、
検証用データ生成部が、前記ＤＮＮ生成部によって生成されたディープニューラルネットワークが要件を満たすか否かの検証に用いられる検証用データを生成するステップと、
データ送信部が、前記ＤＮＮ生成部によって生成されたディープニューラルネットワークおよび前記検証用データ生成部によって生成された検証用データを前記検証装置へ送信するステップと、
データ検証部が、学習装置から受信した検証用データを用いて、前記ＤＮＮ生成部によって生成されたディープニューラルネットワークが要件を満たすか否かを検証するステップと、
リクエスト送信部が、前記データ検証部によってディープニューラルネットワークが要件を満たさないと検証されると、再リクエストの要因と検証結果を含むリクエストを前記学習装置へ再度送信するステップとを備えたこと
を特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディープニューラルネットワーク（以下、ＤＮＮと記載する）を学習する学習装置に関する。
【背景技術】
【０００２】
近年、クライアントで取得されたデータをインターネット経由でサーバが受信して集積し、集積データから何らかの知見または意味を見出すために、サーバが集積データの信号処理および統計処理を行うモノのインターネット（ＩｏＴ）システムが注目されている。
また、クライアントがデータをメタデータ化してからサーバへ送信することによって、サーバの処理負荷および伝送負荷の低減と処理のリアルタイム性とを実現する技術が提案されている。さらに、ＤＮＮを用いて、クライアントがデータをメタデータ化する技術も提案されている。【０００３】
ＤＮＮを使用するためには、処理目的に応じたニューラルネットワークの学習が必要であり、学習には大量の教師データと計算リソースが必要である。一般に、処理性能およびメモリ容量が少ないクライアントでは、ニューラルネットワークの学習を行うことは困難である。これに対して、特許文献１には、クライアントよりも処理性能およびメモリ容量が多いサーバがＤＮＮを学習して、学習済みのＤＮＮをクライアントに送信して使用するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１９９１４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された従来のシステムでは、サーバとクライアントとでソフトウェアおよびハードウェアの不整合がある場合、サーバが学習したＤＮＮとクライアントが要求したＤＮＮとで同様の性能を達成することができない。この場合、クライアントは、要求した要件をＤＮＮが満たすか否かを検証し、この検証結果に基づいてＤＮＮの設計を再度行い、この設計に応じた要件を満たすようにサーバにＤＮＮを再学習させる必要があり、処理が複雑化する傾向にあった。【０００６】
この発明は上記課題を解決するものであり、ＤＮＮの検証処理を簡略化させることができる学習装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る学習装置は、ＤＮＮ生成部、検証用データ生成部、およびデータ送信部を備える。ＤＮＮ生成部は、検証用データを用いてディープニューラルネットワークが要件を満たすか否かの検証を行う検証装置から受信したリクエストに応じて、要件を満たすように学習されたディープニューラルネットワークを生成する。検証用データ生成部は、ＤＮＮ生成部によって生成されたディープニューラルネットワークが要件を満たすか否かの検証に用いられる検証用データを生成する。データ送信部は、ＤＮＮ生成部によって生成されたディープニューラルネットワークおよび検証用データ生成部によって生成された検証用データを検証装置へ送信する。
【発明の効果】
【０００８】
この発明によれば、学習装置が、ＤＮＮが要件を満たすか否かの検証に用いられる検証用データを生成して検証装置に送信するので、ＤＮＮの検証処理を簡略化させることができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１に係るデータ処理システムの構成を示すブロック図である。
【図２】ＤＮＮデータベースの登録内容の例を示す図である。
【図３】実施の形態１に係るデータ処理方法を示すフローチャートである。
【図４】ＤＮＮ生成処理を示すフローチャートである。
【図５】誤差逆伝播法による検証用データ生成処理を示すフローチャートである。
【図６】ＤＮＮの中間記述子を用いた検証用データ生成処理を示すフローチャートである。
【図７】データ送信処理を示すフローチャートである。
【図８】実施の形態１に係るクライアントの動作を示すフローチャートである。
【図９】誤差逆伝播法によるＤＮＮ性能検証処理を示すフローチャートである。
【図１０】ＤＮＮの中間記述子を用いたＤＮＮ性能検証処理を示すフローチャートである。
【図１１】リクエスト再送信処理を示すフローチャートである。
【図１２】図１２Ａは、実施の形態１に係るサーバの機能を実現するハードウェア構成を示すブロック図である。図１２Ｂは、実施の形態１に係るサーバの機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図１２Ｃは、実施の形態１に係るクライアントの機能を実現するハードウェア構成を示すブロック図である。図１２Ｄは、実施の形態１に係るクライアントの機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、この発明をより詳細に説明するため、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１に係るデータ処理システム１の構成を示すブロック図である。データ処理システム１は、サーバ２およびクライアント３を備えており、サーバ２によって生成されたＤＮＮがクライアント３によって利用される。サーバ２は、ユーザから受け付けた命令に従ってＤＮＮモデルおよび検証用データを生成して、ＤＮＮモデルおよび検証用データをクライアント３に送信する。クライアント３は、サーバ２から受信した検証用データを用いてＤＮＮモデルの性能検証を実施し、この検証の結果に基づいて各種アプリケーションでＤＮＮモデルが運用可能か否かを判定する。
【００１１】
図１において、データ処理システム１は、サーバ２がマスターであり、クライアント３がスレーブであるクライアントサーバモデルのシステムである。ただし、クライアント３が、ユーザから受け付けた命令をリクエスト情報に含めてサーバ２に送信し、サーバ２がリクエスト情報に含まれるユーザからの命令に従ってＤＮＮモデルおよび検証用データを生成してもよい。この場合、クライアント３がマスターで、サーバ２がスレーブとなる。なお、クライアント３は、エッジデバイスと呼ばれることもある。
【００１２】
サーバ２は、クライアント３へ送信されるＤＮＮを学習する学習装置であって、ＤＮＮ生成部２０、検証用データ生成部２１、データ送信部２２およびＤＮＮデータベース２３を備えて構成される。クライアント３は、サーバ２から受信したＤＮＮが要件を満たすか否かを検証する検証装置であり、データ検証部３０およびリクエスト送信部３１を備えて構成される。
【００１３】
ＤＮＮ生成部２０は、クライアント３のＤＮＮ生成のリクエストに応じて、ユーザからの命令に含まれる要件を満たすようにＤＮＮを学習する。検証用データ生成部２１は、ＤＮＮ生成部２０によって生成されたＤＮＮが要件を満たすか否かの検証に用いられる検証用データを生成する。データ送信部２２は、ＤＮＮ生成部２０によって生成されたＤＮＮと、検証用データ生成部２１によって生成された検証用データとをクライアント３へ送信する。
【００１４】
ＤＮＮデータベース２３には、ＤＮＮモデルの生成と検証用データの生成に用いられるデータが登録される。例えば、ＤＮＮデータベース２３には、各種の機能を実現する機能モジュールと学習済みのＤＮＮがフレームワークごとに登録され、機能モジュールに対応するデータセットが登録されている。ＤＮＮ生成部２０は、ＤＮＮデータベース２３から要件に対応するデータを読み出し、読み出したデータを用いて要件を満たすＤＮＮを生成する。検証用データ生成部２１は、ＤＮＮデータベース２３から読み出した上記データを用いて検証用データを生成する。
【００１５】
図１では、サーバ２がＤＮＮデータベース２３を備える構成を示したが、ＤＮＮデータベース２３は、サーバ２とは別の装置が備えてもよい。例えば、ＤＮＮデータベース２３は、サーバ２からデータアクセスが可能なクラウド上の記憶装置に設けられてもよい。
【００１６】
クライアント３におけるデータ検証部３０は、サーバ２から受信した上記検証用データを用いて、ＤＮＮが要件を満たすか否かを検証する。データ検証部３０によってＤＮＮが要件を満たすと検証されると、ＤＮＮは、各種アプリケーションで運用可能である。
【００１７】
リクエスト送信部３１は、ＤＮＮ生成のリクエストをサーバ２へ送信する。リクエスト送信部３１は、データ検証部３０によってＤＮＮが要件を満たさないと検証された場合、再リクエストの要因と検証結果を含むリクエストをサーバ２へ再度送信する。
再リクエストの要因とは、例えば、事前に設定された機能および性能のうち、ＤＮＮで達成されていない機能および性能を示す情報である。サーバ２は、再リクエストの要因と検証結果を考慮してＤＮＮの学習を繰り返すことで、要件を満たすＤＮＮを最終的に生成することができる。
【００１８】
図２は、ＤＮＮデータベース２３の登録内容の例を示す図である。ＤＮＮデータベース２３には、各種機能を実現する機能モジュール、これに対応するデータセットおよび学習済みのＤＮＮが登録されている。データセットには、ＤＮＮの学習に用いられる教師データおよびＤＮＮの性能評価に用いられるテストデータが含まれる。一般的に、学習済みのＤＮＮを使用するためには、学習モジュールと推論モジュールとでフレームワークが一致している必要がある。これは、フレームワークが異なる場合、フレームワーク間で小数点以下の有効桁数および内部の数値計算の仕方に違いがあったり、関数サポートの有無が異なることがある。
【００１９】
例えば、機能Ａでは、学習モジュール１Ａと推論モジュール１Ａとが、共通のフレームワーク（１）で実装され、学習モジュール１Ａと推論モジュール１Ａが、学習済みＤＮＮ１Ａを使用することができる。また、学習モジュール２Ａと推論モジュール２Ａは、共通のフレームワーク（２）で実装され、学習済みＤＮＮ２Ａ−１および学習済みＤＮＮ２Ａ−２を使用することができる。
【００２０】
ただし、フレームワーク間のネットワーク記述フォーマットを変換する変換モジュールを用いることで、学習モジュールとは別のフレームワークで実装された推論モジュールがＤＮＮを使用することができる。ネットワーク記述変換モジュールには、独自に用意したものが考えられるが、オープンニューラルネットワーク変換フォーマット（ＯＮＮＸ）またはニューラルネットワーク変換フォーマット（ＮＮＥＦ）をサポートしてもよい。
【００２１】
例えば、ＤＮＮ生成部２０は、ネットワーク記述変換モジュールで学習済みＤＮＮ１Ａのネットワーク記述フォーマットを変換することにより、推論モジュール２Ａで利用可能な学習済みＤＮＮ２Ａ−１および学習済みＤＮＮ２Ａ−２を生成することができる。
【００２２】
次に動作について説明する。
図３は、実施の形態１に係るデータ処理方法を示すフローチャートであり、サーバ２とクライアント３による一連の処理を示している。
サーバ２において、ＤＮＮ生成部２０は、クライアント３から受信したリクエストに応じて、ユーザからの命令に含まれた要件を満たすように学習されたＤＮＮを生成する（ステップＳＴ１）。ユーザからの命令に含まれた要件には、ＤＮＮで実現したい機能、要求する性能およびフレームワークの種類がある。
【００２３】
なお、クライアント３のハードウェア性能を命令に含めてもよい。ハードウェア性能には、例えば、クライアント３のメモリ容量およびプロセッサの演算精度がある。この情報を要件とすることによって、ＤＮＮ生成部２０は、クライアント３のハードウェア性能で運用可能なＤＮＮモデルを生成することが可能となる。
【００２４】
推論の機能によって適したＤＮＮの処理特性は異なる。例えば、画像が撮影されてから画像の被写体を直ちに認識するという推論の機能では、クライアント３における演算処理の遅延が短いことが要求される。このように、ＤＮＮ生成部２０は、クライアント３の推論演算特性の要求に合わせたＤＮＮを生成してもよい。
【００２５】
ＤＮＮ生成部２０は、学習済みのフィルタを用いて畳み込みニューラルネットワーク（ＣＮＮ）の構造を決定してもよい。また、ＤＮＮ生成部２０は、ＤＮＮのデータサイズを制限する要件がある場合、ＤＮＮのデータサイズの要求を満たすように、ＤＮＮに圧縮処理を施してもよい。
【００２６】
ＤＮＮ生成部２０は、ユーザからの命令に含まれる要件を満たすと推定される学習済みＤＮＮがＤＮＮデータベース２３に存在する場合に、このＤＮＮの性能検証を行って要求性能を満たすという検証結果が得られると、このＤＮＮを検証用データ生成部２１へ出力する。一方、ユーザからの要件を満たす学習済みＤＮＮがＤＮＮデータベース２３に存在しない場合、ＤＮＮ生成部２０は、ＤＮＮデータベース２３を用いてＤＮＮを学習する。例えば、ＤＮＮ生成部２０は、命令と一致するフレームワークで実装されたモジュールとデータセットを用いてＤＮＮを学習する。
【００２７】
ＤＮＮ生成部２０は、命令と一致するフレームワークがＤＮＮデータベース２３に存在しなくても、ＤＮＮの学習を行ってから、命令と一致するネットワーク記述フォーマットへ変換してもよい。ＤＮＮ生成部２０は、学習で得られたＤＮＮの性能検証を行って要求性能を満たすという検証結果が得られると、このＤＮＮを検証用データ生成部２１へ出力する。なお、ＤＮＮの学習において、ＤＮＮ生成部２０が、要求性能に応じて教師データの取捨選択を行ってもよい。
【００２８】
次に、検証用データ生成部２１は、ＤＮＮ生成部２０によって生成されたＤＮＮが要件を満たすか否かの検証に用いられる検証用データを生成する（ステップＳＴ２）。検証用データは、クライアント３で行われるＤＮＮの検証方法に対応したデータであり、ＤＮＮの検証方法には、例えば、誤差逆伝播法（以下、ＢＰと記載する）を用いる方法とＤＮＮの中間記述子を用いる方法がある。
【００２９】
クライアント３でＢＰを用いてＤＮＮが検証される場合、検証用データ生成部２１は、ＤＮＮに与える入力値および出力値と、これらを与えたＤＮＮの中間層のノードの重みをＢＰによって更新したときの勾配値と、勾配値に関する閾値とを含む検証用データを生成する。クライアント３で中間記述子を用いてＤＮＮが検証される場合、検証用データ生成部２１は、ＤＮＮに与える入力値と、この入力値をＤＮＮに与えたときの中間記述子と、中間記述子に関する閾値とを含む検証用データを生成する。
【００３０】
次に、データ送信部２２は、ＤＮＮ生成部２０によって生成された学習済みのＤＮＮと検証用データ生成部２１によって生成された検証用データとをクライアント３へ送信する（ステップＳＴ３）。例えば、データ送信部２２は、学習済みＤＮＮおよび検証用データに対してフレームワークの名称といったヘッダ情報を統合した送信データを生成し、生成した送信データをクライアント３へ送信する。
【００３１】
クライアント３において、データ検証部３０は、サーバ２から受信した検証用データを用いて、ＤＮＮ生成部２０によって生成されたＤＮＮが要件を満たすか否かを検証する（ステップＳＴ４）。例えば、データ検証部３０は、任意の入力値と出力値を与えた学習済みＤＮＮにＢＰによる重み更新を施して得られた勾配値と検証用データに含まれる勾配値との差分を、検証用データに含まれる閾値と比較した結果に基づいて、ＤＮＮが要件を満たすか否かを検証する。また、データ検証部３０は、学習済みＤＮＮに任意の入力値を与えて得られた中間記述子と検証用データに含まれる中間記述子との差分を検証用データに含まれる閾値と比較した結果に基づいて、ＤＮＮが要件を満たすか否かを検証する。
【００３２】
学習済みＤＮＮが要件を満たすという検証結果が得られると（ステップＳＴ４；ＹＥＳ）、データ検証部３０は図３の処理を終了する。このとき、学習済みＤＮＮは、クライアント３上で正常に動作し、各種アプリケーションで運用可能である。
【００３３】
一方、学習済みＤＮＮが要件を満たさないという検証結果が得られると（ステップＳＴ４；ＮＯ）、データ検証部３０は、ＤＮＮの再学習が必要であると判断して、検証を実施した学習済みＤＮＮ、再リクエストの要因およびその詳細を示す情報とをリクエスト送信部３１に出力する。リクエスト送信部３１は、データ検証部３０から入力した、学習済みＤＮＮ、再リクエストの要因およびその詳細を示す情報を含むリクエストを生成し、生成したリクエストをサーバ２に送信する（ステップＳＴ５）。
【００３４】
サーバ２は、クライアント３から受信したリクエストに応じて、ステップＳＴ１からの処理を再度実行する。ユーザからの命令に含まれる要件を満たすＤＮＮが得られるまで、ステップＳＴ１からステップＳＴ５までの一連の処理が繰り返し実行される。
【００３５】
次に、ＤＮＮ生成処理について詳細に説明する。
図４は、ＤＮＮ生成処理を示すフローチャートであって、図３におけるステップＳＴ１の処理の詳細を示している。ＤＮＮ生成部２０は、ＤＮＮに要求する要件が含まれた命令を受け付ける（ステップＳＴ１ａ）。ＤＮＮ生成部２０は、この命令に含まれたフレームワークの種類、目的の機能および要求する性能に基づいてＤＮＮデータベース２３を検索して、命令に含まれる要件を満たすと推定される学習済みＤＮＮが存在するか否かを確認する（ステップＳＴ２ａ）。
【００３６】
命令に含まれる要件を満たすと推定される学習済みＤＮＮがＤＮＮデータベース２３に存在する場合（ステップＳＴ２ａ；ＹＥＳ）、ＤＮＮ生成部２０は、この学習済みＤＮＮが命令に含まれる要求性能を満たすか否かを検証する（ステップＳＴ３ａ）。このとき、学習済みＤＮＮが命令に含まれる要求性能を満たすという検証結果が得られると（ステップＳＴ３ａ；ＹＥＳ）、ＤＮＮ生成部２０は、学習済みＤＮＮ、ＤＮＮの生成方法、達成性能および要求性能を検証用データ生成部２１へ出力する（ステップＳＴ４ａ）。
【００３７】
ＤＮＮの生成方法には、ＤＮＮデータベース２３に既存のＤＮＮを用いる方法、またはＤＮＮを学習する方法がある。ＤＮＮの学習方法には、例えば、ＢＰを用いる学習方法がある。ＤＮＮの生成方法がＢＰを用いる学習方法である場合、ＤＮＮの学習に用いられたデータセットも設定される。また、達成性能は、ＤＮＮ生成部２０によるＤＮＮの学習で達成されたＤＮＮの性能である。要求性能は、ユーザから受け付けられた命令に含まれる要件に対応したＤＮＮの性能である。
【００３８】
一方、命令に含まれる要件を満たすと推定される学習済みＤＮＮがＤＮＮデータベース２３に存在しない場合（ステップＳＴ２ａ；ＮＯ）、または学習済みＤＮＮが命令に含まれる要求性能を満たさないという検証結果が得られた場合（ステップＳＴ３ａ；ＮＯ）、ＤＮＮ生成部２０は、命令に含まれるフレームワークと一致するフレームワークがＤＮＮデータベース２３に存在するか否かを確認する（ステップＳＴ５ａ）。
【００３９】
命令に含まれるフレームワークと一致するフレームワークがＤＮＮデータベース２３に存在する場合（ステップＳＴ５ａ；ＹＥＳ）、ＤＮＮ生成部２０は、このフレームワークに対応するデータをＤＮＮデータベース２３から読み出し、命令に含まれる要件を満たすようにＤＮＮを学習する（ステップＳＴ６ａ）。続いて、ＤＮＮ生成部２０は、学習済みＤＮＮが要求性能を満たすか否かを検証する（ステップＳＴ７ａ）。
【００４０】
このとき、学習済みＤＮＮが命令に含まれる要求性能を満たすという検証結果が得られると（ステップＳＴ７ａ；ＹＥＳ）、ＤＮＮ生成部２０は、ステップＳＴ４ａに移行して学習済みＤＮＮ、ＤＮＮの生成方法および要求性能などの要件を検証用データ生成部２１へ出力する。また、学習済みＤＮＮが命令に含まれる要求性能を満たさないという検証結果が得られた場合（ステップＳＴ７ａ；ＮＯ）、ＤＮＮ生成部２０は、ステップＳＴ６ａの処理に戻って、要求性能を満たすＤＮＮが得られるまでＤＮＮの学習を繰り返す。
【００４１】
命令に含まれるフレームワークと一致するフレームワークがＤＮＮデータベース２３に存在しない場合（ステップＳＴ５ａ；ＮＯ）、ＤＮＮ生成部２０は、命令に含まれる要件に一致するネットワーク記述フォーマットへの変換が可能であるか否かを確認する（ステップＳＴ８ａ）。例えば、ＤＮＮ生成部２０は、命令の要件に一致するネットワーク記述フォーマットへの変換を行う変換モジュールがＤＮＮデータベース２３に存在するか否かを確認する。
【００４２】
命令に含まれる要件に一致するネットワーク記述フォーマットへの変換が可能である（ステップＳＴ８ａ；ＹＥＳ）、ＤＮＮ生成部２０は、命令に含まれる要件を満たすようにＤＮＮを学習する（ステップＳＴ９ａ）。続いて、ＤＮＮ生成部２０は、ＤＮＮの学習を実施した後、命令の要件に一致するネットワーク記述フォーマットへの変換を実施する（ステップＳＴ１０ａ）。この後、ＤＮＮ生成部２０は、学習済みＤＮＮが要求性能を満たすか否かを検証する（ステップＳＴ１１ａ）。
【００４３】
学習済みＤＮＮが命令に含まれる要求性能を満たすという検証結果が得られると（ステップＳＴ１１ａ；ＹＥＳ）、ＤＮＮ生成部２０は、ステップＳＴ４ａに移行して学習済みＤＮＮ、ＤＮＮの生成方法および要求性能などの要件を検証用データ生成部２１へ出力する。また、学習済みＤＮＮが命令に含まれる要求性能を満たさないという検証結果が得られた場合（ステップＳＴ１１ａ；ＮＯ）、ＤＮＮ生成部２０は、ステップＳＴ９ａの処理に戻り、要求性能を満たすＤＮＮが得られるまでＤＮＮの学習を繰り返す。
【００４４】
命令に含まれるフレームワークと一致するフレームワークがＤＮＮデータベース２３に存在せず、命令に含まれる要件に一致するネットワーク記述フォーマットへの変換が不可能である場合（ステップＳＴ８ａ；ＮＯ）、ＤＮＮ生成部２０は、クライアント３で運用可能なＤＮＮの生成が不可と判定する（ステップＳＴ１２ａ）。このとき、ＤＮＮ生成部２０は、ＤＮＮを生成せずに、図４の処理を終了する。
【００４５】
次に、検証用データ生成処理について詳細に説明する。
図５は、ＢＰによる検証用データ生成処理を示すフローチャートであり、図３におけるステップＳＴ２の処理の詳細を示している。検証用データ生成部２１は、ＤＮＮ生成部２０から、学習済みのＤＮＮ、ＤＮＮの生成方法、ＤＮＮ生成部２０によるＤＮＮの学習で達成されたＤＮＮの達成性能、および命令に含まれる要件に対応するＤＮＮの要求性能を入力する（ステップＳＴ１ｂ）。続いて、検証用データ生成部２１は、学習済みのＤＮＮに対する任意の入力値と出力値を選択する（ステップＳＴ２ｂ）。
【００４６】
検証用データ生成部２１は、ステップＳＴ２ｂで選択した入力値および出力値を与えた学習済みのＤＮＮに対して、ＢＰによる中間層のノードの重み更新を実施する（ステップＳＴ３ｂ）。続いて、検証用データ生成部２１は、中間層のノードの重みを更新したときの損失関数の勾配値を算出して記憶する（ステップＳＴ４ｂ）。検証用データ生成部２１は、ステップＳＴ４ｂで算出した勾配値に関する閾値を決定する（ステップＳＴ５ｂ）。
【００４７】
例えば、検証用データ生成部２１は、ＤＮＮの要求性能と達成性能に基づいて、勾配値に関する閾値を一意に決定する。ＤＮＮの要求性能と達成性能との差が大きい場合には、サーバ２とクライアント３との間の性能の違いを許容できるため、勾配値に関する閾値には大きな値が設定される。また、検証用データ生成部２１は、ＤＮＮデータベース２３に登録されたテストデータを用いてＤＮＮの性能評価をサーバ２とクライアント３とで繰り返すことにより、勾配値に関する閾値を決定してもよい。
【００４８】
検証用データ生成部２１は、ＤＮＮ生成部２０から入力された学習済みＤＮＮと検証用データをデータ送信部２２に出力する（ステップＳＴ６ｂ）。なお、検証用データには、ステップＳＴ２ｂで選択された入力値と出力値、ステップＳＴ４ｂで算出された勾配値、およびステップＳＴ５ｂで決定された閾値が含まれる。
【００４９】
また、検証用データ生成部２１は、ＤＮＮの中間記述子を用いた検証用データを生成してもよい。図６は、ＤＮＮの中間記述子を用いた検証用データ生成処理を示すフローチャートであり、図３におけるステップＳＴ２の処理の詳細を示している。
検証用データ生成部２１は、ＤＮＮ生成部２０から、学習済みのＤＮＮ、ＤＮＮの生成方法、ＤＮＮ生成部２０によるＤＮＮの学習で達成されたＤＮＮの達成性能、および命令に含まれる要件に対応するＤＮＮの要求性能を入力する（ステップＳＴ１ｃ）。
【００５０】
次に、検証用データ生成部２１は、学習済みＤＮＮに対する任意の入力値を選択する（ステップＳＴ２ｃ）。例えば、検証用データ生成部２１は、ＤＮＮデータベース２３に登録された教師データまたはテストデータ、あるいは乱数で決定した値を、入力値として選択する。
【００５１】
続いて、検証用データ生成部２１は、学習済みのＤＮＮに対して、ステップＳＴ２ｃで選択した入力値を与えてＤＮＮの出力値を算出する（ステップＳＴ３ｃ）。検証用データ生成部２１は、中間層のノードの中間記述子を算出して記憶する（ステップＳＴ４ｃ）。検証用データ生成部２１は、ステップＳＴ４ｃで算出した中間記述子に関する閾値を決定する（ステップＳＴ５ｃ）。
【００５２】
例えば、検証用データ生成部２１は、ＤＮＮの要求性能と達成性能とに基づいて、中間記述子に関する閾値を一意に決定する。ＤＮＮの要求性能と達成性能との差が大きい場合には、サーバ２とクライアント３との間の性能の違いを許容できるため、中間記述子に関する閾値には大きな値が設定される。また、検証用データ生成部２１は、ＤＮＮデータベース２３に登録されたテストデータを用いてＤＮＮの性能評価をサーバ２とクライアント３とで繰り返すことにより、中間記述子に関する閾値を決定してもよい。
【００５３】
検証用データ生成部２１は、ＤＮＮ生成部２０から入力された学習済みＤＮＮと検証用データをデータ送信部２２に出力する（ステップＳＴ６ｃ）。なお、検証用データには、ステップＳＴ２ｃで選択された入力値、ステップＳＴ４ｃで算出された中間記述子およびステップＳＴ５ｃで決定された閾値が含まれる。
【００５４】
次に、データ送信処理について詳細に説明する。
図７は、データ送信処理を示すフローチャートであり、図３におけるステップＳＴ３の処理の詳細を示している。
データ送信部２２は、検証用データ生成部２１から、送信データを入力する（ステップＳＴ１ｄ）。送信データには、ＤＮＮ生成部２０から入力された学習済みＤＮＮ、および検証用データが含まれる。
【００５５】
データ送信部２２は、ステップＳＴ１ｄで入力した送信データにヘッダ情報を統合する（ステップＳＴ２ｄ）。ヘッダ情報には、例えば、ＤＮＮに対応するフレームワークの名称といった付加情報が含まれる。続いて、データ送信部２２は、ステップＳＴ１ｄで入力した送信データを統合する（ステップＳＴ３ｄ）。これにより、学習済みのＤＮＮおよび検証用データが一つの送信データに統合される。
【００５６】
データ送信部２２は、ステップＳＴ３ｄで統合した送信データに暗号化処理を実施する（ステップＳＴ４ｄ）。例えば、データ送信部２２は、送信データに対してクライアント３で復号可能な暗号化を実施する。データ送信部２２は、暗号化データをクライアント３に送信する（ステップＳＴ５ｄ）。データ送信部２２は、ハッシュコードを用いてサーバ２からの送信データとクライアント３の受信データとの整合性を保証してもよい。また、データ送信部２２は、受信されたときにデジタル署名を求める送信データを生成することで、データ改竄を検出する機能を送信データに加えてもよい。
【００５７】
次に、クライアント３の動作について詳細に説明する。
図８は、実施の形態１に係るクライアント３の動作を示すフローチャートであり、図３におけるステップＳＴ４およびステップＳＴ５の具体的な処理を示している。
クライアント３において、データ検証部３０が、サーバ２からの送信データを受信する（ステップＳＴ１ｅ）。サーバ２からの送信データには、ＤＮＮ生成部２０によって生成された学習済みのＤＮＮと、検証用データ生成部２１によって生成された検証用データが含まれる。
【００５８】
データ検証部３０は、受信データの復号処理を実施し（ステップＳＴ２ｅ）、クライアント３において、復号データから抽出した学習済みＤＮＮによる推論処理が可能か否かを確認する（ステップＳＴ３ｅ）。例えば、復号データから抽出した学習済みＤＮＮに対応するフレームワークとクライアント３で用いられるフレームワークとの間で小数点以下の有効桁数および内部の数値計算の仕方に違いがある場合、データ検証部３０は、クライアント３において学習済みＤＮＮを用いた推論処理が不可能と判断する。また、データ検証部３０は、クライアント３のメモリ容量が、サーバ２で生成されたＤＮＮの演算に必要なメモリ容量に満たなければ、クライアント３において学習済みＤＮＮを用いた推論処理が不可能と判断する。
【００５９】
ここで、クライアント３で学習済みＤＮＮによる推論処理が可能である場合（ステップＳＴ３ｅ；ＹＥＳ）、データ検証部３０は、サーバ２から受信した検証用データを用いて学習済みＤＮＮが性能要件を満たすか否かを検証する（ステップＳＴ４ｅ）。
学習済みＤＮＮが性能要件を満たす場合（ステップＳＴ４ｅ；ＹＥＳ）、データ検証部３０は、学習済みＤＮＮを各種アプリケーションへ出力する（ステップＳＴ５ｅ）。これにより、各種アプリケーションによって学習済みＤＮＮの使用が可能となる。
【００６０】
一方、クライアント３で学習済みＤＮＮによる推論処理が不可能である場合（ステップＳＴ３ｅ；ＮＯ）、あるいは学習済みＤＮＮが性能要件を満たさない場合（ステップＳＴ４ｅ；ＮＯ）、データ検証部３０は、学習済みＤＮＮと再リクエストの要因をリクエスト送信部３１へ出力する（ステップＳＴ６ｅ）。リクエスト送信部３１は、学習済みＤＮＮと同じ要件を満たすＤＮＮの生成を要求するリクエストに対して、再リクエストの要因を含めてサーバ２へ送信する。
【００６１】
次に、ＤＮＮ性能検証処理について詳細に説明する。
図９は、ＢＰによるＤＮＮ性能検証処理を示すフローチャートであって、図８におけるステップＳＴ４ｅの処理の詳細を示している。
データ検証部３０は、サーバ２から受信して復号したデータから、学習済みＤＮＮと、検証用データとを取得する（ステップＳＴ１ｆ）。検証用データには、学習済みＤＮＮに対する入力値および出力値、これらの値を与えた学習済みＤＮＮにＢＰを実施して得られた勾配値、および勾配値に関する閾値が含まれているものとする。
【００６２】
データ検証部３０は、任意の入力値および出力値を与えた学習済みＤＮＮに対してＢＰによる中間層のノードの重み更新を実施し（ステップＳＴ２ｆ）、中間層のノードの重みを更新したときの損失関数の勾配値を算出する。続いて、データ検証部３０は、ステップＳＴ２ｆで算出した勾配値と検証用データに含まれる勾配値との差分を算出する（ステップＳＴ３ｆ）。
【００６３】
データ検証部３０は、ステップＳＴ３ｆで算出した差分が検証用データに含まれる閾値よりも小さいか否かを確認する（ステップＳＴ４ｆ）。ステップＳＴ３ｆで算出した差分が閾値よりも小さい場合（ステップＳＴ４ｆ；ＹＥＳ）、データ検証部３０は、学習済みＤＮＮが性能要件を満たすと判定する（ステップＳＴ５ｆ）。一方、ステップＳＴ３ｆで算出した差分が閾値以上である場合（ステップＳＴ４ｆ；ＮＯ）、データ検証部３０は、学習済みＤＮＮが性能要件を満たさないという検証結果をリクエスト送信部３１に出力する（ステップＳＴ６ｆ）。
【００６４】
なお、図９では、任意の入力値および出力値を与えた学習済みＤＮＮにＢＰによる重み更新を施して得られた勾配値と検証用データに含まれる勾配値との差分が閾値よりも小さい場合に、学習済みＤＮＮが性能要件を満たすと判定したが、これに限定されるものではない。例えば、検証用データ生成部２１によって決定された閾値によっては、差分が閾値よりも小さい場合に、学習済みＤＮＮが性能要件を満たさないと判定し、差分が閾値以上であると、学習済みＤＮＮが性能要件を満たすと判定してもよい。
【００６５】
また、データ検証部３０は、中間記述子を用いたＤＮＮ性能検証を行ってもよい。
図１０は、ＤＮＮの中間記述子を用いたＤＮＮ性能検証処理を示すフローチャートであり、図８におけるステップＳＴ４ｅの処理の詳細を示している。
データ検証部３０は、サーバ２から受信して復号したデータから、学習済みＤＮＮと、検証用データとを取得する（ステップＳＴ１ｇ）。検証用データには、学習済みＤＮＮに対する入力値、この値を与えた学習済みＤＮＮから得られた中間記述子および中間記述子に関する閾値が含まれているものとする。
【００６６】
データ検証部３０は、学習済みＤＮＮに任意の入力値を与えて（ステップＳＴ２ｇ）、中間層から得られた中間記述子と検証用データに含まれる中間記述子との差分を算出する（ステップＳＴ３ｇ）。
データ検証部３０は、ステップＳＴ３ｇで算出した差分が検証用データに含まれる閾値よりも小さいか否かを確認する（ステップＳＴ４ｇ）。
【００６７】
ステップＳＴ３ｇで算出した差分が閾値よりも小さい場合（ステップＳＴ４ｇ；ＹＥＳ）、データ検証部３０は、学習済みＤＮＮが性能要件を満たすと判定する（ステップＳＴ５ｇ）。一方、ステップＳＴ３ｇで算出した差分が閾値以上である場合（ステップＳＴ４ｇ；ＮＯ）、データ検証部３０は、学習済みＤＮＮが性能要件を満たさないという検証結果をリクエスト送信部３１に出力する（ステップＳＴ６ｇ）。なお、学習済みＤＮＮが性能要件を満たさないという検証結果には、学習済みＤＮＮ、再リクエストの要因およびその詳細内容が含まれる。
【００６８】
なお、図１０では、学習済みＤＮＮに任意の入力値を与えて得られた中間記述子と検証用データに含まれる中間記述子との差分が閾値よりも小さい場合に、学習済みＤＮＮが性能要件を満たすと判定したが、これに限定されるものではない。例えば、検証用データ生成部２１によって決定された閾値によっては、差分が閾値よりも小さい場合に、学習済みＤＮＮが性能要件を満たさないと判定し、差分が閾値以上であると、学習済みＤＮＮが性能要件を満たすと判定してもよい。
【００６９】
次に、リクエストの再送信処理について詳細に説明する。
図１１は、リクエスト再送信処理を示すフローチャートであり、図８におけるステップＳＴ６ｅの処理の詳細を示している。
リクエスト送信部３１は、データ検証部３０からリクエスト用データを入力する（ステップＳＴ１ｈ）。リクエスト用データには、性能要件を満たさないと判定された学習済みＤＮＮ、再リクエストの要因およびその詳細内容が含まれる。
【００７０】
リクエスト送信部３１は、データ検証部３０から入力したリクエスト用データを用いてリクエスト情報を生成する（ステップＳＴ２ｈ）。例えば、リクエスト送信部３１は、学習済みＤＮＮ、再リクエストの要因およびその詳細内容を統合したリクエスト情報を生成する。
【００７１】
リクエスト送信部３１は、ステップＳＴ２ｈで生成したリクエスト情報に暗号化処理を施す（ステップＳＴ３ｈ）。例えば、リクエスト送信部３１は、リクエスト情報に対してサーバ２で復号可能な暗号化を実施する。次に、リクエスト送信部３１は、再リクエストの要因とその詳細を含むリクエスト情報をサーバ２に送信する（ステップＳＴ４ｈ）。
【００７２】
次に、サーバ２およびクライアント３を実現するハードウェア構成について説明する。
サーバ２におけるＤＮＮ生成部２０、検証用データ生成部２１およびデータ送信部２２の機能は、処理回路によって実現される。すなわち、サーバ２は、図３におけるステップＳＴ１からステップＳＴ３までの処理を実行するための処理回路を備えている。この処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。
さらに、クライアント３におけるデータ検証部３０およびリクエスト送信部３１の機能は、処理回路によって実現される。すなわち、クライアント３は、図３におけるステップＳＴ４からステップＳＴ５までの処理を実行するための処理回路を備えている。この処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵであってもよい。
【００７３】
図１２Ａは、サーバ２の機能を実現するハードウェア構成を示すブロック図である。図１２Ｂは、サーバ２の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図１２Ａおよび図１２Ｂにおいて、通信装置１００は、クライアント３と通信を行う装置である。ＤＮＮ生成部２０は、通信装置１００を用いてクライアント３のリクエスト送信部３１からリクエストを受信し、データ送信部２２は、通信装置１００を用いてクライアント３のデータ検証部３０へデータを送信する。ＤＢインタフェース１０１は、ＤＮＮデータベース１０２と、ＤＮＮ生成部２０および検証用データ生成部２１との間のデータのやり取りを中継するインタフェースである。
【００７４】
ＤＮＮデータベース１０２には、図１に示したＤＮＮデータベース２３であり、ＤＮＮモデルの生成と検証用データの生成に用いられるデータが登録されている。ＤＮＮデータベース１０２は、サーバ２とは独立して設けられてもよい。例えば、サーバ２からデータアクセスが可能なクラウド上に存在する記憶装置に設けられてもよい。
【００７５】
図１２Ｃは、クライアント３の機能を実現するハードウェア構成を示すブロック図である。図１２Ｄは、クライアント３の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図１２Ｃおよび図１２Ｄにおいて、通信装置１０６は、サーバ２と通信を行う装置である。データ検証部３０は、通信装置１０６を用いてサーバ２のデータ送信部２２からデータを受信し、リクエスト送信部３１は、通信装置１０６を用いてサーバ２のＤＮＮ生成部２０へリクエストを送信する。
【００７６】
処理回路が図１２Ａに示す専用のハードウェアの処理回路１０３である場合、処理回路１０３は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、または、これらを組み合わせたものが該当する。
サーバ２におけるＤＮＮ生成部２０、検証用データ生成部２１およびデータ送信部２２の機能を別々の処理回路で実現してもよく、これらの機能をまとめて１つの処理回路で実現してもよい。
【００７７】
処理回路が図１２Ｂに示すプロセッサ１０４である場合、サーバ２におけるＤＮＮ生成部２０、検証用データ生成部２１およびデータ送信部２２の機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。なお、ソフトウェアまたはファームウェアは、プログラムとして記述されてメモリ１０５に記憶される。
【００７８】
プロセッサ１０４は、メモリ１０５に記憶されたプログラムを読み出して実行することにより、サーバ２におけるＤＮＮ生成部２０、検証用データ生成部２１およびデータ送信部２２の機能を実現する。すなわち、サーバ２は、プロセッサ１０４によって実行されるときに、図３に示すステップＳＴ１からステップＳＴ３までの処理が結果的に実行されるプログラムを記憶するためのメモリ１０５を備える。これらのプログラムは、ＤＮＮ生成部２０、検証用データ生成部２１およびデータ送信部２２の手順または方法をコンピュータに実行させる。メモリ１０５は、コンピュータを、ＤＮＮ生成部２０、検証用データ生成部２１およびデータ送信部２２として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
【００７９】
処理回路が図１２Ｃに示す専用のハードウェアの処理回路１０７である場合、処理回路１０７は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡ、またはこれらを組み合わせたものが該当する。
クライアント３におけるデータ検証部３０およびリクエスト送信部３１の機能を別々の処理回路で実現してもよく、これらの機能をまとめて１つの処理回路で実現してもよい。
【００８０】
処理回路が図１２Ｄに示すプロセッサ１０８である場合、クライアント３におけるデータ検証部３０およびリクエスト送信部３１の機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。なお、ソフトウェアまたはファームウェアは、プログラムとして記述されてメモリ１０９に記憶される。
【００８１】
プロセッサ１０８は、メモリ１０９に記憶されたプログラムを読み出して実行することにより、クライアント３におけるデータ検証部３０およびリクエスト送信部３１の機能を実現する。すなわち、クライアント３は、プロセッサ１０８によって実行されるときに、図３に示したステップＳＴ４からステップＳＴ５までの処理が結果的に実行されるプログラムを記憶するためのメモリ１０９を備える。これらのプログラムは、データ検証部３０およびリクエスト送信部３１の手順または方法をコンピュータに実行させる。メモリ１０９は、コンピュータを、データ検証部３０およびリクエスト送信部３１として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
【００８２】
メモリ１０５またはメモリ１０９には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ−ＥＰＲＯＭ）などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどが該当する。
【００８３】
ＤＮＮ生成部２０、検証用データ生成部２１、およびデータ送信部２２の機能について一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。例えば、ＤＮＮ生成部２０は専用のハードウェアである処理回路１０３で機能を実現し、検証用データ生成部２１およびデータ送信部２２は、プロセッサ１０４がメモリ１０５に記憶されたプログラムを読み出して実行することによって機能を実現する。
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせにより上記機能を実現することができる。
【００８４】
同様に、データ検証部３０およびリクエスト送信部３１の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。
例えば、データ検証部３０は、専用のハードウェアである処理回路１０７で機能を実現し、リクエスト送信部３１は、プロセッサ１０８がメモリ１０９に記憶されたプログラムを読み出して実行することによって機能を実現する。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせにより上記機能を実現することができる。
【００８５】
以上のように、実施の形態１に係るサーバ２は、ＤＮＮが要件を満たすか否かの検証に用いられる検証用データを生成してクライアント３に送信するので、ＤＮＮの検証処理を簡略化させることができる。例えば、サーバ２とクライアント３の間で使用されるソフトウェアに不整合があると、サーバ２が学習したＤＮＮとクライアント３が要求したＤＮＮとで同様の性能を達成することができない。サーバ２で使用されるフレームワークとクライアント３で使用されるフレームワークとの間で小数点以下の有効桁数に違いがあるか、内部の数値計算の仕方に違いがあり、関数サポートの有無も異なる場合、サーバ２が学習したＤＮＮとクライアント３が要求したＤＮＮとで同様の推論性能は得られない。また、サーバ２とクライアント３の間でオペレーティングシステム（ＯＳ）が異なるか、ソフトウェアのバージョンが異なる場合も、サーバ２が学習したＤＮＮとクライアント３が要求したＤＮＮとで同様の推論性能は得られない要因となり得る。また、サーバ２とクライアント３の間で使用されるハードウェアに不整合があっても、サーバ２が学習したＤＮＮとクライアント３が要求したＤＮＮとで同様の性能を達成することができない。例えば、推論処理を行うクライアント３のメモリ容量がサーバ２で生成されたＤＮＮの演算に必要なメモリ容量に満たない場合、クライアント３上で推論処理を行うことはできない。
このような場合、クライアント３は、要求した要件をＤＮＮが満たすか否かを検証し、この検証結果に基づいてＤＮＮの設計を再度行い、この設計に応じた要件を満たすようにサーバ２にＤＮＮを再学習させる必要がある。
これに対して、実施の形態１では、サーバ２が検証用データを生成してクライアント３に送信するので、クライアント３が、ＤＮＮの性能検証において検証用データを全て用意する必要がなく、ＤＮＮの検証処理を簡略化させることができる。
【００８６】
実施の形態１に係るクライアント３は、サーバ２から受信した検証用データを用いて、サーバ２で生成された学習済みＤＮＮが要件を満たすか否かの検証を行うので、ＤＮＮの検証処理を簡略化させることができる。
【００８７】
実施の形態１に係るデータ処理システム１は、サーバ２およびクライアント３を備えるので、上記と同様の効果が得られる。さらに、実施の形態１に係るデータ処理方法では、図３に示したようにサーバ２およびクライアント３が動作するので、上記と同様の効果が得られる。
【００８８】
なお、本発明は上記実施の形態に限定されるものではなく、本発明の範囲内において、実施の形態の任意の構成要素の変形もしくは実施の形態の任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００８９】
この発明に係る学習装置は、ＤＮＮの検証処理を簡略化できるので、例えば、車両周辺の撮影画像を認識するコンピュータシステムに利用可能である。
【符号の説明】
【００９０】
１  データ処理システム、２  サーバ、３  クライアント、２０  ＤＮＮ生成部、２１  検証用データ生成部、２２  データ送信部、２３，１０２  ＤＮＮデータベース、３０  データ検証部、３１  リクエスト送信部、１００，１０６  通信装置、１０１  ＤＢインタフェース、１０３，１０７  処理回路、１０４，１０８  プロセッサ、１０５，１０９  メモリ。
【図１】
2019211909.tif 000003
【図２】
2019211909.tif 000004
【図３】
2019211909.tif 000005
【図４】
2019211909.tif 000006
【図５】
2019211909.tif 000007
【図６】
2019211909.tif 000008
【図７】
2019211909.tif 000009
【図８】
2019211909.tif 000010
【図９】
2019211909.tif 000011
【図１０】
2019211909.tif 000012
【図１１】
2019211909.tif 000013
【図１２】
2019211909.tif 000014
【国際調査報告】
2019211909.tif 000015
2019211909.tif 000016
2019211909.tif 000017