JP7436830B2 - 学習プログラム、学習方法、および学習装置 - Google Patents

学習プログラム、学習方法、および学習装置 Download PDF

Info

Publication number
JP7436830B2
JP7436830B2 JP2020068626A JP2020068626A JP7436830B2 JP 7436830 B2 JP7436830 B2 JP 7436830B2 JP 2020068626 A JP2020068626 A JP 2020068626A JP 2020068626 A JP2020068626 A JP 2020068626A JP 7436830 B2 JP7436830 B2 JP 7436830B2
Authority
JP
Japan
Prior art keywords
value
learning
parameter
layer
update
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
JP2020068626A
Other languages
English (en)
Other versions
JP2021165907A (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.)
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 JP2020068626A priority Critical patent/JP7436830B2/ja
Priority to EP21154524.9A priority patent/EP3893164A1/en
Priority to US17/168,569 priority patent/US20210312328A1/en
Priority to CN202110189073.XA priority patent/CN113496289A/zh
Publication of JP2021165907A publication Critical patent/JP2021165907A/ja
Application granted granted Critical
Publication of JP7436830B2 publication Critical patent/JP7436830B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Machine Translation (AREA)
  • Image Analysis (AREA)

Description

本発明は、学習プログラム、学習方法、および学習装置に関する。
コンピュータを利用したデータ分析の1つとして、機械学習が行われることがある。機械学習では、既知の事例を示す訓練データをコンピュータに入力する。コンピュータは、訓練データを分析して、要因(説明変数や独立変数と言うことがある)と結果(目的変数や従属変数と言うことがある)との間の関係を一般化したモデルを学習する。学習されたモデルを用いることで、未知の事例についての結果を予測することができる。例えば、手書き文字を認識する文字認識モデルが学習される。
機械学習では、学習を繰り返すごとに、モデルを用いた推論の結果が正解に近づくように、モデルに含まれるパラメータの値が更新される。パラメータの更新手法として勾配降下法がある。勾配降下法は、学習結果と正解との誤差を示す損失関数の勾配を計算し、その勾配において降下する方向にパラメータを更新するものである。勾配降下法の中には、ランダムに並び替えられた訓練データそれぞれで学習を行うごとに、勾配に基づいてパラメータを更新する確率的勾配降下法(SGD:Stochastic Gradient Descent)がある。
SGDでは、損失関数の曲率が大きい場合、学習に時間がかかることがある。そこで、SGDを用いた機械学習を高速化させる手法としてモーメンタム法がある。モーメンタム法では、最新の学習ステップで計算した勾配と、過去の学習ステップで計算した勾配とを用いてパラメータの値が更新される。モーメンタム法を用いれば、最新の勾配と過去の勾配とが同じ方向に向いている次元のパラメータの更新量が大きくなり、最新の勾配と過去の勾配とが方向を変えている次元のパラメータの値の更新量が小さくなるように、SGDが修正される。
機械学習の学習効率を向上させる技術としては、例えば、学習済みの既存ニューラルネットワークの後段に新規ニューラルネットワークを接続して機械学習を行う機械学習装置が提案されている。
特開2017-182320号公報
機械学習では、学習の繰り返し回数が増えるに従って、1回の学習当りのパラメータの更新量が小さくなる。多層のニューラルネットワークのように複数のレイヤを有するモデルの学習においては、レイヤごとに、パラメータの更新量が異なってくることがある。例えばモデル内の一部のレイヤが、既存のモデルから流用したものである場合、流用されたレイヤについては十分に学習済みであり、早い段階で1回の学習当りのパラメータの更新量が少なくなる。そこで、パラメータの変化が少ないレイヤについては、パラメータの更新頻度を低下させ、パラメータの更新に要する計算量を削減することが考えられる。
しかし、機械学習の手法としてモーメンタム法を適用している場合、一部のレイヤについてパラメータの更新処理をスキップさせてしまうと、次回の学習において該当レイヤのパラメータの更新量の計算に用いる過去の誤差勾配が得られず、更新量の計算ができない。そのため、モーメンタム法を適用した機械学習において、一部のレイヤの学習をスキップさせることができず、学習の計算量の削減が困難となっている。
1つの側面では、本発明は、機械学習の計算量を削減することを目的とする。
1つの案では、以下の処理をコンピュータに実行させる学習プログラムが提供される。 コンピュータは、複数のレイヤを有するモデルに対して繰り返し実行される学習処理において、複数のレイヤのうちの一部の更新抑止レイヤのパラメータの値の更新処理を、学習処理k(kは2以上の整数)回に1回だけ実行する。そしてコンピュータは、更新抑止レイヤのパラメータの値の更新処理を実行する場合、k回前の学習処理で計算されたパラメータの値と、2k回前の学習処理で計算されたパラメータの値とを用いて、モーメンタム法を適用した勾配降下法によって、更新後のパラメータの値を算出する。
1態様によれば、機械学習の計算量を削減する。
第1の実施の形態に係る学習方法の一例を示す図である。 学習装置のハードウェアの一例を示す図である。 モデルの構造の一例を示す図である。 機械学習の一例を示す図である。 誤差勾配に応じた重みの更新例を示す図である。 重み更新処理の実施状況の一例を示す図である。 モーメンタム法の適用の効果を示す図である。 重みパラメータの値の推移の第1の例を示す図である。 重みパラメータの値の推移の第2の例を示す図である。 重みパラメータの値の推移の第3の例を示す図である。 重みパラメータの値の推移の第4の例を示す図である。 重みパラメータの値の推移の第5の例を示す図である。 学習装置の機能の一例を示すブロック図である。 重み情報記憶部の一例を示す図である。 スキップ情報記憶部の一例を示す図である。 学習処理の手順を示すフローチャートの前半である。 学習処理の手順を示すフローチャートの後半である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る学習方法の一例を示す図である。図1には、第1の実施の形態に係る学習方法を実施する学習装置10を示している。学習装置10は例えばコンピュータであり、学習プログラムを実行することにより、第1の実施の形態に係る学習方法を実施することができる。
学習装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば学習装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば学習装置10が有するプロセッサ、または演算回路である。
記憶部11には、訓練データ1とモデル2とが格納される。訓練データ1は、モデル2の訓練に使用するデータである。訓練データ1には、モデル2への入力データと、モデル2を用いた計算結果に対する正解を示すラベルとが含まれる。モデル2は、複数のレイヤに分かれている。各レイヤは、それぞれ1以上のパラメータを有する。モデル2は、例えば多層ニューラルネットワークである。その場合、パラメータは、各レイヤのノードに入力されるデータに対する重みパラメータである。
処理部12は、訓練データ1を用いてモデル2の学習処理を繰り返し実行する。すなわち処理部12は、訓練データ1に示される入力データをモデル2に入力した場合に、訓練データ1に示されるラベルが計算結果として出力されるようなパラメータの値を探索する。
例えば処理部12は、まず訓練データ1に示される入力データをモデル2への入力として、パラメータの値を用いてモデル2に沿った計算を行い、出力値を算出する。次に処理部12は、訓練データ1に示されるラベルと出力値とを比較し、モデル2の更新後のパラメータの値を算出する。そして処理部12は、モデル2のパラメータの値を、算出したパラメータの値に更新する。
なお処理部12は、モデル2に含まれる複数のレイヤのうち、一部のレイヤを更新抑止レイヤとすることができる。更新抑止レイヤは、学習における更新後のパラメータの値の算出と、そのパラメータの更新の処理を抑止するレイヤである。
例えば、処理部12は、学習処理を実行するごとに、モデル2のレイヤそれぞれについて、更新抑止レイヤとするか否かを決定する。具体的には、処理部12は、複数のレイヤそれぞれについて、前回のパラメータの値の更新処理における更新前と更新後とのパラメータの値の差分を算出する。そして処理部12は、算出した差分に基づいて、該当レイヤを更新抑止レイヤとするか否かを決定する。
例えば各レイヤにおいて、複数のパラメータが存在する場合がある。この場合、処理部12は、一のレイヤの複数のパラメータの値それぞれの、前回のパラメータの更新処理における更新前の値と更新後の値との差分を要素とするベクトルのノルムを計算する。ノルムは、ベクトルの長さの概念を一般化したものである。そして処理部12は、計算したノルムが所定の閾値以下の場合、当該一のレイヤを更新抑止レイヤに決定する。
図1の例では、学習回数(何回目の学習処理か)ごとに、各レイヤのパラメータの値の更新量に基づいて計算した値(ノルムなど)が閾値より大きいか否かを丸印で示している。白丸が、更新量に基づく値が閾値より大きいことを示している。黒丸が、更新量に基づく値が閾値以下であることを示している。
処理部12は、学習処理において、更新抑止レイヤのパラメータの値の更新処理を、学習処理k(kは2以上の整数)回に1回だけ実行する。kはスキップ数であり、例えば予め所定値が設定されている。図1の例ではk=2であり、学習処理2回に1回だけ、パラメータの値の更新処理がスキップされる。
処理部12は、各レイヤのパラメータの更新後の値を、モーメンタム法を適用した勾配降下法によって計算する。なお処理部12は、更新抑止レイヤ以外のレイヤについては、毎回の学習処理においてパラメータの値の更新が行われているため、一般的なモーメンタム法を適用することができる。すなわち処理部12は、1回前の学習処理で計算されたパラメータの値と、2回前の学習処理で計算されたパラメータの値とを用いて、更新後のパラメータの値を算出する。
例えば処理部12は、モデル2が多層ニューラルネットワークであれば、重みパラメータの値を算出することとなる。ここで、1回前の学習処理で計算された重みパラメータの値をwn-1、1回前の学習処理で計算された重みパラメータの値をwn-2とする。このとき処理部12は、wn-1を用いて、1回前の学習処理における誤差勾配∇En-1を算出する。そして処理部12は、wn-1、wn-2、∇En-1を変数として含むモーメンタム法を適用した勾配降下法の計算式F(wn-1,wn-2,∇En-1)により、今回の学習処理における重みパラメータの値wnを算出する。
他方、更新抑止レイヤについては、直前の所定回数分の学習処理におけるパラメータの値の更新が行われていない。そのため、一般的なモーメンタム法を適用することができない。そこで処理部12は、更新抑止レイヤのパラメータの値の更新処理を実行する場合、k回前の学習処理で計算されたパラメータの値と、2k回前の学習処理で計算されたパラメータの値とを用いて、更新後のパラメータの値を算出する。
例えばモデル2が多層ニューラルネットワークの場合、k回前の学習処理で計算された重みパラメータの値をwn-k、2k回前の学習処理で計算された重みパラメータの値をwn-2kとする。このとき処理部12は、wn-kを用いて、k回前の学習処理における誤差勾配∇En-kを算出する。そして処理部12は、wn-k、wn-2k、∇En-kを変数として含むモーメンタム法を適用した勾配降下法の計算式G(wn-k,wn-2k,∇En-k)により、今回の学習処理における重みパラメータの値wnを算出する。
このように処理部12は、パラメータの値の更新処理をスキップした場合、その後のパラメータの値の更新処理において、スキップした回数に応じた計算式で更新後のパラメータの値を計算する。これにより、パラメータの値の更新処理をスキップしても、その後の、学習において、モーメンタム法を適用した勾配降下法によって更新後のパラメータの値を計算することができる。すなわち、モーメンタム法を適用した機械学習において、一部のレイヤのパラメータの値の更新処理回数の削減による計算量の削減が可能となる。
なお処理部12は、更新後のパラメータの値の算出において、近似値を用いることもできる。例えば処理部12は、パラメータの値の更新処理を実行していない学習処理における誤差勾配を、パラメータの値の更新処理を実行している学習処理における誤差勾配と同じ値に近似することで、更新後のパラメータの値を算出する。スキップした更新処理における誤差勾配を用いた計算を行うことで、より精度の高い計算が可能となり、学習を効率的に収束させることが可能となる。その結果、学習終了までの計算量が削減される。
また更新処理がスキップされた学習処理で算出されるべきパラメータの値が不明であることにより生じる誤差を、例えばモーメンタム項に任意の係数を乗算することで補正することもできる。すなわちモーメンタム法を適用した勾配降下法の計算式には、モーメンタム法の影響を反映させるモーメンタム項が含まれる。そこで処理部12は、更新抑止レイヤのパラメータの値の計算では、k回前の学習処理で計算されたパラメータの値と2k回前の学習処理で計算されたパラメータの値との差分に所定の係数を乗算した項をモーメンタム項とする。これにより、適切な係数を設定することで、精度の高い計算が可能となる。
さらに処理部12は、例えば前回のパラメータの値の更新処理におけるパラメータの更新前の値と更新後の値との差分に基づいて、更新抑止レイヤとするか否かを決定することができる。これにより、パラメータの値の更新処理をスキップさせてもモーメンタム法による計算が可能なレイヤのみ、更新抑止レイヤとすることができる。その結果、更新量が少なく、更新処理をスキップさせたとしても全体の学習の収束に悪影響を及ぼさないレイヤのみを更新抑止レイヤとすることができる。
例えば処理部12は、あるレイヤの複数のパラメータそれぞれの差分を要素とするベクトルのノルムが所定の閾値以下の場合に、そのレイヤを更新抑止レイヤに決定することで、パラメータの更新量が少ないレイヤを適切に判断することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、モーメンタム法を適用した勾配降下法(例えばSGD)を用いた機械学習において、多層のニューラルネットワークのうちの一部のレイヤにおいて学習をスキップさせることによる処理の効率化を可能としたものである。
図2は、学習装置のハードウェアの一例を示す図である。学習装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、学習装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、学習装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
学習装置100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した学習装置10も、図2に示した学習装置100と同様のハードウェアにより実現することができる。
学習装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。学習装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、学習装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また学習装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、学習装置100が学習するモデルの構造について説明する。
図3は、モデルの構造の一例を示す図である。モデル40は、多層のニューラルネットワークである。多層のニューラルネットワークをモデル40として用いることで、学習装置100は、機械学習アルゴリズムとして深層学習を使用することができる。図3に示しているモデル40は、N層(Nは1以上の整数)のニューラルネットワークである。
モデル40は、それぞれが人口ニューロンを表す複数のノード41を含んでいる。複数のノード41は、複数のレイヤに分かれており、入力レイヤ以外にN個のレイヤを有する。第1レイヤ~第N-1レイヤは隠れレイヤであり、第Nレイヤは出力レイヤである。
隣接するレイヤのノード間は、結合関係を示す矢印で接続されている。矢印で結合されたノード間で、矢印の方向にデータが送信される。ニューラルネットワークでは、入力レイヤに近い方のノードから遠い方のノードでデータが送信されることとなる。
各矢印には、両側のノードの結合の強さを示す重みパラメータが付与されている。例えばモデル40では、入力レイヤのノード数が「3」、第1レイヤのノード数が「4」であるため、入力レイヤと第1レイヤとのノード間の結合の強さを示す重みパラメータ群には、w1,1,・・・,w1,12の12個の重みパラメータが含まれる。各レイヤでは、入力されたデータに対して、そのデータの重みパラメータに応じた重み付けて、出力が計算される。以下、各レイヤのノードに入力される重みパラメータ群を、そのレイヤの重みパラメータ群と呼ぶ。例えば、入力レイヤのノードから第1レイヤのノードに送信されるパラメータ群は、第1レイヤの重みパラメータ群である。
学習装置100は、機械学習において、第1レイヤ~第Nレイヤそれぞれの重みパラメータ群の適切な値を学習する。
図4は、機械学習の一例を示す図である。学習装置100は、ストレージ装置103に訓練データ50を記憶している。訓練データ50には、モデル40に入力するデータ51と、学習結果の正解を示すラベル52が含まれる。学習装置100は、訓練データ50を用いて機械学習を行いモデル40の適切な重みパラメータの値を求める。
モデル40は、Forward、BackwardおよびUpdateを含む複数のフェーズを繰り返すことで学習される。
Forwardフェーズでは、訓練データ50に含まれる説明変数の値が入力用のデータ51としてモデル40の入力レイヤ42のノードに対して入力される。入力されたデータ51は、入力レイヤ42のノードから第1レイヤ43のノードに送信される。第1レイヤ43では、第1レイヤ43の重みパラメータ群43aを用いて、入力されたデータ51に応じた出力値を計算する。第1レイヤ43で計算された出力値を含むデータ53は、第1レイヤ43から第2レイヤ44に送信される。
第2レイヤ44では、第2レイヤ44の重みパラメータ群44aを用いて、入力されたデータ53に応じた出力値を計算する。第2レイヤ44で計算された出力値を含むデータ54は、第2レイヤ44から第3レイヤ45に送信される。
第3レイヤ45では、第3レイヤ45の重みパラメータ群45aを用いて、入力されたデータ54に応じた出力値を計算する。第3レイヤ45で計算された結果が、出力データ55として出力される。
以上がForwardフェーズの処理である。Forwardフェーズが終わると、Backwardフェーズが実行される。
Backwardフェーズでは、出力データ55とラベル52との差分61が算出される。そして差分61に応じて、出力レイヤである第3レイヤ45の重みパラメータごとの誤差勾配62が算出される。また差分61に基づいて、正解を得るための第3レイヤ45への適切な入力データと、実際に入力されたデータ54との差分63が算出される。そして差分63に応じて、第2レイヤ44の重みパラメータごとの誤差勾配64が算出される。さらに差分63に基づいて、正解を得るための第2レイヤ44への適切な入力データと、実際に入力されたデータ53との差分65が算出される。そして差分65に応じて、第1レイヤ43の重みパラメータごとの誤差勾配66が算出される。
以上がBackwardフェーズの処理である。Backwardにおける誤差勾配62,64,66に基づいて、Updateフェーズが実行される。Updateフェーズでは、重みパラメータの値が更新される。例えば第1レイヤ43の重みパラメータ群43aに含まれる重みパラメータが、その重みパラメータに対応する誤差勾配66に応じて更新される。第2レイヤ44の重みパラメータ群44aに含まれる重みパラメータが、その重みパラメータに対応する誤差勾配64に応じて更新される。第3レイヤ45の重みパラメータ群45aに含まれる重みパラメータが、その重みパラメータに対応する誤差勾配62に応じて更新される。
学習装置100は、このような機械学習を繰り返し実行することで、モデル40の適切な重みパラメータの値を学習する。
誤差勾配を重みに反映させる際には、現在の重みから誤差勾配そのものを減算する代わりに、今回の入力データの影響を緩和するように誤差勾配が減算値に変換され、現在の重みから当該減算値が減算される。その際、ハイパーパラメータの1つである学習率が使用される。学習率が大きいと、直近の入力データの影響が重みに強く反映され、学習率が小さいと、直近の入力データの影響が重みに弱く反映されることになる。
図5は、誤差勾配に応じた重みの更新例を示す図である。ニューラルネットワークの予測誤差Eは、グラフ70に示すように、重みの値wの関数とみなすことができる。誤差逆伝播法では、予測誤差Eが最小になる重みの値wが探索される。現在の重みの値wにおける予測誤差Eの誤差勾配に応じて、誤差勾配とは逆方向に重みの値wが変化する。誤差勾配が正の場合は重みの値wが小さくなり、誤差勾配が負の場合は重みの値wが大きくなる。
重みパラメータの1回当りの更新量(重み更新量)は、誤差勾配が大きい程大きくなる。予測誤差Eが最小に近づくと誤差勾配がなだらかとなり、重み更新量が少なくなる。なお誤差勾配に応じた重み更新量は、「0」以上の実数である学習率によって調整される。
ニューラルネットワークにおけるレイヤごとの重みパラメータが最小値にどの程度近づいているかは、レイヤごとに異なる。そのため、重み更新量もレイヤごとに異なる。そこで、1回当りの重み更新量が十分に少なくなったレイヤについては、誤差勾配の算出や重みパラメータの更新処理をスキップすることが考えられる。
例えば学習対象のニューラルネットワークとして、入力レイヤに近い方のレイヤは、既に学習済みのモデル(既存モデル)を用い、その既存モデルの後に新規のレイヤ(新規モデル)を追加する場合がある。例えば、学習装置100は、学習済みの汎用的な画像認識モデルの後段に、新規モデルを接続することで、手書き文字の認識に特化した手書き文字認識モデルを生成する。
このように既存モデルと新規モデルとを組み合わせたモデルの機械学習を実施すると、既存モデル部分のレイヤについては、繰り返し実行される学習処理(イテレーション)1回当りの重み更新量が非常に少なくなる。重み更新量が少ないことが分かっている場合、重みパラメータの値の更新頻度を、例えば数回の学習処理の間に1回程度にすることで、処理を効率化することができる。
学習装置100は、例えばレイヤの重みパラメータ群に含まれる各重みパラメータの値の更新量を要素に含むベクトル(重み更新量ベクトルΔw)のLpノルムに基づいて、該当レイヤの重み更新処理を実施するか否かを判断することができる。例えば学習装置100は、Lpノルムが所定の閾値T以下になったレイヤについては、数回の学習処理で1回だけ重み更新処理を行う。Lpノルムについての詳細は後述する。
図6は、重み更新処理の実施状況の一例を示す図である。例えば第1レイヤ71~第5レイヤ75のモデルについて機械学習を行ったものとする。図6の例では、学習回数(何回目の学習か示す数値)ごとに、その学習で重み更新処理を行ったレイヤを丸印で示している。重み更新処理における重み更新量のLpノルムがTより大きい場合には、白い丸印である。また、重み更新処理における重み更新量のLpノルムがT以下の場合には、黒い丸印である。「-」は、該当レイヤについての重み更新処理をスキップしたことを示している。
入力レイヤに近いレイヤが既存モデルから流用したものである場合、入力レイヤに近いほど、早い段階でΔwのLpノルムがT以下となる。ΔwのLpノルムがT以下となったレイヤでは、その後の所定回の学習において、重み更新処理がスキップされる。
次にモーメンタム法について説明する。モーメンタム法は勾配降下法における処理効率を向上させるものである。モーメンタム法を適用しない勾配降下法では、n+1回目の学習で使用する重みパラメータの値wn+1が、以下の式で表される。
Figure 0007436830000001
nは、n回目の学習で使用した重みパラメータの値である。ηは学習率である。Lnは損失関数である。∂Ln/∂wnは誤差勾配∇Eである。モーメンタム法を適用する場合、重みパラメータの値wn+1の計算式が以下の式となる。
Figure 0007436830000002
Figure 0007436830000003
αはモーメンタム係数である。αは、例えば「0.9」程度の整数である。式(2)と式(3)とに基づいて、以下の式を導くことができる。
Figure 0007436830000004
Figure 0007436830000005
式(5)より、新しい重みパラメータの値wn+1は、前回の重みパラメータの値wnに対し、「wn-wn-1」にモーメンタム係数αを乗算した値の加算と、誤差勾配∇Eに学習率ηを乗算した値の減算とを行ったものとなる。式(5)の右辺第2項がモーメンタム項である。
図7は、モーメンタム法の適用の効果を示す図である。図7には、モーメンタム法を適用しない勾配降下法による重みパラメータの更新過程を示す模式図81と、モーメンタム法を適用した勾配降下法による重みパラメータの更新過程を示す模式図82とを示している。模式図81,82の楕円は、損失関数の一方の次元(縦方向)が、他方の次元(横方向)の次元よりも傾きが大きいことを表している。また楕円の中心が、損失関数の値を最小とするパラメータの位置である。学習ごとの重みパラメータの値の遷移が折れ線の矢印で表されている。
モーメンタム法を適用しない勾配降下法では、重みパラメータの値が、局所的な最適値に向かう谷底周辺での往復を繰り返し、損失関数が最小となる方向に辿り着くのに時間がかかる。その一方、モーメンタム法を適用すると、最新の勾配と過去の勾配とが同じ方向に向いている次元(図中横方向)の重みパラメータの更新量が大きくなる。その結果、重みパラメータの値の変化が、損失関数の値が最小となる方向へ加速され、効率よく学習結果が収束する。
ここで、モーメンタム法を適用した勾配降下法において、図6に示したような重み更新処理のスキップを実施すると、以下のような問題が生じる。
ある学習処理において重み更新処理をスキップすると、重みパラメータの値は更新されず、その前の学習処理における重みパラメータと同じ値となる。すると式(5)に示す「wn-wn-1」の値は「0」となってしまう。そのため、式(5)のままではモーメンタム項の効果が消えてしまう。
そこで、例えばk回(kは1以上の整数)スキップした場合は、式(5)の「wn-wn-1」を「wn-wn-k」に置き換えることが考えられる。これによりモーメンタム項が「0」とならず、モーメンタム法を適用する効果が表れる。ここでk回スキップというのは、k=1のときはスキップなしで重み更新処理を行い、k=2のときは学習処理を2回実行する間に、重み更新処理を1回スキップするものとする。
重み更新処理のスキップを考慮に入れた式は、以下の通りである。
Figure 0007436830000006
以下、式(6)に基づいて重みパラメータを更新した場合の重みパラメータの値の推移について、図8、図9を参照して説明する。なお学習回数nのときの誤差勾配∇En=∂Ln/∂wnは常に負の値で、初期値「-1」から前回の値に「0.99」を掛けて減らしていくものとする。すなわち「∇En=(-1)×(0.99)n」とする。学習をスキップさせるのは重みパラメータの値の変動が小さい場合であるため、∇Enは変動しないものとする。また、学習率はη=0.1、モーメンタム係数α=0.9、初期値w0=0、v-1=0とする。
図8は、重みパラメータの値の推移の第1の例を示す図である。図8の例は、重み更新処理のスキップ数k=2(2回に1回スキップ)とした場合の重みパラメータの値の遷移を示している。曲線83aは、重みパラメータの値の理想的な遷移を示している。曲線83bは、式(5)によって、モーメンタム項の効果を反映させないまま学習させた場合の重みパラメータの値の遷移を示している。曲線83cは、式(6)によって、モーメンタム項の効果を反映させて学習させた場合の重みパラメータの値の遷移を示している。
図9は、重みパラメータの値の推移の第2の例を示す図である。図9の例は、重み更新処理のスキップ数k=3(3回に1回スキップ)とした場合の重みパラメータの値の遷移を示している。曲線84aは、重みパラメータの値の理想的な遷移を示している。曲線84bは、式(5)によって、モーメンタム項の効果を反映させないまま学習させた場合の重みパラメータの値の遷移を示している。曲線84cは、式(6)によって、モーメンタム項の効果を反映させて学習させた場合の重みパラメータの値の遷移を示している。
図8、図9に示すように、式(6)を適用することにより、モーメンタム法の効果が表れ、理想的な遷移状況に近づくことが分かる。ただし、式(6)のままでは、式(6)を適用した場合の曲線83c,84cは、理想的な曲線83a,84aと乖離している。乖離の度合いは、スキップ数kが増加するほど大きくなる。
そこで学習装置100は、例えば、式(6)のモーメンタム項に、ハイパーパラメータで1より大きな値の係数を乗算する。これにより、重みパラメータの値の遷移が理想に近づくように調整することができる。
なお、機械学習においてハイパーパラメータに設定する値を誤ると、モデルによる推論の精度を向上させることが難しくなる。そのため学習時に設定するハイパーパラメータの数は少ないことが好ましい。
そこで学習装置100では、モーメンタム法で使用する過去の重みパラメータの値を近似式によって求め、モーメンタム法の効果の反映度合いを高める。以下に近似式の導出手順について説明する。
まず、∇En=(∂Ln)/(∂wn)と置き、w0を定数とし、v-1は存在しないので「0」とする。この場合、v0とw1は以下の式で表される。
Figure 0007436830000007
Figure 0007436830000008
式(7)、式(8)に基づいて、v1とw2を以下の式で計算できる。
Figure 0007436830000009
Figure 0007436830000010
さらに式(9)、式(10)に基づいて、v2とw3を以下の式で計算できる。
Figure 0007436830000011
Figure 0007436830000012
このように連鎖的に計算することができ、vn-1とwnを以下で表すことができる。
Figure 0007436830000013
Figure 0007436830000014
ここで、スキップ数k=2の場合(2回に1回スキップ)を考える。w0は定数とし、w1とw2はスキップせずに計算されるものとする。そして、w3の重み値の計算がスキップされたときに、w4を近似計算で求める場合を想定する。この場合、w1は式(8)で表され、w2は式(10)で表される。w3の計算はスキップされており、w4は一般化した式(14)に基づいて、以下の式で計算できる。
Figure 0007436830000015
式(15)の∇E2はw2から求めることができる。∇E3はw3がスキップされているので求められない。
ここで、w2-w0,w4-w2を計算すると、それぞれ以下のようになる。
Figure 0007436830000016
Figure 0007436830000017
よってw4は、以下の式で表される。
Figure 0007436830000018
ここで、基本的にスキップするのは学習量が小さいためであるため、∇E1≒∇E2≒∇E3と仮定することができる。そうすると式(18)を以下のように近似できる。
Figure 0007436830000019
よってw4は2個前のw2と4個前のw0と∇E2を用いて近似することができる。このスキップ数k=2の場合の近似を一般的な形で表すと、以下の式となる。
Figure 0007436830000020
式(20)を用いて、図8に示したグラフと同様の条件で重みパラメータの値の曲線を表したものが、図10に示すグラフである。
図10は、重みパラメータの値の推移の第3の例を示す図である。図10の例は、重み更新処理のスキップ数k=2(2回に1回スキップ)とした場合において、近似式を用いて算出された重みパラメータの値の遷移を示している。曲線83dは、式(20)によって近似計算を行った場合の重みパラメータの値の遷移を示している。曲線83dは、理想的な遷移を表す曲線83aとほぼ重なっている。
このように、式(20)を用いて近似を行うことで、学習処理の2回に1回、重み更新処理をスキップしたとしても、重み値パラメータの値を高精度に計算できる。
次に、スキップ数k=3の場合についての近似計算について説明する。スキップ数k=2の場合と同様にw0は定数とする。w1とw2とw3はスキップせずに計算されるものとする。そして、w4とw5の重み更新処理の計算がスキップされたときに、w6を近似計算で求める場合を想定する。この場合、w1は式(8)で表され、w2は式(10)で表され、w3は式(12)で表される。w4とw5の計算はスキップされる。w6は、一般化した式(14)に基づいて、以下の式で計算できる。
Figure 0007436830000021
式(21)の∇E3はw3から求めることができる。∇E4と∇E5はw4とw5がスキップされているので求められない。
ここで、w3-w0,w6-w3を計算すると、それぞれ以下のようになる。
Figure 0007436830000022
Figure 0007436830000023
よってw6は、以下の式で表される。
Figure 0007436830000024
ここで、基本的にスキップするのは学習量が小さいためであるため、∇E1≒∇E2≒∇E3≒∇E4≒∇E5と仮定することができる。そうすると式(24)を以下のように近似できる。
Figure 0007436830000025
よってw6は3個前のw3と6個前のw0と∇E3を用いて近似することができる。このスキップ数k=3の場合の近似を一般的な形で表すと、以下の式となる。
Figure 0007436830000026
式(26)を用いて、図9に示したグラフと同様の条件で重みパラメータの値の曲線を表したものが、図11に示すグラフである。
図11は、重みパラメータの値の推移の第4の例を示す図である。図11の例は、重み更新処理のスキップ数k=3(3回に1回スキップ)とした場合において、近似式を用いて算出された重みパラメータの値の遷移を示している。曲線84dは、式(26)によって近似計算を行った場合の重みパラメータの値の遷移を示している。曲線84dは、理想的な遷移を表す曲線84aとほぼ重なっている。
なお図11の例では、学習回数nのときの誤差勾配∇En=∂Ln/∂wnは、初期値「-1」から前回の値に「0.99」を掛けて減らしている。これは、前回の学習と今回の学習とにおける誤差勾配∇Enの変化が少なければ、近似計算を行った場合の曲線が理想曲線とほぼ一致することを示している。誤差勾配∇Enの絶対値の減少傾向がより強い場合の例を図12に示す。
図12は、重みパラメータの値の推移の第5の例を示す図である。図12の例は、重み更新処理のスキップ数k=3(3回に1回スキップ)とした場合において、「∇En=(-1)×(0.80)n」としたときの、近似式を用いて算出された重みパラメータの値の遷移を示している。曲線84eは、式(6)によって、モーメンタム項の効果を反映させて学習させた場合の重みパラメータの値の遷移を示している。曲線84fは、式(26)によって近似計算を行った場合の重みパラメータの値の遷移を示している。曲線84fは、理想的な遷移を表す曲線84aより下にずれているものの、理想に近い曲線となっている。
次に、スキップ数kが任意の整数の場合に適用可能な近似式について説明する。今までの考え方と同様にwnはk個前のwn-kと2k個前のwn-2kと∇En-kを使って近似することができる。スキップ数が任意のkの場合の近似式は、以下の式となる。
Figure 0007436830000027
式(27)は、等比級数の和の公式を用いて以下のように変形できる。
Figure 0007436830000028
このように、wnは、スキップ数kが任意の値であっても、式(28)でwn-kとwn-2kと∇En-kから近似計算で求めることが可能である。また、α=0とすれば、モーメンタム法を適用しない勾配降下法の近似も可能である。
次に、重み更新処理のスキップとモーメンタム法とを組み合わせた機械学習を行うための学習装置100の機能について説明する。
図13は、学習装置の機能の一例を示すブロック図である。学習装置100は、モデル記憶部110、訓練データ記憶部120、重み情報記憶部130、スキップ情報記憶部140、および機械学習部150を有する。モデル記憶部110、訓練データ記憶部120、重み情報記憶部130、およびスキップ情報記憶部140は、学習装置100が有するメモリ102またはストレージ装置103の記憶領域の一部を用いて実現される。機械学習部150は、例えば機械学習の処理手順が記述されたプログラムをプロセッサ101に実行させることで実現することができる。
モデル記憶部110は、今回の深層学習によって学習するモデルを記憶する。モデルは、図3に示すような多層のニューラルネットワークである。モデル記憶部110には、学習対象のモデルが予め格納され、機械学習部150による学習によって、モデルの重みパラメータが更新される。
訓練データ記憶部120は、今回の深層学習に使用する訓練データを記憶する。訓練データは、それぞれ説明変数の値と正解のラベルとを対応付けた複数のレコードを含む。
重み情報記憶部130は、学習を1サイクル実行するごとに、その学習で算出された各重みパラメータの値を記憶する。記憶された重みパラメータの値は、モーメンタム法による重みパラメータの値の計算に使用される。
スキップ情報記憶部140は、レイヤごとに、そのレイヤの重み更新処理のスキップを行うか否かを関する情報を記憶する。学習におけるbackward処理において、スキップ情報でスキップすることが示されているレイヤの重みパラメータ群の更新は抑止される。
機械学習部150は、モデル記憶部110に格納されたモデルの適切な重みパラメータの値を、訓練データ記憶部120に格納された訓練データを用いて学習する。機械学習部150は、学習において、重みパラメータの値の更新量が少ないレイヤについては、スキップ数で示された回数の学習で1回だけ重み更新処理を行う。例えばスキップ数が2回に設定されたレイヤであれば、機械学習部150は、学習処理2回当りに1回だけ、該当レイヤの重み更新処理を行う。また機械学習部150は、モーメンタム法を用いて重み更新処理を行う。前回の学習において重み更新処理をスキップしたレイヤの今回の重み更新処理については、式(28)を用いて、重みパラメータの新たな値を計算する。
次に、重み情報記憶部130とスキップ情報記憶部140とに格納されるデータについて、具体的に説明する。
図14は、重み情報記憶部の一例を示す図である。重み情報記憶部130には、例えば重み管理テーブル131が格納される。重み管理テーブル131には、レイヤごとに、学習によって得られた重みパラメータの値が設定される。重みパラメータの値は、学習回数に対応づけて設定されている。各重みパラメータの値は、対応する学習回数の学習が終了した時点での値である。図14の例では、重みパラメータの値wに、3つの数値を添え字として付与している。1つめの数値はレイヤの番号を示しており、2つ目の数値はレイヤ内での重みパラメータの番号を示しており、3つ目の数値は学習回数を示している。
図15は、スキップ情報記憶部の一例を示す図である。スキップ情報記憶部140には、例えばスキップ管理テーブル141が格納される。スキップ管理テーブル141には、レイヤごとにスキップ有無、およびスキップ回数が設定されている。スキップ有無は、対応するレイヤの重み更新処理のスキップを実施するか否かを示す情報である。スキップを実施する場合は「スキップあり」と設定され、スキップを実施しない場合は「スキップなし」と設定される。スキップ有無の初期値は「スキップなし」である。スキップ回数は、該当レイヤで重み更新処理を連続してスキップした回数である。スキップ回数の初期値は「0」である。
機械学習部150は、重み情報記憶部130とスキップ情報記憶部140を用いて、モデルの学習を行う。
次に、図16、図17を参照し、学習処理の手順を詳細に説明する。
図16は、学習処理の手順を示すフローチャートの前半である。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS101]機械学習部150は、学習回数カウンタiに初期値「0」を設定する(i=0)。
[ステップS102]機械学習部150は、スキップ数kと閾値Tとを決定する。閾値Tは、重み更新処理をスキップするか否かの判定に用いる実数である。例えば機械学習部150には、予めユーザによってスキップ数kと閾値Tそれぞれに対応付けて設定された値を、スキップ数kと閾値Tとに決定する。
[ステップS103]機械学習部150は、次回の学習において重み更新処理をスキップするか否かの設定が未設定のレイヤを1つ選択する。
[ステップS104]機械学習部150は、選択したレイヤがi回目(前回)の学習において重み更新処理がスキップされているか否かを判断する。例えば機械学習部150は、スキップ管理テーブル141において該当レイヤのスキップ回数が「1」以上の場合、重み更新処理がスキップされていると判断する。機械学習部150は、重み更新処理がスキップされた場合、処理をステップS109に進める。また機械学習部150は、重み更新処理がスキップされていない場合、処理をステップS105に進める。
なお機械学習部150は、学習回数カウンタiが2kに以下の間は、すべてのレイヤについてステップS104の判断をNOとして、処理をステップS109に進める。これにより、スキップをしたときのモーメンタム法の近似計算ができるようになるまでは、スキップ有無を初期状態「スキップなし」のままとすることができる。
[ステップS105]機械学習部150は、選択したレイヤのΔwのLpノルムを算出する(pは1以上の整数である)。Δwは、選択したレイヤのノードに入力されるデータの重み値パラメータの値の更新量を要素する重み更新量ベクトルである。重み値パラメータの値の更新量は、更新前の値と更新後の値との差分に相当する。選択したレイヤの重みパラメータの値の更新量を「Δw1,Δw2,・・・,Δwn」とした場合、重み更新量ベクトルΔwは「Δw=(Δw1,Δw2,・・・,Δwn)」である。
ΔwのLpノルムは、以下の式で与えられる。
Figure 0007436830000029
例えばΔwのL1ノルムは以下の通りである。
Figure 0007436830000030
またΔwのL2ノルムは以下の通りである。
Figure 0007436830000031
例えば設定された閾値TがΔwのL2ノルムの閾値である場合、機械学習部150は、ΔwのL2ノルムを計算する。
[ステップS106]機械学習部150は、ΔwのLpノルムが閾値T以下か否かを判断する。機械学習部150は、ΔwのLpノルムが閾値T以下であれば、処理をステップS108に進める。また機械学習部150は、ΔwのLpノルムが閾値より大きければ、処理をステップS107に進める。
[ステップS107]機械学習部150は、選択したレイヤをスキップなしに設定する。例えば機械学習部150は、スキップ管理テーブル141内の選択したレイヤに対応するレコードに、「スキップなし」を設定する。機械学習部150は、その後、処理をステップS109に進める。
[ステップS108]機械学習部150は、選択したレイヤをスキップありに設定する。例えば機械学習部150は、スキップ管理テーブル141内の選択したレイヤに対応するレコードに、「スキップあり」を設定する。
[ステップS109]機械学習部150は、スキップの有無の設定が未設定のレイヤがあるか否かを判断する。機械学習部150は、未設定のレイヤがある場合、処理をステップS103に進める。また機械学習部150は、すべてのレイヤに対してスキップの有無の設定が完了した場合、処理をステップS110に進める。
[ステップS110]機械学習部150は、学習回数カウンタiに1を加算(i=i+1)し、処理をステップS121(図17参照)に進める。
図17は、学習処理の手順を示すフローチャートの後半である。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS121]機械学習部150は、訓練データ記憶部120から訓練データを読み出す。
[ステップS122]機械学習部150は、読み出した訓練データを用いてForward処理を実行する。すなわち機械学習部150は、訓練データに含まれる訓練用の入力データを、モデルの入力レイヤのノードへの入力として、モデルに示されるニューラルネットワークに沿った計算を行い、出力レイヤからの出力値を得る。
[ステップS123]機械学習部150は、出力に近い方から順にレイヤを1つ選択する。
[ステップS124]機械学習部150は、スキップ管理テーブル141を参照し、選択したレイヤのスキップの有無が「スキップあり」に設定されているか否かを判断する。機械学習部150、スキップありに設定されている場合、処理をステップS126に進める。また機械学習部150は、スキップなしに設定されている場合、処理をステップS125に進める。
[ステップS125]機械学習部150は、非近似のモーメンタム法(式(2)、式(3))により、選択したレイヤのノードに入力されるデータに対する重みパラメータそれぞれの更新後の値wiを、計算する。機械学習部150は、その後、処理をステップS130に進める。
[ステップS126]機械学習部150は、選択したレイヤについてk-1回スキップしたか否かを判断する。例えば機械学習部150は、スキップ管理テーブル141において、選択したレイヤのスキップ回数がk-1回に達している場合には、k-1回スキップしたと判断する。機械学習部150は、k-1回スキップした場合、処理をステップS128に進める。また機械学習部150は、スキップ回数がk-1回に満たない場合、処理をステップS127に進める。
[ステップS127]機械学習部150は、選択したレイヤの重み更新処理をスキップし、スキップ管理テーブル141における該当レイヤのスキップ回数をカウントアップする。機械学習部150は、その後、処理をステップS131に進める。
[ステップS128]機械学習部150は、近似処理を用いたモーメンタム法(式(28))により、選択したレイヤのノードに入力されるデータに対する重みパラメータそれぞれの更新後の値wiを計算する。なお機械学習部150は、式(6)のモーメンタム項(右辺第2項)に1以上の係数(図8、図9に示すハイパーパラメータでの調整量に応じた値)を乗算した式を用いて重みパラメータそれぞれの更新後の値wiを計算してもよい。
[ステップS129]機械学習部150は、スキップ管理テーブル141における選択したレイヤのスキップ回数を「0」にリセットする。
[ステップS130]機械学習部150は、選択したレイヤの重みパラメータの値を、ステップS125またはステップS128で算出した値に更新する。
[ステップS131]機械学習部150は、すべてのレイヤを選択したか否かを判断する。機械学習部150は、未選択のレイヤがある場合、処理をステップS123に進める。また機械学習部150は、すべてのレイヤが選択済みとなった場合、処理をステップS132に進める。
[ステップS132]機械学習部150は、学習回数カウンタiが予め設定された実行学習回数N(Nは1以上の整数)未満か否かを判断する。機械学習部150は、学習回数カウンタiがN未満であれば、処理をステップS103(図16参照)に進める。また機械学習部150は、学習回数カウンタiがNに達していれば学習を終了する。
このようにして、一部のレイヤにおいて重みパラメータの値の更新処理をスキップして誤差勾配が求められていなくても、モーメンタム法の近似により、精度劣化を防いだまま高速な処理が可能となる。
〔その他の実施の形態〕
第2の実施の形態ではΔwのノルムに基づいて、重み更新処理のスキップの要否を判断しているが、Δwの要素の絶対値|Δw1|,|Δw2|,・・・,|Δwn|のそれぞれと閾値Tとを比較して、重み更新処理のスキップの要否を判断してもよい。例えば学習装置100は、Δwの要素の絶対値|Δw1|,|Δw2|,・・・,|Δwn|のすべてが閾値T以下の場合に、重み更新処理をスキップすると判断する。
また第2の実施の形態では、学習回数が実行学習回数Nに達するまで学習処理を繰り返しているが、機械学習部150は、出力レイヤにおけるΔwのLpノルムが所定値以下になった場合、学習処理を終了することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 訓練データ
2 モデル
10 学習装置
11 記憶部
12 処理部

