JP6635265B2 - 予測装置、予測方法および予測プログラム - Google Patents

予測装置、予測方法および予測プログラム Download PDF

Info

Publication number
JP6635265B2
JP6635265B2 JP2016150221A JP2016150221A JP6635265B2 JP 6635265 B2 JP6635265 B2 JP 6635265B2 JP 2016150221 A JP2016150221 A JP 2016150221A JP 2016150221 A JP2016150221 A JP 2016150221A JP 6635265 B2 JP6635265 B2 JP 6635265B2
Authority
JP
Japan
Prior art keywords
gpu
learning
nodes
prediction
batch size
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.)
Active
Application number
JP2016150221A
Other languages
English (en)
Other versions
JP2018018422A (ja
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.)
Denso Corp
Tokyo Institute of Technology NUC
Denso IT Laboratory Inc
Original Assignee
Denso Corp
Tokyo Institute of Technology NUC
Denso IT Laboratory Inc
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 Denso Corp, Tokyo Institute of Technology NUC, Denso IT Laboratory Inc filed Critical Denso Corp
Priority to JP2016150221A priority Critical patent/JP6635265B2/ja
Priority to US15/439,304 priority patent/US20180032865A1/en
Publication of JP2018018422A publication Critical patent/JP2018018422A/ja
Application granted granted Critical
Publication of JP6635265B2 publication Critical patent/JP6635265B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Description

