JP2020119151A - 学習装置、学習方法およびプログラム - Google Patents

学習装置、学習方法およびプログラム Download PDF

Info

Publication number
JP2020119151A
JP2020119151A JP2019008649A JP2019008649A JP2020119151A JP 2020119151 A JP2020119151 A JP 2020119151A JP 2019008649 A JP2019008649 A JP 2019008649A JP 2019008649 A JP2019008649 A JP 2019008649A JP 2020119151 A JP2020119151 A JP 2020119151A
Authority
JP
Japan
Prior art keywords
learning
gradient
partial
noise
calculated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019008649A
Other languages
English (en)
Other versions
JP7021132B2 (ja
Inventor
武 戸田
Takeshi Toda
武 戸田
耕祐 春木
Kosuke Haruki
耕祐 春木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2019008649A priority Critical patent/JP7021132B2/ja
Priority to US16/553,223 priority patent/US11526690B2/en
Publication of JP2020119151A publication Critical patent/JP2020119151A/ja
Application granted granted Critical
Publication of JP7021132B2 publication Critical patent/JP7021132B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Machine Translation (AREA)
  • Feedback Control In General (AREA)
  • Image Analysis (AREA)

Abstract

【課題】目的関数の形状に合わせた効率的な平滑化を行う。【解決手段】学習装置は、生成部と、算出部と、を備える。生成部は、目的関数を用いてニューラルネットワークのパラメータを学習するための複数回の学習処理にそれぞれに用いる複数の学習データを生成する。算出部は、複数の学習データの少なくとも一部の学習データに対して、学習データを分割して得られる部分データに対する目的関数のパラメータに関する勾配である部分勾配を、他の学習データに対して算出された部分勾配に基づいて算出されるノイズが加えられたパラメータ、および、部分データを用いて算出する。【選択図】図3

Description

本発明の実施形態は、学習装置、学習方法およびプログラムに関する。
近年、機械学習の1つであるディープラーニングによるデータの有効活用が期待されている。ディープラーニングにおいては、一般的にミニバッチを用いた確率的勾配降下法(Stochastic Gradient Descent:SGD)による最適化が用いられる。また、最適化するパラメータ(重みなど)に一様乱数のノイズを加えることにより、目的関数を平滑化して最適化する技術が提案されている。
Wei Wen et al., "SmoothOut: Smoothing Out Sharp Minima to Improve Generalization in Deep Learning",arXiv: 1805.07898, 2 December 2018
しかしながら、従来技術では、目的関数を効率的に平滑化できない場合があった。例えば一様乱数のノイズ、言い換えると等方性のノイズを用いる技術は、目的関数の形状に合わせたノイズを付与することができないため、効率的な平滑化ができない場合があった。
実施形態の学習装置は、生成部と、算出部と、を備える。生成部は、目的関数を用いてニューラルネットワークのパラメータを学習するための複数回の学習処理にそれぞれに用いる複数の学習データを生成する。算出部は、複数の学習データの少なくとも一部の学習データに対して、学習データを分割して得られる部分データに対する目的関数のパラメータに関する勾配である部分勾配を、他の学習データに対して算出された部分勾配に基づいて算出されるノイズが加えられたパラメータ、および、部分データを用いて算出する。
バッチサイズ、ノイズ、および、目的関数の平滑化の関係を示す図。 ノイズの算出方法の概念を示す図。 第1の実施形態にかかる情報処理システムのブロック図。 部分勾配、全体勾配、および、重みの関係の例を示す図。 算出対象の例を示す図。 算出対象の例を示す図。 第1の実施形態におけるパラメータ更新処理のフローチャート。 第1の実施形態における情報処理のフローチャート。 第2の実施形態にかかる学習システムのブロック図。 部分勾配、全体勾配、および、重みの関係の例を示す図。 第1または第2の実施形態にかかる学習装置のハードウェア構成図。
以下に添付図面を参照して、この発明にかかる学習装置の好適な実施形態を詳細に説明する。
上記のように、SGDなどのニューラルネットワークの学習では、学習データ全体から抽出された一部のデータであるミニバッチが用いられる場合がある。例えば複数のミニバッチを用いて学習を並列に実行すれば、学習処理を高速に実行可能となる。
大規模な学習データを用いた学習をより高速に実行するには、並列演算するミニバッチサイズ(以降バッチサイズ)を大きくすればよい。しかし大バッチサイズの学習ではモデルが汎化誤差の大きな局所解に陥る場合がある。
図1は、バッチサイズ、ノイズ、および、目的関数の平滑化の関係の一例を示す図である。目的関数は、学習処理で最適化(最小化、または、最大化)の対象となる関数である。目的関数は、損失関数などと呼ばれる場合がある。SGDなどの学習方法では、目的関数の勾配が算出され、勾配の方向に基づいてパラメータが更新される。勾配は、例えば、目的関数の、当該パラメータに関する一階微分を表す。更新されるパラメータはどのような情報であってもよい。例えばニューラルネットワークの学習の場合、ニューラルネットワークの重み(重み係数)およびバイアスなどがパラメータとなる。以下では、主にパラメータとして重みを用いる場合を例に説明する。
グラフ11は、元の目的関数の例を示す。グラフ12は、SGDのバッチサイズを小さくした場合(小バッチサイズ)のノイズの変化の例を示す。グラフ13は、SGDのバッチサイズを大きくした場合(大バッチサイズ)のノイズの変化の例を示す。グラフ14および15は、それぞれ、小バッチサイズおよび大バッチサイズを用いたSGDで平滑化される目的関数の例を示す。
小バッチサイズのSGDでは、勾配に含まれるノイズ成分により目的関数が平滑化されることで(グラフ14)、汎化誤差の小さな解に到達することが可能となる。これに対して、大バッチサイズのSGDでは、勾配に含まれるノイズ成分が小バッチサイズと比較して小さくなることで平滑化効果も小さくなり(グラフ15)、汎化誤差の大きな局所解に陥る場合がある。また、SGDのノイズは目的関数に応じた指向性を持つことが知られている。
(第1の実施形態)
第1の実施形態にかかる学習装置は、SGDによる最適化を行う場合に、ミニバッチの勾配算出過程で得られる部分勾配を用いて重みに一時的なノイズを加えて次のミニバッチの部分勾配を算出する。本実施形態では、一様乱数ではなく、部分勾配に含まれるノイズ成分(異方性のノイズ)を利用する。このため、目的関数の形状に対して適当な方向へのノイズを付与すること、すなわち、目的関数に合わせた効率的な平滑化を行うことができる。
図2は、本実施形態によるノイズの算出方法の概念を示す図である。図2の上部は、小バッチサイズ(例えば画像4枚)および大バッチサイズ(例えば画像8枚)の学習データをニューラルネットワークに入力して学習する場合に、複数の画像の勾配の平均が、学習データ全体に対する勾配として用いられることを示す。図2の例では、画像4枚の小バッチサイズの場合は、画像4枚の勾配の平均が、学習データの勾配として算出される。また、画像8枚の大バッチサイズの場合は、画像8枚の勾配の平均が、学習データの勾配として算出される。前者はノイズが大きくなるが、後者はノイズが小さくなる。
本実施形態の学習装置は、大バッチサイズの学習データの勾配(Large−Batch勾配)は、小バッチサイズの複数の学習データの勾配(Small−Batch勾配1、2)の平均とみなし、この関係に基づいて、小バッチサイズの学習データの勾配を算出するときに用いるノイズを算出する。以下では、大バッチサイズの学習データをミニバッチとし、ミニバッチをさらに分割した複数の学習データを部分ミニバッチ(部分データ)という。例えば、ミニバッチの勾配(Large−Batch勾配)に対する、各部分ミニバッチの勾配(Small−Batch勾配1、2)の差分に基づく値が、ノイズとして算出される。
図3は、第1の実施形態にかかる情報処理システムの構成例を示すブロック図である。図3に示すように、情報処理システムは、学習装置100と、情報処理装置200と、を含む。学習装置100および情報処理装置200は、例えば通信ネットワークおよび専用の通信線などを介して接続される。通信ネットワークは、有線ネットワーク、無線ネットワーク、および、インターネットなどの、どのような形態の通信ネットワークであってもよい。学習装置100および情報処理装置200の少なくとも一方は、例えば、CPU(Central Processing Unit)などのプロセッサを備えるコンピュータであるサーバ装置などにより実現してもよい。サーバ装置は、クラウド上で処理を実行するクラウドサーバであってもよい。
学習装置100は、ニューラルネットワークを学習する装置である。情報処理装置200は、学習されたニューラルネットワークを用いた処理(認識処理、分類処理など)を実行する装置である。学習装置100と情報処理装置200とは別の装置である必要はなく、例えば学習装置100が情報処理装置200の機能を備えてもよい。
学習装置100は、生成部101と、算出部102と、更新部103と、出力制御部104と、記憶部121と、を備えている。
生成部101は、ニューラルネットワークの学習に用いる学習データを生成する。生成部101は、例えば複数の学習データ(オリジナルの学習データ)から一部をサンプリングしたミニバッチを複数生成する。各ミニバッチは、複数の学習データを含む。このミニバッチが、ニューラルネットワークのパラメータを学習するための複数回の学習処理にそれぞれに用いられる。
算出部102は、ニューラルネットワークのパラメータの学習時に用いられる各種情報を算出する。例えば算出部102は、ミニバッチを分割した部分ミニバッチに対する、目的関数の勾配を算出する。以下では、部分ミニバッチに対して算出される勾配を部分勾配という場合がある。また算出部102は、部分勾配を用いて、ミニバッチ全体に対する勾配を算出する。以下では、ミニバッチ全体に対して算出される勾配を全体勾配という場合がある。また算出部102は、重みに対して加えるノイズを算出する。部分勾配、全体勾配、および、ノイズの算出方法の詳細については後述する。
更新部103は、算出部102による算出結果を用いて重みを更新する。重みの更新方法の詳細については後述する。
出力制御部104は、学習装置100による各種情報の出力を制御する。例えば出力制御部104は、学習されたニューラルネットワークのパラメータを出力する。出力方法はどのような方法であってもよいが、例えば出力制御部104は、ニューラルネットワークのパラメータを、通信ネットワークを介して情報処理装置200に出力する。
記憶部121は、学習装置100による各種処理で用いられる各種情報を記憶する。例えば記憶部121は、学習の対象となるニューラルネットワークのパラメータ、および、ニューラルネットワークの学習に用いる学習データなどを記憶する。
学習装置100の各部(生成部101、算出部102、更新部103、および、出力制御部104)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPUなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
次に情報処理装置200の構成について説明する。情報処理装置200は、受付部201と、情報処理部202と、記憶部221と、を備えている。
受付部201は、情報処理装置200による各種処理で用いる各種情報の入力を受け付ける。例えば受付部201は、学習装置100から出力されたニューラルネットワークのパラメータを受け付ける。
情報処理部202は、ニューラルネットワークを用いた情報処理を実行する。情報処理は、例えば、ニューラルネットワークを用いた画像認識処理および画像分類処理などである。情報処理はこれに限られず、ニューラルネットワークを用いた処理であればどのような処理であってもよい。例えば、画像以外のデータ(テキスト、音声など)を対象とする認識処理および分類処理であってもよい。
記憶部221は、情報処理装置200による各種処理で用いられる各種情報を記憶する。例えば記憶部221は、学習装置100から出力されたニューラルネットワークのパラメータを記憶する。
情報処理装置200の各部(受付部201および情報処理部202)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPUなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
記憶部121、221は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
次に、部分勾配、全体勾配、および、ノイズの算出方法、並びに、重みの更新方法の具体例について説明する。学習処理は、T個(Tは2以上の整数)のミニバッチを用いてT回繰り返し実行され、各回の学習処理で重みが更新される。各回の学習処理では、ミニバッチを分割した複数の部分ミニバッチに対する部分勾配の算出、および、部分勾配を用いた全体勾配の算出などが実行される。
算出部102は、t回目(tは1≦t≦Tを満たす整数)の学習処理の全体勾配Gを、以下の(1)式により算出する。Nは部分勾配数を表し、g は、t回目の学習処理でn個目(nは1≦n≦Nを満たす整数)の部分ミニバッチに対して算出される部分勾配を表す。
Figure 2020119151
更新部103は、以下の(2)式により、(t+1)回目の学習処理で用いる重みwt+1を算出する。wはt回目の学習処理に用いる重みを表し、ηは学習係数を表す。
Figure 2020119151
(2)式は、t回目の学習処理に用いるミニバッチ(他の学習データ)に対して算出された重みw(第1パラメータ)を、全体勾配を用いて更新することにより、(t+1)回目の学習に用いるミニバッチに対する重み(第2パラメータ)を算出する式であると解釈することができる。
算出部102は、重みwt+1に対して加えるノイズθt+1 を、以下の(3)式により算出する。
Figure 2020119151
算出部102は、(t+1)回目の学習処理で、部分勾配gt+1 を、以下の(4)式により算出する。
Figure 2020119151
このように、本実施形態では、重みに対して加えるノイズが、全体勾配と部分勾配との差分に基づき算出される。図4は、部分勾配、全体勾配、および、重みの関係の例を示す図である。なお説明を簡単にするため、図4の例では、部分勾配数N=2、学習係数η=1としている。また、図4の例では、t回目の学習処理では、重みwにノイズが加えられないものとしている。例えば、1回目(t=1)の学習処理では、前回の学習処理で算出される部分勾配および全体勾配に相当する情報がないため、ノイズは算出されない。
重み401〜403は、それぞれ、t、(t+1)、および、(t+2)回目の学習処理で用いられる重みを表す。例えば重み402(wt+1)は、(2)式に従い、重み401(w)および勾配Gから算出される。重み411、412は、ノイズが加えられた重みを表す。例えば重み411は、重み402(wt+1)に対してノイズθt+1 を加えることにより算出される。ノイズθt+1 は、図4に示すように、全体勾配Gおよび部分勾配g の差分により算出される。(t+2)回目以降の処理も、同様に繰り返される。
なお、ノイズを加える処理は、2回目以降の学習処理すべてで実行する必要はなく、一部の学習処理だけで実行されてもよい。例えば、m回目(mは3≦m≦Tを満たす整数)以降の学習処理でノイズを加えてもよいし、一定の回数ごとにノイズを加えてもよい。
また、本実施形態に適用可能な学習方法はSGDに限られるものではなく、勾配を用いる他の学習方法にも適用できる。例えば、モメンタム法、ネステロフの加速法、AdaGrad、および、Adamなどのような学習方法(最適化アルゴリズム)を用いてもよい。
また算出部102は、(3)式の右辺に示す全体勾配と部分勾配との差分に係数αを乗じた値をノイズとして算出してもよい。係数αは、例えば、以下のような値を用いることができる。
・正のスカラー値
・学習係数η
・重みノルム||wt+1||
・更新ベクトルノルム||―η||
・上記値の一部または全部の組合せ
重みノルム(更新ベクトルノルム)は、例えば、(t+1)回目の学習処理の時点でニューラルネットワークのすべての層に対して算出されているすべての重み(更新ベクトル)のノルムである。
重みノルム(または更新ベクトルノルム)を係数αとする場合、ニューラルネットワークのすべての層の重み(更新ベクトル)の代わりに、一部の重み(更新ベクトル)のみを用いてもよい。例えば、図5に示すように現在算出対象としている層に関連する重み(更新ベクトル)のみ(実線部)を用いて、重みノルム(更新ベクトルノルム)を算出してもよい。また、図6に示すように、現在算出対象としているユニットに関連する重み(更新ベクトル)のみ(実線部)を用いて、重みノルム(更新ベクトルノルム)を算出してもよい。
次に、このように構成された本実施形態にかかる学習装置100によるニューラルネットワークのパラメータ更新処理について説明する。図7は、第1の実施形態におけるパラメータ更新処理の一例を示すフローチャートである。
生成部101は、例えば記憶部121に記憶された学習データから、複数のミニバッチを生成する(ステップS102)。
算出部102は、複数のミニバッチのうち、学習処理に用いる1つのミニバッチを取得する(ステップS102)。算出部102は、現在の学習処理でノイズを算出するか否かを判定する(ステップS103)。例えば算出部102は、1回目の学習処理などのように、ノイズを算出しない回数に相当する学習処理である場合に、ノイズを算出しないと判定する。上記のようにm回目以降の学習処理でノイズを加えることが定められている場合は、算出部102は、1〜(m−1)回目までの学習処理ではノイズを算出しないと判定してもよい。
ノイズを算出すると判定された場合(ステップS103:Yes)、算出部102は、前の回で算出済みの部分勾配を用いてノイズを算出する(ステップS104)。例えば算出部102は、上記の(3)式によりノイズを算出する。また算出部102は、部分ミニバッチ、および、算出したノイズを加えた重みを用いて、部分勾配を算出する(ステップS105)。例えば算出部102は、上記の(4)式により部分勾配を算出する。
ノイズを算出しないと判定された場合(ステップS103:No)、算出部102は、部分ミニバッチ、および、ノイズを加えない重みを用いて、部分勾配を算出する(ステップS106)。例えば算出部102は、上記の(4)式の「wt+1+θt+1 」を「wt+1」に置き換えた式により、部分勾配を算出する。
なおステップS104〜ステップS106は、ステップS102で取得したミニバッチを分割した部分ミニバッチごとに実行される。
算出部102は、各部分ミニバッチに対して算出された部分勾配を用いて、ミニバッチの勾配(全体勾配)を算出する(ステップS107)。例えば算出部102は、上記の(1)式により全体勾配を算出する。
更新部103は、算出された全体勾配を用いて重みを更新する(ステップS108)。例えば更新部103は、上記の(2)式により、更新された重みを算出する。
更新部103は、学習を終了するか否かを判定する(ステップS109)。例えば更新部103は、すべてのミニバッチが処理された場合に、学習を終了すると判定する。学習終了の判定方法はこれに限られずどのような方法であってもよい。
学習を終了しないと判定された場合(ステップS109:No)、ステップS102に戻り、次のミニバッチに対して処理が繰り返される。学習を終了すると判定された場合(ステップS109:Yes)、パラメータ更新処理は終了する。
次に、本実施形態にかかる情報処理装置200による情報処理について説明する。図8は、本実施形態における情報処理の一例を示すフローチャートである。
情報処理装置200の受付部201は、例えば学習装置100から、学習済みのニューラルネットワークのパラメータを取得する(ステップS201)。情報処理部202は、取得されたパラメータで定められるニューラルネットワークを用いた情報処理を実行する(ステップS202)。情報処理部202は、ニューラルネットワークの利用目的に応じた情報処理を実行する。例えばニューラルネットワークが、画像認識に用いるニューラルネットワークである場合、情報処理部202は、このニューラルネットワークを用いた画像認識処理を実行する。例えばニューラルネットワークが、画像分類に用いるニューラルネットワークである場合、情報処理部202は、このニューラルネットワークを用いた画像分類処理を実行する。
このように、第1の実施形態にかかる学習装置では、ミニバッチの勾配算出過程で得られる部分勾配を用いてパラメータに一時的なノイズを加えて次のミニバッチの部分勾配を算出する。ノイズは、部分勾配に含まれるノイズ成分に基づいて算出される。このため、目的関数の形状に対して適当な方向へのノイズを付与することができ、目的関数に合わせた効率的な平滑化を行うことができる。
(第2の実施形態)
第1の実施形態では、ノイズは全体勾配に依存している。全体勾配は、複数の部分勾配の平均として算出される。一方、複数の装置それぞれで複数の部分勾配を並列に算出し、複数の装置間で通信しながら平均を算出する構成とすれば、学習処理の速度を向上させることができる。第2の実施形態は、このような構成を想定し、ノイズと全体勾配との依存関係をなくし、デバイス間通信処理と並行して次の部分勾配を算出できるようにする。
図9は、第2の実施形態にかかる学習システムの構成の一例を示すブロック図である。図9に示すように、本実施形態の学習システム900−2は、学習装置100−2−1、100−2−2、100−2−3を含む。なお図9では省略しているが、学習システム900−2は、図3と同様に情報処理装置200と接続されていてもよい。すなわち、情報処理システムが、学習システム900−2と、情報処理装置200とを備えるように構成してもよい。また、第1の実施形態にかかる学習装置100のブロック図である図3と同様の機能については同一符号を付し、ここでの説明は省略する。
学習装置100−2−1、100−2−2、100−2−3は、1つのミニバッチを分割した部分ミニバッチに対する部分勾配の算出処理等を分散して実行する。学習装置100−2−1、100−2−2、100−2−3は、同様の構成を備えるため、区別する必要がない場合は単に学習装置100−2という場合がある。学習装置100−2の個数は3に限られず、2または4以上であってもよい。
学習装置100−2は、生成部101−2と、算出部102−2と、更新部103−2と、出力制御部104−2と、記憶部121と、を備えている。
生成部101−2は、自装置で処理する学習データを生成する点が、第1の実施形態の生成部101と異なっている。生成部101−2は、例えば他の学習装置100−2の生成部101−2と通信することにより、他の学習装置100−2が生成する学習データと重複しないように、自装置で処理する学習データを生成する。
算出部102−2は、自装置用に生成された学習データを用いてノイズおよび部分勾配を算出する点、および、他の学習装置100−2の算出部102−2が算出した部分勾配と、自身が算出した部分勾配とを用いて、ミニバッチ全体に対する全体勾配を算出する点が、第1の実施形態の算出部102と異なっている。
例えば、各学習装置100−2の算出部102−2は、MPI(Message Passing Interface)で定義されるAllreduceと称される集団通信アルゴリズム(MPI_Allreduce)を用いることで、複数の学習装置100−2で算出された複数の部分勾配の和を獲得し、複数の部分勾配の和の平均として全体勾配を算出することができる。ここでは、MPI_Allreduceを用いる場合について説明したが、当該MPI_Allreduceと同程度の他の処理が実行されてもよい。
更新部103−2は、算出部102−2による算出結果を用いて重みを更新する。更新部103−2は、算出部102−2が算出した全体勾配、すなわち、他の学習装置100−2の学習データにより算出された部分勾配も考慮された全体勾配を用いて、重みを更新することができる。
出力制御部104−2は、例えば通信ネットワークを介して、部分勾配などの算出結果を他の学習装置100−2との間で送受信する点が、第1の実施形態の出力制御部104と異なっている。なお、本実施形態では、各学習装置100−2で同じようにパラメータ(重み)が更新される。すなわち、各学習装置100−2は、同じニューラルネットワークのパラメータを記憶部121に記憶している。従って、例えば情報処理装置200などにパラメータを出力する場合は、各学習装置100−2のいずれかの出力制御部104−2がパラメータを出力すればよい。
次に、本実施形態での部分勾配、全体勾配、および、ノイズの算出方法、並びに、重みの更新方法の具体例について説明する。本実施形態では、部分ミニバッチに対する部分勾配の算出、および、分散して算出された部分勾配を用いた全体勾配の算出などが、複数の学習装置100−2で分散して実行される。
例えば各学習装置100−2の算出部102−2は、t回目の学習処理の全体勾配Gを、上記の(1)式により算出する。上記のように、算出部102−2は、例えばMPI_Allreduce)を用いることで、自装置のみでなく、すべての学習装置100−2で算出された部分勾配の和に基づく全体勾配を算出することができる。更新部103−2は、上記の(2)式により、(t+1)回目の学習処理で用いる重みwt+1を算出する。
本実施形態では算出部102−2は、重みwt+1に対して加えるノイズθt+1 を、以下の(5)式により算出する。
Figure 2020119151
また、算出部102−2は、(t+1)回目の学習処理で、部分勾配gt+1 を、以下の(6)式により算出する。
Figure 2020119151
このように、本実施形態では、重みに対して加えるノイズが、部分勾配に基づき算出される。図10は、部分勾配、全体勾配、および、重みの関係の例を示す図である。なお説明を簡単にするため、図10の例では、部分勾配数N=2、学習係数η=1としている。また、図10の例では、t回目の学習処理では、重みwにノイズが加えられないものとしている。
重み1001〜1003は、それぞれ、t、(t+1)、および、(t+2)回目の学習処理で用いられる重みを表す。例えば重み1002(wt+1)は、(2)式に従い、重み1001(w)および勾配Gから算出される。重み1011、1012は、ノイズが加えられた重みを表す。例えば重み1011は、重み1001(w)に対してノイズθt+1 を加えることにより算出される。ノイズθt+1 は、図10に示すように、部分勾配g に“−1”を乗じることにより算出される。(t+2)回目以降の処理も、同様に繰り返される。
本実施形態の部分勾配の算出式である(6)式と第1の実施形態の部分勾配の算出式である(4)式とを比較すると、wt+1がwに変更されている点が異なる。このように、本実施形態では、(t+1)回目の学習処理で用いられる重み(wt+1)にノイズを加えた値を、t回目の学習処理で用いられる重み(w)にノイズを加えた値で推定していると解釈することができる。すなわち本実施形態では、t回目の学習処理に用いるミニバッチ(他の学習データ)に対して算出された重みw(第1パラメータ)にノイズを加えた値を用いて部分勾配が算出される。
また、(1)式および(2)式と、(5)式および(6)式には依存関係がないため、並列に処理することができる。これにより、学習処理の速度を向上させることが可能となる。
第2の実施形態のおける学習処理の全体の流れは、第1の実施形態の学習処理の例を示す図7と同様である。第2の実施形態では、部分ミニバッチについての処理(ステップS104、S105、S106)が、各学習装置100−2で分散して実行される。
本実施形態についても、適用可能な学習方法はSGDに限られるものではなく、勾配を用いる他の学習方法(モメンタム法、ネステロフの加速法、AdaGrad、および、Adamなど)にも適用できる。また、第1の実施形態と同様に、係数αを用いてノイズを算出してもよい。
(変形例1)
また第1の実施形態と同様の構成の学習装置が、本実施形態の算出式に従いノイズを算出するように構成してもよい。この場合、部分勾配を並列に算出することはできないが、目的関数の形状に対して適当な方向へのノイズを付与し、目的関数に合わせた効率的な平滑化を行うことができるなどの、第1の実施形態と同様の効果を得ることができる。
(変形例2)
また第2の実施形態と同様の構成の学習装置が、第1の実施形態の算出式に従いノイズを算出するように構成してもよい。例えば、3つの学習装置100−2が、第1の実施形態の部分勾配の算出式である(4)式を用いて、あるミニバッチを3分割した複数の部分ミニバッチに対する部分勾配を分散して並列に算出してもよい。なお、学習装置100−2の個数およびミニバッチの分割数は3に限られるものではない。また、ハードウェア構成およびリソースなどに応じて、各学習装置100−2に割り当てる部分ミニバッチのサイズおよび個数などを変更してもよい。
本変形例では、MPI_Allreduceなどを用いて、並列に算出される複数の部分勾配が複数の学習装置100−2間で送受信されるとともに、全体勾配が算出される。部分勾配の通信コストが増加するが、各部分勾配を並列に算出することにより、第1の実施形態より学習処理を高速化することができる。
なお、第1の実施形態および変形例2では、重みの算出に全体勾配が用いられる(重みが全体勾配に依存する)。これに対して、第2の実施形態では、重みの算出に全体勾配は用いられない(重みが全体勾配に依存していない)。このため上記のように、通信を伴う全体勾配の算出((1)式、(2)式)と、部分勾配の算出((5)式、(6)式)とについても並列に実行可能となる。従って、第2の実施形態は、変形例2よりもさらに学習処理を高速化することができる。
(変形例3)
また複数の学習装置100−2のうちいずれかの学習装置100−2(マスターノード)が、他の学習装置100−2(ワーカーノード)を代表して全体勾配および重みを算出するように構成してもよい。マスターノードは、分散して実行する処理を制御する装置である。ワーカーノードは、マスターノードの制御に従って部分ミニバッチに対する処理を実行する。本変形例3では、マスターノードが、学習データの生成、および、重みの更新を実行するため、ワーカーノードは、生成部101−2および更新部103−2を備える必要はない。
マスターノードの生成部101−2は、生成した学習データを、各ワーカーノードに出力する。例えばマスターノードの生成部101−2は、生成したミニバッチを分割した部分ミニバッチのうち、自装置で処理する部分ミニバッチ以外の部分ミニバッチを、各ワーカーノードに出力する。例えば3つの学習装置100−2のうち1つがマスターノードであり、2つがワーカーノードである場合、マスターノードの生成部101−2は、ミニバッチを3つに分割した部分ミニバッチのうち1つを自装置内で処理するために出力し、他の2つの部分ミニバッチを2つのワーカーノードに出力する。なお、分割数は3に限られるものではない。また、ハードウェア構成およびリソースなどに応じて、各学習装置100−2に割り当てる部分ミニバッチのサイズおよび個数などを変更してもよい。
変形例3では、学習システム900−2に含まれるすべての学習装置100−2で算出された部分勾配がマスターノードに集約され、集約された部分勾配を用いてマスターノードが全体勾配を算出する。この場合、例えばMPIで定義されるReduceと称される集団通信アルゴリズム(MPI_Reduce)を用いることで、ワーカーノードからマスターノードへの部分勾配の送信と全体勾配の算出処理を効率的に実行することが可能である。マスターノードは、算出した重みを各ワーカーノードに送信する。例えばマスターノードは、MPIで定義されるMPI_Bcastを用いて、更新された重みを各ワーカーノードに送信する。ここでは、MPI_ReduceおよびMPI_Bcastを用いる場合について説明したが、当該MPI_ReduceおよびMPI_Bcastと同程度の他の処理が実行されてもよい。
このように、第2の実施形態では、学習処理内の一部の算出処理が複数の学習装置で分散して実行される。これにより、学習処理の速度を向上させることが可能となる。
以上説明したとおり、第1および第2の実施形態によれば、目的関数に合わせた効率的な平滑化を行うことができる。
次に、第1または第2の実施形態にかかる学習装置のハードウェア構成について図11を用いて説明する。図11は、第1または第2の実施形態にかかる学習装置のハードウェア構成例を示す説明図である。
第1または第2の実施形態にかかる学習装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
第1または第2の実施形態にかかる学習装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
第1または第2の実施形態にかかる学習装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、第1または第2の実施形態にかかる学習装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1または第2の実施形態にかかる学習装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
第1または第2の実施形態にかかる学習装置で実行されるプログラムは、コンピュータを上述した学習装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100、100−2−1、100−2−2、100−2−3 学習装置
101、101−2 生成部
102、102−2 算出部
103、103−2 更新部
104、104−2 出力制御部
121 記憶部
200 情報処理装置
201 受付部
202 情報処理部
221 記憶部
900−2 学習システム

