JPWO2018168695A1 - 分散機械学習装置、分散機械学習方法および分散機械学習プログラム - Google Patents

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

Info

Publication number
JPWO2018168695A1
JPWO2018168695A1 JP2019505967A JP2019505967A JPWO2018168695A1 JP WO2018168695 A1 JPWO2018168695 A1 JP WO2018168695A1 JP 2019505967 A JP2019505967 A JP 2019505967A JP 2019505967 A JP2019505967 A JP 2019505967A JP WO2018168695 A1 JPWO2018168695 A1 JP WO2018168695A1
Authority
JP
Japan
Prior art keywords
block
parameters
parameter
machine learning
distributed machine
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
JP2019505967A
Other languages
English (en)
Inventor
晴道 横山
晴道 横山
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2018168695A1 publication Critical patent/JPWO2018168695A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

複数のパラメータを効率的に収束させることができる分散機械学習装置等を提供する。分散機械学習装置300は、予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を複数決定し、複数のパラメータを最適化する処理を実行した結果を基にブロックに属するパラメータの部分集合の各々の変化量を取得し、当該取得した変化量に基づき前記ブロックにおける前記パラメータの部分集合の要素を変化させるブロック構成決定部301を備える。

Description

本発明は、機械学習を分散して実行する技術に関する。
機械学習が近年積極的に研究されている。機械学習とは、多数のデータから規則性を学習して、未知のデータや将来の事象に対して予測すること、もしくは、それを実現する手段である。予測を行うときは、データの特徴量およびパラメータによって値が決定される関数を用いて予測モデルを作成する。機械学習の目的は、正しい予測を行うことができる予測モデルのパラメータを決定することである。より具体的に述べると、予測モデルと与えられたデータから計算される損失関数を、パラメータに対して最適化することである。
いくつかの要因によって、学習時間は増加する。これらの要因としては、データ量の増大、モデルのパラメータの増大等がある。学習時間を減少させる一つの手法として、最適化の計算を、複数のワーカー(複数のCPU(Central Processing Unit)コアおよび複数の計算ノード等のリソース)を用いて並列処理させることが挙げられる。パラメータの集合は、ブロックと呼ばれるパラメータの部分集合に分割される。一般的に、一つのワーカーは、一つのブロックに属するパラメータに対し、最適化処理を行う。
並列化の方式としては、データを分割して処理を分散させる方式がある。これはデータ量が大きいときに有効である。また、パラメータをいくつかのブロックに分割してそれぞれのワーカーで一部のパラメータのみを最適化するという手法もある。モデルの次元数が大きいときにはこれが有効である。本発明は後者の並列化方式に係るものである。尚、モデルの次元数が大きいほど、演算の正確性の精度は高まる。
非特許文献1は、特徴量間の相関に基づいてパラメータをクラスタリングし、最適化の逐次処理を行う手法を開示する。この手法では、データの特徴量とパラメータが対応する線形モデルを対象としており、特徴量間の相関に基づいてパラメータをクラスタリングし、複数のCPUコアの各々は、クラスタに属するパラメータについてのみ最適化の逐次処理を行う。
Scherrer, Chad, et al. "Feature clustering for accelerating parallel coordinate descent." NIPS'12 Proceedings of the 25th International Conference on Neural Information Processing Systems, Pages 28-36, Lake Tahoe, Nevada, -December 03 - 06, 2012
しかしながら、非特許文献1に開示される手法では、最適化の途中においては、ブロック分けされたパラメータ毎に収束の度合が異なることに注目していない。全てのパラメータの収束を短時間で効率的に完了するには、パラメータが十分収束しているものについては、これ以上最適化は不要であり、まだ収束していないパラメータについてのみ更なる最適化が必要である。収束の種類やスピードの異なるパラメータがワーカーに遍在すると、夫々のワーカーが担当するパラメータに対する必要な最適化の計算の量は異なってくる。即ち、パラメータの収束の度合いがワーカー間で異なるために、全てのパラメータが収束するまでに長い時間を要する。
そこで、本発明は、上述した課題に鑑み、複数のパラメータを効率的に収束させることができる分散機械学習装置等を提供することを目的とする。
上記の課題を解決するために、本発明の第1の観点に係る分散機械学習装置は、
予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を複数決定し、
前記複数のパラメータを最適化する処理を実行した結果を基に、前記ブロックに属するパラメータの部分集合の各々の変化量を取得し、当該取得した変化量に基づき、前記ブロックにおける前記パラメータの部分集合の要素を変化させるブロック構成決定手段を備える。
本発明の第2の観点に係る分散機械学習方法は、
予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を複数決定し、
前記複数のパラメータを最適化する処理を実行した結果を基に、前記ブロックに属するパラメータの部分集合の各々の変化量を取得し、当該取得した変化量に基づき、前記ブロックにおける前記パラメータの部分集合の要素を変化させる。
本発明の第3の観点に係る分散機械学習プログラムは、
予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を複数決定し、
前記複数のパラメータを最適化する処理を実行した結果を基に、前記ブロックに属するパラメータの部分集合の各々の変化量を取得し、当該取得した変化量に基づき、前記ブロックにおける前記パラメータの部分集合の要素を変化させることをコンピュータに実現させる。
尚、分散機械学習プログラムは非一時的な記憶媒体に格納されていてもよい。
本発明によれば、複数のパラメータを効率的に収束させることができる分散機械学習装置等を提供することができる。
本発明の第1の実施形態にかかる分散機械学習装置の構成例を示すブロック図である。 パラメータ情報記憶部内のデータ構成例を示す図である。 ブロック情報記憶部内のデータ構成例を示す図である。 本発明の第1の実施形態にかかる分散機械学習装置の変更例を示すブロック図である。 本発明の第1の実施形態にかかる分散機械学習装置の動作例を示すフローチャートである。 ワーカーの動作例を示すフローチャートである。 ブロック構成決定部の動作例を示すフローチャートである。 本発明の第2の実施形態にかかる分散機械学習装置の構成例を示すブロック図である。 パラメータ特徴記憶部内のデータ構成の一例を示す図である。 本発明の第2の実施形態にかかる分散機械学習装置のブロック構成決定部の動作例を示すフローチャートである。 本発明の第3の実施形態にかかる分散機械学習装置の構成例を示すブロック図である。 本発明にかかる各実施形態を実施するための情報処理装置の構成例である。
<第1の実施形態>
一般的に、分散機械学習装置は、学習データを用いて予測モデルを最適化することを目的とする。予測モデルは、離散値もしくは連続値をとる、複数のパラメータによって特徴づけられる。よって、モデルの最適化とは、モデルのパラメータを最適化することを意味する。最適化とは、学習データとモデルとから計算される損失関数を最小化することである。学習データとは予測モデルが機械学習に使用するデータである。
最適化は、ある処理と次の処理との間の変化量(変化率)を考慮しつつ、逐次処理を繰り返すことによって達成される。最適化の例としては、現在のパラメータにおける勾配値を計算し適当な比率を乗じて損失関数に足しこむ、という処理をパラメータ数分繰り返す勾配降下法がある。第一の実施の形態では、勾配降下法を例にあげて説明するが、最適化の逐次処理の内容については、これには限定されない。本実施形態において、勾配を表わす勾配値とは、あるパラメータが次のパラメータへ変化するときの変化率である。
最適化の逐次処理を繰り返すと、パラメータが最適な値に近づく。そのため、計算されるパラメータの更新差分が、逐次処理のたびに小さくなる。逐次処理を行ってもパラメータの値がほとんど更新されなくなったとき、パラメータは収束した、と表現する。
第1の実施形態は、パラメータの最適化を複数のワーカー150a、150b、150c(以下、150a−150cと記載)で並列に実行する。ワーカーとは、複数のCPUコアおよび複数の計算ノード等のリソースを指す。第1の実施形態の特徴は、ワーカー150a−150c同士における、パラメータの収束の度合を互いに平準化することにある。最適化の対象となるパラメータの集合は、ブロックと呼ばれるパラメータの部分集合に分割される。一つのワーカーは、一つのブロックに属するパラメータに対し、最適化処理を行う。あるブロックに対する逐次処理を行うワーカー150a−150cは固定しても良いし、逐次処理のたびごとにブロックに対する逐次処理を行うワーカー150a−150cを変えても良い。
(分散機械学習装置)
本発明の第1の実施形態に係る分散機械学習装置100について図面を参照して説明する。図1は、分散機械学習装置100の構成例を示すブロック図である。分散機械学習装置100は、ブロック構成決定部110、ブロック情報記憶部120、パラメータ情報記憶部130、全体管理部140およびワーカー150a−150cを備える。
パラメータ情報記憶部130は、最適化の対象である予測モデルのパラメータに関する情報を格納する。パラメータに関する情報として、各パラメータの変化量(パラメータが収束する度合いを示す。以下、この度合いを「収束度」と記載する)を格納してもよい。パラメータに関する情報はパラメータ情報とも呼ばれる。ブロック構成決定部110、および、ワーカー150a−150cは、必要に応じて、パラメータ情報記憶部130からパラメータ情報を取得する。また、パラメータ情報記憶部130は、ワーカー150a−150cから通知されたパラメータの値もしくはパラメータの値の更新差分も、パラメータ情報として格納する。
パラメータ情報記憶部130におけるデータの構成の一例を図2に示す。パラメータ情報は、「パラメータID」(ID:Identifier)、「値」、「勾配値」をデータ項目として備える。パラメータIDは、パラメータを一意に識別するIDである。値は、パラメータの値である。勾配値は、前回の逐次処理で計算した勾配を表わす値である。尚、パラメータの収束度合いとしての勾配値は必須ではないが、第1の実施形態においては、勾配値をパラメータ情報に含むものとする。
ブロック情報記憶部120は、それぞれのブロックに対して、どのパラメータが属するかを示すブロック情報を記録する。ブロック情報は、図3に示すように、「ブロックID」、「属するパラメータID」をデータ項目として備える。ブロックIDはブロックを一意に識別可能なIDである。属するパラメータIDは、ブロックIDに紐付けられたブロックに属するパラメータ(パラメータID)の集合を示す。
ブロック情報は、ワーカー150a−150cからの要求により読み出される。また、ブロック情報は、ブロック構成決定部110からの要求または命令に応じて更新される。
ブロック構成決定部110は、それぞれのパラメータの収束の度合いに応じて、パラメータの集合であるブロックの構成を変更する。ブロック構成決定部110は、予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を決定する。即ち、複数のブロックの構成が決定される。またブロック構成決定部10は、ワーカーによって複数のパラメータを最適化する処理が実行された結果を基に、ブロックに属するパラメータの部分集合における各々のパラメータの変化量を取得し、当該取得した変化量に基づき、ブロックにおける前記パラメータの部分集合の要素を変化させる。
ブロック構成決定部110は、ブロック収束度推定部111、移動対象パラメータ決定部112および移動先ブロック決定部113を備える。
ブロック収束度推定部111は、ブロックに属するパラメータの部分集合の各々の変化量(パラメータの収束度)を基に、パラメータの部分集合の収束度を推定する。パラメータの部分集合とは、夫々のブロックに属する複数のパラメータを指す。尚、パラメータの収束度を示す値の例としては、勾配値が挙げられる。同じブロックに属する複数のパラメータの、夫々の勾配値は正規化された値であってもよい。これによりパラメータ値毎にスケールが違っても、計算結果に影響を及ぼさないようにすることができる。
ブロックの収束度(ブロック収束度)は、ブロックに属する全てのパラメータの収束度を用いて計算される。ブロック収束度は、例えば、ブロックに属する全てのパラメータの収束度の平均として計算される。ブロック収束度推定部111は、全てのブロックに対してブロック収束度を計算する。ブロック構成決定部110は、計算したブロック収束度を作業メモリ(不図示)等に一時記憶してもよい。
移動対象パラメータ決定部112は、ブロック収束度推定部111が推定したパラメータの収束度を基に、現在属するブロックから他のブロックへ移動すべき移動対象パラメータを決定する。ブロックIDをインデックス(i)、即ち 1,2,・・・,B(Bはブロック総数)として、それぞれのブロックのブロック収束度を、c1, c2, …, cBとする。また時刻tにおけるブロックiに属するパラメータの数をNi(t)とする。
移動対象パラメータ決定部112は、次の時刻t+1において、それぞれのブロックiに属するパラメータの数Ni(t+1)を、前記計算したブロックの収束度に基づいて決定する。一例として、時刻t+1でブロックに属するパラメータの数を、それぞれのブロックの収束度に逆比例するように決定する。つまり、移動対象パラメータ決定部112は、以下の式(1)を満たすように時刻t+1でブロックに属するパラメータの数を決定する。
Figure 2018168695
移動対象パラメータ決定部112は、それぞれのブロックiに対して、ブロックiに属するパラメータの部分集合の変化量を表わす{Ni(t)-Ni(t+1)}を計算する。計算結果が正の場合、ブロックiに属するパラメータ数は減少する、即ち、そのブロックの負荷は減少することを示す。計算結果が負の場合、ブロックiに属するパラメータ数は増加する、即ち、そのブロックの負荷は増加することを示す。移動対象パラメータ決定部112は、計算結果が負となるブロックiの中からランダムに、{Ni(t)-Ni(t+1)}個のパラメータを選択して、移動対象パラメータとする。ブロック構成決定部110は移動対象パラメータの情報を作業メモリ(不図示)等に一時格納してもよい。移動対象パラメータ決定部112は、この操作を全てのブロック(ワーカー)に対して実行する。
移動先ブロック決定部113は、移動対象パラメータとされた全てのパラメータに対して、複数のブロックの内から、移動先になるべきブロックを決定する。移動対象パラメータとされた全てのパラメータに対して、先に計算されたブロック毎におけるパラメータの部分集合の変化量{Ni(t)-Ni(t+1)}が正であるようなブロックからランダムにひとつ選択して、移動先ブロックとする。これは、パラメータ最適化処理の負荷が大きいブロックに属するパラメータを、負荷の小さいブロックに移動させるためである。この結果、ワーカー150a−150cにおいて、パラメータの収束度が互いに平準化される。ブロックの移動において、ブロックiに対して、ブロックに既にあるパラメータの数と、移動対象となるパラメータの数の和がNi(t+1)を超えないように制限する。これによって、パラメータ移動後はNi(t)(i=1,2,・・・,B)に従う数のパラメータを含むブロックが構成される。
ブロック構成決定部110は、先に計算されたブロックの構成、つまり、どのブロックがどのパラメータを有するかという情報に従って、ブロック情報記憶部120のブロック情報を更新、即ち再構成するように制御する。
ワーカー150a−150cは、ワーカーの集合体である。各ワーカー150a−150cに対する入出力は同一でないが、各ワーカー150a−150cの内部で行う処理は同じである。
ワーカー150a−150cは、更新情報記憶部151と、勾配計算部152、とを備える。
更新情報記憶部151は、勾配の計算に必要となる、パラメータ値(θ)および学習データ(η)を格納する。ワーカー150a−150cは、各々のワーカー150a−150cに対応するブロックに紐付けられたパラメータIDをブロック情報記憶部120より取得し、当該パラメータIDに紐付けられたパラメータ値θをパラメータ情報記憶部130から取得して更新情報記憶部151に格納する。学習データはワーカー150a−150c内部の学習データ記憶部(不図示)に保存されていても良い。もしくは、図4に示す分散機械学習装置のように、学習データ記憶部160を通信可能に接続してもよい。学習データ記憶部160は、学習データを格納する。この場合、ワーカー150a−150cは、学習データ記憶部160から、パラメータの最適化学習に必要となる、学習データの全体またはその一部を取得する。
勾配計算部152は、更新情報記憶部151に記録されたパラメータ値θと学習データとを勾配降下法の最適化アルゴリズム(関数)に代入して算出結果を得ることで、パラメータの勾配値を出力する。
ワーカー150a−150cは、学習データに基づきパラメータの最適化に関わる逐次処理を実行する、即ち、学習データを用いて予測モデルを学習させ、予測モデルのパラメータを改良(最適化)する。複数のワーカー150a−150cの各々が並列に動作することによってパラメータの最適化を行う。以下、勾配降下法を基に、ワーカー150a−150cが行う最適化の逐次処理の動作を説明する。
ワーカー150a−150cは、ブロック情報記憶部120からブロックIDで示されるブロックが含むパラメータのIDを取得する。その後、ワーカー150a−150cは、パラメータ情報記憶部130から、取得したパラメータIDに対応するパラメータの現在の値θを取得し、更新情報記憶部151に記録する。
ワーカー150a−150cは、勾配を計算するために学習データの全体またはその一部を取得して(これを学習データηとする)、更新情報記憶部151に記録する。
勾配計算部152は、更新情報記憶部151に記録されたパラメータ値θと学習データηを最適化のための所定の計算式に代入し、パラメータの勾配値gを算出する。ワーカー150a−150cは、更新情報記憶部151に記憶されるパラメータ値θを勾配値gに基づき更新し、新たなパラメータ値θを出力する。ワーカー150a−150cの勾配計算部152は、更新されたパラメータ値θを含むパラメータ情報をパラメータ情報記憶部130に記録する。パラメータ情報には勾配値gが含まれていても良い。更に、パラメータ値θおよびパラメータ値θ等を用いて算出される新たな勾配値gが含まれていても良い。
この時、勾配計算部152は、更新情報記憶部151に前回記録されたパラメータ情報(パラメータ値θ等)と、学習データ記憶部160に前回記録された学習データηとを消去してもよい。以上がワーカー150a−150cの行う最適化の逐次処理である。
ワーカー150a−150cは、所定の時間、もしくは、所定の回数だけ、上記の逐次処理を実行する。ワーカー150a−150cは処理の間に互いに同期をとっても良い。即ち、ある逐次処理を全てのワーカー150a−150cが終了するまで、次の逐次処理を開始しないよう制御してもよい。逆に、ワーカー150a−150c各自が独立に処理を進めてもよい。即ち、各々のワーカー150a−150cが他のワーカー150a−150cの逐次処理終了を待たずに、自身ペースでの逐次処理を終了させてもよい。
全体管理部140は、ワーカー150a−150cの逐次計算とブロックの構成のためのスケジュール管理を行う。全体管理部140は、ワーカー150a−150cに既定の回数もしくは既定の時間だけ、最適化の逐次計算を実行するように指示する。この実行後、全体管理部140は、ワーカー150a−150cでの逐次処理によるパラメータの収束度に基づいて、最適化全体の収束判定を行う。全体管理部140は、最適化の収束判定において、パラメータが十分に収束し、最適化の逐次処理がこれ以上必要ないか否かを判定する。収束の判定の一例としては、前回の勾配値の総和が所定の閾値を超過しているか否かを判定することである。他の判定例としては、所定のデータ(学習に使っていないデータが望ましい)と現在のパラメータとで計算される損失関数の値が所定の閾値を超過しているか否かを判定することである。収束判定の結果が真であるとき、全体管理部140は、分散機械学習装置100の動作を終了する。収束判定の結果が偽であるとき、全体管理部140は、ブロック構成決定部110に再度動作を行うように要求する。
(分散機械学習装置の動作)
本発明の第1の実施形態における分散機械学習装置100の動作について図5〜図7のフローチャートを参照して説明する。以下、分散機械学習装置100全体動作のフロー、ワーカーの動作フロー、ブロック構成決定部110の動作フローについて記載された順序で説明する。
まず、分散機械学習装置100全体動作について、図5に示すフローチャートを参照して説明する。
ステップS111において、分散機械学習装置100の全体管理部140は、既定の回数もしくは既定の時間間隔で、各ワーカー150a−150cが並列に逐次処理を実行するよう指示する。指示を受けた各ワーカー150a−150cは逐次処理(最適化のための学習)を実行する。
ステップS112において、全体管理部140は、最適化の処理が収束したかどうかを判定する。収束していると判定されると、全体管理部140は分散機械学習装置100の動作を終了させる。収束していないと判定されると、処理はステップS113へ進められる。
ステップS113において、全体管理部140は、ブロック構成決定部110に対して、パラメータのブロックを再構成するよう要求する。ブロック構成決定部110は、パラメータのブロックを再構成する。
尚、上記のステップS111およびステップS113についての詳細は後述する。
ステップS111の詳細な動作、即ち、ワーカー150a−150cの動作について、図6に示すフローチャートを参照して説明する。
まず、ステップS121において、全体管理部140からの指示に応じて、ワーカー150a−150cは、自身が最適化の対象とすべきブロックを判断し(これは予め設定されていても良い)、当該ブロックに属するパラメータIDを、ブロック情報記憶部120(図3参照)から取得する。
ステップS122において、ワーカー150a−150cは、取得したパラメータIDに基づき、パラメータ情報記憶部130(図2参照)から当該パラメータIDに紐付けられたパラメータ値θを取得し、取得したパラメータ値θを更新情報記憶部151に記録する。
ステップS123において、ワーカー150a−150cの勾配計算部152は、取得したパラメータ値θと学習データηとに基づいて、最適化の対象とすべきブロックのパラメータの勾配値gを所定の関数やアルゴリズムを用いて算出する。また、算出された勾配値gを用いて、パラメータ値θを更新する。
ステップS124において、ワーカー150a−150cの勾配計算部152は、更新されたパラメータ値θをパラメータ情報記憶部130(図2参照)に格納する。
ステップS125において、ワーカー150a−150cは、既定の回数分逐次処理を実行したかどうかを判定する。既定の回数分で実行したと判定されると、ワーカー150a−150cは動作を終了する。既定の回数分実行していないと判定されると、ワーカー150a−150cは、ステップS121に処理を戻し、ステップS121−S124の逐次処理を再度実行する。尚、ワーカー150a−150cが既定の回数分および規定の時間間隔で逐次処理を実行したかどうかを判定してもよい。
以上により、ワーカー150a−150cの動作を終了する。
ステップS113の詳細な動作、即ち、ブロック構成決定部110の動作について、図7に示すフローチャートを参照して説明する。
ステップS131において、全体管理部140からの再構成の要求に応じて、ブロック構成決定部110のブロック収束度推定部111は、ブロックの収束度を推定する。そのため、ブロック収束度推定部111は、まず、それぞれのパラメータの収束度を推定する。パラメータの収束度は、一例として、そのパラメータの前回の勾配値である。他の例として、複数のパラメータの勾配値を正規化した値を用いることもできる。これにより、パラメータの値のスケールの違いを無視することができる。尚、収束度の計算方法はこれらの例に限定されない。
ステップS132において、移動対象パラメータ決定部112は、推定したブロックの収束度に基づき、ブロックに属するパラメータの部分集合の各々の変化量を算出する。更に、移動対象パラメータ決定部112は、その算出結果に基づいてブロック毎に移動するパラメータを特定する。
ステップS133において、移動先ブロック決定部113は、移動するパラメータそれぞれに対して、移動先のブロック(ブロックID)を決定する。
ステップS134において、移動先ブロック決定部113は、決定されたブロックへと、パラメータを移動させる。すなわち、移動先ブロック決定部113は、先に計算された移動対象パラメータと移動先ブロックのIDとを用いて、ブロック情報記憶部120内のブロック情報を更新する。このようにパラメータの移動によって各ブロックのパラメータの収束度の平準化が行われる。
以上により、ブロック構成決定部110の動作を終了する。
(第1の実施形態の効果)
上述したように本発明の第1の実施形態に係る分散機械学習装置100によると、全てのパラメータを短い時間で収束させることができる。これは、ブロック構成決定部110が、ワーカー150a−150cにおけるパラメータの収束の度合を互いに平準化するからである。
<第2の実施形態>
本発明の第2の実施形態に係る分散機械学習装置200について説明する。分散機械学習装置200は、最適化開始時に、パラメータ間の類似性に基づいてパラメータをブロック化する。そして、分散機械学習装置200は、最適化の途中でブロックの構成を変更(再構成)するときも、パラメータの類似性を考慮する。
パラメータ間の類似性は、パラメータに付与される特徴の間の距離として計算される。計算の一例として、特徴が正規化された多次元のベクトルとして与えられ、ベクトルの各要素の差の平方二乗和として距離が計算される。この距離によってパラメータをクラスタリングすることによって、最適化を行う際のパラメータのブロックを得る。それぞれのクラスタ(ブロック)には、中心となる点があり、それをセントロイドと呼ぶ。特徴が多次元のベクトルで表されている場合は、セントロイドはブロックに属する全てのパラメータの特徴ベクトルの平均となる。
(分散機械学習装置)
分散機械学習装置200は、図8に示すように、ブロック構成決定部210、ブロック情報記憶部120、パラメータ情報記憶部130、全体管理部140、ワーカー150a−150cおよびパラメータ特徴記憶部260を備える。
パラメータ特徴記憶部260は、パラメータの特徴情報を記録する。パラメータ特徴情報は、図9に示すように、データ項目として「パラメータID」と「特徴」とを備える。パラメータIDは、パラメータを一意に識別可能なIDである。特徴は、一例として、特徴を表す多次元ベクトルの値である。
ブロック構成決定部210は、ブロック収束度推定部211、移動対象パラメータ決定部212および移動先ブロック決定部213を備える。
ブロック収束度推定部211は、ブロックの収束度を推定する。ブロックの収束度は、ブロックに属する全てのパラメータの収束度から計算される。例えば、ブロック収束度推定部211は、ブロックに属する全てのパラメータの収束度の平均を計算し、計算結果をブロックの収束度とする。尚、パラメータの収束度を示す値の例としては、勾配値、またはブロックに属する複数のパラメータの勾配値を正規化した値である。ブロック収束度推定部211は、全てのブロックに対してブロック収束度を算出する。
移動対象パラメータ決定部212は、パラメータ特徴記憶部260からあるブロックに属するパラメータの部分集合の各々の類似性を表す情報を取得し、取得した類似性を表す情報を基に、移動対象パラメータを決定する。
類似性を表す情報について説明する。先ず、移動対象パラメータ決定部212は、ブロックのセントロイドを計算する。本実施形態の例では、移動対象パラメータ決定部212は、パラメータ特徴記憶部260からブロックに属する全てのパラメータの特徴(値)を取得し、取得した特徴(値)の平均を算出し、算出結果である値をセントロイドとする。そしてブロックに属する全てのパラメータとセントロイドとの距離を計算して、その距離が大きい順に並べる。更に、移動対象パラメータ決定部212は、当該距離が大きい順に、算出された|Ni(t)-Ni(t+1)|(パラメータ個数)を移動対象パラメータに設定する。即ち、この距離が類似性を表わす情報となる。
移動先ブロック決定部213は、移動対象パラメータとされた全てのパラメータに対して、移動先ブロックを決定する。移動先ブロック決定部213は、移動対象パラメータとされた全てのパラメータの内、先に計算されたブロックのパラメータの数の差{Ni(t)-Ni(t+1)}が正であるブロック(即ち、負荷が少ないブロック)であり、かつ、セントロイドからの距離が最も近いブロック(特徴が平均に近いブロック)をひとつ選択して、移動先ブロックとする。尚、各ブロックをセントロイドからの距離が近い順序に並べ、当該順序に沿って移動先ブロックを選択してもよい。
このとき、移動先ブロック決定部113は、ブロックiに対して、ブロックに既にあるパラメータの数と、移動対象となるパラメータの数の和がNi(t+1) を超えないように制限を設ける。これによって、パラメータ移動後はNi(t) (i=1,2, ・・・, B)に従う数のパラメータを含むブロックが構成される。
ブロック構成決定部210は、先に計算されたブロックの構成、つまり、どのブロックがどのパラメータを有するかという情報に従って、ブロック情報記憶部120のブロック情報を更新する。
その他の構成要素については第1の実施形態と同様である。
(分散機械学習装置の動作)
本発明の第2の実施形態における分散機械学習装置200のブロック構成決定部210の動作について図10を参照して説明する。尚、分散機械学習装置200全体動作のフローおよびワーカーの動作フローについては、図5および図6と同様であるため説明を省略する。
まず、ステップS231において、ブロック収束度推定部211は、ブロックの収束度を推定する。
ステップS232において、移動対象パラメータ決定部212は、ブロック収束度を基に、現在のブロックから他のブロックへと移動するパラメータを決定する。この際、移動対象パラメータ決定部212は、ブロックのセントロイドを計算する。具体的に、移動対象パラメータ決定部212は、ブロックに属する全てのパラメータの特徴の平均を算出して、算出結果をセントロイドに設定する。更に、移動対象パラメータ決定部212は、ブロックに属する全てのパラメータとセントロイドとの距離を計算して、その距離が大きいもの順に並べる。更に、その順に沿って、|Ni(t) - Ni(t+1)|個のパラメータを選択して、選択されたパラメータを移動対象パラメータとする。即ち、当該距離が大きい順に移動対象パラメータを設定する。
ステップS233およびS234は図7のS133およびS134と同じである。
以上により、ブロック構成決定部210の動作を終了する。
(第2の実施形態の効果)
本発明の第2の実施形態に係る分散機械学習装置200は、全てのパラメータを効率的に短時間で収束させることができる。これは、分散機械学習装置200が、パラメータの収束の度合をワーカー150a−150cにおいて互いに平準化するからである。更に、分散機械学習装置200は、ブロックに含まれるパラメータを互いに類似させつつ、ブロックの構成を変化させることができるため、最適化の収束を一層高速化することができる。
<第3の実施形態>
本発明の第3の実施形態は、第1および第2の実施形態の最小構成である。図11に示すように、本発明の第3の実施形態に係る分散機械学習装置300は、ブロック構成決定部301と図示されない複数のワーカーとを備える。
ブロック構成決定部301は、学習データを用いた予測モデルのパラメータを最適化する処理を実行した結果に基づき、パラメータの部分集合であるブロックの構成を決定する。
複数のワーカーは、学習データを基に、自装置に割り当てられたブロックに属するパラメータの部分集合の各々の変化量(パラメータの収束度)を算出し、当該算出結果に基づきパラメータの部分集合を変化させる。
第3の実施形態に係る分散機械学習装置300は、複数のパラメータを効率的に短時間で収束させることができる。これは、ワーカーが、パラメータの収束の度合を互いに平準化するからである。また、ブロック構成決定部301、最適化の対象となるパラメータのブロックを適宜再構成するからである。
(情報処理装置の構成)
上述した本発明の各実施形態において、図1、図8および図11に示す各分散機械学習装置の各構成要素は、機能単位のブロックを示している分散機械学習装置の各構成要素の一部又は全部は、例えば図12に示すような情報処理装置1とプログラムとの任意の組み合わせを用いて実現される。情報処理装置1は、一例として、以下のような構成を含む。
・CPU501
・ROM(Read Only Memory)502
・RAM(Random Access Memory)503
・RAM503にロードされるプログラム504
・プログラム504を格納する記憶装置505
・記録媒体506の読み書きを行うドライブ装置507
・通信ネットワーク509と接続する通信インターフェース508
・データの入出力を行う入出力インターフェース510
・各構成要素を接続するバス511
本願の各実施形態における分散機械学習装置の各構成要素は、これらの機能を実現するプログラム504を1つまたはそれ以上のCPU501が取得して実行することで実現される。分散機械学習装置の各構成要素の機能を実現するプログラム504は、例えば、予め記憶装置505やRAM503に格納されており、必要に応じてCPU501が読み出す。なお、プログラム504は、通信ネットワーク509を介してCPU501に供給されてもよいし、予め記録媒体506に格納されており、ドライブ装置507が当該プログラムを読み出してCPU501に供給してもよい。
各装置の実現方法には、様々な変形例がある。例えば、分散機械学習装置は、構成要素毎にそれぞれ別個の情報処理装置とプログラムとの任意の組み合わせにより実現されてもよい。また、分散機械学習装置が備える複数の構成要素が、一つの情報処理装置1とプログラムとの任意の組み合わせにより実現されてもよい。
また、分散機械学習装置の各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
分散機械学習装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
分散機械学習装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
以上、本実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は2017年3月17日に出願された日本出願特願2017−052812を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 :情報処理装置
100 :分散機械学習装置
110 :ブロック構成決定部
111 :ブロック収束度推定部
112 :移動対象パラメータ決定部
113 :移動先ブロック決定部
120 :ブロック情報記憶部
130 :パラメータ情報記憶部
140 :全体管理部
150a :ワーカー
150b :ワーカー
150c :ワーカー
151 :更新情報記憶部
152 :勾配計算部
160 :学習データ記憶部
200 :分散機械学習装置
210 :ブロック構成決定部
211 :ブロック収束度推定部
212 :移動対象パラメータ決定部
213 :移動先ブロック決定部
260 :パラメータ特徴記憶部
300 :分散機械学習装置
301 :ブロック構成決定部
302a :ワーカー
302b :ワーカー
302c :ワーカー
501 :CPU
503 :RAM
504 :プログラム
505 :記憶装置
506 :記録媒体
507 :ドライブ装置
508 :通信インターフェース
509 :通信ネットワーク
510 :入出力インターフェース
511 :バス