Claims (7)

  1. コンピュータに、
    複数のレイヤを有するモデルに対して繰り返し実行される学習処理において、前記複数のレイヤのうちの一部の更新抑止レイヤのパラメータの値の更新処理を、前記学習処理k(kは2以上の整数)回に1回だけ実行し、
    前記更新抑止レイヤの前記パラメータの値の更新処理を実行する場合、k回前の前記学習処理で計算された前記パラメータの値と、2k回前の前記学習処理で計算された前記パラメータの値とを用いて、モーメンタム法を適用した勾配降下法によって、更新後の前記パラメータの値を算出する、
    処理を実行させる学習プログラム。
  2. 更新後の前記パラメータの値の算出では、前記パラメータの値の更新処理を実行していない前記学習処理における誤差勾配を、前記パラメータの値の更新処理を実行している前記学習処理における誤差勾配と同じ値に近似することで、更新後の前記パラメータの値を算出する、
    請求項1記載の学習プログラム。
  3. 更新後の前記パラメータの値の算出では、k回前の前記学習処理で計算された前記パラメータの値と2k回前の前記学習処理で計算された前記パラメータの値との差分に所定の係数を乗算する項を、モーメンタム法を適用することで追加されるモーメンタム項として含む計算式により、更新後の前記パラメータの値を算出する、
    請求項1記載の学習プログラム。
  4. 前記コンピュータに、さらに、
    前記複数のレイヤそれぞれについて、前回の更新処理における前記パラメータの更新前の値と更新後の値との差分を算出し、算出した差分に基づいて、前記更新抑止レイヤとするか否かを決定する、
    処理を実行させる請求項1ないし3のいずれかに記載の学習プログラム。
  5. 一のレイヤの複数のパラメータそれぞれについて、前回の更新処理における更新前の値と更新後の値との差分を求め、前記複数のパラメータそれぞれの差分を要素とするベクトルのノルムが所定の閾値以下の場合、前記一のレイヤを前記更新抑止レイヤに決定する、
    請求項4記載の学習プログラム。
  6. コンピュータが、
    複数のレイヤを有するモデルに対して繰り返し実行される学習処理において、前記複数のレイヤのうちの一部の更新抑止レイヤのパラメータの値の更新処理を、前記学習処理k(kは2以上の整数)回に1回だけ実行し、
    前記更新抑止レイヤの前記パラメータの値の更新処理を実行する場合、k回前の前記学習処理で計算された前記パラメータの値と、2k回前の前記学習処理で計算された前記パラメータの値とを用いて、モーメンタム法を適用した勾配降下法によって、更新後の前記パラメータの値を算出する、
    学習方法。
  7. 複数のレイヤを有するモデルに対して繰り返し実行される学習処理において、前記複数のレイヤのうちの一部の更新抑止レイヤのパラメータの値の更新処理を、前記学習処理k(kは2以上の整数)回に1回だけ実行し、前記更新抑止レイヤの前記パラメータの値の更新処理を実行する場合、k回前の前記学習処理で計算された前記パラメータの値と、2k回前の前記学習処理で計算された前記パラメータの値とを用いて、モーメンタム法を適用した勾配降下法によって、更新後の前記パラメータの値を算出する処理部、
    を有する学習装置。