Claims (7)

  1. 目的関数を用いてニューラルネットワークのパラメータを学習するための複数回の学習処理にそれぞれに用いる複数の学習データを生成する生成部と、
    複数の前記学習データの少なくとも一部の前記学習データに対して、前記学習データを分割して得られる部分データに対する前記目的関数の前記パラメータに関する勾配である部分勾配を、他の前記学習データに対して算出された部分勾配に基づいて算出されるノイズが加えられた前記パラメータ、および、前記部分データを用いて算出する算出部と、
    を備える学習装置。
  2. 前記算出部は、
    前記学習データに対する前記目的関数の前記パラメータに関する勾配である全体勾配を、前記学習データを分割して得られる複数の部分データに対して算出された複数の部分勾配を用いて算出し、
    前記全体勾配と、他の前記学習データに対して算出された部分勾配と、を用いて前記ノイズを算出する、
    請求項1に記載の学習装置。
  3. 前記算出部は、
    前記全体勾配と、他の前記学習データに対して算出された部分勾配と、の差分を用いて前記ノイズを算出する、
    請求項2に記載の学習装置。
  4. 前記算出部は、
    前記全体勾配を用いて、他の前記学習データに対して算出された第1パラメータを更新することにより、前記学習データに対する第2パラメータを算出し、
    前記ノイズが加えられた前記第2パラメータ、および、前記部分データを用いて、前記部分勾配を算出する、
    請求項2に記載の学習装置。
  5. 前記算出部は、
    他の前記学習データに対して算出された第1パラメータに前記ノイズを加えた値、および、前記部分データを用いて、前記部分勾配を算出する、
    請求項1に記載の学習装置。
  6. 目的関数を用いてニューラルネットワークのパラメータを学習するための複数回の学習処理にそれぞれに用いる複数の学習データを生成する生成ステップと、
    複数の前記学習データの少なくとも一部の前記学習データに対して、前記学習データを分割して得られる部分データに対する前記目的関数の前記パラメータに関する勾配である部分勾配を、他の前記学習データに対して算出された部分勾配に基づいて算出されるノイズが加えられた前記パラメータ、および、前記部分データを用いて算出する算出ステップと、
    を含む学習方法。
  7. コンピュータを、
    目的関数を用いてニューラルネットワークのパラメータを学習するための複数回の学習処理にそれぞれに用いる複数の学習データを生成する生成部と、
    複数の前記学習データの少なくとも一部の前記学習データに対して、前記学習データを分割して得られる部分データに対する前記目的関数の前記パラメータに関する勾配である部分勾配を、他の前記学習データに対して算出された部分勾配に基づいて算出されるノイズが加えられた前記パラメータ、および、前記部分データを用いて算出する算出部と、
    として機能させるためのプログラム。
