JP2018018451A - 機械学習方法、機械学習プログラム及び情報処理装置 - Google Patents

機械学習方法、機械学習プログラム及び情報処理装置 Download PDF

Info

Publication number
JP2018018451A
JP2018018451A JP2016150617A JP2016150617A JP2018018451A JP 2018018451 A JP2018018451 A JP 2018018451A JP 2016150617 A JP2016150617 A JP 2016150617A JP 2016150617 A JP2016150617 A JP 2016150617A JP 2018018451 A JP2018018451 A JP 2018018451A
Authority
JP
Japan
Prior art keywords
model
batch
machine learning
unit
learning
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.)
Pending
Application number
JP2016150617A
Other languages
English (en)
Inventor
司睦 田原
Tsuguchika Tabaru
司睦 田原
雅文 山崎
Masafumi Yamazaki
雅文 山崎
明彦 笠置
Akihiko Kasaoki
明彦 笠置
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016150617A priority Critical patent/JP2018018451A/ja
Priority to US15/661,455 priority patent/US20180032869A1/en
Publication of JP2018018451A publication Critical patent/JP2018018451A/ja
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

【課題】モデルのパラメータの修正が実施されるバッチサイズの大型化を実現すること。【解決手段】割当ノード10は、ニューラルネットワークをモデルとする機械学習を行う。例えば、割当ノード10は、機械学習によって学習させるサンプルの集合であって、モデルのパラメータが修正される単位のバッチサイズを有する第1のバッチを複数の第2のバッチに分割する処理と、ニューラルネットワークの層構造およびパラメータが同一であるモデルが共有される複数のコンピュータに、第2のバッチに関する学習を割り当てる処理とを実行する。【選択図】図2

Description