JP2020068626A 2020-04-06 2020-04-06 学習プログラム、学習方法、および学習装置 Active JP7436830B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020068626A JP7436830B2 (ja) 2020-04-06 2020-04-06 学習プログラム、学習方法、および学習装置
EP21154524.9A EP3893164A1 (en) 2020-04-06 2021-02-01 Learning program, learing method, and learning apparatus
US17/168,569 US20210312328A1 (en) 2020-04-06 2021-02-05 Non-transitory computer-readable storage medium, learning method, and learning apparatus
CN202110189073.XA CN113496289A (zh) 2020-04-06 2021-02-19 学习程序、学习方法和学习设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020068626A JP7436830B2 (ja) 2020-04-06 2020-04-06 学習プログラム、学習方法、および学習装置

Publications (2)

Publication Number Publication Date
JP2021165907A JP2021165907A (ja) 2021-10-14
JP7436830B2 true JP7436830B2 (ja) 2024-02-22

Family

ID=74494775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020068626A Active JP7436830B2 (ja) 2020-04-06 2020-04-06 学習プログラム、学習方法、および学習装置

Country Status (4)

Country Link
US (1) US20210312328A1 (ja)
EP (1) EP3893164A1 (ja)
JP (1) JP7436830B2 (ja)
CN (1) CN113496289A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015178219A1 (ja) 2014-05-22 2015-11-26 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
WO2017183587A1 (ja) 2016-04-18 2017-10-26 日本電信電話株式会社 学習装置、学習方法および学習プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017182320A (ja) 2016-03-29 2017-10-05 株式会社メガチップス 機械学習装置
US20200082269A1 (en) * 2018-09-12 2020-03-12 Nvidia Corporation Memory efficient neural networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015178219A1 (ja) 2014-05-22 2015-11-26 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
WO2017183587A1 (ja) 2016-04-18 2017-10-26 日本電信電話株式会社 学習装置、学習方法および学習プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
X. Xiao, T. Bamunu Mudiyanselage, C. Ji, J. Hu and Y. Pan,Fast Deep Learning Training through Intelligently Freezing Layers,2019 International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData),2019年,pp. 1225-1232,doi: 10.1109/iThings/GreenCom/CPSCom/SmartData.2019.00205

