JP2023017335A - 機械学習プログラム,情報処理装置および機械学習方法 - Google Patents
機械学習プログラム,情報処理装置および機械学習方法 Download PDFInfo
- Publication number
- JP2023017335A JP2023017335A JP2021121539A JP2021121539A JP2023017335A JP 2023017335 A JP2023017335 A JP 2023017335A JP 2021121539 A JP2021121539 A JP 2021121539A JP 2021121539 A JP2021121539 A JP 2021121539A JP 2023017335 A JP2023017335 A JP 2023017335A
- Authority
- JP
- Japan
- Prior art keywords
- model
- machine learning
- neural network
- processes
- dropout
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 41
- 230000010365 information processing Effects 0.000 title claims description 8
- 238000000034 method Methods 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000003062 neural network model Methods 0.000 claims abstract description 36
- 238000013528 artificial neural network Methods 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000012549 training Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000415 inactivating effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000002779 inactivation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- 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/08—Learning methods
- G06N3/09—Supervised learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
- Image Analysis (AREA)
Abstract
【課題】モデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、演算リソースを効率的に利用できるようにする。【解決手段】ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、複数のプロセス毎に異なるノイズを付与する。【選択図】図1
Description
本発明は、機械学習プログラム,情報処理装置および機械学習方法に関する。
近年、ニューラルネットワークにおける機械学習において、機械学習モデルの巨大化に伴い、学習の高速化が求められている。
例えば、ダークマターデータから宇宙論的パラメータを推定するCosmoFlowを用いたシミュレーションにおいては、データ量が5.1TBとなり、1台のV100GPU(Graphics Processing Unit)で機械学習に1週間もかかる。
また、機械学習において主流の高速化方法であるデータ並列は精度の面で限界がある。すなわち、並列度を上げるとバッチサイズが大きくなり、学習精度に悪影響を及ぼすおそれがある。
そこで、近年においては、ニューラルネットワークにおける機械学習モデルを分割して複数の計算機で並列処理するモデル並列手法が知られている。以下、ニューラルネットワークにおける機械学習モデルを、ニューラルネットワークモデルもしくは単にモデルという場合がある。
ニューラルネットワークモデルを分割して作成した各モデルを複数の計算機で並列処理することで、学習精度に影響を及ぼすことなく、機械学習を高速化することができる。
図8はニューラルネットワークにおける従来のモデル並列手法を説明するための図である。
図8はニューラルネットワークにおける従来のモデル並列手法を説明するための図である。
図8中において、符号Aは並列化なしのニューラルネットワークモデルを示す。また、符号Bは、モデル並列されたニューラルネットワークモデルを示し、符号Aに示す1つのモデルを分割して作成した2つ(プロセス#0,#1)のモデルを表す。
符号Bに示すモデル並列化されたニューラルネットワークにおいては、符号Aで示すニューラルネットワークの畳み込み層および全結合層の全ての層(レイヤ)を分割して並列化している。
しかしながら、この符号Bに示すモデル並列化されたニューラルネットワークにおいては、各レイヤの前後において、プロセス#0とプロセス#1との間で頻繁に通信(allgather,allreduce)が発生する。これにより、通信負荷の増大や同期待ち等による遅延等が生じる。
そこで、ニューラルネットワークに備えられた複数の層のうち、計算量が多い畳み込み層のみを並列化する手法が考えられる。
図9はニューラルネットワークにおける従来のモデル並列手法を説明するための図である。
図9は、図8において符号Aで示した並列化なしのニューラルネットワークモデルに基づいて作成した、モデル並列化されたニューラルネットワークを示す。
そこで、ニューラルネットワークに備えられた複数の層のうち、計算量が多い畳み込み層のみを並列化する手法が考えられる。
図9はニューラルネットワークにおける従来のモデル並列手法を説明するための図である。
図9は、図8において符号Aで示した並列化なしのニューラルネットワークモデルに基づいて作成した、モデル並列化されたニューラルネットワークを示す。
この図9に示すニューラルネットワークは、図8に符号Aで示した並列化なしのニューラルネットワークモデルの畳み込み層のみを2つに分割している。すなわち、畳み込み層の処理をプロセス#0,#1で並列に行ない、全結合層の処理をプロセス#0のみにおいて行なう。
一般に、畳み込み層における処理は、計算量が多いが、通信は隣接部分間でのデータ交換のみが行なわれるので、畳み込み層を分割することによるデメリットは少ない。また、後段の全結合層はニューロン数が少ないため、並列化せずとも計算時間がそれほど増加せず、モデル並列させるよりも処理が速い場合がある。
しかしながら、図9に示す従来のモデル並列化したニューラルネットワークにおいては、プロセス#1は、畳み込み層以外の処理を行なわないので、計算リソースを無駄に遊ばせることになり非効率的である。
また、図9に示すモデル並列化したニューラルネットワークにおいても、プロセス#0において最終的に算出されるLossをプロセス#1との間で共有するために、プロセス#0からプロセス#1に対してデータ通信が行なわれる。かかるデータ通信による時間を削減するために、プロセス#1においても、プロセス#0と同様に、各全結合層の演算を行なうことでLossを算出することが考えられる。しかしながら、この場合においては、プロセス#0とプロセス#1とで全結合層の同じ演算を重複して行なうことになり非効率である。
1つの側面では、本発明は、モデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、演算リソースを効率的に利用できるようにすることを目的とする。
1つの側面では、本発明は、モデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、演算リソースを効率的に利用できるようにすることを目的とする。
このため、この機械学習プログラムは、ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する処理をプロセッサに実行させる。
一実施形態によれば、モデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、演算リソースを効率的に利用することができる。
以下、図面を参照して本機械学習プログラム,情報処理装置および機械学習方法にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としてのコンピュータシステム1のハードウェア構成を模式的に示す図、図2はその管理装置の機能構成図である。
図1は実施形態の一例としてのコンピュータシステム1のハードウェア構成を模式的に示す図、図2はその管理装置の機能構成図である。
本コンピュータシステム1は、図1に示すように、管理装置10と複数の計算ノード2とを備える。管理装置10と各計算ノード2とは、ネットワーク3を介して相互に通信可能に接続されている。ネットワーク3は、例えば、LAN(Local Area Network)である。
本コンピュータシステム1においては、ニューラルネットワークにおける機械学習モデル(ニューラルネットワークモデル)を分割して複数の計算ノード2によるモデル並列処理を実現する。
本コンピュータシステム1においては、ニューラルネットワークにおける機械学習モデル(ニューラルネットワークモデル)を分割して複数の計算ノード2によるモデル並列処理を実現する。
計算ノード2は、図示しないプロセッサとメモリとを備える情報処理装置(コンピュータ)であり、それぞれ後述する管理装置10によって割り当てられるプロセスを実行する。各計算ノード2は、割り当てられたニューラルネットワークモデルの訓練(機械学習)や当該ニューラルネットワークモデルを用いた推論等を行なう。
管理装置10は、例えば、サーバ機能を備える情報処理装置(コンピュータ)であり、ニューラルネットワークモデルを管理する機能を備える。
管理装置10は、図1に示すように、例えば、プロセッサ11,メモリ12および記憶装置13を備える。
管理装置10は、図1に示すように、例えば、プロセッサ11,メモリ12および記憶装置13を備える。
記憶装置13は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive),ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。
メモリ12はROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ12のROMには、機械学習モデルの管理にかかるソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。機械学習モデルの管理にかかるソフトウェアプログラムは機械学習プログラムを含む。
メモリ12上のソフトウェアプログラムは、プロセッサ11に適宜読み込まれて実行される。また、メモリ12のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
プロセッサ(処理部)11は、管理装置10全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
そして、プロセッサ11が、制御プログラムを実行することにより、図2に示すモデル管理部100,訓練制御部102および推論制御部103として機能する。制御プログラムには機械学習プログラムが含まれる。プロセッサ11がこの機械学習プログラムを実行することで、訓練制御部102としての機能が実現される。
なお、これらのモデル管理部100,訓練制御部102および推論制御部103としての機能を実現するためのプログラム(制御プログラム)は、例えばフレキシブルディスク,CD(CD-ROM,CD-R,CD-RW等),DVD(DVD-ROM,DVD-RAM,DVD-R,DVD+R,DVD-RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
モデル管理部100,訓練制御部102および推論制御部103としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ12)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではプロセッサ11)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
モデル管理部100は、ニューラルネットワークモデルを管理する。
本コンピュータシステム1においては、ニューラルネットワークモデルを分割して複数の計算ノード2によるモデル並列処理を実現する。
図3は本コンピュータシステム1により生成されるニューラルネットワークモデルを例示する概念図である。
モデル管理部100は、ニューラルネットワークモデルを管理する。
本コンピュータシステム1においては、ニューラルネットワークモデルを分割して複数の計算ノード2によるモデル並列処理を実現する。
図3は本コンピュータシステム1により生成されるニューラルネットワークモデルを例示する概念図である。
この図3に示す例においては、1つのニューラルネットワークモデルを分割して作成された2つのニューラルネットワークモデルを示す。また、この図3に示すニューラルネットワークモデルは、畳み込み層のみが分割され並列化されるものであって、他の層については並列化されない。
以下、1つのニューラルネットワークモデルを分割して作成される複数のニューラルネットワークモデルのそれぞれを、分散ニューラルネットワークモデルもしくは分散モデルという場合がある。また、分割される前の1つのニューラルネットワークモデルをオリジナルニューラルネットワークモデルといってもよい。
作成された各分散モデルは、それぞれ別の計算ノード2によって処理される。すなわち、各分散モデルは別のプロセスとして処理される。図3においては、2つの分散モデルが生成され、プロセス#0とプロセス#1とがそれぞれ1つの分散モデルを処理する例を示す。
図3に例示する各分散モデルは、畳み込み層と全結合層とを備える。また、全結合層にはドロップアウト層を備える。
図3に例示する各分散モデルは、畳み込み層と全結合層とを備える。また、全結合層にはドロップアウト層を備える。
ドロップアウト層は、一定割合のノードを不活性化(無効化)させながら機械学習を行なうことで過学習を抑制する。なお、この図3に示す例においては、全結合層にドロップアウト層が備えられているが、これに限定されるものではなく、ドロップアウト層を畳み込み層等に備えてもよい。
本コンピュータシステム1においては、複数(図3に示す例では2つ)のプロセス間において、ドロップアウト層は異なる不活性化(無効化)を行なう。以下、ドロップアウト層において特定のノードを不活性化することをノイズを付与するという場合がある。ドロップアウト層は、機械学習にノイズを付与するノイズ付与層として機能する。
モデル管理部100は、図3に例示するような並列化したニューラルネットワークモデルを生成する。例えば、モデル管理部100は、並列化されたニューラルネットワークモデルを構成する複数の分散モデルのそれぞれに対して、他の分散モデルに備えられるドロップアウト層とは異なるノイズを付与させる。
オリジナルニューラルネットワークにおける畳み込み層は、プロセス#0とプロセス#1とに分割され、異なる計算ノード2により並列処理される。各分散モデルにおいて、畳み込み層をモデル並列部といってもよい。また、各分散モデルにおいて、プロセス#0とプロセス#1とによる並列処理がされない全結合層およびドロップアウト層を非モデル並列部といってもよい。さらに、畳み込み層の処理を並列して行なう複数のプロセスを、モデル並列プロセスといってもよい。
各分散モデルの非モデル並列部には、同じ処理を行なう処理ブロックが備えられる。このような処理ブロックは、複数の分散モデルの非モデル並列部に重複して備えられる。このように、複数の分散モデルの非モデル並列部に重複して備えられる処理ブロックを重複ブロックといってもよい。重複ブロックは、モデル並列を行なうプロセス間でモデル並列を行なわずに重複処理する層のまとまりである。各分散モデルにおいて、ドロップアウト層は重複ブロックに含まれる。
モデル管理部100は、図2に示すように、ノイズ設定部101としての機能を備える。
モデル管理部100は、図2に示すように、ノイズ設定部101としての機能を備える。
ノイズ設定部101は、複数の分散モデルの各ドロップアウト層に対して、それぞれ異なるドロップアウトの処理が行なわれるように、ドロップアウト層を構成する各種のパラメータを設定する。
例えば、ノイズ設定部101は、分散モデル毎に、不活性化させるノードの割合(以下、ドロップアウト率という)が異なるように設定してもよい。分散モデル毎に異なるドロップアウト率を設定するためには、例えば、各分散モデルのドロップアウト層のそれぞれに対して、乱数を用いて複数種類のドロップアウト率の中から任意のドロップアウト率を選択してもよく、適宜変更して実施することができる。
また、ノイズ設定部101によるノイズ設定方法は、分散モデル毎にドロップアウト率を異ならせることに限定されるものではなく、適宜変更して実施することができる。例えば、分散モデル毎に不活性化するノードを異ならせてもよく、また、分散モデル毎に入力要素をドロップアウトする確率を異ならせてもよい。
ノイズ設定部101は、分散モデルを構成するデータを読み込み、当該分散モデルを構成する各層の処理ブロックについて、ドロップアウト層の有無を判断する。そして、分散モデルにドロップアウト層が含まれている場合には、複数の分散モデル間において、異なるドロップアウトの処理が行なわれるように、各ドロップアウト層のパラメータ設定を行なう。
複数の分散モデルの各ドロップアウト層に対して、それぞれ異なるドロップアウトの処理が行なわれるように、ドロップアウト層を構成する各種のパラメータを設定することを、モデル並列プロセス毎に異なるノイズを設定するといってもよい。
ノイズ設定部101は、各分散モデルに設定したドロップアウト処理(例えば、ドロップアウト率,不活性化させるノード)を実績情報として管理(記憶)し、この実績情報を参照して、複数の分散モデル間においてドロップアウト処理が重複しないように各分散モデルに設定するドロップアウト処理を決定してもよい。
訓練制御部102は、モデル管理部100により設定された各分散モデルを、それぞれ計算ノード2に割り当てて、訓練(機械学習)を行なわせる。
訓練制御部102は、モデル管理部100により設定された各分散モデルを、それぞれ計算ノード2に割り当てて、訓練(機械学習)を行なわせる。
この訓練制御部102からの機械学習の実行指示に従い、複数の計算ノード2は、オリジナルニューラルネットワークを分割して作成された複数の分散ニューラルネットワークモデルの機械学習を並行して行なう。
各計算ノード2に割り当てられた分散モデルは、それぞれ非並列ブロック(重複ブロック)にドロップアウト層を備える。従って、複数の計算ノード2が分散モデルの機械学習のプロセスをそれぞれ行なうに際には、各非並列処理ブロック(重複ブロック,ドロップアウト層)において異なるノイズが付与される。
推論制御部103は、各計算ノード2に対して、分散モデルによる推論を行なわせる。
推論制御部103は、各計算ノード2に対して、分散モデルによる推論を行なわせる。
(B)動作
上述の如く構成された実施形態の一礼としてのコンピュータシステム1のモデル管理部100による処理を、図4に示すフローチャート(ステップS1~S8)に従って説明する。
上述の如く構成された実施形態の一礼としてのコンピュータシステム1のモデル管理部100による処理を、図4に示すフローチャート(ステップS1~S8)に従って説明する。
ステップS1において、モデル管理部100は、予め作成された分散モデルを構成する情報を読み込む。モデル管理部100は、例えば、オリジナルニューラルネットワークから作成された複数の分散モデルの情報を読み込む。
ステップS2において、モデル管理部100は、読み込んだ複数の分散モデルのうち、一つの分散モデルを選択して、当該分散モデルの先頭から順に処理ブロックを確認し、複数の分散モデル(モデル並列プロセス)間において重複する重複ブロックを探索する。
ステップS3において、モデル管理部100は、重複ブロックがあるか(候補があるか)を確認し、重複ブロックがある場合には(ステップS3のYESルート参照)、ステップS4に移行する。ステップS4において、ノイズ設定部101が、当該重複ブロックがノイズを設定可能であるかを確認する。すなわち、ノイズ設定部101は、当該重複ブロックがドロップアウト層であるかを確認する。
確認の結果、当該重複ブロックが、モデル並列プロセス毎に異なるノイズを設定可能である場合、すなわち、重複ブロックがドロップアウト層である場合には(ステップS4のYESルート参照)、ステップS5に移行する。
ステップS5において、ノイズ設定部101は、ユーザに対して、複数の分散モデル間において異なるノイズを設定するかを確認する。例えば、ノイズ設定部101は、ユーザに対して、複数の分散モデル間において異なるノイズを設定してもよいかを問い合わせるメッセージをディスプレイ(図示省略)等に表示させてもよい。
ユーザは、マウスやキーボード(いずれも図示省略)を用いて、この問い合わせに対する応答を入力してもよい。
ユーザは、マウスやキーボード(いずれも図示省略)を用いて、この問い合わせに対する応答を入力してもよい。
ステップS6において、ノイズ設定部101は、複数の分散モデル間において異なるノイズを設定することについてユーザが同意したかを確認する。ノイズ設定部101は、例えば、ユーザが、マウスやキーボードを用いて、複数の分散モデル間において異なるノイズを設定することに同意する旨の入力を行なったかを確認する。この確認の結果、ユーザが、複数の分散モデル間において異なるノイズを設定することに同意しない場合には(ステップS6のNOルート参照)、ステップS2に戻る。
一方、ユーザが、複数の分散モデル間において異なるノイズを設定することに同意する場合には(ステップS6のYESルート参照)、ステップS7に移行する。
ステップS7において、ノイズ設定部101は、複数の分散モデルにおける、当該ドロップアウト層に対応する各ドロップアウト層のパラメータを、互いに異なるドロップアウト処理が行われるように設定する(書き換える)。その後、ステップS2に戻る。
また、ステップS4における確認の結果、当該重複ブロックがノイズを設定可能でない場合、すなわち、当該重複ブロックがドロップアウト層でない場合には(ステップS4のNOルート参照)、ステップS2に戻る。
また、ステップS3における確認の結果、重複ブロックがない場合には(ステップS3のNOルート参照)、ステップS8に移行する。
ステップS8においては、各分散モデルを構成する情報を記憶装置13等の所定の記憶領域に書き出す(記憶させる)。その後、処理を終了する。
また、ステップS3における確認の結果、重複ブロックがない場合には(ステップS3のNOルート参照)、ステップS8に移行する。
ステップS8においては、各分散モデルを構成する情報を記憶装置13等の所定の記憶領域に書き出す(記憶させる)。その後、処理を終了する。
なお、上述したフローチャートにおいて、ステップS5およびステップS6の処理は、省略してもよい。すなわち、ユーザに対する、複数の分散モデル間において異なるノイズを設定するか否かの確認は行なわずに、ステップS7において、対応する各ドロップアウト層のパラメータを、互いに異なるドロップアウト処理が行われるように書き換えてもよい。
次に、本コンピュータシステム1によって作成された複数の分散モデルによる機械学習処理を図5~図7を用いて説明する。
次に、本コンピュータシステム1によって作成された複数の分散モデルによる機械学習処理を図5~図7を用いて説明する。
これらの図5~図7においては、オリジナルニューラルネットワークを3つの分散モデルに分割し、プロセス#0~#2に処理させるモデル並列を実現する例を示す。
なお、図5は順伝搬の処理を、図6は逆伝搬の処理を、図7は重み更新の処理を、それぞれ示す。また、図5において、図中の上から下に向かう方向が順伝搬のデータの流れを示す。
順伝搬においては、図5に示すように、各プロセス#0~#2がそれぞれ実行する分散モデルのモデル並列部において行なわれた各処理の出力が結合される(符号P1参照)。結合された各出力は、プロセス#0~#2がそれぞれ実行する分散モデルの非モデル並列部にそれぞれ入力される。各分散モデルの非モデル並列部には、それぞれ同じデータが入力される。
図5に示す例において、各分散モデルの非モデル並列部はそれぞれ、ドロップアウト層(符号P2~P4参照)を含む3つの処理ブロック(重複ブロック)を備える。
また、これらの3つのドロップアウト層には、上述したノイズ設定部101により異なるパラメータ設定が行なわれており、これにより、各ドロップアウト層のドロップアウト率は異なる。
従って。各分散モデルの非モデル並列部における、これらのドロップアウト層の下流側の処理ブロックにおいては、互いに異なる出力が得られる。
また、各分散モデルの非モデル並列部の最後段の各処理ブロックの出力は結合される(符号P5参照)。
従って。各分散モデルの非モデル並列部における、これらのドロップアウト層の下流側の処理ブロックにおいては、互いに異なる出力が得られる。
また、各分散モデルの非モデル並列部の最後段の各処理ブロックの出力は結合される(符号P5参照)。
結合された各出力は、プロセス#0~#2がそれぞれ実行する分散モデルにおける、後続するモデル並列部にそれぞれ入力される。各分散モデルの非モデル並列部には、それぞれ同じデータが入力される。
図6において、図中の下から上に向かう方向が逆伝搬のデータの流れの方向を示す。
図6において、図中の下から上に向かう方向が逆伝搬のデータの流れの方向を示す。
逆伝搬においては、図6に示すように、各プロセス#0~#2がそれぞれ実行する分散モデルのモデル並列部において行なわれた各処理の出力が結合される(符号P6参照)。結合された各出力は、プロセス#0~#2がそれぞれ実行する分散モデルの非モデル並列部にそれぞれ入力される。各分散モデルの非モデル並列部には、それぞれ同じデータが入力される。
各分散モデルの非モデル並列部において、ドロップアウト層(符号P7~P9参照)以外の各処理ブロック(重複ブロック)においては、例えば、勾配降下法を用いて、訓練データに対する機械学習モデルの推論結果と正解データとの誤差を定義した損失関数を小さくする方向に重みΔwの算出が行なわれる。
各分散モデルの非モデル並列部に備えられた各ドロップアウト層には、上述したノイズ設定部101により異なるパラメータ設定が行なわれており、これにより、各ドロップアウト層のドロップアウト率は異なる。
従って。各分散モデルの非モデル並列部における、これらのドロップアウト層の下流側の処理ブロックにおいては、互いに異なる出力が得られる。
従って。各分散モデルの非モデル並列部における、これらのドロップアウト層の下流側の処理ブロックにおいては、互いに異なる出力が得られる。
各分散モデルの非モデル並列部の最後段の各処理ブロックの出力は結合される(符号P10参照)。結合された各出力は、プロセス#0~#2がそれぞれ実行する分散モデルにおける、後続するモデル並列部にそれぞれ入力される。各分散モデルの非モデル並列部には、それぞれ同じデータが入力される。
重み更新においては、図7に示すように、各プロセス#0~#2がそれぞれ実行する分散モデルの非モデル並列部において逆伝搬により算出された各重みΔwが結合され、この結合された重み(combined Δw)を用いて、各処理ブロックの重みが更新される。重みΔwの結合は、例えば、平均値の算出であってもよく、適宜変更して実施することができる。
(C)効果
このように、実施形態の一例としてのコンピュータシステム1によれば、ノイズ設定部101が、複数の分散モデルの各ドロップアウト層に対して、それぞれ異なるドロップアウトの処理が行なわれるように、ドロップアウト層を構成する各種のパラメータを設定する。
このように、実施形態の一例としてのコンピュータシステム1によれば、ノイズ設定部101が、複数の分散モデルの各ドロップアウト層に対して、それぞれ異なるドロップアウトの処理が行なわれるように、ドロップアウト層を構成する各種のパラメータを設定する。
これにより、機械学習時に、分散モデルを処理する各プロセスにおいて、非モデル並列部(重複ブロック)における各ドロップアウト層において異なるドロップアウトの処理が行なわれる。
従って、プロセス間で重複する処理を行なう非モデル並列部において、プロセス毎に異なる手法でノイズの生成を行なうことで、演算リソースを効率的に利用できる。
また、各分散モデルのそれぞれに異なるノイズを付与することで、並列処理される分散モデルのロバスト性を向上させ、学習精度を向上させることができる。
また、各分散モデルのそれぞれに異なるノイズを付与することで、並列処理される分散モデルのロバスト性を向上させ、学習精度を向上させることができる。
非モデル並列部を構成する処理ブロックは、もともと複数のプロセス(分散モデル)において並列に重複して処理される。従って、本コンピュータシステム1において、モデル並列を行なう複数のプロセスでそれぞれドロップアウト処理を行なうことに計算時間の増加がほとんどない。学習精度を向上させることができる。
(D)その他
本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、ノイズを設定可能な重複ブロックとしてドロップアウト層が用いられているが、これに限定されるものではなく、適宜変更して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理をプロセッサに実行させることを特徴とする、機械学習プログラム。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理をプロセッサに実行させることを特徴とする、機械学習プログラム。
(付記2)
前記非並列処理ブロックがドロップアウト層であり、前記プロセス毎に異なるドロップアウトの処理を行なう
処理を前記プロセッサに実行させることを特徴とする、付記1に記載の機械学習プログラム。
前記非並列処理ブロックがドロップアウト層であり、前記プロセス毎に異なるドロップアウトの処理を行なう
処理を前記プロセッサに実行させることを特徴とする、付記1に記載の機械学習プログラム。
(付記3)
ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理部を備えることを特徴とする情報処理装置。
ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理部を備えることを特徴とする情報処理装置。
(付記4)
前記処理部が、
前記非並列処理ブロックがドロップアウト層であり、前記プロセス毎に異なるドロップアウトの処理を行なう
ことを特徴とする、付記3に記載の情報処理装置。
前記処理部が、
前記非並列処理ブロックがドロップアウト層であり、前記プロセス毎に異なるドロップアウトの処理を行なう
ことを特徴とする、付記3に記載の情報処理装置。
(付記5)
ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理をコンピュータが実行することを特徴とする機械学習方法。
ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理をコンピュータが実行することを特徴とする機械学習方法。
(付記6)
前記非並列処理ブロックがドロップアウト層であり、前記プロセス毎に異なるドロップアウトの処理を行なう
処理を前記コンピュータが実行することを特徴とする付記5に記載の機械学習方法。
前記非並列処理ブロックがドロップアウト層であり、前記プロセス毎に異なるドロップアウトの処理を行なう
処理を前記コンピュータが実行することを特徴とする付記5に記載の機械学習方法。
1 コンピュータシステム
2 計算ノード
10 管理装置
11 プロセッサ(処理部)
12 メモリ
13 記憶装置
100 モデル管理部
101 ノイズ設定部
102 訓練制御部
103 推論制御部
2 計算ノード
10 管理装置
11 プロセッサ(処理部)
12 メモリ
13 記憶装置
100 モデル管理部
101 ノイズ設定部
102 訓練制御部
103 推論制御部
Claims (4)
- ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理をプロセッサに実行させることを特徴とする、機械学習プログラム。 - 前記非並列処理ブロックがドロップアウト層であり、前記プロセス毎に異なるドロップアウトの処理を行なう
処理を前記プロセッサに実行させることを特徴とする、請求項1に記載の機械学習プログラム。 - ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理部を備えることを特徴とする情報処理装置。 - ニューラルネットワークを分割して作成され、複数のプロセスでモデル並列処理される複数の分散ニューラルネットワークモデルの機械学習において、
前記複数のプロセスのそれぞれにおいて処理される非並列処理ブロックにおいて、前記複数のプロセス毎に異なるノイズを付与する
処理をコンピュータが実行することを特徴とする機械学習方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021121539A JP2023017335A (ja) | 2021-07-26 | 2021-07-26 | 機械学習プログラム,情報処理装置および機械学習方法 |
US17/702,840 US20230023241A1 (en) | 2021-07-26 | 2022-03-24 | Computer-readable recording medium storing machine learning program, information processing device, and machine learning method |
EP22164539.3A EP4125001A1 (en) | 2021-07-26 | 2022-03-25 | Machine learning program, information processing device, and machine learning method |
CN202210379852.0A CN115688874A (zh) | 2021-07-26 | 2022-04-12 | 记录介质、信息处理装置和计算机实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021121539A JP2023017335A (ja) | 2021-07-26 | 2021-07-26 | 機械学習プログラム,情報処理装置および機械学習方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023017335A true JP2023017335A (ja) | 2023-02-07 |
Family
ID=80952174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021121539A Pending JP2023017335A (ja) | 2021-07-26 | 2021-07-26 | 機械学習プログラム,情報処理装置および機械学習方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230023241A1 (ja) |
EP (1) | EP4125001A1 (ja) |
JP (1) | JP2023017335A (ja) |
CN (1) | CN115688874A (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255885A (zh) | 2014-04-11 | 2021-08-13 | 谷歌有限责任公司 | 使卷积神经网络的训练并行化 |
US20200372337A1 (en) | 2019-05-21 | 2020-11-26 | Nvidia Corporation | Parallelization strategies for training a neural network |
-
2021
- 2021-07-26 JP JP2021121539A patent/JP2023017335A/ja active Pending
-
2022
- 2022-03-24 US US17/702,840 patent/US20230023241A1/en active Pending
- 2022-03-25 EP EP22164539.3A patent/EP4125001A1/en active Pending
- 2022-04-12 CN CN202210379852.0A patent/CN115688874A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4125001A1 (en) | 2023-02-01 |
US20230023241A1 (en) | 2023-01-26 |
CN115688874A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210200521A1 (en) | Compiler-level general matrix multiplication configuration optimization | |
US20190286077A1 (en) | Optimization apparatus and control method for optimization apparatus | |
KR102037484B1 (ko) | 멀티태스크 학습 방법 및 그 장치 | |
US20200090051A1 (en) | Optimization problem operation method and apparatus | |
JP7246447B2 (ja) | モデルトレーニング方法、装置、電子デバイス、記憶媒体、開発システムおよびプログラム | |
JP2021086371A (ja) | 学習プログラム、学習方法および学習装置 | |
Jankov et al. | Declarative recursive computation on an RDBMS: or, why you should use a database for distributed machine learning | |
JP2020123270A (ja) | 演算装置 | |
CN113850364A (zh) | 非暂态计算机可读记录介质、学习方法和信息处理设备 | |
CN112949815A (zh) | 用于模型优化的方法和设备以及加速器系统 | |
JP2019067084A (ja) | 情報処理システム、情報処理装置、及び、転送先決定方法 | |
WO2019208564A1 (ja) | ニューラルネットワーク学習装置、ニューラルネットワーク学習方法、プログラム | |
JP2023017335A (ja) | 機械学習プログラム,情報処理装置および機械学習方法 | |
JP2021197108A (ja) | 学習プログラム、学習方法および情報処理装置 | |
JP7219402B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
Zhu et al. | Physical constraint-aware CNOT quantum circuit synthesis and optimization | |
Tan et al. | Discrete firework algorithm for combinatorial optimization problem | |
Zhang et al. | Multi-objective cuckoo algorithm for mobile devices network architecture search | |
KR20200108789A (ko) | Dnn 프레임워크를 이용하는 단일 가속기용 프로그램을 복수의 가속기에서 처리하는 방법 및 컴퓨터 프로그램 | |
JP6138701B2 (ja) | 分散計算方法及び分散計算システム | |
JP2020119213A (ja) | 演算処理装置,プログラム及び演算処理装置の制御方法 | |
JP7409495B2 (ja) | 機械学習プログラム,機械学習方法および機械学習装置 | |
JP7400840B2 (ja) | 最適化関数生成装置、最適化関数生成方法、プログラム | |
Barredo et al. | Precise makespan optimization via hybrid genetic algorithm for scientific workflow scheduling problem | |
JP7351343B2 (ja) | 秘密多重反復計算装置、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240404 |