本発明は、機械学習方法、機械学習プログラム及び情報処理装置に関する。
機械学習の一例として、多層構造のニューラルネットワークをモデルとして用いる深層学習、いわゆるディープラーニングが知られている。その学習アルゴリズムには、一例として、確率的勾配降下法が用いられる。
確率的勾配降下法が用いられる場合、正例または負例の正解のラベルが付与された訓練サンプルがモデルへ入力される度に、モデルからの出力と訓練サンプルの正解との誤差を最小化するモデルのオンライン学習が実現される。すなわち、誤差の勾配を用いて出力層から順に入力層へ向かって各層のニューロンごとに求められた重みの修正量にしたがって重みの修正が訓練サンプルごとに実施される。
また、確率的勾配降下法は、ミニバッチと呼ばれる単位に訓練サンプルをまとめて重みの修正が実施される場合もある。このミニバッチサイズを大きくするほど重みの修正量を精度良く求めることができる結果、モデルの学習速度を高めることができる。
米国特許出願公開第2014/0180986号明細書 特開2016−45943号公報
Ren Wu, Shengen Yan, Yi Shan, Qingqing Dang, Gang Sun著 「Deep Image: Scaling up Image Recognition」, CoRR, Vol.abs/1501.02876 2015 Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov著 「Dropout: A Simple Way to Prevent Neural Networks from Overfitting」, Journal of Machine Learning Research, Vol.15, pp1929-1958, 2014
しかしながら、上記のミニバッチサイズは、学習が実施されるプロセッサに接続されるメモリの容量に制約を受けるので、バッチサイズの大型化には限界がある。
1つの側面では、本発明は、モデルのパラメータの修正が実施されるバッチサイズの大型化を実現できる機械学習方法、機械学習プログラム及び情報処理装置を提供することを目的とする。
一態様の機械学習方法は、ニューラルネットワークをモデルとする機械学習方法である。前記機械学習方法では、前記機械学習によって学習させるサンプルの集合であって、前記モデルのパラメータが修正される単位のバッチサイズを有する第1のバッチを複数の第2のバッチに分割する処理と、ニューラルネットワークの層構造およびパラメータが同一であるモデルが共有される複数のコンピュータに、前記第2のバッチに関する学習を割り当てる処理と、がコンピュータにより実行される。
モデルのパラメータの修正が実施されるバッチサイズの大型化を実現できる。
図1は、実施例1に係るデータ処理システムの構成例を示す図である。 図2は、実施例1に係るデータ処理システムに含まれる各装置の機能的構成を示すブロック図である。 図3は、モデル学習の一例を示す図である。 図4は、実施例1に係る機械学習処理の手順を示すフローチャートである。 図5は、実施例1及び実施例2に係る機械学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
以下に添付図面を参照して本願に係る機械学習方法、機械学習プログラム及び情報処理装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るデータ処理システムの構成例を示す図である。図1に示すデータ処理システム1は、画像認識や音声認識を行うモデル学習の一例として、確率的勾配降下法にしたがって、多層構造のニューラルネットワークを用いる深層学習、いわゆるディープラーニングを行うものである。
図1に示すデータ処理システム1では、モデル学習に用いるデータセットとして、正例または負例の正解のラベルが付与された訓練サンプルの集合が用意される。その上で、データ処理システム1は、データセットのうち一部を「スーパーバッチ」と呼ばれる単位にまとめてモデルの重みやバイアスなどのパラメータの修正を実施する。
ここで、割当ノード10は、上記のスーパーバッチが分割された複数のミニバッチに関する学習を複数の計算ノード30A〜30Cに分散して並列処理させる。以下では、図1に示す計算ノード30A〜30Cのことを「計算ノード30」と総称する場合がある。なお、ここでは、計算ノード30が3つである場合を例示したが、計算ノード30の数は2つ以上であればよく、例えば、計算ノード30の2のべき乗に対応する個数など任意の個数の計算ノード30をデータ処理システム1に収容できる。
これによって、パラメータの修正が実施される単位であるスーパーバッチのサイズが、学習に関するデータ処理を実行するハードウェア、本例では計算ノード30が有するメモリの容量に制約を受けるのを抑制できる。なぜなら、スーパーバッチのサイズが計算ノード30のメモリ容量を超えるサイズであったとしても、各計算ノード30がデータ処理を担当するミニバッチのサイズは、分散処理によって各計算ノード30のメモリ容量に合わせることができるからである。
したがって、本実施例に係る割当ノード10によれば、モデルのパラメータの修正が実施されるバッチサイズの大型化を実現できる。
図1に示すデータ処理システム1は、割当ノード10及び計算ノード30A〜30Cを含むクラスタとして構築される。ここでは、GPGPU(General-Purpose computing on Graphics Processing Units)等によりGPUクラスタとして構築される場合を例示する。これら割当ノード10及び計算ノード30A〜30Cは、InfiniBand等のインターコネクトにより接続される。なお、上記のGPUクラスタは、あくまで実装の一例であり、分散並列処理が実現することができればプロセッサの種類は問わず、汎用のCPU(Central Processing Unit)によりコンピュータクラスタとして構築することとしてもかまわない。
これらのうち、割当ノード10は、スーパーバッチが分割されたミニバッチの学習を計算ノード30に割り当てるノードである。一方、計算ノード30は、割当ノード10により割り当てられたミニバッチの学習に関するデータ処理を実行するノードである。これら割当ノード10及び計算ノード30A〜30Cの各ノードは、同一の性能とすることもできるし、異なる性能とすることもできる。
なお、以下では、説明の便宜上、各計算ノード30にミニバッチの学習が割り当てられる度に各計算ノード30でデータ処理が実行される場合を例示するが、処理の実行順序はこれに限定されない。例えば、割当ノード10が各計算ノード30へのミニバッチの割当をスーパーバッチごとに設定した後、各計算ノード30がミニバッチの学習に関するデータ処理を一括して実施することとしてもかまわない。この場合、必ずしもGPUクラスタに含まれるノードがミニバッチの割当を実施せずともよく、任意のコンピュータにミニバッチの割当を実施させることができる。また、割当ノード10にミニバッチの学習を割り当てておき、割当ノード10も計算ノード30の1つとして機能させることもできる。
[割当ノード10の構成]
図2は、実施例1に係るデータ処理システム1に含まれる各装置の機能的構成を示すブロック図である。図2に示すように、割当ノード10は、記憶部13と、制御部15とを有する。なお、図2には、データの入出力の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
記憶部13は、制御部15で実行されるOS(Operating System)を始め、上記のミニバッチの学習の割当を実現する機械学習プログラムなどのアプリケーションプログラムを含む各種プログラム、さらには、これらのプログラムに用いられるデータを記憶するデバイスである。
一実施形態として、記憶部13は、割当ノード10における補助記憶装置として実装することができる。例えば、記憶部13には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などを採用できる。なお、記憶部13は、必ずしも補助記憶装置として実装されずともよく、割当ノード10における主記憶装置として実装することもできる。この場合、記憶部13には、各種の半導体メモリ素子、例えばRAM(Random Access Memory)やフラッシュメモリを採用できる。
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、データセット13aと、モデルデータ13bとを記憶する。これらデータセット13a及びモデルデータ13b以外にも、他の電子データ、例えば重みや学習率の初期値なども併せて記憶することができる。
データセット13aは、訓練サンプルの集合である。例えば、データセット13aは、複数のスーパーバッチに分けられる。例えば、モデルの設計者の指示入力等により、目標とする学習効率、例えばモデルが収束する速度等から、計算ノード30のメモリ容量の制約を受けずに、スーパーバッチのサイズを設定させることができる。このスーパーバッチの設定により、データセット13aは、データセット13aに含まれるスーパーバッチ、さらには、各スーパーバッチに含まれる訓練サンプルがID(IDentification)等の識別情報により識別可能な状態で保存される。
モデルデータ13bは、モデルに関するデータである。例えば、モデルデータ13bには、ニューラルネットワークを形成する入力層、中間層及び出力層の各層のニューロンやシナプスなどの層構造を始め、各層の重みやバイアスなどのパラメータなどが含まれる。
制御部15は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって種々の処理を実行するものである。
一実施形態として、制御部15は、プロセッサとして実装される。例えば、GPGPUにより実装することができる。制御部15は、必ずしもGPUにより実装されずともよく、CPUやMPU(Micro Processing Unit)により実装することもでき、また、GPGPUとCPUの混成により実装されることとしてもよい。このように、制御部15は、プロセッサとして実装されればよく、その種別が汎用型または特化型であるかは問われない。また、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
制御部15は、図示しない主記憶装置として実装されるRAMのワークエリア上に、上記の機械学習プログラムをプロセスとして展開することにより、下記の処理部を仮想的に実現する。例えば、制御部15は、図2に示すように、分割部15aと、割当部15bと、取得部15cと、修正部15dと、共有部15eとを有する。
分割部15aは、スーパーバッチを複数のミニバッチに分割する処理部である。
一実施形態として、分割部15aは、図示しない外部装置、例えばモデルの設計者等が使用するコンピュータ等から学習指示を受け付けた場合に処理を起動する。例えば、学習指示により、学習の対象とするモデルやデータセットなどが指定される他、学習に用いる計算ノード30の識別情報のリストなどが指定される。この指定にしたがって、分割部15aは、記憶部13に記憶されたモデルデータ13bのうち学習指示で指定されたモデルにパラメータ、例えば重みやバイアスに加えて学習率などの初期値を設定することにより、初期化処理を実施する。続いて、分割部15aは、記憶部13に記憶されたデータセット13aのうち学習指示で指定されたデータセットに関するスーパーバッチの設定を読み出す。そして、分割部15aは、学習指示で指定されたリストから学習に参加する計算ノード30を識別し、各計算ノード30に初期のモデルを配信する。これによって、ニューラルネットワークの層構造およびパラメータが同一であるモデルが各計算ノード30の間で共有される。
これらの処理の後、分割部15aは、データセットの中からスーパーバッチを1つ選択する。続いて、分割部15aは、学習に参加する計算ノード30のGPGPUに接続されたメモリの容量にしたがって各計算ノード30に学習を割り当てるミニバッチのサイズを算出する。例えば、計算ノード30のGPGPUが複数のスレッドにより訓練サンプルに対する重みの修正量を並列して算出する場合、GPGPUで起動されるスレッド数に対応する訓練サンプル、モデル、モデルの出力および重みの修正量のデータサイズと、GPGPUが接続されるメモリの空き容量とを比較することにより、GPGPUが並列処理できるミニバッチのサイズが計算ノード30ごとに見積もられる。その上で、分割部15aは、スーパーバッチを各計算ノード30ごとに見積もられたミニバッチのサイズにしたがって分割する。なお、スーパーバッチのサイズは、当該スーパーバッチが見積もりのミニバッチのサイズで分割された場合に過不足が生じないよう逆算して設定しておくこともできるし、余りが生じる場合、計算ノード30ごとにミニバッチのサイズが見積もられた時点でスーパーバッチのサイズを調整変更することもできる。
割当部15bは、ミニバッチの学習を計算ノード30に割り当てる処理部である。
一実施形態として、割当部15bは、分割部15aによりスーパーバッチが分割される度に、ミニバッチに含まれる訓練サンプルの識別情報を当該ミニバッチの学習を担当する計算ノード30に通知する。この通知を受けた計算ノード30は、当該計算ノード30のGPGPUがパラメータの修正量の算出対象とする訓練サンプルを識別することができる。これによって、計算ノード30は、GPGPUで起動されるスレッドごとに訓練サンプルをモデルへ入力し、モデルの出力と訓練サンプルの正解との誤差の勾配を用いて出力層から順に入力層へ向かって各層のニューロンごとに重みの修正量Δwやバイアスの修正量ΔBなどのパラメータの修正量を算出することも可能になる。このように訓練サンプルごとにパラメータの修正量が算出された後、パラメータの修正量は合計される。
取得部15cは、パラメータの修正量の合計を取得する処理部である。
一実施形態として、取得部15cは、計算ノード30によりパラメータの修正量の合計が算出される度に、当該計算ノード30からパラメータの修正量の合計を取得する。このようにしてパラメータの修正量の合計が計算ノード30ごとに取得されることになる。
修正部15dは、モデルの修正を実行する処理部である。
一実施形態として、修正部15dは、取得部15cにより計算ノード30ごとにパラメータの修正量の合計が取得される度に、計算ノード30ごとに取得されたパラメータの修正量の合計に所定の統計処理を実行する。例えば、修正部15dは、統計処理の一例として、パラメータの修正量の合計を平均することにより平均値を算出できる。ここでは、パラメータの修正量の合計が平均される場合を例示したが、最頻値や中央値を求めることもできる。その後、修正部15dは、各計算ノード30の間でパラメータの修正量の合計が平均された平均値にしたがってモデルのパラメータ、すなわち重みやバイアスを修正する。
共有部15eは、修正後のモデルを共有する処理部である。
一実施形態として、共有部15eは、修正部15dによりモデルのパラメータが修正される度に、修正後のモデルを各計算ノード30へ配信する。これによって、修正後のモデルが各計算ノード30の間で共有される。
図3は、モデル学習の一例を示す図である。図3に示す入力データは、訓練サンプルに対応し、出力データは、モデルの出力に対応し、修正用データは、重みの修正量Δw及びバイアスの修正量ΔBを含むパラメータの修正量に対応する。図3には、n回目のモデル学習、n個目のスーパーバッチが分割されたミニバッチが計算ノード30A〜30Cが入力された場合が示されている。
図3に示すように、各計算ノード30では、計算ノード30のGPGPUが1または複数のスレッドが起動される。ここでは、一例として、ミニバッチに含まれる訓練サンプルの数と同数のスレッドが起動される場合を例に挙げて以下の説明を行う。各スレッドでは、モデルが実行されると共にモデルに訓練サンプルが入力データとして入力層へ入力される(S1)。この結果、モデルの出力層から出力された出力データがスレッドごとに得られる(S2)。その後、モデルの出力と訓練サンプルの正解との誤差の勾配を用いて出力層から順に入力層へ向かって各層のニューロンごとに重みの修正量Δwやバイアスの修正量ΔBなどのパラメータの修正量が修正データとして算出される(S3)。続いて、ミニバッチの訓練サンプルごとに算出されたパラメータの修正量が合計される(S4)。
このように各計算ノード30でパラメータの修正量の合計が算出された後、割当ノード10によりパラメータの修正量の合計が計算ノード30ごとに取得される(S5)。そして、計算ノード30ごとに取得されたパラメータの修正量の合計が平均される(S6)。その後、各計算ノード30の間でパラメータの修正量の合計が平均された平均値にしたがってモデルのパラメータ、すなわち重みやバイアスが修正される(S7)。この修正によって、n+1回目の学習に用いるモデルが得られる。その上で、割当ノード10から各計算ノード30へ修正後のモデルが送信される(S8)ことにより、各計算ノード30の間で修正後のモデルが共有される。
[計算ノード]
次に、本実施例に係る計算ノード30の機能的構成について説明する。図2に示すように、計算ノード30は、記憶部33と、制御部35とを有する。なお、図2には、データの入出力の関係を表す実線が示されているが、説明の便宜上、最小限の部分について示されているに過ぎない。すなわち、各処理部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることとしてもかまわない。
記憶部33は、制御部35で実行されるOSを始め、上記のミニバッチの学習を実現する学習プログラムなどのアプリケーションプログラムを含む各種プログラム、さらには、これらのプログラムに用いられるデータを記憶するデバイスである。
一実施形態として、記憶部33は、計算ノード30における補助記憶装置として実装することができる。例えば、記憶部33には、HDD、光ディスクやSSDなどを採用できる。なお、記憶部33は、必ずしも補助記憶装置として実装されずともよく、計算ノード30における主記憶装置として実装することもできる。この場合、記憶部33には、各種の半導体メモリ素子、例えばRAMやフラッシュメモリを採用できる。
記憶部33は、制御部35で実行されるプログラムに用いられるデータの一例として、データセット33aと、モデルデータ33bとを記憶する。これらデータセット33a及びモデルデータ33b以外にも、他の電子データを併せて記憶することができる。
データセット33aは、訓練サンプルの集合である。このデータセット33aは、割当ノード10が有するデータセット13aと同一のものが共有される。ここでは、あくまで一例として、割当ノード10及び計算ノード30間の通信を削減する観点から、両者の間でデータセットが予め共有される場合を例示したが、割当ノード10がミニバッチの学習を計算ノード30に割り当てる度に当該ミニバッチを計算ノード30へ送信することとしてもかまわない。
モデルデータ33bは、モデルに関するデータである。このモデルデータ33bは、一例として、割当ノード10によりモデルが修正される度に修正後のモデルがモデルデータ33bとして反映されることにより、割当ノード10と同一のものが共有される。
制御部35は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって種々の処理を実行するものである。
一実施形態として、制御部35は、プロセッサとして実装される。例えば、GPGPUにより実装することができる。制御部35は、必ずしもGPUにより実装されずともよく、CPUやMPUにより実装することもでき、また、GPGPUとCPUの混成により実装されることとしてもよい。このように、制御部35は、プロセッサとして実装されればよく、その種別が汎用型または特化型であるかは問われない。また、制御部35は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
制御部35は、図示しない主記憶装置として実装されるRAMのワークエリア上に、上記の学習プログラムをプロセスとして展開することにより、下記の処理部を仮想的に実現する。例えば、制御部35は、図2に示すように、モデル実行部35aと、算出部35bとを有する。なお、図2には、説明の便宜上、1つのモデル実行部35aが示されているが、GPGPUにより複数のスレッドが起動される場合、スレッド数と同数のモデル実行部35aが制御部35に備わる。
モデル実行部35aは、モデルを実行する処理部である。
一実施形態として、割当ノード10によりミニバッチの学習が割り当てられる度に、計算ノード30のGPGPUが起動するスレッドと同数、例えばミニバッチの訓練サンプルの数と同数のモデル実行部35aが起動される。このとき、モデル実行部35aでは、各モデル実行部35aの間で同一の層構造および同一のパラメータを持つモデルであり、かつ割当ノード10により修正された最新のモデルが実行される。このように起動されたモデル実行部35aごとに、割当ノード10により学習が割り当てられたミニバッチに含まれる訓練サンプルの学習が並列して実行される。すなわち、割当ノード10から通知された訓練サンプルの識別情報にしたがってモデル実行部35aが実行するモデルの入力層にミニバッチの訓練サンプルが入力される結果、モデルの出力層から出力、いわゆる推測データが得られる。その後、モデル実行部35aは、モデルの出力と訓練サンプルの正解との誤差の勾配を用いて出力層から順に入力層へ向かって各層のニューロンごとに重みの修正量Δwやバイアスの修正量ΔBなどのパラメータの修正量を算出する。この結果、ミニバッチに含まれる訓練サンプルごとにパラメータの修正量が得られる。
算出部35bは、パラメータの修正量の合計を算出する処理部である。
一実施形態として、算出部35bは、モデル実行部35aによりミニバッチの訓練サンプルごとにパラメータの修正量が算出される度に、パラメータの修正量を合計する。その上で、算出部35bは、パラメータの修正量の合計を割当ノード10へ送信する。
[処理の流れ]
図4は、実施例1に係る機械学習処理の手順を示すフローチャートである。この処理は、あくまで一例として、モデルの設計者等が使用するコンピュータ等から学習指示を受け付けた場合に処理を起動する。
図4に示すように、分割部15aは、記憶部13に記憶されたモデルデータ13bのうち学習指示で指定されたモデルにパラメータ、例えば重みやバイアスに加えて学習率などの初期値を設定することにより、初期化処理を実施する(ステップS101)。
続いて、分割部15aは、記憶部13に記憶されたデータセット13aのうち学習指示で指定されたデータセットに関するスーパーバッチの設定を読み出す(ステップS102)。そして、分割部15aは、学習指示で指定されたリストから学習に参加する計算ノード30を識別し、各計算ノード30に初期のモデルを配信する(ステップS103)。これによって、ニューラルネットワークの層構造およびパラメータが同一であるモデルが各計算ノード30の間で共有される。
その後、分割部15aは、データセットの中からスーパーバッチを1つ選択する(ステップS104)。続いて、分割部15aは、各計算ノード30のGPGPUに接続されたメモリ容量にしたがってステップS104で選択されたスーパーバッチを複数のミニバッチに分割する(ステップS105)。
そして、割当部15bは、ステップS105でスーパーバッチから分割されたミニバッチに含まれる訓練サンプルの識別情報を当該ミニバッチの学習を担当する計算ノード30に通知することにより、ミニバッチの学習を各計算ノード30に割り当てる(ステップS106)。
その後、取得部15cは、各計算ノード30からパラメータの修正量の合計を取得する(ステップS107)。そして、修正部15dは、ステップS107で計算ノード30ごとに取得されたパラメータの修正量の合計を平均する(ステップS108)。その上で、修正部15dは、ステップS108で各計算ノード30の間のパラメータの修正量の合計が平均された平均値にしたがってモデルのパラメータ、すなわち重みやバイアスを修正する(ステップS109)。
続いて、共有部15eは、ステップS109で修正された修正後のモデルを各計算ノード30へ配信する(ステップS110)。これによって、修正後のモデルが各計算ノード30の間で共有される。
その後、データセットから全てのスーパーバッチが選択されるまで(ステップS111No)、上記のステップS104〜上記のステップS110の処理を繰り返し実行する。そして、データセットから全てのスーパーバッチが選択された場合(ステップS111Yes)、処理を終了する。
なお、図4に示すフローチャートでは、あくまで一例として、データセットに含まれるスーパーバッチの学習が1周することを条件に学習を終了する場合を例示したが、任意のループ回数にわたってスーパーバッチの学習を繰り返し実行することができる。例えば、パラメータの修正値が所定値以下になるまで繰り返して学習を行うこととしてもよいし、ループ回数に制限を設けることとしてもよい。このように複数回にわたってスーパーバッチの学習がループされる場合、ループの度に訓練サンプルがシャッフルされる。
[効果の一側面]
上述してきたように、本実施例に係る割当ノード10は、スーパーバッチが分割された複数のミニバッチに関する学習を複数の計算ノード30A〜30Cに分散して並列処理させる。これによって、パラメータの修正が実施される単位であるスーパーバッチのサイズが、学習に関するデータ処理を実行するハードウェア、本例では計算ノード30が有するメモリの容量に制約を受けるのを抑制できる。したがって、本実施例に係る割当ノード10によれば、モデルのパラメータの修正が実施されるバッチサイズの大型化を実現できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[ドロップアウト]
ニューラルネットワークでは、モデル学習に用いられた訓練サンプルに対する識別率が高くなる一方で、訓練サンプル以外のサンプルに対する識別率が低くなる過学習が起こる場合がある。
このような過学習の発生を抑制するために、データ処理システム1では、各計算ノード30の間でモデルに含まれるニューロンのうち入力または出力を無効化するニューロンを定める乱数生成のアルゴリズム及びシード値を共有させることができる。例えば、モデルの各層に含まれるニューロンごとに0〜1の値をとる一様乱数を発生させ、乱数値が所定の閾値、例えば0.4以上である場合に当該ニューロンに対する入力及び出力を有効とする一方で、0.4未満である場合に当該ニューロンに対する入力又は出力を無効化する。このようにしてドロップアウトが実現される場合、割当ノード10は、一様乱数を発生させるアルゴリズムを各計算ノード30の間で共有させると共に、一様乱数の発生に用いるニューロン別のシード値も各計算ノード30の間で共有させる。その上で、割当ノード10は、各計算ノード30の間で同一のアルゴリズムを用いてニューロン別にシード値を変えることにより発生させられた一様乱数により全ニューロンのうち入力又は出力を無効化するニューロンを定め、これにより実施されるドロップアウトを、各計算ノード30で同一のスーパーバッチから分割されたミニバッチの学習が開始してから終了するまでの間にわたって継続する。
これによって、一側面として、次のような効果を得ることができる。メモリ容量の制約を受けることなくバッチサイズを大型化し、かつ過学習を防止することができる。つまり、スーパーバッチが分割された複数のミニバッチに関する学習を複数の計算ノードに分散して並列処理させるシステムにおいて、モデルに含まれるニューロンのうち入力または出力を無効化するニューロンを定める乱数生成のアルゴリズム及びシード値を共有し、各計算ノードからのパラメータの修正量の合計に基づいて、重みやバイアスを修正することにより、スーパーバッチサイズの単位で過学習を抑制するのと同様の学習を行うことができる。従って、メモリ容量の制約を受けることなくバッチサイズを大型化し、かつ過学習を防止することができる。
また、他の側面として、次のような効果を得る事ができる。例えば、各計算ノード30でミニバッチの学習が分散して実施される場合、ミニバッチに含まれる訓練サンプルの識別情報の通知やパラメータの修正量の合計の通知により、データ処理システム1の通信リソースが割かれる状況となる。このような状況下で、ドロップアウトを実施するための通信、例えば各計算ノード30で入力又は出力を無効化するニューロンを共有するための通知などを行わずともよくなる。さらに、各計算ノード30の間で同一のニューロンに対する入力又は出力が無効化された状態でスーパーバッチの学習を実現できるので、モデル学習の結果が安定する。すなわち、異なる台数の計算ノード30で同一のデータセットに関するモデル学習の分散処理が実施された場合でも同一の学習結果を得ることができる。それ故、ひいてはモデルの識別率の進捗、計算ノード30の台数、1台の計算ノード30あたりのミニバッチのサイズなどから、モデルが収束するまでの所要時間等を正確に予測することができる。
[機械学習プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図5を用いて、上記の実施例と同様の機能を有する機械学習プログラムを実行するコンピュータの一例について説明する。
図5は、実施例1及び実施例2に係る機械学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。図5に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜130及び150〜180の各部はバス140を介して接続される。
HDD170には、図5に示すように、上記の実施例1で示した分割部15a、割当部15b、取得部15c、修正部15d及び共有部15eと同様の機能を発揮する機械学習プログラム170aが記憶される。この機械学習プログラム170aは、図2に示した分割部15a、割当部15b、取得部15c、修正部15d及び共有部15eの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から機械学習プログラム170aを読み出した上でRAM180へ展開する。この結果、機械学習プログラム170aは、図5に示すように、機械学習プロセス180aとして機能する。この機械学習プロセス180aは、RAM180が有する記憶領域のうち機械学習プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、機械学習プロセス180aが実行する処理の一例として、図4に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の機械学習プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に機械学習プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から機械学習プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに機械学習プログラム170aを記憶させておき、コンピュータ100がこれらから機械学習プログラム170aを取得して実行するようにしてもよい。
1 データ処理システム
10 割当ノード
13 記憶部
13a データセット
13b モデルデータ
15 制御部
15a 分割部
15b 割当部
15c 取得部
15d 修正部
15e 共有部
30A,30B,30C 計算ノード
33 記憶部
33a データセット
33b モデルデータ
35 制御部
35a モデル実行部
35b 算出部

Claims (7)

  1. ニューラルネットワークをモデルとする機械学習方法であって、
    前記機械学習によって学習させるサンプルの集合であって、前記モデルのパラメータが修正される単位のバッチサイズを有する第1のバッチを複数の第2のバッチに分割する処理と、
    ニューラルネットワークの層構造およびパラメータが同一であるモデルが共有される複数のコンピュータに、前記第2のバッチに関する学習を割り当てる処理と、
    がコンピュータにより実行されることを特徴とする機械学習方法。
  2. 前記複数のコンピュータの間で前記モデルに含まれるニューロンのうち入力または出力を無効化するニューロンを定める乱数生成のアルゴリズム及びシード値を共有させる処理がさらに前記コンピュータにより実行されることを特徴とする請求項1に記載の機械学習方法。
  3. 前記分割する処理は、前記複数のコンピュータが有するメモリの容量にしたがって前記第2のバッチのサイズを決定することを特徴とする請求項1または2に記載の機械学習方法。
  4. 前記第2のバッチに含まれる訓練サンプルごとに算出された前記パラメータの修正量の合計を前記複数のコンピュータから取得する処理と、
    前記複数のコンピュータごとに取得された前記パラメータの修正量の合計が平均された平均値にしたがって前記モデルを修正する処理と、
    がさらに前記コンピュータにより実行されることを特徴とする請求項1、2または3に記載の機械学習方法。
  5. 前記複数のコンピュータの間で修正後のモデルを共有させる処理がさらに前記コンピュータにより実行されることを特徴とする請求項4に記載の機械学習方法。
  6. ニューラルネットワークをモデルとする機械学習を行う機械学習プログラムであって、
    前記機械学習によって学習させるサンプルの集合であって、前記モデルのパラメータが修正される単位のバッチサイズを有する第1のバッチを複数の第2のバッチに分割する処理と、
    ニューラルネットワークの層構造およびパラメータが同一であるモデルが共有される複数のコンピュータに、前記第2のバッチに関する学習を割り当てる処理と、
    をコンピュータに実行させることを特徴とする機械学習プログラム。
  7. ニューラルネットワークをモデルとする機械学習を行う情報処理装置であって、
    前記機械学習によって学習させるサンプルの集合であって、前記モデルのパラメータが修正される単位のバッチサイズを有する第1のバッチを複数の第2のバッチに分割する分割部と、
    ニューラルネットワークの層構造およびパラメータが同一であるモデルが共有される複数のコンピュータに、前記第2のバッチに関する学習を割り当てる割当部と、
    を有することを特徴とする情報処理装置。
JP2016150617A 2016-07-29 2016-07-29 機械学習方法、機械学習プログラム及び情報処理装置 Pending JP2018018451A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016150617A JP2018018451A (ja) 2016-07-29 2016-07-29 機械学習方法、機械学習プログラム及び情報処理装置
US15/661,455 US20180032869A1 (en) 2016-07-29 2017-07-27 Machine learning method, non-transitory computer-readable storage medium, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016150617A JP2018018451A (ja) 2016-07-29 2016-07-29 機械学習方法、機械学習プログラム及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2018018451A true JP2018018451A (ja) 2018-02-01

Family

ID=61010270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016150617A Pending JP2018018451A (ja) 2016-07-29 2016-07-29 機械学習方法、機械学習プログラム及び情報処理装置

Country Status (2)

Country Link
US (1) US20180032869A1 (ja)
JP (1) JP2018018451A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036779A (ja) * 2016-08-30 2018-03-08 株式会社東芝 電子装置、方法及び情報処理システム
WO2019235611A1 (ja) * 2018-06-07 2019-12-12 日本電気株式会社 分析装置、分析方法および記録媒体
JP2020077090A (ja) * 2018-11-06 2020-05-21 日本電信電話株式会社 分散処理システムおよび分散処理方法
JP2020119151A (ja) * 2019-01-22 2020-08-06 株式会社東芝 学習装置、学習方法およびプログラム
JP2020149460A (ja) * 2019-03-14 2020-09-17 ヤフー株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP2021026766A (ja) * 2019-07-31 2021-02-22 株式会社リコー ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体
JP2021043495A (ja) * 2019-09-06 2021-03-18 富士通株式会社 情報処理プログラムおよび情報処理方法
JP2021077322A (ja) * 2019-11-12 2021-05-20 北京小米智能科技有限公司Beijing Xiaomi Intelligent Technology Co.,Ltd. ハイパーネットワークトレーニングの方法及び装置、電子機器、記憶媒体
WO2023038074A1 (ja) * 2021-09-13 2023-03-16 株式会社島津製作所 細胞画像の学習時におけるメモリ容量判定システムおよび細胞画像の学習時におけるメモリ容量判定方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102610820B1 (ko) * 2017-09-27 2023-12-06 삼성전자주식회사 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법
US11461635B2 (en) * 2017-10-09 2022-10-04 Nec Corporation Neural network transfer learning for quality of transmission prediction
CN110163366B (zh) * 2018-05-10 2022-08-26 腾讯科技(深圳)有限公司 深度学习前向预测的实现方法、装置和机器设备
CN111309486B (zh) * 2018-08-10 2024-01-12 中科寒武纪科技股份有限公司 转换方法、装置、计算机设备和存储介质
KR20200051278A (ko) 2018-11-05 2020-05-13 삼성전자주식회사 인공 신경망에서의 작업 관리 방법 및 이를 포함하는 시스템
CN111198760A (zh) * 2018-11-20 2020-05-26 北京搜狗科技发展有限公司 一种数据处理方法和装置
US10789510B2 (en) * 2019-01-11 2020-09-29 Google Llc Dynamic minibatch sizes
WO2021243489A1 (zh) * 2020-05-30 2021-12-09 华为技术有限公司 一种神经网络的数据处理方法及装置
CN114330698B (zh) * 2022-03-15 2022-08-05 之江实验室 一种类脑计算机操作系统的神经模型存储系统及方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016037351A1 (en) * 2014-09-12 2016-03-17 Microsoft Corporation Computing system for training neural networks
US10540608B1 (en) * 2015-05-22 2020-01-21 Amazon Technologies, Inc. Dynamically scaled training fleets for machine learning
US10452995B2 (en) * 2015-06-29 2019-10-22 Microsoft Technology Licensing, Llc Machine learning classification on hardware accelerators with stacked memory
US10540588B2 (en) * 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US10679145B2 (en) * 2015-08-07 2020-06-09 Nec Corporation System and method for balancing computation with communication in parallel learning
US10402469B2 (en) * 2015-10-16 2019-09-03 Google Llc Systems and methods of distributed optimization
US10474951B2 (en) * 2015-10-23 2019-11-12 Nec Corporation Memory efficient scalable deep learning with model parallelization
US10572800B2 (en) * 2016-02-05 2020-02-25 Nec Corporation Accelerating deep neural network training with inconsistent stochastic gradient descent

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036779A (ja) * 2016-08-30 2018-03-08 株式会社東芝 電子装置、方法及び情報処理システム
JPWO2019235611A1 (ja) * 2018-06-07 2021-06-17 日本電気株式会社 分析装置、分析方法およびプログラム
WO2019235611A1 (ja) * 2018-06-07 2019-12-12 日本電気株式会社 分析装置、分析方法および記録媒体
JP7164799B2 (ja) 2018-06-07 2022-11-02 日本電気株式会社 分析装置、分析方法およびプログラム
JP2020077090A (ja) * 2018-11-06 2020-05-21 日本電信電話株式会社 分散処理システムおよび分散処理方法
JP7021132B2 (ja) 2019-01-22 2022-02-16 株式会社東芝 学習装置、学習方法およびプログラム
JP2020119151A (ja) * 2019-01-22 2020-08-06 株式会社東芝 学習装置、学習方法およびプログラム
JP2020149460A (ja) * 2019-03-14 2020-09-17 ヤフー株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP7171477B2 (ja) 2019-03-14 2022-11-15 ヤフー株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP2021026766A (ja) * 2019-07-31 2021-02-22 株式会社リコー ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体
JP2021043495A (ja) * 2019-09-06 2021-03-18 富士通株式会社 情報処理プログラムおよび情報処理方法
JP2021077322A (ja) * 2019-11-12 2021-05-20 北京小米智能科技有限公司Beijing Xiaomi Intelligent Technology Co.,Ltd. ハイパーネットワークトレーニングの方法及び装置、電子機器、記憶媒体
JP7073437B2 (ja) 2019-11-12 2022-05-23 北京小米智能科技有限公司 ハイパーネットワークトレーニングの方法及び装置、電子機器、記憶媒体
US11443189B2 (en) 2019-11-12 2022-09-13 Beijing Xiaomi Intelligent Technology Co., Ltd. Hypernetwork training method and device, electronic device and storage medium
WO2023038074A1 (ja) * 2021-09-13 2023-03-16 株式会社島津製作所 細胞画像の学習時におけるメモリ容量判定システムおよび細胞画像の学習時におけるメモリ容量判定方法

Also Published As

Publication number Publication date
US20180032869A1 (en) 2018-02-01

Similar Documents

Publication Publication Date Title
JP2018018451A (ja) 機械学習方法、機械学習プログラム及び情報処理装置
CN110263921B (zh) 一种联邦学习模型的训练方法及装置
Andonie et al. Weighted random search for CNN hyperparameter optimization
Demidova et al. SVM classification: Optimization with the SMOTE algorithm for the class imbalance problem
CN110688219B (zh) 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法
CN112764936B (zh) 基于深度强化学习的边缘计算服务器信息处理方法及装置
JP6870508B2 (ja) 学習プログラム、学習方法及び学習装置
US10248527B1 (en) Automated device-specific dynamic operation modifications
CN112667400A (zh) 边缘自治中心管控的边云资源调度方法、装置及系统
Amin et al. Budgeted prediction with expert advice
Nguyen et al. Scaling upf instances in 5g/6g core with deep reinforcement learning
Duarte et al. A dynamic migration policy to the island model
US20200134467A1 (en) Sharing preprocessing, computations, and hardware resources between multiple neural networks
Bhuiyan et al. Fast parallel algorithms for edge-switching to achieve a target visit rate in heterogeneous graphs
CN112035234B (zh) 分布式批量作业分配方法及装置
Schmidt et al. Load-balanced parallel constraint-based causal structure learning on multi-core systems for high-dimensional data
Vojáček et al. Growing neural gas–a parallel approach
Limmer et al. Investigation of strategies for an increasing population size in multi-objective CMA-ES
CN111291792B (zh) 基于双进化的流量数据类型集成分类方法及装置
CN115577798A (zh) 基于随机加速梯度下降的半联邦学习方法及装置
CN115220818A (zh) 基于深度强化学习的实时依赖型任务卸载方法
CN114912627A (zh) 推荐模型训练方法、系统、计算机设备及存储介质
Peteiro-Barral et al. A study on the scalability of artificial neural networks training algorithms using multiple-criteria decision-making methods
WO2022259481A1 (ja) 学習方法
Shashkov et al. Transfer learning for ensembles: Reducing computation time and keeping the diversity

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200414

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201110