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

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

Info

Publication number
JP2022075295A
JP2022075295A JP2020185986A JP2020185986A JP2022075295A JP 2022075295 A JP2022075295 A JP 2022075295A JP 2020185986 A JP2020185986 A JP 2020185986A JP 2020185986 A JP2020185986 A JP 2020185986A JP 2022075295 A JP2022075295 A JP 2022075295A
Authority
JP
Japan
Prior art keywords
machine learning
layer
layers
skip
block
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.)
Withdrawn
Application number
JP2020185986A
Other languages
English (en)
Inventor
雄高 甲斐
Taketaka Kai
明彦 笠置
Akihiko Kasaoki
靖 原
Yasushi Hara
匠 檀上
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 JP2020185986A priority Critical patent/JP2022075295A/ja
Priority to US17/376,216 priority patent/US20220147772A1/en
Priority to EP21185707.3A priority patent/EP3995999A1/en
Priority to CN202110901356.2A priority patent/CN114444651A/zh
Publication of JP2022075295A publication Critical patent/JP2022075295A/ja
Withdrawn 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • 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/2163Partitioning the feature space
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

【課題】目標精度の到達までにかかる機械学習の時間を短縮することができる機械学習プログラム、機械学習方法及び情報処理装置を提供する。【解決手段】情報処理装置の分散処理部30は、機械学習モデルに含まれる複数の層それぞれについて機械学習モデルの各パラメータに対する誤差の勾配を示す誤差勾配を算出する誤差勾配算出部33と、算出された誤差情報を用いて学習を停止させるスキップ対象の候補となる層を抽出する候補抽出部35と、を含む。機械学習モデルの機械学習時に、機械学習モデルが有する複数の層について誤差勾配を算出し、誤差勾配が閾値未満である層のうち所定の範囲内に位置する層を抑制対象の層と特定し、抑制対象の層に対する機械学習を抑制する。【選択図】図5

Description