Claims (10)

  1. 予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を複数決定し、
    前記複数のパラメータを最適化する処理を実行した結果を基に、前記ブロックに属するパラメータの部分集合の各々の変化量を取得し、当該取得した変化量に基づき、前記ブロックにおける前記パラメータの部分集合の要素を変化させるブロック構成決定手段
    を備える分散機械学習装置。
  2. 前記ブロック構成決定手段は、
    前記ブロックに属するパラメータの部分集合の各々の変化量を基に、前記パラメータの部分集合の収束度を推定するブロック収束度推定手段
    を備える請求項1に記載の分散機械学習装置。
  3. 前記ブロック構成決定手段は、
    前記ブロック収束度推定手段が推定した前記収束度を基に、現在属するブロックから移動すべき移動対象パラメータを決定する移動対象パラメータ決定手段
    を備える請求項1又は請求項2に記載の分散機械学習装置。
  4. 前記ブロック構成決定手段は、
    前記移動対象パラメータの各々に対し、前記複数の前記ブロックの内から、移動先のブロックを決定する移動先ブロック決定手段
    を備える請求項1乃至請求項3のいずれかに記載の分散機械学習装置。
  5. 前記ブロックに属するパラメータの情報をブロック情報として記憶するブロック情報記憶手段と、
    前記ブロックに属するパラメータを最適化する処理を実行するワーカー
    とを更に備え、
    前記移動先ブロック決定手段は、前記移動対象パラメータおよび前記移動先のブロックの情報を基に、前記ブロック情報を更新し、
    前記ワーカーは、前記ブロック情報を前記ブロック情報記憶手段から取得して前記最適化する処理を実行する
    請求項1乃至請求項4のいずれかに記載の分散機械学習装置。
  6. 前記部分集合に含まれる各パラメータの変化量を格納するパラメータ情報記憶手段
    を更に備え、
    前記ワーカーは、前記パラメータを最適化する処理を実行して得られる前記各パラメータの変化量をパラメータ情報記憶手段に格納する
    請求項1乃至請求項5のいずれかに記載の分散機械学習装置。
  7. 前記予測モデルに学習させる前記学習データを格納する学習データ記憶手段
    を更に備え、
    前記ワーカーは、前記学習データ記憶手段に格納される学習データを取得し、当該学習データを用いて前記予測モデルを学習させ、前記パラメータを最適化する。
    る請求項1乃至請求項6のいずれかに記載の分散機械学習装置。
  8. 前記部分集合内のパラメータ間の類似性を表す情報を記憶するパラメータ特徴記憶手段を更に備え、
    前記移動対象パラメータ決定手段は、前記パラメータ特徴記憶手段からあるブロックに属するパラメータの部分集合の各々の前記類似性を表す情報を取得し、取得した前記類似性を表す情報を基に、前記移動対象パラメータを決定する
    請求項1乃至請求項7のいずれかに記載の分散機械学習装置。
  9. 予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を複数決定し、
    前記複数のパラメータを最適化する処理を実行した結果を基に、前記ブロックに属するパラメータの部分集合の各々の変化量を取得し、当該取得した変化量に基づき、前記ブロックにおける前記パラメータの部分集合の要素を変化させる
    分散機械学習方法。
  10. 予測モデルに用いる複数のパラメータの部分集合であるブロックの構成を複数決定し、
    前記複数のパラメータを最適化する処理を実行した結果を基に、前記ブロックに属するパラメータの部分集合の各々の変化量を取得し、当該取得した変化量に基づき、前記ブロックにおける前記パラメータの部分集合の要素を変化させる
    ことをコンピュータに実現させるための分散機械学習プログラムを格納する記録媒体。