JP2019008649A 2019-01-22 2019-01-22 学習装置、学習方法およびプログラム Active JP7021132B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019008649A JP7021132B2 (ja) 2019-01-22 2019-01-22 学習装置、学習方法およびプログラム
US16/553,223 US11526690B2 (en) 2019-01-22 2019-08-28 Learning device, learning method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019008649A JP7021132B2 (ja) 2019-01-22 2019-01-22 学習装置、学習方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2020119151A true JP2020119151A (ja) 2020-08-06
JP7021132B2 JP7021132B2 (ja) 2022-02-16

Family

ID=71608495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019008649A Active JP7021132B2 (ja) 2019-01-22 2019-01-22 学習装置、学習方法およびプログラム

Country Status (2)

Country Link
US (1) US11526690B2 (ja)
JP (1) JP7021132B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11599774B2 (en) * 2019-03-29 2023-03-07 International Business Machines Corporation Training machine learning model
US11443240B2 (en) * 2019-09-06 2022-09-13 Oracle International Corporation Privacy preserving collaborative learning with domain adaptation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180032869A1 (en) * 2016-07-29 2018-02-01 Fujitsu Limited Machine learning method, non-transitory computer-readable storage medium, and information processing apparatus
JP2018018350A (ja) * 2016-07-28 2018-02-01 富士通株式会社 画像認識装置、画像認識プログラム、画像認識方法および認識装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10475214B2 (en) * 2017-04-05 2019-11-12 General Electric Company Tomographic reconstruction based on deep learning
CN110447041B (zh) * 2017-05-20 2023-05-30 渊慧科技有限公司 噪声神经网络层
US10402666B2 (en) * 2017-12-18 2019-09-03 Ford Global Technologies, Llc Vehicle monitoring of infrastructure lighting
US20200019840A1 (en) * 2018-07-13 2020-01-16 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for sequential event prediction with noise-contrastive estimation for marked temporal point process
JP7326867B2 (ja) * 2019-05-21 2023-08-16 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
US11768932B2 (en) * 2019-06-28 2023-09-26 Baidu Usa Llc Systems and methods for fast training of more robust models against adversarial attacks
JP7322622B2 (ja) * 2019-09-17 2023-08-08 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2021220008A1 (en) * 2020-04-29 2021-11-04 Deep Render Ltd Image compression and decoding, video compression and decoding: methods and systems
JP2021197108A (ja) * 2020-06-18 2021-12-27 富士通株式会社 学習プログラム、学習方法および情報処理装置
US20220019902A1 (en) * 2020-07-20 2022-01-20 Yandex Europe Ag Methods and systems for training a decision-tree based machine learning algorithm (mla)
EP3965052B1 (en) * 2020-09-04 2023-08-16 Robert Bosch GmbH Device and method of training a generative neural network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018018350A (ja) * 2016-07-28 2018-02-01 富士通株式会社 画像認識装置、画像認識プログラム、画像認識方法および認識装置
US20180032869A1 (en) * 2016-07-29 2018-02-01 Fujitsu Limited Machine learning method, non-transitory computer-readable storage medium, and information processing apparatus
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置