本発明は、機械学習プログラム、機械学習方法および情報処理装置に関する。
機械学習モデルの機械学習を高速化するために、GPU(Graphics Processing Unit)の利用が有効であり、さらに複数のGPUで処理を分散させることも有効である。これまでに、情報処理装置であるノード内に複数のGPUを実装し、ノード内で並列に機械学習処理を実行することで高速化が行われてきたが、GPU間での勾配情報の集約処理や反映処理に時間を要していた。
このような機械学習モデルの機械学習では、新規学習部分は学習するたびに頻繁に更新が必要なために、更新頻度を決定する学習率(Learning Rate:LR)を高めに設定する必要がある。一方で、すでに機械学習が完了している既存学習部分は入力側に近いほど学習率は低く、極端な場合は学習率が0となる場合も多い。学習率が0の部分は、機械学習処理を行わなくてもよいのにもかかわらず、新規学習部分と同じ頻度で勾配情報の集約処理や反映処理や、重みの計算処理を行っており、無駄な処理が多い。
このようなことから、近年では、機械学習を必要としていない層を見極め、勾配情報(Δw)の計算や集約処理(Allreduce処理)を行わずに、スキップさせるGradient Skip技術が利用されている。
特開平4-232562号公報 国際公開第2019/167665号 米国特許第09047566号明細書 米国特許第05243688号明細書
しかしながら、上記技術では、機械学習をスキップさせることで高速化が図れるものの、スキップさせる層やタイミングによっては、機械学習の精度が劣化し、目標精度に到達せずに、機械学習が終了することがある。
一つの側面では、目標精度の到達までにかかる機械学習の時間を短縮することができる機械学習プログラム、機械学習方法および情報処理装置を提供することを目的とする。
第1の案では、機械学習プログラムは、コンピュータに、機械学習モデルの機械学習時に、前記機械学習モデルの入力層を含む、前記機械学習モデルが有する複数の層について誤差勾配を算出する処理を実行させる。機械学習プログラムは、前記誤差勾配が閾値未満である層のうち、前記入力層から所定位置までの範囲内に位置する層を抑制対象の層と特定し、前記抑制対象の層に対する前記機械学習を抑制する処理を実行させる。
一実施形態によれば、目標精度の到達までにかかる機械学習の時間を短縮することができる。
図1は、実施例1にかかる情報処理装置の分散学習を説明する図である。 図2は、機械学習の参考技術を説明する図である。 図3は、実施例1にかかる情報処理装置の機械学習を説明する図である。 図4は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。 図5は、分散処理部の詳細を説明する図である。 図6は、スキップ候補の検出を説明する図である。 図7は、学習スキップの判定基準となるスキップ頻度を説明する図である。 図8は、学習スキップの判定基準となるウォームアップの考慮を説明する図である。 図9は、学習スキップの判定基準となるスキップ層の選択を説明する図である。 図10は、学習スキップの非対象層の選択を説明する図である。 図11は、学習スキップのスキップする層の分割を説明する図である。 図12は、学習スキップのスキップする層の順番を説明する図である。 図13は、学習スキップの制御を説明する図である。 図14は、実施例1にかかる学習スキップを説明する図である。 図15は、実施例1にかかる機械学習処理の流れを示すフローチャートである。 図16は、効果を説明する図である。 図17は、エレメントサイズ別にブロックを生成する手法を説明する図である。 図18は、ブロックの構成単位を説明する図である。 図19は、学習スキップの制御の別例を説明する図である。 図20は、ハードウェア構成例を説明する図である。
以下に、本願の開示する機械学習プログラム、機械学習方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
実施例1にかかる情報処理装置10は、機械学習処理の高速化を実現するために、複数のGPUを用いた分散処理により、機械学習モデルの生成を実行する。図1は、実施例1にかかる情報処理装置10の分散学習を説明する図である。図1に示すように、情報処理装置10は、CPU(Central Processing Unit)と複数のGPUとを有するコンピュータの一例である。CPUは、情報処理装置10全体を司る制御を実行し、機械学習モデルの生成を統合的に管理する。各GPUは、CPUからの指示に応じて、機械学習モデルの機械学習を実行する。なお、分散処理の手法は、公知の手法を採用することができる。
近年では、各層の学習率を用いて機械学習を必要としていない層を見極め、勾配情報(Δw)の計算や集約処理(Allreduce処理)を行わずに、学習を抑制する(スキップさせる)Gradient Skip技術が利用されている。
ここで、学習スキップの参考技術について説明する。図2は、機械学習の参考技術を説明する図である。図2に示す参考技術は、深層学習(DL:Deep Learning)などにより機械学習モデルを生成する技術であり、DLの誤差勾配から学習状況を取得して誤差勾配の算出をスキップすることで、学習時間を短縮する技術である。
具体的には、参考技術は、学習の進捗状況を示す学習率が低下した層を検出して、当該層に対する学習を省略することで、学習時間を短縮する。例えば、今回のイテレーション時の誤差勾配と直前のイテレーション時の誤差勾配との差分が閾値以上である各層については、次回のイテレーション時にも通常通りに学習が実行され、差分が未満である各層については次回のイテレーション時に学習のスキップが実行される。すなわち、学習率が低下した層については以後の誤差勾配の算出などの機械学習処理が抑制される。
ただし、参考技術では、完全に機械学習をスキップさせた場合の精度劣化の影響が未知な部分もある。つまり、学習スキップさせる層やタイミングによっては、機械学習の精度が劣化し、目標精度に到達しないことがある。
そこで、実施例1にかかる情報処理装置10は、今回のイテレーション時の誤差勾配と直前のイテレーション時の誤差勾配との差分によりスキップ候補と選択された層が、真にスキップしてよい条件を満たす層か否かを判定することで、精度劣化の抑制と学習時間の短縮を両立させる。
ここで、実施例1で用いる学習スキップの一例を説明する。図3は、実施例1にかかる情報処理装置10の機械学習を説明する図である。図3に示すように、機械学習モデルの深層学習では、順伝播による機械学習(計算処理)と誤差逆伝播による重み等の更新処理とが実行される。そこで、情報処理装置10は、誤差逆伝播による更新時に、学習がある程度進んだイテレーションから重み情報の更新を停止させていくが、その際に、停止させる層(レイヤー)を入力側から停止させる。これは、出力側を停止させると、学習精度が目標精度に到達しないことがあるが、入力側は精度への影響が低いためである。
このようにすることで、情報処理装置10は、誤差勾配の算出だけでなく、誤差逆伝播の計算も削減することができ、計算量を削減できるととともに、目標精度までの学習時間を短縮することができる。
[機能構成]
図4は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。図4に示すように、情報処理装置10は、通信部11、記憶部12、統合処理部20、複数の分散処理部30を有する。
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部11は、管理者端末との間で、各種データや各種指示などを送受信する。
記憶部12は、各種データや各種プログラムなどを記憶する処理部であり、例えばメモリやハードディスクなどにより実現される。この記憶部12は、訓練データDB13と機械学習モデル14を記憶する。
訓練データDB13は、機械学習モデル14の機械学習に利用される訓練データを記憶するデータセットの一例ある。例えば、訓練データDB13に記憶される各訓練データは、画像データと教師ラベルとから構成される。なお、訓練データのデータセットは、任意の単位でサブセット(バッチサイズ)に分割することができる。
機械学習モデル14は、DLなどの機械学習により生成されるモデルであり、複数の層から構成される多層ニューラルネットワークを用いたモデルの一例ある。例えば、機械学習モデル14は、画像データが入力された場合に、写っている動物の分類を実行する。なお、機械学習モデル14には、DNN(Deep Neural Network)やCNN(Convolutional Neural Network)などを採用することができる。
統合処理部20は、情報処理装置10全体を司る処理部であり、例えばCPUにより実現される。例えば、統合処理部20は、機械学習の分散処理、機械学習の開始や終了などを各分散処理部30に指示し、機械学習に関する全体的な制御を実行する。
各分散処理部30は、機械学習の分散処理を実行する処理部であり、例えばGPUにより実現される。例えば、各分散処理部30は、統合処理部20からの指示により、訓練データDB13に記憶される各訓練データを用いた機械学習により、機械学習モデル14の生成を実行する。
[分散処理部の詳細]
次に、各分散処理部30の詳細について説明する。なお、各分散処理部30は、同様の構成を有する。図5は、分散処理部30の詳細を説明する図である。図5に示すように、分散処理部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は、各層のうち、イテレーション間の誤差勾配の変位が小さい層を、スキップ候補として抽出する。
図6は、スキップ候補の検出を説明する図である。図6では、ある層について説明するが、図6に示される処理は各層について実行される。図6に示すように、候補抽出部35は、各エポック内のイテレーションが完了するたびに、スキップ候補の抽出を実行する。
例えば、候補抽出部35は、エポック1のイテレーション1が終了したタイミングで誤差勾配#1を算出して保持する。その後、エポック1のイテレーション2が終了すると、候補抽出部35は、誤差勾配#2を算出して保持するとともに、誤差勾配#1と誤差勾配#2の差分である差分#2(例えば絶対値の差)を算出し、この差分#2と閾値とを比較する。
ここで、候補抽出部35は、差分#2が閾値未満である場合、十分に学習が進んだ層と判定し、当該層を特定する情報をスキップ候補として判定部36に通知する。一方、候補抽出部35は、差分#2が閾値以上である場合、学習が不十分と判定し、当該層をスキップ候補とはせずに、通常学習を維持する。なお、候補抽出部35は、各ブロックの最後の層についてのみ、上記スキップ候補の判定を行うこともできる。
判定部36は、候補抽出部35により抽出されたスキップ候補の層について、学習スキップさせるか通常学習させるかの判定を実行する処理部である。具体的には、判定部36は、予め定めた判定条件を満たすか否かを判定し、判定条件を満たすスキップ候補の層をスキップ対象と判定して、通信制御部34に通知する。一方、判定部36は、判定条件を満たさないスキップ候補の層については、通信制御部34への通知を抑制することで、通常学習を維持する。
判定部36が利用する判定条件には、1つまたは複数の判定基準を設定することができる。ここで、各判定基準と各実験データ等を用いた判定基準の信頼性とを説明する。
(判定基準:スキップ頻度)
まず、機械学習をスキップさせる頻度について検討する。図7は、学習スキップの判定基準となるスキップ頻度を説明する図である。図7では、スキップ頻度を変えたときの各実験データを示しており、精度(accuracy)、目標精度達成時のエポック数(@epoch)、スキップ期間(SKIP_TIME)、スキップ処理を実行しない期間(GRACE_TIME)、スキップ開始時期(INIT_GRACE_TIME)、スキップさせた層の番号(SKIP_TARGET_LAYER)を示している。図7に示す各実験では、スキップ頻度「SKIP_TIME/(GRACE_TIME+SKIP_TIME)」は、いずれも25%程度で同じである。
図7に示すように、表の上側ほど、エポック数が少ないので、スキップ処理を実行しない期間(GRACE_TIME)を短くして、こまめにスキップさせる方が、精度を維持しつつ、学習が早く終了することがわかる。つまり、層(レイヤー)に対してスキップの頻度が同じでも、細かくスキップを実行した方が精度への影響が小さいと結論付けることができる。
(判定基準:ウォームアップ)
次に、ウォームアップ処理(以下では、「ウォームアップ」と記載する場合がある)について検討する。一般的に、機械学習では、機械学習が開始されると、機械学習の初期段階でウォームアップが実行される。そこで、ウォームアップ中にスキップを開始した場合と、ウォームアップ終了後にスキップを開始する場合との実験データについて検討する。
図8は、学習スキップの判定基準となるウォームアップの考慮を説明する図である。図8では、学習率(LR:Learning Rate)のウォームアップを5エポックまで実施した場合の実験データを示しており、示している各項目は図7と同様である。図7に示す上2つの実験データは、スキップ処理を実行しない期間(GRACE_TIME)が5以下であることから、ウォームアップ中に学習スキップを開始したときのデータであり、図7の下2つの実験データは、スキップ処理を実行しない期間(GRACE_TIME)が5より大きいことから、ウォームアップ終了後に学習スキップを開始したときのデータである。
図8に示すように、ウォームアップ中に学習スキップを実行すると、精度の収束が遅くなり、ウォームアップ中の学習スキップは、スキップした長さ以上に精度へ悪影響を及ぼすことがわかる。つまり、ウォームアップ終了後から学習スキップを開始する方がよいと結論付けることができる。
(判定基準:スキップ層の選択)
次に、機械学習をスキップさせる層の選択について検討する。図9は、学習スキップの判定基準となるスキップ層の選択を説明する図である。図9では、重みを有する畳み込み層(Convolution層)の全55層を対象にした実験データを示しており、スキップさせた層と最終的な精度との関係を示している。図9に示すように、スキップさせる層の選択数が増えると学習の収束傾向は悪くなり、FC層付近の層をスキップさせると学習精度が低下する。また、スキップさせる層の選択数よりもスキップ頻度の方が学習の収束には影響が強く、バッチノーマライゼーション(BN)層の学習効果が大きい。つまり、多くの層をスキップさせても学習は収束すると結論付けることができる。
(判定基準:非対象層の選択)
次に、機械学習をスキップさせない層について検討する。図10は、学習スキップの非対象層の選択を説明する図である。図10の(a)には、全レイヤー(層)をスキップ対象としたときの実験データと、入力層を含む前2層と全結合層をスキップ対象から排除したときの実験データとを示している。全レイヤーをスキップ対象とする場合に比べて、前2層および全結合層をスキップ対象外とした方が、目標精度到達までのエポック数を削減することができる。つまり、入力付近の層と全結合層(最終層2層)はスキップ対象外にした方が精度への影響がよいと結論付けることができる。なお、入力付近の層は、最終層に比べて、精度への影響は小さいと考えられる。
図10の(b)は、一度にスキップさせる層数と、目標精度に到達する達成エポック数との関係を示している。50前後の層を一度にスキップさせた場合、達成エポック数は68前後となり、30前後の層を一度にスキップさせた場合、達成エポック数は59前後となることがわかる。つまり、スキップする層数は少ない方(ブロック単位は小さいほう)が精度への影響がよく、目標達成への速度が速いと結論付けることができる。
(判定基準:スキップ層の分割)
次に、機械学習モデル14が有する複数層のうち、スキップさせる層をどのように分割するのかについて検討する。図11は、学習スキップのスキップする層の分割を説明する図である。図11では、精度(accuracy)と、達成エポック数と、スキップ開始イテレーションと、スキップする層の指定との関係を示している。図11に示すように、スキップする層が[0-15]の1ブロックの場合は、目標精度に到達した達成エポック数が「60」である。一方、スキップする層が[0-15]、[16-33]、[34-72]、[73-129]、[130-156]の5ブロックの場合は、目標精度に到達した達成エポック数が「56」である。つまり、スキップする層に関し、タイミングをより細かく分割して設定したほうが、より早く目標精度に到達しやすいと結論付けることができる。
(判定基準:スキップする層の順番)
最後に、先頭の入力層から最後の出力層までのうち、効率的なスキップの順番について検討する。図12は、学習スキップのスキップする層の順番を説明する図である。図12は、入力層に近い前の層から順番に学習を停止させた場合と、前の層からの順番ではなく途中で停止させる順番を入れ替えた場合とを示している。
例えば、前の層から順番に停止させた場合の1行目の例は、24層、28層、41層、43層、44層の順番にスキップさせた例である。また、順番を入れ替えて停止させた場合の1行目の例は、24層、32層、37層、35層、41層の順番にスキップさせた例であり、35層よりも先に37層をスキップさせている。
図12に示すように、明らかに、順番を入れ替えた方が、達成エポック数が多く、学習時間が長い。つまり、前の層から順番にスキップさせる方がよいと結論付けることができる。
(スキップ候補の判定)
判定部36は、上述した判定基準を考慮した判定条件にしたがって、スキップ候補をスキップさせるか否かの判定を実行する。図13は、学習スキップの制御を説明する図である。図13に示すように、判定部36は、機械学習モデル14が有する層のうち、出力層と全結合層と全結合層の前2層とを除く複数の層をn個のブロックに分割する。例えば、判定部36は、ブロック1(0層からs_1層)、ブロック2(s_1+1層からs_2層)、ブロック3(s_2+1層からs_3層)・・・ブロックn(s_n-1層からs_n層)を生成する。
この状態で、判定部36は、スキップ候補の層(例えば層番号など)が通知されると、判定手順1から4にしたがって、スキップ対象か否かを判定する。例えば、判定部36は、通知された層番号が各ブロックの最後の層に該当するか(判定手順1)、ウォームアップは完了しているか(判定手順2)、通知された層が属するブロックより前のブロックがスキップ済みか(判定手順3)、前のブロックのスキップ後から所定イテレーションが実行済みか(判定手順4)を判定する。
ここで、ブロックの分割は、図10で説明した非対象層の選択の検討や図11で説明したスキップ層の分割についての検討に基づいて決定される事項である。判定手順1は、図11で説明したスキップ層の分割についての検討に基づいて決定される基準である。判定手順2は、図8で説明したウォームアップについての検討に基づいて決定される基準である。判定手順3は、図12で説明したスキップする層の順番についての検討に基づいて決定される基準である。判定手順4は、図7で説明したスキップ頻度についての検討に基づいて決定される基準である。なお、判定手順は、順不同である。
そして、判定部36は、スキップ候補の層が判定手順1から4を満たす場合には、スキップを実行すると判定し、通信制御部34に通知する。その後、次のイテレーションでは、当該層についての機械学習(誤差勾配の算出やパラメータ更新など)がスキップされる。
このようにして、判定部36は、ブロックの最後の層がスキップ候補として検出された場合に、当該層が属するブロックよりも前のブロックがスキップ済み、かつ、ウォームアップ終了後、かつ、前のブロックがスキップしてから所定イテレーション数が終了済みであることを条件に、スキップの最終判定を実行する。
したがって、判定部36は、前方のブロックから順番に、所定の間隔で学習スキップを実行することができる。次に、判定部36による学習スキップの制御イメージを説明する。図14は、実施例1にかかる学習スキップを説明する図である。
図14に示すように、判定部36は、入力層から全結合層の2層手前までの層を複数のブロックに分割し、ブロック1に含まれる「0層からs_1層」までの層の機械学習を、ウォームアップ終了後でエポック数が「e_1」のタイミングで停止する。次に、判定部36は、ブロック2に含まれる「s_1+1層からs_2層」までの層の機械学習を、エポック数が「e_2」のタイミングで停止し、ブロック3に含まれる「s_2+1層からs_3層」までの層の機械学習を、エポック数が「e_3」のタイミングで停止する。このように、判定部36は、各ブロックを先頭から順に段階的に学習スキップさせることができるので、目標精度までの機械学習時間を短縮することができる。
例えば、判定部36は、「ブロック1の機械学習を停止させるエポック数「e_1」>学習を完全に終了するエポック数「e_END」、かつ、「s_n<全結合層」として、式(1)に示す総スキップ量を削減することができる。つまり、図14に示す各学習停止の枠の面積分の量を削減することができる。
Figure 2022075295000002
[処理の流れ]
図15は、実施例1にかかる機械学習処理の流れを示すフローチャートである。図15に示すように、機械学習が開始されると(S101:Yes)、順伝播処理部31は、訓練データを読み込み(S102)、順伝播処理を実行する(S103)。
続いて、誤差逆伝播処理部32は、スキップ対象を除く各層について誤差勾配を算出する(S104)。そして、候補抽出部35は、各ブロックの最後の層を1つ選択し(S105)、スキップ候補の要件を満たすか否かを判定する(S106)。
ここで、判定部36は、当該層がスキップ候補の要件を満たす場合(S106:Yes)、スキップ候補の層が属するブロックがスキップ条件を満たすか否かを判定し(S107)、スキップ条件を満たす場合(S107:Yes)、当該ブロックをスキップ対象に決定して通信制御部34に通知する(S108)。この結果、通信制御部34により、当該ブロックがスキップ対象と周知されて、次のイテレーションでは当該ブロックに属する各層に対する機械学習がスキップされる。
一方、判定部36は、スキップ候補のブロックがスキップ条件を満たさない場合(S107:No)、当該ブロックをスキップ対象外に決定し、通常通りの機械学習を実行させる(S109)。なお、S106において、当該ブロックがスキップ候補の要件を満たさない場合も(S106:No)、通常通りの機械学習が実行される(S109)。
その後、候補抽出部35は、未処理のブロックがある場合(S110:Yes)、S105以降を繰り返し、未処理の層がない場合(S110:No)、順伝播処理部31は、機械学習を終了するか否かを判定する(S111)。例えば、順伝播処理部31は、精度が目標精度に到達したか否かや指定数のエポックを実行したか否かなど、任意の終了基準に到達したか否かを判定する。
ここで、順伝播処理部31は、機械学習を継続する場合(S111:No)、S102以降を繰り返し、機械学習を終了する場合(S111:Yes)、機械学習を終了し、学習結果などを表示したりする。
[効果]
上述したように、情報処理装置10は、機械学習モデル14内の各ブロックにおいて、機械学習が終了した層の重み更新処理や誤差逆伝搬処理を抑制することができ、無駄な計算および更新処理の大幅削減を実現することができる。この結果、情報処理装置10は、精度劣化を抑えつつ、計算モデル全体の高速化を実現することができる。
また、複数のGPUを搭載した情報処理装置(ノード)を使用する場合や、複数ノードで構成された並列処理を行う場合は、GPU間通信、ノード間通信、集約処理、反映処理に費やす割合が大きくなるが、上述した情報処理装置10により、無駄な計算および更新処理を削減することによる高速化の効果は、より大きくなる。
図16は、効果を説明する図である。図16は、一般的に利用される標準モデル、ハイパーパラメータ(HP)のみ調整を行ったHP調整モデル、実施例1による手法でハイパーパラメータと学習スキップとを実行した機械学習モデル14を比較した結果を示している。図16に示すように、HP調整モデルと実施例1の機械学習モデル14とでは、目標精度に到達する到達エポック「36」は同じであったが、実施例1の機械学習モデル14では、約5エポックを削減することができたので、実質は到達エポック「約30」であった。したがって、実施例1による手法を実行することで、実行時間を61.6minまで短縮することができ、大幅な短縮を実現できた。
ところで、スキップ対象の判定条件は、実施例1で説明したものに限定されない。そこで、高速化の実現手法やスキップ対象の他の判定条件について説明する。
[ブロック化]
例えば、層のエレメントサイズ別にブロック化することで、効率的な学習スキップを実現することができる。図17は、エレメントサイズ別にブロックを生成する手法を説明する図である。図17に示すように、判定部36は、予め、機械学習の対象モデルの層ごとのエレメントサイズを把握し、エレメントサイズ別でスキップ単位のブロックを生成する。例えば、機械学習モデル14にResnet50を採用した場合、畳み込み層(Convolution層)だけで50層あり、バッチ正規化層(BatchNormalization層)、全結合層を含めると161層あり、大きく分けるとエレメントサイズ別に5ブロックに分割できる。なお、全結合層とその前層をスキップすると精度が大きく落ちることから、最終ブロックはスキップ対象外とする。
このようなブロック生成を行うことで、学習の進捗が同じと予測される層を同じブロックとして管理して、学習スキップを制御することができるので、あるブロックをスキップさせるときに、当該ブロック内で学習途中である層が存在する確率を低くすることができる。この結果、効率的な学習スキップを実現し、更なる高速化を実現することができる。
[ブロック構成]
例えば、畳み込み層とバッチ正規化層とは交互に形成されることが多く、これらをペアとして、異なるブロックに跨らないように、同じブロック内に配置した方が効率的な機械学習が実行できる。図18は、ブロックの構成単位を説明する図である。図18に示すように、入力層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層・・・と構成されている場合に、「畳み込み層、バッチ正規化層」をペアとしてブロックを生成する。
つまり、「入力層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層・・・」を、「入力層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層、畳み込み層」でブロック化せずに、「入力層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層、畳み込み層、バッチ正規化層」でブロック化する。
このようなブロック生成を行うことで、機械学習に同じ影響を及ぼす範囲の層をペアとして同じブロック内に配置することができるので、効率的な機械学習を阻害することなく、効率的な学習スキップを実現することができる。
[スキップ制御]
例えば、図7等で説明したように、スキップ頻度が同じである場合でも、細かくスキップさせた方が高精度となることから、ブロック内でも段階的に機械学習をスキップさせることで、精度の向上を図ることができる。
図19は、学習スキップの制御の別例を説明する図である。図19に示すように、判定部36は、例えば[0層からs_1層]までを含むブロック内の各層の誤差勾配の平均値が閾値未満となった場合に、当該ブロックの学習スキップを決定する。このとき、判定部36は、当該ブロック内の先頭層から第1の層までをスキップさせ、その他は通常通りに機械学習を実行させる。
その後、判定部36は、当該ブロックの[第1の層からs_1層]の各層の誤差勾配の平均値が閾値未満となった場合に、当該ブロックの学習スキップを決定する。このとき、判定部36は、当該ブロック内の第1の層から第2の層までをスキップさせ、その他は通常通りに機械学習を実行させる。
このように、判定部36は、ブロック内で段階的に機械学習をスキップさせることで、全体的な学習時間の短縮を実現しつつ、精度を向上させることができる。また、判定部36は、ブロック内を複数の子ブロックに分割し、一度、誤差勾配の平均値が閾値未満となったブロックについては、所定のイテレーション間隔で段階的に、子ブロックずつ、学習スキップさせることもできる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[数値等]
上記実施例で用いたブロック数、層数、各種閾値、数値、GPU数等は、あくまで一例であり、任意に変更することができる。また、図7から図14等で説明した判定基準は、任意の基準を組み合わせて判定条件とすることができる。また、学習スキップの判定は、イテレーションごとに限らず、エポックごとに判定することもできる。
[ブロックの制御等]
例えば、上記例では、ブロックに属する層のうち、最後の層について誤差勾配を算出してスキップ候補に該当するか否かを判定する例を説明したが、これに限定されるものではない。例えば、各ブロックについて、属する層の誤差勾配の平均値が閾値未満か否かにより、スキップ対象と判定することもできる。
また、上記実施例では、ブロック単位でスキップを制御する例を説明したが、これに限定されるものではなく、層単位で制御することもできる。例えば、情報処理装置10は、誤差勾配の差が閾値未満である層を複数検出した場合、入力層から近い順に所定数の層をスキップ対象と判定することもできる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
次に、上記実施例で説明した情報処理装置10のハードウェア構成例を説明する。図20は、ハードウェア構成例を説明する図である。図20に示すように、情報処理装置10、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、CPU10d、複数のGPU10eを有する。また、図20に示した各部は、バス等で相互に接続される。
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、図4や図5等に示した機能を動作させるプログラムやDBを記憶する。
CPU10dは、情報処理装置10全体の制御を実行し、例えば機械学習に関するプログラムをHDD10b等から読み出してメモリ10cに展開することで、機械学習の各プロセスを動作させる各GPU10eは、図5等に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図3等で説明した各機能を実行するプロセスを動作させる。例えば、各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 (10)

  1. コンピュータに、
    機械学習モデルの機械学習時に、前記機械学習モデルの入力層を含む、前記機械学習モデルが有する複数の層について誤差勾配を算出し、
    前記誤差勾配が閾値未満である層のうち、前記入力層から所定位置までの範囲内に位置する層を抑制対象の層と特定し、
    前記抑制対象の層に対する前記機械学習を抑制する
    処理を実行させることを特徴とする機械学習プログラム。
  2. 前記複数の層を前記入力層からの順で複数のブロックに分割する処理を前記コンピュータに実行させ、
    前記算出する処理は、前記複数のブロックそれぞれについて、各ブロックに属する各層の前記誤差勾配の平均値を算出し、
    前記誤差勾配の平均値が閾値未満であるブロックのうち、前記入力層に近いブロックに属する各層に対する前記機械学習を抑制する
    処理を含むことを特徴とする請求項1に記載の機械学習プログラム。
  3. 前記複数の層を前記入力層からの順で複数のブロックに分割する処理を前記コンピュータに実行させ、
    前記算出する処理は、前記複数のブロックそれぞれについて、各ブロックに属する各層のうち前記入力層から最も遠い位置の層について前記誤差勾配を算出し、
    前記誤差勾配が閾値未満であるブロックのうち、前記入力層に近いブロックに属する各層に対する前記機械学習を抑制する
    処理を含むことを特徴とする請求項1に記載の機械学習プログラム。
  4. 前記分割する処理は、
    前記複数の層それぞれのエレメントサイズを特定し、
    前記エレメントサイズが所定の範囲内に収まる各層が1つのブロックになるように、前記複数の層を前記複数のブロックに分割する
    処理を含むことを特徴とする請求項2または3に記載の機械学習プログラム。
  5. 前記分割する処理は、前記複数の層において交互に配置される畳み込み層とバッチ正規化層とを1つのペアとして、前記ペアが異なるブロックに跨らないように、前記複数の層を前記複数のブロックに分割する、処理を含むことを特徴とする請求項2から4のいずれか一つに記載の機械学習プログラム。
  6. 前記分割する処理は、前記機械学習モデルが有する複数の層のうち、出力層と、全結合層と、全結合層の前に位置する2つの層とを除いた各層を、前記複数のブロックに分割することを特徴とする請求項2から5のいずれか一つに記載の機械学習プログラム。
  7. 前記抑制する処理は、
    前記抑制対象であるブロックを複数の子ブロックに分割し、
    所定のイテレーション間隔で段階的に、前記複数の子ブロックの前記機械学習を抑制する
    処理を含むことを特徴とする請求項2から6のいずれか一つに記載の機械学習プログラム。
  8. 前記抑制する処理は、前記機械学習の初期段階で実行されるウォームアップ処理が終了するまでは、前記抑制対象の層に対する前記機械学習を継続し、前記ウォームアップ処理が終了後に、前記抑制対象の層に対する前記機械学習を抑制する、処理を含むことを特徴とする請求項1から7のいずれか一つに記載の機械学習プログラム。
  9. コンピュータが、
    機械学習モデルの機械学習時に、前記機械学習モデルの入力層を含む、前記機械学習モデルが有する複数の層について誤差勾配を算出し、
    前記誤差勾配が閾値未満である層のうち、前記入力層から所定位置までの範囲内に位置する層を抑制対象の層と特定し、
    前記抑制対象の層に対する前記機械学習を抑制する
    処理を実行することを特徴とする機械学習方法。
  10. 機械学習モデルの機械学習時に、前記機械学習モデルの入力層を含む、前記機械学習モデルが有する複数の層について誤差勾配を算出する算出部と、
    前記誤差勾配が閾値未満である層のうち、前記入力層から所定位置までの範囲内に位置する層を抑制対象の層と特定する特定部と、
    前記抑制対象の層に対する前記機械学習を抑制する抑制部と
    を有することを特徴とする情報処理装置。
