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

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

Info

Publication number
JP2023046868A
JP2023046868A JP2021155700A JP2021155700A JP2023046868A JP 2023046868 A JP2023046868 A JP 2023046868A JP 2021155700 A JP2021155700 A JP 2021155700A JP 2021155700 A JP2021155700 A JP 2021155700A JP 2023046868 A JP2023046868 A JP 2023046868A
Authority
JP
Japan
Prior art keywords
machine learning
learning
layer
rate
skip
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
JP2021155700A
Other languages
English (en)
Inventor
靖 原
Yasushi Hara
明彦 笠置
Akihiko Kasaoki
雄高 甲斐
Taketaka Kai
匠 檀上
Takumi Danjo
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 JP2021155700A priority Critical patent/JP2023046868A/ja
Priority to EP22174962.5A priority patent/EP4156037A1/en
Priority to US17/829,403 priority patent/US20230095268A1/en
Priority to CN202210644527.2A priority patent/CN115860058A/zh
Publication of JP2023046868A publication Critical patent/JP2023046868A/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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • 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/217Validation; Performance evaluation; Active pattern learning techniques

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)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】学習収束までの時間短縮と精度向上の両立を実現することを課題とする。【解決手段】情報処理装置は、機械学習モデルの機械学習時に、機械学習モデルが有する複数の層のうち、機械学習の停止対象に選択された層である停止対象層の学習率を算出する。情報処理装置は、停止対象層の学習率に応じて、機械学習を停止させるまでの時間である制御時間を設定する。情報処理装置は、停止対象層について、制御時間に到達するまで、学習率を制御して機械学習を実行する。【選択図】図12

Description