Also Published As

Publication number Publication date
US20200234082A1 (en) 2020-07-23
JP7021132B2 (ja) 2022-02-16
US11526690B2 (en) 2022-12-13

Similar Documents

Publication Publication Date Title
JP7470476B2 (ja) 蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合
US11941527B2 (en) Population based training of neural networks
JP6773618B2 (ja) 学習装置、情報処理装置、学習方法およびプログラム
US11861474B2 (en) Dynamic placement of computation sub-graphs
JP6610278B2 (ja) 機械学習装置、機械学習方法及び機械学習プログラム
CN114787824A (zh) 联合混合模型
JP7021132B2 (ja) 学習装置、学習方法およびプログラム
CN110322020B (zh) 分布式随机梯度下降的自适应学习率调度
WO2014176056A2 (en) Data classification
JP2012208924A (ja) 適応的重み付けを用いた様々な文書間類似度計算方法に基づいた文書比較方法および文書比較システム
JP2020181240A (ja) データ生成装置、データ生成方法およびプログラム
JPWO2016125500A1 (ja) 特徴変換装置、認識装置、特徴変換方法及びコンピュータ読み取り可能記録媒体
JP2015038709A (ja) モデルパラメータ推定方法、装置、及びプログラム
CN116668351A (zh) 服务质量预测方法、装置、计算机设备及存储介质
CN109670579A (zh) 模型生成方法和装置
JP2020003860A (ja) 学習システム、処理装置、処理方法、およびプログラム
JPWO2018168695A1 (ja) 分散機械学習装置、分散機械学習方法および分散機械学習プログラム
JP2019082847A (ja) データ推定装置、データ推定方法及びプログラム
JP6877666B1 (ja) 分類装置、分類方法およびプログラム
JP2021189553A (ja) 訓練装置、モデル生成方法及びプログラム
WO2020110272A1 (ja) 機械学習装置、機械学習方法、及びコンピュータ読み取り可能な記録媒体
CN113792784B (zh) 用于用户聚类的方法、电子设备和存储介质
WO2022259481A1 (ja) 学習方法
JP2020087148A (ja) 情報処理装置、情報処理方法およびプログラム
US20230214645A1 (en) Learning apparatus, learning system, and learning method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220203

R151 Written notification of patent or utility model registration

Ref document number: 7021132

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151