JP2023040492A - 高速化プログラム、高速化方法および情報処理装置 - Google Patents
高速化プログラム、高速化方法および情報処理装置 Download PDFInfo
- Publication number
- JP2023040492A JP2023040492A JP2021147507A JP2021147507A JP2023040492A JP 2023040492 A JP2023040492 A JP 2023040492A JP 2021147507 A JP2021147507 A JP 2021147507A JP 2021147507 A JP2021147507 A JP 2021147507A JP 2023040492 A JP2023040492 A JP 2023040492A
- Authority
- JP
- Japan
- Prior art keywords
- layer
- machine learning
- variance
- learning
- weight information
- 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
Links
- 238000000034 method Methods 0.000 title claims description 36
- 230000001133 acceleration Effects 0.000 title description 3
- 230000001629 suppression Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 126
- 238000010801 machine learning Methods 0.000 claims description 120
- 230000010365 information processing Effects 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 18
- 230000003247 decreasing effect Effects 0.000 claims description 9
- 239000006185 dispersion Substances 0.000 abstract description 4
- 230000009467 reduction Effects 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 description 69
- 238000010586 diagram Methods 0.000 description 37
- 238000004891 communication Methods 0.000 description 19
- 238000012549 training Methods 0.000 description 13
- 230000007423 decrease Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010130 dispersion processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Neurology (AREA)
- Feedback Control In General (AREA)
- Image Analysis (AREA)
Abstract
【課題】学習収束までの時間短縮と精度向上の両立を実現することを課題とする。【解決手段】情報処理装置は、機械学習モデルの機械学習時に、所定の間隔で、機械学習モデルが有する層ごとに、機械学習により更新される重みに関する重み情報の分散を算出する。情報処理装置は、所定の間隔で算出される分散のピーク値と、所定の間隔で算出される重み情報の分散とに基づき、機械学習を抑制する抑制対象の層を決定する。【選択図】図7
Description
本発明は、高速化プログラム、高速化方法および情報処理装置に関する。
機械学習モデルの機械学習を高速化するために、GPU(Graphics Processing Unit)の利用が有効であり、さらに複数のGPUで処理を分散させることも有効である。これまでに、情報処理装置であるノード内に複数のGPUを実装し、ノード内で並列に機械学習処理を実行することで高速化が行われてきたが、GPU間での勾配情報の集約処理や反映処理に時間を要していた。
このような機械学習モデルの機械学習では、新規学習部分は学習するたびに頻繁に更新が必要なために、更新頻度を決定する学習率(Learning Rate:LR)を高めに設定する必要がある。一方で、すでに機械学習が完了している既存学習部分は入力側に近いほど学習率は低く、極端な場合は学習率が0となる場合も多い。学習率が0の部分は、機械学習処理を行わなくてもよいのにもかかわらず、新規学習部分と同じ頻度で勾配情報の集約処理や反映処理や、重みの計算処理を行っており、無駄な処理が多い。
このようなことから、近年では、機械学習を必要としていない層を見極め、勾配情報(Δw)の計算や集約処理(Allreduce処理)を行わずに、スキップさせるGradient Skip技術が利用されている。
しかしながら、上記技術では、機械学習をスキップさせることで高速化が図れるものの、スキップさせる層やタイミングによっては、機械学習の精度が劣化し、目標精度に到達せずに、機械学習が終了することがある。
一つの側面では、学習収束までの時間短縮と精度向上の両立を実現することができる高速化プログラム、高速化方法および情報処理装置を提供することを目的とする。
第1の案では、高速化プログラムは、コンピュータに、機械学習モデルの機械学習時に、所定の間隔で、前記機械学習モデルが有する層ごとに、機械学習により更新される重みに関する重み情報の分散を算出し、前記所定の間隔で算出される前記分散のピーク値と、前記所定の間隔で算出される前記重み情報の分散とに基づき、前記機械学習を抑制する抑制対象の層を決定する、処理を実行させることを特徴とする。
一実施形態によれば、学習収束までの時間短縮と精度向上の両立を実現することができる。
以下に、本願の開示する高速化プログラム、高速化方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
実施例1にかかる情報処理装置10は、機械学習処理の高速化を実現するために、複数のGPUを用いた分散処理により、機械学習モデルの生成を実行する。図1は、実施例1にかかる情報処理装置10の分散学習を説明する図である。図1に示すように、情報処理装置10は、CPU(Central Processing Unit)と複数のGPUとを有するコンピュータの一例である。CPUは、情報処理装置10全体を司る制御を実行し、機械学習モデルの生成を統合的に管理する。各GPUは、CPUからの指示に応じて、機械学習モデルの機械学習を実行する。なお、分散処理の手法は、公知の手法を採用することができる。
実施例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ブロックが学習スキップ対象と判定されると、イテレーションごとに学習率を通常学習よりも大幅に低下させた機械学習を実行させる。このようにして、情報処理装置は、入力層に近いブロックからの順番で、学習スキップを実行する。
このような学習スキップを行う否かの判定では、各層について重みWの最終更新値「Wl+1-Wl」を用いることが多い。なお、Wlは、l回目の学習時の重みである。図5は、判定指標の算出を説明する図である。行列式である最終更新値「Wl+1-Wl」を閾値に用いるために、図5に示すノルム計算式を用いて、最終更新値のスカラー値を算出し、判定指標を算出する。その後、横軸にエポック(イテレーション、時間に相当)、縦軸に上記スカラー値を設定すると、図6の示す図で表すことができる。図6は、各層のスキップ判定を説明する図である。図6に示すL6は先頭からの順で第6層、L36は第36層、L75は第75層、L132は第132層を示す。ここで、上述したBDを用いた学習スキップなどでは、図6に示した判定指標の傾向にしたがって、入力側から出力側までの各層について閾値を設定して、学習スキップの開始を判断する。
ところが、以下の問題がある。第1に、各層の閾値を設定する必要がある。第2に、重み(W)や重み傾斜(ΔW)そのものから閾値を設定することになるが、学習率(LR)や重み減衰(Weight-Decay)などの設定により判定指標の傾向が大きく変動するため、ハイパーパラメータであるLRやWeight-Decayの最適化した後で、学習スキップの開始閾値を最適化することになる。すなわち、非常に時間がかかり、自動化が難しい。
このようなことから、重み(W)や重み傾斜(ΔW)そのものに依存しない学習スキップの開始閾値の設定方法の実現が切望されている。
そこで、実施例1にかかる情報処理装置10は、機械学習モデルの機械学習時に、所定の間隔で、機械学習モデルが有する層ごとに、機械学習により更新される重みまたは重み傾斜の分散を算出する。そして、情報処理装置10は、所定の間隔で算出される分散のピーク値と、所定の間隔で算出される分散とに基づき、機械学習を抑制する抑制対象の層を決定する。
例えば、情報処理装置10は、層ごとの重み(W)や重み傾斜(ΔW)の分散を求め、分散の時間方向(epochまたはIteration)ピークから閾値以上低下した層を、学習スキップ可能と判定して、学習スキップまたはBDを用いた学習スキップを実行する。
図7は、実施例1にかかる情報処理装置10の処理を説明する図である。図7は、レイヤー33(L33)の重みについて、学習経過と複数の要素を有するテンソルデータ(以下では、単に「テンソル」と記載する場合がある)である重みのヒストグラムの変化との関係を示している。図7に示すように、学習開始前(0エポック)では、重み(W)のテンソルの各要素は一定値であり、学習中盤(40エポック)では、重み(W)のテンソルの各要素の分散は大きく、学習終盤(90エポック)の重み(W)のテンソルの各要素の分散は小さく中央値に近い分布となる。
すなわち、あるレイヤーについて、重みのテンソルの各要素のヒストグラムを表示すると、イテレーションが進むにつれて、重み(W)の分散は中央値に近い分布とする。このため、分散がある程度小さくなっていれば学習が終了したと判断することができる。一方、機械学習の初期段階で行われるウォームアップ処理の期間(例えば0から3850イテレーション)で学習スキップを行うと、精度の収束が遅くなり、ウォームアップ中の学習スキップは、スキップした長さ以上に精度へ悪影響を及ぼすことがある。
これらを考慮して、情報処理装置10は、機械学習モデルの各層について、ウォームアップ処理経過後に、重みのテンソルの各要素の分散のピークからの低下割合で閾値を設定して、学習スキップのタイミングを判定する。このようにすることで、情報処理装置10は、重み(W)や重み傾斜(ΔW)そのものに依存しない学習スキップの開始閾値の設定方法の実現でき、学習収束までの時間短縮と精度向上の両立を実現することができる。
[機能構成]
図8は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。図8に示すように、情報処理装置10は、通信部11、記憶部12、統合処理部20、複数の分散処理部30を有する。
図8は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。図8に示すように、情報処理装置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は、同様の構成を有する。図9は、分散処理部30の詳細を説明する図である。図9に示すように、分散処理部30は、順伝播処理部31、誤差逆伝播処理部32、情報管理部35、分散算出部36を有する。
次に、各分散処理部30の詳細について説明する。なお、各分散処理部30は、同様の構成を有する。図9は、分散処理部30の詳細を説明する図である。図9に示すように、分散処理部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が有する各層に対して誤差勾配(g)、重み(W)、momentum(m)を算出して、これらの情報を情報管理部35に出力する。
ここで、誤差勾配算出時に、誤差勾配算出部33は、学習を抑制すると決定された層(学習スキップ層)については、誤差勾配の算出を抑制する。また、誤差勾配算出部33は、ある特定の層のみを誤差勾配の算出対象としたり、畳み込み層を誤差勾配の算出対象としたり、誤差勾配の算出対象を任意に設定することもできる。なお、誤差勾配等の算出手法は、公知の様々な手法を採用することができる。
通信制御部34は、GPU間のAllReduce通信を実行する処理部である。例えば、通信制御部34は、各GPU間で誤差勾配を送受信することで、複数のGPUで算出された誤差勾配をエッジの重み毎に合計し、複数のGPUの間で誤差勾配が集計される。このように集計された誤差勾配に関する情報を用いて、誤差逆伝播処理部32による機械学習モデル14の各種パラメータの更新が実行される。
また、通信制御部34は、後述する分散算出部36からの制御指示にしたがって、スキップ対象の層への通信を停止する。また、通信制御部34は、機械学習モデル14の各層の中から、学習を止めずに誤差勾配計算および通信(Allreduce)を継続する層と、学習を止める層を特定し、通信を制御する。
情報管理部35は、誤差勾配算出部33から誤差勾配(g)、重み(W)、momentum(m)を取得して管理する処理部である。例えば、情報管理部35は、誤差勾配算出部33から取得した各層の重み(W)を分散算出部36に出力する。
分散算出部36は、機械学習モデル14の機械学習時に、所定の間隔で、機械学習モデル14が有する層ごとに、機械学習により更新される重みの分散を算出し、所定の間隔で算出される分散のピーク値と、所定の間隔で算出される分散とに基づき、機械学習を抑制する抑制対象の層を決定する処理部である。
具体的には、分散算出部36は、入力層から出力層までの順番で、学習スキップが未実行の層のうち最も入力層に近い層を、現在の学習スキップの判定対象である対象層に設定する。その後、分散算出部36は、各層について、重みの分散の算出および学習スキップの判定を実行する。
例えば、分散算出部36は、フォームアップ処理完了後、情報管理部35からイテレーションごとに通知される重み(W)のテンソルの各要素の分散を算出する。続いて、分散算出部36は、算出し続ける重みの分散を用いて、ピーク値を特定する。ピーク値を特定後、分散算出部36は、ピーク値と、算出し続ける重みの分散との差分を算出し、差分が閾値以上となった場合に、現在の対象層を学習スキップさせると判定する。そして、分散算出部36は、判定結果を通信制御部34に通知して学習スキップを実行するとともに、次の対象層を決定して判定を繰り返す。
ここで、閾値の設定について説明する。具体的には、分散算出部36は、重みの分散の変化に応じた閾値を設定する。例えば、閾値の設定パターンは、最初の層(L0)の閾値、分散の変化の波形が山型の場合の閾値、分散の変化の波形が下り坂の閾値の3パターンがある。分散算出部36は、各パターンに対して、ピークから低下度合いに基づき閾値を設定する。
図10は、閾値の設定を説明する図である。図10の(a)に示す機械学習モデル14の最初の層については、分散算出部36は、例えばピークから6%下がった値を閾値と設定する。例えば、分散算出部36は、分散のピークが「1.0」の場合、「0.94」を閾値に設定する。
また、図10の(b)に示す波型が山型の層については、分散算出部36は、例えばピークから4%下がった値を閾値と設定する。例えば、分散算出部36は、分散のピークが「1.0」の場合、「0.96」を閾値に設定する。
また、図10の(b)に示す波形が下り坂の層については、分散算出部36は、波形が下り坂の層については、例えばピークから2%下がった値を閾値と設定する。例えば、分散算出部36は、分散のピークが「1.0」の場合、分散「0.98」を閾値に設定する。
これは、ピークからの低下具合が異なるためであり、分散算出部36は、一例として、低下度合いを、下り坂<山形<最初の層となるように設定する。また、分散算出部36は、算出し続ける分散の所定のイテレーション間で所定値以上変化した場合に、山型のパターンと判定し、それ以外を下り坂のパターンと判定することができる。
また、分散算出部36は、学習スキップ対象と判定された層について、単に学習スキップさせるだけでなく、学習率の制動距離(BD)を用いて徐々に学習を停止させることもできる。
例えば、分散算出部36は、スキップ候補の層の学習を突然止めるのではなく、学習を止める命令を与えた際に、イテレーションに依存するBDを用いて学習率を下げてから抑制させる。より詳細には、分散算出部36は、機械学習モデル14の学習で使用するLRスケジューラがPOW2の場合、式(1)を用いて、POW2と同じように、BDを減少させる。
分散算出部36は、LRの制動距離であるBDを、式(1)に示す減衰率を乗算することで、設定したイテレーション数である7700まで、イテレーションごとに徐々に小さくしていき、学習率を低下させていく。なお、式(1)におけるBDは、予め定める設定値であり、iteration(イテレーション)は算出時点のイテレーション数である。
ここで、学習スキップ候補と判定された層について、上記減衰率を用いて学習スキップを実行する例について説明する。分散算出部36は、ウォームアップ(3850イテレーション)が完了すると、LR=5で機械学習を実行させる。そして、分散算出部36は、イテレーションが7980のときに学習スキップ候補と判定されると、式(2)を用いて、そのイテレーション時のLRを計算し、計算されたLRを用いて機械学習を実行させる。このように、分散算出部36は、イテレーションごとにLRを算出し、算出したLRを用いて機械学習を実行させる。
なお、式(2)における「LR」は、学習に使用される算出対象の学習率である。「End LR」は、学習スキップさせると判定するときのLRであり、この「End LR」になるまで、学習率の減衰(低下)が繰り返される。「BD開始時のLR」は、初期設定時のLRである。「Iter.」は、算出時のイテレーション数であり、スキップ候補と判定されたあとは、イテレーションごとに「LR」が算出されるので、そのイテレーション数となる。「BD開始時のiter.」は、学習率の減衰を開始するときのイテレーション数である。例えば、BD=7700イテレーション、ウォームアップ=3850イテレーション、「BD開始時のLR」に対応する初期値(Base LR)=5、最終LR(End LR)=0.0001、「BD開始時のiter.」=7980イテレーションとなる。
上述したように、分散算出部36は、学習スキップ候補の層の学習を突然止めるのではなく、イテレーションに依存するBDを用いて学習率を徐々にさげていき、目標の学習率になった以降を学習スキップさせる。このとき、分散算出部36は、入力層に近い層から順番に学習スキップを行うことで、学習精度の向上および最終的なエポック数の削減を行うこともできる。
[処理の流れ]
図11は、実施例1にかかる処理の流れを示すフローチャートである。図11に示すように、順伝播処理部31は、機械学習の開始が指示されると(S101:Yes)、訓練データを読み込み(S102)、順伝播処理を実行する(S103)。
図11は、実施例1にかかる処理の流れを示すフローチャートである。図11に示すように、順伝播処理部31は、機械学習の開始が指示されると(S101:Yes)、訓練データを読み込み(S102)、順伝播処理を実行する(S103)。
続いて、誤差逆伝播処理部32、情報管理部35、分散算出部36は、誤差逆伝播処理を実行する(S104)。その後、機械学習を継続する場合(S105:No)、S102以降が実行され、機械学習を終了する場合(S105:Yes)、情報処理装置10は、機械学習処理を終了する。
(誤差逆伝播処理の流れ)
図12は、誤差逆伝播処理の流れを示すフローチャートである。図12に示すように、分散算出部36は、誤差計算と誤差逆伝播を停止させる学習スキップの判定対象である対象層nが未設定か否かを判定し(S201)、未設定である場合(S201:Yes)、学習スキップの判定対象である対象層nを設定する(S202)。
図12は、誤差逆伝播処理の流れを示すフローチャートである。図12に示すように、分散算出部36は、誤差計算と誤差逆伝播を停止させる学習スキップの判定対象である対象層nが未設定か否かを判定し(S201)、未設定である場合(S201:Yes)、学習スキップの判定対象である対象層nを設定する(S202)。
すでに設定済みである場合(S201:No)もしくは対象層nを設定した場合(S202)、分散算出部36は、学習進度の判定タイミングであるか否かを判定する(S203)。例えば、分散算出部36は、ウォームアップ処理が完了しており、イテレーション完了後である場合に、学習進度の判定タイミングと判定する。
ここで、分散算出部36が学習進度の判定タイミングではないと判定した場合(S203:No)、誤差逆伝播処理部32は、通常の誤差逆伝播処理を実行する(S204)。
一方、分散算出部36は、学習進度の判定タイミングであると判定した場合(S203:Yes)、対象層nの重み(W)の分散V(n)を算出する(S205)。なお、分散σ2は、確率変数Xの期待値(母平均)をμ=E(X)とするとき、Xと母平均との差の2乗の期待値E((X-μ)2)をXの分散として算出される。
続いて、分散算出部36は、分散V(n)のピークを求める(S206)。例えば、分散算出部36は、あるイテレーション(ここでは5000)以降に、重み分散値を計算し、Vi(n)を学習進度タイミングi番目のn層の分散値として、Vmax(n)を求める。ここで、分散算出部36は、「Vi(n)-、Vi-1(n)」の値が0未満(「Vi(n)-、Vi-1(n)」<0)である状態が所定数継続する場合は、「下り坂の閾値」を設定する。分散算出部36は、「Vi(n)-、Vi-1(n)」の値が0より大きい状態(「Vi(n)-、Vi-1(n)」>0)から0未満(「Vi(n)-、Vi-1(n)」<0)に変化する場合は、「山型の閾値」を設定する。
その後、分散算出部36は、分散V(n)がピークから閾値T%以下に低下したか否かを判定する(S207)。ここで、分散算出部36は、分散V(n)がピークから閾値T%以下に低下した場合(S207:Yes)、n層が閾値に達したので学習スキップを行うと決定する(S208)。一方、分散算出部36は、分散V(n)がピークから閾値T%以下に低下していない場合(S207:No)、n層が閾値に達していないので通常の誤差逆伝播処理を実行する(S204)。例えば、分散算出部36は、「(Vi(n)/Vmax(n))<閾値」となった場合に、学習スキップを行うと判定する。
[効果]
上述したように、情報処理装置10は、学習が進むと重みWのバラつきが少なくなることに着目して、学習進度の判定に、重み(W)や重み傾斜(ΔW)を用いて、ピークからの分散値の低下の割合で学習スキップの可否を判定する。この結果、ハイパーパラメータも分散値のみになるため、短時間で閾値の特定が可能となり自動化を行いやすい。例えば、通常60回の施行でパラメータを決定する場合であっても、実施例1の手法を用いることで、5回程度の施行でパラメータを決定できる実験結果も得られた。
上述したように、情報処理装置10は、学習が進むと重みWのバラつきが少なくなることに着目して、学習進度の判定に、重み(W)や重み傾斜(ΔW)を用いて、ピークからの分散値の低下の割合で学習スキップの可否を判定する。この結果、ハイパーパラメータも分散値のみになるため、短時間で閾値の特定が可能となり自動化を行いやすい。例えば、通常60回の施行でパラメータを決定する場合であっても、実施例1の手法を用いることで、5回程度の施行でパラメータを決定できる実験結果も得られた。
ところで、ある層について学習スキップにより学習停止を実行した場合、学習スキップが次の層に及ぼす影響について検討する。図13は、停止した層の後の層への影響を説明する図である。図13には、Conv(Convolution:畳み込み)層で30層目まで学習スキップさせた場合の直後の33層目の影響を検討するために、33層の重みの分散のヒストグラムを示している。
図13の(a)に示すように、L30を学習スキップさせなかった場合のL33への影響は、通常の誤差逆伝播処理のため特にない。一方、図13の(b)に示すように、L30を学習スキップさせた場合、L33の重み(W)の分散は山型で上昇する。つまり、重みのヒストグラムのヒートマップ上の矢印で示すように、学習スキップしたあたりから広がりを見せていることが確認できる。
また、図14は、複数回の学習スキップを行った場合に後の層への影響を説明する図である。図14には、Conv層で69層目まで学習スキップさせた場合の直後の72層目の影響を検討するために、72層の重みの分散のヒストグラムを示している。
図14の(a)に示すように、L69を学習スキップさせなかった場合のL72への影響は、通常の誤差逆伝播処理のため特にない。また、図14の(b)に示すように、L69の学習スキップを1回行った場合、矢印で示すように、学習スキップしたあたりから広がりを見せていることが確認できる。また、図14の(c)に示すように、L69の学習スキップを2回行った場合、1回目も2回目も、矢印で示すように、学習スキップしたあたりから広がりを見せていることが確認できる。すなわち、重みの分散はほぼ影響うけないものの、重みのヒストグラムのヒートマップでも学習スキップしたあたりからの広がりが確認できる。
上述したように、学習スキップを実行した層の直後の層は、一度、分散が広がることから、実施例1の手法ではピークの誤認や学習が十分ではない状態での学習スキップが発生することがある。このため、学習スキップ後の最終的な学習精度を低下させないために、閾値判定のタイミングの改良を行う。
図15は、閾値判定タイミングの改良点を説明する図である。図15では、BD期間を用いた学習スキップの制御例で説明するが、通常の学習スキップでも同様である。また、重みの分散計算のサンプリングを200イテレーションとし、BD期間を1000から3000イテレーションとする。
図15に示すように、分散算出部36は、L6で重みWの分散の計算を開始し、重みWの分散が閾値に到達すると、BD期間を設定して、L6の学習を徐々に停止する。一方、分散算出部36は、L6の重みの分散が閾値に到達したタイミングで、L9の重みの分散の計算を開始する。さらに、分散算出部36は、L6のBD期間中に、L9の重みの分散が閾値に到達すると、L9にBD期間を設定して、L9の学習を徐々に停止する。すなわち、L6のBD期間とL9のBD期間とで重複する期間が発生する。
ところが、L9のBD期間中に、L6のBD期間が終了してL6の学習が終了すると、図13や図14で説明したように、L9のBD期間中にも関わらず、L9の重みの分散が広がる。つまり、BD期間>分散サンプリング間隔であるために、L9では、閾値に達した後で、前層(L6)の学習停止の影響を受けて、L9の分散値が山型になる場合がある。結果として、L9の重みの分散が十分下がりきらないときに、言い換えるとまだ学習中に、L9の学習を停止することになり、最終的な機械学習モデル14の精度低下を起こす可能性がある。
そこで、実施例2にかかる情報処理装置10は、図15の改良点を改良するために、各層について、BD期間中は後続の層について閾値判定および分散算出を実行しないように制御する。
図16は、閾値判定タイミングの改良を説明する図である。図16では、図15と同様、BD期間を用いた学習スキップの制御例で説明するが、通常の学習スキップでも同様である。また、重みの分散計算のサンプリングを200イテレーションとし、BD期間を1000から3000イテレーションとする。
図16に示すように、分散算出部36は、L6で重みWの分散の計算を開始し、閾値に到達すると、BD期間を設定して、L6の学習を徐々に停止する。このとき、分散算出部36は、L6の重みが閾値に到達したタイミングであっても、BD期間中であることから、L9の重みの分散算出を抑制する。すなわち、L6のBD期間とL9のBD期間とで重複する期間が発生しないように制御する。
そして、分散算出部36は、L6のBD期間が終了したタイミングで、L9で重みWの分散計算を開始し、閾値に到達すると、L9のBD期間を設定して、L9の学習を徐々に停止する。
このように、分散算出部36は、BD期間中は、後続の層について重みの分散計算を抑制し、L6の次の層(L9)において、L6による影響を含んだ重みの分散の低下を検知してからL9の学習スキップの実施が可能となる。結果として、情報処理装置10は、最終的な機械学習モデル14の精度向上を図ることができる。
次に、情報処理装置10が実行する学習スキップや閾値判定のタイミング制御についてのバリエーションを説明する。
[BD周期に合わせて分散計算]
図17は、BD周期に合わせて分散計算の実施を説明する図である。図17では、分散計算を行う対象層を、L0およびL3層以降も1層とし、分散対象の層が閾値に達した後に、次の層を分散計算の対象とする。
図17は、BD周期に合わせて分散計算の実施を説明する図である。図17では、分散計算を行う対象層を、L0およびL3層以降も1層とし、分散対象の層が閾値に達した後に、次の層を分散計算の対象とする。
図17に示すように、分散処理部30は、機械学習モデルの最初の層(Conv層)であるL0について、機械学習を開始してウォームアップ期間が終了したイテレーション「n-3000」で重み(W)の分散計算を開始し、イテレーション「n-2000」、イテレーション「n-1000」のイテレーションごとに重み(W)の分散計算を実行する。そして、分散処理部30は、イテレーション「n」で算出した重み(W)の分散が閾値に到達すると、BD制御による学習スキップを開始する。その後、分散処理部30は、イテレーション「n+1000」で、L0のBD期間が終了し、L0の学習を停止する。
このとき、分散処理部30は、イテレーション「n+1000」で、L0の学習が停止したことから、同タイミングのイテレーション「n+1000」から、L0の次の層であるL3に対する重みの分散計算を開始する。そして、分散処理部30は、イテレーション「n+2000」でもL3の重みの分散を実行し、イテレーション「n+3000」で算出した重み(W)の分散が閾値に到達すると、L3に対してBD制御による学習スキップを開始する。
その後、分散処理部30は、イテレーション「n+4000」で、L3のBD期間が終了し、L3の学習を停止する。このとき、分散処理部30は、イテレーション「n+4000」で、L3の学習が停止したことから、同タイミングのイテレーション「n+4000」から、L3の次の層であるL6に対する重みの分散計算を開始する。
そして、分散処理部30は、イテレーション「n+5000」でL6の重みの分散を実行し、イテレーション「n+6000」で算出した重み(W)の分散が閾値に到達すると、L6に対してBD制御による学習スキップを開始する。
その後、分散処理部30は、イテレーション「n+7000」で、L6のBD期間が終了し、L6の学習を停止する。このとき、分散処理部30は、イテレーション「n+7000」で、L6の学習が停止したことから、同タイミングのイテレーション「n+7000」から、L6の次の層であるL9に対する重みの分散計算を開始する。
このように、分散処理部30は、Braking Distance(BD)の幅を分散計算周期に合わせることで、例えばL0のBD期間が終了し、実際に層の学習停止による影響がL3に反映された場合でも、L3への影響をL3の分散計算により対応できる。この結果、分散処理部30は、1層ごとに確実に学習を停止するので、精度劣化を抑制することができる。
[複数層を扱う例1]
図18は、複数層をまとめた学習スキップの実施を説明する図である。図18に示すように、分散処理部30は、L0、L3、L6、L9、L12、L15をまとめてブロック1とし、L18、L21、L24、L27、L30、L33をまとめてブロック2とする。そして、分散処理部30は、ブロックごとに学習スキップを制御する。
図18は、複数層をまとめた学習スキップの実施を説明する図である。図18に示すように、分散処理部30は、L0、L3、L6、L9、L12、L15をまとめてブロック1とし、L18、L21、L24、L27、L30、L33をまとめてブロック2とする。そして、分散処理部30は、ブロックごとに学習スキップを制御する。
具体的には、分散処理部30は、機械学習を開始してウォームアップ期間が終了したイテレーション「n」において、ブロック1の各層の重み(W)の分散計算を開始する。そして、分散処理部30は、イテレーション「n+20」で算出した各層の重みの分散において、L9とL12とL15の重みの分散が閾値に到達したことを検出すると、L9とL12とL15についてはそれ以降の重みの分散計算を停止する。
その後、分散処理部30は、イテレーション「n+40」で算出した各層(L0、L3、L6)の重みの分散において、L3とL6の重みの分散が閾値に到達したことを検出すると、L3とL6についてはそれ以降の重みの分散計算を停止する。
その後、分散処理部30は、イテレーション「n+60」で算出したL0の重みの分散が閾値に到達したことを検出すると、L0についてはそれ以降の重みの分散計算を停止する。この結果、分散処理部30は、ブロック1内の全層の重みが閾値に到達したことから、次のイテレーション「n+80」からはブロック1の各層に対して学習スキップを実行するとともに、ブロック2内の各層の重みの分散計算を開始する。
このように、分散処理部30は、閾値に達した場合に、重みの分散の計算を停止し、計算対象とした複数層が全て閾値範囲内となった場合に対象層の学習スキップを行うことができる。また、分散処理部30は、ブロックに含める対象層の層数を可変することで、一度に学習スキップさせる層を多くすることもできる。したがって、分散処理部30は、機械学習モデル14(ニューラルネットワーク)の入力側から複数層を同時に、重みの分散の計算を実施し、学習スキップさせる層を増やすことができるので、機械学習の高速化を実現することができる。
[複数層を扱う例2]
図19は、複数層をまとめたBD制御の実施を説明する図である。図19に示すように、分散処理部30は、L0、L3、L6、L9、L12、L15をまとめてブロック1とし、L18、L21、L24、L27、L30、L33をまとめてブロック2とする。そして、分散処理部30は、ブロックごろに学習スキップを制御する。
図19は、複数層をまとめたBD制御の実施を説明する図である。図19に示すように、分散処理部30は、L0、L3、L6、L9、L12、L15をまとめてブロック1とし、L18、L21、L24、L27、L30、L33をまとめてブロック2とする。そして、分散処理部30は、ブロックごろに学習スキップを制御する。
具体的には、分散処理部30は、機械学習を開始してウォームアップ期間が終了したイテレーション「n」において、ブロック1の各層の重み(W)の分散計算を開始する。そして、分散処理部30は、イテレーション「n+20」で算出した各層の重みの分散において、L9とL12とL15の重みの分散が閾値に到達したことを検出すると、L9とL12とL15についてはそれ以降の重みの分散計算を停止する。
その後、分散処理部30は、イテレーション「n+40」で算出した各層(L0、L3、L6)の重みの分散において、L3とL6の重みの分散が閾値に到達したことを検出すると、L3とL6についてはそれ以降の重みの分散計算を停止する。
その後、分散処理部30は、イテレーション「n+60」で算出したL0の重みの分散が閾値に到達したことを検出すると、L0についてはそれ以降の重みの分散計算を停止する。この結果、分散処理部30は、ブロック1内の全層の重みが閾値に到達したことから、次のイテレーション「n+80」からはBD制御により、ブロック1の各層に対して学習スキップを実行する。
そして、分散処理部30は、BD期間であるイテレーション「n+80」から「n+160」までは、LRを徐々に低下させていく学習スキップを実行し、イテレーション「n+180」でBD期間が終了し、ブロック1内の各層の学習スキップを完了する。ここで、分散処理部30は、イテレーション「n+180」でブロック1内の各層の学習スキップを完了したことから、イテレーション「n+180」でブロック2内の各層の重みの分散計算を開始する。
このように、分散処理部30は、閾値に達した場合に、重みの分散の計算を停止し、計算対象とした複数層が全て閾値範囲内となった場合に、対象層にBD期間を設定して学習スキップを行うことができる。したがって、分散処理部30は、機械学習の高速化と精度劣化の抑制とを両立させることができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[数値等]
上記実施例で用いたブロック数、層数、各種閾値、数値、GPU数等は、あくまで一例であり、任意に変更することができる。また、学習率は、低下させるだけではなく、増加させることもできる。また、学習スキップの判定は、イテレーションごとに限らず、エポックごとに判定することもできる。なお、LRスケジューラと学習率を制御するスケジューラは、同じスケジューラを使用する方が好ましい。
上記実施例で用いたブロック数、層数、各種閾値、数値、GPU数等は、あくまで一例であり、任意に変更することができる。また、学習率は、低下させるだけではなく、増加させることもできる。また、学習スキップの判定は、イテレーションごとに限らず、エポックごとに判定することもできる。なお、LRスケジューラと学習率を制御するスケジューラは、同じスケジューラを使用する方が好ましい。
また、重みの分散の算出タイミングも、イテレーションごとに限らず、所定の訓練データ数ごと、1エポックごとなど任意に設定変更することができる。また、重み情報として重みの分散を用いる例を説明したが、重み傾斜の分散を用いることもできる。
[ブロックの制御等]
例えば、上記例では、ブロックに属する層のうち、最後の層の誤差勾配やブロックに属する各層の重みの分散の平均値が閾値未満か否かにより、スキップ対象と判定することもできる。
例えば、上記例では、ブロックに属する層のうち、最後の層の誤差勾配やブロックに属する各層の重みの分散の平均値が閾値未満か否かにより、スキップ対象と判定することもできる。
[BDの設定例]
上記実施例では、各層や各ブロックについて同じBD期間を設定することも、異なるBD期間を設定することもできる。例えば、機械学習が進んだ状態で機械学習を停止させる出力層に近いブロックについては、比較的早い機械学習を段階で停止させる入力層に近いブロックよりも短いBD期間を設定することができる。
上記実施例では、各層や各ブロックについて同じBD期間を設定することも、異なるBD期間を設定することもできる。例えば、機械学習が進んだ状態で機械学習を停止させる出力層に近いブロックについては、比較的早い機械学習を段階で停止させる入力層に近いブロックよりも短いBD期間を設定することができる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
次に、上記実施例で説明した情報処理装置10のハードウェア構成例を説明する。図20は、ハードウェア構成例を説明する図である。図20に示すように、情報処理装置10、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、CPU10d、複数のGPU10eを有する。また、図20に示した各部は、バス等で相互に接続される。
次に、上記実施例で説明した情報処理装置10のハードウェア構成例を説明する。図20は、ハードウェア構成例を説明する図である。図20に示すように、情報処理装置10、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、CPU10d、複数のGPU10eを有する。また、図20に示した各部は、バス等で相互に接続される。
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、図8や図9等に示した機能を動作させるプログラムやDBを記憶する。
CPU10dは、情報処理装置10全体の制御を実行し、例えば機械学習に関するプログラムをHDD10b等から読み出してメモリ10cに展開することで、機械学習の各プロセスを動作させる各GPU10eは、図8や図9等に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図8や図9等で説明した各機能を実行するプロセスを動作させる。例えば、各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 分散算出部
11 通信部
12 記憶部
13 訓練データDB
14 機械学習モデル
20 統合処理部
30 分散処理部
31 順伝播処理部
32 誤差逆伝播処理部
33 誤差勾配算出部
34 通信制御部
35 情報管理部
36 分散算出部
Claims (9)
- コンピュータに、
機械学習モデルの機械学習時に、所定の間隔で、前記機械学習モデルが有する層ごとに、機械学習により更新される重みに関する重み情報の分散を算出し、
前記所定の間隔で算出される前記分散のピーク値と、前記所定の間隔で算出される前記重み情報の分散とに基づき、前記機械学習を抑制する抑制対象の層を決定する、
処理を実行させることを特徴とする高速化プログラム。 - 前記算出する処理は、
前記所定の間隔としてイテレーションごとに、前記層ごとの前記重み情報の分散を算出し、
前記決定する処理は、
前記層ごとに、前記イテレーションごとに算出される前記重み情報の分散の傾向に基づき、前記重み情報の分散の波形パターンを特定し、
前記層ごとに前記波形パターンに応じた閾値を設定し、
前記分散のピーク値と、前記所定の間隔で算出される前記重み情報の分散との差分が前記閾値以上となった層を前記抑制対象の層に決定する、
ことを特徴とする請求項1に記載の高速化プログラム。 - 前記決定する処理は、
前記機械学習モデルの入力層から順で、前記抑制対象を判定する対象層を選択し、
前記対象層について、前記分散のピーク値と前記重み情報の分散とに基づき、前記所定の間隔ごとに前記機械学習を抑制するか否かを判定する、
ことを特徴とする請求項1または2に記載の高速化プログラム。 - 前記算出する処理は、
前記機械学習モデルが有する複数の層のうち、前記抑制対象の層と決定された第1層の機械学習が停止した後に、前記第1層の次に位置する第2層について、前記重み情報の分散の算出を開始する、
ことを特徴とする請求項3に記載の高速化プログラム。 - 前記算出する処理は、
前記機械学習モデルが有する複数の層を入力層からの順で複数のブロックに分割し、
前記複数のブロックそれぞれに属する各層について前記重み情報の分散を算出し、
前記決定する処理は、
前記機械学習モデルの入力に近い順で前記抑制対象を判定する対象ブロックを選択し、
前記対象ブロックについて、前記対象ブロックに属する各層の前記分散のピーク値と前記重み情報の分散との差分が閾値以上となった場合に、前記対象ブロックに属する各層の前記機械学習を抑制する、
ことを特徴とする請求項1または2に記載の高速化プログラム。 - 前記算出する処理は、
前記複数のブロック層のうち、前記抑制対象の層と決定された第1ブロックの機械学習が停止した後に、前記第1ブロックの次に位置する第2ブロックについて、前記重み情報の分散の算出を開始する、
ことを特徴とする請求項5に記載の高速化プログラム。 - 前記決定する処理は、
前記機械学習を抑制する抑制対象の層に対して、前記機械学習を抑制させるまでの一定期間の間、イテレーションごとに学習率を低下させて前記機械学習を実行する、
ことを特徴とする請求項1に記載の高速化プログラム。 - コンピュータが、
機械学習モデルの機械学習時に、所定の間隔で、前記機械学習モデルが有する層ごとに、機械学習により更新される重みに関する重み情報の分散を算出し、
前記所定の間隔で算出される前記分散のピーク値と、前記所定の間隔で算出される前記重み情報の分散とに基づき、前記機械学習を抑制する抑制対象の層を決定する、
処理を実行することを特徴とする高速化方法。 - 機械学習モデルの機械学習時に、所定の間隔で、前記機械学習モデルが有する層ごとに、機械学習により更新される重みに関する重み情報の分散を算出し、
前記所定の間隔で算出される前記分散のピーク値と、前記所定の間隔で算出される前記重み情報の分散とに基づき、前記機械学習を抑制する抑制対象の層を決定する、
制御部を有することを特徴とする情報処理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021147507A JP2023040492A (ja) | 2021-09-10 | 2021-09-10 | 高速化プログラム、高速化方法および情報処理装置 |
US17/844,765 US20230083790A1 (en) | 2021-09-10 | 2022-06-21 | Computer-readable recording medium storing speed-up program, speed-up method, and information processing device |
EP22180121.0A EP4148630A1 (en) | 2021-09-10 | 2022-06-21 | Speed-up program, speed-up method, and information processing device |
CN202210793290.4A CN115796234A (zh) | 2021-09-10 | 2022-07-07 | 计算机可读记录介质、加速方法和信息处理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021147507A JP2023040492A (ja) | 2021-09-10 | 2021-09-10 | 高速化プログラム、高速化方法および情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023040492A true JP2023040492A (ja) | 2023-03-23 |
Family
ID=82163545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021147507A Pending JP2023040492A (ja) | 2021-09-10 | 2021-09-10 | 高速化プログラム、高速化方法および情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230083790A1 (ja) |
EP (1) | EP4148630A1 (ja) |
JP (1) | JP2023040492A (ja) |
CN (1) | CN115796234A (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198645A (ja) | 1997-01-07 | 1998-07-31 | Nippon Telegr & Teleph Corp <Ntt> | ニューラルネット学習方法及び装置 |
US6119112A (en) | 1997-11-19 | 2000-09-12 | International Business Machines Corporation | Optimum cessation of training in neural networks |
US10515304B2 (en) | 2015-04-28 | 2019-12-24 | Qualcomm Incorporated | Filter specificity as training criterion for neural networks |
-
2021
- 2021-09-10 JP JP2021147507A patent/JP2023040492A/ja active Pending
-
2022
- 2022-06-21 EP EP22180121.0A patent/EP4148630A1/en active Pending
- 2022-06-21 US US17/844,765 patent/US20230083790A1/en active Pending
- 2022-07-07 CN CN202210793290.4A patent/CN115796234A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230083790A1 (en) | 2023-03-16 |
EP4148630A1 (en) | 2023-03-15 |
CN115796234A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7040319B2 (ja) | 運用管理装置、移動先推奨方法及び移動先推奨プログラム | |
CN111291894B (zh) | 超参数优化过程中的资源调度方法、装置、设备及介质 | |
JP2022007168A (ja) | 学習プログラム、学習方法および情報処理装置 | |
JP2023063944A (ja) | 機械学習プログラム、機械学習方法、及び、情報処理装置 | |
JP2023040492A (ja) | 高速化プログラム、高速化方法および情報処理装置 | |
JP2021197108A (ja) | 学習プログラム、学習方法および情報処理装置 | |
US20200272901A1 (en) | Optimization apparatus, optimization method, and non-transitory computer readable medium | |
CN113496248A (zh) | 训练计算机实施的模型的方法和设备 | |
JP7501315B2 (ja) | 演算処理プログラム、演算処理方法および情報処理装置 | |
JP2023046868A (ja) | 機械学習プログラム、機械学習方法および情報処理装置 | |
US20230023241A1 (en) | Computer-readable recording medium storing machine learning program, information processing device, and machine learning method | |
CN112783441B (zh) | 一种调整虚拟机磁盘读写限速的方法、装置及计算设备 | |
US20210012192A1 (en) | Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program | |
CN114757244A (zh) | 模型训练方法、装置、存储介质及设备 | |
JP6787032B2 (ja) | 制御装置、制御方法、および制御プログラム | |
US20210089885A1 (en) | Training device and training method | |
US20240193424A1 (en) | Computer-readable recording medium storing distributed learning program, distributed learning method, and distributed learning device | |
CN113407192B (zh) | 模型部署方法和设备 | |
US20220147772A1 (en) | Computer-readable recording medium storing machine learning program, machine learning method, and information processing apparatus | |
US20220253693A1 (en) | Computer-readable recording medium storing machine learning program, apparatus, and method | |
KR102687374B1 (ko) | 인공신경망 연산 방법 및 이를 이용한 인공신경망 연산 장치 | |
WO2022070324A1 (ja) | 移動体制御装置、移動体制御方法、移動体制御システム及び移動体制御プログラムを記録したコンピュータ読み取り可能な非一時的な記憶媒体 | |
CN115345314A (zh) | 存储介质、机器学习方法和信息处理设备 | |
KR20230072395A (ko) | 언어 모델 학습 방법 및 장치 | |
JP2021111136A (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240611 |