本発明は、機械学習プログラム、機械学習方法および情報処理装置に関する。
機械学習モデルの機械学習を高速化するために、GPU(Graphics Processing Unit)の利用が有効であり、さらに複数のGPUで処理を分散させることも有効である。これまでに、情報処理装置であるノード内に複数のGPUを実装し、ノード内で並列に機械学習処理を実行することで高速化が行われてきたが、GPU間での勾配情報の集約処理や反映処理に時間を要していた。
このような機械学習モデルの機械学習では、新規学習部分は学習するたびに頻繁に更新が必要なために、更新頻度を決定する学習率(Learning Rate:LR)を高めに設定する必要がある。一方で、すでに機械学習が完了している既存学習部分は入力側に近いほど学習率は低く、極端な場合は学習率が0となる場合も多い。学習率が0の部分は、機械学習処理を行わなくてもよいのにもかかわらず、新規学習部分と同じ頻度で勾配情報の集約処理や反映処理や、重みの計算処理を行っており、無駄な処理が多い。
このようなことから、近年では、機械学習を必要としていない層を見極め、勾配情報(Δw)の計算や集約処理(Allreduce処理)を行わずに、スキップさせるGradient Skip技術が利用されている。
米国特許第10528867号明細書 米国特許出願公開第2020/0090031号明細書 米国特許出願公開第2019/0114537号明細書
しかしながら、上記技術では、機械学習をスキップさせることで高速化が図れるものの、スキップさせる層やタイミングによっては、機械学習の精度が劣化し、目標精度に到達せずに、機械学習が終了することがある。
一つの側面では、学習収束までの時間短縮と精度向上の両立を実現することができる機械学習プログラム、機械学習方法および情報処理装置を提供することを目的とする。
第1の案では、機械学習プログラムは、コンピュータに、機械学習モデルの機械学習時に、前記機械学習モデルが有する複数の層のうち、機械学習の停止対象に選択された層である停止対象層の学習率を算出し、前記停止対象層の学習率に応じて、前記機械学習を停止させるまでの時間である制御時間を設定し、前記停止対象層について、前記制御時間に到達するまで、前記学習率を制御して前記機械学習を実行する、処理を実行させることを特徴とする。
一実施形態によれば、学習収束までの時間短縮と精度向上の両立を実現することができる。
図1は、実施例1にかかる情報処理装置の分散学習を説明する図である。 図2は、機械学習の参考技術を説明する図である。 図3は、機械学習の学習スキップの処理例を説明する図である。 図4は、学習率の制動距離を用いた学習スキップを説明する図である。 図5は、学習率の制動距離を用いた学習スキップの改善点を説明する図である。 図6は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。 図7は、分散処理部の詳細を説明する図である。 図8は、スキップ候補の検出を説明する図である。 図9は、減衰率の低下と制動距離との関係を説明する図である。 図10は、学習スキップまでの学習率の制御を説明する図である。 図11は、BD期間の設定例を説明する図である。 図12は、LRを用いたBD期間の可変例を説明する図である。 図13は、実施例1にかかる機械学習処理の流れを示すフローチャートである。 図14は、効果を説明する図である。 図15は、ハードウェア構成例を説明する図である。
以下に、本願の開示する機械学習プログラム、機械学習方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
実施例1にかかる情報処理装置10は、機械学習処理の高速化を実現するために、複数のGPUを用いた分散処理により、機械学習モデルの生成を実行する。図1は、実施例1にかかる情報処理装置10の分散学習を説明する図である。図1に示すように、情報処理装置10は、CPU(Central Processing Unit)と複数のGPUとを有するコンピュータの一例である。CPUは、情報処理装置10全体を司る制御を実行し、機械学習モデルの生成を統合的に管理する。各GPUは、CPUからの指示に応じて、機械学習モデルの機械学習を実行する。なお、分散処理の手法は、公知の手法を採用することができる。
近年では、各層(各レイヤー)の学習率を用いて機械学習を必要としていない層を見極め、勾配情報の計算や集約処理(Allreduce処理)を行わずに、学習を抑制する(スキップさせる)Gradient Skip技術が利用されている。
ここで、学習スキップ(以下では、単に「スキップ」と記載する場合がある)の参考技術について説明する。図2は、機械学習の参考技術を説明する図である。図2に示す参考技術は、深層学習(DL:Deep Learning)などにより機械学習モデルを生成する技術であり、DLの誤差勾配から学習状況を取得して誤差勾配の算出をスキップすることで、学習時間を短縮する技術である。
具体的には、参考技術は、学習の進捗状況を示す学習率が低下した層を検出して、当該層に対する学習を省略することで、学習時間を短縮する。例えば、最新のイテレーション時の誤差勾配と直前のイテレーション時の誤差勾配との差分が閾値以上である各層については、次回のイテレーション時にも通常通りに学習が実行され、差分が未満である各層については次回のイテレーション時に学習のスキップが実行される。すなわち、学習率が低下した層については以後の誤差勾配の算出などの機械学習処理が抑制される。
ただし、参考技術では、完全に機械学習をスキップさせた場合の精度劣化の影響が未知な部分もある。すなわち、DNN(Deep Neural Network)などの機械学習モデルにおいて、複数の層の誤差逆伝播(バックワード・プロパゲーション)処理を、学習率(Learning Rate:LR)等を基準に判断し、一気に停止させた場合に精度が落ちやすい。また、学習スキップさせるタイミング(エポック数、イテレーション数)が悪いと、精度が落ちて、最終精度が目標に到達しない場合がある。
そこで、近年では、誤差勾配の算出や誤差逆伝播の各処理を抑制する学習スキップ対象と判定された層について、いきなり学習スキップさせるのではなく、学習を停止させる層の学習率を段階的に小さくしていき、ある程度の学習処理を行ってから、学習スキップさせる処理が知られている。
ここで、学習スキップの一例を説明する。図3は、機械学習の学習スキップの処理例を説明する図である。図3に示すように、機械学習モデルの深層学習では、順伝播による機械学習(計算処理)と誤差逆伝播による重み等の更新処理とが実行される。ここで、誤差逆伝播による更新時に、学習がある程度進んだイテレーションから重み情報の更新を停止させていくが、その際に、停止させる層を入力側から停止させる。これは、出力側を停止させると、学習精度が目標精度に到達しないことがあるが、入力側は精度への影響が低いためである。
上述した学習スキップを用いた機械学習の最終的な到達精度は、学習を停止させるレイヤーがある程度学習率が小さくなってから止めた方が最終到達精度の低下が小さい傾向がある。このため、対象のレイヤーの学習を突然止めるのではなく、学習を止める(スキップする)命令を与えた際に学習率を下げてから停止させる学習率の制動距離(BD:BRAKING_DISTANCE)の導入が進められている。すなわち、ボトムに近い層から順に停止させたレイヤーを身近な極所解に落としていく機械学習が利用されている。
ここで、ハイパーパラメータである学習率の制動距離(BD:BRAKING_DISTANCE)を導入し、スキップ候補のブロックに属する各層に対して、段階的に学習を抑制する例を説明する。なお、ブロックとは、複数の層をまとめたものである。
図4は、学習率の制動距離を用いた学習スキップを説明する図である。図4に示すように、機械学習を行う情報処理装置は、入力側から順に、各層を、第1ブロック、第2ブロック、第3ブロック、第4ブロック、第5ブロックに分割する。そして、情報処理装置は、ウォームアップ終了後、学習率を制御していく。
そして、情報処理装置は、第1ブロックが学習スキップ対象と判定されると、イテレーションごとに学習率を通常学習よりも大幅に低下させた機械学習を実行させる。その後、情報処理装置は、第2ブロックが学習スキップ対象と判定されると、イテレーションごとに学習率を通常学習よりも大幅に低下させた機械学習を実行させる。このようにして、情報処理装置は、入力層に近いブロックからの順番で、学習スキップを実行する。
ところが、図4に示した学習率の制動距離(以下では、「BD期間」と記載することがある)を用いた学習スキップには、精度をより向上させるための改善点がある。図5は、学習率の制動距離を用いた学習スキップの改善点を説明する図である。図5に示すように、BDを適用する層(もしくはブロック)に対して、一律のイテレーション間隔でBDが実施されている。例えば、図5の(1)に示す学習率(LR)が高い層のBDを行う場合も、BD期間として「10エポック=7700イテレーション」が設定され、図5の(2)に示す学習率がある程度低下した層のBDを行う場合も、BD期間として「10エポック=7700イテレーション」が設定され、図5の(3)に示す学習率が低い層のBDを行う場合も、BD期間として「10エポック=7700イテレーション」が設定される。
つまり、BDにより学習スキップの制御が行われる直前のLRが低いほど、学習停止(LR=0)までの落差が小さいために、早めに十分な値に到達するが、そのまま学習を継続してしまう。この結果、本来早めに、学習済みの層を停止することで高速化を図れるところを、学習が継続してしまい、必要以上に時間がかかっていることがある。
このようなことから、本実施例では、BDの開始タイミングに応じて、最適なBDの適用幅を動的に決定することで、機械学習の高速化を実現する。
具体的には、情報処理装置10は、機械学習モデルの機械学習時に、機械学習モデルが有する複数の層のうち、機械学習の停止対象と選択された層の誤差勾配を取得する。情報処理装置10は、停止対象と選択された層の誤差勾配に基づき、機械学習を停止させるまでの時間を設定する。情報処理装置10は、停止対象に選択された層について、停止させる時間に到達するまで、学習率を制御して機械学習を実行する。
すなわち、情報処理装置10は、開始時のLRの大きさが大きければ、BDの間隔を長く設定し、開始時のLRの大きさが小さければBDの間隔を短く設定することで、学習収束までの時間短縮と精度向上の両立を実現する。
[機能構成]
図6は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。図6に示すように、情報処理装置10は、通信部11、記憶部12、統合処理部20、複数の分散処理部30を有する。
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部11は、管理者端末との間で、各種データや各種指示などを送受信する。
記憶部12は、各種データや各種プログラムなどを記憶する処理部であり、例えばメモリやハードディスクなどにより実現される。この記憶部12は、訓練データDB13と機械学習モデル14を記憶する。
訓練データDB13は、機械学習モデル14の機械学習に利用される訓練データを記憶するデータセットの一例ある。例えば、訓練データDB13に記憶される各訓練データは、画像データと教師ラベルとから構成される。なお、訓練データのデータセットは、任意の単位でサブセット(バッチサイズ)に分割することができる。
機械学習モデル14は、DLなどの機械学習により生成されるモデルであり、複数の層から構成される多層ニューラルネットワークを用いたモデルの一例ある。例えば、機械学習モデル14は、画像データが入力された場合に、写っている動物の分類を実行する。なお、機械学習モデル14には、DNNやCNN(Convolutional Neural Network)などを採用することができる。
統合処理部20は、情報処理装置10全体を司る処理部であり、例えばCPUにより実現される。例えば、統合処理部20は、機械学習の分散処理、機械学習の開始や終了などを各分散処理部30に指示し、機械学習に関する全体的な制御を実行する。
各分散処理部30は、機械学習の分散処理を実行する処理部であり、例えばGPUにより実現される。例えば、各分散処理部30は、統合処理部20からの指示により、訓練データDB13に記憶される各訓練データを用いた機械学習により、機械学習モデル14の生成を実行する。
[分散処理部の詳細]
次に、各分散処理部30の詳細について説明する。なお、各分散処理部30は、同様の構成を有する。図7は、分散処理部30の詳細を説明する図である。図7に示すように、分散処理部30は、順伝播処理部31、誤差逆伝播処理部32、候補抽出部35、スキップ制御部36を有する。
順伝播処理部31は、機械学習モデル14の各層に対する順伝播処理を実行する処理部である。具体的には、順伝播処理部31は、いわゆるForward Propagationを実行するので、詳細な説明は省略する。簡単に説明すると、例えば、順伝播処理部31は、機械学習モデル14の先頭の層(入力層)に訓練データである画像データを入力し、入力層から機械学習モデル14の末尾の層(出力層)に向かって連続的に数値計算が行われた結果である予測結果(分類結果)を、出力層から取得する。そして、順伝播処理部31は、二乗誤差などを用いて、予測結果と教師レベルとの誤差を算出して誤差関数を算出して、誤差逆伝播処理部32に出力する。
誤差逆伝播処理部32は、誤差勾配算出部33と通信制御部34とを有し、順伝播処理部31から入力される誤差関数を用いて、誤差逆伝播法により機械学習モデル14の各パラメータの誤差を計算し、パラメータ更新を実行する処理部である。すなわち、誤差逆伝播処理部32は、いわゆるBackward propagationを実行する。
例えば、誤差逆伝播処理部32は、機械学習モデル14の出力層から入力層に向かう順番(逆順)に、ニューラルネットワークの各ノード間のエッジの重みの誤差勾配を算出する。誤差勾配は、誤差を重みの関数とみなした場合に、誤差を重みで偏微分した値に相当し、誤エッジの重みを微少量だけ変化させたときの誤差の変化量を表す。そして、誤差逆伝播処理部32は、誤差勾配を用いて、誤差が小さくなるように各エッジの重みなどの各パラメータの更新を実行する。
誤差勾配算出部33は、機械学習モデル14に含まれる複数の層それぞれについて、機械学習モデル14の各パラメータに対する誤差の勾配を示す誤差勾配を算出する処理部である。例えば、誤差勾配算出部33は、イテレーションごとに、機械学習モデル14が有する各層に対して誤差勾配を算出して、誤差勾配に関する誤差勾配情報を候補抽出部35に出力する。
ここで、誤差勾配算出時に、誤差勾配算出部33は、学習を抑制すると決定された層(学習スキップ層)については、誤差勾配の算出を抑制する。また、後述する各ブロックで制御する場合、誤差勾配算出部33は、各ブロックにおける入力層から最も遠い位置にある最後の層のみを誤差勾配の算出対象とすることもできる。なお、誤差勾配の算出手法は、公知の様々な手法を採用することができる。
通信制御部34は、GPU間のAllReduce通信を実行する処理部である。例えば、通信制御部34は、各GPU間で誤差勾配を送受信することで、複数のGPUで算出された誤差勾配をエッジの重み毎に合計し、複数のGPUの間で誤差勾配が集計される。このように集計された誤差勾配に関する情報を用いて、誤差逆伝播処理部32による機械学習モデル14の各種パラメータの更新が実行される。
また、通信制御部34は、後述するスキップ制御部36により制御指示にしたがって、スキップ対象の層への通信を停止する。また、通信制御部34は、機械学習モデル14の各層の中から、学習を止めずに誤差勾配計算および通信(Allreduce)を継続する層と、学習を止める層を特定し、通信を制御する。
候補抽出部35は、誤差勾配算出部33により算出された誤差情報を用いて、学習を停止させるスキップ対象の候補となる層を抽出する処理部である。具体的には、候補抽出部35は、各層のうち、イテレーション間の誤差勾配の変位が小さい層を、スキップ候補として抽出する。
図8は、スキップ候補の検出を説明する図である。図8では、ある層について説明するが、図8に示される処理は各層について実行される。図8に示すように、候補抽出部35は、各エポック内のイテレーションが完了するたびに、スキップ候補の抽出を実行する。
例えば、候補抽出部35は、エポック1のイテレーション1が終了したタイミングで誤差勾配#1を算出して保持する。その後、エポック1のイテレーション2が終了すると、候補抽出部35は、誤差勾配#2を算出して保持するとともに、誤差勾配#1と誤差勾配#2の差分である差分#2(例えば絶対値の差)を算出し、この差分#2と閾値とを比較する。
ここで、候補抽出部35は、差分#2が閾値未満である場合、十分に学習が進んだ層と判定し、当該層を特定する情報をスキップ候補としてスキップ制御部36に通知する。一方、候補抽出部35は、差分#2が閾値以上である場合、学習が不十分と判定し、当該層をスキップ候補とはせずに、通常学習を維持する。
また、候補抽出部35は、機械学習モデル14が有する複数の層をブロックに分割し、ブロックごとにスキップ候補か否かを判定することもできる。例えば、候補抽出部35は、機械学習モデル14の入力層から出力層までの各層を、入力層からの順番で所定数に区切って複数のブロックを生成する。例えば、候補抽出部35は、第1ブロック、第2ブロック、第3ブロック、第4ブロック、第5ブロックを生成する。このとき、候補抽出部35は、出力層、全結合層、全結合層から2つ前の層を、ブロック化の対象外とすることもできる。
この場合、候補抽出部35は、各ブロックについて、ブロックに属する層の誤差勾配を算出し、その平均値を用いた上記閾値の比較により、該当ブロックがスキップ候補か否かを判定することもできる。別例としては、候補抽出部35は、各ブロックについて、ブロックに属する層のうち最後の層(出力層に最も近い層)の誤差勾配を算出し、その誤差勾配を用いた上記閾値の比較により、該当ブロックがスキップ候補か否かを判定することもできる。
スキップ制御部36は、候補抽出部35によりスキップ候補と判定された層またはブロックに属する各層について、学習スキップさせるための学習率の制御を実行する処理部である。
具体的には、最終的な到達精度は、学習を抑制(停止)させる層(レイヤー)の学習率がある程度小さくなってから、学習を抑制(学習スキップ)させた方が最終到達精度の低下が小さい傾向がある。このため、スキップ制御部36は、学習率の制動距離(BD:BRAKING_DISTANCE)を導入し、スキップ候補の各層に対して、段階的に学習を抑制する。なお、BDは、ハイパーパラメータである。
例えば、スキップ制御部36は、スキップ候補の各層の学習を突然止めるのではなく、学習を止める命令を与えた際に、イテレーションに依存するBDを用いて学習率を下げてから抑制させる。より詳細には、スキップ制御部36は、機械学習モデル14の学習で使用するLRスケジューラがPOW2の場合、式(1)を用いて、POW2と同じように、BDを減少させる。
Figure 2023046868000002
図9は、減衰率の低下と制動距離との関係を説明する図である。図9に示すように、スキップ制御部36は、LRの制動距離であるBDを、式(1)に示す減衰率を乗算することで、設定したイテレーション数である7700まで、イテレーションごとに徐々に小さくしていき、学習率を低下させていく。なお、式(1)におけるBDは、予め定める設定値であり、iteration(イテレーション)は算出時点のイテレーション数である。図9は、BD=7700とした例である。
ここで、スキップ候補と判定された各層について、上記減衰率を用いて学習スキップを実行する例について説明する。図10は、学習スキップまでの学習率の制御を説明する図である。図10に示すように、スキップ制御部36は、ウォームアップ(3850イテレーション)が完了すると、LR=5で機械学習を実行させる。そして、スキップ制御部36は、イテレーションが7980のときにスキップ候補と判定されると、式(2)を用いて、そのイテレーション時のLRを計算し、計算されたLRを用いて機械学習を実行させる。このように、スキップ制御部36は、イテレーションごとにLRを算出し、算出したLRを用いて機械学習を実行させる。
Figure 2023046868000003
なお、式(2)における「LR」は、学習に使用される算出対象の学習率である。「End LR」は、学習スキップさせると判定するときのLRであり、この「End LR」になるまで、学習率の減衰(低下)が繰り返される。「BD開始時のLR」は、初期設定時のLRである。「Iter.」は、算出時のイテレーション数であり、スキップ候補と判定されたあとは、イテレーションごとに「LR」が算出されるので、そのイテレーション数となる。「BD開始時のiter.」は、学習率の減衰を開始するときのイテレーション数である。図10の例では、BD=7700イテレーション、ウォームアップ=3850イテレーション、「BD開始時のLR」に対応する初期値(Base LR)=5、最終LR(End LR)=0.0001、「BD開始時のiter.」=7980イテレーションとなる。
上述したように、スキップ制御部36は、スキップ候補の各層の学習を突然止めるのではなく、イテレーションに依存するBDを用いて学習率を徐々にさげていき、目標の学習率になった以降を学習スキップさせる。このとき、スキップ制御部36は、入力層に近い層から順番に学習スキップを行うことで、学習精度の向上および最終的なエポック数の削減を行うこともできる。
つまり、スキップ制御部36は、ある層B(もしくはブロックB)がスキップ候補と判定された場合に、その層B(ブロックB)よりも前の層A(ブロックA)について上記BDを用いた学習スキップの制御処理が実行されているか否かを判定する。ここで、スキップ制御部36は、層A(ブロックA)について学習スキップの制御処理が実行されている場合は、層B(ブロックB)についても学習スキップの制御処理を実行する。一方、スキップ制御部36は、層A(ブロックA)について学習スキップの制御処理が実行されていない場合は、層B(ブロックB)についても学習スキップの制御処理を開始しない。
ところで、上述したように、学習スキップの制御対象となったタイミングのLRに関係なく、一律なBD期間を用いた学習抑制が実行されることから、LRが低い層の場合は、BD期間到達前に、早めに学習が停止可能な十分な状態に到達するものの学習が継続してしまう。このため、スキップ制御部36は、BDの開始タイミングに応じて、最適なBDの適用幅を動的に決定することで、更なる高速化を実現する。
具体的には、スキップ制御部36は、抑制対象に選択されたスキップ候補の層の誤差勾配に基づいて、スキップ候補の層の機械学習を停止させるまでのBD期間を設定し、当該層について、BD期間に到達するまで、学習率を制御して機械学習を実行する。
例えば、スキップ制御部36は、スキップ候補の層nが決定されると、予め設定済みであるBDの適用最大期間「BD_Max」とLRの最大値「LR_Max」を記憶部12等から読み込む。なお、「BD_Max」は、ハイパーパラメータであり、任意に設定変更することができ、「LR_Max」は、LRスケジューラにより設定される値である。
続いて、スキップ制御部36は、スキップ候補の層nの現在の学習率「LRn」を取得し、層nのBD期間であるBDnを「BDn=(BD_Max)×(LRn/LR_Max)」として算出する。そして、スキップ制御部36は、スキップ候補の層nのBD期間を「BDn」に設定することで、誤差勾配算出部33などにより学習スキップの制御が実行される。
ここで、BD期間は、LRスケジューラによるLRの変化曲線に基づき設定することもできる。図11は、BD期間の設定例を説明する図である。例えば、スキップ制御部36は、図11の(a)に示すように、イタレーションが進むにつれて、LRがコサイン曲線で変化する場合、LRの二乗曲線に基づき、設定することができる。すなわち、BD期間は、LRがある一定値より小さい場合は上昇率が低く短い期間が設定され、LRがある一定値より大きい場合は上昇率が高く、長い期間が設定される。
また、スキップ制御部36は、図11の(b)に示すように、イタレーションが進むにつれて、LRが一定期間は所定値を維持し、一定期間後は減少した値をさらに一定期間維持することを繰り返すステップ曲線で変化する場合、sin曲線や信頼度成長曲線などに類似する曲線に基づき、設定することができる。すなわち、BD期間は、変曲点の前後でLRの増加に対する期間の増加量が変化する。
また、スキップ制御部36は、図11の(c)に示すように、イタレーションが進むにつれて、LRが一定値ずつ減少するリニア直線で変化する場合、直線(比例)に基づき、設定することができる。すなわち、BD期間は、LRの上昇率と比例して長くなる。
上述したように、スキップ制御部36は、BD期間(Braking Distanceの間隔)を、開始時のLRの大きさが大きければ長く、小さければ短く、LRの大きさに応じて決定する。図12は、LRを用いたBD期間の可変例を説明する図である。図12の左図は、BD期間を一定値にした参考技術の場合を示しており、図12の右図は、実施例1による手法で動的に設定した本実施例の場合を示している。
図12の左図に示すように、図12の(1)に示すLRが大きい状態で学習スキップを開始する場合、参考技術も本実施例による手法でもBD期間は10エポックが設定される。一方、図12の(2)に示すLRが(1)よりも減少した状態で学習スキップを開始する場合、参考技術ではBD期間として6エポックが設定されるが、本実施例ではBD期間として6エポックが設定される。同様に、図12の(2)に示すLRがさらに小さい状態で学習スキップを開始する場合、参考技術ではBD期間として10エポックが設定されるが、本実施例ではBD期間としてさらに少ない3エポックが設定される。
このように、スキップ制御部36は、学習スキップ(BD)の開始タイミングに応じて、最適なBD期間の適用幅を決定する。
[処理の流れ]
図13は、実施例1にかかる機械学習処理の流れを示すフローチャートである。なお、ここでは、一例として、層ごとに学習スキップを制御する例を説明するが、複数層をまとめたブロックについても同様に処理することができる。
図13に示すように、機械学習が開始されると(S101:Yes)、順伝播処理部31は、訓練データを読み込み(S102)、順伝播処理を実行する(S103)。続いて、誤差逆伝播処理部32は、各層について誤差勾配を算出する(S104)。そして、候補抽出部35は、層を1つ選択し(S105)、すでに学習率の制御対象となっているか否かを判定する(S106)。
ここで、候補抽出部35は、まだ学習率の制御対象ではない場合(S106:No)、スキップ条件を満たすか否かを判定する(S107)。例えば、候補抽出部35は、入力側から段階的にスキップさせるために、現処理対象の層よりも前の層が学習スキップの対象か否かを判定する。
そして、対象層がスキップ条件を満たなさない場合(S107:No)、スキップ制御部36が通常学習を判定することで、誤差逆伝播処理部32が対象層を通常通りに学習する(S108)。
一方、対象層がスキップ条件を満たす場合(S107:Yes)、または、すでに学習率の制御対象である場合(S106:Yes)、スキップ制御部36は、BD期間が設定済みか否かを判定する(S109)。
そして、スキップ制御部36は、BD期間が設定済みである場合(S109:Yes)、BD期間に到達(BD期間が終了)したか否かを判定する(S110)。ここで、スキップ制御部36は、BD期間に到達した場合(S110:Yes)、対象層の学習スキップを実行する(S111)。一方、スキップ制御部36は、BD期間に到達しない場合(S110:No)、学習率を算出し(S112)、誤差逆伝播処理部32に対して学習率の変更を指示することで、学習率が変更された機械学習が実行される(S113)。
一方、BD期間が設定済みでない場合(S109:No)、スキップ制御部36は、学習率を算出し(S114)、学習率に応じたBD期間を設定し(S115)、誤差逆伝播処理部32に対して学習率の変更を指示することで、学習率が変更された機械学習が実行される(S113)。
その後、通常学習を実行した場合(S108)、学習率が変更された機械学習が実行された場合(S113)、順伝播処理部31は、機械学習を終了するか否かを判定する(S116)。例えば、順伝播処理部31は、精度が目標精度に到達したか否かや指定数のエポックを実行したか否かなど、任意の終了基準に到達したか否かを判定する。
ここで、順伝播処理部31は、機械学習を継続する場合(S116:No)、S102以降を繰り返し、機械学習を終了する場合(S116:Yes)、機械学習を終了し、学習結果などを表示したりする。
[効果]
上述したように、情報処理装置10は、機械学習モデル14内の各層において、機械学習が終了した層の重み更新処理やバックプロパゲーション(誤差逆伝搬)処理をスキップさせることにより、無駄な計算および更新処理を大幅に削減することができる。また、情報処理装置10は、学習率の制動距離(BD)の適用により、精度劣化を抑え、精度を保ちつつ、機械学習モデル14全体の高速化を実現することができる。
また、情報処理装置10は、学習率の制動距離(BD)の適用により、単純に学習スキップさせる場合や全く学習スキップさせない場合と比較して、機械学習モデル14の精度向上を図ることができる。複数のGPUを搭載した情報処理装置10(ノード)を使用する場合や、複数の情報処理装置10で構成された並列処理を行う場合は、GPU間通信、ノード間通信、集約処理、反映処理に費やす割合が大きくなるので、無駄な計算および更新処理を削減することによる高速化の効果は、より大きくなる。
さらに、情報処理装置10は、学習スキップ開始時のLRに応じてBD期間を動的に設定することで、一律なBD期間を設定する場合と比べて、学習精度の低下を抑制しつつ、更なる高速化を実現することができる。図14は、効果を説明する図である。図14に示すように、情報処理装置10は、図14の(1)に示すように、LRが「0.33」で学習スキップを開始する層にはBD期間として10エポックを設定する。情報処理装置10は、図14の(2)に示すように、LRが「0.125」で学習スキップを開始する層にはBD期間として6エポックを設定する。情報処理装置10は、図14の(3)に示すように、LRが「0.03」で学習スキップを開始する層にはBD期間として3エポックを設定する。
具体的には、図14の下図に示すように、BD期間を動的に設定する実施例1では、一律なBD期間を設定する参考技術に比べて、学習時間が短縮され、高速化が実現される。したがって、一律に10エポックを設定する手法では、機械学習が終了するまでに30エポックかかっていたが、本実施例による手法では、19エポックで終了することができ、11エポックも削減することができる。なお、(1)から(3)のいずれの場合でも、学習停止までに学習率が十分に小さくなっていることから、エポック数の削減に伴って学習精度が低下することもない。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[数値等]
上記実施例で用いたブロック数、層数、各種閾値、数値、GPU数等は、あくまで一例であり、任意に変更することができる。また、学習スキップの判定は、イテレーションごとに限らず、エポックごとに判定することもできる。また、スキップ候補などは、停止対象層の一例であり、BD期間は、機械学習を停止させるまでの時間である制御時間の一例である。なお、LRスケジューラと学習率を制御するスケジューラは、同じスケジューラを使用する方が好ましい。
[ブロックの制御等]
例えば、複数をまとめたブロックごとに学習スキップの制御およびBD期間の設定を行うこともできる。例を挙げると、情報処理装置10は、ブロックに含まれる各層のうち、最後の層の誤差勾配やブロックに属する各層の誤差勾配の平均値が閾値未満か否かにより、スキップ対象と判定することもできる。
そして、情報処理装置10は、スキップ対象のブロックに属する層のうち、学習制御開始時のLRが最も大きい層を選択し、そのLRを用いたBD期間を当該ブロックのBD期間に設定する。この場合、情報処理装置10は、当該ブロックに属する各層の機械学習がBD期間経過後に停止するように、各層の学習率を低下させる。また、情報処理装置10は、スキップ対象のブロックに属する層のうち、学習制御開始時のLRに基づく各BD期間を算出し、そのBD期間の平均値を当該ブロックのBD期間に設定することもできる。同様に、情報処理装置10は、スキップ対象のブロックに属する層の学習制御開始時のLRの平均値に基づくBD期間を当該ブロックのBD期間に設定することもできる。
なお、情報処理装置10は、つまり、情報処理装置10は、学習制御開始時のLRが最も小さい層については、その層のLRに基づくBD期間経過後に機械学習を終了させてもよく、ブロックのBD期間が経過するまで最小LRで機械学習を継続させてもよい。
また、上記実施例では、ブロック単位でスキップ制御やBD設定を行うこともでき、層単位で制御することもできる。例えば、情報処理装置10は、誤差勾配の差が閾値未満である層を複数検出した場合、入力層から近い順に所定数の層をスキップ対象と判定することもできる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
次に、上記実施例で説明した情報処理装置10のハードウェア構成例を説明する。図15は、ハードウェア構成例を説明する図である。図15に示すように、情報処理装置10、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、CPU10d、複数のGPU10eを有する。また、図15に示した各部は、バス等で相互に接続される。
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、図6や図7等に示した機能を動作させるプログラムやDBを記憶する。
CPU10dは、情報処理装置10全体の制御を実行し、例えば機械学習に関するプログラムをHDD10b等から読み出してメモリ10cに展開することで、機械学習の各プロセスを動作させる各GPU10eは、図7等に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図7等で説明した各機能を実行するプロセスを動作させる。例えば、各GPU10eは、順伝播処理部31、誤差逆伝播処理部32、候補抽出部35、スキップ制御部36等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、各GPU10eは、順伝播処理部31、誤差逆伝播処理部32、候補抽出部35、スキップ制御部36等と同様の処理を実行するプロセスを実行する。
このように、情報処理装置10は、プログラムを読み出して実行することで各種処理方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
10 情報処理装置
11 通信部
12 記憶部
13 訓練データDB
14 機械学習モデル
20 統合処理部
30 分散処理部
31 順伝播処理部
32 誤差逆伝播処理部
33 誤差勾配算出部
34 通信制御部
35 候補抽出部
36 スキップ制御部