Also Published As

Publication number Publication date
CN113496289A (zh) 2021-10-12
JP2021165907A (ja) 2021-10-14
US20210312328A1 (en) 2021-10-07
EP3893164A1 (en) 2021-10-13

Similar Documents

Publication Publication Date Title
US10460230B2 (en) Reducing computations in a neural network
JP2019164793A5 (ja)
US8190537B1 (en) Feature selection for large scale models
JP2017097585A (ja) 学習装置、プログラム及び学習方法
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP6579198B2 (ja) リスク評価方法、リスク評価プログラム及び情報処理装置
JP7295431B2 (ja) 学習プログラム、学習方法および学習装置
US11263513B2 (en) Method and system for bit quantization of artificial neural network
EP3929823A1 (en) Program, learning method, and information processing apparatus
US20220156508A1 (en) Method For Automatically Designing Efficient Hardware-Aware Neural Networks For Visual Recognition Using Knowledge Distillation
JP2000155681A (ja) 類似事例に基づく予測を行う予測装置および方法
JP2023052555A (ja) 対話型機械学習
US20230268035A1 (en) Method and apparatus for generating chemical structure using neural network
WO2021055442A1 (en) Small and fast video processing networks via neural architecture search
JP2020505672A (ja) データ・シーケンスに基づく予測モデルの双方向学習のための学習装置、方法及びコンピュータ・プログラム
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP7436830B2 (ja) 学習プログラム、学習方法、および学習装置
JP2021197108A (ja) 学習プログラム、学習方法および情報処理装置
KR102559605B1 (ko) 함수 최적화 방법 및 장치
JP7310927B2 (ja) 物体追跡装置、物体追跡方法及び記録媒体
CN113095328A (zh) 一种基尼指数引导的基于自训练的语义分割方法
Amroun et al. How statistical modeling and machine learning could help in the calibration of numerical simulation and fluid mechanics models? application to the calibration of models reproducing the vibratory behavior of an overhead line conductor
JP4202339B2 (ja) 類似事例に基づく予測を行う予測装置および方法
JP4440828B2 (ja) 類似事例に基づく予測を行う予測装置および方法
US20240028902A1 (en) Learning apparatus and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230112

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R150 Certificate of patent or registration of utility model

Ref document number: 7436830

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150