JP2020185986A 2020-11-06 2020-11-06 機械学習プログラム、機械学習方法および情報処理装置 Withdrawn JP2022075295A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020185986A JP2022075295A (ja) 2020-11-06 2020-11-06 機械学習プログラム、機械学習方法および情報処理装置
US17/376,216 US20220147772A1 (en) 2020-11-06 2021-07-15 Computer-readable recording medium storing machine learning program, machine learning method, and information processing apparatus
EP21185707.3A EP3995999A1 (en) 2020-11-06 2021-07-15 Machine learning program, machine learning method, and information processing apparatus
CN202110901356.2A CN114444651A (zh) 2020-11-06 2021-08-06 计算机可读记录介质、机器学习方法以及信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020185986A JP2022075295A (ja) 2020-11-06 2020-11-06 機械学習プログラム、機械学習方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2022075295A true JP2022075295A (ja) 2022-05-18

Family

ID=76942831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020185986A Withdrawn JP2022075295A (ja) 2020-11-06 2020-11-06 機械学習プログラム、機械学習方法および情報処理装置

Country Status (4)

Country Link
US (1) US20220147772A1 (ja)
EP (1) EP3995999A1 (ja)
JP (1) JP2022075295A (ja)
CN (1) CN114444651A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5065339A (en) 1990-05-22 1991-11-12 International Business Machines Corporation Orthogonal row-column neural processor
US5243688A (en) 1990-05-22 1993-09-07 International Business Machines Corporation Virtual neurocomputer architectures for neural networks
US9047566B2 (en) 2013-03-12 2015-06-02 Oracle International Corporation Quadratic regularization for neural network with skip-layer connections
JP6865889B2 (ja) 2018-02-28 2021-04-28 富士フイルム株式会社 学習装置、方法及びプログラム