Claims (8)

  1. コンピュータに、
    機械学習モデルの機械学習時に、前記機械学習モデルが有する複数の層のうち、機械学習の停止対象に選択された層である停止対象層の学習率を算出し、
    前記停止対象層の学習率に応じて、前記機械学習を停止させるまでの時間である制御時間を設定し、
    前記停止対象層について、前記制御時間に到達するまで、前記学習率を制御して前記機械学習を実行する、
    処理を実行させることを特徴とする機械学習プログラム。
  2. 前記設定する処理は、
    前記停止対象層の直前の学習率が大きいほど前記制御時間を長く設定し、前記学習率が小さいほど前記制御時間を短く設定する、ことを特徴とする請求項1に記載の機械学習プログラム。
  3. 前記設定する処理は、
    前記機械学習時の学習率の変化曲線に応じて、前記制御時間を設定する、ことを特徴とする請求項1または2に記載の機械学習プログラム。
  4. 前記算出する処理は、
    前記機械学習モデルの入力層からの順で、複数の層をまとめた各ブロックのうち前記機械学習の停止対象に選択されたブロックである停止対象ブロックの前記学習率を算出し、
    前記設定する処理は、
    前記停止対象ブロックの学習率に応じた前記制御時間を設定し、
    前記停止対象ブロックに含まれる各層について、前記制御時間に到達するまで、前記学習率を制御して前記機械学習を実行する、ことを特徴とする請求項1から3のいずれか一つに記載の機械学習プログラム。
  5. 前記算出する処理は、
    前記停止対象ブロックに属する各層の前記学習率を算出し、
    前記設定する処理は、
    前記各層の学習率に応じた前記制御時間の平均値を、前記停止対象ブロックの前記制御時間に設定する、ことを特徴とする請求項4に記載の機械学習プログラム。
  6. 前記算出する処理は、
    前記停止対象ブロックに属する各層の前記学習率を算出し、
    前記設定する処理は、
    前記各層の学習率の平均値に応じて、前記停止対象ブロックの前記制御時間を設定する、ことを特徴とする請求項4に記載の機械学習プログラム。
  7. コンピュータが、
    機械学習モデルの機械学習時に、前記機械学習モデルが有する複数の層のうち、機械学習の停止対象に選択された層である停止対象層の学習率を算出し、
    前記停止対象層の学習率に応じて、前記機械学習を停止させるまでの時間である制御時間を設定し、
    前記停止対象層について、前記制御時間に到達するまで、前記学習率を制御して前記機械学習を実行する、
    処理を実行することを特徴とする機械学習方法。
  8. 機械学習モデルの機械学習時に、前記機械学習モデルが有する複数の層のうち、機械学習の停止対象に選択された層である停止対象層の学習率を算出し、
    前記停止対象層の学習率に応じて、前記機械学習を停止させるまでの時間である制御時間を設定し、
    前記停止対象層について、前記制御時間に到達するまで、前記学習率を制御して前記機械学習を実行する、
    制御部を有することを特徴とする情報処理装置。
