IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 本田技研工業株式会社の特許一覧 ▶ 国立大学法人大阪大学の特許一覧

特許7427200ノード枝刈り装置、ノード枝刈り方法、およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-26
(45)【発行日】2024-02-05
(54)【発明の名称】ノード枝刈り装置、ノード枝刈り方法、およびプログラム
(51)【国際特許分類】
   G06N 3/082 20230101AFI20240129BHJP
   G06N 3/0499 20230101ALI20240129BHJP
【FI】
G06N3/082
G06N3/0499
【請求項の数】 6
(21)【出願番号】P 2020183848
(22)【出願日】2020-11-02
(65)【公開番号】P2022073696
(43)【公開日】2022-05-17
【審査請求日】2022-10-07
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(73)【特許権者】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】中臺 一博
(72)【発明者】
【氏名】福本 陽典
(72)【発明者】
【氏名】武田 龍
【審査官】北川 純次
(56)【参考文献】
【文献】特開2019-212206(JP,A)
【文献】米国特許出願公開第2020/0134459(US,A1)
【文献】米国特許出願公開第2019/0378017(US,A1)
【文献】TAKEDA, Ryu et al.,Node pruning based on Entropy of Weights and Node Activity for Small-footprint Acoustic Model based on Deep Neural Networks,INTERSPEECH 2017 [online],2017年,pp. 1636-1640,[検索日 2023.09.25], インターネット:<URL:https://www.jp.honda-ri.com/api/upload/document/entry/20180316/Takeda_2017_1340_8900.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
複数の層が連続して接続されているニューラルネットワークに対して、
ノードの重要度を表すスコア関数に基づいて刈るノードを選択するノード活性化部と、
前記ノード活性化部により前記刈るノードとして選択された前の層の出力に含まれるノードに繋がる、次の層の入力に含まれるノードが刈り取られるようにペアリングする層間ペアリング部と、
層の入力と出力との間に枝刈りを行わないバイパス接続を設けるバイパス設定部と、
前記ノード活性化部により前記刈るノードとして選択されたノードと、前記層間ペアリング部によりペアリングされた前記次の層の入力に含まれるノードとに対して、各層の枝刈り率同一となるようにノードの枝刈りを行う枝刈り実行部と、
を備えるノード枝刈り装置。
【請求項2】
前記スコア関数は、
ードエントロピーq に基づく第1のタイプのスコア関数
波数ベースのノードアクティビティq に基づく第2のタイプのスコア関数または
散ベースのノードアクティビティq に基づく第3のタイプのスコア関数である、
請求項1に記載のノード枝刈り装置。
【請求項3】
前記ノードエントロピーqは、下式で定義され、
【数1】
上式において、Dはデータセットであり、NとNは、それぞれ閾値より低い値と高い値を持つシグモイド出力値の数であり、N+1=N+Nはデータセットのサンプル数に等しく、
前記周波数ベースのノードアクティビティqは次式で定義され、
【数2】
前記分散ベースのノードアクティビティqは次式で定義され、
【数3】
上式において、xはt番目のサンプルの活性化関数ReLU出力値であり、xはデータセット内の全サンプルのxの平均値を示す、
請求項2に記載のノード枝刈り装置。
【請求項4】
活性化関数は、ReLUであり、
閾値は、0に近いεである、
請求項3に記載のノード枝刈り装置。
【請求項5】
複数の層が連続して接続されているニューラルネットワークに対して、ノードの枝刈りを行うノード枝刈り方法であって、
ノード活性化部が、ノードの重要度を表すスコア関数に基づいて刈るノードを選択し、 層間ペアリング部が、前記ノード活性化部により前記刈るノードとして選択された前の層の出力に含まれるノードに繋がる、次の層の入力に含まれるノードが刈り取られるようにペアリングし
バイパス設定部が、層の入力と出力との間に枝刈りを行わないバイパス接続を設け
枝刈り実行部が、前記ノード活性化部により前記刈るノードとして選択されたノードと、前記層間ペアリング部によりペアリングされた前記次の層の入力に含まれるノードとに対して、各層の枝刈り率同一となるようにノードの枝刈りを行う、
ノード枝刈り方法。
【請求項6】
複数の層が連続して接続されているニューラルネットワークに対して、ノードの枝刈りを行うノード枝刈り装置のコンピュータに、
ノードの重要度を表すスコア関数に基づいて刈るノードを選択させ、
前記刈るノードとして選択された前の層の出力に含まれるノードに繋がる、次の層の入力に含まれるノードが刈り取られるようにペアリングさせ
層の入力と出力との間に枝刈りを行わないバイパス接続を設けさせ
前記刈るノードとして選択されたノードと、ペアリングされた前記次の層の入力に含まれるノードとに対して、各層の枝刈り率同一となるようにノードの枝刈りを行わせる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ノード枝刈り装置、ノード枝刈り方法、およびプログラムに関する。
【背景技術】
【0002】
近年、色々な分野でディープラーニング等の機械学習が用いられている。このようなディープラーニングでは、モデルが用いられる。ディープラーニングのモデルは、例えば大規模なラベル付けされたデータとニューラルネットワークの構造を利用して学習を行って作成される。そして、このモデルの軽量化が、重要になってきている。モデルの軽量化の手法としては、枝刈り(Pruning)、因数分解、知識蒸留等が知られている。
【0003】
モデルの軽量化手法は、DNNや畳み込みニューラルネットワーク(CNN)のような単純および/または一様な完全接続型ニューラルネットワークに適用することができる。
例えば、音声認識に用いられるDNN(Deep Neural Network)の音響モデルに対して、ノード刈り込みを行うことが提案されている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【文献】Ryu Takeda, Kazuhiro Nakadai, Kazunori Komatani,”Node pruning based on Entropy of Weights and Node Activity for Small-footprint Acoustic Model based on Deep Neural Networks’, INTERSPEECH 2017,2017,p1636-1640
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のモデル軽量化手法はDNNやCNNなどの単純なニューラルネットワークを想定しているのに対し、最近のニューラルネットワークはバイパス接続などのより一般的なネットワークトポロジーを持つ傾向がある。さらに、近年のモデルでは、活性化関数としてReLUのような非線形関数が一般的に用いられているが、従来の手法では、シグモイド関数の使用を前提としている。
【0006】
本発明は、上記の問題点に鑑みてなされたものであって、不均一で複雑なネットワークを扱え、モデルを軽量化できるノード枝刈り装置、ノード枝刈り方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
(1)上記目的を達成するため、本発明の一態様に係るノード枝刈り装置は、複数の層が連続して接続されているネットワークモデルに対して、ノードの重要度を表すスコア関数に基づいて刈るノードを選択するノード活性化部と、前の層の出力で刈られたノードに繋がる入力を刈る層間ペアリング部と、層の入力と出力との間にバイパス接続を設け、前記バイパス接続以外のノードを刈るバイパス設定部と、各層の枝刈り率を同一にしてノードの枝刈りを行う枝刈り実行部と、を備える。
【0008】
(2)また、本発明の一態様に係るノード枝刈り装置において、第1のタイプのノードは、ノードエントロピーqであり、第2のタイプのノードは、周波数ベースのノードアクティビティqであり、第3のタイプのノードは、分散ベースのノードアクティビティqであるようにしてもよい。
【0009】
(3)また、本発明の一態様に係るノード枝刈り装置において、前記ノードエントロピーqは、下式で定義され、
【数1】
上式において、Dはデータセットであり、NとNは、それぞれ閾値より低い値と高い値を持つシグモイド出力値の数であり、N+1=N+Nはデータセットのサンプル数に等しく、前記周波数ベースのノードアクティビティqは次式で定義され、
【数2】
前記分散ベースのノードアクティビティqは次式で定義され、
【数3】
上式において、xはt番目のサンプルの活性化関数ReLU出力値であり、xはデータセット内の全サンプルのxの平均値を示す、ようにしてもよい。
【0010】
(4)また、本発明の一態様に係るノード枝刈り装置において、活性化関数は、ReLUであり、閾値は、0に近いεであるようにしてもよい。
【0011】
(5)上記目的を達成するため、本発明の一態様に係るノード枝刈り方法は、複数の層が連続して接続されているネットワークモデルに対して、ノードの枝刈りを行うノード枝刈り方法であって、ノード活性化部が、ノードの重要度を表すスコア関数に基づいて刈るノードを選択し、層間ペアリング部が、前の層の出力で刈られたノードに繋がる入力を刈り、バイパス設定部が、層の入力と出力との間にバイパス接続を設け、前記バイパス接続以外のノードを刈り、枝刈り実行部が、各層の枝刈り率を同一にしてノードの枝刈りを行う。
【0012】
(6)上記目的を達成するため、本発明の一態様に係るプログラムは、複数の層が連続して接続されているネットワークモデルに対して、ノードの枝刈りを行うノード枝刈り装置のコンピュータに、ノードの重要度を表すスコア関数に基づいて刈るノードを選択させ、前の層の出力で刈られたノードに繋がる入力を刈らせ、層の入力と出力との間にバイパス接続を設けさせ、前記バイパス接続以外のノードを刈らせ、各層の枝刈り率を同一にしてノードの枝刈りを行わせる。
【発明の効果】
【0013】
(1)~(6)によれば、不均一で複雑なネットワークを扱え、モデルを軽量化できる。また、(1)~(6)によれば、計算量を減らすことができる。
【図面の簡単な説明】
【0014】
図1】音響モデルのニューラルネットワーク構造を示す図である。
図2】Kaldiの代表的なTDNN-F層の構造を示す図である。
図3】入力と出力との関係を説明するための図である。
図4】バイパスの役割を説明するための図である。
図5】層内ペアリング、層間ペアリングおよびバイパスを示す図である。
図6】第1のケースであり、バイパスを切断しない例を示す図である。
図7】第2のケースであり、上位層においてバイパスを切断する例を示す図である。
図8】第3のケースであり、下位層においてバイパスを切断する例を示す図である。
図9】第4のケースであり、上位層と下位層の両方においてバイパスを切断する例を示す図である。
図10】枝刈り率を説明するための図である。
図11】各層に同じ枝刈り率の場合を説明するための図である。
図12】ネットワークベースの枝刈り率が30%の構成例を示す図である。
図13】層ベースの枝刈り率が30%の構成例を示す図である。
図14】第1実施形態に係るノード枝刈り装置の構成例を示すブロック図である。
図15】第1実施形態に係る枝刈り処理手順のフローチャートである。
図16】第2実施形態に係る音声認識システムの構成例を示すブロック図である。
図17】評価(1)におけるJNASを用いた評価結果を示す図である。
図18】評価(1)におけるCSJを用いた評価結果を示す図である。
図19】JNASを用いて枝刈り率を50%とした場合の評価(2)の評価結果を示す図である。
図20】CSJを用いて枝刈り率を50%とした場合の評価(2)の評価結果を示す図である。
図21】JNASを用いた評価(3)の評価結果を示す図である。
図22】CSJを用いた評価(3)の評価結果を示す図である。
図23】JNASを用いた評価(4)の評価結果を示す図である。
図24】CSJを用いた評価(4)の評価結果を示す図である。
図25】比較例のネットワークベースの枝刈り率構成の場合の結果を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について図面を参照しながら説明する。
【0016】
<概要>
実施形態では、モデルを軽量化するために、ノードエントロピーに基づくノード枝刈り法を拡張し、非一様ニューラルネットワークを扱うための3つの基準(層間ペアリング、バイパス接続枝刈りなし、層ベースの枝刈り率)の構成を備えるようにした。
【0017】
<Kaldiのためのネットワーク構造>
ここで、実施形態で用いた音響モデルであるKaldi音声認識ツールキット(http://kaldi‐asr.org/doc/index.html)のネットワーク構造について説明する。
Kaldiを使った日本語ASR(音声認識)モデルの基本レシピは、例えば日本語話言葉コーパスCSJ(Corpus of Spontaneous Japanese)を用いたものである。
【0018】
実施形態では、以下のように性能向上のために修正と更新を行った。
I.liblispeech recipeから転送されたnnet3-chainモデルをサポートするために機能を拡張した。
II.40次元のMSLS(Mel-Scale Log Spectrum)特徴量からなる220次元の入力ベクトルを3フレーム分、100次元のiVectorを使用した。なお、オリジナルのCSJレシピではMSLSの代わりにMFCCを使用した。
III.CSJレシピで使用されているSRILM(SRI Language Modeling、参考文献1)を使用する代わりに、言語モデルの学習にpocolm(https://github.com/danpovey/pocolm)を言語モデルの訓練に利用した。
【0019】
参考文献1;A. Stolcke, J. Zheng, W. Wang, and V. Abrash, “Srilm at sixteen:
Update and outlook,” in Proc. IEEE Automatic Speech Recognition and Understanding Workshop. IEEE SPS, 2011.
【0020】
図1は、音響モデルのニューラルネットワーク構造を示す図である。図1に示す例では、全部で19層ある例を説明するが、これに限らない。
入力ベクトル501は、時間枠ごとに40次元のMSLS特徴量からなる220次元の入力ベクトルを3フレーム分と100次元のiVectorである。
【0021】
第1層L1は、TDNN(Time delay neural network)である。第1層L1は、時間枠ごとに220次元の入力ベクトル501を受け取り、1,536次元のベクトルを出力する。また、第1層L1は、Afine(全結合サブ層)5021、ReLU(活性関数サブ層)5022、Batch norm(normalization)(バッチ正規化サブ層)5023、およびDropout(ドロップアウトサブ層)5024の順に接続されている。
【0022】
第2層L2からの第17層L17までは、TDNN-Fで構成されており、それぞれ160次元のボトルネック層(5031~5035)とバイパス接続5037が存在する。また、第2層L2からの第17層L17は、Liner w/o(without) Bias(線形バイアスサブ層)5031、Afine5032、ReLU5033、Batch norm5034、Dropout5035、および加算層5036の順に接続されている。加算層5036で、ボトルネック層(5031~5035)とバイパス接続5037が加算される。
【0023】
第18層は、プリファイナル層509であり、256次元のボトルネック層のみで、バイパス接続が存在しない。また、プリファイナル層509は、Liner(線形バイアス層)5091、Afine5092、ReLU5093、およびBatch norm5094の順に接続されている。
【0024】
第19層は、出力層510であり、フルリニア接続のボトルネック層があり、5128次元のベクトルを出力する。出力層510は、Liner(線形バイアス層)5101、Batch norm5102、およびAfine5103の順に接続されている。
【0025】
出力511は、5128次元のベクトルである。
【0026】
図1のように、バッチ正規化は全層で行い、ドロップアウトは最後の2層を除く全層で行う。
また、TDNNの場合は、第1層L1から第3層L3まで連続した3フレーム、つまり(-1,0,1)を使用する。
第4層L4では、現在のフレームのみ、すなわち(0)を使用する。
第5層L5から第17層L17では、3フレーム毎、つまり(-3,0,3)のフレームが使用され、より長いコンテクストに対応し、処理の高速化が図られている。
【0027】
また、基本的には、出力層510以外の非線形活性化関数には、ReLUが用いられる。また、上述したように、各層は、因数分解のための線形・アフィンサブ層、活性化関数ReLUのための非線形サブ層、バッチ正規化サブ層、ドロップアウトサブ層などからなる5~8層のサブ層を含んでいる。
なお、図1では、ネットワークがDNNの例を示したが、RNN等の他のネットワークであってもよい。また、用いる活性化関数は、ReLUに限らず他の活性化関数であってもよい。
【0028】
<ノード枝刈り手法>
次に、実施形態のノード枝刈り手法について、図1を参照しつつ説明する。
なお、実施形態のノード枝刈り手法は、図1に示したように、ノードエントロピーに基づくノード活性化、層間ペアリング、バイパス接続なしの枝刈り、層ベースの枝刈り率構成の組み合わせである。
【0029】
まず、枝刈り基準に用いるノード活性度ベースの基準を定義する。
実施形態では、ノードを3つのタイプに定義する。
第1のタイプのノードは、ノードエントロピーである。l番目の層xl,iにおけるi番目のノードのノードエントロピーqは、次式(1)で定義される。
【0030】
【数4】
【0031】
式(1)において、Dはデータセットであり、NとNは、それぞれ閾値より低い値と高い値を持つシグモイド出力値の数である。なお、N0+1=N+Nは、データセットのサンプル数に等しい。
【0032】
ノードエントロピーは、出力重みノルムよりも優れた働きをするが、これは各層のノード活動の異なる分散を扱うことができるからである。
従来の手法では、対象ネットワークはシグモイドベースの活性化関数を持つ従来のDNNであった。このような従来の手法では、0から1までのシグモイド関数を使用しているので、NにカウントするかNにカウントするかを判断するための閾値を0.5としていた。
【0033】
しかしながら、図1に示したKaldiでは、0から無限大までの活性化関数ReLUが使用されているため、このような閾値を決めることは困難である。このため、実施形態では、活性化関数ReLUの出力値がゼロか非ゼロかは少なくとも重要であるため、0に近いεを閾値として使用する。
【0034】
他の2つの第2と第3のタイプのノードは、次式(2)の周波数ベースのノードアクティビティqと、次式(3)の分散ベースのノードアクティビティqで定義される。
【0035】
【数5】
【0036】
【数6】
【0037】
式(3)において、xはt番目のサンプルの活性化関数ReLU出力値であり、xはデータセット内の全サンプルのxの平均値を示す。
【0038】
次に、各層のネットワークトポロジーについて、バイパス接続や層内の3つのブロック間の関係を説明する。
図1に示したように、ニューラルネットワークは、層内でも一様ではなく、複数のブロックで構成されている。このようなネットワークを枝刈りするには、各ブロックの特性やブロック間の関係を慎重に考慮する必要がある。
【0039】
図2は、Kaldiの代表的なTDNN-F層の構造を示す図である。図3は、入力と出力との関係を説明するための図である。なお、図2図3は、層構造の一部を示している。図2図3において、TDNN-F層は、入力(Input)551、出力(Output)552、およびバイパス(Bypass)553の3つの部分を有している。さらに、図3のように、入力551は入力541と出力542とバイパス543を有し、出力552は入力561と出力562とバイパス563を有している。また、矢印571は第1の遷移例であり、矢印572は第2の遷移例である。
【0040】
簡素化するために、入力551、出力552、およびバイパス553の3つの部分に分解して枝刈りを説明する。なお、枝刈りは、活性化関数ReLUサブレイヤ後の「ノードエントロピー」に基づいて行う。
【0041】
まず、出力(Output)552について説明する。
この出力の特徴は、ReLUサブ層を含むことである。これに対応するために、枝刈り部13(図14)は、活性化関数ReLU用の式(1)に基づいてノードアクティビティを推定する。枝刈り部13は、推定されたノードアクティビティと後述する枝刈り率に基づいて、出力(Output)552から刈り取るべきノードを選択する。
【0042】
入力(Input)551に関しては、図2の因数分解部分だけに注目すると、出力(Output)552とは独立してノード枝刈りを行うことができるように見える。しかしながら、出力(Output)552は、次の層の入力(Input)551と直結している。図3に示した構造のように、枝刈りでは、入力と出力との関係を考慮する必要がある。
このため、図3のように入力が互いに直結しているため、実施形態では、前の層の出力(Output)552で枝刈りされたノードと直結しているノードを、現在の層の入力(Input)551から刈るべきであると判断した。実施形態では、これを「層間ペアリング」と呼ぶ。実際には、同じ層の入力(Input)551と出力(Output)552とは、バイパス(Bypass)553を介して接続されている。
【0043】
また、同じ層上の入力(Input)551のノードと出力(Output)552の対応するノードが一緒に刈られる可能性がある。実施形態では、これを「層内ペアリング」と呼ぶ。
【0044】
バイパス(Bypass)553については、ResNet(参考文献2)で議論されているように、勾配の消失や爆発を避けるのに役立つ。このため、実施形態では、入力(Input)551や出力(Output)552での枝刈り結果に関わらず、バイパス(Bypass)553を維持するようにした。
【0045】
参考文献2;K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in Proc. of 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016.
【0046】
図4は、バイパスの役割を説明するための図である。バイパスがない構造g1では、情報が深層に伝わりにくくなる(=勾配消失)。これに対して、バイパスがある構造g2では、ショートカット接続によって、情報が深層に伝わりにくくなる問題を緩和できる。従って、実施形態では、ショートカット接続と同じ考えに基づくバイパスは残すべきであると判断した。
【0047】
上述した手法をまとめると、図5のようになる。図5は、層内ペアリング581、層間ペアリング582、およびバイパス583を示す図である。
【0048】
なお、ノードの枝刈り後、入力(Input)551、出力(Output)552、バイパス(Bypass)553間の層間ノード接続または層内ノード接続のいずれか一方の端のノードのみが、刈り取られることが起こることがある。
このため、実施形態では、下層側のノードが枝刈りされた場合にゼロ出力ノードをパディングし、上層側のノードが枝刈りされた場合に接続と一緒にもう一方のノードも刈り取るようにした。
【0049】
ここで、さらに層を接続する際のオープンエンドの問題について説明する。
刈り込み後、図6図9のように、入力、出力、バイパス間のレイヤ間層接続または層内ノード接続のいずれかの端のノードのみが刈り込まれることがある。図6は、第1のケースであり、バイパスを切断しない例を示す図である。図7は、第2のケースであり、上位層においてバイパスを切断する例を示す図である。図8は、第3のケースであり、下位層においてバイパスを切断する例を示す図である。図9は、第4のケースであり、上位層と下位層の両方においてバイパスを切断する例を示す図である。
【0050】
図6図9において、符号601は出力層を示し、符号602と符号604とはバイパスを示し、符号603は入力層を示し、ノード間の実線は切断されていない(枝刈りされていない)枝である。図7において、ノード間の鎖線607は切断されている(枝刈りされている)枝である。また、黒丸612は常に0の値を出力するノードを示し、バツ印613は終了したノードを示している。
【0051】
本実施形態では、このオープンエンド接続に対処するために、図7図9の黒丸612のノードのように、入力が提供されない場合には、ゼロ出力ノードをペアリングし、ノードを終了させる。そして、本実施形態では、図8図9のような出力が不要な場合は、上述したように、入力層や出力層での枝刈り結果に関わらず、バイパスを維持するようにした。
【0052】
次に、枝刈り率について説明する。なお、実施形態では、枝刈り率を、刈り取ったノード数と出力の総ノード数の比として定義した。
実施形態では、層毎に枝刈り率を変えてもよい。
図10は、枝刈り率を説明するための図である。なお、図10において、上側のノードが入力層591であり、下側のノードが出力層594である。
【0053】
枝刈りを行う場合、以下I~IIIの傾向がある。
I.いくつかの中間層592、593を初期化すると性能が維持される。
II.入力層591や出力層594を対応する層に置き換えると性能が低下する。
III.上位層は貢献度が低くなる。
I~IIIの傾向より、出力層594以外の上位層は、もっと枝刈りされていてもよく、すなわち、実施形態では、用途や目的、ネットワーク構成等に応じて、例えば強化学習の結果、層毎に枝刈り率を変えてもよい。
【0054】
図11は、各層に同じ枝刈り率の場合を説明するための図である。
ネットワークでは、以下のIV~VIのような関係が知られている。
IV.出力層に近い高次の層596は、低次の層よりも出力層に近いため、最終的な出力に貢献するべきである。
V.異なる層のノード間の重要度の違いを公平に評価することが難しいため、層間で一様な枝刈り率が適切である。
VI.高次の層596の重要度が低くなると、高次の層のノード数が高い枝刈り率では不十分になる可能性がある。
IV~VIの関係より、どの層にも同じ枝刈り率で良い場合がある。このため、実施形態では、用途や目的、ネットワーク構成等に応じて各層に同じ枝刈り率を用いてもよい。
【0055】
図12に示すように、実施形態では、ネットワーク全体に対して単一の枝刈り率を使用する設定を、「ネットワークベースの枝刈り率設定」と呼ぶ。また、図13のように、実施形態では、各層の枝刈り率を同じにする設定を、「層別枝刈り率設定」と呼ぶ。図12は、ネットワークベースの枝刈り率が30%の構成例を示す図である。図13は、層ベースの枝刈り率が30%の構成例を示す図である。
ネットワークベースでは、ネットワーク内の全ノードのうち活性度の低いノードの30%を刈り込み、層ベースでは層毎に30%を枝刈りする。図12nように、「ネットワークベースの枝刈り率設定」では、ネットワーク全体で枝刈りノードを決定する(701。また。図13のように、「層別枝刈り率設定」では、各層の枝刈り率を同じにする(702)。符号711は枝刈りを行わないノードを示し、符号712は枝刈りを行うノードを示す。
【0056】
ここで、枝刈りするノードの選択方法について説明する。
ノード枝刈り装置1(図1)は、ノードエントロピーベースでノードの重要度を表すスコア関数を設定し、スコア関数(参考文献3)に基づいて、枝刈りを行うノードを選択する。なお、実施形態において、スコア関数は、ノードに応じて、ノードエントロピーq、周波数ベースのノードアクティビティq、分散ベースのノードアクティビティqを用いる。
さらに、上述したように、ノード枝刈り装置1は、バイパス接続に対しては枝刈りを行わない。また、ノード枝刈り装置1は、前の層の出力で枝刈りされたノードと直結しているノードを、現在の層の入力からも刈る。
【0057】
参考文献3;Ryu Takeda, Kazuhiro Nakadai, Kazunori Komatani、“Node pruning based on Entropy of Weights and Node Activity for Small-footprint Acoustic Model based on Deep Neural Networks”、INTERSPEECH 2017、ISCA、2017、p1636-1640
【0058】
<第1実施形態>
図14は、本実施形態に係るノード枝刈り装置1の構成例を示すブロック図である。図14のように、ノード枝刈り装置1は、取得部11、ネットワークモデル記憶部12、枝刈り部13、および出力部14を備える。
また、枝刈り部13は、ノード活性化部131、層間ペアリング部132、バイパス設定部133、枝刈り実行部134、および層ベースの枝刈り率構成部135を備える。
【0059】
取得部11は、入力データを取得する。
【0060】
ネットワークモデル記憶部12は、例えば音声認識で用いるDNNやRNN等のネットワークモデルを記憶する。
【0061】
枝刈り部13は、例えば音声認識で用いるDNNやRNN等のネットワークモデルに対して枝刈り処理を実行する。枝刈り部13は、活性化関数ReLU用の式(1)に基づいてノードアクティビティを推定する。枝刈り部13は、推定されたノードアクティビティと枝刈り率に基づいて、出力から刈り取るべきノードを選択する。
【0062】
ノード活性化部131は、式(1)に基づいてノードアクティビティを推定する。
【0063】
層間ペアリング部132は、前の層の出力で枝刈りされたノードと直結しているノードを、現在の層の入力から刈り取られるようにペアリングする。
【0064】
バイパス設定部133は、バイパス接続を行う層の選択と、バイパス接続の設定を行う。
【0065】
枝刈り実行部134は、ノードアクティビティと枝刈り率に基づいてノードの枝刈りを行う。
【0066】
層ベースの枝刈り率構成部135は、各層に用いる枝刈り率を設定する。
【0067】
出力部14は、枝刈りされたモデルを用いて認識された結果を出力する。
【0068】
次に、処理手順例を説明する。
図15は、本実施形態に係る枝刈りノード刈り装置によるノード枝刈り処理手順のフローチャートである。
【0069】
(ステップS1)ノード活性化部131は、用いる多層ネットワークを選択する。
【0070】
(ステップS2)ノード活性化部131は、式(1)に基づいてノードアクティビティを推定する。
【0071】
(ステップS3)層間ペアリング部132は、前の層の出力で枝刈りされたノードと直結しているノードを、現在の層の入力から刈り取られるようにペアリングする。
【0072】
(ステップS4)バイパス設定部133は、バイパス接続を行う層の選択と、バイパス接続の設定を行う。
【0073】
(ステップS5)枝刈り実行部134は、ノードアクティビティと枝刈り率に基づいてノードの枝刈りを行う。
【0074】
(ステップS6)出力部136は、ノードの枝刈り処理を行ったモデルを、外部装置に出力する。
【0075】
なお、上述した処理手順は一例であり、これに限らない。例えば、使用用途に応じて、入力データを入力し、正答率や処理時間に基づいて枝刈り率を再設定するようにしてもよい。
【0076】
以上のように、本実施形態では、ノードエントロピーに基づくノードの枝刈り、「層間ペアリング」、「枝刈り無しのバイパス」、「層ベースの枝刈り率構成」、および活性化関数に対する0に近いεの閾値を用いるようにした。
また、本実施形態では、層ごとに一定の枝刈り率採用による性能低下防止と、リンク性質を考慮した枝刈り(ショートカットは対象外とするなど)と、頻度ベースのノード貢献度規範導入による枝刈りの高性能化と、層間ペアリング枝刈りによる性能低下防止を行った。
【0077】
これにより、本実施形態によれば、深層ネットワークの次元を削減できるので、後述する評価結果のように、実行時間を短縮することができる。
また、本実施形態によれば、不均一で複雑なネットワークを扱うことができ、非シグモイド活性化関数を扱うことができる。
【0078】
<第2実施形態>
本実施形態では、上述した音響モデルを音声認識に適用する例を説明する。
図16は、本実施形態に係る音声認識システム2の構成例を示すブロック図である。図16のように、音声認識システム2は、音声認識装置10、および収音部20を備える。
音声認識装置10は、取得部101、音源定位部102、音源分離部103、音響特徴量抽出部104、音響モデル部105、音源同定部106、および出力部107を備える。
音響モデル部105は、ノード枝刈り装置1を備える。
【0079】
収音部20は、M(Mは2以上の整数)個のマイクロホンから構成されるマイクロホンアレイである。収音部20は、音源が発した音響信号を収音し、収音したMチャネルの音響信号を取得部101に出力する。なお、以下の説明において、M個のマイクロホンのうち1つを特定しない場合は、「マイクロホン」という。
【0080】
取得部101は、収音部20が出力するMチャネルのアナログの音響信号を取得し、取得したアナログの音響信号を短区間フーリエ変換によって周波数領域に変換する。なお、収音部20の複数のマイクロホンそれぞれが出力する複数の音響信号は、同じサンプリング周波数の信号を用いてサンプリングが行われる。取得部101は、デジタルに変換したMチャネルの音響信号を音源定位部102と音源分離部103に出力する。
【0081】
音源定位部102は、収音部20が出力するMチャネルの音響信号に基づいて各音源の方向を定める(音源定位)。音源定位部102は、音源方向を示す音源方向情報を音源分離部103に出力する。
【0082】
音源分離部103は、音源定位部102が出力する音源方向情報と、取得部101が出力するMチャネルの音響信号を取得する。音源分離部103は、Mチャネルの音響信号を音源方向情報が示す音源方向に基づいて、音源毎の成分を示す音響信号である音源別音響信号に分離する。音源分離部103は、音源別音響信号に分離する際、例えば、GHDSS(Geometric-constrained High-order Decorrelation-based Source Separation)法を用いる。音源分離部103は、分離した音響信号のスペクトルを音響特徴量抽出部104に出力する。
【0083】
音響特徴量抽出部104は、音源分離部103が出力する分離されたスペクトルから音声認識用の音響特徴量を音源毎に計算する。音響特徴量抽出部104は、例えば、静的メル尺度対数スペクトル(MSLS:Mel-Scale Log Spectrum)、デルタMSLS及び1個のデルタパワーを、所定時間(例えば、10ms)毎に算出することで音響特徴量を算出する。なお、MSLSは、音響認識の特徴量としてスペクトル特徴量を用い、MFCC(メル周波数ケプストラム係数;Mel Frequency Cepstrum Coefficient)を逆離散コサイン変換することによって得られる。音響特徴量抽出部104は、求めた音響特徴量を音源同定部106に出力する。
【0084】
音響モデル部105は、音源モデルを格納し、ノード枝刈り装置1を備える。音源モデルは、収音された音響信号を音源同定部106が同定するために用いるモデルである。音響モデル部105は、同定する音響信号の音響特徴量を音源モデルとして、音源名を示す情報に対応付けて音源毎に格納する。また、ノード枝刈り装置1は、音源モデルに対して、第1実施形態と同様にノードの枝刈り処理を行う。
【0085】
音源同定部106は、音響特徴量抽出部104が出力する音響特徴量を、音響モデル部105が格納する枝刈りされた音響モデルを参照して音源を同定する。音源同定部106は、同定した同定結果を出力部107に出力する。
【0086】
出力部107は、例えば画像表示部であり、音源同定部106が出力する同定結果を表示する。
【0087】
なお、図16の構成例は一例であり、これに限らない。例えば、音声認識装置10は、例えば音源分離部103と音響特徴量抽出部104との間に、発話区間検出部を備えていてもよい。
【0088】
本実施形態では、音声認識装置の音源モデルに対してノードの枝刈りをするためにノード枝刈り装置1を適用する例を説明したが、これに限られない。ノード枝刈り装置1は、他の学習モデルや認識モデルにも適用可能である。
【0089】
本実施形態によれば、深層ネットワークの次元を削減できるので、後述する評価結果のように、実行時間を短縮することができる。
【0090】
なお、上述した各実施形態では、Kaldiの音響モデルに適用する例を説明したが、これに限らない。不均一なネットワークによる他の音響モデル、不均一なネットワークによる他の学習モデル、他の不均一なネットワークにも実施形態を適用することは可能である。
【0091】
<評価結果>
次に、評価結果例を説明する。
評価は、音声認識に実施形態を適用し、単語誤り率(WER)を指標とした4つの評価と、復号速度の評価を行った。
【0092】
・評価(1)ノードエントロピーに基づくノードアクティビティの検証
評価(1)では、実施形態のノードエントロピーと、比較例(周波数ベース(frequency-based)、分散ベース、ランダム)の4つのノードアクティビティ定義を比較した。なお、評価では、枝刈り率を変更(0%、10%、30%、50%、60%、70%から選択)し、出力のみに枝刈りを行った。また、評価では、バイパスと入力の枝刈りを行わずに維持した。また、評価では、層ベースの枝刈り率構成を採用した。
【0093】
・評価(2)入出力間のノードペアリング基準の検証
評価(2)では、実施形態による「層間ペアリング」と、比較例の「層内ペアリング」と「独立した枝刈り」と「枝刈りなし」のペアリング基準を比較した。なお、「独立した枝刈り」とは、入力のノードがランダムに枝刈りされることを意味し、出力と独立している。また、「枝刈りなし」とは、ベストケースの性能を知るために、入力に対して枝刈りを行わないことを意味する。さらに、評価(2)では、評価(1)で得られた結果から、50%まではWERが同等に維持されていることがわかったため、層ベースの構成として枝刈り率を50%に固定した。
【0094】
・評価(3)バイパス接続を枝刈りするか否かの確認
評価(3)では、バイパス接続がある場合とない場合の2つのケースを比較した。評価条件は、層ベースの構成として、枝刈り率を0から70%に変更した。また、その他の条件については、ノードエントロピーと層間ペアリングを利用した。
【0095】
・評価(4)実施形態の層ベースの枝刈り率構成の検証
評価(4)では、実施形態の層ベースと、ネットワークベースの2つの構成を評価した。なお、評価条件は、枝刈り率を0から70%に変更し、ノードエントロピーと層間ペアリングを用いた。
【0096】
・評価(5)復号速度の評価
評価(5)では、枝刈りを行った場合のデコード時間と、比較例の枝刈りを行わなかった場合のデコード時間とWERを比較した。なお、評価条件は、枝刈り率を50%とした。
【0097】
ここで、評価に用いたデータセット等を説明する。
学習データセットとテストデータセットには、JNAS(Japanese Newspaper Article Sentences)とCSJの2つのコーパスを用いた。JNASは、CSJの約11倍の60時間分の音声データと、男性話者23名の50文と女性話者23名の50文からなるテストデータセットから構成されている。CSJは、学習用の660時間音声データと3つのテストデータセット(eval1-3)から構成されている。
【0098】
各テストデータセットには、約1,300回の発話が含まれている(合計3,949回、18,376秒)。
ノードアクティビティは、各実験で300回(19分)の発話を用いて上述した(1)-(3)式を用いて計算した。(1)式と(2)式では、εを0.001とした。評価では、ノード枝刈り後、ワンエポック再訓練を行った。評価は、同一条件で2回行い、平均したWERを算出し、3つのテストデータセットから得られたWERをCSJで平均化した。
【0099】
次に、評価結果を説明する。
まず、評価(1)の評価結果を説明する。
図17は、評価(1)におけるJNASを用いた評価結果を示す図である。図18は、評価(1)におけるCSJを用いた評価結果を示す図である。図17図18において、横軸は枝刈り率を示し、縦軸はWERを示している。また、折れ線g11とg21は、実施形態のノードエントロピーベースによる評価結果であり、折れ線g12とg22は比較例の周波数ベースによる評価結果であり、折れ線g13とg23は比較例の分散ベースによる評価結果であり、折れ線g14とg24は比較例のランダムによる評価結果である。
【0100】
図17のように、JNASでは、周波数ベースとノードエントロピーベースのノードアクティビティがランダムよりも優れており、ノードエントロピーが最も優れた性能を示している。
図18のように、CSJでは、比較例の3つの手法の間に有意な差はないが、ノードエントロピーが0%から60%の枝刈り率でランダムを上回ったため、枝刈り率に対して最も安定した性能を示した。
【0101】
図17図18より、全体として、実施形態によるノードエントロピーが最も優れた性能を示した。この結果は、シグモイドに閾値0.5を用いるのではなく、活性化関数ReLUの閾値としてεを用いることの妥当性を示している。
また、実施形態のノードエントロピーに基づく定義が、基本的に他の定義よりも優れている理由は、以下である。
1)分散ベースの手法は、ガウス分布を仮定しているが、ReLUサブレイヤの出力は非線形で非対称な分布である。
2)周波数ベースの手法((2)式)は、(1)式の右辺の第1項のみを考慮しており、第2項の考慮が欠けている。
【0102】
次に、評価(2)の評価結果を説明する。
図19は、JNASを用いて枝刈り率を50%とした場合の評価(2)の評価結果を示す図である。図20は、CSJを用いて枝刈り率を50%とした場合の評価(2)の評価結果を示す図である。なお、図19図20において、入力は、左から順に「枝刈りなし」、「独立した枝刈り」(Independent)、「層内ペアリング」(in-layer)、実施形態の「層間ペアリング」(inter-layer)である。「枝刈りなし」は、入力に対するプルーニングが行われないため、ベストケースの性能であるオラクル条件とみなすことができる。また、図19図20において、出力は上から下に順に「周波数」、「偏差値」、「エントロピー」である。
【0103】
図19のように、JNASでは、分散ベースのノードアクティビティを除いて、実施形態の層間ペアリングが最も優れた性能を示している。図20のように、CSJでは、すべてのケースで実施形態の層間ペアリングが最も優れた性能を示した。また、層間ペアリングを用いた場合のWERは、「枝刈りなし」を用いた場合のWERと同等であった。
これらの結果は、現在の層の出力と入力が直接接続され、同じ層の出力と入力が因数分解を介して接続されていることから、実施形態の層間ペアリングの有効性を示している。
【0104】
次に、評価(3)の評価結果を説明する。
図21は、JNASを用いた評価(3)の評価結果を示す図である。図22は、CSJを用いた評価(3)の評価結果を示す図である。図21図22において、横軸は枝刈り率であり、縦軸はWERである。また、折れ線g31とg41は実施形態のバイパス接続なしかつ枝刈りありの結果であり、折れ線g32とg42はバイパス接続なしかつ枝刈りなしの結果である。
【0105】
図21図22のように、JNASとCSJは同等の性能を示した。図22のように、CSJでは、対応するノードが入力と出力との間から枝刈りされた場合でもバイパス接続を維持する必要があることを示している。
これらの結果を考慮すると、バイパス接続は枝刈りしない方が良いことが分かり、ネットワーク内の他の部分と比較してバイパス接続が音声認識の性能に強く寄与していることが示唆される。
【0106】
次に、評価(4)の評価結果を説明する。
図23は、JNASを用いた評価(4)の評価結果を示す図である。図24は、CSJを用いた評価(4)の評価結果を示す図である。図23図24において、横軸は枝刈り率であり、縦軸はWERである。また、折れ線g51とg61は実施形態の層ベースの構成の結果であり、折れ線g52とg62はネットワークベースの構成の結果である。
【0107】
図23図24のように、JNASとCSJでは、刈り込み率が40%以下の場合、どちらの構成でも同等の性能を示したが、刈り込み率が50%を超えると実施形態の層ベースの構成の方が良い結果が得られた。
【0108】
このことを確認するために、各層の残りノード数を確認した。
図25は、比較例のネットワークベースの枝刈り率構成の場合の結果を示す図である。棒グラフの各棒は、左から右に0%、10%、20%、30%、40%、50%、60%、70%である。また、横軸は層数であり、縦軸は残りのノード数である。
【0109】
図25のように、上位層の枝刈り率が高くなってきており、枝刈り率が高くなってもノード数が少ないままである。このことは、高い枝刈り率では、上位層のノード数が少なくなりすぎていることを示唆している。これに対して、実施形態の層ベースの枝刈り率構成では、残りのノード数をレイヤ間で同じに維持し、高い枝刈り率でも性能が安定している。
【0110】
次に、評価(5)の評価結果を説明する。
なお、テストデータとしては、18,376秒の音声データを含むCSJテストデータセット(eval1~3)を用いた。また、評価では、Intel(登録商標) Xeon(登録商標) E5-2697A v4(2.6GHz)を1コア使用した。
比較例の枝刈りを行わなかった場合は、平均WERが8.49%であり、復号化時間は3,036秒であった。
これに対して、実施形態では、平均WERが8.57%、枝刈り率50%の場合の復号化時間が2,388秒だった。従って、実施形態によれば音声認識の精度を同等に保ちつつ、31%の速度向上を達成できている。
【0111】
上記の評価結果をまとめると、エントロピーベースのノードアクティビティ、層間パーリング、バイパスの枝刈りなし、層ベースの刈り込み率構成を組み合わせた実施形態の手法が最も優れた性能を示した。
また、評価(1)、(3)および(4)の2つの異なるサイズのコーパスJNASとCSJに対して50%の枝刈り率が適切であり、31%の速度向上を達成できた。このようにWERと復号化速度のバランスは、アプリケーションに応じて変化する。
さらに、実施形態の手法は、学習したモデルが圧縮されやすいJNASの小サイズのコーパスだけでなく、モデルが圧縮されにくいCSJの大サイズのコーパスに対しても有効であった。
【0112】
なお、本発明におけるノード枝刈り装置1の機能の全てまたは一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりノード枝刈り装置1の処理の全てまたは一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0113】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0114】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【0115】
1…ノード枝刈り装置、11…取得部、12…ネットワークモデル記憶部、13…枝刈り部、14…出力部、131…ノード活性化部、132…層間ペアリング部、133…バイパス設定部、134…枝刈り実行部、135…層ベースの枝刈り率構成部、2…音声認識システム、10…音声認識装置、20…収音部、101…取得部、102…音源定位部、103…音源分離部、104…音響特徴量抽出部、105…音響モデル部、106…音源同定部、107…出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25