(57)【要約】【課題】深層学習の同期型データ並列の処理が高速に行えなかった。【解決手段】２以上の処理装置とサーバ装置とを有し、処理装置は、２以上の各学習対象情報を深層学習モデルに順次、適用し、フォーワードプロパゲーションとバックワードプロパゲーションとを行い、深層学習モデルの重みの修正情報を取得し、サーバ装置に送信し、サーバ装置からモデルの更新情報を受信し、更新情報を用いて深層学習モデルを更新し、サーバ装置は、２以上の各処理装置から修正情報を受信し、２以上の修正情報を用いて、更新情報を取得し、２以上の各処理装置に送信し、２以上の各処理装置において、フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行う学習システムにより、処理を高速に行える。【選択図】図２
2020003860.tif 000002
【特許請求の範囲】
【請求項１】
２以上の処理装置を用いて深層学習による学習を並列に行う学習システムであり、２以上の処理装置とサーバ装置とを有し、
前記２以上の各処理装置は、
２以上の各学習対象情報を深層学習モデルに順次、適用し、フォーワードプロパゲーションと、バックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を前記サーバ装置に送信し、当該修正情報の送信に応じて、前記サーバ装置から深層学習モデルの更新に関する更新情報を受信し、当該更新情報を用いて、深層学習モデルを更新し、
前記サーバ装置は、
前記２以上の各処理装置から修正情報を受信し、当該２以上の修正情報を用いて、更新情報を取得し、当該更新情報を前記２以上の各処理装置に送信し、
前記２以上の各処理装置において、
前記フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行う、学習システム。
【請求項２】
前記２以上の各処理装置は、
入力層と１または２以上の中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、
学習対象の情報である学習対象情報と正解情報とを有する２以上の学習情報が格納され学習情報格納部と、
前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、前記学習対象情報に対応する結果である予測情報を取得する予測部と、
前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記予測部が使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う修正情報取得部と、
前記修正情報を前記サーバ装置に送信する送信部と、
前記サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、
前記受信部が受信した更新情報を用いて、前記モデル格納部の深層学習モデルを更新する更新部とを具備し、
前記予測部は、
前記フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得し、
前記サーバ装置は、
前記２以上の各処理装置から修正情報を受信するサーバ受信部と、
前記サーバ受信部が受信した２以上の修正情報を用いて、更新情報を取得するサーバ取得部と、
前記更新情報を前記２以上の各処理装置に送信するサーバ送信部とを具備する請求項１記載の学習システム。
【請求項３】
前記２以上の各処理装置の予測部は、
前記更新部が最近に更新した深層学習モデルに、次の学習対象情報を適用し、フォーワードプロパゲーションを行い、前記学習対象情報に対応する結果である予測情報を取得する請求項２記載の学習システム。
【請求項４】
前記深層学習モデルは、
２以上のノードを有する入力層と２以上のノードを有する２層以上の中間層と２以上のノードを有する出力層とを有し、各層のノードの少なくとも一部のノードの間が、重み付きのエッジにより連結されており、
前記修正情報取得部は、
２以上の各エッジの重みの修正量である修正情報を取得し、
前記サーバ取得部は、
前記サーバ受信部が受信した２以上の修正情報を用いて、２以上の各エッジの新しい重みを含む更新情報を取得する請求項２または請求項３記載の学習システム。
【請求項５】
前記２以上の各処理装置において、
前記フォーワードプロパゲーションとバックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を前記サーバ装置に送信する第一の処理と、前記サーバ装置から深層学習モデルの更新に関する更新情報を受信し、当該更新情報を用いて、深層学習モデルを更新する第二の処理とを並列に実行する請求項１から請求項４いずれか一項に記載の学習システム。
【請求項６】
入力層と１または２以上の中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、
学習対象の情報である学習対象情報と正解情報とを有する２以上の学習情報が格納され学習情報格納部と、
前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、前記学習対象情報に対応する結果である予測情報を取得する予測部と、
前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記予測部が使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う修正情報取得部と、
前記修正情報をサーバ装置に送信する送信部と、
前記サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、
前記受信部が受信した更新情報を用いて、前記モデル格納部の深層学習モデルを更新する更新部とを具備し、
前記予測部は、
前記フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得する処理装置。
【請求項７】
前記フォーワードプロパゲーションとバックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を前記サーバ装置に送信する第一の処理と、前記サーバ装置から深層学習モデルの更新に関する更新情報を受信し、当該更新情報を用いて、深層学習モデルを更新する第二の処理とを並列に実行する請求項６記載の処理装置。
【請求項８】
入力層と１または２以上の中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報と正解情報とを有する２以上の学習情報が格納され学習情報格納部と、予測部と、修正情報取得部と、送信部と、受信部と、更新部とにより実現される処理方法であって、
前記予測部が、前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、前記学習対象情報に対応する結果である予測情報を取得する予測ステップと、
前記修正情報取得部が、前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記予測部が使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う修正情報取得ステップと、
前記送信部が、前記修正情報をサーバ装置に送信する送信ステップと、
前記受信部が、前記サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信ステップと、
前記更新部が、前記受信部が受信した更新情報を用いて、前記モデル格納部の深層学習モデルを更新する更新ステップとを具備し、
前記予測ステップにおいて、
前記フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得する処理方法。
【請求項９】
入力層と１または２以上の中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、
学習対象の情報である学習対象情報と正解情報とを有する２以上の学習情報が格納され学習情報格納部とにアクセス可能なコンピュータを、
前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、前記学習対象情報に対応する結果である予測情報を取得する予測部と、
前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記予測部が使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う修正情報取得部と、
前記修正情報をサーバ装置に送信する送信部と、
前記サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、
前記受信部が受信した更新情報を用いて、前記モデル格納部の深層学習モデルを更新する更新部として機能させるためのプログラムであり、
前記予測部を、
前記フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得する、ものとして、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、深層学習おける学習処理を行う学習システム等に関するものである。
【背景技術】
【０００２】
深層学習（以下、適宜「ＤＮＮ」と言う）では、学習データセット及びネットワークモデルの巨大化により、学習演算の長時間化が課題となっている。これまで、ＤＮＮでは学習時間を短縮するために、高性能演算器（ＣＰＵ、ＧＰＧＰＵ）等を複数個同時に利用する並列手法が用いられている。並列手法は大きく分けて「データ並列」と「モデル並列」に分類される。現在では、同等のネットワークを複数並べそれぞれに異なる入力データを学習させる「データ並列」手法が主流である。「データ並列」手法では、同期型データ並列処理を行う。
【０００３】
なお、従来の同期型データ並列処理を行う学習システムの構造の概念図は、図１３である。図１３において、Ｗｏｒｋｅｒ１、Ｗｏｒｋｅｒ２、・・・、ＷｏｒｋｅｒＮ（１３１）は、それぞれ後述する処理装置１に対応し、モデルを用いた演算を行う。モデルを用いた演算とは、深層学習モデルを用いたフォーワードプロパゲーションとバックワードプロパゲーションである。また、図１３のサーバ１３２は、後述するサーバ装置２に対応し、モデルの更新のための処理を行う。具体的には、サーバ１３２は、各Ｗｏｒｋｅｒ１３１から深層学習モデル（例えば、重みの更新量の集合ｄＷ(t)）を受け取り、最新モデルに更新し、各Ｗｏｒｋｅｒ１３１に最新モデルを、バス１３３を経由して送信する。なお、図１３において、サーバ１３２および各Ｗｏｒｋｅｒ１３１はメモリを有しても良いし、外部のメモリにアクセス可能であっても良い。
【０００４】
しかし、図１３に示す学習システムが行う従来の同期型データ並列処理において、Ｗｏｒｋｅｒ１３１におけるフォーワードプロパゲーションとバックワードプロパゲーションの処理に「Ｔｗ」時間必要であり、バスを経由した通信およびサーバ１３２におけるモデルの更新のための処理に「Ｔｓ」時間必要である場合、図１４に示すように、１回のモデル更新のための処理（１サイクルの処理）に「Ｔｗ＋Ｔｓ」時間、必要となる。
【０００５】
また、ＤＮＮに関する従来技術において、分散計算機システムで学習処理の反復処理を伴う際に、学習処理の起動と終了及びデータロードを抑制し、処理速度を向上させる分散計算システムがあった（特許文献１参照）。
【０００６】
さらに、ＤＮＮに関する従来技術において、ノード間並列による深層学習で、係数演算に使用する係数の勾配情報を深層学習に反映する処理の時間を短縮する並列情報処理装置があった（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−２２５５８号公報
【特許文献２】特開２０１８−１８２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した同期型データ並列は、最も一般的な深層学習並列化手法であるが、それぞれのプロセッサで演算を完了した後に得られる重みパラメータ（後述する「重み」）の更新量をサーバに集約する際に、データ転送時間が全体処理の律速要因となる課題があった。今後、さらなるネットワークの深層化が進んだ場合、重みパラメータ更新量のデータ転送量が全体のスループットに対してより影響力のある「ボトルネック」となる。
【０００９】
また、特許文献１において、モデル更新部とデータ適用部の処理が並列で行われておらず、高速化が不十分であった。
【００１０】
さらに、特許文献２において、各ノードにモデル更新用のＧＰＵと演算用のＣＰＵとを搭載し、各ノード間のＧＰＵでモデルの情報交換を実施しているため、各ノードにＣＰＵとＧＰＵが必要であり、ノード数が増加すると、システム構成が相当複雑になる、という課題があった。
【００１１】
つまり、従来技術においては、深層学習の並列化で主流である同期型データ並列の処理が十分に高速に行えなかった。
【課題を解決するための手段】
【００１２】
本第一の発明の学習システムは、２以上の処理装置を用いて深層学習による学習を並列に行う学習システムであり、２以上の処理装置とサーバ装置とを有し、２以上の各処理装置は、２以上の各学習対象情報を深層学習モデルに順次、適用し、フォーワードプロパゲーションと、バックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、修正情報をサーバ装置に送信し、修正情報の送信に応じて、サーバ装置から深層学習モデルの更新に関する更新情報を受信し、更新情報を用いて、深層学習モデルを更新し、サーバ装置は、２以上の各処理装置から修正情報を受信し、２以上の修正情報を用いて、更新情報を取得し、更新情報を２以上の各処理装置に送信し、２以上の各処理装置において、フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行う、学習システムである。
【００１３】
かかる構成により、深層学習における同期型データ並列の処理を高速に行える。
【００１４】
また、本第二の発明の学習システムは、第一の発明に対して、２以上の各処理装置は、入力層と１または２以上の中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報と正解情報とを有する２以上の学習情報が格納され学習情報格納部と、学習情報格納部の２以上の各学習対象情報をモデル格納部の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、学習対象情報に対応する結果である予測情報を取得する予測部と、予測情報とフォーワードプロパゲーションの対象である学習対象情報と対になる正解情報とを用いて、予測情報が正解情報に一致するまたは近づくために、予測部が使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う修正情報取得部と、修正情報をサーバ装置に送信する送信部と、サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、受信部が受信した更新情報を用いて、モデル格納部の深層学習モデルを更新する更新部とを具備し、予測部は、フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得し、サーバ装置は、２以上の各処理装置から修正情報を受信するサーバ受信部と、サーバ受信部が受信した２以上の修正情報を用いて、更新情報を取得するサーバ取得部と、更新情報を２以上の各処理装置に送信するサーバ送信部とを具備する学習システムである。
【００１５】
かかる構成により、深層学習における同期型データ並列の処理を高速に行える。
【００１６】
また、本第三の発明の学習システムは、第二の発明に対して、２以上の各処理装置の予測部は、更新部が最近に更新した深層学習モデルに、次の学習対象情報を適用し、フォーワードプロパゲーションを行い、学習対象情報に対応する結果である予測情報を取得する学習システムである。
【００１７】
かかる構成により、深層学習における同期型データ並列の処理を高速に行える。
【００１８】
また、本第四の発明の学習システムは、第二または第三の発明に対して、深層学習モデルは、２以上のノードを有する入力層と２以上のノードを有する２層以上の中間層と２以上のノードを有する出力層とを有し、各層のノードの少なくとも一部のノードの間が、重み付きのエッジにより連結されており、修正情報取得部は、２以上の各エッジの重みの修正量である修正情報を取得し、サーバ取得部は、サーバ受信部が受信した２以上の修正情報を用いて、２以上の各エッジの新しい重みを含む更新情報を取得する学習システムである。
【００１９】
かかる構成により、深層学習における同期型データ並列の処理を高速に行える。
【００２０】
また、本第五の発明の学習システムは、第一から第四のいずれかの発明に対して、２以上の各処理装置において、フォーワードプロパゲーションとバックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を前記サーバ装置に送信する第一の処理と、サーバ装置から深層学習モデルの更新に関する更新情報を受信し、当該更新情報を用いて、深層学習モデルを更新する第二の処理とを並列に実行する学習システムである。
【００２１】
かかる構成により、深層学習における同期型データ並列の処理をより高速に行える。
【００２２】
また、本第六の発明の処理装置は、入力層と１または２以上の中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報と正解情報とを有する２以上の学習情報が格納され学習情報格納部と、学習情報格納部の２以上の各学習対象情報をモデル格納部の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、学習対象情報に対応する結果である予測情報を取得する予測部と、予測情報とフォーワードプロパゲーションの対象である学習対象情報と対になる正解情報とを用いて、予測情報が正解情報に一致するまたは近づくために、予測部が使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う修正情報取得部と、修正情報をサーバ装置に送信する送信部と、サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、受信部が受信した更新情報を用いて、モデル格納部の深層学習モデルを更新する更新部とを具備し、予測部は、フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得する処理装置である。
【００２３】
かかる構成により、深層学習における同期型データ並列の処理を高速に行える処理装置を提供できる。
【００２４】
また、本第七の発明の処理装置は、第六の発明に対して、２以上の各処理装置において、フォーワードプロパゲーションとバックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を前記サーバ装置に送信する第一の処理と、サーバ装置から深層学習モデルの更新に関する更新情報を受信し、当該更新情報を用いて、深層学習モデルを更新する第二の処理とを並列に実行する処理装置である。
かかる構成により、深層学習における同期型データ並列の処理をより高速に行える。  
【発明の効果】
【００２５】
本発明による学習システムによれば、深層学習における同期型データ並列の処理を高速に行える。
【図面の簡単な説明】
【００２６】
【図１】実施の形態１における学習システムＡの概念図
【図２】同学習システムＡのブロック図
【図３】同深層学習モデルのイメージ図
【図４】同処理装置１の動作について説明するフローチャート
【図５】同サーバ装置２の動作について説明するフローチャート
【図６】同学習システムＡの処理時間を説明する図
【図７】同実験結果を示す図
【図８】同実験結果を示す図
【図９】同実験結果を示す図
【図１０】同学習システムＡの他の概念図
【図１１】同コンピュータシステムの概観図
【図１２】同コンピュータシステムのブロック図
【図１３】同従来の学習システムの概念図
【図１４】同従来の学習システムの処理時間を説明する図
【発明を実施するための形態】
【００２７】
以下、学習システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２８】
（実施の形態１）
本実施の形態において、フォーワードプロパゲーションとバックワードプロパゲーションとを行う深層学習による学習を高速に行う学習システムについて説明する。特に、処理装置においてフォーワードプロパゲーションを行う場合に、直前より前（例えば、直前のステップより１ステップ前）の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行う、学習システムについて説明する。なお、フォーワードプロパゲーション、バックワードプロパゲーションは公知技術であるので、詳細な説明を省略する。また、学習対象情報は、学習対象の情報であり、例えば、画像であるが、そのデータは問わない。学習対象情報は、例えば、動画、テキスト、音声等でも良い。また、修正情報および更新情報の詳細については、後述する。さらに、１ステップは、１回のフォーワードプロパゲーションと１回のバックワードプロパゲーションとにより、深層学習モデルが更新されるまでの処理である。
【００２９】
図１は、本実施の形態における学習システムＡの概念である。学習システムＡは、２以上の処理装置１とサーバ装置２とを備える。２以上の各処理装置１とサーバ装置２とは、通信路により通信可能である。通信路は、例えば、バスであるが、インターネット等のネットワークでも良い。また、処理装置１は後述する演算を行う。後述する演算は、フォーワードプロパゲーションとバックワードプロパゲーションとを含む。また、サーバ装置２は後述するモデル更新を行う。モデル更新は、後述する深層学習モデルの更新のための処理である。
【００３０】
学習システムＡは、深層学習の並列化における主流である同期型データ並列の処理を行うシステムである。
【００３１】
処理装置１は、２以上の各学習対象情報を深層学習モデルに順次、適用し、フォーワードプロパゲーションと、バックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報をサーバ装置２に送信し、当該修正情報の送信に応じて、サーバ装置２から深層学習モデルの更新に関する更新情報を受信し、当該更新情報を用いて、深層学習モデルを更新する。そして、処理装置１は、更新した深層学習モデルを用いて、次の学習対象情報を用いて、フォーワードプロパゲーションを行う。
【００３２】
サーバ装置２は、２以上の各処理装置１から修正情報を受信し、当該２以上の修正情報を用いて、更新情報を取得し、当該更新情報を２以上の各処理装置１に送信する。
【００３３】
図２は、本実施の形態における学習システムＡのブロック図の例である。学習システムＡは、処理装置１、およびサーバ装置２を備える。
【００３４】
処理装置１は、格納部１１、処理部１２、送信部１３、および受信部１４を備える。格納部１１は、モデル格納部１１１、および学習情報格納部１１２を備える。処理部１２は、予測部１２１、修正情報取得部１２２、および更新部１２３を備える。
【００３５】
サーバ装置２は、サーバ格納部２１、サーバ受信部２２、サーバ処理部２３、およびサーバ送信部２４を備える。サーバ処理部２３は、サーバ取得部２３１を備える。
【００３６】
処理装置１を構成する格納部１１には、各種の情報が格納される。各種の情報とは、例えば、後述する深層学習モデル、後述する学習情報である。
【００３７】
モデル格納部１１１には、１または２以上の深層学習モデルが格納される。モデル格納部１１１に２以上の深層学習モデルが格納される場合、２以上の処理装置１で一のフォーワードプロパゲーションが行われた際に使用された深層学習モデルと、当該一のフォーワードプロパゲーションに対応するバックワードプロパゲーションが行われた結果を用いて更新された深層学習モデル（重みが更新された深層学習モデル）とを含む。深層学習モデルは、深層学習で使用されるモデルである。深層学習モデルは、２以上の各入力層と１または２以上の中間層と出力層とを有する。なお、重みとは、学習により更新されるパラメータ（「数値」と言っても良い）であり、例えば、０以上、１未満の数値である。ただし、パラメータは、負の値の場合もあり、深層学習モデルにより決まるものであり、限定されるものではない。
【００３８】
深層学習モデルとは、入力層と２層以上の中間層と出力層とを有する。入力層、中間層、および出力層の各層が有する２以上のノードのうちの少なくとも一部のノードの間が、重み付きのエッジにより連結されている。
【００３９】
入力層は、２以上のノードを有する。２以上の各ノードは、入力を受け付ける。入力を受け付けることは、入力からのエッジと接続されていることでも良い。２以上の各ノードは、中間層のノードへの２以上のエッジと接続されている。エッジとの接続を特定するデータ構造は問わない。エッジは、重みを有する。
【００４０】
中間層は、２以上のノードを有する。２以上の各ノードは、入力層のノードまたは他の中間層のノードまたは出力層のノードへ繋がる２以上のエッジと接続されている。
【００４１】
出力層は、２以上のノードを有する。２以上の各ノードは、中間層のノードからの２以上のエッジと接続されている。出力層の２以上の各ノードから情報が出力される。
【００４２】
深層学習モデルのイメージ図を図３に示す。図３において、ノードは、３０１の図柄の丸である（図３において一部のノードに符号３０１を付している）。エッジは、線３０２である（図３において一部のエッジに符号３０２を付している）。入力は、Ｘ０・・・Ｘｎである。出力は、Ｙ０・・・Ｙｎである。また、図３において、各エッジには重み（Ｗｉ，Ｗｊ，Ｗｋ・・・）が付与されている（図３において一部のエッジにのみ重みを記載している）。
【００４３】
なお、深層学習モデルのデータ構造は問わないことは言うまでもない。深層学習モデルのデータ構造は、図３の構造が実現できるデータ構造であれば良い。
【００４４】
学習情報格納部１１２は、２以上の学習情報が格納され、学習情報は、学習対象情報と正解情報とを有する。学習対象情報は、学習対象の情報である。正解情報は、正しい情報（正解）である。
【００４５】
処理部１２は、各種の処理を行う。各種の処理とは、例えば、予測部１２１、修正情報取得部１２２、更新部１２３が行う処理である。
【００４６】
予測部１２１は、学習情報格納部１１２の２以上の各学習対象情報を、モデル格納部１１１の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、学習対象情報に対応する結果である予測情報を取得する。かかる予測部１２１の処理は、公知の深層学習に含まれる公知の処理であるので、詳細な説明を省略する。
【００４７】
予測部１２１は、フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得する。
【００４８】
予測部１２１は、更新部１２３が最近に更新した深層学習モデルに、次の学習対象情報を適用し、フォーワードプロパゲーションを行い、学習対象情報に対応する結果である予測情報を取得することは好適である。
【００４９】
つまり、予測部１２１は、直前のフォーワードプロパゲーションの処理の結果、取得された修正情報により、サーバ装置２で取得される更新情報の受信を待たずに、処理装置１が保持している最新の深層学習モデル（更新部１２３が最近に更新した深層学習モデル）を用いてフォーワードプロパゲーションを行うことは好適である。
【００５０】
修正情報取得部１２２は、バックワードプロパゲーションを行う。なお、バックワードプロパゲーションは、公知技術である。
【００５１】
修正情報取得部１２２は、フォーワードプロパゲーションの対象となった学習対象情報と対になる正解情報を学習情報格納部１１２から取得し、当該正解情報と予測部１２１が当該フォーワードプロパゲーションを用いて取得した予測情報とを用いて、バックワードプロパゲーションを行う。バックワードプロパゲーションは、予測情報が正解情報に一致するまたは近づくために、予測部１２１が使用した深層学習モデルが有する重みを修正するための修正情報を取得する処理である。
【００５２】
修正情報取得部１２２は、２以上の各エッジの重みの修正量である修正情報を取得することは好適である。かかる場合、修正情報は、前のエッジの重みに対する修正の量を示す情報である。かかる場合、修正情報は、例えば、エッジ識別子と修正量の対の情報の集合でも良いし、エッジの順序が決まっている場合において、修正量の集合でも良い。
【００５３】
ただし、修正情報取得部１２２は、２以上の各エッジの修正された重みを取得しても良い。かかる場合、修正情報は、各エッジに対して修正された重みの集合である。かかる場合、例えば、修正情報は、エッジ識別子と更新された重みの対の情報の集合でも良いし、エッジの順序が決まっている場合において、更新された重みの集合でも良い。
【００５４】
更新部１２３は、受信部１４が受信した更新情報を用いて、モデル格納部１１１の深層学習モデルを更新する。
【００５５】
更新情報は、例えば、重みを更新するための修正情報である。修正情報は、前のエッジの重みに対する修正値でも良い。かかる場合、例えば、修正情報は、エッジ識別子と修正値の対の情報の集合でも良いし、エッジの順序が決まっている場合において、修正値の集合でも良い。また、修正情報は、各エッジに対して修正された重みの集合でも良い。かかる場合、例えば、修正情報は、エッジ識別子と重みの対の情報の集合でも良いし、エッジの順序が決まっている場合において、重みの集合でも良い。
【００５６】
更新情報は、例えば、重みが更新された深層学習モデルそのものでも良い。
【００５７】
送信部１３は、修正情報取得部１２２が取得した修正情報をサーバ装置２に送信する。送信とは、バスを経由した情報の送付でも良い。
【００５８】
受信部１４は、サーバ装置２から深層学習モデルの更新に関する更新情報を受信する。受信とは、バスを経由した情報の受け付けでも良い。受信部１４は、修正情報のサーバ装置２への送信に応じて、更新情報をサーバ装置２から受信する。
【００５９】
サーバ装置２を構成するサーバ格納部２１には、各種の情報が格納される。各種の情報とは、例えば、修正情報、更新情報である。
【００６０】
サーバ受信部２２は、２以上の各処理装置１から修正情報を受信する。
【００６１】
サーバ処理部２３は、各種の処理を行う。各種の処理とは、例えば、サーバ取得部２３１が行う処理である。
【００６２】
サーバ取得部２３１は、サーバ受信部２２が受信した２以上の修正情報を用いて、更新情報を取得する。
【００６３】
サーバ取得部２３１は、例えば、サーバ受信部２２が受信した２以上の各修正情報が有する各エッジの更新量の代表値を算出し、当該各エッジの代表値を有する更新情報を取得する。代表値は、例えば、平均値であるが、中央値等でも良い。なお、かかる場合、更新情報は、各エッジの重みの更新量の集合を有する。更新情報は、例えば、エッジ識別子と更新量の組の集合である。ただし、エッジの順序が決まっている場合において、更新情報は、２以上の各エッジの新しい重みを取得するための更新量の集合でも良い。
【００６４】
サーバ取得部２３１は、サーバ受信部２２が受信した２以上の各修正情報を用いて、各エッジの更新された重みを取得しても良い。かかる場合、更新情報は、各エッジの更新された重みを含む。そして、更新情報は、例えば、エッジ識別子と更新された重みの組の集合である。ただし、エッジの順序が決まっている場合において、更新情報は、２以上の各エッジの更新された重みの集合でも良い。なお、サーバ取得部２３１は、公知技術により実現可能である。
【００６５】
サーバ送信部２４は、サーバ取得部２３１が取得した更新情報を２以上の各処理装置１に送信する。
【００６６】
格納部１１、モデル格納部１１１、学習情報格納部１１２、およびサーバ格納部２１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００６７】
格納部１１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部１１等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部１１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部１１等で記憶されるようになってもよい。
【００６８】
処理部１２、予測部１２１、修正情報取得部１２２、更新部１２３、サーバ処理部２３、およびサーバ取得部２３１は、通常、ＭＰＵやメモリ等から実現され得る。なお、処理部１２、予測部１２１、修正情報取得部１２２、および更新部１２３は、特に、ＧＰＧＰＵとメモリ等により実現されることは好適である。処理部１２等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６９】
送信部１３、受信部１４、サーバ受信部２２、およびサーバ送信部２４は、バスを経由して、情報を送信または受信する手段により実現されても良い。
【００７０】
ただし、送信部１３、受信部１４、サーバ受信部２２、およびサーバ送信部２４は、無線または有線の通信手段で実現されても良い。
【００７１】
次に、学習システムＡの動作について説明する。まず、処理装置１の動作について、図４のフローチャートを用いて説明する。
【００７２】
（ステップＳ４０１）予測部１２１は、カウンタｉに１を代入する。
【００７３】
（ステップＳ４０２）予測部１２１は、ｉ番目の学習情報が存在するか否かを判断する。ｉ番目の学習情報が存在する場合はステップＳ４０３に行き、ｉ番目の学習情報が存在しない場合は処理を終了する。なお、学習情報は、深層学習モデルを更新するために学習させるための情報である。
【００７４】
（ステップＳ４０３）予測部１２１は、ｉ番目の学習情報が有する学習対象情報を学習情報格納部１１２から取得する。
【００７５】
（ステップＳ４０４）予測部１２１は、モデル格納部１１１からｎステップ前の深層学習モデルを取得する。なお、ｎステップ前の深層学習モデルとは、重み更新をｎステップ遅らせた深層学習モデルである。また、ｎは１以上の自然数である。予測部１２１が使用するｎステップ前の深層学習モデルは、モデル格納部１１１の中の最新の深層学習モデルであることは好適である。ｎステップ前の深層学習モデルは、（ｉ−１）番目の学習対象情報を用いて行われたフォーワードプロパゲーションに対応するバックワードプロパゲーションにより取得された修正情報を用いて取得された更新情報により更新された深層学習モデルではない。つまり、予測部１２１は、サーバ装置２からの更新情報の受信を待つことなく、この時点でモデル格納部１１１に格納されている最新の深層学習モデルを取得することは好適である。
【００７６】
（ステップＳ４０５）予測部１２１は、ステップＳ４０３で取得したｉ番目の学習対象情報をステップＳ４０４で取得した深層学習モデルに適用し、フォーワードプロパゲーションを行い、予測情報を取得する。
【００７７】
（ステップＳ４０６）修正情報取得部１２２は、ｉ番目の学習対象情報と対になる正解情報を学習情報格納部１１２から取得する。
【００７８】
（ステップＳ４０７）修正情報取得部１２２は、ステップＳ４０６で取得した正解情報と、ステップＳ４０５で取得された予測情報とを用いて、バックワードプロパゲーションを行う。さらに具体的には、修正情報取得部１２２は、ステップＳ４０５で取得された予測情報が、ステップＳ４０６で取得した正解情報に一致するまたは近づくために、予測部１２１が使用した深層学習モデルが有する重みを修正するための修正情報を取得する。
【００７９】
（ステップＳ４０８）送信部１３は、ステップＳ４０７で取得された修正情報をサーバ装置２に送信する。
【００８０】
（ステップＳ４０９）予測部１２１は、カウンタｉを１、インクリメントする。
【００８１】
（ステップＳ４１０）受信部１４は、サーバ装置２から更新情報を受信したか否かを判断する。更新情報を受信した場合はステップＳ４１１に行き、更新情報を受信しなかった場合はステップＳ４０２に戻る。
【００８２】
（ステップＳ４１１）更新部１２３は、ステップＳ４１０で受信された更新情報を用いて、ｉ番目の学習対象情報に対して適用された深層学習モデルを更新する。ステップＳ４０２に戻る。
【００８３】
なお、図４のフローチャートにおいて、フォーワードプロパゲーションとバックワードプロパゲーションとを行い、更新情報をサーバ装置２に送信するまでの処理と、サーバ装置２から更新情報を受信し、当該更新情報を用いて深層学習モデルを更新する処理とを、並列に実行することは好適である。
【００８４】
次に、サーバ装置２の動作について、図５のフローチャートを用いて説明する。
【００８５】
（ステップＳ５０１）サーバ受信部２２は、処理装置１から修正情報を受信したか否かを判断する。修正情報を受信した場合はステップＳ５０２に行き、修正情報を受信しなかった場合はステップＳ５０１に戻る。
【００８６】
（ステップＳ５０２）サーバ処理部２３は、ステップＳ５０１で受信された修正情報をサーバ格納部２１に蓄積する。
【００８７】
（ステップＳ５０３）サーバ処理部２３は、今回の処理において、すべての処理装置１から修正情報を受信したか否かを判断する。すべての処理装置１から修正情報を受信した場合はステップＳ５０４に行き、すべての処理装置１から修正情報を受信していない場合はステップＳ５０１に戻る。
【００８８】
（ステップＳ５０４）サーバ取得部２３１は、今回の処理において、サーバ格納部２１に蓄積されたすべての修正情報をサーバ格納部２１から読み出す。
【００８９】
（ステップＳ５０５）サーバ取得部２３１は、ステップＳ５０４で取得したすべての修正情報を用いて更新情報を取得する。
【００９０】
（ステップＳ５０６）サーバ送信部２４は、ステップＳ５０５で取得された更新情報を２以上の各処理装置１に送信する。
【００９１】
（ステップＳ５０７）サーバ処理部２３は、次の回の処理が存在するか否かを判断する。次の回の処理が存在する場合はステップＳ５０１に戻り、次の回の処理が存在しない場合は処理を終了する。なお、次の回の処理が存在する場合は、次のステップが存在する場合であり、処理装置１で次の学習対象情報を用いた処理が行われる場合である。
【００９２】
以下、本実施の形態における学習システムＡの具体例について説明する。学習システムＡの概念図は図１である。
【００９３】
学習システムＡにおいて、ここでは、重みパラメータの更新量をサーバ装置２に集約する際の通信ボトルネック解消のために、深層学習モデルの更新の手法として、１ステップ分（つまり、上記のｎ＝１）、重みパラメータの更新を遅らせる遅延更新手法を用いた。かかる手法は、連続して多数の学習対象情報を用いて深層学習モデルを更新する中で、ｉ番目の学習対象情報を用いて深層学習モデルを更新する場合に、直前（（ｉ−１）番目）の学習対象情報を用いて取得された重みを用いて更新された深層学習モデルを用いるのではなく、直前の１つ前（（ｉ−２）番目）の学習対象情報を用いて取得された重みを用いて更新された深層学習モデルを用いる手法である。
【００９４】
そして、かかる処理により、処理装置１は、サーバ装置２からの更新情報の受信を待つことなく、例えば、（ｉ−１）番目の学習対象情報を用いた処理の完了後、直ちにｉ番目の学習対象情報を用いた処理が行える。
【００９５】
そして、図６に示すように、処理装置１が行う処理の時間を「Ｔｗ」、変更情報の送信およびサーバ装置２の処理の時間を「Ｔｓ」とした場合、学習システムＡの１サイクルの処理時間は、Ｔｗ≧Ｔｓのとき「Ｔｗ」，Ｔｗ＜Ｔｓのとき「Ｔｓ」となる。すなわち、図６に示すように、１サイクルの処理時間は、ｍａｘ（Ｔｗ，Ｔｓ）で表示できる。一方、従来技術（図１３のシステム）における１サイクルの処理時間は、図１４に示したように「Ｔｗ＋Ｔｓ」となる。従って、学習システムＡの１サイクルの処理時間は、理論上、従来の技術のシステムの１サイクルの処理時間のＴｗ≧Ｔｓのとき「Ｔｗ／（Ｔｗ＋Ｔｓ）」，Ｔｗ＜Ｔｓのとき「Ｔｓ／（Ｔｗ＋Ｔｓ）」となり，Ｔｗ＝Ｔｓのとき最大で１／２となる。なお、「ｍａｘ（Ｔｗ，Ｔｓ）」の関数「ｍａｘ」は、「Ｔｗ」と「Ｔｓ」のうち、大きい方の値を返す関数である。
【００９６】
（実験結果）
以下、本実施の形態における学習システムＡの実験結果について説明する。
【００９７】
本実験において、深層学習モデルのネットワークモデルはVGG-Fネットワークを用いた。また、学習データセットとして、ImageNetデータセット（インターネットホームページ、ＵＲＬ「http://www.image-net.org/」参照）を用いた。そして、数値演算ソフト(MATLAB)（インターネットホームページ、ＵＲＬ「https://jp.mathworks.com/products/matlab.html」参照）を利用して、学習システムＡの手法（以下、適宜「本手法」と言う。）と従来手法との比較実験を行った。なお、学習データセットとは、学習対象の情報であり、上述した学習対象情報である。
【００９８】
本手法と従来手法について、画像認識精度と計算機上で実行時間とを評価し、重み更新量の演算器間のデータ転送にかかる待機時間の高速化を検証した。かかる実験結果を、図７、図８、図９に示す。
【００９９】
図７（ａ）は、1台の処理装置（Ｗｏｒｋｅｒ）が１度に扱う画像枚数であるバッチサイズを１６に設定したときに精度を検証した実験結果である。図７（ｂ）は、バッチサイズを32に設定したときに精度を検証した実験結果である。本深層学習における評価は、候補としてあげた上位５つの答えの中に正解が含まれていれば、認識成功としてポイントを与えるという採点をしている。図７（ａ）（ｂ）において、縦軸「Ｖａｌｉｄａｔｉｏｎ  Ｔｏｐ  ５  ｅｒｒｏｒ「％」」は、上位５つの候補に正解が含まれていない率を表す。横軸「Ｅｐｏｃｈ」は、全ての学習データセットの処理を実施した場合には、１回とカウントした時の回数で、各エポックで同じデータセットを繰り返し学習する。また、Ｃｏｎｖ.のグラフは従来手法を用いた学習処理の実行結果を示すものであり、Ｐｒｏｐ.のグラフは本手法を用いた学習処理の実行結果を示すものである。また、「＃Ｔｈｒｅｄｓ  ｔｈ＝２」、「＃Ｔｈｒｅｄｓ  ｔｈ＝４」および「＃Ｔｈｒｅｄｓ  ｔｈ＝８」は、それぞれ、Ｗｏｒｋｅｒの数が、２、４、８であることを示している。例えば、Ｖａｌｉｄａｔｉｏｎ  Ｔｏｐ  ５  ｅｒｒｏｒ「％」が７０％に到達するまでのＥｐｏｃｈ数は、従来手法と本手法を比較した場合には、従来手法の方がＥｐｏｃｈ数は少なくなっているが、その差は、最大１位に収まっている。一方、従来手法と本手法での１Ｅｐｏｃｈの学習に要する時間は、従来手法に比べて、本手法を用いることで短縮され、最大で約２分の１の時間で実施することができる。
【０１００】
図８は、図７（ａ）のグラフにおいて、従来手法と本手法との差異を明示する概略のグラフであり、本手法は従来手法と比較して、短時間で良好な結果が得られることを示す。従来手法では、１Ｅｐｏｃｈに要する時間が、「Ｔｗ＋Ｔｓ」であり、本手法では、２Ｅｐｏｃｈに要する時間が、「Ｔｗ＋Ｔｓ」であった場合には、図８に示すようなＶａｌｉｄａｔｉｏｎ Ｔｏｐ ５ ｅｒｒｏｒ「％」を得ることができる。本手法では、最大でＶａｌｉｄａｔｉｏｎ Ｔｏｐ ５ ｅｒｒｏｒ「％」の値が、同じ値に達するまでの時間を、従来手法と比較して約半分の実行時間まで短縮できる。
【０１０１】
図９（ａ）は、処理装置（Ｗｏｒｋｅｒ）が１度に扱うバッチサイズを１６に設定し、Ｒｗｓを変化させた場合に、どれだけ学習の速度を高速化可能であるかという指標を「学習速度の高速化倍率」として示している。図９（ｂ）は、処理装置（Ｗｏｒｋｅｒ）が１度に扱うバッチサイズを３２に設定し、Ｒｗｓを変化させた場合に、どれだけ学習の速度を高速化可能であるかという指標を「学習速度の高速化倍率」として示している。図９（ａ）（ｂ）において、縦軸「Ａｃｃｅｌｅｒａｔｉｏｎ  ｒａｔｉｏ：Ｒｗｓ」は本手法において精度変化しない場合の「学習速度の高速化倍率」を示している。図中におけるＲｗｓの計算式は、Ｒｗｓ＝（Ｔｗ＋Ｔｓ）／ｍａｘ（Ｔｗ，Ｔｓ）である。計算式中のｍａｘ（Ｔｗ，Ｔｓ）では、ＴｗとＴｓのうち最大のものを選択する。Ｒｗｓは、深層学習モデルや学習システムの構成によって１＜Rws≦２の範囲で値を取る。縦軸「Ｃｏｎｖｅｒｇｅｎｃｅ  ｓｐｅｅｄｕｐ  ｆａｃｔｏｒ」はＲｗｓに精度変化を考慮して正規化した学習の高速化倍率、横軸「Ｎｕｍｂｅｒ  ｏｆ  ｔｈｒｅａｄｓ」は、Ｗｏｒｋｅｒの数である。
【０１０２】
本手法では、上述した通り、演算器間の非同期処理を行うため、厳密な意味での正確な重み更新値計算を行わない。従って、学習プロセス段階における多少の精度劣化を考慮する必要があるものの、計算機並列数が「２」の場合において、図９（ａ）に示す通り、最大で１．９７倍の高速化ができる。
【０１０３】
以上、本実施の形態によれば、深層学習における同期型データ並列の処理を高速に行える。
【０１０４】
なお、本方法を用いると、深層学習の分散処理に特化した多ノードなコンピュータ・クラスタ並列処理における、データ通信遅延解消による全体処理速度の高速化に活用することができる。つまり、学習システムＡは、深層学習向けサーバクラウド提供システムに対する計算リソース利用の高効率化に活用可能である。
【０１０５】
また、本実施の形態によれば、学習システムＡは、処理装置での演算処理とサーバ装置での更新プロセスとを並列化することにより、通信に掛かる待機時間を解消できる。具体的には、本学習システムＡは、例えば、１ステップ分、重み更新を遅らせることで、各処理装置が演算を実行する間に重みの更新量を集約し、新しい重みを計算する手法を採用する。
【０１０６】
なお、本実施の形態において、処理装置１とサーバ装置２との間の情報の受け渡し方法は問わない。例えば、図１０に示すように、２以上の各処理装置１とサーバ装置２とは、共有メモリを介して、修正情報、および更新情報の受け渡しを行っても良い。共有メモリを介する情報の受け渡しも、情報の送信、受信と言っても良い。
【０１０７】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における処理装置１を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、例えば、入力層と１または２以上の中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報と正解を示す正解情報とを有する２以上の学習情報が格納され学習情報格納部とにアクセス可能なコンピュータを、前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに順次、適用し、フォーワードプロパゲーションを行い、前記学習対象情報に対応する結果である予測情報を取得する予測部と、前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記予測部が使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う修正情報取得部と、前記修正情報を前記サーバ装置に送信する送信部と、サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、前記受信部が受信した更新情報を用いて、前記モデル格納部の深層学習モデルを更新する更新部として機能させるためのプログラムであり、前記予測部を、前記フォーワードプロパゲーションを行う場合に、直前より前の学習対象情報を用いたフォーワードプロパゲーションにより取得された修正情報を用いて構成された更新情報に基づく深層学習モデルを使用し、フォーワードプロパゲーションを行い、予測情報を取得する、ものとして、コンピュータを機能させるためのプログラムである。
【０１０８】
また、サーバ装置２を実現するプログラムは、例えば、コンピュータを、２以上の各処理装置から修正情報を受信するサーバ受信部と、前記サーバ受信部が受信した２以上の修正情報を用いて、更新情報を取得するサーバ取得部と、前記更新情報を前記２以上の各処理装置に送信するサーバ送信部として、機能させるためのプログラムである。
【０１０９】
また、図１１は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の処理装置１、サーバ装置２を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１１は、このコンピュータシステム３００の概観図であり、図１２は、システム３００のブロック図である。
【０１１０】
図１１において、コンピュータシステム３００は、ＣＤ−ＲＯＭドライブを含むコンピュータ３０１と、キーボード３０２と、マウス３０３と、モニタ３０４とを含む。
【０１１１】
図１２において、コンピュータ３０１は、ＣＤ−ＲＯＭドライブ３０１２に加えて、ＧＰＧＰＵ３０１３と、ＣＤ−ＲＯＭドライブ３０１２等に接続されたバス３０１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５と、ＧＰＧＰＵ３０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７とを含む。ここでは、図示しないが、コンピュータ３０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０１１２】
コンピュータシステム３００に、上述した実施の形態の処理装置１等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３１０１に記憶されて、ＣＤ−ＲＯＭドライブ３０１２に挿入され、さらにハードディスク３０１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３０１に送信され、ハードディスク３０１７に記憶されても良い。プログラムは実行の際にＲＡＭ３０１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３１０１またはネットワークから直接、ロードされても良い。
【０１１３】
プログラムは、コンピュータ３０１に、上述した実施の形態の処理装置１等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０１１４】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１１５】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０１１６】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１１７】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１１８】
以上のように、本発明にかかる学習システムは、深層学習の並列化で主流である同期型データ並列の処理を高速に行えるという効果を有し、学習システム等として有用である。
【符号の説明】
【０１１９】
１  処理装置
２  サーバ装置
１１  格納部
１２  処理部
１３  送信部
１４  受信部
２１  サーバ格納部
２２  サーバ受信部
２３  サーバ処理部
２４  サーバ送信部
１１１  モデル格納部
１１２  学習情報格納部
１２１  予測部
１２２  修正情報取得部
１２３  更新部
２３１  サーバ取得部
【図１】
2020003860.tif 000003
【図２】
2020003860.tif 000004
【図３】
2020003860.tif 000005
【図４】
2020003860.tif 000006
【図５】
2020003860.tif 000007
【図６】
2020003860.tif 000008
【図７】
2020003860.tif 000009
【図８】
2020003860.tif 000010
【図９】
2020003860.tif 000011
【図１０】
2020003860.tif 000012
【図１１】
2020003860.tif 000013
【図１２】
2020003860.tif 000014
【図１３】
2020003860.tif 000015
【図１４】
2020003860.tif 000016