JP2021155700A 2021-09-24 2021-09-24 機械学習プログラム、機械学習方法および情報処理装置 Pending JP2023046868A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021155700A JP2023046868A (ja) 2021-09-24 2021-09-24 機械学習プログラム、機械学習方法および情報処理装置
EP22174962.5A EP4156037A1 (en) 2021-09-24 2022-05-23 Machine learning program, machine learning method, and information processing apparatus
US17/829,403 US20230095268A1 (en) 2021-09-24 2022-06-01 Storage medium, machine learning method, and information processing apparatus
CN202210644527.2A CN115860058A (zh) 2021-09-24 2022-06-09 机器学习程序、机器学习方法以及信息处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021155700A JP2023046868A (ja) 2021-09-24 2021-09-24 機械学習プログラム、機械学習方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2023046868A true JP2023046868A (ja) 2023-04-05

Family

ID=81846642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021155700A Pending JP2023046868A (ja) 2021-09-24 2021-09-24 機械学習プログラム、機械学習方法および情報処理装置

Country Status (4)

Country Link
US (1) US20230095268A1 (ja)
EP (1) EP4156037A1 (ja)
JP (1) JP2023046868A (ja)
CN (1) CN115860058A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003992B2 (en) 2017-10-16 2021-05-11 Facebook, Inc. Distributed training and prediction using elastic resources
US11586904B2 (en) 2018-09-13 2023-02-21 Google Llc Adaptive optimization with improved convergence
US10528867B1 (en) 2018-10-08 2020-01-07 StradVision, Inc. Learning method and learning device for neural network at adaptive learning rate, and testing method and testing device using the same
JP7295431B2 (ja) * 2019-11-27 2023-06-21 富士通株式会社 学習プログラム、学習方法および学習装置

