JP2023076839A - 機械学習装置およびプルーニング方法 - Google Patents
機械学習装置およびプルーニング方法 Download PDFInfo
- Publication number
- JP2023076839A JP2023076839A JP2021189795A JP2021189795A JP2023076839A JP 2023076839 A JP2023076839 A JP 2023076839A JP 2021189795 A JP2021189795 A JP 2021189795A JP 2021189795 A JP2021189795 A JP 2021189795A JP 2023076839 A JP2023076839 A JP 2023076839A
- Authority
- JP
- Japan
- Prior art keywords
- pruning
- neural network
- machine learning
- pruning process
- learning device
- 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
- 238000013138 pruning Methods 0.000 title claims abstract description 230
- 238000000034 method Methods 0.000 title claims abstract description 144
- 238000010801 machine learning Methods 0.000 title claims abstract description 45
- 230000008569 process Effects 0.000 claims abstract description 126
- 238000013528 artificial neural network Methods 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 70
- 230000006866 deterioration Effects 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 abstract description 4
- 230000006872 improvement Effects 0.000 abstract description 4
- 230000001629 suppression Effects 0.000 abstract description 3
- 244000141353 Prunus domestica Species 0.000 abstract description 2
- 230000009467 reduction Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 238000011156 evaluation Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 6
- 230000001174 ascending effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Image Analysis (AREA)
Abstract
【課題】プルーニング後に得られるニューラルネットワークにおける計算効率の向上と、処理精度の低下の抑制との両立を図ることができる技術を提供する。【解決手段】例示的な機械学習装置は、ニューラルネットワークに対してプルーニングを行う処理部を備える。前記プルーニングには、第1のプルーニング処理と、第1のプルーニング処理とは異なる第2のプルーニング処理と、が含まれる。【選択図】図8
Description
本発明は、ニューラルネットワークに対してプルーニングを行う技術に関する。
従来、ディープラーニングにより学習が行われたニューラルネットワークを、計算リソースが限られたエッジデバイスで動作させる手法としてプルーニング(枝刈り)が知られている。プルーニングでは、ニューラルネットワークに含まれる冗長なパラメータの削除が行われる。プルーニングにより、ニューラルネットワークの圧縮を図り、ニューラルネットワークにおける計算効率の向上を図ることができる。
特許文献1には、多層ニューラルネットワークにおける層を削除する技術が開示される。特許文献1における学習装置は、多層ニューラルネットワークにおける各層について、該多層ニューラルネットワークの推定結果に対する寄与の度合いを示す寄与度をそれぞれ計算し、各層の寄与度に基づいて、削除対象の層を選択する。そして、当該学習装置は、選択された削除対象の層を多層ニューラルネットワークから削除し、削除対象の層が削除された多層ニューラルネットワークの学習を行う。
ニューラルネットワークを構成する層単位で削除を行う構成とすると、処理後に得られるニューラルネットワークの計算効率の向上を図れるが、ニューラルネットワークの処理精度が低下することが懸念される。一方で、プルーニングにより冗長なパラメータの削除を十分に行うことができないと、プルーニング後に得られるニューラルネットワークの計算効率を十分に高めることができない可能性がある。
本発明は、上記の点に鑑み、プルーニング後に得られるニューラルネットワークにおける計算効率の向上と、処理精度の低下の抑制との両立を図ることができる技術を提供することを目的とする。
例示的な本発明の機械学習装置は、ニューラルネットワークに対してプルーニングを行う処理部を備える。前記プルーニングには、第1のプルーニング処理と、第1のプルーニング処理とは異なる第2のプルーニング処理と、が含まれる。
例示的な本発明によれば、プルーニング後に得られるニューラルネットワークにおける計算効率の向上と、処理精度の低下の抑制との両立を図ることができる。
以下、本発明の例示的な実施形態について、図面を参照しながら詳細に説明する。
<1.機械学習システム>
図1は、本発明の実施形態に係る機械学習システム100の概略構成を示すブロック図である。図1に示すように、機械学習システム100は、機械学習装置1とエッジデバイス2とを備える。
図1は、本発明の実施形態に係る機械学習システム100の概略構成を示すブロック図である。図1に示すように、機械学習システム100は、機械学習装置1とエッジデバイス2とを備える。
機械学習装置1は、学習済みのニューラルネットワークの生成に関わる処理を行う。機械学習装置1が行う処理には、少なくとも、学習が行われたニューラルネットに対してプルーニングを行う処理が含まれる。本実施形態では、機械学習装置1が行う処理には、プルーニングの他に、プルーニング後の再学習処理も含まれる。
なお、機械学習装置1が行う処理は、プルーニングのみであってもよい。この場合、機械学習装置1は、プルーニング装置であってよい。また、別の例として、機械学習装置1が行う処理には、プルーニングの前に行われるニューラルネットワークを学習する処理(事前学習処理)が含まれてもよい。
本実施形態では、機械学習装置1は、インターネット等の通信網を介してエッジデバイス2と接続される。機械学習装置1は、いわゆるサーバ装置であり、プルーニングおよびその後の再学習が行われたニューラルネットワークをエッジデバイス2に配信する。なお、ここで言うサーバ装置は、物理サーバであっても、クラウドサーバであってもよい。エッジデバイス2は、例えば、スマートフォン、パーソナルコンピュータ、車載装置、IoT(Internet of Things)家電等であってよい。
なお、機械学習装置1によりプルーニングおよびその後の再学習が行われたニューラルネットワークは、例えば、光記録媒体あるいは磁気記録媒体等の記録媒体に記録され、記録媒体を介して他の装置(車載装置等)に提供される構成であってもよい。機械学習装置1によりプルーニングおよびその後の再学習が行われたニューラルネットワークは、有線を介して他の装置(車載装置等)に提供される構成であってもよい。
<2.機械学習装置>
(2-1.装置の概要)
図1に示すように、機械学習装置1は、処理部11および記憶部12を備える。
(2-1.装置の概要)
図1に示すように、機械学習装置1は、処理部11および記憶部12を備える。
処理部11は、例えば、1又は複数のプロセッサにより構成される。プロセッサは、例えばCPU(Central Processing Unit)またはGPU(Graphics Processing Unit)を含んで構成されてよい。また、プロセッサは、例えば、CPUおよびGPUを含んで構成されてもよい。
記憶部12は、コンピュータにより読み取り可能なプログラムおよびデータ等を非一時的に格納または記憶する。記憶部12は、不揮発性記憶媒体を有する。記憶部12が有する不揮発性記憶媒体は、例えば、半導体メモリ、磁気媒体、および、光学媒体等のうち、少なくとも一種類により構成されてよい。
図1に示すように、処理部11は、機能的な構成として、プルーニング部111および学習部112を備える。処理部11が備えるプルーニング部111および学習部112は、例えば、記憶部12に記憶されるプログラムに従った演算処理をプロセッサが実行することによって実現される。本実施形態の範囲には、機械学習装置1をコンピュータによって実現するコンピュータプログラムが含まれる。また、本実施形態の範囲には、そのようなプログラムを記録したコンピュータ読取り可能な不揮発性記録媒体が含まれる。
なお、上記各部111、112は、上述のように、プロセッサにプログラムを実行させること、すなわちソフトウェアにより実現されてよいが、他の手法により実現されてもよい。上記各部111、112は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等を用いて実現されてもよい。すなわち、上記各部111、112は、専用のIC等を用いてハードウェアにより実現されてもよい。上記各部111、112は、ソフトウェアおよびハードウェアを併用して実現されてもよい。また、上記各部111、112は、概念的な構成要素である。1つの構成要素が実行する機能を複数の構成要素に分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてよい。
プルーニング部111は、ニューラルネットワークに対してプルーニングを行う。つまり、機械学習装置1は、ニューラルネットワークに対してプルーニングを行う処理部11を備える。詳細には、プルーニングが行われるニューラルネットワークは、事前に学習が行われた学習済みのニューラルネットワークである。この事前の学習は、機械学習装置1によって行われてもよいし、他の装置によって行われてもよい。なお、プルーニングが行われる学習済みのニューラルネットワークは、機械学習装置1がエッジデバイス2に対して配信する学習済みのニューラルネットワークとは異なる。
[2-1-1.プルーニングの概要]
図2は、プルーニングの概要を示す模式図である。図2の左側に示すニューラルネットワークNN1は、プルーニングが行われる前のニューラルネットワークである。図2の右側に示すニューラルネットワークNN2は、ニューラルネットワークNN1に対してプルーニングを行った後のニューラルネットワークである。
図2は、プルーニングの概要を示す模式図である。図2の左側に示すニューラルネットワークNN1は、プルーニングが行われる前のニューラルネットワークである。図2の右側に示すニューラルネットワークNN2は、ニューラルネットワークNN1に対してプルーニングを行った後のニューラルネットワークである。
図2に示すように、ニューラルネットワークNN1、NN2は、複数のニューロンNが集まった層Lを複数有する。図2に示す例では、ニューラルネットワークNN1、NN2は、4つの層Lを有する。ニューロンNは、いわゆるノードと同じである。層Lと層Lの間には、ニューロンN同士のつながりの強さを示す重みWが存在する。図2に示すように、プルーニング後のニューラルネットワークNN2は、プルーニング前のニューラルネットワークNN1と比べて、ニューロンNや重みWの数が減っている。すなわち、プルーニングが行われると、ニューラルネットワークの重みWおよびニューロンNのうちの少なくとも一方が取り除かれる。図2に示されたプルーニング後のニューラルネットワークNN2に含まれるニューロンNや重みWの数は、プルーニング前のニューラルネットワークNN1と比較して減少している。言い換えれば、プルーニング後のニューラルネットワークNN2は、プルーニング前と比較して、規模が小さくなっている(圧縮されている)。プルーニング後のニューラルネットワークNN2は圧縮されているので、プルーニング後のニューラルネットワークNN2を利用する場合、計算量に加えてメモリの占有量やメモリへのアクセスも低減され、計算効率の向上を図ることができる。本実施形態におけるプルーニングの詳細については、後述する。
図1に戻って、学習部112は、プルーニング後のニューラルネットワークを、データセット(不図示)を用いて再学習する。すなわち、処理部11は、プルーニング後のニューラルネットワークの学習を行う。このような構成とすることによって、プルーニング後のニューラルネットワークの重みの適正化を図り、ニューラルネットワークの処理精度の低下を抑制することができる。
なお、学習部112は、機械学習装置1に含まれなくてもよい。また、データセットを用いた学習の手法には、公知の手法が利用されてよい。データセットは、学習データと正解ラベルとを含む教師データ群であってよい。本実施形態では、学習部112は、再学習により得られた学習済みのニューラルネットワークをエッジデバイス2に向けて出力する。
(2-2.ニューラルネットワーク)
図3は、処理部11によってプルーニングが行われるニューラルネットワーク30の構造例について説明するための模式図である。ニューラルネットワーク30は、例えば、画像分類や物体検出等を行う画像認識用のニューラルネットワークである。ただし、ニューラルネットワーク30は、画像認識用のニューラルネットワークに限らず、例えば音声認識用のニューラルネットワーク等であってもよい。
図3は、処理部11によってプルーニングが行われるニューラルネットワーク30の構造例について説明するための模式図である。ニューラルネットワーク30は、例えば、画像分類や物体検出等を行う画像認識用のニューラルネットワークである。ただし、ニューラルネットワーク30は、画像認識用のニューラルネットワークに限らず、例えば音声認識用のニューラルネットワーク等であってもよい。
図3に示す例において、プルーニングの対象となるニューラルネットワーク30は、少なくとも1つのブロック32を含むステージ31を複数有する。ニューラルネットワーク30は、詳細には、複数のステージ31が連なった構造を有する。複数のステージ31に含まれるブロック32の数は、互いに同じであっても、異なってもよい。複数のステージ31の中には、複数のブロック32を含むステージ31が少なくとも1つは存在する。
図4は、ニューラルネットワーク30が有するステージ31の構造例を示す模式図である。図4に示す例では、ステージ31に含まれるブロック32の数は複数であり、詳細には3つである。図4に示すように、各ブロック32には、複数の層33が含まれる。図4に示す例では、各ブロック32には、3つの畳み込み層33が含まれる。
図4に示す例では、ステージ31内に含まれる各ブロック32の最後の畳み込み層33が残差コネクション34により接続される。残差コネクションは、Residual Connection、又は、スキップコネクションと同義である。詳細には、ステージ31内には、残差コネクション34が2つ含まれる。第1残差コネクション34aは、第1ブロック32aの最後の畳み込み層33aLの出力と、第2ブロック32bの最後の畳み込み層33bLの出力とを結合する。第2残差コネクション34bは、第2ブロック32bの最後の畳み込み層33bLの出力と、第3ブロック32cの最後の畳み込み層33cLの出力とを結合する。なお、ステージ31内に含まれる残差コネクション34の数は、ステージ31内に含まれるブロック32の数に応じて適宜変更されてよい。
出力が残差コネクション34により結合される畳み込み層33同士は、要素同士の足し合せが行われるために、出力チャネルの構成が同じとされる。このため、残差コネクション34で接続される各ブロック32の最後の畳み込み層33のチャネル数は同じとされる。換言すると、ステージ31内において、各ブロック32の出力チャネル数は同じである。図4に示す例では、第1ブロック32aの最後の畳み込み層33aL、第2ブロック32bの最後の畳み込み層33bL、および、第3ブロック32cの最後の畳み込み層33cLの出力チャネル数は同数C1である。換言すると、3つのブロック32a、32b、32cの出力チャネル数はいずれもC1である。
本実施形態では、ステージ31毎に、ブロック32の出力チャネル数が異なる。換言すると、ステージ31は、出力するチャネル数が同じとなるブロック32の集合体である。例えば、ニューラルネットワーク30が5つのステージ31を有する場合、第1ステージ、第2ステージ、第3ステージ、第4ステージ、および、第5ステージの各ブロック32の出力チャネル数は、順に、24、40、80、120、160等とされる。なお、ステージ31間を跨ぐ残差コネクション34は設定されない。
以上のように構成されるニューラルネットワーク30は、例えば、公知のResNetやMobileNetV2を用いて構成されてよい。ResNetでは、各ブロック32に含まれる層の数は2つである。MobileNetV2では、各ブロック32に含まれる層の数は3つである。
以上では、残差コネクション34は、各ブロック32の最後の層33同士を結合する構成とした。ただし、これは例示である。プルーニングの対象となるニューラルネットワークが残差コネクションを含めばよい。例えば、残差コネクションは、各ブロック32の中間の層33同士(例えば、層33aMと層33bM)を結合する構成であってもよい。
(2-3.プルーニングの詳細)
本実施形態において、プルーニングには、第1のプルーニング処理と、第1のプルーニング処理とは異なる第2のプルーニング処理とが含まれる。このような構成とすれば、ニューラルネットワーク30の構成に応じてプルーニングの手法の使い分けを行うことができる。複数のプルーニング手法の使い分けにより、ニューラルネットワーク30の重みやノードを適切に取り除くことができ、プルーニング後に得られるニューラルネットワーク30における計算効率の向上と処理精度の低下の抑制との両立を図ることができる。
本実施形態において、プルーニングには、第1のプルーニング処理と、第1のプルーニング処理とは異なる第2のプルーニング処理とが含まれる。このような構成とすれば、ニューラルネットワーク30の構成に応じてプルーニングの手法の使い分けを行うことができる。複数のプルーニング手法の使い分けにより、ニューラルネットワーク30の重みやノードを適切に取り除くことができ、プルーニング後に得られるニューラルネットワーク30における計算効率の向上と処理精度の低下の抑制との両立を図ることができる。
詳細には、第1のプルーニング処理と第2のプルーニング処理とは、プルーニングを行う、ニューラルネットワーク30の構成要素の単位が異なる。このような構成とすれば、ニューラルネットワーク30の局所的な構造の違い等に応じてプルーニングの手法の使い分けを行って、ニューラルネットワーク30の重みやノードを適切に取り除くことができる。
より詳細には、第1のプルーニング処理は、畳み込み層のチャネル単位でプルーニングを行う。第2のプルーニング処理は、重みパラメータ単位でプルーニングを行う。チャネル単位の方が、重みパラメータ単位よりも、プルーニングを行うニューラルネットワーク30の構成要素の単位が大きい。すなわち、第1のプルーニング処理は、第2のプルーニング処理に比べて、プルーニングを行うニューラルネットワーク30の構成要素の単位が大きい。
上述のように、ニューラルネットワーク30は、残差コネクション34を含む。このような構成では、残差コネクション34により接続される畳み込み層33同士の出力チャネルを同じ構成にする必要がある。このために、残差コネクション34により接続される層33に関しては、単独でチャネル単位のプルーニングを行うことができない。すなわち、残差コネクション34で接続される層33に対してチャネル単位でプルーニングを行う場合には、接続される各層33における各チャネルの重要度を総合的に判定してプルーニングを行う必要がある。すなわち、プルーニング処理が複雑となりやすい。
また、残差コネクション34で接続される層33の間で、不要なチャネルの数に偏りがある場合、不要なチャネルの数が少ない層33に合わせてプルーニングを行う必要がある。このために、不要なチャネルの数が多い層33において、余分なチャネルが残ってしまい、チャネル単位のプルーニングの効果が小さくなることがある。
更に、プルーニングにおいては、ニューラルネットワーク30全体でプルーニングを行う重みパラメータの比率を決める手法が一般的に行われる。この場合、残差コネクション34で接続される層33において、チャネル単位のプルーニングに上述のような制約があるために、残差コネクション34で接続される層33以外の層33にプルーニングが偏って行われる傾向がある。この結果、プルーニング後に得られるニューラルネットワーク30の処理精度が低下することがある。
この点、本実施形態では、チャネル単位でのプルーニング処理と、重みパラメータ単位でのプルーニング処理とを使い分けることができるために、プルーニング処理の複雑化、および、プルーニング対象の偏りを避けて適度なプルーニングを行うことができる。この結果、プルーニング後に得られるニューラルネットワーク30における計算効率の向上と、処理精度の低下の抑制との両立を図ることができる。
具体的には、処理部11は、ニューラルネットワーク30を構成する複数の層33のうち、出力が残差コネクション34で結合される層33の少なくとも一部を第1のプルーニング処理(チャネル単位のプルーニング処理)の対象外とする。第1のプルーニング処理の対象外とされた層33に対しては、第2のプルーニング処理(重みパラメータ単位でのプルーニング処理)が行われる。このように構成することで、出力が残差コネクション34で結合される層33について、処理が複雑になることを避けつつ、適度なプルーニングを実施することができる。
図4に示す例においては、各ブロック32a、32b、32cの最後の畳み込み層33aL、33bL、33cLは、第1のプルーニング処理(チャネル単位のプルーニング)の対象から除外される。そして、これらの畳み込み層33aL、33bL、33cLは、第2のプルーニング処理(重みパラメータ単位のプルーニング)の対象とされる。各ブロック32の最初の畳み込み層33aF、33bF、33cFと、中間の畳み込み層33aM、33bM、33cMは、第1のプルーニング処理の対象となる。
なお、各ブロック32の最初の畳み込み層33aF、33bF、33cFと、中間の畳み込み層33aM、33bM、33cMとは、第1のプルーニング処理だけが行われる構成であってよい。ただし、各ブロック32の最初の畳み込み層33aF、33bF、33cFと、中間の畳み込み層33aM、33bM、33cMとは、第1のプルーニング処理に加えて、第2のプルーニング処理も行われることが好ましい。
図5は、第1のプルーニング処理の一例について説明するための図である。図5において、iは畳み込み層33の番号、Cはチャネル数、wとhはそれぞれ特徴マップ40の幅と高さを表す。iの値が小さいほど入力層に近く、iの値が大きいほど出力層に近いことを表す。畳み込み層33の重みは、サイズk×kの畳み込みフィルタ(カーネル)がM×N枚配列された構成となっている。行数Mは、出力特徴マップ40のチャネル数(Ci+1)に対応する。列数Nは、入力特徴マップ40のチャネル数(Ci)に対応する。
図5に示す例では、各畳み込みフィルタについて、重みパラメータの絶対値和が算出される。例えば、畳み込みフィルタのサイズが3×3である場合、9つの重みパラメータの絶対値和が算出される。入力チャネルごと(列ごと)に、求めた絶対値和の総和(M個の絶対値和の総和)が評価値として算出される。評価値が小さい入力チャネルについて、入力チャネルの畳み込みフィルタと、当該入力チャネルに対応する入力特徴マップ40とが削除される。削除対象となる入力チャネルは、例えば、評価値が小さい方から順番に予め決められた数である。
なお、図5においては、1つの入力チャネルが削除対象となっており、当該削除対象の入力チャネルに含まれる全ての畳み込みフィルタと、当該入力チャネルに対応するハッチングを施した入力特徴マップ40が削除されている。また、上述の絶対値和の代わりに、例えば、二乗和や、絶対値の最大値が利用される構成等としてもよい。
図6は、第1のプルーニング処理の他の例について説明するための図である。図6においても、図5と同様に、iは畳み込み層33の番号、Cはチャネル数、wとhはそれぞれ特徴マップ40の幅と高さを表す。iの値が小さいほど入力層に近く、iの値が大きいほど出力層に近いことを表す。畳み込み層33の重みは、サイズk×kの畳み込みフィルタがM×N枚配列された構成となっている。行数Mは、出力特徴マップ40のチャネル数(Ci+1)に対応する。列数Nは、入力特徴マップ40のチャネル数(Ci)に対応する。
図6に示す例でも、各畳み込みフィルタについて、重みパラメータの絶対値和が算出される。ただし、図6に示す例では、出力チャネルごと(行ごと)に、求めた絶対値和の総和(N個の絶対値和の総和)が評価値として算出される。評価値が小さい出力チャネルについて、出力チャネルの畳み込みフィルタと、当該出力チャネルに対応する出力特徴マップ40とが削除される。削除対象となる出力チャネルは、例えば、評価値が小さい方から順番に予め決められた数である。
なお、図6においては、1つの出力チャネルが削除対象となっており、当該削除対象の出力チャネルに含まれる全ての畳み込みフィルタと、当該出力チャネルに対応するハッチングを施した出力特徴マップ40が削除される。また、図5に示す例の場合と同様に、上述の絶対値の和の代わりに、例えば、二乗和や、絶対値の最大値が利用される構成としてもよい。
図5に示すプルーニング処理は、入力チャネルの数を削減するプルーニングで、いわゆるチャネルプルーニングである。図6に示すプルーニング処理は、出力チャネルの数を削減するプルーニングで、いわゆるフィルタプルーニングである。図5および図6に示すプルーニングは、上述の説明からわかるように、いずれもチャネル単位でプルーニングが行われる。
上述のように、第2のプルーニング処理は、チャネル単位よりも小さい単位である重みパラメータ単位でプルーニングが行われる。例えば、重みパラメータの絶対値の大きさが、予め定められた閾値よりも小さい場合に、重みパラメータがゼロとされる。絶対値の大きさの代わりに、例えば二乗値が利用されてもよい。
なお、重みパラメータの絶対値が小さい方から順に所定数が、重みパラメータをゼロとされてもよい。また、別の手法として、例えば、ニューラルネットワーク30の性能(例えば認識率等)に影響を与えない重みパラメータを探索的に見つける手法が用いられてもよい。
重みパラメータ単位で行われる第2のプルーニング処理は、ニューラルネットワーク30におけるプルーニングを行う構成要素の単位が、チャネル単位で行われる第1のプルーニング処理に比べて小さい。このために、第2のプルーニング処理は、第1のプルーニング処理に比べて精度劣化を小さく抑えることができる。
<3.機械学習方法>
次に、本発明の実施形態に係るプルーニング手法を利用した機械学習方法について説明する。図7は、本発明の実施形態に係るプルーニングを含む機械学習方法の一例を示すフローチャートである。
次に、本発明の実施形態に係るプルーニング手法を利用した機械学習方法について説明する。図7は、本発明の実施形態に係るプルーニングを含む機械学習方法の一例を示すフローチャートである。
ステップS1では、ニューラルネットワーク30の学習が行われる。当該学習は、データセット(不図示)を用いて行われる。データセットは、学習データと正解ラベルとを含む教師データ群であってよい。当該学習は、上述の事前学習である。事前学習は、機械学習装置1によって行われても、他の装置によって行われてもよい。学習が完了すると、次のステップS2に処理が進められる。
ステップS2では、機械学習装置1の処理部11が、学習済みのニューラルネットワーク30を対象としてプルーニングを行う。プルーニングが完了すると、次のステップS3に処理が進められる。ステップS3の処理の説明を行う前に、図8を用いてプルーニングの流れについて説明する。図8は、プルーニングの流れを示すフローチャートである。より詳細には、図8は、図7のステップS2におけるプルーニングの詳細な流れを示すフローチャートである。
ステップS21では、重みパラメータの削減率が設定される。削減率は、学習済みのニューラルネットワーク30が有する全ての重みパラメータに対して重みパラメータを削減する比率である。例えばニューラルネットワーク30の開発を行う開発者等の人が、削減率の設定を行う。機械学習装置1に対する人による削減率の設定は、不図示の入力装置を利用して行われる。なお、削減率の設定は、機械学習装置1が自動的に設定する構成であってもよい。
削減率は、1つの値のみが設定される構成でもよいが、本実施形態では、削減率は、段階的に数値が大きくなるように複数設定される。これは、第1回目のプルーニングからプルーニングの回数を重ねるごとに削減率を大きくする構成とするためである。例えば、削減率は、20%、25%、30%、・・・といった形式で設定される。削減率が設定されると、次のステップS22に処理が進められる。
ステップS22では、処理部11が、学習済みのニューラルネットワーク30における不要なチャネルの特定を行う。不要なチャネルの特定を行う処理は、上述したチャネル単位で行われる第1のプルーニング処理に含まれる処理である。ニューラルネットワーク30に含まれる複数の層33のうち、出力が残差コネクション34で結合される層33は、不要なチャネルを特定する対象から除外される。例えば、上述した評価値が小さい方から順に、所定数が不要なチャネルとして特定される。所定数は、例えば、削減率に応じて自動的に決められる構成としてよい。不要なチャネルの特定が行われると、次のステップS23に処理が進められる。
ステップS23では、処理部11が、学習済みのニューラルネットワーク30における不要な重みパラメータの特定を行う。不要な重みパラメータの特定を行う処理は、上述した重みパラメータ単位で行われる第2のプルーニング処理に含まれる処理である。本実施形態では、不要な重みパラメータの特定を行う処理は、ニューラルネットワーク30に含まれる全ての層33を対象として行われる。なお、既に不要なチャネルに特定されたチャネルに含まれる重みパラメータは、処理の対象外とされてよい。不要な重みパラメータは、例えば、先の不要なチャネルの特定結果と削減率とに応じて、重みパラメータの絶対値が小さい方から順に特定される。不要な重みパラメータの特定が行われると、次のステップS24に処理が進められる。
なお、ステップS22の処理とステップS23の処理とは、処理を行う順番が反対とされてもよい。
ステップS24では、処理部11が、先のステップS22およびステップS23の処理で不要と特定されたチャネルおよび重みパラメータをプルーニングする処理を実行する。ステップS24におけるプルーニング処理は、第1のプルーニング処理の一部と、第2のプルーニング処理の一部とを含む。プルーニング処理が実行されると図7に示すステップS3に処理が進められる。
以上からわかるように、処理部11は、ニューラルネットワーク30を構成する複数の層33の中から第1のプルーニング処理の対象外となる層33を特定し、当該特定された層33を除く層を対象として第1のプルーニング処理を行う。別の言い方をすると、処理部11は、ニューラルネットワーク30を構成する複数の層の中から第1のプルーニング処理の対象となる層33を特定し、当該特定した層33を対象として第1のプルーニング処理を行う。このような構成とすると、チャネル単位でプルーニングを行う第1のプルーニング処理に適さない層33に対して第1のプルーニング処理を行わない構成とできる。例えば、出力が残差コネクション34で結合される層33の少なくとも一部を第1のプルーニング処理の対象から除外することができる。一方で、チャネル単位でのプルーニングに適した層33には、チャネル単位でのプルーニングが実行されるために、プルーニングの効果が小さくなることを抑制できる。
また、処理部11は、複数の層33のうち、第1のプルーニング処理の対象外に特定された層33を対象として第2のプルーニング処理を行う。別の言い方をすると、処理部11は、複数の層33のうち、第1のプルーニング処理の対象となる層33に特定した層33と異なる層33を対象として第2のプルーニング処理を行う。このような構成によれば、第1のプルーニング処理が行われない層33が第2のプルーニング処理の対象となるために、プルーニングの効果が極端に小さくなることを抑制することができる。例えば、出力が残差コネクション34で結合される層33について、重みパラメータ単位でのプルーニングを行うことができる。なお、層33を対象として第2のプルーニング処理を行う場合、層間の重みパラメータがプルーニング処理の対象となる。
また、処理部11は、第1のプルーニング処理の対象外に特定された層33を除く層33をさらに対象として第2のプルーニング処理を行う。別の言い方をすると、処理部11は、第1のプルーニング処理の対象となる層33に特定した層33をさらに対象として第2のプルーニング処理を行う。このような構成とすれば、第1のプルーニング処理の対象となった層33についても第2のプルーニング処理の対象とできる。このために、プルーニングが不十分となることを避けることができ、処理後のニューラルネットワーク30の計算効率の向上を期待できる。なお、上述した実施形態の構成は、このような構成である。ただし、処理部11は、第1のプルーニング処理の対象となる層33を対象として第2のプルーニング処理を行わない構成としてもよい。
図7に戻って、ステップS3では、処理部11は、データセットを用いて、プルーニング後のニューラルネットワーク30の再学習を行う。再学習が完了すると、次のステップS4に処理が進められる。
ステップS4では、処理部11は、プルーニングを終了するか否かを判定する。処理部11は、例えば、プルーニング後のニューラルネットワーク30の処理精度が予め設定した閾値以下となった場合に、プルーニングを終了すると判定する。また、別の例として、処理部11は、プルーニング後のニューラルネットワーク30のタスク(画像認識等)の実行時間が予め設定された目標値以下となった場合に、プルーニングを終了すると判定する。プルーニングを終了すると判定された場合(ステップS4でYes)、図7に示す処理が終了する。プルーニングを終了しないと判定された場合(ステップS4でNo)、ステップS2に戻って、ステップS2以降の処理が行われる。
なお、ステップS2に戻った場合、先に使用した削減率よりも大きな削減率に変更されて、プルーニングが行われる。また、図7に示す処理により得られたニューラルネットワーク30は、例えば、エッジデバイス2に配信される。
以上では、第1のプルーニング処理と第2のプルーニング処理とが纏めて実行される構成としたが、図9に示すように、第1のプルーニング処理と第2のプルーニング処理とが順番に行われてもよい。図9は、プルーニングを含む機械学習方法の変形例を示すフローチャートである。
まず、ステップN1で学習が行われた学習済みのニューラルネットワークに対して、第1のプルーニング処理が行われる(ステップN2)。削減率が設定され、チャネル単位のプルーニングが行われる。なお、ここでは、出力が残差コネクション34で結合される層33は、プルーニングの対象から除外される。
第1のプルーニング処理後に再学習が行われ(ステップN3)、その後、第1のプルーニング処理を終了するか否かの判定が行われる(ステップN4)。例えば、第1のプルーニング処理後のニューラルネットワークの処理精度が予め設定した閾値以下となった場合に、第1のプルーニング処理を終了すると判定する。第1のプルーニング処理を終了しない場合(ステップN4でNo)、ステップN2に戻ってステップN2以降の処理が繰り返される。
第1のプルーニング処理を終了する場合(ステップN4でYes)、第1のプルーニング処理が行われたニューラルネットワークに対して第2のプルーニング処理が行われる(ステップN5)。削減率が設定され、重みパラメータ単位のプルーニングが行われる。なお、本例では、出力が残差コネクションで結合される層を含む全ての層がプルーニングの対象とされる。
第2のプルーニング処理後に再学習が行われ(ステップN6)、その後、第2のプルーニング処理を終了するか否かの判定が行われる(ステップN7)。例えば、第2のプルーニング処理後のニューラルネットワークの処理精度が予め設定した閾値以下となった場合に、第2のプルーニング処理を終了すると判定する。第2のプルーニング処理を終了しない場合(ステップN7でNo)、ステップN5に戻ってステップN5以降の処理が繰り返される。第2のプルーニング処理を終了する場合(ステップN7でYes)、図9に示す処理が終了する。図9に示す処理により得られたニューラルネットワークは、例えば、エッジデバイス2に配信される。
なお、本変形例では、第1のプルーニング処理の後に第2のプルーニング処理が行われる構成としたが、第2のプルーニング処理の後に第1のプルーニング処理が行われる構成としてもよい。
<4.留意事項等>
本明細書中に開示されている種々の技術的特徴は、上記実施形態のほか、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。また、本明細書中に示される複数の実施形態及び変形例は可能な範囲で適宜組み合わせて実施されてよい。
本明細書中に開示されている種々の技術的特徴は、上記実施形態のほか、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。また、本明細書中に示される複数の実施形態及び変形例は可能な範囲で適宜組み合わせて実施されてよい。
1・・・機械学習装置
11・・・処理部
30・・・ニューラルネットワーク
33・・・層、畳み込み層
34・・・残差コネクション
11・・・処理部
30・・・ニューラルネットワーク
33・・・層、畳み込み層
34・・・残差コネクション
Claims (10)
- ニューラルネットワークに対してプルーニングを行う処理部を備え、
前記プルーニングには、
第1のプルーニング処理と、
第1のプルーニング処理とは異なる第2のプルーニング処理と、
が含まれる、機械学習装置。 - 第1のプルーニング処理と第2のプルーニング処理とは、前記プルーニングを行う、前記ニューラルネットワークの構成要素の単位が異なる、請求項1に記載の機械学習装置。
- 第1のプルーニング処理は、畳み込み層のチャネル単位で前記プルーニングを行い、
第2のプルーニング処理は、重みパラメータ単位で前記プルーニングを行う、請求項1又は2に記載の機械学習装置。 - 前記処理部は、前記ニューラルネットワークを構成する複数の層の中から第1のプルーニング処理の対象となる層を特定し、当該特定した層を対象として第1のプルーニング処理を行う、請求項1から3のいずれか1項に記載の機械学習装置。
- 前記処理部は、前記複数の層のうち、前記特定した層と異なる層を対象として第2のプルーニング処理を行う、請求項4に記載の機械学習装置。
- 前記処理部は、前記特定した層をさらに対象として第2のプルーニング処理を行う、請求項5に記載の機械学習装置。
- 前記ニューラルネットワークは、残差コネクションを含む、請求項1から6のいずれか1項に記載の機械学習装置。
- 前記ニューラルネットワークは、残差コネクションを含み、
前記処理部は、前記ニューラルネットワークを構成する複数の層のうち、出力が前記残差コネクションで結合される層の少なくとも一部を第1のプルーニング処理の対象外とする、請求項3に記載の機械学習装置。 - 前記処理部は、前記プルーニング後のニューラルネットワークの学習を行う、請求項1から8のいずれか1項に記載の機械学習装置。
- ニューラルネットワークに対してプルーニングを行う方法であって、
前記プルーニングには、
第1のプルーニング処理と、
第1のプルーニング処理とは異なる第2のプルーニング処理と、
が含まれる、プルーニング方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021189795A JP2023076839A (ja) | 2021-11-24 | 2021-11-24 | 機械学習装置およびプルーニング方法 |
US17/993,623 US20230162037A1 (en) | 2021-11-24 | 2022-11-23 | Machine learning method and pruning method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021189795A JP2023076839A (ja) | 2021-11-24 | 2021-11-24 | 機械学習装置およびプルーニング方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023076839A true JP2023076839A (ja) | 2023-06-05 |
Family
ID=86610374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021189795A Pending JP2023076839A (ja) | 2021-11-24 | 2021-11-24 | 機械学習装置およびプルーニング方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023076839A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116863419A (zh) * | 2023-09-04 | 2023-10-10 | 湖北省长投智慧停车有限公司 | 一种目标检测模型轻量化的方法、装置、电子设备及介质 |
-
2021
- 2021-11-24 JP JP2021189795A patent/JP2023076839A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116863419A (zh) * | 2023-09-04 | 2023-10-10 | 湖北省长投智慧停车有限公司 | 一种目标检测模型轻量化的方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832839B (zh) | 执行卷积神经网络中的运算的方法和装置 | |
US11847569B2 (en) | Training and application method of a multi-layer neural network model, apparatus and storage medium | |
KR101878579B1 (ko) | 계층형 뉴럴 네트워크 장치, 판별기 학습 방법 및 판별 방법 | |
US20200364573A1 (en) | Accelerating neural networks with one shot skip layer pruning | |
CN109754359B (zh) | 一种应用于卷积神经网络的池化处理的方法及系统 | |
JP6805984B2 (ja) | 畳み込みニューラルネットワーク | |
US12050976B2 (en) | Convolution operations utilizing nonzero padding data copied from input channel data | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
CN110232436A (zh) | 卷积神经网络的修剪方法、装置及存储介质 | |
CN109919312B (zh) | 卷积神经网络的运算方法、装置及dpu | |
CN109145107B (zh) | 基于卷积神经网络的主题提取方法、装置、介质和设备 | |
CN113868187A (zh) | 处理神经网络的方法和电子装置 | |
JP2023076839A (ja) | 機械学習装置およびプルーニング方法 | |
CN112001491A (zh) | 针对处理器确定神经网络架构的搜索方法和装置 | |
US11461656B2 (en) | Genetic programming for partial layers of a deep learning model | |
CN110288020B (zh) | 基于声波传播方程的双路耦合深度学习的目标分类方法 | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
JP7360595B2 (ja) | 情報処理装置 | |
JP2024010496A (ja) | 機械学習装置およびプルーニング方法 | |
CN113821471A (zh) | 神经网络的处理方法和电子装置 | |
US20230162037A1 (en) | Machine learning method and pruning method | |
CN111767980B (zh) | 模型优化方法、装置及设备 | |
WO2022191730A1 (en) | Accelerated execution of convolution operation by convolutional neural network | |
US20200250536A1 (en) | Gpu-based artificial intelligence system using channel-level architecture search for deep neural network | |
CN114902240A (zh) | 神经网络通道数搜索方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20241015 |