JP2019505967A 2017-03-17 2018-03-09 分散機械学習装置、分散機械学習方法および分散機械学習プログラム Pending JPWO2018168695A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017052812 2017-03-17
JP2017052812 2017-03-17
PCT/JP2018/009227 WO2018168695A1 (ja) 2017-03-17 2018-03-09 分散機械学習装置、分散機械学習方法および分散機械学習記録媒体

Publications (1)

Publication Number Publication Date
JPWO2018168695A1 true JPWO2018168695A1 (ja) 2020-01-23

Family

ID=63522290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019505967A Pending JPWO2018168695A1 (ja) 2017-03-17 2018-03-09 分散機械学習装置、分散機械学習方法および分散機械学習プログラム

Country Status (3)

Country Link
US (1) US11514359B2 (ja)
JP (1) JPWO2018168695A1 (ja)
WO (1) WO2018168695A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020181318A (ja) * 2019-04-24 2020-11-05 日本電信電話株式会社 最適化装置、最適化方法、及びプログラム
JP7323406B2 (ja) * 2019-09-30 2023-08-08 株式会社Screenホールディングス 印刷装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3792879B2 (ja) 1998-03-09 2006-07-05 富士通株式会社 並列実行システム
US9015083B1 (en) * 2012-03-23 2015-04-21 Google Inc. Distribution of parameter calculation for iterative optimization methods
US10318882B2 (en) * 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models

