(57)【要約】      （修正有）【課題】より高速にニューラルネットワーク用のパラメタを更新できる学習システムを提供する。【解決手段】学習システムのノード１夫々において、複数の微分値算出部２のそれぞれは、互いに同期することなく、パラメタ更新部３からある時点でのパラメタを受信し、受信したパラメタに基づいて、パラメタの更新に用いられる微分値を算出し、微分値をパラメタ更新部に送信する。パラメタ更新部は、微分値算出部から微分値を受信し、複数の微分値算出部による微分値算出と同期することなく、受信した微分値に基づいてパラメタを更新し、更新後のパラメタを前記複数の微分値算出部に送信する。微分値算出部は、微分値を算出する際、パラメタの受信時点から、算出した微分値がパラメタ更新部によってパラメタの更新に用いられるまでの間にパラメタが更新される回数に対応するステイルネスを考慮して、微分値を算出する。【選択図】図５
2018106489.tif 000002
【特許請求の範囲】
【請求項１】
複数の微分値算出部と、パラメタ更新部とを備え、ニューラルネットワーク用のパラメタを更新する学習システムであって、
前記複数の微分値算出部のそれぞれは、互いに同期することなく、
前記パラメタ更新部からある時点でのパラメタを受信し、
前記受信したパラメタに基づいて、前記パラメタの更新に用いられる微分値を算出し、
前記微分値を前記パラメタ更新部に送信し、
前記パラメタ更新部は、
前記微分値算出部から前記微分値を受信し、
前記複数の微分値算出部による微分値算出と同期することなく、受信した前記微分値に基づいて前記パラメタを更新し、
更新後の前記パラメタを前記複数の微分値算出部に送信し、
前記微分値算出部は、前記微分値を算出する際、前記パラメタの受信時点から、算出した微分値が前記パラメタ更新部によって前記パラメタの更新に用いられるまでの間に前記パラメタが更新される回数に対応するステイルネスを考慮して、前記微分値を算出する、学習システム。
【請求項２】
前記微分値算出部は、前記ステイルネスを考慮して、算出した微分値が前記パラメタ更新部によって前記パラメタの更新に用いられる際のパラメタの予測値を算出し、該予測値を微分して前記微分値を算出する、請求項１に記載の学習システム。
【請求項３】
前記微分値算出部は、前記ある時点でのパラメタと、前記ある時点より過去の時点でのパラメタと、前記ステイルネスと、に基づいて、前記予測値を算出する、請求項２に記載の学習システム。
【請求項４】
前記ある時点τでのパラメタをＷ(τ)とし、前記ある時点より過去の時点（τ−１）でのパラメタをＷ(τ-1)とし、前記ステイルネスをｓnとし、γ∈（０，１）とするとき、前記予測値Ｐ(τ)は、
【数１】
2018106489.tif 000017
である、請求項３に記載の学習システム。
【請求項５】
前記微分値算出部は、学習が進むにつれて前記γを大きな値とする、請求項４に記載の学習システム。
【請求項６】
前記パラメタ更新部は、前記微分値に学習係数を乗じた値を用いて前記パラメタを更新し、学習が進むにつれて前記学習係数を大きな値とする、請求項１乃至５のいずれかに記載の学習システム。
【請求項７】
前記パラメタ更新部は、学習の開始から所定回パラメタ更新が行われるまでは、前記パラメタの更新量の絶対値またはノルムが所定値を超えないよう、更新量を調整する、請求項１乃至６のいずれかに記載の学習システム。
【請求項８】
ニューラルネットワーク用のパラメタを更新する学習方法であって、
複数の微分値算出部のそれぞれが、互いに同期することなく、
パラメタ更新部からある時点でのパラメタを受信するステップと、
前記受信したパラメタに基づいて、前記パラメタの更新に用いられる微分値を算出するステップと、
前記微分値を前記パラメタ更新部に送信するステップと、
前記パラメタ更新部が、
前記微分値算出部から前記微分値を受信するステップと、
前記複数の微分値算出部による微分値算出と同期することなく、受信した前記微分値に基づいて前記パラメタを更新するステップと、
更新後の前記パラメタを前記複数の微分値算出部に送信するステップと、を備え、
前記微分値算出部が前記微分値を算出するステップでは、前記パラメタの受信時点から、算出した微分値が前記パラメタ更新部によって前記パラメタの更新に用いられるまでの間に前記パラメタが更新される回数に対応するステイルネスを考慮して、前記微分値を算出する、学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク用のパラメタを更新する学習システムおよび学習方法に関する。
【背景技術】
【０００２】
画像認識の分野において、一般物体認識と呼ばれる問題がある。これは、画像の中に存在する鳥や車といった物体の種別（クラス）を推定する問題である。近年、一般物体認識問題の認識性能の改善が目覚ましい。これは、とりわけ層数の多い畳み込みニューラルネットワーク（Convolution Neural Network、以下ＣＮＮという。例えば、非特許文献１参照）によるところが大きい。
【０００３】
画像認識の分野では過去様々な認識アルゴリズムが提案されてきたが、学習データ（入力データと正解との組）が膨大になるにつれ、ＣＮＮが他のアルゴリズムの認識性能を上回る傾向となっている。ＣＮＮは、モデルの表現能力が高い反面、学習データの特徴に過度に特化してしまう「過学習」と呼ばれる問題があることが従来指摘されてきた。しかしながら、近年の学習データ量が過学習の問題の回避を可能にするレベルにまで増大しつつある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ren Wu, Shengen Yan, Yi Shan, Qingqing Dang, and Gang Sun, "Deep Image: Scaling up Image Recognition", arXiv:1501.02876v2.
【非特許文献２】C. M. Bishop, "Neural Networks for Pattern Recognition", p267-268, Clarendon Press (1996).
【非特許文献３】Y. Nesterov, "A method for unconstrained convex minimization problem with the rate of convergence o(1/k2)". Doklady ANSSSR (translated as Soviet.Math.Docl.), vol. 269, pp. 543-547 (1983).
【非特許文献４】I. Sutskever, "Training Recurrent neural Networks", PhD Thesis, (2013).
【非特許文献５】J. Dean, et al., "Large Scale Distributed Deep Networks", NIPS 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＮＮは認識性能において大きな利点があるが、学習時間が長大であるという弱点を併せ持っている。ソーシャルネットワークに関するデータや、自動運転に関係するデータなどは今後とも増加の一途をたどるものの一例であるが、いつか学習時間が膨大になりすぎて、実質的な時間内に学習が終了しない可能性も充分に考えられる。場合によっては、学習に年単位の時間を要することも考えられる。こうなった場合、製品化は現実的ではなく、認識性能で劣るＣＮＮ以外のアルゴリズムの使用を余儀なくされることにもなり兼ねない。すなわち、ニューラルネットワーク学習の抜本的高速化は、産業応用にとって極めて重要な課題である。
【０００６】
本発明はこのような問題点に鑑みてなされたものであり、本発明の課題は、より高速にニューラルネットワーク用のパラメタを更新できる学習システムおよび学習方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、複数の微分値算出部と、パラメタ更新部とを備え、ニューラルネットワーク用のパラメタを更新する学習システムであって、前記複数の微分値算出部のそれぞれは、互いに同期することなく、前記パラメタ更新部からある時点でのパラメタを受信し、前記受信したパラメタに基づいて、前記パラメタの更新に用いられる微分値を算出し、前記微分値を前記パラメタ更新部に送信し、前記パラメタ更新部は、前記微分値算出部から前記微分値を受信し、前記複数の微分値算出部による微分値算出と同期することなく、受信した前記微分値に基づいて前記パラメタを更新し、更新後の前記パラメタを前記複数の微分値算出部に送信し、前記微分値算出部は、前記微分値を算出する際、前記パラメタの受信時点から、算出した微分値が前記パラメタ更新部によって前記パラメタの更新に用いられるまでの間に前記パラメタが更新される回数に対応するステイルネスを考慮して、前記微分値を算出する、学習システムが提供される。
非同期型の分散方式において、ステイルネスを考慮するため、高速にパラメタを更新できる。
【０００８】
前記微分値算出部は、前記ステイルネスを考慮して、算出した微分値が前記パラメタ更新部によって前記パラメタの更新に用いられる際のパラメタの予測値を算出し、該予測値を微分して前記微分値を算出するのが望ましい。
この場合、前記微分値算出部は、前記ある時点でのパラメタと、前記ある時点より過去の時点でのパラメタと、前記ステイルネスと、に基づいて、前記予測値を算出するのが望ましい。
具体的には、前記ある時点τでのパラメタをＷ(τ)とし、前記ある時点より過去の時点（τ−１）でのパラメタをＷ(τ-1)とし、前記ステイルネスをｓnとし、γ∈（０，１）とするとき、前記予測値Ｐ(τ)は、
【数１】
2018106489.tif 000003
であってもよい。
受信したパラメタそのものではなく、更新に用いられる際のパラメタに近い予測値を微分するため、高速にパラメタを更新できる。
【０００９】
前記微分値算出部は、学習が進むにつれて前記γを大きな値としてもよい。
あるいは、前記パラメタ更新部は、前記微分値に学習係数を乗じた値を用いて前記パラメタを更新し、学習が進むにつれて前記学習係数を大きな値としてもよい。
また、前記パラメタ更新部は、学習の開始から所定回パラメタ更新が行われるまでは、前記パラメタの更新量の絶対値またはノルムが所定値を超えないよう、更新量を調整してもよい。
このようにすることで、学習初期に目的関数が不安定となるのを抑制できる。
【００１０】
また、本発明の別の態様によれば、ニューラルネットワーク用のパラメタを更新する学習方法であって、複数の微分値算出部のそれぞれが、互いに同期することなく、パラメタ更新部からある時点でのパラメタを受信するステップと、前記受信したパラメタに基づいて、前記パラメタの更新に用いられる微分値を算出するステップと、前記微分値を前記パラメタ更新部に送信するステップと、前記パラメタ更新部が、前記微分値算出部から前記微分値を受信するステップと、前記複数の微分値算出部による微分値算出と同期することなく、受信した前記微分値に基づいて前記パラメタを更新するステップと、更新後の前記パラメタを前記複数の微分値算出部に送信するステップと、を備え、前記微分値算出部が前記微分値を算出するステップでは、前記パラメタの受信時点から、算出した微分値が前記パラメタ更新部によって前記パラメタの更新に用いられるまでの間に前記パラメタが更新される回数に対応するステイルネスを考慮して、前記微分値を算出する、学習方法が提供される。
【発明の効果】
【００１１】
ステイルネスを考慮するため、高速にパラメタを更新できる。
【図面の簡単な説明】
【００１２】
【図１】ＣＮＮ構造の一例を模式的に示す図。
【図２】ＮＡＧ法によるパラメタ更新を説明する図。
【図３】同期型における微分値算出およびパラメタ更新のタイミングを模式的に説明する図。
【図４】非同期型における微分値算出およびパラメタ更新のタイミングを模式的に説明する図。
【図５】一実施形態に係る分散方式の学習システムの一構成例を示す概略ブロック図。
【図６】本実施形態におけるパラメタ更新を説明する図。
【図７】本発明による誤差ｄ１と、従来法による誤差ｄ２とを比較したグラフ。
【図８】学習を繰り返し行った際のエラー率の遷移を示すグラフ。
【発明を実施するための形態】
【００１３】
以下、本発明に係る実施形態について、図面を参照しながら具体的に説明する。
【００１４】
図１は、ＣＮＮ構造の一例を模式的に示す図である。ＣＮＮは、１または複数の畳み込み層１２１およびプーリング層１２２の組と、多層ニューラルネットワーク構造１２３とを備えている。初段の畳み込み層１２１に認識対象（以下、画像データとする）が入力される。そして、多層ニューラルネットワーク構造１２３から認識結果が出力される。
【００１５】
畳み込み層１２１は、入力される画像データ（初段の畳み込み層１２１にあっては認識対象の画像データ、２段目以降の畳み込み層１２１にあっては後述する特徴マップ）に対してフィルタ２１ａを適用して畳み込みを行い、次いで非線形写像を行う。フィルタ２１ａは複数ピクセルの要素を持つ重みであり、各重みはバイアスを含んでいてもよい。
【００１６】
プーリング層１２２は、畳み込み層１２１からの画像データの解像度を下げるプーリング操作を行い、特徴マップを生成する。
【００１７】
多層ニューラルネットワーク構造１２３は、入力層２３１と、１または複数の隠れ層２３２と、出力層２３３とを有する。入力層２３１には最終段のプーリング層１２２からの特徴マップが入力される。隠れ層２３２は重みを用いて積和演算を行う。出力層２３３はＣＮＮ処理の最終結果を出力する。
【００１８】
畳み込み層１２１におけるフィルタ２１ａの重みや、隠れ層２３２における重みがニューラルネットワーク用のパラメタであり、事前に学習しておく必要がある。ここでの学習とは、認識対象の画像データが入力されたときにＣＮＮが理想の出力を返すようパラメタを更新して最適化することであり、具体的には、所定の目的関数が最小値へ収束するまでパラメタの更新を反復的に行う。目的関数とはＣＮＮがどの程度理想的な出力値から離れているかを定量化した関数（例えば二乗誤差やクロスエントロピー）を全学習データ分だけ足し合わせた関数である。目的関数はパラメタの関数であり、目的関数が小さいほどよいＣＮＮであるといえる。
【００１９】
本実施形態では、目的関数を最小化する手法として、次に説明するミニバッチ確率的勾配法と呼ばれる勾配法の一種を踏襲する。学習には、認識の対象となる画像データと、それに対する理想的な出力値の組である学習データが多数用いられる。ミニバッチ確率的勾配法では、１回のパラメタ更新に全学習データを用いるのではなく、一部の学習データを用いる。ミニバッチとは１回のパラメタ更新に用いられる学習データの集合を指し、ミニバッチサイズとはミニバッチを構成する学習データの数を指す。
【００２０】
ミニバッチ確率的勾配法では、まず、全学習データからランダムに学習データを取り出してミニバッチを作成する。次いで、そのミニバッチを使って目的関数のパラメタに対する微分値を算出する。そして、微分値を用いてパラメタを更新する。以下、より詳しく説明する。
【００２１】
目的関数をＪ（ｘ；Ｗ）とする。ここで、ｘは入力データであり、Ｗはパラメタの集合である。ｔ回目の反復におけるパラメタをＷ(t)とすると、ミニバッチ確率的勾配法において、ｔ＋１回目のパラメタを得る更新式は次式によって与えられる。
【数２】
2018106489.tif 000004
【００２２】
ここで、ｘr(i,t)はデータセットの中のｒ(ｉ，ｔ）番目のデータを指し、ｒ(ｉ，ｔ）は時刻（反復回数の順番を示す番号のことを時刻とも表現する）tのパラメタ使用時においてi番目にランダムサンプリングしたデータインデックスを指す。ηは学習係数と呼ばれる正の数である。ｍはミニバッチサイズである。右辺第２項が微分値であり、そのまわりの括弧（［］）の右下には、パラメタ空間におけるポイントが示されており、このポイントにおいて微分が計算されることを意味している。更新式（１）においては、時刻ｔにおけるパラメタＷ(t)について括弧（［］）内に示す微分を行うことを示している。
【００２３】
更新式（１）はミニバッチを用いた最急降下法として知られている。つまり、右辺第２項のベクトルはミニバッチによって規定される目的関数Jを最も急峻に下る方向を持っている。
【００２４】
このようなミニバッチ確率的勾配法を用いて大規模なデータセットを学習することで、多層ニューラルネットワークは高い汎化性能（未知データに対する推定の精度）を獲得できる。
【００２５】
ミニバッチ確率的勾配法において、学習の収束速度を高める手法が既に検討されており、よく知られている２つの従来技術について説明する。
【００２６】
［モメンタム法］（非特許文献２参照）
パラメタ更新式は次式で与えられる。
【数３】
2018106489.tif 000005
【００２７】
Ｖはモメンタム項と呼ばれる項であり、過去に算出された目的関数の微分の加重平均である。荷重の度合いはモメンタム係数γ∈（０，１）によって調整され、通常０．９などの値が設定される。この更新式において、微分値の時系列相関がある場合、更新式において、モメンタム項Ｖが主要項であり、微分値が補正項であるとみなすことができる。
【００２８】
モメンタム法によれば、微分値が時刻ｔの近傍において高い相関を持つ場合に、一回あたりのパラメタ更新のステップ幅を大きく取れ、収束までの時間を短縮できる。
【００２９】
［ネステロフの加速勾配法（Nesterov Accelerated Gradient、以下ＮＡＧ法という）］（非特許文献３，４参照）
パラメタ更新式は次式で与えられる。
【数４】
2018106489.tif 000006
【００３０】
モメンタム法との違いは、パラメタ空間において微分値を算出するポイントである。モメンタム法では時刻ｔにおけるパラメタＷ(t)を用いて微分値を算出するのに対し、ＮＡＧ法ではＷ(t)＋γＶ(t)を用いて微分値を算出する（微分値まわりの括弧（［］）の右下参照）。すなわち、ＮＡＧ法では、まず過去のモメンタム項Ｖを主要項として加算し、その加算結果に対して補正項である微分値を算出して加算する。
【００３１】
ＮＡＧ法について、図２を用いてより詳しく説明する。同図は、時刻（ｔ−１）におけるパラメタＷ(t-1)（符号１１）を更新して時刻ｔにおけるパラメタＷ(t)（符号１２）が得られた後に、さらに時刻（ｔ＋１）におけるパラメタＷ(t+1)を得ることを説明している。上記（３）式より、パラメタＷ(t+1)は次式で表される。なお、目的関数Ｊの引数は省略している。
【数５】
2018106489.tif 000007
【００３２】
ここで、Ｐ(t)＝Ｗ(t)＋γＶ(t)とした。図２において、パラメタＷ(t-1)からパラメタＷ(t)に向かうベクトル（符号１３）がモメンタム項Ｖ(t)である。パラメタＷ(t)に主要項である重み付きのモメンタム項γＶ(t)（符号１４）を加算したポイントがＰ(t)（符号１５）である。
【００３３】
そして、主要項による変更を受けたＰ(t)において、補正項である微分値
【数６】
2018106489.tif 000008
を算出する。Ｐ(t)に重み付きの微分値（符号１６）
【数７】
2018106489.tif 000009
を加算することで、時刻（ｔ＋１）におけるパラメタＷ(t+1)（符号１７）が得られる。
【００３４】
多くの場合において、モメンタム法およびＮＡＧ法とも確率的勾配法を加速できることが経験的に知られている。以上のようなモメンタム法あるいはＮＡＧ法によって、ある程度学習の高速化が可能である。しかしながら、特にデータの数が非常に多い場合においては、まだ十分な高速化が実現できているとは言い難い。
【００３５】
そこで、本発明では、ＣＰＵやＧＰＵから構成される複数の計算機（ノードともいう）を高速な通信回線で接続した計算機クラスタを利用し、学習に必要な計算を分散処理させる方式（以下、分散方式という）を採用することで、学習時間をさらに短縮することを図る。
【００３６】
（第１の実施形態）
分散方式では、（１）「何を」通信するのか、（２）「何と」通信するのか、（３）「いつ」通信するのか、という観点での分類が可能である。
【００３７】
まず、「『何を』通信するのか」という観点では、「モデル並列」と「データ並列」の方式がある。モデル並列方式では、モデル自体が計算機間で分散化されており、ニューラルネットワークの中間変数が通信される。データ並列方式では、モデルの計算は単体の計算機に閉じており、各計算機で計算された微分値などが通信される。
【００３８】
データ並列方式は各計算機に異なるデータを処理させるため、多数のデータを一括に処理できる。ミニバッチ確率的勾配法を前提とする場合、ミニバッチ内でのデータ並列が理にかなうことから、本明細書ではデータ並列を主に想定している。
【００３９】
モデル並列方式はメモリに収まらないような巨大なニューラルネットワークを扱うときに有用である。よってモデル並列方式は用途が特殊であるため、本明細書では説明しないが、本発明は後述する「古いパラメタ」の使用において効果を有するものであり、モデル並列方式にもデータ並列方式にも適用可能である。
【００４０】
次に、「『誰と』通信するのか」という観点では、パラメタを管理する「パラメタサーバ」と微分計算を行う「ワーカノード」との間で一対一通信を使う方式（例えば非特許文献５）と、パラメタサーバを設けず全ワーカノード間で全体通信（全対全の通信）を使う方式とがある。前者では、ワーカノードはパラメタサーバとのみ通信し、ワーカ−ノード間の通信は原則行わない。本発明はどちらの方式でも適用可能である。
【００４１】
そして、「『いつ』通信するのか」という観点では、同期型と非同期型の方式がある。
【００４２】
図３は、同期型における微分値算出およびパラメタ更新のタイミングを模式的に説明する図である。同期型では、ノードどうしが同期して微分計算を行う。具体的には、最も計算が遅いノードが微分値を算出するのを待ち、全ノードからの微分値を用いてパラメタを更新し、更新された新しいパラメタを用いて全ノードが次の微分計算を一斉に開始する、というのが基本的な流れである。このように同期型では、ノードに待ちが発生するという非効率さがあり、更新頻度は低い。
【００４３】
一方、同期型では、微分値算出とパラメタ更新の順列性が守られるため、通常のミニバッチ確率法における更新式は次式で表される。
【数８】
2018106489.tif 000010
【００４４】
ｋは計算ノードが一括に処理するデータの数である。ｒ（ｉ，ｎ，ｔ）はノードｎが時刻ｔのパラメタ使用時においてｉ番目にランダムサンプリングしたデータインデックスを指す。＃ｎｏｄｅｓは微分値の算出を行うノードの台数である。単一ノード使用時における更新式（１）との違いは、微分をノード台数分足し合わせている点にすぎない。この時、ミニバッチサイズは＃ｎｏｄｅｓ×ｋで与えられる。
【００４５】
よって、同期型では、ミニバッチを用いた最急降下法である更新式（１）が厳密に実行され、目的関数Ｊ（ｘ；Ｗ）は単調に減少する。また、モメンタム法あるいはＮＡＧ法を適用した場合においても上記更新式（２）または（３）が厳密に実行される。したがって、いずれにしても同期型では収束保障があり、１回の更新における目的関数Ｊ（ｘ；Ｗ）の降下速度は大きい。
【００４６】
図４は、非同期型における微分値算出およびパラメタ更新のタイミングを模式的に説明する図である。非同期型では、ノードどうしが非同期で微分値算出およびパラメタ更新を行う。非同期型では、全ノードが微分値の算出を終了するのを待つことなくパラメタ更新を行うし、各ノードが互いに同期することなく、間断なく微分値の算出を反復する。このため、ノードに待ちが発生せず高効率に稼働させることでき、更新頻度は高い。
【００４７】
一方で、非同期型では、あるノードが微分値を算出している途中でパラメタ更新が行われることを許容するため、各ノードが保持しているパラメタは徐々に古くなっていく。すなわち、微分値を算出する際に古いパラメタを用いることが、同期型とは大きく異なる。このことを考慮し、ミニバッチ確率法における更新式は例えば次式で表される。
【数９】
2018106489.tif 000011
【００４８】
同期型における更新式（４）との違いは、微分値の算出を行うパラメタの時刻τが現在の時刻ｔよりも古いことである。τはノード毎に異なっていてもよい。なお、本明細書では、時刻に遅れのあるパラメタが微分値算出に使用されているものは、たとえ大多数の計算機が同期型の更新則を使用していたとしても、全て非同期型に分類する。
【００４９】
パラメタの古さのため、更新式（５）における第２項のベクトルは最急降下の方向を持つことを保障できない。したがって、非同期型における更新式（５）は厳密な最急降下法ではなく、１回の更新あたりの目的関数Ｊ（ｘ；Ｗ）の降下速度は同期型に比べると小さい。ただし、理論的収束保障があるわけではないが、実質的に問題はないとも報告されている（非特許文献５）。
【００５０】
以上のように、通常の同期型の場合は、１回の更新における目的関数Ｊ（ｘ；Ｗ）の降下速度が大きいというメリットがある一方、更新頻度が低いというデメリットがある。これに対し、通常の非同期型の場合は、更新頻度が高いというメリットがある一方、１回の更新における目的関数Ｊ（ｘ；Ｗ）の降下速度が小さいというデメリットがある。
【００５１】
したがって、非同期型において、１回の更新における目的関数Ｊ（ｘ；Ｗ）の降下速度を大きくできれば、非同期型の学習を高速化できる。そこで、本発明では、非同期型の分散方式を前提とし、次のように従来のＮＡＧ法をステイルネスのある学習に拡張する。
【００５２】
図５は、一実施形態に係る分散方式の学習システムの一構成例を示す概略ブロック図である。学習システムは互いに通信可能な複数のノード１から構成され、そのそれぞれが微分値算出部２と、パラメタ更新部３とを有する。微分値算出部２は例えばＧＰＵ（Graphics Processing Unit）であり、ある時刻におけるパラメタの微分値を算出する。パラメタ更新部３は例えばＣＰＵ（Central Processing Unit）であり、算出された微分値を用いて勾配法によりパラメタの更新を行う。
【００５３】
非同期型の分散方式においては、学習システムが複数の微分値算出部２を備え、そのそれぞれが互いに同期することなく、パラメタ更新部３からパラメタを受信して微分値を算出し、パラメタ更新部３に送信する。また、パラメタ更新部３は微分値を受信し、微分値算出部２による微分値算出とは同期することなく、言い換えると、全微分値算出部２からの微分値受信を待つことなく、受信した微分値を用いてパラメタ更新を行い、各微分値算出部２に送信する。
【００５４】
非同期型の分散学習方法では、微分値算出において古いパラメタの使用を余儀なくされる。古いパラメタで計算した微分値を使用して新しいパラメタを更新するが、その微分値は本来使用すべき微分値（新しいパラメタで計算された微分）とは厳密には一致しないことが、１回の更新における目的関数Ｊの降下速度を小さくしている。微分を計算する際のパラメタが古ければ古いほど、より微分の近似の精度が悪くなり、１回の更新あたりの目的関数Ｊの降下速度が減少すると考えられる。
【００５５】
つまり、微分値を算出するのに使ったパラメタＷ(τ)と、その微分値を使って更新を実施する際のパラメタＷ(t)との距離（例えば||Ｗ(τ)−Ｗ(t)||2）が、微分の近似精度を特徴づける１つの指標と考えられる。本発明では、この距離を小さくすることで、微分の近似精度を高める。
【００５６】
微分値算出部２がパラメタを受信した際に、微分値を受け渡す未来の時点でのパラメタを予測し、予測したポイントで微分値算出を行うことを考える。ただし、予測そのものの計算に多大な時間が掛かっていては、学習が高速化されないため、できる限り少ない演算量で予測を行う必要がある。
【００５７】
以下、非同期型の確率的勾配法において、時刻ｔからｔ＋１へのパラメタ更新を考える。なお、微分値を提供する微分値算出部２が保持しているパラメタの時刻番号τは当然時刻ｔ以下である。以下、完全非同期（微分値算出とパラメタ更新の同期が一切行われない方式）の場合を考える。パラメタの古さをステイルネス（staleness）ｓと呼ぶ。ステイルネスｓは、微分値算出部２がパラメタを受信した時点から、微分値算出部２が算出した微分値がパラメタ更新部３によってパラメタの更新に用いられるまでの間にパラメタが更新される回数である。例えば、微分値算出周期とパラメタ更新周期とが一致する非同期システムにおいては、常に２期の遅れがあるためｓ＝２である。
【００５８】
本発明では、更新式を次のようにする。
【数１０】
2018106489.tif 000012
【００５９】
ｓnはｎ番目の微分値算出部２におけるステイルネスである。ステイルネスｓnは微分値算出部２ごとにパラメタの古さを観測した上で決定してもよい。あるいは、全微分値算出部２においてステイルネスがほぼ共通する場合、ｓnは平均ステイルネスの切り下げ、切り上げまたは四捨五入によって固定値としてもよい。
【００６０】
この更新式（６）は、非同期型の分散システムにＮＡＧ法を適用したものである。ただし、単に適用したというだけではなく、ステイルネスｓnを考慮した点が本発明の大きな特徴である。更新式（６）では、重み更新の主要項も用いてステイルネスｓn分未来のパラメタを予測している。より具体的には、現時刻のモメンタムに現在から順番にγ∈（０，１）のべき乗の重みを付けたものを足し合わせた
【数１１】
2018106489.tif 000013
を、時刻τのパラメタＷ(τ)に加算したものが、Ｐ(τ)である。Ｐ(τ)を算出することは、時刻τにおいて、時刻ｔから更に更新の主要項であるモメンタム項による変更を受けたパラメタを予測することに対応しており、この意味において本明細書ではＰ(τ)を予測値とも称する。すなわち、本発明における予測値Ｐ(τ)はステイルネスｓnに依存し、下式で表される。
【数１２】
2018106489.tif 000014
【００６１】
図６を用いてより詳しく説明する。同図では、微分値算出周期がパラメタ更新周期と等しく、したがって、ステイルネスｓn＝２（つまり、ｔ−τ＝２）である例を示している。
【００６２】
図６（ａ）はパラメタ更新部３の処理を説明している。例えば、パラメタ更新部３が時刻（τ−２）〜（τ−１）にかけてパラメタ更新を行い、時刻（τ−１）においてパラメタＷ(τ-1)が得られている。以下同様に、時刻τ，（τ＋１），（τ＋２），（τ＋３）において、パラメタＷτ，Ｗ(τ+1)，Ｗ(τ+2)，Ｗ(τ+3)がそれぞれ得られている。
【００６３】
図６（ｂ）は、ある１つの（番号ｎの）微分値算出部２がパラメタＷ(τ)を受信し、微分値を算出してパラメタ更新部３に送信することを示している。
【００６４】
そして、図６（ｃ）は、時刻ｔから時刻（ｔ＋１）へのパラメタ更新を示している。より具体的には、微分値算出部２がパラメタＷ(τ)を使って微分値を算出し、この微分値を使ってパラメタ更新部３がパラメタＷ(t)を更新してパラメタＷ(t+1)を得る様子を示している。なお、ｓ＝２であるから、Ｗ(t)＝Ｗ(τ+2)であり、Ｗ(t+1)＝Ｗ(τ+3)である。
【００６５】
詳細には次の通りである。微分値算出部２はパラメタＷ(τ)（符号２２）を受信すると、モメンタム項Ｖ(τ)（符号２１）を用いて、上記（７）式に基づいて予測値Ｐ(τ)（符号２３）を算出する。この予測値Ｐ(τ)はパラメタＷ(τ-1)からパラメタＷ(τ)に向かう直線上にある。すなわち、微分値算出部２は、ある時点τのパラメタＷ(τ)と、その前の時点（τ−１）でのパラメタＷ(τ-1)とから、線形に予測値Ｐ(τ)を算出する。
【００６６】
なお、ステイルネスｓnが大きいほど、予測値Ｐ(τ)とパラメタＷ(τ)との距離は大きくなる。ステイルネスｓnが大きいほど、すなわち時刻τと時刻ｔとの差が大きいほど、時刻ｔにおいてパラメタＷ(τ)が大きく更新されているためである。
【００６７】
続いて、微分値算出部２は予測値Ｐ(τ)の微分値
【数１３】
2018106489.tif 000015
を算出する（符号２４の矢印、学習係数ηは省略した）。この予測値Ｐ（τ）は後述する符号２３’で示すポイントを予測したものである。
【００６８】
このようにして微分値算出部２が微分値の算出を完了した時点で、パラメタ更新部３はパラメタＷ(τ+1)の算出を終えており、Ｗ(τ+2)を得るべくＷ(τ+1)を更新している最中である。その後、時刻（τ＋２）（＝τ＋ｓn）でパラメタＷ(τ+2)が得られる（図６（ａ），（ｂ）参照）。
【００６９】
その後、パラメタ更新部３は微分値算出部２から上記微分値を受信する。そして、パラメタ更新部３は、パラメタＷ(τ+2)にモメンタム項γＶ(τ+2)を加算したポイント（符号２３’）に微分値（符号２４’の矢印）をさらに加算してパラメタＷ(τ+2)を更新し、パラメタＷ(τ+3)を得る（符号２５）。
【００７０】
このように、微分値算出部２は、受信した時刻τにおけるパラメタＷ(τ)をそのまま微分するのではなく、予測値Ｐ(τ)を算出してその微分値を算出する。本発明ではポイント２３’を予測しており、その予測値がＰ(τ)（符号２３）である。すなわち、本来であればポイント２３’での微分を用いるべきところ、予測値Ｐ(τ)での微分を用いており、これらの距離ｄ１が誤差である。一方、このような予測を行わない従来法では、本来であればパラメタＷ(t)での微分を用いるべきところ、パラメタＷ(τ)での微分を用いており、これらの距離ｄ２が誤差となる。
【００７１】
図７は、ステイルネスｓが４５である非同期型分散学習システムにおいて、本発明による誤差ｄ１と、従来法による誤差ｄ２とを比較したグラフである。なお、従来法は非同期のモメンタム法とし、パラメタＷ(τ)を微分値算出に使用した。図示のように、従来法における誤差ｄ２に比べ、本発明では誤差ｄ１を１／３４程度まで小さくすることができている。すなわち、微分値を算出するのに使うパラメタＷ(τ)と、その微分値を使って更新を実施するパラメタＷ(t)との距離（誤差）を小さくすることができ、微分の近似精度を高めることができる。
【００７２】
なお、更新式（７）では、２つの連続するパラメタＷ(τ-1)，Ｗ(τ)から線形に予測値Ｐ(τ)を算出する例を示した。しかしながら、微分値算出部２は、時刻τ以前の連続または非連続の任意の数のパラメタを用いて線形または非線形に予測値Ｐ(τ)を算出してもよい。
【００７３】
例えば、微分値算出部２は、３つの連続するパラメタＷ(τ-2)，Ｗ(τ-1)，Ｗ(τ)から２次関数を用いて予測値Ｐ(τ)を算出してもよい。この場合、予測値Ｐ(τ)は３点Ｗ(τ-2)，Ｗ(τ-1)，Ｗ(τ)を通る２次関数上にあり、パラメタＷ(τ)と予測値Ｐ(τ)との距離がステイルネスｓに応じて定まる。いずれにしても、微分値算出部２は、少なくとも２つのパラメタ（ある時点のパラメタと、それより過去の時点のパラメタ）に加え、ステイルネスｓも用いて予測値Ｐ(τ)を算出すればよい。
【００７４】
別の例として、線形予測であるが、下式に基づいて予測値Ｐ(τ)を算出してもよい。
【数１４】
2018106489.tif 000016
ここで、ｃはモメンタム係数であり、例えば次のようにして最適な値が設定される。本番の学習に先立って予備の学習を実施し、パラメタの時系列変化を取得し保存しておく。すると、図６（ｃ）に示す誤差ｄ１を最小とするモメンタム係数ｃを線形最小二乗法によって推定できる。本番の学習と同様の学習システムで予備の学習を行うことで、ステイルネスが反映された最適なモメンタム係数ｃが得られる。あるいは、本番の学習時にモメンタム係数ｃを推定してもよい。このようにして設定されたモメンタム係数ｃを本番の学習で使用することによって高速化を図れる。
【００７５】
このように、第１の実施形態では、非同期型の分散処理において、ステイルネスｓを考慮して微分値を算出する。そのため、非同期であっても、すなわち微分を行う時点のパラメタと、パラメタ更新時のパラメタとが一致しない場合であっても、微分の近似精度が向上する。結果として、目的関数の降下速度が大きくなり、高速にパラメタを更新できる。
【００７６】
（第２の実施形態）
第１の実施形態の改善について説明する。学習の初期においては、微分値の絶対値が大きい値となることもある。そうすると、学習の初期においてパラメタの更新が不安定になりかねない。具体的には、目的関数の変動が大きくなりすぎて降下速度が小さくなることや、目的関数の値が無限大に発散してしまうなどといったことが起こらないとも限らない。
【００７７】
経験上、こういった不安定性は学習初期に特有であり、学習の中盤や後半では問題にはならない。学習初期の不安定性の改善には、次のような方法を採用するのが望ましい。
【００７８】
第１例として、パラメタ更新部３が微分値に学習係数ηを乗じた値を用いてパラメタ更新を行う際、学習係数ηを学習初期は小さい値としておき、学習が進むにつれて徐々に大きくして目的の値まで変化させることが考えられる。これはパラメタ更新のステップ幅を学習初期において低減することを意味しており、予測するパラメタの範囲を比較的小さい範囲にとどめることが出来る。結果として不安定性改善に効果的である。
【００７９】
第２例として、微分値算出部２が学習初期はモメンタム係数γを小さい値としておき、学習が進むにつれて徐々に大きくして目的の値まで変化させることが考えられる。この場合、学習初期においては、モメンタム項Ｖの効果が小さく、非同期の基本的な更新式がより近似的に実現されるため、安定性が期待できる。
【００８０】
第１例および第２例とも、微分値が「暴れる」可能性がある学習初期を通過した後は目的の値に達することが望ましい。
【００８１】
第３例として、学習の初期は安定的動作が可能な学習法（例えば同期型の学習法）を事前学習として適用し、学習初期を通過した後は、上述した第１の実施形態に係るパラメタ更新を行ってもよい。
【００８２】
第４例として、第１の実施形態に係るパラメタ更新を学習初期から適用するが、得られたパラメタの更新量の絶対値がある値を超えないように閾値操作を適用してもよい。
【００８３】
第５例として、第１の実施形態に係るパラメタ更新を学習初期から適用するが、得られたパラメタの更新量のノルムがある値を超えないように、更新量をリスケールしてもよい。
【００８４】
なお、第１〜第５例のうちの任意の２以上を組み合わせてもよい。
このように、第２の実施例では、学習初期に目的関数が不安定となるのを抑制できる。
【実施例】
【００８５】
図８は、学習を繰り返し行った際のエラー率の遷移を示すグラフである。横軸は時刻あるいは更新回数である。縦軸はエラー率すなわち認識の不正解率である。曲線ｆ１が第１の実施形態に第２の実施形態における第１例を適用した結果である。曲線ｆ２〜ｆ４は参考であり、順に、非同期型モメンタム法、同期型モメンタム法および同期型ＮＡＧ法の結果である。ミニバッチサイズをほぼ共通（約２５６）とし、ＣＮＮ構造は、１０層の畳み込み層、１層の全結合層および５層のプーリング層とした。
【００８６】
図示のように、例えばエラー率２０％を目標とすると、本発明に基づく曲線ｆ１は他の曲線ｆ２〜ｆ４より短時間（曲線ｆ３の約半分）で目標に達した。このことから、本発明の有用性が示された。
【００８７】
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうることである。したがって、本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲とすべきである。
【符号の説明】
【００８８】
１  ノード
２  微分値算出部
３  パラメタ更新部
【図１】
2018106489.tif 000018
【図２】
2018106489.tif 000019
【図３】
2018106489.tif 000020
【図４】
2018106489.tif 000021
【図５】
2018106489.tif 000022
【図６】
2018106489.tif 000023
【図７】
2018106489.tif 000024
【図８】
2018106489.tif 000025