Also Published As

Publication number Publication date
US20230095268A1 (en) 2023-03-30
CN115860058A (zh) 2023-03-28
EP4156037A1 (en) 2023-03-29

Similar Documents

Publication Publication Date Title
US20170372230A1 (en) Machine learning management method and machine learning management apparatus
CN111562977B (zh) 神经网络模型拆分方法、装置、存储介质和计算机系统
US20210406683A1 (en) Learning method and information processing apparatus
CN117453123A (zh) 一种基于强化学习的数据分类存储方法及其设备
JP2023063944A (ja) 機械学習プログラム、機械学習方法、及び、情報処理装置
JP2023046868A (ja) 機械学習プログラム、機械学習方法および情報処理装置
JP2021197108A (ja) 学習プログラム、学習方法および情報処理装置
JP7501315B2 (ja) 演算処理プログラム、演算処理方法および情報処理装置
US20230023241A1 (en) Computer-readable recording medium storing machine learning program, information processing device, and machine learning method
CN113408692A (zh) 网络结构的搜索方法、装置、设备及存储介质
JP2023040492A (ja) 高速化プログラム、高速化方法および情報処理装置
EP3995999A1 (en) Machine learning program, machine learning method, and information processing apparatus
JP6193428B1 (ja) 特徴選択装置、特徴選択方法およびプログラム
US20220100572A1 (en) Scheduling multiple processes with varying delay sensitivity
JP7555429B2 (ja) 学習率がニアゼロである場合の勾配降下法
CN114757244A (zh) 模型训练方法、装置、存储介质及设备
US20210089885A1 (en) Training device and training method
JP2021043915A (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
KR102695503B1 (ko) 예측 모델을 이용한 공정 조건을 도출하기 위한 장치 및 이를 위한 방법
KR102687374B1 (ko) 인공신경망 연산 방법 및 이를 이용한 인공신경망 연산 장치
JP7552401B2 (ja) 機械学習プログラム、装置、及び方法
CN117152588B (zh) 一种数据优化方法、系统、装置及介质
KR20230174630A (ko) 대규모의 데이터 병렬 기반 딥러닝 모델 학습을 위한 계층별 차별화된 학습률 조정 방법 및 시스템
US20240193424A1 (en) Computer-readable recording medium storing distributed learning program, distributed learning method, and distributed learning device
JP2023129041A (ja) 機械学習プログラム、機械学習方法、及び、情報処理装置