Also Published As

Publication number Publication date
WO2018168695A1 (ja) 2018-09-20
US20190385083A1 (en) 2019-12-19
US11514359B2 (en) 2022-11-29

Similar Documents

Publication Publication Date Title
WO2022037337A1 (zh) 机器学习模型的分布式训练方法、装置以及计算机设备
US10318874B1 (en) Selecting forecasting models for time series using state space representations
JP5584914B2 (ja) 分散計算システム
CN109165093B (zh) 一种计算节点集群弹性分配系统及方法
US20200219028A1 (en) Systems, methods, and media for distributing database queries across a metered virtual network
CN105765609B (zh) 使用有向无环图的存储器促进
US11513851B2 (en) Job scheduler, job schedule control method, and storage medium
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
CN110414569B (zh) 聚类实现方法及装置
WO2014199920A1 (ja) 予測関数作成装置、予測関数作成方法、及びコンピュータ読み取り可能な記録媒体
CN110688219A (zh) 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法
US20210081894A1 (en) Constrained vehicle routing using clusters
CN116166405B (zh) 异构场景下的神经网络任务调度策略确定方法及装置
CN111327655A (zh) 多租户容器资源配额预测方法、装置及电子设备
CN111275358A (zh) 派单匹配方法、装置、设备及存储介质
JPWO2018168695A1 (ja) 分散機械学習装置、分散機械学習方法および分散機械学習プログラム
JP2018077547A (ja) 並列処理装置、並列処理方法、および、並列化処理用プログラム
CN112035234B (zh) 分布式批量作业分配方法及装置
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
JP6743902B2 (ja) マルチタスク関係学習システム、方法およびプログラム
CN116915869A (zh) 基于云边协同的时延敏感型智能服务快速响应方法
KR20200109917A (ko) Gpu 기반의 분산 딥 러닝 모델의 학습 속도 예측 방법 및 기록매체
CN112948087A (zh) 一种基于拓扑排序的任务调度方法及系统
GB2610969A (en) Optimized deployment of analytic models in an edge topology
JP2020181318A (ja) 最適化装置、最適化方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190822