Also Published As

Publication number Publication date
CN114444651A (zh) 2022-05-06
US20220147772A1 (en) 2022-05-12
EP3995999A1 (en) 2022-05-11

Similar Documents

Publication Publication Date Title
JP6740597B2 (ja) 学習方法、学習プログラムおよび情報処理装置
US20170372230A1 (en) Machine learning management method and machine learning management apparatus
JP2017201526A (ja) ディープニューラルネットワークに基づく認識装置、トレーニング装置及び方法
US20210406683A1 (en) Learning method and information processing apparatus
US20210397948A1 (en) Learning method and information processing apparatus
JP2023063944A (ja) 機械学習プログラム、機械学習方法、及び、情報処理装置
JP2022075295A (ja) 機械学習プログラム、機械学習方法および情報処理装置
US20230023241A1 (en) Computer-readable recording medium storing machine learning program, information processing device, and machine learning method
JP7501315B2 (ja) 演算処理プログラム、演算処理方法および情報処理装置
KR20220099487A (ko) 멀티에이전트 강화학습에서 호기심 기반 탐색 및 경험 데이터 우선순위 결정 방법
EP4156037A1 (en) Machine learning program, machine learning method, and information processing apparatus
CN113610208A (zh) 一种基于gpu并行计算的灰狼优化算法及电子设备
US20230083790A1 (en) Computer-readable recording medium storing speed-up program, speed-up method, and information processing device
CN111767980B (zh) 模型优化方法、装置及设备
JP2022147502A (ja) 機械学習プログラム、機械学習方法および情報処理装置
Choi et al. A convergence monitoring method for DNN training of on-device task adaptation
EP4089590A1 (en) Machine learning program, machine learning method, and information processing device
JP2020004057A (ja) 選定プログラム、選定方法および選定装置
KR101510990B1 (ko) 노드 오더링 방법 및 그 장치
US20230162027A1 (en) Computer-readable recording medium storing distributed learning program, information processing device, and distributed learning method
WO2023248414A1 (ja) 求解装置、求解方法および求解プログラム
JP7464891B2 (ja) トラフィック変動予測装置、及びトラフィック変動予測方法、並びにトラフィック変動予測プログラム
US20240211762A1 (en) Optimizing low precision and sparsity inference without retraining
KR102687374B1 (ko) 인공신경망 연산 방법 및 이를 이용한 인공신경망 연산 장치
US20230237036A1 (en) Data modification method and information processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230707

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20231002