(57)【要約】      （修正有）【課題】深層学習において、高速に精度高く学習処理を行う。【解決手段】学習システムにおいて処理装置は、事前学習部１２１、主学習部１２２、更新部１２３を備える。事前学習部は、学習対象情報と正解情報とを有する２以上の学習情報と、２以上の異なる学習係数とが格納され、学習対象情報を深層学習モデルに適用し予測情報を取得するフォーワードプロパゲーション及び予測情報と正解情報と学習係数とを用いて、修正情報を取得し、深層学習モデルを更新するバックワードプロパゲーションを、２以上の異なる各学習係数を用いて繰り返して行い、２以上の異なる各学習係数毎に精度情報を取得し、最高の精度情報に対応する学習係数と修正情報とを取得する。主学習部は、フォーワードプロパゲーション及び事前学習部が取得した学習係数を用いたバックワードプロパゲーションを含む主学習を行う。更新部は、主学習部が更新した深層学習モデルを蓄積する。【選択図】図２
2020064491.tif 000002
【特許請求の範囲】
【請求項１】
１以上の処理装置を用いて深層学習による学習を学習システムであり、１以上の処理装置とサーバ装置とを有する学習システムであり、
前記１以上の各処理装置は、
入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、
学習対象の情報である学習対象情報を有する２以上の学習情報が格納され学習情報格納部と、
前記深層学習モデルの重みを算出する際に使用する係数であり、他の処理装置の係数とは異なる係数である学習係数が格納される学習係数格納部と、
前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と前記学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正し、前記深層学習モデルを更新するバックワードプロパゲーションを行い、かつ前記予測情報と前記正解情報とを用いて精度に関する精度情報を取得する事前学習部と、
前記学習情報格納部の学習対象情報を深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と、前記精度情報を用いて選別された学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う主学習部と、
前記主学習部が取得した修正情報を前記サーバ装置に送信する送信部と、
前記サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、
前記更新情報を用いて、前記深層学習モデルを更新する更新部とを具備し、
前記サーバ装置は、
前記１以上の各処理装置から修正情報を受信するサーバ受信部と、
前記サーバ受信部が受信した２以上の修正情報を用いて、更新情報を取得するサーバ取得部と、
前記更新情報を前記１以上の各処理装置に送信するサーバ送信部とを具備する学習システム。
【請求項２】
前記事前学習部は、
前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う事前予測手段と、
前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と前記学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正し、前記深層学習モデルを更新するバックワードプロパゲーションを行い、かつ精度に関する精度情報を取得する事前修正情報取得手段とを具備し、
前記送信部は、
前記修正情報と前記精度情報と前記学習係数とを前記サーバ装置に送信し、
前記受信部は、
前記サーバ装置から深層学習モデルの更新に関する更新情報と学習係数とを受信し、
前記主学習部は、
前記学習情報格納部の学習対象情報を前記更新部が更新した深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う主予測手段と、
前記予測情報と前記正解情報と前記受信部が受信した学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う主修正情報取得手段とを具備し、
前記サーバ受信部は、
前記修正情報と前記精度情報と前記学習係数とを１以上の各処理装置から受信し、
前記サーバ取得部は、
前記２以上の精度情報を用いて、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得し、当該修正情報を用いて更新情報を取得し、
前記サーバ送信部は、
前記サーバ取得部が取得した更新情報と学習係数とを前記２以上の各処理装置に送信する請求項１記載の学習システム。
【請求項３】
前記１以上の各処理装置は、
前記１以上の各処理装置ごとに、学習係数を変更するための変更情報が格納される変更情報格納部と、
前記事前学習部が行う事前学習および前記主学習部が行う主学習のセットであるエポックを２以上行わせる制御部と、
一のエポックで使用された学習係数に対して、前記変更情報を用いて、前記学習係数を変更する学習係数変更部とを具備し、
前記事前学習部は、
前記一のエポックの次のエポックにおいて、前記学習係数変更部が変更した学習係数を用いて、バックワードプロパゲーションを行う請求項１または請求項２記載の学習システム。
【請求項４】
前記１以上の各処理装置ごとの変更情報のうちの１以上の変更情報は１未満であり、１以上の変更情報は１より大きく、
前記学習係数変更部は、
一のエポックで使用された学習係数に前記変更情報を乗算し、変更された学習係数を取得する請求項３記載の学習システム。
【請求項５】
前記１以上の各処理装置ごとの変更情報のセットである変更情報セットは、異なる２以上の変更情報セットが存在し、
前記学習係数変更部は、
少なくとも２つの各エポックにおける変更情報を用いる場合に、異なる変更情報セットの変更情報を用いて、前記学習係数を変更する請求項３または請求項４記載の学習システム。
【請求項６】
前記異なる２以上の変更情報セットは、前記１以上の各処理装置ごとの変更情報の最大値と最小値の差が小さいナローセットと、前記１以上の各処理装置ごとの変更情報の最大値と最小値の差がナローセットより大きいワイドセットとを含み、
前記ナローセットは、前記ワイドセットより前のエポックで使用される請求項５記載の学習システム。
【請求項７】
入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、
学習対象の情報である学習対象情報を有する２以上の学習情報が格納され学習情報格納部と、
前記深層学習モデルの重みを算出する際に使用する２以上の異なる学習係数が格納される学習係数格納部と、
前記学習情報格納部の学習対象情報を前記モデル格納部の深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と前記学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを、前記学習係数格納部の２以上の異なる各学習係数を用いて、繰り返して行い、かつ前記２以上の異なる各学習係数ごとに、精度に関する精度情報を取得し、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得する事前学習を行う事前学習部と、
前記学習情報格納部の学習対象情報を、前記事前学習部が取得した修正情報を用いて更新された深層学習モデルまたはさらに更新された深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と、前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と、前記事前学習部が取得した学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを含む主学習を行う主学習部と、
前記主学習部が更新した深層学習モデルを蓄積する更新部とを具備する学習システム。
【請求項８】
学習係数を変更するための変更情報が格納される変更情報格納部と、
前記事前学習部が行う事前学習および前記主学習部が行う主学習のセットであるエポックを２以上行わせる制御部と、
一のエポックで使用された学習係数に対して前記変更情報を用いて学習係数を変更する学習係数変更部とを具備し、
前記事前学習部は、
前記一のエポックの次のエポックでは、前記学習係数変更部が変更した学習係数を用いて、バックワードプロパゲーションを行う請求項７記載の学習システム。
【請求項９】
前記制御部は、
３以上のエポックを行わせ、
前記変更情報格納部には、
２以上の変更情報が格納され、
前記学習係数変更部は、
前記３以上のエポックのうち、少なくとも２以上の各エポックでは、前記２以上の異なる変更情報を用いて学習係数を変更する請求項８記載の学習システム。
【請求項１０】
入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、
学習対象の情報である学習対象情報を有する２以上の学習情報が格納され学習情報格納部と、
前記深層学習モデルの重みを算出する際に使用する２以上の異なる学習係数が格納される学習係数格納部と、事前学習部と、主学習部と、更新部とにより実現される学習方法であって、
前記事前学習部が、前記学習情報格納部の学習対象情報を前記モデル格納部の深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と前記学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを、前記学習係数格納部の２以上の異なる各学習係数を用いて、繰り返して行い、かつ前記２以上の異なる各学習係数ごとに、精度に関する精度情報を取得し、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得する事前学習を行う事前学習ステップと、
前記主学習部が、前記学習情報格納部の学習対象情報を、前記事前学習ステップで取得された修正情報を用いて更新された深層学習モデルまたはさらに更新された深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と、前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と、前記事前学習部が取得した学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを含む主学習を行う主学習ステップと、
前記更新部が、前記主学習ステップで更新された深層学習モデルを蓄積する更新ステップとを具備する学習方法。
【請求項１１】
入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、
学習対象の情報である学習対象情報を有する２以上の学習情報が格納され学習情報格納部と、
前記深層学習モデルの重みを算出する際に使用する２以上の異なる学習係数が格納される学習係数格納部とにアクセス可能なコンピュータを、
前記学習情報格納部の学習対象情報を前記モデル格納部の深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と前記学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを、前記学習係数格納部の２以上の異なる各学習係数を用いて、繰り返して行い、かつ前記２以上の異なる各学習係数ごとに、精度に関する精度情報を取得し、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得する事前学習を行う事前学習部と、
前記学習情報格納部の学習対象情報を、前記事前学習部が取得した修正情報を用いて更新された深層学習モデルまたはさらに更新された深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と、前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と、前記事前学習部が取得した学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを含む主学習を行う主学習部と、
前記主学習部が更新した深層学習モデルを蓄積する更新部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、深層学習を行う学習システム等に関するものである。
【背景技術】
【０００２】
深層学習（以下、適宜「ＤＮＮ」と言う）では、ネットワークモデルの学習のために、学習画像セットを用いて推論・逆伝搬を多数回反復して行うことでネットワーク自身のパラメータを学習する。通常は、画像データセット全体（エポック全体とも言う。）を完全に学習し、その時点での精度を評価・判断する。このため、ハイパーパラメータの一つである学習係数（以下、適宜「ＬＲ」という。）の設定値を変更して学習・精度評価する場合、学習にかかる時間はエポック数×パターン数(Nep x P)まで増加する。また、従来手法としてはlog, polyをはじめ、AdaGrad、Adam等適応的選択手法は開発されてきたが、ＬＲの値は減衰方向に変化させることが主流であった。
【０００３】
さらに詳細には、従来のＤＮＮの学習係数（学習率）の設定方法として、勾配（最急）降下法(GD)、確率的勾配降下法（SGD）、ミニバッチ確率的勾降下法、Momentum  SGD、AdaGrad、Adamなどがあった。勾配（最急）降下法は、全ての学習情報の誤差の合計を取ってから更新を行うため，計算コストが膨大になってしまう。また、確率的勾配降下法では、サンプル１個での評価を実施する。そして、サンプル1個毎に更新するため学習率の値を小さく設定する必要があり、局所解に陥りやすく、サンプル１個で良い評価でも汎化性能（学習安定性）が良いか否かは不明である。また、ミニバッチ確率的勾配降下法では、サンプルＫ個での評価を実施する。そして、ミニバッチ確率的勾配降下法では、汎化性能はよくなるが、やはり学習率の値により安定しない場合がある。Momentum  SGDでは、毎回の勾配を足し合わせたものを、慣性項として利用する。しかし、Momentum  SGDでも、学習率の値により安定しない場合が存在する。AdaGradでは、勾配の２乗和を評価値とし、重みに対する２乗和が大きい場合は学習率を小さく、２乗和が小さな場合は学習率を大きく設定する。そして、AdaGradでは、エポック数が増加すると、学習が進まなくなると言った課題がある。Adamでは、ステップ毎に異なる値を取る勾配の重みつき平均と重みつき分散から学習率を設定する。しかし，Momentum  SGD、AdaGrad、Adamなどの従来手法では色々なパラメータ設定にノウハウが必要である。
【０００４】
また、ＤＮＮに関する従来技術において、分散計算機システムで学習処理の反復処理を伴う際に、学習処理の起動と終了及びデータロードを抑制し、処理速度を向上させる分散計算システムがあった（特許文献１参照）。
【０００５】
さらに、ＤＮＮに関する従来技術において、ノード間並列による深層学習で、係数演算に使用する係数の勾配情報を深層学習に反映する処理の時間を短縮する並列情報処理装置があった（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−２２５５８号公報
【特許文献２】特開２０１８−１８２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術においては、深層学習において、高速に精度高く学習処理を行うことが困難であった。
【０００８】
詳細には、従来の深層学習において、事前に決定されるハイパーパラメータの調整は、学習時間に大きく影響を与える。特に、ハイパーパラメータの一種であり、最終精度を大きく左右する学習係数（ＬＲ）であり、適切なＬＲを発見するためには、複数のＬＲを複数回の学習プロセスで実行する経験的手法が行われており、多数のＬＲを試験するために長時間のマシン時間が必要となっていた。
【０００９】
本願発明は、かかる課題に鑑み、高速に精度高く学習処理を行うことを目的とする。
【課題を解決するための手段】
【００１０】
本第一の発明の学習システムは、１または２以上の処理装置を用いて深層学習による学習を学習システムであり、１または２以上の処理装置とサーバ装置とを有する学習システムであり、１または２以上の各処理装置は、入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報を有する２以上の学習情報が格納され学習情報格納部と、深層学習モデルの重みを算出する際に使用する係数であり、他の処理装置の係数とは異なる係数である学習係数が格納される学習係数格納部と、学習情報格納部の２以上の各学習対象情報をモデル格納部の深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および予測情報とフォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正し、深層学習モデルを更新するバックワードプロパゲーションを行い、かつ予測情報と正解情報とを用いて精度に関する精度情報を取得する事前学習部と、学習情報格納部の学習対象情報を深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および予測情報とフォーワードプロパゲーションの対象である学習対象情報と対になる正解情報と、精度情報を用いて選別された学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う主学習部と、主学習部が取得した修正情報をサーバ装置に送信する送信部と、サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、更新情報を用いて、深層学習モデルを更新する更新部とを具備し、サーバ装置は、１または２以上の各処理装置から修正情報を受信するサーバ受信部と、サーバ受信部が受信した２以上の修正情報を用いて、更新情報を取得するサーバ取得部と、更新情報を１または２以上の各処理装置に送信するサーバ送信部とを具備する学習システムである。
【００１１】
かかる構成により、深層学習において、高速に精度高く、学習処理を行える。
【００１２】
また、本第二の発明の学習システムは、第一の発明に対して、事前学習部は、学習情報格納部の２以上の各学習対象情報をモデル格納部の深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う事前予測手段と、予測情報とフォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正し、深層学習モデルを更新するバックワードプロパゲーションを行い、かつ精度に関する精度情報を取得する事前修正情報取得手段とを具備し、送信部は、修正情報と精度情報と学習係数とをサーバ装置に送信し、受信部は、サーバ装置から深層学習モデルの更新に関する更新情報と学習係数とを受信し、主学習部は、学習情報格納部の学習対象情報を更新部が更新した深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う主予測手段と、予測情報と正解情報と受信部が受信した学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う主修正情報取得手段とを具備し、サーバ受信部は、修正情報と精度情報と学習係数とを１または２以上の各処理装置から受信し、サーバ取得部は、２以上の精度情報を用いて、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得し、修正情報を用いて更新情報を取得し、サーバ送信部は、サーバ取得部が取得した更新情報と学習係数とを１または２以上の各処理装置に送信する学習システムである。
【００１３】
かかる構成により、深層学習において、高速に精度高く、学習処理を行える。
【００１４】
また、本第三の発明の学習システムは、第一または第二の発明に対して、１または２以上の各処理装置は、１または２以上の各処理装置ごとに、学習係数を変更するための変更情報が格納される変更情報格納部と、事前学習部が行う事前学習および主学習部が行う主学習のセットであるエポックを２以上行わせる制御部と、一のエポックで使用された学習係数に対して、変更情報を用いて、学習係数を変更する学習係数変更部とを具備し、事前学習部は、一のエポックの次のエポックにおいて、学習係数変更部が変更した学習係数を用いて、バックワードプロパゲーションを行う学習システムである。
【００１５】
かかる構成により、深層学習において、高速に、さらに精度高く、学習処理を行える。
【００１６】
また、本第四の発明の学習システムは、第三の発明に対して、１または２以上の各処理装置ごとの変更情報のうちの１以上の変更情報は１未満であり、１以上の変更情報は１より大きく、学習係数変更部は、一のエポックで使用された学習係数に変更情報を乗算し、変更された学習係数を取得する学習システムである。
【００１７】
かかる構成により、深層学習において、高速に、さらに精度高く、学習処理を行える。
【００１８】
また、本第五の発明の学習システムは、第三または第四の発明に対して、１または２以上の各処理装置ごとの変更情報のセットである変更情報セットは、異なる２以上の変更情報セットが存在し、学習係数変更部は、少なくとも２つの各エポックにおける変更情報を用いる場合に、異なる変更情報セットの変更情報を用いて、学習係数を変更する学習システムである。
【００１９】
かかる構成により、深層学習において、高速に、さらに精度高く、学習処理を行える。
【００２０】
また、本第六の発明の学習システムは、第五の発明に対して、異なる２以上の変更情報セットは、１または２以上の各処理装置ごとの変更情報の最大値と最小値の差が小さいナローセットと、１または２以上の各処理装置ごとの変更情報の最大値と最小値の差がナローセットより大きいワイドセットとを含み、ナローセットは、ワイドセットより前のエポックで使用される学習システムである。
【００２１】
かかる構成により、深層学習において、高速に、さらに精度高く、学習処理を行える。
【００２２】
また、本第七の発明の学習システムは、入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報を有する２以上の学習情報が格納され学習情報格納部と、深層学習モデルの重みを算出する際に使用する２以上の異なる学習係数が格納される学習係数格納部と、学習情報格納部の学習対象情報をモデル格納部の深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および予測情報とフォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正するための修正情報を取得し、修正情報を用いて深層学習モデルを更新するバックワードプロパゲーションを、学習係数格納部の２以上の異なる各学習係数を用いて、繰り返して行い、かつ２以上の異なる各学習係数ごとに、精度に関する精度情報を取得し、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得する事前学習を行う事前学習部と、学習情報格納部の学習対象情報を、事前学習部が取得した修正情報を用いて更新された深層学習モデルまたはさらに更新された深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および予測情報と、フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と、事前学習部が取得した学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正するための修正情報を取得し、修正情報を用いて深層学習モデルを更新するバックワードプロパゲーションを含む主学習を行う主学習部と、主学習部が更新した深層学習モデルを蓄積する更新部とを具備する学習システムである。
【００２３】
かかる構成により、深層学習において、高速に精度高く、学習処理を行える。
【００２４】
また、本第八の発明の学習システムは、第七の発明に対して、学習係数を変更するための変更情報が格納される変更情報格納部と、事前学習部が行う事前学習および主学習部が行う主学習のセットであるエポックを２以上行わせる制御部と、一のエポックで使用された学習係数に対して変更情報を用いて学習係数を変更する学習係数変更部とを具備し、事前学習部は、一のエポックの次のエポックでは、学習係数変更部が変更した学習係数を用いて、バックワードプロパゲーションを行う学習システムである。
【００２５】
かかる構成により、深層学習において、高速に、さらに精度高く、学習処理を行える。
【００２６】
また、本第九の発明の学習システムは、第八の発明に対して、制御部は、３以上のエポックを行わせ、変更情報格納部には、２以上の変更情報が格納され、学習係数変更部は、３以上のエポックのうち、少なくとも２以上の各エポックでは、２以上の異なる変更情報を用いて学習係数を変更する学習システムである。
【００２７】
かかる構成により、深層学習において、高速に、さらに精度高く、学習処理を行える。
【発明の効果】
【００２８】
本発明による学習システムによれば、深層学習において、高速に精度高く、学習処理を行える。
【図面の簡単な説明】
【００２９】
【図１】実施の形態１における学習システムＡの概念図
【図２】同学習システムＡのブロック図
【図３】同深層学習モデルのイメージ図
【図４】同精度の算出を説明する図
【図５】同処理装置１の動作について説明するフローチャート
【図６】同事前学習処理について説明するフローチャート
【図７】同主学習処理について説明するフローチャート
【図８】同サーバ装置２の動作について説明するフローチャート
【図９】同学習システムＡの構成図
【図１０】同学習システムＡの動作を説明する図
【図１１】同事前学習の概念を説明する図
【図１２】同サイクルと精度の関係を示すグラフ
【図１３】同主学習の概念を説明する図
【図１４】同学習システムＡの効果を説明する図
【図１５】同学習システムＡの動作例を説明するフローチャート
【図１６】同学習システムＡの環境の例を示す図
【図１７】同学習システムＡを動作させた場合のエポックの進行と精度との関係を示す図
【図１８】同エポックの進行に伴う学習係数の変化を示す図
【図１９】同学習係数のセットを説明する図
【図２０】同学習係数のセットの適用のスケジュールを示す図
【図２１】同エポックの進行に従った精度の変化を示すグラフ
【図２２】同学習システムＡの動作例を説明するフローチャート
【図２３】実施の形態２における学習システムＢのブロック図
【図２４】上記実施の形態におけるコンピュータシステムの概観図
【図２５】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００３０】
以下、学習システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００３１】
（実施の形態１）
【００３２】
本実施の形態において、フォーワードプロパゲーションとバックワードプロパゲーションとを行う深層学習による学習を高速かつ精度高く行う学習システムについて説明する。
【００３３】
特に、実施の形態１の学習システムは、例えば、データ並列を用いた短期事前学習により、同一プロセス内で高速・並列に複数のＬＲセットを評価する。さらに、具体的には、複数のＬＲセットを用意し、エポックより少数の反復回数（α）だけ短期の事前学習を行い、学習データセットの推論結果を元に精度を比較する。そして、最も精度の良いＬＲで残りの学習（β）を行う。かかる本願の発明を用いることで、未知のネットワーク試験でも数少ない演算量・時間で複数のＬＲの検証を行うことができる。
【００３４】
なお、フォーワードプロパゲーション、バックワードプロパゲーションは公知技術であるので、詳細な説明を省略する。
【００３５】
また、本実施の形態において、特に、処理装置において事前学習を行った後に主学習を行う学習システムについて説明する。
【００３６】
また、本実施の形態において、事前学習で使用する学習係数を変更する処理を行う学習システムについて説明する。
【００３７】
また、本実施の形態において、２以上の変更情報セットを用いて、学習係数の変更を行う学習システムについて説明する。
【００３８】
図１は、本実施の形態における学習システムＡの概念である。学習システムＡは、１または２以上の処理装置１とサーバ装置２とを備える。１または２以上の各処理装置１とサーバ装置２とは、通信路により通信可能である。通信路は、例えば、バスであるが、インターネット等のネットワークでも良い。また、処理装置１は後述する演算を行う。後述する演算は、フォーワードプロパゲーションとバックワードプロパゲーションとを含む。また、サーバ装置２は、例えば、後述するモデル更新のための処理を行う。モデル更新は、後述する深層学習モデルの更新のための処理である。なお、モデル更新は、各処理装置１が行っても良い。
【００３９】
学習システムＡは、例えば、深層学習の並列化における主流である同期型データ並列の処理を行うシステムである。
【００４０】
処理装置１は、事前学習と主学習とを含む１または２以上のエポックを実行し、深層学習モデルを更新していき、最終的な深層学習モデルを取得する。
【００４１】
なお、事前学習とは、１または２以上の各処理装置１で、異なる学習係数を使って、フォーワードプロパゲーションとバックワードプロパゲーションとを実施し、通常、最も効果の良かった学習係数を選定する処理である。また、事前学習において、２以上の各学習対象情報を深層学習モデルに順次、適用し、フォーワードプロパゲーションと、バックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて深層学習モデルが有する重みを修正し、深層学習モデルを更新する。なお、一の処理装置１で、２以上の異なる学習係数を使って、事前学習を実施しても良い。
【００４２】
また、主学習とは、事前学習で選定された学習係数を用いて、フォーワードプロパゲーションとバックワードプロパゲーションとを実施し、深層学習モデルを更新する処理である。また、主学習において、２以上の各学習対象情報を深層学習モデルに順次、適用し、フォーワードプロパゲーションと、バックワードプロパゲーションとを行い、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報をサーバ装置２に送信し、当該修正情報の送信に応じて、サーバ装置２から深層学習モデルの更新に関する更新情報を受信し、当該更新情報を用いて、深層学習モデルを更新する。
【００４３】
そして、処理装置１では、更新した深層学習モデルを用いて、次の学習対象情報を用いて、事前学習と主学習とを含む次のエポックを行う。
【００４４】
サーバ装置２は、２以上の各処理装置１から修正情報を受信し、当該２以上の修正情報を用いて、更新情報を取得し、当該更新情報を２以上の各処理装置１に送信する。
【００４５】
図２は、本実施の形態における学習システムＡのブロック図の例である。学習システムＡは、２以上の処理装置１、およびサーバ装置２を備える。
【００４６】
処理装置１は、格納部１１、処理部１２、送信部１３、および受信部１４を備える。格納部１１は、モデル格納部１１１、学習情報格納部１１２、学習係数格納部１１３、および変更情報格納部１１４を備える。処理部１２は、事前学習部１２１、主学習部１２２、更新部１２３、学習係数変更部１２４、および制御部１２５を備える。事前学習部１２１は、事前予測手段１２１１、および事前修正情報取得手段１２１２を備える。主学習部１２２は、主予測手段１２２１、および主修正情報取得手段１２２２を備える。
【００４７】
サーバ装置２は、サーバ格納部２１、サーバ受信部２２、サーバ処理部２３、サーバ送信部２４を備える。サーバ処理部２３は、およびサーバ取得部２３１を備える。
【００４８】
処理装置１を構成する格納部１１には、各種の情報が格納される。各種の情報とは、例えば、後述する深層学習モデル、後述する学習情報、後述する学習係数、後述する変更情報である。
【００４９】
モデル格納部１１１は、１または２以上の深層学習モデルが格納される。モデル格納部１１１に２以上の深層学習モデルが格納される場合、２以上の処理装置１で一のフォーワードプロパゲーションが行われた際に使用された深層学習モデルと、当該一のフォーワードプロパゲーションに対応するバックワードプロパゲーションが行われた結果を用いて更新された深層学習モデル（重みが更新された深層学習モデル）とを含む。深層学習モデルは、深層学習で使用されるモデルである。深層学習モデルは、２以上の各入力層と１または２以上の中間層と出力層とを有する。なお、重みとは、学習により更新されるパラメータ（「数値」と言っても良い）であり、例えば、０以上、１未満の数値である。ただし、パラメータは、負の値の場合もあり、深層学習モデルにより決まるものであり、限定されるものではない。
【００５０】
深層学習モデルとは、入力層と２層以上の中間層と出力層とを有する。入力層、中間層、および出力層の各層が有する２以上のノードのうちの少なくとも一部のノードの間が、重み付きのエッジにより連結されている。
【００５１】
入力層は、２以上のノードを有する。２以上の各ノードは、入力を受け付ける。入力を受け付けることは、入力からのエッジと接続されていることでも良い。２以上の各ノードは、中間層のノードへの２以上のエッジと接続されている。エッジとの接続を特定するデータ構造は問わない。エッジは、重みを有する。
【００５２】
中間層は、２以上のノードを有する。２以上の各ノードは、入力層のノードまたは他の中間層のノードまたは出力層のノードへ繋がる２以上のエッジと接続されている。
【００５３】
出力層は、２以上のノードを有する。２以上の各ノードは、中間層のノードからの２以上のエッジと接続されている。出力層の２以上の各ノードから情報が出力される。
【００５４】
深層学習モデルのイメージ図を図３に示す。図３において、ノードは、３０１の図柄の丸である（図３において一部のノードに符号３０１を付している）。エッジは、線３０２である（図３において一部のエッジに符号３０２を付している）。入力は、Ｘ０・・・Ｘｎである。出力は、Ｙ０・・・Ｙｎである。また、図３において、各エッジには重み（Ｗｉ，Ｗｊ，Ｗｋ・・・）が付与されている（図３において一部のエッジにのみ重みを記載している）。
【００５５】
なお、深層学習モデルのデータ構造は問わないことは言うまでもない。深層学習モデルのデータ構造は、図３の構造が実現できるデータ構造であれば良い。
【００５６】
学習情報格納部１１２には、２以上の学習情報が格納される。学習情報は、学習対象情報を有する。学習情報は、学習対象情報と正解情報とを有することは好適である。学習対象情報は、学習対象の情報である。学習対象情報は、例えば、画像であるが、そのデータは問わない。学習対象情報は、例えば、動画、テキスト、音声等でも良い。正解情報は、正しい情報（正解）である。また、学習対象情報に対応付いている正解情報は、例えば、２以上である。正解情報は、例えば、出力層のノードに対応付けて格納されている。なお、教師なし学習の場合であれば、正解情報を有しない。
【００５７】
学習係数格納部１１３には、学習係数が格納される。学習係数は、深層学習モデルの重みを算出する際に使用する係数である。学習係数（「学習率」と言っても良い）をどのように設定するかは、計算時間や精度に大きく影響を与える。重みを算出する演算式は、例えば、以下の数式１である。
【数１】
2020064491.tif 000003
【００５８】
また、学習係数は、例えば、以下の数式１におけるＬＲである。数式１において、ｗは重みである。つまり、ｗ（ｋ）のｋは、ステップの回数を示す。１ステップは、１回のフォーワードプロパゲーションと１回のバックワードプロパゲーションとにより、深層学習モデルが更新されるまでの処理である。つまり、ｗ（ｋ＋１）は「ｋ＋１」回目のステップの重み、ｗ（ｋ）はｋ回目のステップの重みである。また、ＬＲ（ｋ）は、ｋ回目のステップで使用される学習係数である。Ｌ（ｗ）は、後述するロス関数である。「∂Ｌ（ｗ）／∂ｗ」は、損失関数の勾配である。つまり、「∂Ｌ（ｗ）／∂ｗ」は、ロス関数の重みでの微分値(ロスの勾配∇Ｌ（ｗ）)である。
【００５９】
なお、数式１は、重みを算出する演算式の例であり、重みを算出するための演算式は、他の演算式でも良い。ただし、重みを算出する演算式は、項「−ＬＲ（ｋ）∂Ｌ（ｗ）／∂ｗ｜ｗ=ｗ（ｋ）」を有することは好適である。
【００６０】
また、数式１に変えて、重みを算出する演算式は、以下の数式２、数式３でも良い。
【数２】
2020064491.tif 000004
【数３】
2020064491.tif 000005
【００６１】
数式２、３は、確率的勾配低下法による重み算出の演算式である。数式２において、ｗｉｊが重みである。数式２のε、α、λはパラメータであり、上手く選ぶことが好適に学習には必要である。また、数式２のεは学習係数である。数式３のＰｊは出力層のノードの出力値である。数式３のｄｊは分類カテゴリのラベルデータである。
【００６２】
なお、本発明における事前処理と主処理とを組み合わせた学習処理は、重みを算出するための演算式の中に、学習係数とロス関数の微分値との積から求める項が入っている場合に、特に、有用である。
【００６３】
２以上の各処理装置１の学習係数格納部１１３には、他の処理装置１の係数とは異なる係数である学習係数が格納される。一の深層学習モデルに対して、例えば、学習係数は一つであるが、複数でも良い。一の深層学習モデルに対して、例えば、エッジごとに異なる学習係数が管理されていても良い。
【００６４】
変更情報格納部１１４には、変更情報が格納される。変更情報は、学習係数を変更するための情報である。２以上の各処理装置ごとに、変更情報が格納される。変更情報は、例えば、倍率である。２以上の各処理装置１ごとの変更情報のうちの１以上の変更情報は１未満であり、１以上の変更情報は１より大きいことは好適である。変更情報は、例えば、加算される数、減算される数でも良い。変更情報は、例えば、学習係数を変更するための演算式でも良い。
【００６５】
変更情報格納部１１４には、２以上の変更情報が格納されても良い。そして、２以上の各処理装置１ごとの変更情報のセットである変更情報セットは、異なっていても良い。つまり、２以上の各処理装置１で同じタイミングで使用される変更情報の集合である変更情報セットは、２以上存在しても良い。異なる２以上の変更情報セットは、ナローセットと、ワイドセットとを含むことは好適である。また、異なる２以上の変更情報セットは、ナローセットと、ミドルセットと、ワイドセットとを含むことはさらに好適である。ナローセットとは、２以上の各処理装置１ごとの変更情報の最大値と最小値の差が小さいセットである。ミドルセットとは、２以上の各処理装置１ごとの変更情報の最大値と最小値の差が中程度のセットである。ワイドセットとは、と、２以上の各処理装置ごとの変更情報の最大値と最小値の差がナローセットまたはミドルセットより大きいセットである。また、ナローセットは、ワイドセットより前のエポックで使用されることは好適である。また、ミドルセットは、ナローセットより後のエポックで使用され、ワイドセットより前のエポックで使用されることは好適である。
【００６６】
処理部１２は、各種の処理を行う。各種の処理とは、例えば、事前学習部１２１、主学習部１２２、更新部１２３、学習係数変更部１２４、制御部１２５が行う処理である。
【００６７】
事前学習部１２１は、事前学習を行う。事前学習とは、主学習で使用する学習係数を選定するための学習である。
【００６８】
事前学習部１２１は、フォーワードプロパゲーション、およびバックワードプロパゲーションを行う。また、事前学習部１２１は、予測情報と正解情報とを用いて精度に関する精度情報を取得する。事前学習部１２１は、通常、２以上の予測情報と２以上の正解情報とを用いて精度に関する精度情報を取得する。なお、予測情報は、フォーワードプロパゲーションにより取得される。また、正解情報は、フォーワードプロパゲーションのために与えられた学習対象情報と対になる正解情報である。なお、精度情報を用いて、サーバ装置２で学習係数が選定される。また、２以上の予測情報は、出力層の２以上の各ノードの出力値である。予測情報は、予測値と言っても良い。また、２以上の正解情報は、出力層の２以上の各ノードに対応する正解情報である。正解情報は、正解値といっても良い。なお、正解情報は、例えば、学習対象情報と対に学習情報格納部１１２に格納されている正解情報、または学習対象情報から取得され得る正解情報である。なお、教師データ無し学習の場合、出力が目的関数に入力され、その出力を最小化する方向に重みの更新が行われる。
【００６９】
さらに詳細には、事前学習部１２１は、学習情報格納部１１２の２以上の各学習対象情報をモデル格納部１１１の深層学習モデルに適用し、予測情報を取得するフォーワードプロパゲーションを行う。また、事前学習部１２１は、フォーワードプロパゲーションで取得した予測情報とフォーワードプロパゲーションの対象である学習対象情報と対になる正解情報と学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正し、深層学習モデルを更新するバックワードプロパゲーションを行う。また、事前学習部１２１は、取得した予測情報と正解情報とを用いて精度に関する精度情報を取得する。なお、精度情報を取得する処理とバックワードプロパゲーションの処理の順序は問わない。
【００７０】
また、事前学習部１２１の精度取得処理は問わない。事前学習部１２１は、フォーワードプロパゲーションで取得した予測情報の精度を取得できれば良い。事前学習部１２１は、例えば、格納部１１に格納されているロス関数に、予測情報と正解情報とを代入し、ロスを算出する。ロス関数の例は、以下の数式４である。数式４は、平均２乗誤差を算出するロス関数である。
【数４】
2020064491.tif 000006
【００７１】
なお、数式４において、ｙ(k)が予測値、y(k)は正解値である。
【００７２】
また、ロス関数は、クロスエントロピーを算出するロス関数等でも良い。かかるクロスエントロピーを算出するロス関数は、例えば、上述した数式３である。
【００７３】
精度の算出の概念図は図４である。図４において、例えば、学習対象情報は、画像である。また、予測値y(k)と正解値y(k)との差の２乗の平均値がロス「Ｌ（ｗ）」である。
【００７４】
そして、事前学習部１２１は、ロス「Ｌ（ｗ）」を用いて、精度情報を取得する。事前学習部１２１は、例えば、「Ｖａｌｉｄａｔｉｏｎ  Ｔｏｐ  ５  ｅｒｒｏｒ「％」」を使って、精度を算出する。なお、「Ｖａｌｉｄａｔｉｏｎ  Ｔｏｐ  ５  ｅｒｒｏｒ「％」」は、上位５つの候補に正解が含まれていない率を表す。また、精度を算出する演算式は、格納部１１に格納されている。また、精度は、「Ｖａｌｉｄａｔｉｏｎ  Ｔｏｐ  １  ｅｒｒｏｒ「％」」等でも良い。
【００７５】
また、事前学習部１２１は、ロス関数の出力Ｌ（ｗ）を精度情報として取得しても良い。また、事前学習部１２１は、Ｌ（ｗ）を学習係数選択のための「評価値」として，用いても良い。また、事前学習部１２１は、クロスエントロピーとソフトマックスとを組み合わせたものを精度情報として取得しても良い。ソフトマックスは分類問題において常用されている手法である（ＵＲＬ：https://www.hellocybernetics.tech/entry/2016/11/30/012350  参照のこと）。
【００７６】
事前学習部１２１は、例えば、一のエポックの次のエポックにおいて、後述する学習係数変更部１２４が変更した学習係数を用いて、バックワードプロパゲーションを行う。
【００７７】
事前学習部１２１は、通常、２回以上、フォーワードプロパゲーションとバックワードプロパゲーションとを行う。
【００７８】
事前予測手段１２１１は、学習情報格納部１１２の２以上の各学習対象情報をモデル格納部１１１の深層学習モデルに順次、適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う。なお、事前予測手段１２１１が一度用いた学習対象情報は、再度、用いないことは好適である。また、事前予測手段１２１１は、同一のエポック内で、一度用いた学習対象情報は、再度、用いないことは好適である。なお、かかるフォーワードプロパゲーション自体の処理は公知技術であるので、詳細な説明は省略する。
【００７９】
事前修正情報取得手段１２１２は、予測情報とフォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、フォーワードプロパゲーションで使用した深層学習モデルが有する重みを修正し、深層学習モデルを更新するバックワードプロパゲーションを行い、かつ精度に関する精度情報を取得する。なお、かかるバックワードプロパゲーション自体の処理、精度情報の取得処理は公知技術であるので、詳細な説明は省略する。なお、教師なし学習の場合は、事前修正情報取得手段１２１２は、予め格納されている目的関数に出力を入力し、その出力を最小化する方向に重みの更新を行う。また、教師なし学習の場合の重みの更新の技術は公知技術であるので、詳細な説明は省略する。
【００８０】
主学習部１２２は、学習情報格納部１１２の学習対象情報を深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う。そして、主学習部１２２は、フォーワードプロパゲーションで取得した予測情報とフォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と、選別された学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、フォーワードプロパゲーションで使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う。
【００８１】
選別された学習係数は、例えば、後述する受信部１４がサーバ装置２から受信した学習係数である。本実施の形態において、主に、サーバ装置２が２以上の処理装置１から受信した精度情報を用いて、最も精度の良い処理装置１における学習係数を１以上の処理装置１に送信する場合を説明する。ただし、選別された学習係数は、例えば、いずれかの処理装置１により、２以上の各処理装置１が取得した精度情報を用いて、選別された学習係数でも良い。つまり、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数であれば良く、選別の処理を行う装置は問わない。なお、予め決められた条件を満たすほど高い精度を示す精度情報は、通常、最も高い精度を示す精度情報である。
【００８２】
主学習部１２２は、通常、２回以上、フォーワードプロパゲーションとバックワードプロパゲーションと繰り返して行う。
【００８３】
主予測手段１２２１は、学習情報格納部１１２の学習対象情報を更新部１２３が更新した深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う。
【００８４】
主修正情報取得手段１２２２は、予測情報と正解情報と受信部１４が受信した学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、フォーワードプロパゲーションで使用した深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う。
【００８５】
更新部１２３は、後述する受信部１４が受信した更新情報を用いて、深層学習モデルを更新する。更新対象の深層学習モデルは、通常、最新の深層学習モデルである。
【００８６】
更新部１２３は、受信部１４が受信した更新情報を用いて、例えば、モデル格納部１１１の深層学習モデルを更新する。
【００８７】
更新情報は、例えば、重みを更新するための修正情報である。修正情報は、前のエッジの重みに対する修正値でも良い。かかる場合、例えば、修正情報は、エッジ識別子と修正値の対の情報の集合でも良いし、エッジの順序が決まっている場合において、修正値の集合でも良い。また、修正情報は、各エッジに対して修正された重みの集合でも良い。かかる場合、例えば、修正情報は、エッジ識別子と重みの対の情報の集合でも良いし、エッジの順序が決まっている場合において、重みの集合でも良い。
【００８８】
更新情報は、例えば、重みが更新された深層学習モデルそのものでも良い。
【００８９】
学習係数変更部１２４は、一のエポックで使用された学習係数に対して、変更情報を用いて、学習係数を変更する。学習係数変更部１２４は、例えば、関数「変更された学習係数＝ｆ（学習係数，変更情報）」により、変更された学習係数を取得する。
【００９０】
学習係数変更部１２４は、例えば、一のエポックで使用された学習係数に変更情報を乗算し、変更された学習係数を取得する。なお、かかる場合、変更情報は倍率である。
【００９１】
学習係数変更部１２４は、少なくとも２つの各エポックにおける変更情報を用いる場合に、異なる変更情報セットの変更情報を用いて、学習係数を変更する。
【００９２】
異なる２以上の変更情報セットとして、ナローセットと、ワイドセットとが存在する場合、学習係数変更部１２４は、ナローセットをワイドセットより前のエポックで使用されることは好適である。
【００９３】
また、異なる２以上の変更情報セットとして、ナローセットと、ミドルセットと、ワイドセットとが存在する場合、学習係数変更部１２４は、ナローセット、ミドルセット、ワイドセットの順で、３以上の各エポックにおいて、変更情報セットが使用されることは好適である。
【００９４】
制御部１２５は、事前学習部１２１が行う事前学習および主学習部１２２が行う主学習のセットであるエポックを２以上行わせる。
【００９５】
制御部１２５は、事前学習および主学習のセットであるエポックの繰り返し処理を終了させる。制御部１２５は、予め決められた条件を満たした場合に、処理を終了させる。なお、制御部１２５は、例えば、予め格納されている終了条件に合致するか否かを判断し、合致する場合は次のエポックを実施し、合致しない場合は次のエポックを実施しない。終了条件は、例えば、格納されているエポック数に関する条件である。格納されているエポック数に関する条件は、例えば、「現在までに実行されたエポック数＜予定されているエポック数」である。なお、予定されているエポック数は、例えば、１００である。また、終了条件は、例えば、サーバ装置２から処理終了の情報を受信したことである。また、終了条件は、例えば、直前のエポックにおける処理結果である更新情報の絶対値が閾値以下または閾値未満であることである。その他、終了条件は問わない。
【００９６】
送信部１３は、主学習部１２２が取得した修正情報をサーバ装置２に送信する。送信部１３は、修正情報と精度情報と学習係数とをサーバ装置２に送信しても良い。送信とは、バスを経由した情報の送付でも良い。
【００９７】
受信部１４は、サーバ装置２から深層学習モデルの更新に関する更新情報を受信する。受信部１４は、サーバ装置２から深層学習モデルの更新に関する更新情報と学習係数とを受信する。受信とは、バスを経由した情報の受け付けでも良い。
【００９８】
サーバ装置２を構成するサーバ格納部２１には、各種の情報が格納される。各種の情報とは、例えば、修正情報、更新情報である。
【００９９】
サーバ受信部２２は、２以上の各処理装置１から修正情報を受信する。サーバ受信部２２は、修正情報と精度情報と学習係数とを２以上の各処理装置１から受信しても良い。
【０１００】
サーバ処理部２３は、各種の処理を行う。各種の処理とは、例えば、サーバ取得部２３１が行う処理である。
【０１０１】
サーバ取得部２３１は、２以上の精度情報を用いて、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得し、修正情報を用いて更新情報を取得しても良い。予め決められた条件は、例えば、最も高い精度を示すことである。
【０１０２】
サーバ取得部２３１は、サーバ受信部２２が受信した２以上の修正情報を用いて、更新情報を取得する。
【０１０３】
サーバ取得部２３１は、例えば、サーバ受信部２２が受信した２以上の各修正情報が有する各エッジの更新量の代表値を算出し、当該各エッジの代表値を有する更新情報を取得する。代表値は、例えば、平均値であるが、中央値等でも良い。なお、かかる場合、更新情報は、各エッジの重みの更新量の集合を有する。更新情報は、例えば、エッジ識別子と更新量の組の集合である。ただし、エッジの順序が決まっている場合において、更新情報は、２以上の各エッジの新しい重みを取得するための更新量の集合でも良い。
【０１０４】
サーバ取得部２３１は、サーバ受信部２２が受信した２以上の各修正情報を用いて、各エッジの更新された重みを取得しても良い。かかる場合、更新情報は、各エッジの更新された重みを含む。そして、更新情報は、例えば、エッジ識別子と更新された重みの組の集合である。ただし、エッジの順序が決まっている場合において、更新情報は、２以上の各エッジの更新された重みの集合でも良い。なお、サーバ取得部２３１は、公知技術により実現可能である。
【０１０５】
サーバ送信部２４は、サーバ取得部２３１が取得した更新情報を２以上の各処理装置１に送信する。サーバ送信部２４は、サーバ取得部２３１が取得した更新情報と学習係数とを２以上の各処理装置に送信しても良い。
【０１０６】
格納部１１、モデル格納部１１１、学習情報格納部１１２、学習係数格納部１１３、変更情報格納部１１４、およびサーバ格納部２１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０１０７】
格納部１１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部１１等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部１１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部１１等で記憶されるようになってもよい。
【０１０８】
処理部１２、事前学習部１２１、主学習部１２２、更新部１２３、学習係数変更部１２４、制御部１２５、事前予測手段１２１１、事前修正情報取得手段１２１２、主予測手段１２２１、主修正情報取得手段１２２２、サーバ処理部２３、およびサーバ取得部２３１は、通常、ＭＰＵやメモリ等から実現され得る。処理部１２等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１０９】
送信部１３、およびサーバ送信部２４は、通常、無線または有線の通信手段で実現される。
【０１１０】
受信部１４、およびサーバ受信部２２は、通常、無線または有線の通信手段で実現される。
【０１１１】
次に、学習システムＡの動作について説明する。まず、処理装置１の動作について、図５のフローチャートを用いて説明する。
【０１１２】
（ステップＳ５０１）処理部１２は、カウンタｉに１を代入する。
【０１１３】
（ステップＳ５０２）事前学習部１２１は、ｉ番目のエポックの事前学習処理を行う。事前学習処理について、図６のフローチャートを用いて説明する。なお、エポックは、事前学習と主学習との組である。
【０１１４】
（ステップＳ５０３）主学習部１２２は、ｉ番目のエポックの主学習処理を行う。主学習処理について、図７のフローチャートを用いて説明する。
【０１１５】
（ステップＳ５０４）処理部１２は、カウンタｉを１、インクリメントする。
【０１１６】
（ステップＳ５０５）制御部１２５は、ｉ番目のエポックを実施するか否かを判断する。ｉ番目のエポックを実施する場合はステップＳ５０２に戻り、ｉ番目のエポックを実施しない場合は処理を終了する。なお、制御部１２５は、例えば、予め格納されている終了条件に合致するか否かを判断し、合致する場合はｉ番目のエポックを実施し、合致しない場合はｉ番目のエポックを実施しない。
【０１１７】
次に、ステップＳ５０２の事前学習処理について、図６のフローチャートを用いて説明する。
【０１１８】
（ステップＳ６０１）事前学習部１２１は、学習係数を取得する。この学習係数は、予め学習係数格納部１１３に格納されている学習係数、またはサーバ装置２から受信した学習係数である。
【０１１９】
（ステップＳ６０２）学習係数変更部１２４は、変更情報を使用するか否かを判断する。変更情報を使用する場合はステップＳ６０３に行き、変更情報を使用しない場合はステップＳ６０５に行く。なお、学習係数変更部１２４は、例えば、変更情報格納部１１４に変更情報が格納されている場合は変更情報を使用すると判断し、変更情報格納部１１４に変更情報が格納されていない場合は変更情報を使用しないと判断する。また、学習係数変更部１２４は、例えば、学習係数変更部１２４は、例えば、１回目のエポックでは変更情報を使用しないと判断し、２回目以降のエポックでは変更情報を使用すると判断する。
【０１２０】
（ステップＳ６０３）学習係数変更部１２４は、変更情報格納部１１４の変更情報を取得する。
【０１２１】
（ステップＳ６０４）学習係数変更部１２４は、ステップＳ６０１で取得した学習係数と、ステップＳ６０３で取得した変更情報とを用いて、学習係数を変更し、変更した学習係数を取得する。
【０１２２】
（ステップＳ６０５）事前学習部１２１は、カウンタｉに１を代入する。
【０１２３】
（ステップＳ６０６）事前学習部１２１は、ｉ回目のサイクルを実施するか否かを判断する。ｉ回目のサイクルを実施する場合はステップＳ６０７に行き、ｉ回目のサイクルを実施しない場合はステップＳ６１４に行く。なお、１サイクルは、１回のフォーワードプロパゲーションとバックワードプロパゲーションの処理である。１サイクルは、ステップＳ６０７からステップＳ６１２の処理である。また、事前学習部１２１は、例えば、予め格納されている第二の終了条件に合致するか否かを判断し、合致する場合はｉ回目のサイクルを実施し、合致しない場合はｉ回目のサイクルを実施しない。第二の終了条件は、例えば、格納されている事前学習のサイクル数に関する条件である。事前学習のサイクル数に関する条件は、例えば、「サイクル数＞ｉ」または「サイクル数＞＝ｉ」である。なお、サイクル数は、例えば、２００である。また、第二の終了条件は、例えば、直前のサイクルにおける処理結果である修正情報の絶対値が閾値以下または閾値未満であることである。その他、第二の終了条件は問わない。
【０１２４】
（ステップＳ６０７）事前学習部１２１は、学習情報格納部１１２から学習対象情報を取得する。なお、ここで取得される学習対象情報は、本エポックでは使用されていない学習対象情報であることは好適である。また、ここで取得される学習対象情報は、必ず今までに使用されていない学習対象情報であっても良い。
【０１２５】
（ステップＳ６０８）事前学習部１２１は、深層学習モデルを取得する。なお、ここで取得される深層学習モデルは、ステップＳ６１２で更新された最新の深層学習モデルであることは好適である。また、１回目のサイクルで使用される深層学習モデルは、モデル格納部１１１の深層学習モデルである。
【０１２６】
（ステップＳ６０９）事前予測手段１２１１は、ステップＳ６０８で取得された深層学習モデルに、ステップＳ６０７で取得された学習対象情報を適用し、フォーワードプロパゲーションを行い、予測情報を取得する。なお、取得される予測情報は、通常、２以上である。
【０１２７】
（ステップＳ６１０）事前修正情報取得手段１２１２は、ステップＳ６０７で取得された学習対象情報に対応する正解情報を学習情報格納部１１２から取得する。
【０１２８】
（ステップＳ６１１）事前修正情報取得手段１２１２は、ステップＳ６０８で取得された深層学習モデルを用いて、バックワードプロパゲーションを行い、修正情報を取得する。
【０１２９】
（ステップＳ６１２）事前修正情報取得手段１２１２は、ステップＳ６１１で取得した修正情報を用いて、ステップＳ６０８で取得された深層学習モデルを更新し、更新された深層学習モデルを取得する。なお、深層学習モデルの更新は、修正情報を用いた更新であり、深層学習モデルの重みの更新である。
【０１３０】
（ステップＳ６１３）カウンタｉを１、インクリメントする。ステップＳ６０６に戻る。
【０１３１】
（ステップＳ６１４）事前修正情報取得手段１２１２は、予測情報と正解情報とを用いて、精度情報を取得する。なお、ここで用いられる予測情報は、例えば、最後のサイクルのフォーワードプロパゲーションにより取得された予測情報である。また、ここで用いられる正解情報は、例えば、最後のサイクルで用いられた学習対象情報に対応する正解情報である。
【０１３２】
（ステップＳ６１５）送信部１３は、ステップＳ６１１で取得された修正情報と、ステップＳ６１４で取得された精度情報と、事前学習で用いた学習係数とをサーバ装置２に送信する。なお、ここで送信される修正情報は、最後のサイクルにおけるステップＳ６１１で取得された修正情報である。
【０１３３】
（ステップＳ６１６）受信部１４は、サーバ装置２から深層学習モデルの更新に関する更新情報と学習係数とを受信したか否かを判断する。学習係数等を受信した場合はステップＳ６１７に行き、学習係数等を受信しなかった場合はステップＳ６１６に戻る。
【０１３４】
（ステップＳ６１７）処理部１２は、ステップＳ６１６で受信された学習係数等を格納部１１に少なくとも一時蓄積する。
【０１３５】
次に、ステップＳ５０３の主学習処理について、図７のフローチャートを用いて説明する。図７のフローチャートにおいて、図６のフローチャートと同様のステップについて説明を省略する。なお、図６のフローチャートにおいて事前予測手段１２１１が行った処理は、図７のフローチャートにおいて主予測手段１２２１が行う。また、図６のフローチャートにおいて事前修正情報取得手段１２１２が行った処理は、図７のフローチャートにおいて主修正情報取得手段１２２２が行う。
【０１３６】
（ステップＳ７０１）送信部１３は、ステップＳ７１１で取得された修正情報をサーバ装置２に送信する。
【０１３７】
（ステップＳ７０２）主学習部１２２は、カウンタｉを１、インクリメントする。
【０１３８】
（ステップＳ７０３）受信部１４は、サーバ装置２から深層学習モデルの更新に関する更新情報を受信したか否かを判断する。更新情報を受信した場合はステップＳ７０４に行き、更新情報を受信しなかった場合はステップＳ７０３に戻る。
【０１３９】
（ステップＳ７０４）更新部１２３は、ステップＳ７０３で受信された更新情報を用いて、深層学習モデルを更新する。ステップＳ７０６に戻る。なお、更新された深層学習モデルは、モデル格納部１１１に蓄積される。
【０１４０】
なお、図７のフローチャートにおいて、ステップＳ６０６で「Ｎ」と判断された場合、上位処理にリターンする。
【０１４１】
次に、サーバ装置２の動作について、図８のフローチャートを用いて説明する。
【０１４２】
（ステップＳ８０１）サーバ受信部２２は、処理装置１から精度情報等を受信したか否かを判断する。精度情報等を受信した場合はステップＳ８０２に行き、精度情報等を受信しなかった場合はステップＳ８０７に行く。なお、精度情報等とは、例えば、精度情報と学習係数である。
【０１４３】
（ステップＳ８０２）サーバ処理部２３は、ステップＳ８０１で受信された精度情報等をサーバ格納部２１に蓄積する。
【０１４４】
（ステップＳ８０３）サーバ処理部２３は、今回の処理において、すべての処理装置１から精度情報等を受信したか否かを判断する。すべての処理装置１から精度情報等を受信した場合はステップＳ８０４に行き、すべての処理装置１から修正情報を受信していない場合はステップＳ８０１に戻る。
【０１４５】
（ステップＳ８０４）サーバ処理部２３は、すべての処理装置１から送信された精度情報等をサーバ格納部２１から取得する。
【０１４６】
（ステップＳ８０５）サーバ処理部２３は、すべての精度情報の中から最も精度の高い精度情報を決定し、当該精度情報と対になる学習係数等を取得する。
【０１４７】
（ステップＳ８０６）サーバ送信部２４は、ステップＳ８０５で取得された学習係数等を２以上の各処理装置１に送信する。ステップＳ８０１に戻る。
【０１４８】
（ステップＳ８０７）サーバ受信部２２は、処理装置１から修正情報を受信したか否かを判断する。修正情報を受信した場合はステップＳ８０８に行き、修正情報を受信しなかった場合はステップＳ８０１に戻る。
【０１４９】
（ステップＳ８０８）サーバ処理部２３は、ステップＳ８０７で受信された修正情報をサーバ格納部２１に蓄積する。
【０１５０】
（ステップＳ８０９）サーバ処理部２３は、今回の処理において、すべての処理装置１から修正情報を受信したか否かを判断する。すべての処理装置１から修正情報を受信した場合はステップＳ８１０に行き、すべての処理装置１から修正情報を受信していない場合はステップＳ８０１に戻る。
【０１５１】
（ステップＳ８１０）サーバ取得部２３１は、今回の処理において、サーバ格納部２１に蓄積されたすべての修正情報をサーバ格納部２１から読み出す。
【０１５２】
（ステップＳ８１１）サーバ取得部２３１は、ステップＳ８１０で取得したすべての修正情報を用いて更新情報を取得する。
【０１５３】
（ステップＳ８１２）サーバ送信部２４は、ステップＳ８１１で取得された更新情報を２以上の各処理装置１に送信する。ステップＳ８０１に戻る。
【０１５４】
なお、図８のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１５５】
以下、本実施の形態における学習システムＡの具体的な動作について説明する。学習システムＡの概念図は図１である。また、以下、３つの具体例について説明する。
（具体例１）
【０１５６】
具体例１において、Ｌｉｎｕｘ（登録商標）サーバを使用し、学習システムＡを実現した。また、Ｌｉｎｕｘサーバには、図９の構成である。図９では、学習システムＡは、サーバ装置２に該当する「Ｍａｉｎ  ＣＰＵ」と、ｎ個の処理装置１に該当するｎ個のＧＰＧＰＵ（ＧＰＧＰＵ１〜ＧＰＧＰＵｎ）とを含む。処理装置１は、Ｗｏｒｋｅｒと言っても良い。つまり、図９では、学習システムＡは、Ｗｏｒｋｅｒ１〜Ｗｏｒｋｅｒｎを有する。そして、深層学習のフレームワークとして、Ｃｈａｉｎｅｒ（オープンソースライブラリー）を使用した。また、モデル格納部１１１の深層学習モデル（深層学習のネットワークモデルと言っても良い。）として、ＲｅｓＮｅｔ５０（Residual Network50）を使用した。なお、ＲｅｓＮｅｔ５０は、５０層を持った畳み込みニューラルネットワーク（ＣＮＮ）のモデルである。また、学習情報格納部１１２の学習対象情報として、１２８万枚の画像データを使用した。そして、本具体例において、１演算時の画像処理数を５１２個とした。
【０１５７】
本具体例において、図１０に示すように、学習システムＡは、２５００回の処理（Forward演算とBackward演算）を含むエポック（Ｒ）を、１００回行う学習を実施した。なお、Forward演算とはフォーワードプロパゲーションである。Backward演算は、バックワードプロパゲーションである。
【０１５８】
そして、学習システムＡでは、上述したように、学習係数を取得する事前学習と、その事前学習の中最も良かった学習係数を選定し、主学習を行う。つまり、学習システムＡでは、事前学習と主学習とを分けて行い、１エポックを終了する。そして、事前学習（ここでは、事前学習の回数α＝２００回）では、複数の異なる学習係数を使って、フォーワードプロパゲーションとバックワードプロパゲーションとを実施し、最も精度の良かった学習係数を選定する。そして、学習システムＡは、選定した学習係数を用いて、主学習（ここでは、主学習の回数β＝２３００回）を行う。なお、主学習として、フォーワードプロパゲーションとバックワードプロパゲーションとを実施する。そして、上記の事前学習と主学習の組を、エポック数だけ繰り返す。
【０１５９】
また、本具体例において、精度情報を取得するためのロス関数として、上記の数式４（平均２乗誤差）を使用した。
【０１６０】
なお、図１０では、事前学習と主学習を行って、保有する学習データ１２８万枚を全て処理した場合を１エポックと表現する。ここでは、エポック数をRとする。エポック数は、無限に増やすことができるが、どこかで止める必要がある。その時の条件は、例えば、エポック数や精度や一定のエポック数を超えた後の精度等の条件である。また、図１０において、エポックRの時の事前学習をP（R）とし、主学習をM（R）とする。また、図１０において、LRｉ(R)（i=１〜8）は、エポックRの時の事前学習に使用する学習係数を表す。LRp(R)は、エポックRの時の事前学習時に、最も良い精度を示した学習係数を表し、そのエポック時の主学習に使用する学習係数である。A(R)は、エポックRの時の主学習を終わった場合の精度を表す。
【０１６１】
R+1のエポック時の事前学習の学習係数LRi(R+1)と、Rエポック時の主学習の学習係数LRp（R）との関係は以下の数式５である。
【数５】
2020064491.tif 000007
【０１６２】
なお、数式５において、Viは、倍率である。倍率は、変更情報の例である。また、８個のViは、それぞれ異なる値である。ここでは、８個の各Viは、１、１より大きい数字、１より小さい数字である。
【０１６３】
また、８個の処理装置１の事前学習部１２１は、図１１に示すように処理を行う。つまり、８個の処理装置１の各事前学習部１２１は、２００サイクルの処理を行う。
【０１６４】
そして、図１１において、重みｗｉ（k）は、ｉ番のWorkerでのサイクルｋの時の重みを表す。Dｉ(K)は、ｉ番のWorkerに入力されるサイクルKの時のData画像（学習対象情報）を表す。Data画像は、ランダムに、学習情報格納部１１２から抽出され、一度使用した学習対象情報は、そのエポック内では、使用されないように、事前学習部１２１は、学習対象情報を選択する。図１１において、Aｉ(K)は、ｉ番のWorkerでフォワード演算、バックワード演算を実施した時の精度（精度情報と言っても良い）を表す。LRｉは、ｉ番のWorkerで使用する学習係数を表す。事前学習では、各Workerで使うLRは異なるが、各サイクルでは、同じLRを使用する。
【０１６５】
そして、８個の処理装置１の各事前学習部１２１が使用する重みは「W1(1)=W2(1)・・・=Wｉ(1)・・・=W8(1)」であり、８個の処理装置１の各事前学習部１２１は、事前学習のサイクル１では、同じ重みを使用して、処理を開始する。よって、初期値の重みは同じであるが、サイクルを重ねる毎に、各Workerで使用する重みWｉ(K)は、異なるものになる。その為に、精度Aｉ(K)については、各サイクル毎に異なる値を示し、サイクル200では、Aｉ(200)(ｉ=1〜8)については、各Worker毎に異なる為、最適なLRを決めるのは、Ai(200)(i＝1〜8)の精度を比較し、 LRｉ(ｉ＝1〜8)の中から最もよい精度を示すLRpを選出する。なお、ここでは、最もよい精度を示すLRpを選出する処理は、サーバ装置２が行う。
【０１６６】
また、本具体例において、事前学習では、８個の処理装置１の各事前学習部１２１は、それぞれLR1〜LR8の異なる学習係数を用いて、深層学習の演算を行い、その精度を算出し、サイクル200での、精度の比較を行って、最もよい精度を得た学習係数を選び、それをLRpとした。図１２は、かかる場合のサイクルと精度の関係を示すグラフである。図１１によれば、２００回のサイクルの終了後、精度が最も高いLR4が選択された。つまり、学習係数LR4を使って主学習が実施される。
【０１６７】
図１３は、主学習の概念を説明する図である。図１３において、図１１の事前学習での重み、Data画像、精度と区別する為に、それぞれの記号の後に（β）を入れる。図１３において、Dβｉ(K)は、ｉ番のWorkerに入力されるサイクルKの時のData画像を表す。Data画像は、ランダムに、学習データから抽出し、一度使用した学習データは、そのエポック内では、使用しないことは、事前学習の際と同様である。Aβｉ(K)は、ｉ番のWorkerで、フォワード演算、バックワード演算を実施した時の精度を表す。サイクルKの時の精度は、８Workerの平均精度を取る。学習係数（LR）について、主学習では、事前学習で求めたLRpをすべてのWorkerが使用している。
【０１６８】
サイクルKでの重みは８Workerで同じ重みを使用し、一つ前のサイクルで各Worker毎に上記の数式１で重みを算出する。
【０１６９】
そして、サーバ装置２は、サイクルKの終了後、各Workerから重みを受け取り、Workerから受け取った重みの平均値を出して、平均重みWβ（更新情報）を以下の数式６で求める。
【数６】
2020064491.tif 000008
【０１７０】
そして、その平均値を、次サイクルの各Workerの重みＷβｉ（k+1）とする。但し、Wβｉ（1）は、事前学習のサイクル200の時の重みWｉ（200）の内、最も精度がよかった学習係数LRpに対応する重みである。
【０１７１】
以上のように、２３００回のサイクルを行い、主学習を終了する。
【０１７２】
なお、上記の具体例において、図１４に示すように、従来技術と比較して、同様の学習を行うのに、８７．５％の処理量の削減が図れた。つまり、従来技術では、２５００回の演算を８つの各処理装置１で行うため、２００００iterationsの処理が必要であった。
【０１７３】
一方、本具体例において、１エポック（２５００回）の中で、事前学習（２００回の処理）により学習係数を選定し、選定した学習係数を用いて主学習（２３００回の処理）を実施した。そのため、本具体例において、精度をそれほど落とすことなく、学習係数を選択する際の演算時間を大幅に削減できた。
【０１７４】
なお、具体例１における学習システムＡの動作例を説明するフローチャートは、図１５である。
【０１７５】
（ステップＳ１５０１）各処理装置１の処理部１２は、１エポックの演算回数Ｑ、１エポックの事前学習回数α、および主学習回数βを格納部１１から読み出す。なお、ここでは、Ｑ＝２５００、α＝２００、β＝２３００である。
【０１７６】
（ステップＳ１５０２）事前学習部１２１は、エポック数のカウンタＲに０を代入する。また、事前学習部１２１は、学習係数LRpの初期値を格納部１１から取得する。なお、LRpの初期値は、ここでは、０．１である。
【０１７７】
（ステップＳ１５０３）学習係数変更部１２４は、事前学習時の学習係数算出のための倍率を格納部１１から読み出す。なお、倍率は、ここでは、V1・・・Vnである。
【０１７８】
（ステップＳ１５０４）学習係数変更部１２４は、演算式「LRi＝LRp＊Vi  （i＝1・・・n）」により、事前学習時の学習係数を算出する。
【０１７９】
（ステップＳ１５０５）事前学習部１２１は、カウンタＮに０を代入する。
【０１８０】
（ステップＳ１５０６）事前学習部１２１は、上述した事前学習を実施する。
【０１８１】
（ステップＳ１５０７）事前学習部１２１は、「Ｎ＝Ｎ＋１」を実行し、カウンタＮを更新する。
【０１８２】
（ステップＳ１５０８）事前学習部１２１は、「Ｎ＜＝α」を満たすか否かを判断する。満たす場合はステップＳ１５０９に行き、満たさない場合はステップＳ１５０６に戻る。
【０１８３】
（ステップＳ１５０９）サーバ装置２のサーバ処理部２３は、各処理装置１が使用した学習係数LR1・・・LRnの中から、最良の学習係数LRpを選定する。
【０１８４】
（ステップＳ１５１０）各処理装置１の主学習部１２２は、選定された学習係数LRpを用いて、上述した主学習を実施する。
【０１８５】
（ステップＳ１５１１）主学習部１２２は、「Ｎ＝Ｎ＋１」を実行し、カウンタＮを更新する。
【０１８６】
（ステップＳ１５１２）主学習部１２２は、「Ｎ＜＝Ｑ」を満たすか否かを判断する。満たす場合はステップＳ１５１３に行き、満たさない場合はステップＳ１５１０に戻る。
【０１８７】
（ステップＳ１５１３）処理部１２は、「Ｎ＜＝Ｑ」を満たすか否かを判断する。満たす場合は処理を終了し、満たさない場合はステップＳ１５１４に行く。
【０１８８】
（ステップＳ１５１４）処理部１２は、「Ｒ＝Ｒ＋１」を実行する。ステップＳ１５０４に戻る。
【０１８９】
なお、具体例１では、Worker（処理装置１）を８個で、LRを８個使って、事前学習を行ったため、並列で同時に実施可能であったが、これに限定するものではなく、並列で同時に実施可能にする為には、Worker（処理装置１）の個数よりも、事前学習で使用するLRの候補数が同じか少ない場合であれば、特に、同じような効果を得るものである。一方、Worker（処理装置１）の個数よりも、事前学習で使用するLRの候補数が多い場合でも、事前学習を行う回数や時間等は増加するが、事前学習を行う事で、最適なLRを選択し、選択したLRを用いて主学習を行うことで、本願発明の有する効果は得られることは言うまでもない。
（具体例２）
【０１９０】
具体例２において、図１６に示す環境で、学習システムＡを動作させた。つまり、具体例２において使用した深層学習のネットワークモデルは、具体例１で使用したNesNet50でなく、ＶＧＧ‐ｆという深層学習のモデルである。また、具体例２において使用したデータセット（学習対象情報）は、約５万枚(厳密には、２５６＊１９５イタレーション＝４９９２０枚）の画像である。また、具体例２において、１エポックのサイクル数は１９５回、事前学習の回数は４０回、主学習の回数は１５５回であった。また、LR1(3.0)、LR2(1.0)、LR3(0.5)の３つの学習係数を使用した。
【０１９１】
具体例１では、Worker（処理装置１）を８個で、LRを８個使って、事前学習を行ったため、並列で同時に実施可能であったが、具体例２においては、Worker（処理装置１）が１つである為に、Worker において、LR1を使って深層学習の演算を実施し、その後、LR2、LR3を使って演算をシリアルに実施した。そのために、具体例２において、事前学習での演算時間は、３つのWorkerを使う場合と比較して、約３倍の演算時間が必要であった。
【０１９２】
具体例２では、Worker（処理装置１）が１つである為、事前学習で使用するLRの候補数がWorker(処理装置１）の個数より多い場合に相当するが、上記でも述べたように、事前学習を行う回数や時間等は増加するが、事前学習を行う事で、最適なLRを選択し、選択したLRを用いて主学習を行うことで、本願発明の有する効果は得られることは言うまでもない。
【０１９３】
そして、上記の環境で、１つの処理装置１が３つの各学習係数を用いて、学習係数ごとの精度を算出した。
【０１９４】
また、具体例２において、初期値の学習係数は、LRpは0.1設定した。また、変更情報格納部１１４の変更情報として、３つの倍率（V1=3，V2＝1，V3=0．5）を準備した。なお、ここでの倍率は、エポックによって変化することはなく、固定である。
【０１９５】
そして、本具体例では、LRpが決まった場合に、学習係数変更部１２４は、式「LRi＝LRp＊Vi  （i＝1・・・n）」を用いて、LRiを算出する。
【０１９６】
「V3=0．5」を使用した場合、一エポック前の主学習時に使用した学習係数を、次のエポックの主学習では、半分にした値を使い、深層学習の演算を行うこととなる。
【０１９７】
上記の環境で、学習システムＡを動作させた場合のエポックの進行と精度との関係を示す図を図１７に示す。図１７において、縦軸が精度、横軸がエポックの回数を示す。
【０１９８】
図１７によれば、Ｒ変更直後から精度が変化しており、特に、Ｒ変更直後は感度が高いため、少数の反復回数(事前学習)でも各ＬＲの精度比較を行うことができる。図１７は、この特性を使った場合の例である。図１７によれば、事前学習で最も精度が高い学習係数を用いて、主学習で学習を行えていることが分かる。
（具体例３）
【０１９９】
具体例３は、変更情報である倍率の組合せをエポックの途中で変更した例で、全体の演算等は同じである。ハード構成は、具体例１と同じであり、図９に示す通りである。
【０２００】
具体例３における学習システムＡの構成で、種々の学習係数のセットを使用して、実験した場合のエポックの進行に伴う学習係数の変化を、図１８に示す。
【０２０１】
なお、図１８の「Narrow set」（以下、適宜、ナローセットと言う。）の場合には、各エポック毎の学習係数は、略減少、エポック数が３０を超えた辺りで、略一定の値の範囲で上下している。また、「Middle set」は、以下、適宜、ミドルセットと言う。さらに、「Wide set」以下、適宜、ワイドセットと言う。
【０２０２】
図１８の「Mix」の場合には、ナローセット、ミドルセット、ワイドセットを用いる。また、ナローセット、ミドルセット、ワイドセットの各々の倍率の情報は、図１９である。
【０２０３】
図１９において、Valuesの＃１から＃８は、８つの各処理装置１（Worker）である。また、本具体例において、学習係数の初期値LRpは0.1を使用した。なお、図１９に示すように、ナローセット（(a)Narrow）において、倍率は1.25から0.80で、狭い範囲の中のいずれかの値の変更情報が採用される。また、ミドルセット（(b)Middle）において、倍率は2.50から0.40の範囲の中のいずれかの値の変更情報が採用される。さらに、ワイドセット（(c)Wide）において、倍率は5.00から0.20で、広い範囲の中のいずれかの値の変更情報が採用される。
【０２０４】
図１８の「Mix」の場合、図２０に示すスケジュールで学習を進める。つまり、エポックの１〜４は、「Warm up」を実施する。なお、「Warmup」とは、学習初期に小さい値の学習係数で数エポックの学習を行う事で、学習安定性と精度向上を図るための公知の技術である。そして、エポック５から深層学習を開始する。また、エポック５から１９では、変更情報セットとしてナローセット（(a)Narrow）を用いる。また、エポック２０から２９では、変更情報セットとしてミドルセット（(b)Middle）を用いる。さらに、エポック３０から４０では、変更情報セットとしてワイドセット（(c)Wide）を用いる。つまり、具体例３において、ナローセットは、ワイドセットより前のエポックで使用される。また、ミドルセットは、ナローセットより後のエポックで使用され、ワイドセットより前のエポックで使用される。
【０２０５】
ナローセット（エポック５―１９）では、学習係数は略減少し、ミドルセット（エポック２０―２９）では、最初大きく変動し、減少後、所定の値で、上下していた。また、ワイドセット（エポック３０−４０）では、エポック毎に上下しているが、若干値が上昇しながら、上下していた。
【０２０６】
図１８によれば、「Narrow set」の場合でも、従来の「Ref.」よりも精度は向上（エポック数４０で、「Ref.」より、３．６％向上）しているが、エポック数が２５を超えたぐらいから、精度が悪くなるという傾向が見られた。一方、「Mix」の場合には、「Narrow set」に比べてエポック数４０の段階では、精度が、１．２％向上している。「Narrow set」→「Middle set」→「Wide set」と遷移した場合には、倍率の選択幅を大きくすることで、より良い精度が得られる学習係数が見つかったと言える。最終的には、精度が向上するような、学習係数が見つかり、より最適な重みを用いて、深層学習することができるようになった。
【０２０７】
上記の環境で、学習システムＡを動作させた場合のエポックの進行に従った精度の変化を示すグラフを図２１に示す。
【０２０８】
図２１において、「Ref.」は従来技術を用いた従来例である。従来例では、初期値の学習係数が0.1で、１６エポック毎に、学習係数を、１０分の１に減らしている。エポック１−１６は学習係数0．1で、エポック１７−３２は学習係数0.01で、エポック３３−４８は学習係数0.001になっている。
【０２０９】
図２１の「Narrow」では、図１９の８個の倍率を使用して、事前学習時の学習係数の候補８個を算出する。
【０２１０】
図２１の「Mix」は、図１９のスケジュールに従って、エポック１−４は「Warmup」で、エポック５−１９は「Narrow set」で、エポック２０−２９は「Middle set」で、エポック３０−４０は「Wide set」で深層学習を実施した。
【０２１１】
図２１によれば、変更情報である倍率の組合せをエポックの途中で変更する「Mix」の場合、「Narrow」と比較して１．２％の精度の向上、「Ref.」と比較して４．８％の精度の向上が見られ、倍率の組合せをエポックの途中で変更することが有効であることが分かった。
【０２１２】
なお、具体例３における学習システムＡの動作例を説明するフローチャートは、図２２である。また、図２２のフローチャートにおいて、図１５のフローチャートと同一のステップについて説明を省略する。
【０２１３】
（ステップＳ２２０１）各処理装置１の学習係数変更部１２４は、倍率を変更するか否かを判断する。倍率を変更する場合はステップＳ２２０２に行き、倍率を変更しない場合はステップＳ１５１３に行く。
【０２１４】
（ステップＳ２２０２）学習係数変更部１２４は、新たな倍率を格納部１１から読み出す。ステップＳ１５１４に行く。
【０２１５】
以上、本実施の形態によれば、深層学習において、高速に精度高く、学習処理を行える。
【０２１６】
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における処理装置１を実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報を有する２以上の学習情報が格納され学習情報格納部と、前記深層学習モデルの重みを算出する際に使用する係数であり、他の処理装置の係数とは異なる係数である学習係数が格納される学習係数格納部とにアクセス可能なコンピュータを、前記学習情報格納部の２以上の各学習対象情報を前記モデル格納部の深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と前記学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正し、前記深層学習モデルを更新するバックワードプロパゲーションを行い、かつ前記予測情報と前記正解情報とを用いて精度に関する精度情報を取得する事前学習部と、前記学習情報格納部の学習対象情報を深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報に対応する正解情報と、前記精度情報を用いて選別された学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得するバックワードプロパゲーションを行う主学習部と、前記主学習部が取得した修正情報をサーバ装置に送信する送信部と、前記サーバ装置から深層学習モデルの更新に関する更新情報を受信する受信部と、前記更新情報を用いて、前記深層学習モデルを更新する更新部として機能させるためのプログラムである。
【０２１７】
また、本実施の形態におけるサーバ装置２を実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、１または２以上の各処理装置から修正情報を受信するサーバ受信部と、前記サーバ受信部が受信した２以上の修正情報を用いて、更新情報を取得するサーバ取得部と、前記更新情報を前記２以上の各処理装置に送信するサーバ送信部として機能させるためのプログラムである。
【０２１８】
（実施の形態２）
【０２１９】
本実施の形態において、実施の形態１に対して、処理を行う装置が一つである場合について説明する。つまり、本願発明の事前学習と主学習とを行う学習システムは、いくつの装置で処理を分担しても良い。
【０２２０】
図２３は、本実施の形態における学習システムＢのブロック図である。学習システムＢは、格納部３、および処理部４を備える。格納部３は、モデル格納部１１１、学習情報格納部１１２、学習係数格納部１１３、および変更情報格納部１１４を備える。処理部４は、事前学習部４１、主学習部４２、更新部４３、学習係数変更部１２４、および制御部１２５を備える。
【０２２１】
処理部４は、各種の処理を行う。各種の処理は、例えば、事前学習部１２１、主学習部１２２、更新部１２３、学習係数変更部１２４、制御部１２５が行う処理である。
【０２２２】
事前学習部４１は、事前学習を行う。つまり、まず、事前学習部４１は、学習情報格納部１１２の学習対象情報をモデル格納部１１１の深層学習モデルに適用し、当該学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う。また、事前学習部４１は、取得した予測情報とフォーワードプロパゲーションの対象である学習対象情報と対になる正解情報と学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて深層学習モデルを更新するバックワードプロパゲーションを行う。なお、事前学習部４１は、学習係数格納部の２以上の異なる各学習係数を用いて、繰り返して、フォーワードプロパゲーションとバックワードプロパゲーションとを行う。そして、事前学習部４１は、２以上の異なる各学習係数ごとに、精度に関する精度情報を取得し、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得する。なお、かかる学習係数の取得の処理は、学習係数の選別処理である。
【０２２３】
そして、主学習部４２は、主学習を行う。つまり、主学習部４２は、事前学習部４１が取得した学習係数が取得した学習係数を用いて、上述したフォーワードプロパゲーションとバックワードプロパゲーションとを行う。なお、事前学習部４１の処理は、学習係数の選別処理を除いて、概ね事前学習部１２１の処理と同様である。また、実施の形態１において、学習係数の選別処理は、通常、サーバ装置２が行った。
【０２２４】
さらに詳細には、主学習部４２は、学習情報格納部１１２の学習対象情報を、事前学習部４１が取得した修正情報を用いて更新された深層学習モデルまたはさらに更新された深層学習モデルに適用し、学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーションを行う。また、主学習部４２は、取得した予測情報と、フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報と、事前学習部４１が取得した学習係数とを用いて、予測情報が正解情報に一致するまたは近づくために、深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて深層学習モデルを更新するバックワードプロパゲーションを行う。そして、主学習部４２は、通常、フォーワードプロパゲーションとバックワードプロパゲーションとを繰り返して行う。なお、主学習部４２の処理は、概ね主学習部１２２の処理と同様である。
【０２２５】
更新部４３は、主学習部４２が更新した深層学習モデルを蓄積する。更新部４３は、主学習部４２が更新した深層学習モデルを、通常、格納部３に蓄積する。
【０２２６】
格納部３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。格納部３に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部３で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部３で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部３で記憶されるようになってもよい。
【０２２７】
処理部４、事前学習部４１、主学習部４２、更新部４３は、通常、ＭＰＵやメモリ等から実現され得る。処理部４等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０２２８】
以上、本実施の形態によれば、深層学習において、高速に精度高く、学習処理を行うことができる。
【０２２９】
なお、本実施の形態において、処理装置１は、複数であり複数の処理装置１が並列処理を行うことが好適である。しかし、本実施の形態において、処理装置１は一つでも良い。処理装置１が一つである場合、処理装置１は、複数の各学習係数を用いた事前学習をシーケンシャルに行い、選別する学習係数が決定される。
【０２３０】
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における学習システムＢを実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、入力層と中間層と出力層とを有する深層学習モデルが格納されるモデル格納部と、学習対象の情報である学習対象情報と正解を示す正解情報とを有する２以上の学習情報が格納され学習情報格納部と、前記深層学習モデルの重みを算出する際に使用する２以上の異なる学習係数が格納される学習係数格納部とにアクセス可能なコンピュータを、前記学習情報格納部の学習対象情報を前記モデル格納部の深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と前記フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報と前記学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを、前記学習係数格納部の２以上の異なる各学習係数を用いて、繰り返して行い、かつ前記２以上の異なる各学習係数ごとに、精度に関する精度情報を取得し、予め決められた条件を満たすほど高い精度を示す精度情報に対応する学習係数と修正情報とを取得する事前学習を行う事前学習部と、前記学習情報格納部の学習対象情報を、前記事前学習部が取得した修正情報を用いて更新された深層学習モデルまたはさらに更新された深層学習モデルに適用し、前記学習対象情報に対応する結果である予測情報を取得するフォーワードプロパゲーション、および前記予測情報と、前記フォーワードプロパゲーションの対象である学習対象情報と対になる正解情報と、前記事前学習部が取得した学習係数とを用いて、前記予測情報が前記正解情報に一致するまたは近づくために、前記深層学習モデルが有する重みを修正するための修正情報を取得し、当該修正情報を用いて前記深層学習モデルを更新するバックワードプロパゲーションを含む主学習を行う主学習部と、前記主学習部が更新した深層学習モデルを蓄積する更新部として機能させるためのプログラムである。
【０２３１】
また、図２４は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の処理装置１、サーバ装置２を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図２４は、このコンピュータシステム３００の概観図であり、図２５は、システム３００のブロック図である。
【０２３２】
図２４において、コンピュータシステム３００は、ＣＤ−ＲＯＭドライブを含むコンピュータ３０１と、キーボード３０２と、マウス３０３と、モニタ３０４とを含む。
【０２３３】
図２５において、コンピュータ３０１は、ＣＤ−ＲＯＭドライブ３０１２に加えて、ＧＰＧＰＵ３０１３と、ＣＤ−ＲＯＭドライブ３０１２等に接続されたバス３０１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５と、ＧＰＧＰＵ３０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７とを含む。ここでは、図示しないが、コンピュータ３０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０２３４】
コンピュータシステム３００に、上述した実施の形態の処理装置１等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３１０１に記憶されて、ＣＤ−ＲＯＭドライブ３０１２に挿入され、さらにハードディスク３０１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３０１に送信され、ハードディスク３０１７に記憶されても良い。プログラムは実行の際にＲＡＭ３０１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３１０１またはネットワークから直接、ロードされても良い。
【０２３５】
プログラムは、コンピュータ３０１に、上述した実施の形態の処理装置１等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０２３６】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０２３７】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０２３８】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２３９】
また、本発明の実施の形態において、学習対象情報は、各処理装置１の学習情報格納部１１２に格納されているように記載されているが、これに限定するものではなく、学習対象情報を、処理装置１以外の場所であるサーバ装置２内や学習対象情報のみを格納している装置内に格納しておき、必要な場合に、各処理装置１に送信し、学習情報格納部１１２に一時的に格納されても良いことは言うまでもない。
【０２４０】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２４１】
以上のように、本発明にかかる学習システムは、深層学習において、高速に精度高く、学習処理を行えるという効果を有し、学習システム等として有用である。
【符号の説明】
【０２４２】
１  処理装置
２  サーバ装置
３、１１  格納部
４、１２  処理部
１３  送信部
１４  受信部
２１  サーバ格納部
２２  サーバ受信部
２３  サーバ処理部
２４  サーバ送信部
４１、１２１  事前学習部
４２、１２２  主学習部
４３、１２３  更新部
１１１  モデル格納部
１１２  学習情報格納部
１１３  学習係数格納部
１１４  変更情報格納部
１２１  各事前学習部
１２４  学習係数変更部
１２５  制御部
２３１  サーバ取得部
１２１１  事前予測手段
１２１２  事前修正情報取得手段
１２２１  主予測手段
１２２２  主修正情報取得手段
【図１】
2020064491.tif 000009
【図２】
2020064491.tif 000010
【図３】
2020064491.tif 000011
【図４】
2020064491.tif 000012
【図５】
2020064491.tif 000013
【図６】
2020064491.tif 000014
【図７】
2020064491.tif 000015
【図８】
2020064491.tif 000016
【図９】
2020064491.tif 000017
【図１０】
2020064491.tif 000018
【図１１】
2020064491.tif 000019
【図１２】
2020064491.tif 000020
【図１３】
2020064491.tif 000021
【図１４】
2020064491.tif 000022
【図１５】
2020064491.tif 000023
【図１６】
2020064491.tif 000024
【図１７】
2020064491.tif 000025
【図１８】
2020064491.tif 000026
【図１９】
2020064491.tif 000027
【図２０】
2020064491.tif 000028
【図２１】
2020064491.tif 000029
【図２２】
2020064491.tif 000030
【図２３】
2020064491.tif 000031
【図２４】
2020064491.tif 000032
【図２５】
2020064491.tif 000033