本発明は、畳み込みニューラルネットワークシステムの重みを更新する学習システムにおける学習時間および/または平均ミニバッチサイズを予測する予測装置、予測方法および予測プログラムに関する。
画像認識の分野において、一般物体認識と呼ばれる問題がある。これは、画像の中に存在する鳥や車といった物体の種別(クラス)を推定する問題である。近年、一般物体認識問題の認識性能の改善が目覚ましい。これは、とりわけ層数の多い、畳み込みニューラルネットワーク(例えば、非特許文献1)によるところが大きい。
画像認識の分野では、過去様々な認識アルゴリズムが提案されてきたが、学習データが膨大になるにつれ、畳み込みニューラルネットワークが他のアルゴリズムの認識性能を上回る傾向となっている。畳み込みニューラルネットワークは、モデルの表現能力が高い反面、学習データの特徴に過度に特化してしまう「過学習」と呼ばれる問題があることが従来指摘されてきた。しかしながら、近年の学習データ量が、過学習の問題の回避を可能にするレベルにまで増大しつつあることが背景にある。
畳み込みニューラルネットワークは認識性能において大きな利点があるが、学習時間が長大であるという弱点を併せ持っている。学習とは、ニューラルネットワークにおける重みやバイアスといったパラメータを最適化する処理である。ソーシャルネットワークに関するデータや、自動運転に関係するデータなどは、今後とも増加の一途をたどるものの一例であるが、いつか学習時間が膨大になりすぎて、実質的な時間内に学習が終了しない可能性も充分に考えられる。場合によっては、学習に年単位の時間を要することも考えられる。こうなった場合、製品化は現実的ではなく、認識性能で劣る畳み込みニューラルネットワーク以外のアルゴリズムの使用を余儀なくされることにもなり兼ねない。すなわち、ニューラルネットワーク学習の抜本的高速化は、産業応用にとって極めて重要な課題である。
上記の課題に対応すべく、CPUやGPUを備えた複数の計算機(ノードとも呼ばれる)を通信路で接続した計算機クラスタを利用して学習システムを構築し、学習を分散処理させることで、学習時間を大幅に短縮する検討が試みられている(例えば、非特許文献1〜5)。適切な学習システムを構築するためには、学習システムの構成と学習時間との関係を予測できるのが望ましい。
また、学習手法の1つとして勾配法が知られているが、その際に全学習データを用いるのではなく、一部の学習データのみを用いるミニバッチ確率的勾配法(以下、単にミニバッチ学習という)が近年では広く使われている。ミニバッチとは、1回の重み更新に使用される学習データの集合を指し、ミニバッチサイズとはミニバッチを構成するデータの個数を指す。
ミニバッチサイズには適正な範囲があり、これを逸脱すると、学習の収束が遅くなることや、認識精度が悪くなることなどの問題が生じる可能性が高まることが知られている(例えば、非特許文献2、3、5)。そのため、計算機クラスタを用いてミニバッチ学習を行う際には、学習システムの構成と、ミニバッチサイズとの関係を予測できるのが望ましい。
Ren Wu, Shengen Yan, Yi Shan, Qingqing Dang, and Gang Sun, "Deep Image: Scaling up Image Recognition", arXiv:1501.02876, 2015. D. Amodei, et. al, "Deep Speech 2: End-to-End Speech Recognition in English and Mandarin", arXiv:1512.02595, 2015. S. Zhang, C. Zhang, Z. You, R. Zheng, and B. Xu, "Asynchronous stochastic gradient descent for dnn training", Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on, pages 6660.6663, May 2013. Forrest N. Iandola, Khalid Ashraf, Mattthew W. Moskewicz, Kurt Keutzer, "FireCaffe: near-linear acceleration of deep neural network training on compute clusters", arXiv:1511.00175, 2015. S. Gupta, W. Zhang, and J. Milthorpe, "Model Accuracy and Runtime Tradeo in Distributed Deep Learning", arXiv:1509.04210, 2015.
本発明はこのような問題点に鑑みてなされたものであり、本発明の課題は、複数のノードを用いて畳み込みニューラルネットワークシステム用の重みを学習する学習システムの学習時間および/またはミニバッチサイズを予測する予測装置、予測方法および予測プログラムを提供することである。
本発明の一態様によれば、それぞれがCPUおよびGPUを有する複数のノードから構成され、前記CPUが前記GPUを用いて複数の学習データに基づく畳み込みニューラルネットワーク用の重み更新量を算出するとともに、ノード間で前記重み更新量を通信して重みを更新する学習システムにおける学習時間および/または1回の重み更新に用いられる平均学習データ数である平均ミニバッチサイズを予測する予測装置であって、畳み込みニューラルネットワーク構造を示すパラメータと、ノード台数と、各GPUに一括処理させる学習データ数であるサブバッチ数と、に基づいて、前記学習時間および/または前記平均ミニバッチサイズを予測する予測部を備える予測装置が提供される。
前記予測部は、下記(1)式に基づいて前記学習時間を予測してもよい。
Epoch=(NFile×TGPU)/(NNode×NGPU×NSubbatch) ・・・(1)
ここで、TEpochは前記学習時間、NNodeは前記ノード台数、NSubbatchは前記サブバッチ数、NFileは総学習データ数、NGPUは各ノードが有するGPU数、TGPUは各GPUが1回の重み更新量を算出するのに要する時間である。
前記予測部は、下記(2)式に基づいて平均ミニバッチサイズを予測してもよい。
Batch=(NNode×NGPU×NSubbatch×TAllreduce)/TGPU ・・・(2)
ここで、NBatchは前記平均ミニバッチサイズ、NNodeは前記ノード台数、NSubbatchは前記サブバッチ数、NGPUは各ノードが有するGPU数、TGPUは各GPUが1回の重み更新量を算出するのに要する時間、TAllreduceは前記CPUが通信を行って重みを更新するのに要する時間である。
前記TAllreduceは、前記CPUが通信を行って重みを更新するのに必要な各処理に要する時間の総和であってもよい。
前記TGPUは、前記CPUが重み更新量を算出するのに必要な各処理に要する時間の総和であってもよい。
前記各処理に要する時間は、前記サブバッチ数についての一次関数で与えられてもよい。
この場合、複数の前記サブバッチ数について、前記各処理に要する時間を計測してフィッティングを行うことにより、前記一次関数を定める定数を算出するパラメータ算出部を備えるのが望ましい。
前記予測部によって予測された前記平均ミニバッチサイズが予め定めた範囲に収まるか否かを判定する判定部を備えてもよい。
この場合、前記判定部は、前記平均ミニバッチサイズが予め定めた範囲に収まる前記ノード台数および前記サブバッチ数の組のうち、前記学習時間が最小となる組を特定してもよい。
あるいは、前記判定部は、前記平均ミニバッチサイズが予め定めた範囲に収まる前記ノード台数および前記サブバッチ数の組のうち、前記ノード台数が最小となる組を特定してもよい。
また、前記判定部は、前記平均ミニバッチサイズが予め定めた範囲に収まる前記ノード台数および前記サブバッチ数の組のうち、前記ノード台数と前記学習時間との積が最小となる組を特定してもよい。
本発明の別の態様によれば、それぞれがCPUおよびGPUを有する複数のノードから構成され、前記CPUが前記GPUを用いて複数の学習データに基づく畳み込みニューラルネットワーク用の重み更新量を算出するとともに、ノード間で前記重み更新量を通信して重みを更新する学習システムにおける学習時間および/または1回の重み更新に用いられる平均学習データ数である平均ミニバッチサイズを予測する予測方法であって、畳み込みニューラルネットワーク構造を示すパラメータと、ノード台数と、各GPUに一括処理させる学習データ数であるサブバッチ数と、に基づいて、前記学習時間および/または前記平均ミニバッチサイズを予測する予測方法が提供される。
本発明の別の態様によれば、それぞれがCPUおよびGPUを有する複数のノードから構成され、前記CPUが前記GPUを用いて複数の学習データに基づく畳み込みニューラルネットワーク用の重み更新量を算出するとともに、ノード間で前記重み更新量を通信して重みを更新する学習システムにおける学習時間および/または1回の重み更新に用いられる平均学習データ数である平均ミニバッチサイズを予測する予測プログラムであって、コンピュータを、畳み込みニューラルネットワーク構造を示すパラメータと、ノード台数と、各GPUに一括処理させる学習データ数であるサブバッチ数と、に基づいて、前記学習時間および/または前記平均ミニバッチサイズを予測する予測手段として機能させる予測プログラムが提供される。
学習システムの学習時間および/またはミニバッチサイズを予測できる。
畳み込みニューラルネットワークの構造の一例を模式的に示す図。 ミニバッチ学習を行う学習システムのハードウェア構成の一例を示すブロック図。 図2の学習システムにおける学習スレッドおよびARスレッドの処理動作の詳細を例示するフロー図。 学習スレッドの詳細アルゴリズムを示す擬似プログラム。 ARスレッドの詳細アルゴリズムを示す擬似プログラム。 学習スレッドおよびARスレッドの処理タイミングを模式的に説明する図。 予測装置の概略構成を示すブロック図。 予測部31の構成例を示すブロック図。 CNNの詳細アルゴリズムを示す擬似プログラム。
以下、本発明に係る実施形態について、図面を参照しながら具体的に説明する。
まずは、畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)および重みの学習について説明する。次いで、複数のノード(計算機クラスタ)を用いてミニバッチ学習を行う学習システムを説明する。その上で、学習時間やミニバッチサイズを予測する手法を詳しく説明する。
図1は、畳み込みニューラルネットワークの構造の一例を模式的に示す図である。CNNは、1または複数の畳み込み部21およびプーリング部22の組と、多層ニューラルネットワーク構造23とを備えている。初段の畳み込み部21に認識対象の画像が入力される。そして、多層ニューラルネットワーク構造23から認識結果が出力される。
畳み込み部21は、入力される画像信号(初段の畳み込み部21にあっては認識(あるいは学習)対象の画像、2段目以降の畳み込み部21にあっては後述する特徴マップ)に対してフィルタ21aを適用して畳み込みを行い、次いで非線形写像を行う。フィルタ21aは複数ピクセルの要素を持つ重みであり、各重みはバイアスを含んでいてもよい。
プーリング部22は、畳み込み部21からの画像信号の解像度を下げるプーリング操作を行い、特徴マップを生成する。
多層ニューラルネットワーク構造23は、入力層231と、1または複数の隠れ層232と、出力層233とを有する。入力層231には最終段のプーリング部22からの特徴マップが入力される。隠れ層232は重みを用いて積和演算を行う。出力層233はCNN処理の最終結果を出力する。
畳み込み部21におけるフィルタ21aの重みや、隠れ層232における重みがニューラルネットワーク用のパラメータである。本実施形態では、これらの重みWを短時間で学習することを目的としている。学習とは、認識対象の画像が入力されたときにCNNが理想の出力を返すよう、重みを更新することをいう。
学習には、認識の対象となる画像と、それに対する理想的な出力値の組である学習データが用いられる。学習に先立ち、CNNの出力がどの程度理想的な出力値から離れているかを定量化した関数(例えば二乗誤差やクロスエントロピー)を定義し、全学習データ分だけ足し合わせたコスト関数E(W)を用意する。コスト関数E(W)は重みWの関数であり、コスト関数E(W)が小さいほどよいCNNであるといえる。学習とは、重みWを更新することで、コスト関数E(W)を小さくする処理とも言える。
本実施形態では、コスト関数E(W)を最小化する手法として、誤差逆伝搬法と呼ばれる勾配法の一種を使用する。誤差逆伝搬法は重みの更新を多数回繰り返すものであり、一回の更新は下記(1)式で表される。
W←W−r*dW ・・・(1)
rは学習係数と呼ばれるスカラ量であり、更新の度に小さな値にしてもよいし、常に一定の値であってもよい。dWはコスト関数の重みに対する微分を表したものである。すなわち、重みの更新には、現時点での重みWと、微分値dWとが用いられる。
ここで、一回の重み更新において、全学習データを用いて算出された微分値dWを用いる方法を「バッチ学習」といい、一部の学習データを用いて算出された微分値dWの近似値を用いる方法を「ミニバッチ学習」という。近年では、ミニバッチ学習を採用することが一般的である。その理由は、ミニバッチ学習は、バッチ学習と比較して、多くの場合収束速度が速く、さらには汎化性能(学習データに含まれない画像に対する識別性能)が高いためである。
通常、ミニバッチ学習を採用する場合、ミニバッチサイズをあらかじめ決定しておく必要がある。ミニバッチサイズとは、1回の重み更新(微分値dWの算出)に使用する学習データの個数を指す。適切なミニバッチサイズは、問題依存ではあるが、少ない時で1、多い時でおよそ1000、といった事例がある。経験的に、ミニバッチサイズには適切な値があり、このサイズを大きく超えると、収束が遅くなったり、汎化性能が劣化したりするデメリットがあることが知られている。すなわち、必ずしもミニバッチサイズを大きくすればよい、というわけではない。また、適切なミニバッチサイズは、全学習データの数を遥かに下回ることもまたよく知られている。
図2は、ミニバッチ学習を行う学習システムのハードウェア構成の一例を示すブロック図である。学習システムはインターコネクトによって接続されたNNode個のノード1から構成される。そして、任意のノード1間でデータ通信が可能である。
ノード1はハードウェアとしての単位であり、例えば1台の計算機である。また、ノード1は複数のプロセス(プログラム)を並列に処理できる。具体的には、ノード1は、1つのCPU(Central Processing Unit)11と、NGPU個(同図では2つ)のGPU(Graphics Processing Unit)12と、SSD(Solid State Drive)などのストレージ13とを有する。なお、1つのノード1が有するGPU12の個数NGPUは全ノード1で共通とする。
CPU11は、ARスレッドと、NGPU個の学習スレッドを実行する。学習スレッドは、GPU12を用い、他のGPU12とは非同期で、重み更新量(上記(1)式の微分値dWに対応)を算出する処理である。重み更新量の算出には、自学習スレッドのみが使用する学習データ(ストレージ13に格納されている)を用いてGPU12での学習を繰り返し、学習結果である重み更新量をホストメモリ上のバッファGradBufに積算する。なお、バッファGradBufは学習スレッドごと(言い換えるとGPU12ごと)に設けられる。
また、ARスレッドは、各GPU12によって算出された重み更新量を他のノード1と通信することにより、重みを更新するとともに他のノード1と重みを同期させる処理である。より具体的には、ARスレッドは、学習スレッドとは非同期に、各バッファGradBufの値を用いて加算Allreduce通信を行い、重みを更新してホストメモリ上のバッファARResultBufに格納する。なお、バッファARResultBufはARスレッドごと(言い換えるとノード1ごと)に設けられる。
学習スレッドは学習の度にバッファARResultBufが更新されているか確認し、更新されている場合はその値を最新の重みとして使用する。
ここで、各GPU12(言い換えると、各学習スレッド)に一括処理させる学習データの数をサブバッチ数NSubbatchとする。全学習データは学習開始前に各ノード1のストレージ13に分割して格納しておくこととする。具体的には、ストレージ13には、アクセスされるGPU12によって学習処理に用いられる学習データが格納されている。
なお、図2はあくまで一例にすぎず、例えばノード1内のCPU11やGPU12の数は任意である。また、ストレージ13は各ノード1に対して外付けであってもよいし、全ノード1からアクセス可能な1つのストレージ13に全学習データが格納されていてもよく、いずれにしても、各ノード1は学習データを高速に扱うことができる。
図3は、図2の学習システムにおける学習スレッドおよびARスレッドの処理動作の詳細を例示するフロー図である。同図では、1つのノード1が3つのGPU12を有する例を示している。また、図4Aおよび図4Bは、それぞれ学習スレッドおよびARスレッドの詳細アルゴリズムを示す擬似プログラムである。
学習スレッドは次の各処理を他の学習スレッドとは非同期で繰り返し行う(図3および図4A参照)。
[S1:LockARResult_GPU]
バッファARResultBufの排他制御を獲得するまで待機する。なお、本処理に要する時間をTLockARResult_GPUと表記し、他の処理も同様とする。
[S2:FetchARResult]
前回のFetchARResultの後に、バッファARResultBufが更新されている場合、パラメータWeightsにバッファARResultBufの値をコピーする。
[S3:LoadImage]
ストレージ13からサブバッチ数NSubbatch個の学習データを読み込む。
[S4:DeformImage]
読み込んだ学習データの画像に対して、透視投影変換、射影変換、弾性ひずみ(Elastic distortion)、レンズ効果、クロッピング、左右反転、RGB値に対する乱数乗算などの変形を加える。
[S5:CNN]
変形後の学習データに対して、畳み込み演算および逆拡散計算を行う。本処理の詳細は後述する。
[S6:ComputeUpdateVal]
上記のパラメータWeightsおよび逆拡散計算による勾配に基づいて、微分値すなわち重み更新量Gradを計算する。
[S7:LockGradient_GPU]
バッファGradBufの排他制御を獲得するまで待機する。
[S8:UpdateGradient]
前回のUpdateGradientの後に、バッファGradBufが更新されている場合、ComputeUpdateValで得られた重み更新量GradをバッファGradBufにコピーし、更新されていない場合、バッファGradBufに加算する。
以上説明した学習スレッドが1回の学習処理(つまり重み更新量Gradの算出)を行うのに要する時間TGPUは上記S1〜S8に示す各処理に要する時間の総和であり、下記(2)式で表される。
GPU
LockARResult_GPU
+TFetchARResult
LoadImage
DeformImage
CNN
ComputeUpdateVal
LockGradient_GPU
UpdateGradient ・・・(2)
一方、ARスレッドは次の各処理を学習スレッドとは非同期で繰り返し行う(図3および図4B参照)。
[S11:LockGradient_AR]
バッファGradBufの排他制御を獲得するまで待機する。
[S12:SumGradient]
学習スレッドによって格納されたバッファGradBufが更新されている場合、その総和をパラメータSendBufに代入する。
[S13:UpdateOldWeights]
MPIランクをn(n=0〜NNode−1)としたとき、バッファARResultBufに格納された最新の値の{NParam×n/NNode}〜{NParam×(n+1)/NNode}番目の要素をバッファOldWeightsにコピーする。ここで、NParamは学習すべき全重み数である。
[S14:AddMomentum]
バッファSendBufに、パラメータOldWeightsと、前回の重み更新量との差分に関するパラメータDeltaWeightsを加算する。
[S15:MPI_Allreduce]
Allreduce命令を発行してバッファSendBufを全ノードで加算し、その結果をバッファRecvBufに代入する。この時点で、バッファRecvBufには更新された重みが格納される。
[S16:UpdateMomentum]
バッファRecvBufおよびパラメータOldWeightsを用いて、重み更新前後の差分をパラメータDeltaWeightsに代入する。
[S17:LockARResult_AR]
バッファARResultBufの排他制御を獲得するまで待機する。
[S18:UpdateARResult]
バッファRecvBufをバッファARResultBufにコピーする。
以上説明したARスレッドがAllreduce命令を発行して重み更新を1回行うのに要する時間TAllreduceは上記S11〜S18の各時間の総和であり、下記(3)式で表される。
Allreduce
LockGradient_AR
SumGradient
UpdateOldWeights
AddMomentum
MPI_Allreduce
UpdateMomentum
LockARResult_AR
UpdateARResult ・・・(3)
図5は、学習スレッドおよびARスレッドの処理タイミングを模式的に説明する図である。説明を簡略化するために、ノードが2つ(NNode=2)あり、そのそれぞれが3つのGPUを有する(NGPU=3)こととしている。
各四角が各学習スレッドにおいて行われる1回の学習処理を示しており、図3および図4AのステップS1〜S8の処理に対応している。各学習処理に要する時間は上記(2)式に示すTGPUである。一方、一点鎖線の枠がARスレッドにおいて行われる1回の通信処理を示しており、図3および図4BのステップS11〜S18の処理に対応している。各通信処理に要する時間は上記(3)式に示すTAllreduceである。
図5では、TAllreduce:TGPU=3:1としている。そのため、例えば、符号51で示す通信処理では、符号52,53で示す2つの学習処理によって得られた学習結果を用いて重みが更新される。他の通信処理でも、いずれか2つの学習スレッドによって得られた学習結果が用いられる。
より一般的には、GPU12の総数がNNode×NGPU個であることを考慮し、1回の通信処理では下記(4)式に示す数の学習スレッドによって得られた学習結果が用いられる。
Node×NGPU×TAllreduce/TGPU ・・・(4)
したがって、各学習スレッドに一括処理させる学習データ数すなわちサブバッチ数をNSubbatchとすると、1回の重み更新に用いられる学習データ数すなわち平均ミニバッチサイズNBatchは下記(5)式で表される。
Batch=(NNode×NGPU×NSubbatch×TAllreduce)/TGPU ・・・(5)
また、総数NFileの全学習データを処理するのに要する学習時間TEpochは、ミニバッチサイズNBatchの学習データを処理するのに要する時間がTAllreduceであることから、下記(6)式で表される。
Epoch=NFile×TAllreduce/NBatch
=(NFile×TGPU)/(NNode×NGPU×NSubbatch) ・・・(6)
なお、学習時間TEpochは「エポック時間」で表される。エポックとは、学習に使用したデータ量に関する単位である。1エポックとは総数NFileの全学習データ1回分の学習処理を行うことを意味し、nエポックとは全学習データn回分の学習処理を行うことを意味する。そして、「1エポック時間」を1エポックの学習処理に必要な時間と定義する。なお、通常は、目的関数の収束までに、多数のエポック、例えば100エポック程度を要する。
以上を踏まえ、本実施形態では、上記(5),(6)式に基づき、ノード台数NNode、サブバッチ数NSubbatchから学習時間TEpochおよび/または平均ミニバッチサイズNBatchを予測するものとする。
図6は、予測装置の概略構成を示すブロック図である。この予測装置は、ハードウェアで構成されてもよいし、コンピュータが所定のプログラムを実行することによって実現されてもよい。
予測装置は予測部31を備えている。予測部31には、NN構造を示すパラメータ、ノード台数NNode、および、各GPUに一括処理させる学習データ数すなわちサブバッチ数NSubbatchが入力変数として入力される。
そして、予測部31は、予測モデル式を用い、入力変数に基づいて学習時間TEpochおよび平均ミニバッチサイズNBatchを予測し、出力変数として出力する。なお、予測部31は学習時間TEpochおよび平均ミニバッチサイズNBatchの一方を予測してもよいが、以下では両方を予測するものとする。
予測装置はパラメータ算出部32を備えていてもよい。パラメータ算出部32は、学習システムの構成から、上記のTGPUおよびTAllreduceを算出に必要なパラメータα,βを算出する。その詳細はTGPUおよびTAllreduceの算出と合わせて後述する。
さらに、予測装置は判定部33を備えていてもよい。判定部33は、算出された平均ミニバッチサイズNBatchが適切か否か、より具体的には、平均ミニバッチサイズNBatchが予め定められた適切な範囲に収まっているか否かを判定する。
また、判定部33は、与えられたNN構造に対して、平均ミニバッチサイズNBatchが適切となるノード台数NNodeおよびサブバッチ数NSubbatchの適切な組(望ましくはすべての組)を特定してもよい。
そのような適切な組の中で、判定部33は学習時間TEpochが最適(最小)となる組を特定してもよい。これにより、最速で適切な重みを学習できる。
また、そのような適切な組の中で、判定部33はノード台数NNodeが最小となる組を特定してもよい。これにより、最小のノード台数で適切な重みを学習できる。
あるいは、そのような適切な組の中で、判定部33はノード時間(ノード台数NNodeと学習時間TEpochとの積)が最小となる組を特定してもよい。これにより、ノード時間すなわちリソース占有時間を抑えて、適切な重みを学習できる。
図7は、予測部31の構成例を示すブロック図である。予測部31は、NParam算出部41と、TGPU・TAllreduce算出部42と、TEpoch算出部43と、NBatch算出部44とを有する。TEpoch算出部43は上記(6)式に基づいて学習時間TEpochを算出する。NBatch算出部44は上記(5)式に基づいて平均ミニバッチサイズNBatchを算出する。以下、NParam算出部41およびTGPU・TAllreduce算出部42について主に説明する。
Allreduce,TGPUは学習すべき総重み数NParamに依存する。そこで、NParam算出部41は総重み数NParamを算出する。総重み数NParamはNN構造によって定まり、例えば以下の(7)式に基づいて算出できる。
ここで、Lcは畳み込みレイヤ数、mlはl層目のマップ数(但しm0は入力層のマップ数)、cは畳み込みフィルタサイズ、Lは総レイヤ数、xlはl層目のマップサイズであり(図1参照)、これらが予測部31にNN構造を示すパラメータとして入力される。言い換えると、NN構造を示すパラメータとは、総重み数NParamを定めるためのパラメータである。
GPU・TAllreduce算出部42は、総重み数NParamおよび上記(2),(3)式に基づいてTGPUおよびTAllreduceを算出する。
まずは、上記(2)式に基づくTGPUの算出について説明する。
[TLockARResult_GPU
LockARResult_GPUは各学習スレッドのロック時間の総和であり、下記(2A)式で表される。
なお、TFetchARResultは次の(2B)式で表され、TUpdateARResultは後述する(3E)式で表される。
[TFetchARResult
FetchARResultは前回のFetchARResultの後に、バッファARResultBufが更新されているか否かに依存する。更新されている確率は、TAllreduce>TGPUであればTGPU/TAllreduceであり、TAllreduce<TGPUであれば1と仮定できる。よって、TFetchARResultは下記(2B)式で表される。
FetchARResult = α1×NParam×min(TGPU/TAllreduce,1)
・・・(2B)
ここで、α1は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TLoadImage
LoadImageはストレージ13からサブバッチ数NSubbatch個の学習データを読み込むのに要する時間であり、下記(2C)式で表される。
LoadImage = α2×NSubbatch+β2 ・・・(2C)
ここで、α2,β2は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TDeformImage
DeformImageはサブバッチ数NSubbatch個の学習データに変形を加えるのに要する時間であり、下記(2D)式で表される。
DeformImage = α3×NSubbatch+β3 ・・・(2D)
ここで、α3,β3は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TCNN
CNNは畳み込み演算および逆拡散計算、具体的には図8に示すアルゴリズムを実行するのに要する時間である。
[S21:im2col]
画像を列ベクトルに変換する。l層目におけるこの処理に要する時間は、上記l層目のマップサイズxlおよびマップ数mlならびに畳み込みフィルタサイズcを用いて下記(2E1’)式で表される。
im2col_l=α11l×xl×c2×ml-1×NSubbatch+β11l
・・・(2E1’)
ここで、α11l,β11lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E1)式で表される。
[S22:convolution]
列ベクトルに対して畳み込みを行う。l層目におけるこの処理に要する時間は下記(2E2’)式で表される。
convolution_l=α12l×xl 2×NSubbatch×ml×c2×ml-1+β12l
・・・(2E2’)
ここで、α12l,β12lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E2)式で表される。
[S23:fc]
全結合処理を行う。より詳しくは、特徴マップの全要素を使った線形結合と活性化処理であり、全結合層が複数層連続する場合には、線形結合と活性化処理とが繰り返される。l層目におけるこの処理に要する時間は下記(2E3’)式で表される。
fc_l=α13l×NSubbatch×ml×xl-1 2×ml-1+β13l ・・・(2E3’)
ここで、α13l,β13lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E3)式で表される。
[S24:activation]
バイアスの加算および活性化処理であり、l層目におけるこの処理に要する時間は下記(2E4’)式で表される。
activation_l=α14l×xl 2×ml×NSubbatch+β14l ・・・(2E4’)
ここで、α14l,β14lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E4)式で表される。
[S25:pooling]
プーリング処理であり、l層目におけるこの処理に要する時間は、l層目のプーリンググリッドサイズplを用いて下記(2E5’)式で表される。
pooling_l=α15l×pl 2×xl 2×ml×NSubbatch+β15l
・・・(2E5’)
ここで、α15l,β15lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E5)式で表される。
[S26:c2f]
列ベクトル画像に再変換する。この処理に要する時間は下記(2E6)式で表される。
c2f=α16×xl 2×ml×NSubbatch+β16 ・・・(2E6)
ここで、α16,β16は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[S27:bias]
バイアスの加算であり、この処理に要する時間は下記(2E7)式で表される。
bias=α17×mL×NSubbatch+β17 ・・・(2E7)
ここで、α17,β17は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[S28:softmax]
ソフトマックス処理であり、この処理に要する時間は下記(2E8)式で表される。
softmax=α18×mL×NSubbatch ・・・(2E8)
ここで、α18は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[S29:softmax_B]
コスト関数の、ソフトマックス関数の入力に対する微分計算であり、この処理に要する時間は下記(2E9)式で表される。
softmax_B=α19×mL×NSubbatch ・・・(2E9)
ここで、α19は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[S30:dedx_fc]
将来のベクトルに対する逆拡散処理であり、l層目におけるこの処理に要する時間は下記(2E10’)式で表される。
dedx_fc_l=α20l×NSubbatch×xl 2×ml×ml+1+β20l
・・・(2E10’)
ここで、α20l,β20lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E10)式で表される。
[S31:dedx_conv]
将来のベクトルに対する逆拡散処理であり、l層目におけるこの処理に要する時間は下記(2E11’)式で表される。
dedx_conv=α21l×xl+1 2×NSubbatch×c2×ml×ml+1+β21l
・・・(2E11’)
ここで、α21l,β21lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E11)式で表される。
[S32:c2f_B]
c2fの逆演算であり、この処理に要する時間は下記(2E12)式で表される。
c2f_B=α22×xl 2×ml×NSubbatch+β22 ・・・(2E12)
ここで、α22,β22は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[S33:im2col_B]
im2colの逆演算であり、l層目におけるこの処理に要する時間は下記(2E13’)式で表される。
im2col_B_l=α23l×xl 2×c2×ml×NSubbtach+β23l
・・・(2E13’)
ここで、α23l,β23lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E13)式で表される。
[S34:pooling_B]
プーリングの逆演算であり、l層目におけるこの処理に要する時間は下記(2E14’)式で表される。
pooling_B=α24l×xl 2×ml×NSubbatch+β24l ・・・(2E14’)
ここで、α24l,β24lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E14)式で表される。
[S35:activation_B]
コスト関数の、活性化関数の入力に対する微分計算であり、l層目におけるこの処理に要する時間は下記(2E15’)式で表される。
activation_B=α25l×xl 2×ml×NSubbatch+β25l
・・・(2E15’)
ここで、α25l,β25lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E15)式で表される。
[S36:dedw]
コスト関数の、重みに対する微分計算であり、l層目におけるこの処理に要する時間は下記(2E16’)式で表される。
dedw_l=α26l×cl-1 2×ml-1×ml×xl 2×NSubbatch
+β26l ・・・(2E16’)
ここで、α26l,β26lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E16)式で表される。
[S37:dedb]
コスト関数の、バイアスに対する微分計算であり、l層目におけるこの処理に要する時間は下記(2E17’)式で表される。
dedb_l=α27l×ml×xl 2×NSubbatch+β27l ・・・(2E17’)
ここで、α27l,β27lは学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
そして、本処理に要する合計時間は下記(2E17)式で表される。
以上から、TNNは上記(2E1)〜(2E17)式の総和であり、下記(2E)式で表される。
CNN
im2col
convolution
fc
activation
pooling
c2f
bias
softmax
softmax_B
dedx_fc
dedx_conv
c2f_B
im2col_B
pooling_B
activation_B
dedw
dedb ・・・(2E)
上記(2)式に戻って説明を続ける。
[TComputeUpdateVal
ComputeUpdateValは長さNParamのベクトル同士の演算に要する時間であり、下記(2F)式で表される。
ComputeUpdateVal=α4×NParam ・・・(2F)
ここで、α4は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TLockGradient_GPU
LockGradient_GPUは下記(2G)式で表される。
LockGradient_GPU=(TSumGradient/NGPU2/(2×TAllreduce
・・・(2G)
なお、TSumGradientは後述する(3B)式で表される。
[TUpdateGradient
UpdateGradientは主にホストメモリへの転送時間であり、下記(2H)式で表される。
UpdateGradient=α5×NParam ・・・(2H)
ここで、α5は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
続いて、上記(3)式に基づくTAllreduceの算出について説明する。
[TLockGradient_AR
LockGradient_ARはTLockARResult_GPUと同様に下記(3A)式で表される。
LockTrResutl_A=NGPU×TUpdateGradient 2/(2×TGPU
・・・(3A)
[TSumGradient
SumGradientはTFetchARResultと同様に考えることができ、下記(3B)式で表される。
SumGradient=α31×NGPU×NParam×min(TAllreduce/GPU,1)
・・・(3B)
ここで、α31は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TUpdateOldWeights
UpdateOldWeightsはNNodeに反比例した長さのベクトル計算を行うため、下記(3C)式で表される。
SumGradient=α32×NParam/NNode ・・・(3C)
ここで、α32は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TAddMomentum
AddMomentumはNNodeに反比例した長さのベクトル計算を行うため、下記(3D)式で表される。
AddMomentum=α33×NParam/NNode ・・・(3D)
ここで、α33は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TMPI_Allreduce
MPI_AllreduceはAllreduceによる足し合わせを2ノードずつ行うとして、下記(3E)式で表される。
MPI_Allreduce=(α34×log2Node+β34)×NParam
・・・(3E)
ここで、α34,β34は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TUpdateMomentum
UpdateMomentumはNNodeに反比例した長さのベクトル計算を行うため、下記(3F)式で表される。
UpdateMomentum=α35×NParam/NNode ・・・(3F)
ここで、α35は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
[TLockARResult_AR
LockARResult_ARはTLockGradient_ARと同様に下記(3G)式で表される。
LockARResult_AR=NGPU×TFetchARResult 2/(2×TGPU
・・・(3G)
[TUpdateARResult
UpdateARResultは長さNParamの配列のメモリコピーであるから、下記(3E)式で表される。
UpdateARResult=α36×NParam ・・・(3E)
ここで、α36は学習システムに応じた固定パラメータであり、パラメータ算出部32によって予め算出されている。
以上の数式の各α,β(添え字は省略)が確定していれば、上記(2),(2A)〜(2H),(3),(3A)〜(3E)式を連立させることでTGPU,TAllreduceが算出される。例えば、TGPU,TAllreduceに任意の初期値を入れて反復的に更新し、更新差分が十分に小さくなるまで更新を続けることで、TGPU,TAllreduceが得られる。あるいは、別の数値解法を用いてTGPU,TAllreduceを得てもよい。
続いて、パラメータ算出部32によるα,βの算出法を説明する。添え字に関わらずα,βの算出法は共通するので、上記(2E6)式におけるTc2f用のα16,β16を代表して説明する。
上記(2E6)式において、Tc2fはNSubbatchについての一次関数で与えられる。そこで、少なくとも2通りのNSubbatchを指定して所与の学習システムによりc2fを実行し、その所要時間Tc2fを計測する。そして、線形回帰を行うことで、α16,β16を算出できる。なお、β16は理想的には0であるが、関数の呼び出しなどのオーバーヘッドがあることも考慮して設定される定数である。
他のα,βについてもNSubbatchについての一次関数となっているから、同様にして算出可能である。
α,βは学習システム(計算機クラスタ)の性能を表現しており、学習システムが変わらなければ一定値である。よって、同じ学習システムを使い続ける限り、予めα,βを算出しておけばよく、平均ミニバッチサイズNBatchや学習時間TEpochを算出する度に算出する必要はない。逆に言うと、学習システムが変わった場合には、α,βを算出し直す必要がある。
以上のようにして、予めパラメータ算出部32によって算出されたα,βから、TGPU・TAllreduce算出部42(図6)はTGPU,TAllreduceを算出できる。そして、TEpoch算出部43およびNBatch算出部44は、それぞれ上記(6),(5)式に基づいて、学習時間TEpochおよび平均ミニバッチサイズNBatchを算出できる。
このように、本実施形態では、予測モデル式に所与のCNN構造を入力することで、平均ミニバッチサイズNBatchや学習時間TEpochを予測できる。そのため、適正なミニバッチサイズや学習時間が得られる学習システム、より具体的には、ノード台数やサブバッチ数を設計できる。
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうることである。したがって、本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲とすべきである。
1 ノード
11 CPU
12 GPU
13 ストレージ
21 畳み込み層
22 プーリング部
23 多層ニューラルネットワーク構造
31 予測部
32 パラメータ算出部
41 NParam算出部
42 TGPU・TAllreduce算出部
43 TEpoch算出部
44 NBatcch算出部

Claims (13)

  1. それぞれがCPUおよびGPUを有する複数のノードから構成され、前記CPUが前記GPUを用いて複数の学習データに基づく畳み込みニューラルネットワーク用の重み更新量を算出するとともに、ノード間で前記重み更新量を通信して重みを更新する学習システムにおける学習時間および/または1回の重み更新に用いられる平均学習データ数である平均ミニバッチサイズを予測する予測装置であって、
    畳み込みニューラルネットワーク構造を示すパラメータと、ノード台数と、各GPUに一括処理させる学習データ数であるサブバッチ数と、に基づいて、前記学習時間および/または前記平均ミニバッチサイズを予測する予測部を備える予測装置。
  2. 前記予測部は、下記(1)式に基づいて前記学習時間を予測する、請求項1に記載の予測装置。
    Epoch=(NFile×TGPU)/(NNode×NGPU×NSubbatch) ・・・(1)
    ここで、TEpochは前記学習時間、NNodeは前記ノード台数、NSubbatchは前記サブバッチ数、NFileは総学習データ数、NGPUは各ノードが有するGPU数、TGPUは各GPUが1回の重み更新量を算出するのに要する時間。
  3. 前記予測部は、下記(2)式に基づいて平均ミニバッチサイズを予測する、請求項1または2に記載の予測装置。
    Batch=(NNode×NGPU×NSubbatch×TAllreduce)/TGPU ・・・(2)
    ここで、NBatchは前記平均ミニバッチサイズ、NNodeは前記ノード台数、NSubbatchは前記サブバッチ数、NGPUは各ノードが有するGPU数、TGPUは各GPUが1回の重み更新量を算出するのに要する時間、TAllreduceは前記CPUが通信を行って重みを更新するのに要する時間。
  4. 前記TAllreduceは、前記CPUが通信を行って重みを更新するのに必要な各処理に要する時間の総和である、請求項3に記載の予測装置。
  5. 前記TGPUは、前記CPUが重み更新量を算出するのに必要な各処理に要する時間の総和である、請求項2乃至4のいずれかに記載の予測装置。
  6. 前記各処理に要する時間は、前記サブバッチ数についての一次関数で与えられる、請求項4または5に記載の予測装置。
  7. 複数の前記サブバッチ数について、前記各処理に要する時間を計測してフィッティングを行うことにより、前記一次関数を定める定数を算出するパラメータ算出部を備える、請求項6に記載の予測装置。
  8. 前記予測部によって予測された前記平均ミニバッチサイズが予め定めた範囲に収まるか否かを判定する判定部を備える請求項1乃至7のいずれかに記載の予測装置。
  9. 前記判定部は、前記平均ミニバッチサイズが予め定めた範囲に収まる前記ノード台数および前記サブバッチ数の組のうち、前記学習時間が最小となる組を特定する、請求項8に記載の予測装置。
  10. 前記判定部は、前記平均ミニバッチサイズが予め定めた範囲に収まる前記ノード台数および前記サブバッチ数の組のうち、前記ノード台数が最小となる組を特定する、請求項8に記載の予測装置。
  11. 前記判定部は、前記平均ミニバッチサイズが予め定めた範囲に収まる前記ノード台数および前記サブバッチ数の組のうち、前記ノード台数と前記学習時間との積が最小となる組を特定する、請求項8に記載の予測装置。
  12. それぞれがCPUおよびGPUを有する複数のノードから構成され、前記CPUが前記GPUを用いて複数の学習データに基づく畳み込みニューラルネットワーク用の重み更新量を算出するとともに、ノード間で前記重み更新量を通信して重みを更新する学習システムにおける学習時間および/または1回の重み更新に用いられる平均学習データ数である平均ミニバッチサイズを予測する予測方法であって、
    畳み込みニューラルネットワーク構造を示すパラメータと、ノード台数と、各GPUに一括処理させる学習データ数であるサブバッチ数と、に基づいて、前記学習時間および/または前記平均ミニバッチサイズを予測する予測方法。
  13. それぞれがCPUおよびGPUを有する複数のノードから構成され、前記CPUが前記GPUを用いて複数の学習データに基づく畳み込みニューラルネットワーク用の重み更新量を算出するとともに、ノード間で前記重み更新量を通信して重みを更新する学習システムにおける学習時間および/または1回の重み更新に用いられる平均学習データ数である平均ミニバッチサイズを予測する予測プログラムであって、コンピュータを、
    畳み込みニューラルネットワーク構造を示すパラメータと、ノード台数と、各GPUに一括処理させる学習データ数であるサブバッチ数と、に基づいて、前記学習時間および/または前記平均ミニバッチサイズを予測する予測手段として機能させる予測プログラム。
JP2016150221A 2016-07-29 2016-07-29 予測装置、予測方法および予測プログラム Active JP6635265B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016150221A JP6635265B2 (ja) 2016-07-29 2016-07-29 予測装置、予測方法および予測プログラム
US15/439,304 US20180032865A1 (en) 2016-07-29 2017-02-22 Prediction apparatus, prediction method, and prediction program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016150221A JP6635265B2 (ja) 2016-07-29 2016-07-29 予測装置、予測方法および予測プログラム

Publications (2)

Publication Number Publication Date
JP2018018422A JP2018018422A (ja) 2018-02-01
JP6635265B2 true JP6635265B2 (ja) 2020-01-22

Family

ID=61009651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016150221A Active JP6635265B2 (ja) 2016-07-29 2016-07-29 予測装置、予測方法および予測プログラム

Country Status (2)

Country Link
US (1) US20180032865A1 (ja)
JP (1) JP6635265B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720405B2 (en) 2020-06-22 2023-08-08 Samsung Electronics Co., Ltd. Accelerator, method of operating the same, and electronic device including the same

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10943171B2 (en) * 2017-09-01 2021-03-09 Facebook, Inc. Sparse neural network training optimization
CN108764250B (zh) * 2018-05-02 2021-09-17 西北工业大学 一种运用卷积神经网络提取本质图像的方法
CN108734211B (zh) * 2018-05-17 2019-12-24 腾讯科技(深圳)有限公司 图像处理的方法和装置
US20210312013A1 (en) * 2018-08-07 2021-10-07 Nec Corporation Information processing apparatus, information processing method, and computer-readable recording medium
US20200050971A1 (en) * 2018-08-08 2020-02-13 International Business Machines Corporation Minibatch Parallel Machine Learning System Design
JP7091940B2 (ja) * 2018-08-27 2022-06-28 日本電信電話株式会社 照合装置、照合方法および照合プログラム
EP3640856A1 (en) * 2018-10-19 2020-04-22 Fujitsu Limited A method, apparatus and computer program to carry out a training procedure in a convolutional neural network
JP2020077300A (ja) * 2018-11-09 2020-05-21 日本電信電話株式会社 分散深層学習システムおよびデータ転送方法
CN111273953B (zh) * 2018-11-19 2021-07-16 Oppo广东移动通信有限公司 模型处理方法、装置、终端及存储介质
CN109727376B (zh) * 2018-12-29 2022-03-04 北京沃东天骏信息技术有限公司 生成配置文件的方法、装置及售货设备
CN110059813B (zh) * 2019-02-13 2021-04-06 创新先进技术有限公司 利用gpu集群更新卷积神经网络的方法、装置及设备
JP7212543B2 (ja) * 2019-02-18 2023-01-25 日本放送協会 復号装置、ホログラム再生装置、及び復号方法
CN111160531B (zh) * 2019-12-30 2023-09-22 北京迈格威科技有限公司 神经网络模型的分布式训练方法、装置及电子设备
US20220101086A1 (en) * 2020-09-30 2022-03-31 Stmicroelectronics S.R.L. Reconfigurable hardware buffer in a neural networks accelerator framework
US20220201295A1 (en) * 2020-12-21 2022-06-23 Electronics And Telecommunications Research Institute Method, apparatus and storage medium for image encoding/decoding using prediction
JP2022131179A (ja) 2021-02-26 2022-09-07 富士通株式会社 機械学習プログラムおよび機械学習方法
CN113033784A (zh) * 2021-04-18 2021-06-25 沈阳雅译网络技术有限公司 一种针对cpu和gpu设备搜索神经网络结构的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0660050A (ja) * 1992-08-11 1994-03-04 Hitachi Ltd ニューラルネットワークの学習支援装置
US9477925B2 (en) * 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720405B2 (en) 2020-06-22 2023-08-08 Samsung Electronics Co., Ltd. Accelerator, method of operating the same, and electronic device including the same

Also Published As

Publication number Publication date
US20180032865A1 (en) 2018-02-01
JP2018018422A (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
JP6635265B2 (ja) 予測装置、予測方法および予測プログラム
US11568258B2 (en) Operation method
US10726336B2 (en) Apparatus and method for compression coding for artificial neural network
JP6574503B2 (ja) 機械学習方法および装置
JP6504590B2 (ja) 画像のセマンティックセグメンテーションのためのシステム及びコンピューター実施方法、並びに非一時的コンピューター可読媒体
US20180260709A1 (en) Calculating device and method for a sparsely connected artificial neural network
US20190065934A1 (en) Apparatus and methods for forward propagation in fully connected layers of convolutional neural networks
CN115841137A (zh) 一种用于对待量化数据进行定点化处理的方法及计算装置
JP6610278B2 (ja) 機械学習装置、機械学習方法及び機械学習プログラム
JP2018010633A (ja) ニューラルネットワークのための方法及び電子装置
US20190065938A1 (en) Apparatus and Methods for Pooling Operations
CN113449859A (zh) 一种数据处理方法及其装置
US20190138922A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
US20190311266A1 (en) Device and method for artificial neural network operation
JP7150651B2 (ja) ニューラルネットワークのモデル縮約装置
WO2018112892A1 (zh) 一种支持快速人工神经网络运算的装置及方法
WO2022127603A1 (zh) 一种模型处理方法及相关装置
CN111985631B (zh) 信息处理设备、信息处理方法及计算机可读记录介质
WO2020054402A1 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
US20190073584A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
WO2022201399A1 (ja) 推論装置、推論方法および推論プログラム
US20230259775A1 (en) Method and apparatus with pruning
US20230051344A1 (en) Optimization of memory use for efficient neural network execution
EP4141646B1 (en) Method and apparatus with calculation
CN113591781B (zh) 基于服务机器人云平台的图像处理方法及***

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20160825

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20181109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191203

R150 Certificate of patent or registration of utility model

Ref document number: 6635265

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250