特許第6979203号(P6979203)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 独立行政法人情報通信研究機構の特許一覧

<>
  • 特許6979203-学習方法 図000005
  • 特許6979203-学習方法 図000006
  • 特許6979203-学習方法 図000007
  • 特許6979203-学習方法 図000008
  • 特許6979203-学習方法 図000009
  • 特許6979203-学習方法 図000010
  • 特許6979203-学習方法 図000011
  • 特許6979203-学習方法 図000012
  • 特許6979203-学習方法 図000013
  • 特許6979203-学習方法 図000014
  • 特許6979203-学習方法 図000015
  • 特許6979203-学習方法 図000016
  • 特許6979203-学習方法 図000017
  • 特許6979203-学習方法 図000018
  • 特許6979203-学習方法 図000019
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6979203
(24)【登録日】2021年11月17日
(45)【発行日】2021年12月8日
(54)【発明の名称】学習方法
(51)【国際特許分類】
   G06N 3/08 20060101AFI20211125BHJP
【FI】
   G06N3/08 120
【請求項の数】6
【全頁数】28
(21)【出願番号】特願2017-236626(P2017-236626)
(22)【出願日】2017年12月11日
(65)【公開番号】特開2019-105899(P2019-105899A)
(43)【公開日】2019年6月27日
【審査請求日】2020年10月29日
(73)【特許権者】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】李 勝
(72)【発明者】
【氏名】ルー シュガン
(72)【発明者】
【氏名】高島 遼一
(72)【発明者】
【氏名】沈 鵬
(72)【発明者】
【氏名】河井 恒
【審査官】 多胡 滋
(56)【参考文献】
【文献】 Residual Networks Behave Like Ensembles of Relatively Shallow Networks,[online],arXiv,2016年10月27日,pp.1-9,[検索日 2021.10.13], インターネット <URL:https://arxiv.org/abs/1605.06431>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00
(57)【特許請求の範囲】
【請求項1】
複数層のネットワーク構造を有するモデルを学習する、コンピュータにより実行される学習方法であって、前記ネットワーク構造は積層された複数のブロックを含み、前記複数のブロックの各々は、入力された信号から特徴を抽出する特徴抽出コンポーネントと、当該特徴抽出コンポーネントをバイパスする経路とを含み、前記学習方法は、
訓練データセットおよび前記訓練データセットの一部からなる縮小訓練データセットを取得するステップと、
前記モデルを前記縮小訓練データセットにより学習することで、前記モデルを規定するネットワークパラメータを暫定的に最適化するステップと、
前記暫定的に最適化されたネットワークパラメータにより規定される暫定学習済みモデルを評価することで、前記ネットワーク構造に含まれるブロックのうち、相対的に重要性の高い第1のグループに属する1または複数のブロックを特定するステップと、
前記第1のグループに属するブロックを用いて簡素化モデルを構成するとともに、前記簡素化モデルを訓練データセットにより学習することで、前記簡素化モデルを規定するネットワークパラメータを最適化するステップと、
前記第1のグループに属さない1または複数のブロックを前記簡素化モデルに追加して前記簡素化モデルを拡張するとともに、当該拡張された簡素化モデルを訓練データセットにより学習することで、当該拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップと、
前記拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップを、前記第1のグループに属さないすべてのブロックの追加が完了するまで繰返すステップとを備える、学習方法。
【請求項2】
前記特定するステップは、相対的に大きな性能値の変化を示すブロックを前記第1のグループに属するブロックとして決定するステップをさらに含む、請求項1に記載の学習方法。
【請求項3】
前記特定するステップは、前記暫定学習済みモデルに含まれる各ブロックが示す性能値の変化について、変化の大きいものから全体数に対する予め定められた比率内にあるブロックを前記第1のグループに属するブロックとして決定するステップをさらに含む、請求項2に記載の学習方法。
【請求項4】
前記性能値は、平均フレーム対数尤度および交差エントロピーの少なくとも一方を含む、請求項2または3に記載の学習方法。
【請求項5】
前記拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップは、ネットワーク構造の出力側に位置するブロックを優先して追加するステップを含む、請求項1〜4のいずれか1項に記載の学習方法。
【請求項6】
前記拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップは、複数のブロックを追加するステップを含む、請求項1〜5のいずれか1項に記載の学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ニューラルネットワークの学習方法に関する。
【背景技術】
【0002】
深層ニューラルネットワーク(deep neural network)は、様々なタスク(例えば、画像処理、音声認識、話者認識、言語認識など)に応用されている。このような深層ニューラルネットワークの一例として、超深層畳み込みネットワーク(very deep convolutional network)は、映像処理や画像処理の分野で顕著な性能を発揮することが示されており、ますます深層化したネットワーク構造を有するモデルが研究されている。すなわち、このようなモデルは、ネットワーク層数の重要性を証明している。一方で、深層化した畳み込みネットワークを学習する場合には、勾配消失問題や過学習問題などを解決しなければならない。
【0003】
畳み込み残差ネットワーク(convolutional residual network)(以下、「ResNet」とも称す。)は、各層において新たな表現を学習するのではなく、残差結合(以下、「ショートカット結合」または「スキップ結合」とも称す。)で残差を学習する(例えば、非特許文献1などを参照)。ResNetは、収束速度が非常に早く、かつ、良好な認識精度を示す。特に、音声認識タスクなどにおいて、ResNetは顕著な性能を示すことが報告されている(例えば、非特許文献2〜4などを参照)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】K. He, X. Zhang, S. Ren, and J. Sun, "Deep residual learning for image recognition," in Proc. the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 770-778.
【非特許文献2】Y. Wang, X. Deng, S. Pu, and Z. Huang, "Residual convolutional CTC networks for automatic speech recognition," in arXiv preprint arxiv:1702.07793, 2016.
【非特許文献3】M. Bi, Y. Qian, and K. Yu, "Very deep convolutional neural networks for LVCSR," in Proc. INTERSPEECH, 2015.
【非特許文献4】Y. Zhang, W. Chan, and N. Jaitly, "Very deep convolutional networks for end-to-end speech recognition," in Proc. IEEE-ICASSP, 2017.
【非特許文献5】A. Veit, M. Wilber, and S. Belongie, "Residual networks behave like ensembles of relatively shallow networks," in Proc. Advances in Neural Information Processing Systems (NIPS), 2016, pp. 550-558.
【発明の概要】
【発明が解決しようとする課題】
【0005】
超深層ResNetあるいは超々深層ResNetといった、何重にも積層されたニューラルネットワーク(通常、何百もの層からなる)は、本来、画像認識タスクに向けて設計されたものである。そのため、音声認識タスクに適用するにあたっては、莫大な演算量が必要となり、学習面および実装面における制約が課題である。
【0006】
多くの先行研究においては、膨大なプロセッサリソースを用いて、学習速度を高めているが、実際のアプリケーションを想定すると現実的ではない。
【0007】
本技術は、非常に大きな層数を有するネットワーク構造であっても、限られたコンピューティングリソースの下で、性能の低下を抑制しつつ効率的に学習を高速化できる手法を提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明のある局面に従えば、複数層のネットワーク構造を有するモデルを学習する、コンピュータにより実行される学習方法が提供される。ネットワーク構造は積層された複数のブロックを含む。複数のブロックの各々は、入力された信号から特徴を抽出する特徴抽出コンポーネントと、当該特徴抽出コンポーネントをバイパスする経路とを含む。学習方法は、訓練データセットおよび訓練データセットの一部からなる縮小訓練データセットを取得するステップと、モデルを縮小訓練データセットにより学習することで、モデルを規定するネットワークパラメータを暫定的に最適化するステップと、暫定的に最適化されたネットワークパラメータにより規定される暫定学習済みモデルを評価することで、ネットワーク構造に含まれるブロックのうち、相対的に重要性の高い第1のグループに属する1または複数のブロックを特定するステップと、第1のグループに属するブロックを用いて簡素化モデルを構成するとともに、簡素化モデルを訓練データセットにより学習することで、簡素化モデルを規定するネットワークパラメータを最適化するステップと、第1のグループに属さない1または複数のブロックを簡素化モデルに追加して簡素化モデルを拡張するとともに、当該拡張された簡素化モデルを訓練データセットにより学習することで、当該拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップと、拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップを、第1のグループに属さないすべてのブロックの追加が完了するまで繰返すステップとを含む。
【0009】
特定するステップは、暫定学習済みモデルから1つのブロックの前記特徴抽出コンポーネントを順に除去するステップと、前記特徴抽出コンポーネントが除去された暫定学習済みモデルの性能値の変化を算出するステップとを含んでいてもよい。
【0010】
特定するステップは、相対的に大きな性能値の変化を示すブロックを第1のグループに属するブロックとして決定するステップをさらに含んでいてもよい。
【0011】
特定するステップは、暫定学習済みモデルに含まれる各ブロックが示す性能値の変化について、変化の大きいものから全体数に対する予め定められた比率内にあるブロックを第1のグループに属するブロックとして決定するステップをさらに含んでいてもよい。
【0012】
性能値は、平均フレーム対数尤度および交差エントロピーの少なくとも一方を含んでいてもよい。
【0013】
拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップは、ネットワーク構造の出力側に位置するブロックを優先して追加するステップを含んでいてもよい。
【0014】
拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップは、複数のブロックを追加するステップを含んでいてもよい。
【0015】
拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップは、追加されたブロックについてのネットワークパラメータを最適化するステップを含んでいてもよい。
【0016】
本発明の別の局面に従えば、複数層のネットワーク構造を有するモデルを学習するための学習装置が提供される。ネットワーク構造は積層された複数のブロックを含む。複数のブロックの各々は、入力された信号から特徴を抽出する特徴抽出コンポーネントと、当該特徴抽出コンポーネントをバイパスする経路とを含む。学習装置は、訓練データセットおよび訓練データセットの一部からなる縮小訓練データセットを取得する取得手段と、モデルを縮小訓練データセットにより学習することで、モデルを規定するネットワークパラメータを暫定的に最適化する第1の最適化手段と、暫定的に最適化されたネットワークパラメータにより規定される暫定学習済みモデルを評価することで、ネットワーク構造に含まれるブロックのうち、相対的に重要性の高い第1のグループに属する1または複数のブロックを特定する特定手段と、第1のグループに属するブロックを用いて簡素化モデルを構成するとともに、簡素化モデルを訓練データセットにより学習することで、簡素化モデルを規定するネットワークパラメータを最適化する第2の最適化手段と、第1のグループに属さない1または複数のブロックを簡素化モデルに追加して簡素化モデルを拡張するとともに、当該拡張された簡素化モデルを訓練データセットにより学習することで、当該拡張された簡素化モデルを規定するネットワークパラメータを最適化する第3の最適化手段とを含む。第3の最適化手段は、第1のグループに属さないすべてのブロックの追加が完了するまで、拡張された簡素化モデルを規定するネットワークパラメータの最適化を繰返す。
【0017】
本発明のさらに別の局面に従えば、複数層のネットワーク構造を有する学習済みモデルが提供される。ネットワーク構造は積層された複数のブロックを含む。複数のブロックの各々は、入力された信号から特徴を抽出する特徴抽出コンポーネントと、当該特徴抽出コンポーネントをバイパスする経路とを含む。学習済みモデルは、コンピュータが、訓練データセットおよび訓練データセットの一部からなる縮小訓練データセットを取得するステップと、対象のモデルを縮小訓練データセットにより学習することで、モデルを規定するネットワークパラメータを暫定的に最適化するステップと、暫定的に最適化されたネットワークパラメータにより規定される暫定学習済みモデルを評価することで、ネットワーク構造に含まれるブロックのうち、相対的に重要性の高い第1のグループに属する1または複数のブロックを特定するステップと、第1のグループに属するブロックを用いて簡素化モデルを構成するとともに、簡素化モデルを訓練データセットにより学習することで、簡素化モデルを規定するネットワークパラメータを最適化するステップと、第1のグループに属さない1または複数のブロックを簡素化モデルに追加して簡素化モデルを拡張するとともに、当該拡張された簡素化モデルを訓練データセットにより学習することで、当該拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップと、拡張された簡素化モデルを規定するネットワークパラメータを最適化するステップを、第1のグループに属さないすべてのブロックの追加が完了するまで繰返すステップと、を実行することで構成される。
【発明の効果】
【0018】
本技術によれば、非常に大きな層数を有するネットワーク構造であっても、限られたコンピューティングリソースの下で、性能の低下を抑制しつつ効率的に学習を高速化できる。
【図面の簡単な説明】
【0019】
図1】本実施の形態に従う学習済のモデルを用いたアプリケーション例を示す模式図である。
図2図1に示す音声認識システムの学習方法を説明するための模式図である。
図3】本実施の形態に従う学習方法による学習対象となるResNetの一例を示す模式図である。
図4】本実施の形態に従う学習方法による学習対象となるResNetに含まれる残差ブロックのネットワーク構造例を示す模式図である。
図5図3に示すResNetの完全モデルの具体的な設定例を示す図である。
図6】ResNetに代表される分岐を有するニューラルネットワークのトポロジーを説明するための図である。
図7】ResNetモデルのいずれか1つの残差ブロックの特徴抽出コンポーネントを除去した場合の影響を評価する手順を説明するための模式図である。
図8】3つのResNetモデルから1つの残差ブロックの特徴抽出コンポーネントを除去した場合の影響度合いを示すグラフである。
図9】3つのResNetモデルから1つの残差ブロックの特徴抽出コンポーネントを除去した場合の影響度合いを示す別のグラフである。
図10】本実施の形態に従う学習装置を実現するハードウェア構成の一例を示す模式図である。
図11】本実施の形態に従う学習方法の処理手順を示すフローチャートである。
図12】本実施の形態に従う学習方法におけるスケルトンブロックの決定方法の一例を説明するための図である。
図13】本実施の形態に従う学習方法によるスケルトンモデルからの完全モデルへの追加的な学習処理の手順を説明するための模式図である。
図14】本実施の形態に従う学習装置の機能構成の一例を示すブロック図である。
図15】本実施の形態に従う学習方法による学習期間と性能との関係性の一例を示すグラフである。
【発明を実施するための形態】
【0020】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0021】
[A.アプリケーション例]
まず、本実施の形態に従う学習済のモデルを用いたアプリケーション例について説明する。
【0022】
図1は、本実施の形態に従う学習済のモデルを用いたアプリケーション例を示す模式図である。図1には、アプリケーション例として、音声認識システム1を示す。音声認識システム1は、音声信号の入力を受けて、認識結果に応じたテキストを出力する。より具体的には、音声認識システム1は、音声信号の入力を受けて特徴ベクトルを出力する特徴抽出部12と、特徴抽出部12からの特徴ベクトルの入力を受けてテキストを出力する認識エンジン14とを含む。認識エンジン14は、デコーダとして機能する。
【0023】
認識エンジン14は、典型的には、入力される特徴ベクトルから音響上の特徴を抽出する音響モデル16と、音響モデル16により抽出される音響上の特徴をテキストと対応付ける言語モデル18とを含む。
【0024】
音響モデル16および言語モデル18は、いずれも訓練データセットにより学習される。
【0025】
図2は、図1に示す音声認識システム1の学習方法を説明するための模式図である。図2を参照して、音声信号42および対応するテキスト44とからなる訓練データセット40を用意する。音声信号42を特徴抽出部12に入力するとともに、対応するテキスト44に対する認識エンジン14からの出力の誤差に基づいて、音響モデルおよび言語モデルを規定するネットワークパラメータが最適化される。
【0026】
[B.学習対象モデル]
次に、本実施の形態に従う学習方法により学習されるモデルの一例について説明する。本実施の形態に従う学習方法は、複数層のネットワーク構造を有するモデルの学習に向けられる。特に、超深層ニューラルネットワークおよび超々深層ニューラルネットワークの学習に好適である。
【0027】
超深層ニューラルネットワークの一例として、図1の認識エンジン14に含まれる音響モデル16を実現するための、超深層畳み込み残差ニューラルネットワーク(ResNet)を取り上げる。以下の説明においては、典型的なネットワーク構造例として、110層のResNetを想定する。なお、ResNetの層数はいずれでもよく、また、より大きな層数を有するResNetほど学習高速化の効果は顕著となる。
【0028】
110層のResNetは、画像認識タスクにおいて1つのベンチマークとなっている。本来的に、ResNetは、画像認識タスクに向けて設計されたものであるが、音声認識タスクに対しても適用が可能である。すなわち、音声認識タスクの対象となる音声信号の各フレームは、画像認識タスクの対象となる画像と同様に、時間領域と周波数領域とにより定義される2次元イメージとみなすことができる。このように入力される音声信号に対する前処理を工夫することで、ResNetの基本的なコンセプトは、音声認識タスクに対しても連続的に適用できる。
【0029】
図3は、本実施の形態に従う学習方法による学習対象となるResNetの一例を示す模式図である。図3を参照して、110層のResNetを示すモデル2は、図1に示す音響モデル16を実現するニューラルネットワークである。本実施の形態に従う学習方法は、図3に示すような層数の大きなニューラルネットワークを学習することを目的とする。
【0030】
説明の便宜上、図3に示すような、最終的に学習済みモデルとして出力されるモデルを「完全モデル」とも称する。
【0031】
完全モデル2は、入力側にある畳み込み層(Conv)10(1層)と、54個の残差ブロック(ResBlock)20(2層×54)と、平均化プーリング処理32および全結合処理34を含む出力層30(1層)とからなる。図3に示すように、ResNetの一例である完全モデル2の基本単位は、残差ブロック20である。このように、完全モデル2を規定するネットワーク構造は、積層された複数のブロック(残差ブロック20)を含む。
【0032】
各残差ブロック20の各々は、入力された信号から特徴を抽出する特徴抽出コンポーネントと、当該特徴抽出コンポーネントをバイパスする経路とを含む。具体的な一例として、各残差ブロック20は、図4に示すいずれかのネットワーク構造をとる。
【0033】
図4は、本実施の形態に従う学習方法による学習対象となるResNetに含まれる残差ブロック20のネットワーク構造例を示す模式図である。図4に示すように、残差ブロック20は、2つの並列結合されたコンポーネント(特徴抽出コンポーネント4および残差結合コンポーネント6)を含む。すなわち、残差ブロック20は、入力から見ると、分岐(branch)を有するニューラルネットワークに相当する。
【0034】
図4(A)および図4(B)に示されるネットワーク構造例において、入力された信号から特徴を抽出する特徴抽出コンポーネント4は、2つの畳み込み層(Conv)21,24と、2つの畳み込み層21,24の間に配置された活性化関数23とを含む。畳み込み層21,24の各々には、比較的小さな3×3のフィルタが用いられている。活性化関数23としては、一例として、正規化線形関数(ReLU:rectified linear unit)が用いられている。
【0035】
畳み込み層21,24の出力側には、それぞれBN(batch normalization)処理22,25が実装されている。
【0036】
図4(A)に示すネットワーク構造例において、残差結合コンポーネント6は、信号が特徴抽出コンポーネント4全体をバイパスするための経路を提供する、ショートカット結合またはスキップ結合に相当する。すなわち、残差結合コンポーネント6は、特徴抽出コンポーネント4をバイパスする経路を含む。
【0037】
例えば、入力された信号の特徴マップが適合しない場合(例えば、残差ブロック20が特徴マップのサイズが変化する境界に存在する場合)には、図4(A)に示すようなフィルタサイズ1×1の畳み込み層26をショートカット結合として用い、それ以外の場合には、図4(B)に示すような恒等変換処理27(すなわち、入力された信号をそのまま出力する)をショートカット結合として用いてもよい。
【0038】
畳み込み層26から出力される信号または恒等変換処理27から出力される信号は、結合処理28において、特徴抽出コンポーネント4(畳み込み層21、BN処理22、活性化関数23、畳み込み層24、BN処理25)から出力される信号と結合される。最終的に、結合処理28において結合された後の信号は、活性化関数29を経て出力される。
【0039】
なお、図4には、典型的な残差ブロック20のネットワーク構造例を示すが、本発明の適用対象はこれに限られず、与えられた信号から特徴を抽出するためのコンポーネントと、当該コンポーネントをショートカット結合(すなわち、スキップ結合)するためのコンポーネントとを有する、ネットワーク構造であれば、どのようなものを採用してもよい。
【0040】
例えば、図4に示す特徴抽出コンポーネント4おいて、畳み込み層21および畳み込み層24のフィルタサイズは任意に変更してもよいし、活性化関数23についても任意のものを用いることができる。また、BN処理22,25の配置についても任意である。
【0041】
また、残差ブロック20の各々には、より多くの畳み込み層を配置してもよい。例えば、畳み込み層(フィルタサイズ1×1)、BN処理、活性化関数(ReLU)、畳み込み層(フィルタサイズ3×3)、BN処理、活性化関数(ReLU)、畳み込み層(フィルタサイズ1×1)、BN処理、といった3層分の畳み込み層を含む特徴抽出コンポーネント4を用いてもよい。
【0042】
さらに、畳み込み層21,24を含む特徴抽出コンポーネント4に代えて、DNNモデル(deep neural network)またはCNN(convolution neural network)モデルを用いてもよい。
【0043】
本実施の形態に従う学習方法による学習対象となるResNetの完全モデル2においては、図4に示す残差ブロック20の畳み込み層21,24について、フィルタサイズ(すなわち、カーネルサイズ)は同じであるが、フィルタ数を異ならせている。
【0044】
一例として、完全モデル2を構成する54個の残差ブロック20をフィルタ数の異なる3グループ(16個、32個、64個)に分類する。但し、畳み込み層のフィルタサイズ(カーネルサイズ)はいずれも3×3であるとする。
【0045】
図5は、図3に示すResNetの完全モデル2の具体的な設定例を示す図である。図5に示す完全モデル2には、72×11次元の特徴ベクトルが入力として与えられ、8522次元の入力に対するsoftmax関数による演算結果が出力される。
【0046】
図5において、各残差ブロック20をフィルタ数の相違を表現するように、フィルタ数が16個、32個、64個である残差ブロック20を、それぞれ「ResBlock−16」、「ResBlock−32」、「ResBlock−64」と表記する。
【0047】
図5に示すように、各グループは、いずれも18個ずつの残差ブロック20が積層された構造となっている。
【0048】
完全モデル2全体としては、大部分の畳み込み層のフィルタサイズは3×3である。同じフィルタ数の畳み込み層の間では、出力される特徴マップのサイズが同一である。また、特徴マップのサイズが1/2倍になると、フィルタ数は2倍になる。そのため、フィルタ数が倍増する残差ブロック間(具体的には、18番目の残差ブロックと19番目の残差ブロックとの間、および、36番目の残差ブロックと37番目の残差ブロックとの間)においては、ダウンサンプリング処理により特徴マップの次元を半減化する。このダウンサンプリング処理においては、ストライドを2×2とした畳み込み層が用いられる。
【0049】
なお、各畳み込み層からの出力に対して、ゼロを埋めるためのゼロパディング処理を実施する。
【0050】
出力層30に含まれる平均化プーリング処理32においては、フィルタサイズ2×2、ストライド1×1の平均化2次元プーリングが用いられる。また、出力層30に含まれる全結合処理34は、全結合フィードフォワード層(BN処理は無し)と、8522次元が与えられる活性化関数(softmax関数)とを含む。そして、8522次元の特徴ベクトルに対するsoftmax関数の結果が完全モデル2の出力となる。
【0051】
[C.学習方法の概要]
次に、本実施の形態に従う学習方法の概要について説明する。
【0052】
本実施の形態に従う学習方法においては、学習対象の完全モデル2を構成する残差ブロック20を「スケルトンブロック」および「補助ブロック」の2種類に分類する。
【0053】
本明細書において、「スケルトンブロック」は、完全モデル2全体において重要な役割を果たす残差ブロック20を意味し、「補助ブロック」は、スケルトンブロックには分類されない残りの残差ブロック20を意味する。「スケルトンブロック」は、完全モデル2に入力される特徴ベクトルを出力まで結合する経路を有しており、学習および評価において、本質的である残差ブロック20を意味する。
【0054】
本実施の形態に従う学習方法においては、学習対象の完全モデル2を解析して、完全モデル2を構成する残差ブロック20のうち、スケルトンブロックに相当する残差ブロック20を特定する。そして、特定したスケルトンブロックのみからなる簡素化モデル(以下、「スケルトンモデル」とも称す。)を構成し、その構成されるスケルトンモデルを学習する。続いて、スケルトンモデルに補助ブロックを順次追加したモデル(以下、「追加モデル」とも称す。)を順次構成し、その順次構成される追加モデルを順次学習する。追加モデルは、簡素化モデルに補助ブロックを追加して生成される拡張された簡素化モデルに相当する。
【0055】
[D.スケルトンブロックおよび補助ブロック]
先に、本実施の形態において分類される、スケルトンブロックおよび補助ブロックについて説明する。
【0056】
非特許文献5は、ショートカット結合を有するResNetに対する研究結果を示す。ResNetにおいては、多数の経路の集合であるアンサンブルが形成され得る。
【0057】
図6は、ResNetに代表される分岐を有するニューラルネットワークのトポロジーを説明するための図である。図6(A)には、3つの特徴抽出コンポーネント4が積層されるとともに、各特徴抽出コンポーネント4にはショートカット結合が並列に設けられている。このようなネットワーク構造を経路別に展開すると、図6(B)に示すようなネットワーク構造と等価になる。
【0058】
すなわち、図6(A)に示すネットワーク構造は、図6(B)に示すように、入力側から出力側に向かう複数の経路を含んでおり、アンサンブル(多数の経路の集合)を有していることが分かる。
【0059】
非特許文献5の教示によれば、ニューラルネットワークの学習中において、値の更新はすべての層に亘って均一に生じるものではなく、この現象は、典型的な深層ニューラルネットワークについても当てはまるとされている。具体的には、すべての学習ポイントは、特定の経路セットに沿って重みが調整されるとされている。そして、評価時には、入力された信号は一意の経路セットに沿って出力まで到達し、すべての層を通過するわけではないとされている。したがって、一部の残差ブロックを省略しても、評価結果への影響は小さいことが想定される。
【0060】
本願発明者らは、層数の異なる3種類のResNetモデル(音響モデル)を用意し、縮小訓練データセットにより学習を行なった。このような学習によって得られた学習済みResNetモデルに含まれるいずれか1つの残差ブロック20の特徴抽出コンポーネント4を除去した場合の影響を評価した。なお、言語モデルについては、既知の学習済みモデルを用いた。
【0061】
対象としたResNetモデルは、図4および図5に示すネットワークと同様の残差ブロック20により構成されている。より具体的には、以下のようなネットワーク構造を用いた。
【0062】
(A)18個のResBlock−16+18個のResBlock−32+18個のResBlock−64(計110層)(図5と実質的に同一のネットワーク)
(B)10個のResBlock−16+10個のResBlock−32+10個のResBlock−64(計62層)
(C)3個のResBlock−16+3個のResBlock−32+3個のResBlock−64(計20層)
図7は、ResNetモデルのいずれか1つの残差ブロック20の特徴抽出コンポーネント4を除去した場合の影響を評価する手順を説明するための模式図である。図7を参照して、訓練データセットにより学習した完全モデル2と、完全モデル2を構成する1つの残差ブロック20について、特徴抽出コンポーネント4(畳み込み層21、BN処理22、活性化関数23、畳み込み層24、BN処理25)を除去した後の除去モデル2Aとの間で、同一の特徴を入力した場合の出力間の相違を評価する。なお、図7に示すように、特徴抽出コンポーネント4が除去される残差ブロック20において、残差結合コンポーネント6(恒等変換処理27)は残ることになる。すなわち、残差ブロック20の特徴抽出コンポーネント4を除去するとは、その残差ブロック20における信号の伝搬経路をショートカットすることを意味する。
【0063】
具体的な評価手法としては、上述した3種類の学習済の各ResNetモデルについて、任意の1つの残差ブロック20の特徴抽出コンポーネント4を除去し、当該特徴抽出コンポーネント4を除去した後のResNetモデルを用いてデコード(この例では、音声認識)を行なう。そして、特徴抽出コンポーネント4を除去していないResNetモデルのデコード結果についての性能値と、任意の1つの残差ブロック20の特徴抽出コンポーネント4を除去したResNetモデルのデコード結果についての性能値との差を算出する。
【0064】
性能値としては、任意の評価指標を用いることができるが、一例として、平均フレーム対数尤度(log-likelihood)および交差エントロピーを用いた。
【0065】
平均フレーム対数尤度は、入力される音声信号のフレーム単位で対数尤度検定(log-likelihood test)を行なった結果を示す。対数尤度検定は、評価データをデコード(音声認識)することで出力されるキーワードの出現頻度を、当該評価データの転記テキストに含まれるキーワードの出現頻度と比較する検定である。すなわち、平均フレーム対数尤度は、デコード結果に含まれるキーワードの出現頻度と正解テキストに含まれるキーワードの出現頻度との差が有意であるか否かを評価する検定である。
【0066】
性能値として平均フレーム対数尤度を用いる場合には、特徴抽出コンポーネント4を除去していないResNetモデルの平均フレーム対数尤度と、特徴抽出コンポーネント4を除去したResNetモデルの平均フレーム対数尤度との差(以下、「平均フレーム対数尤度低下量」とも称す。)を評価する。
【0067】
交差エントロピーは、学習済みのモデルが出力するデコード結果の分布と、正解テキストの分布とのずれの度合いを示す値であり、学習処理においてモデルを規定するネットワークパラメータを最適化するためのコスト関数として用いられる。交差エントロピーの値が小さい程、正解データに近い分布を出力できるモデルであることが示される。
【0068】
交差エントロピーを用いる場合には、特徴抽出コンポーネント4を除去したResNetモデルの交差エントロピーが、特徴抽出コンポーネント4を除去していないResNetモデルの交差エントロピーからどの程度増加したのか(以下、「平均交差エントロピー増加量」とも称す。)を評価する。
【0069】
評価には、訓練データセットおよび評価データとして、国立国語研究所が提供している「日本語話し言葉コーパス(Corpus of Spontaneous Japanese:CSJ)」を用いる。CSJは、600時間を超える講演の音声を含む。CSJは、3つの公式の評価データセット(CSJ−Eval01、CSJ−Eval02、CSJ−Eval03)を含む。各評価データセットは、10講演分の音声を含む。これらの評価データセットに加えて、開発および評価用の10講演分の音声(CSJ−Dev)についても採用する。
【0070】
先行研究における知見に従って、これらのデータセットのうち、240時間分の講演の音声を訓練データセット(以下、「CSJ−Train」とも称す。)として構成するとともに、27.6時間分の講演の音声を縮小訓練データセット(以下、「CSJ−Trainsmall」とも称す。)として構成する。
【0071】
これらのデータセットに含まれる講演の数および時間は以下の通りである。
【0072】
【表1】
【0073】
上述したデータセットは、後述の検証実験においても利用する。
図8は、3つのResNetモデルから1つの残差ブロック20の特徴抽出コンポーネント4を除去した場合の影響度合いを示すグラフである。図8には、CSJ−Eval01に含まれる男性話者のうち10発声からなる第1のデータセットと、CSJ−Eval02に含まれる女性話者のうち10発声からなる第2のデータセットとのそれぞれをデコードした結果を示す。
【0074】
図8(A)〜図8(C)には、上述のResNetモデル(A)〜(C)について、1つの残差ブロック20の特徴抽出コンポーネント4を順にそれぞれ除去した場合の平均フレーム対数尤度低下量を示す。図8(A)〜図8(C)の横軸はResNetモデルから特徴抽出コンポーネント4が除去された残差ブロック20の位置を示すインデックス(図7に示される「block−id」に相当)を示す。
【0075】
図8(A)〜図8(C)において、実線は第1のデータセットに対するデコード結果から得られた平均フレーム対数尤度低下量を示し、破線は第2のデータセットに対するデコード結果から得られた平均フレーム対数尤度低下量を示す。
【0076】
さらなる検証として、本願発明者らは、上述したResNetモデル(A)〜(C)を小さな訓練データセットにより学習した上で、上述と同様の手法で、1個ずつ残差ブロック20の特徴抽出コンポーネント4を除去した場合の交差エントロピーの変化量を評価した。小さな訓練データセットとしては、上述の評価手法で用いたデータセットの先頭の7000サンプルのみを用いた。
【0077】
図9は、3つのResNetモデルから1つの残差ブロック20の特徴抽出コンポーネント4を除去した場合の影響度合いを示す別のグラフである。図9(A)〜図9(C)には、上述のResNetモデル(A)〜(C)について、1つの残差ブロック20の特徴抽出コンポーネント4を順にそれぞれ除去した場合の平均交差エントロピー増加量を示す。図9(A)〜図9(C)の横軸はResNetモデルから特徴抽出コンポーネント4が除去された残差ブロック20の位置を示すインデックスを示す。
【0078】
図8および図9に示される評価結果によれば、ResNetモデルを構成する各残差ブロック20の学習および評価に対する貢献度は異なっていることが分かる。いくつかの残差ブロック20については、ネットワーク全体において重要な役割を果たす。このような残差ブロック20の特徴抽出コンポーネント4をネットワークから除去することで、対数尤度および交差エントロピーに急峻な変化が生じ得る。このような重要な残差ブロック20が現れる位置は、残差ブロック20のトポロジーによって決定され、評価データには依存しない。
【0079】
典型的には、以下に示す3つの状況において、重要な役割を果たす残差ブロック20が現れる。
【0080】
(1)特徴入力の直後に配置された残差ブロック(ResNetモデル(A)についてはインデックス1,3、ResNetモデル(B)についてはインデックス1,3、ResNetモデル(C)についてはインデックス1)
(2)ネットワーク出力の直前に配置された残差ブロック(ResNetモデル(A)についてはインデックス51,52,53,54、ResNetモデル(B)についてはインデックス29,30、ResNetモデル(C)についてはインデックス9)
(3)特徴マップサイズが異なる2つのグループの境界付近に配置された残差ブロック(ResNetモデル(A)についてはインデックス19,37、ResNetモデル(B)についてはインデックス11,21、ResNetモデル(C)についてはインデックス4,7)
上述の3つの状況に加えて、学習および評価に対して相対的に大きな影響を与える残差ブロック20が存在する(但し、3つの状況にある残差ブロック20に比較して影響の大きさは相対的に小さい)。上述の例においては、ResNetモデル(A)についてはインデックス21,24,31であり、ResNetモデル(B)についてはインデックス13,17であり、ResNetモデル(C)についてはインデックス5,6である。
【0081】
図8および図9に示す評価結果から得られる110層のResNetモデルを構成するスケルトンブロックおよび補助ブロックは、以下の表1のようにまとめることができる(但し、図3に示す畳み込み層10および図3に示す出力層30は除いている)。
【0082】
【表2】
【0083】
上述のような知見によって、学習対象の完全モデルに含まれるスケルトンブロックを決定できる。
【0084】
[E.学習装置を実現するハードウェア構成]
次に、本実施の形態に従う学習装置100を実現するハードウェア構成の一例について説明する。図10は、本実施の形態に従う学習装置100を実現するハードウェア構成の一例を示す模式図である。学習装置100は、典型的には、汎用コンピュータを用いて実現される。
【0085】
図10を参照して、学習装置100を実現するコンピュータは、主要なハードウェアコンポーネントとして、CPU(central processing unit)102と、GPU(graphics processing unit)104と、主メモリ106と、ディスプレイ108と、ネットワークインターフェイス(I/F:interface)110と、二次記憶装置112と、入力デバイス122と、光学ドライブ124とを含む。これらのコンポーネントは、内部バス128を介して互いに接続される。
【0086】
CPU102および/またはGPU104は、後述するような各種プログラムを実行することで、本実施の形態に従う学習装置100の実現に必要な処理を実行するプロセッサである。CPU102およびGPU104は、複数個配置されてもよいし、複数のコアを有していてもよい。
【0087】
主メモリ106は、プロセッサ(CPU102および/またはGPU104)が処理を実行するにあたって、プログラムコードやワークデータなどを一時的に格納する記憶領域であり、例えば、DRAM(dynamic random access memory)やSRAM(static random access memory)などの揮発性メモリデバイスなどで構成される。
【0088】
ディスプレイ108は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、LCD(liquid crystal display)や有機EL(electroluminescence)ディスプレイなどで構成される。
【0089】
ネットワークインターフェイス110は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りする。ネットワークインターフェイス110としては、例えば、イーサネット(登録商標)、無線LAN(local area network)、Bluetooth(登録商標)などの任意の通信方式を採用できる。
【0090】
入力デバイス122は、ユーザからの指示や操作などを受付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。また、入力デバイス122としては、学習処理に必要な音声信号を収集した集音デバイスと接続するためのインターフェイスを含んでいてもよい。
【0091】
光学ドライブ124は、CD−ROM(compact disc read only memory)、DVD(digital versatile disc)などの光学ディスク126に格納されている情報を読出して、内部バス128を介して他のコンポーネントへ出力する。光学ディスク126は、非一過的(non-transitory)な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ124が光学ディスク126からプログラムを読み出して、二次記憶装置112などにインストールすることで、コンピュータが学習装置100として機能するようになる。したがって、本発明の主題は、二次記憶装置112などにインストールされたプログラム自体、または、本実施の形態に従う機能や処理を実現するためのプログラムを格納した光学ディスク126などの記録媒体でもあり得る。
【0092】
図10には、非一過的な記録媒体の一例として、光学ディスク126などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、MO(magneto-optical disk)などの光磁気記録媒体を用いてもよい。
【0093】
二次記憶装置112は、コンピュータを学習装置100として機能させるために必要なプログラムおよびデータを格納する。例えば、ハードディスク、SSD(solid state drive)などの不揮発性記憶装置で構成される。
【0094】
より具体的には、二次記憶装置112は、図示しないOS(operating system)の他、学習処理を実現するための学習プログラム114と、学習対象の完全モデルを定義するモデル定義データ116と、学習済のモデルを規定するためのネットワークパラメータ118と、訓練データセット120とを格納している。
【0095】
学習プログラム114は、プロセッサ(CPU102および/またはGPU104)により実行されることで、本実施の形態に従う学習処理を実現する。モデル定義データ116は、学習対象となる完全モデルを構成するコンポーネントおよび接続関係などを定義するための情報を含む。ネットワークパラメータ118は、学習対象の完全モデル(モデル)を構成する要素毎のパラメータを含む。ネットワークパラメータ118に含まれる各パラメータの値は、学習プログラム114の実行により最適化される。訓練データセット120は、学習対象の完全モデルを規定するネットワークパラメータを最適化するための教師データである。例えば、学習対象の完全モデルが音声認識タスクに向けられたものである場合には、訓練データセット120は、講演などの音声信号と、当該音声信号に対応する発話内容を示す転記テキストとを含む。
【0096】
プロセッサ(CPU102および/またはGPU104)がプログラムを実行する際に必要となるライブラリや機能モジュールの一部を、OSが標準で提供するライブラリまたは機能モジュールにより代替してもよい。この場合には、プログラム単体では、対応する機能を実現するために必要なプログラムモジュールのすべてを含むものにはならないが、OSの実行環境下にインストールされることで、目的の処理を実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【0097】
また、これらのプログラムは、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【0098】
図10には、単一のコンピュータを用いて学習装置100を構成する例を示すが、これに限らず、コンピュータネットワークを介して接続された複数のコンピュータが明示的または黙示的に連携して、学習装置100および学習装置100を含む音声認識システムを実現するようにしてもよい。
【0099】
プロセッサ(CPU102および/またはGPU104)がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路(hard-wired circuit)を用いて実現してもよい。例えば、ASIC(application specific integrated circuit)やFPGA(field-programmable gate array)などを用いて実現してもよい。
【0100】
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う学習装置100を実現できるであろう。
【0101】
また、上述の説明においては、任意のネットワークを学習する学習装置100を実現するハードウェア構成について例示したが、上述のハードウェア構成を、デコード(すなわち、音声認識などの予め定められたタスク)を実行する装置として用いてもよい。すなわち、同一のハードウェア構成を用いて、学習装置100および認識装置を実現してもよい。
【0102】
[F.学習手順]
次に、本実施の形態に従う学習方法の処理手順について説明する。
【0103】
図11は、本実施の形態に従う学習方法の処理手順を示すフローチャートである。図11に示される各ステップは、典型的には、プロセッサ(CPU102および/またはGPU104)が学習プログラム114などを実行することで実現される。
【0104】
図11を参照して、まず、学習装置100は、学習対象の完全モデルの定義(コンポーネントおよび接続関係など)を受付ける(ステップS2)。
【0105】
続いて、学習装置100は、訓練データセットおよび訓練データセットの一部からなる縮小訓練データセットを取得する。より具体的には、学習装置100は、学習対象の完全モデルを学習するための訓練データセットを受付ける(ステップS4)。ステップS4の訓練データセットは、学習対象のモデル(完全モデル)に与えられるタスクに応じて定められる。音声認識タスクの場合には、訓練データセットとして、音声信号と当該音声信号に対応する転記テキストとが用いられてもよい。そして、学習装置100は、訓練データセットの一部から縮小訓練データセットを生成する(ステップS6)。
【0106】
以上の工程により、学習処理の準備が整う。続いて、スケルトンブロックおよび補助ブロックの識別処理が実行される(ステップS10〜S28)。
【0107】
まず、学習装置100は、定義された完全モデルを縮小訓練データセットにより暫定的に学習する(ステップS10)。すなわち、学習装置100は、学習対象の完全モデルを縮小訓練データセットにより学習することで、完全モデルを規定するネットワークパラメータを暫定的に最適化する。
【0108】
続いて、学習装置100は、暫定的に最適化されたネットワークパラメータにより規定される暫定学習済みモデル(完全モデル)を評価することで、ネットワーク構造に含まれる残差ブロック20のうち、相対的に重要性の高い第1のグループ(スケルトンブロック)に属する1または複数の残差ブロック20を特定する。
【0109】
より具体的には、ステップS10において得られた暫定学習済みモデル(完全モデル)に評価データを入力してデコード結果を取得し(ステップS12)、取得したデコード結果の性能値を算出する(ステップS14)。ステップS14において算出される性能値が基準性能値となる。そして、学習装置100は、暫定学習済みモデルに含まれる任意の1つの残差ブロック20の特徴抽出コンポーネント4を一時的に除去し(ステップS16)、特徴抽出コンポーネント4を除去した暫定学習済みモデルに評価データを入力してデコード結果を取得し(ステップS18)、取得したデコード結果の性能値を算出する(ステップS20)。さらに、学習装置100は、ステップS20において算出される性能値と、ステップS14において算出される基準性能値とに基づいて、特徴抽出コンポーネント4を除去した残差ブロック20についての影響度合いを算出する(ステップS22)。この時点において、一時的に除去された特徴抽出コンポーネント4は、元の状態に戻される。
【0110】
このように、学習装置100は、スケルトンブロックに属する残差ブロック20を特定するにあたって、暫定学習済みモデル(完全モデル)から1つの残差ブロック20の特徴抽出コンポーネント4を順に除去する処理と、特徴抽出コンポーネント4が除去された暫定学習済みモデルの性能値の変化を算出する処理とを実行する。
【0111】
学習装置100は、暫定学習済みモデルに含まれるすべての残差ブロック20についての影響度合いの算出が完了したか否かを判断する(ステップS24)。影響度合いの算出が完了していない残差ブロック20が残っていれば(ステップS24においてNO)、学習装置100は、暫定学習済みモデルに含まれる新たな1つの残差ブロック20の特徴抽出コンポーネント4を一時的に除去し(ステップS26)、ステップS18以下の処理を繰返す。
【0112】
一方、すべての残差ブロック20についての影響度合いの算出が完了していれば(ステップS24においてYES)、学習装置100は、ステップS22において算出される残差ブロック20毎の影響度合いに基づいて、完全モデルに含まれる残差ブロック20のうち、スケルトンブロックに属する残差ブロック20、および、補助ブロックに属する残差ブロック20を特定する(ステップS28)。
【0113】
以上の工程により、スケルトンモデルの構成、および、追加モデルへの拡張の準備が整う。続いて、スケルトンモデルおよび追加モデルの学習処理が実行される(ステップS30〜S40)。
【0114】
まず、学習装置100は、ステップS28において特定されたスケルトンブロックを用いて、スケルトンモデルを構成し(ステップS30)、構成したスケルトンモデルを(完全)訓練データセットにより学習する(ステップS32)。ステップS32において、学習済みスケルトンモデルが得られる。このように、学習装置100は、スケルトンブロックに属する残差ブロック20を用いて簡素化モデル(スケルトンモデル)を構成するとともに、スケルトンモデルを訓練データセットにより学習することで、スケルトンモデルを規定するネットワークパラメータを最適化する。
【0115】
続いて、学習装置100は、1または複数の補助ブロックをスケルトンモデルに追加して追加モデルを構成し(ステップS34)、構成した追加モデルに含まれる補助ブロックを(完全)訓練データセットにより学習する(ステップS36)。ステップS36において、学習済み追加モデルが得られる。このように、学習装置100は、スケルトンブロックに属さない1または複数の残差ブロック20を簡素化モデルであるスケルトンモデルに追加してスケルトンモデルを拡張するとともに、当該拡張されたスケルトンモデル(追加モデル)を訓練データセットにより学習することで、追加モデルを規定するネットワークパラメータを最適化する。
【0116】
学習装置100は、すべての補助ブロックの追加が完了したか否かを判断する(ステップS38)。すべての補助ブロックの追加が完了していなければ(ステップS38においてNO)、学習装置100は、新たな1または複数の補助ブロックをさらに追加モデルに追加して、ステップS36以下の処理を繰返す。すなわち、学習装置100は、拡張されたスケルトンモデルである追加モデルを規定するネットワークパラメータを最適化するステップを、スケルトンブロックに属さないすべての残差ブロック20の追加が完了するまで繰返す。
【0117】
すべての補助ブロックの追加が完了していれば(ステップS38においてYES)、その時点において得られている学習済み追加モデルは完全モデルに対応し、学習装置100は、学習済み追加モデルを規定するネットワークパラメータを最終的な学習結果として出力する(ステップS40)。そして、一連の学習処理は終了する。
【0118】
[G.学習処理の詳細]
次に、図11に示す学習処理の詳細について説明する。
【0119】
(g1:スケルトンブロックおよび補助ブロックの識別処理:その1)
スケルトンブロックおよび補助ブロックの識別処理においては、学習対象の完全モデルを縮小訓練データセットにより学習することで、暫定学習済みモデルを構成し、暫定学習済みモデルから1つの残差ブロック20の特徴抽出コンポーネント4を順次除去した場合の影響が評価される。
【0120】
このような影響は、性能値の変化に基づいて評価される。すなわち、相対的に大きな性能値の変化を示す残差ブロック20がスケルトンブロックに属する残差ブロック20として決定される。
【0121】
また、性能値としては、任意の評価指標を用いることができるが、本実施の形態においては、平均フレーム対数尤度または交差エントロピーを用いることができる。
【0122】
予め定められた比率に従って、スケルトンブロックと補助ブロックとを識別するようにしてもよい。すなわち、暫定学習済みモデルに含まれる各残差ブロック20が示す性能値の変化について、変化の大きいものから全体数に対する予め定められた比率内にある残差ブロック20をスケルトンブロックに属する残差ブロック20として決定してもよい。
【0123】
例えば、上述の表2に示すように、完全モデルに含まれる残差ブロック20のうち、性能値の変化が大きい上位20%の残差ブロック20をスケルトンブロックとしてもよい。この場合、上位20%に相当する性能値の変化の大きさが識別用のしきい値として設定される。
【0124】
さらに、スケルトンブロックと補助ブロックとの2分類ではなく、第2スケルトンブロックを含めた3分類としてもよい。この場合においても、それぞれの比率を維持できるように、ネットワークに含まれる残差ブロック20を大きな性能値の変化を示す順に選択すればよい。
【0125】
図12は、本実施の形態に従う学習方法におけるスケルトンブロックの決定方法の一例を説明するための図である。図12に示すグラフは、特徴抽出コンポーネント4を除去した残差ブロック20の位置を示すインデックス(横軸)に関連付けて、それぞれ特徴抽出コンポーネント4を除去した場合の性能値の変化(平均フレーム対数尤度または交差エントロピーの変化の大きさなど)を縦軸にプロットした上で、性能値の変化の大きなものから順に並び替えた状態を示す。
【0126】
図12に示すグラフにおいて、性能値の変化の大きい上位20%の残差ブロック20の集合をスケルトンブロックと決定し、その上位20%に続く20%の残差ブロック20の集合を第2スケルトンブロックと決定してもよい。この場合、スケルトンブロックおよび第2スケルトンブロックのいずれにも属さない残差ブロック20は、補助ブロックと決定される。
【0127】
このように、ネットワークを構成する全ての残差ブロック20の間で、相対的に大きな性能値の変化を示す残差ブロック20がスケルトンブロックとして決定されてもよい。
【0128】
なお、スケルトンブロックとなる残差ブロック20の比率については、20%に限定されることなく、効率的な学習の実現に適した任意の比率を採用できる。
【0129】
図12に示すように、2種類のスケルトンブロックに区別する場合には、まず、スケルトンブロックに属する残差ブロック20で構成されるスケルトンモデルに対する学習処理を実行し、続いて、第2スケルトンブロックに属する残差ブロック20がスケルトンモデルに追加された第2スケルトンモデルを構成し、その第2スケルトンモデルに対する学習処理を実行するようにしてもよい。さらに、残りの残差ブロック20を順次追加して追加学習を行なうようにしてもよい。
【0130】
(g2:スケルトンブロックおよび補助ブロックの識別処理:その2)
上述したような性能値の変化に基づいてスケルトンブロックとなる残差ブロック20を決定するのではなく、ネットワーク全体の信号伝搬状態などに基づいてスケルトンブロックとなる残差ブロック20を決定してもよい。
【0131】
より具体的には、信号伝搬状態として、各残差ブロック20における特徴抽出コンポーネントのデータ通過量、各残差ブロック20における特徴抽出コンポーネントで処理されるデータ量、学習処理における特徴抽出コンポーネントを規定するパラメータの変化度合い、などの特徴量に基づいて、スケルトンブロックとなる残差ブロック20を決定してもよい。
【0132】
(g3:スケルトンブロックおよび補助ブロックの識別処理:その3)
さらに別の手法として、完全モデルを構成するネットワークをスパース化するように学習してもよい。ネットワークのスパース化により、ネットワーク内の重要ではない残差ブロック20については、スパース化される(すなわち、ネットワークパラメータの多くがゼロとなる)。このような性質を利用して、スパース化されていない残差ブロック20をスケルトンブロックとなる残差ブロック20として決定してもよい。
【0133】
(g4:スケルトンブロックおよび補助ブロックの識別処理:その4)
上述したような性能値の変化に基づく決定、信号伝搬状態を示す特徴量に基づく決定、スパース化を伴う学習結果に基づく決定のうち複数を組み合せて、スケルトンブロックとなる残差ブロック20を決定してもよい。
【0134】
(g5:スケルトンモデルおよび追加モデルの学習処理:その1)
スケルトンモデルに対して、1つの補助ブロックを追加するようにしてもよいし、複数の補助ブロックを追加するようにしてもよい。複数の補助ブロックを追加する場合には、フィルタ数が同一である複数の残差ブロック20をまとめて追加するようにしてもよい。すなわち、拡張された簡素化モデル(追加モデル)を規定するネットワークパラメータを最適化するステップは、複数の残差ブロック20を追加するようにしてもよい。
【0135】
また、ニューラルネットワークの入力側にある残差ブロック20は、主として、特徴抽出器として機能し、出力側にある残差ブロック20は、判別器として機能する。そのため、補助ブロックを追加する際には、出力側を優先して追加するようにしてもよい。すなわち、拡張された簡素化モデル(追加モデル)を規定するネットワークパラメータを最適化する処理において、ネットワーク構造の出力側に位置する残差ブロック20を優先して追加するようにしてもよい。
【0136】
(g6:スケルトンモデルおよび追加モデルの学習処理:その2)
既に学習済みのモデルに対して補助ブロックを追加した場合には、当該追加した補助ブロックのみを学習するようにしてもよいし、補助ブロックを追加した後の追加モデル全体を学習するようにしてもよい。
【0137】
追加した補助ブロックのみを学習する場合には、訓練データセットの一部を用いて、補助ブロックを追加した後のモデル全体を再学習して、先に、ネットワークパラメータを微調整するようにしてもよい。
【0138】
(g7:スケルトンモデルからの完全モデルへの追加的な学習処理例)
図13は、本実施の形態に従う学習方法によるスケルトンモデルからの完全モデルへの追加的な学習処理の手順を説明するための模式図である。
【0139】
図13(A)には、学習対象の完全モデルの例を示す。図13(A)に示す学習対象の完全モデルを縮小訓練データセットにより暫定的に学習するとともに、暫定学習済みモデル(完全モデル)に含まれる残差ブロック20のうち、スケルトンブロックに属する残差ブロック20と、補助ブロックに属する残差ブロック20とを識別する。そして、図13(B)に示すように、スケルトンブロックに属する残差ブロック20からなるスケルトンモデルを構成する。
【0140】
図13(B)に示すスケルトンモデルにおいては、特徴入力の直後に配置された1個または2個の残差ブロック20と、フィルタ数が16から32に変化する直後に配置された1個または2個の残差ブロック20と、フィルタ数が32から64に変化する境界の前後にそれぞれ配置された1個または2個の残差ブロック20と、ネットワーク出力の直前に配置された4個の残差ブロック20とが、スケルトンモデルとして決定されている例を示す。図13(B)に示すスケルトンモデルが訓練データセットにより学習されることで、ネットワークパラメータが最適化される。
【0141】
その後、図13(C)に示すように、補助ブロックに相当する残差ブロック20が追加され、訓練データセットにより学習されることで、追加された残差ブロック20のネットワークパラメータが最適化される。図13(C)に示す補助ブロックは段階的に追加され、補助ブロックが追加されるたびに訓練データセットによる学習が実行される。
【0142】
以上のような追加的な学習によって、最終的には、図13(D)に示すような、学習済の完全モデルを得ることができる。
【0143】
[H.機能構成]
次に、本実施の形態に従う学習装置100の機能構成の一例について説明する。
【0144】
図14は、本実施の形態に従う学習装置100の機能構成の一例を示すブロック図である。図14に示される各機能構成は、典型的には、プロセッサ(CPU102および/またはGPU104)が学習プログラム114などを実行することで実現される。
【0145】
図14を参照して、学習装置100は、その機能構成として、完全モデル構成部150と、暫定学習部152と、基準性能値算出部154と、ブロック種別特定部156と、ブロック除去部158と、性能値算出部160と、モデル更新部162と、学習部164とを含む。
【0146】
完全モデル構成部150は、モデル定義データに従って完全モデルを構成する。暫定学習部152は、完全モデル構成部150により構成された完全モデルを縮小訓練データセットにより学習することで、暫定モデルパラメータを決定する。
【0147】
基準性能値算出部154は、完全モデル構成部150により構成される完全モデルに、暫定学習部152により決定された暫定モデルパラメータを適用して得られる、暫定学習済みモデルに対して、評価データを与えることで性能値を算出する。この算出される性能値が基準性能値となる。
【0148】
ブロック除去部158は、暫定学習済みモデルを構成する残差ブロック20の特徴抽出コンポーネント4を順に除去した除去モデルを構成する。性能値算出部160は、ブロック除去部158により構成される除去モデルに対して、評価データを与えることで性能値を算出する。ブロック除去部158および性能値算出部160は、完全モデルに含まれる残差ブロック20の数だけ処理を繰返す。
【0149】
ブロック種別特定部156は、基準性能値と各残差ブロック20の特徴抽出コンポーネント4を除去したときに算出される性能値とを比較して、完全モデルに含まれる各残差ブロック20が「スケルトンブロック」および「補助ブロック」のいずれに属するのかを特定する。
【0150】
モデル更新部162は、ブロック種別特定部156によりスケルトンブロックであると特定された残差ブロック20のみからなるスケルトンモデルを構成するとともに、学習部164による学習処理の進行に沿って、スケルトンモデルに補助ブロックを追加した追加ネットワークに順次更新する。
【0151】
学習部164は、モデル更新部162により順次更新されるモデルを訓練データセットにより学習することで、モデルパラメータを順次決定する。モデル更新部162によるモデルの更新が完了した時点におけるモデルパラメータが最終的な学習済みモデルを規定することになる。
【0152】
[I.検証実験]
次に、本実施の形態に従う学習方法について実施した検証実験について説明する。
【0153】
(i1:タスクおよびデータセット)
本検証実験においては、一例として、対象となるResNetモデルを日本語講演の音声認識タスクに適用した場合の認識結果を評価した。訓練データセットおよび評価データとしては、上述したCSJを用いた。
【0154】
具体的には、訓練データセットとしては、表1に示すCSJ−TrainおよびCSJ−Trainsmallを用いるとともに、評価データとして、CSJ−Eval01、CSJ−Eval02、CSJ−Eval03を用いる。
【0155】
(i2:ベースラインモデル)
比較対象となるベースラインモデルとして、DNN−HMM(deep neural network and hidden Markov model)モデルを取り上げる。DNN−HMMについては、CSJ−Trainにより学習した。
【0156】
具体的には、まず、音響モデルに相当するGMM−HMM(Gaussian mixture model and hidden Markov model)モデルを、メル周波数ケプストラム係数(MFCC:Mel frequency cepstral coefficient)特徴により学習する。このとき、線形判別分析(LDA:linear discriminant analysis)、最尤線形変換(MLLT:maximum likelihood linear transformation)、および、fMMLR(feature-space maximum likelihood linear regression)ベースの話者正規化学習(SAT:speaker adaptive training)を適用する。
【0157】
続いて、5つの隠れ層(各層は2048個の隠れノードを有する)からなるDNNモデル(言語モデルに相当する)を学習する。出力層は、8522個のノードを有しており、これは、GMM−HMMモデル(音響モデル)の結合結果であるトライフォン(triphone)状態に対応する。24次元のフィルタバンク特徴ならびにその1次導関数および2次導関数を用いて、DNNモデルを学習する。なお、訓練データセットとして用いた特徴は、話者毎に平均化および正規化が行われている。
【0158】
フィルタバンク特徴がDNNに入力される場合には、その直前の5フレームおよび後続の5フレーム分のフィルタバンク特徴を追加する(全体として11フレーム分)。DNNモデルは、教師無の事前学習、ならびに、交差エントロピー損失基準に基づく標準的な確率的勾配降下法(SGD:stochastic gradient descent)を用いた教師有の微調整により初期化される。
【0159】
上述したようなベースラインモデルの学習については、Kaldiツールキットを用いて実施する。
【0160】
また、4グラム単語言語モデル(WLM:word language model)を、591時間分のCSJ訓練データセットの転記テキストにより学習する。WLMの語彙サイズは98×10である。
【0161】
(i3:ResNetモデルに対する評価用の設定)
本検証実験においては、110層のResNetモデルを用いる。入力される特徴は、1つのチャネルに結合される。ResNetモデルのラベルは、上述のベースラインモデルであるDNN−HMMモデルの状態ラベルと同じである。
【0162】
まず、ウオームアップ初期化のための並列処理を行なわず、110層のResNetモデルを、CSJ−Trainsmallにより学習する。そして、CSJ−Trainにより並列処理で学習が実行される。
【0163】
追加学習においては、スケルトンモデルがウオームアップ初期化のために用いられる。そのため、CSJ−Trainを並列学習に用いることができる。
【0164】
また、追加学習においては、補助ブロックを一度に追加するのではなく、段階的に追加する(最初に補助ブロックの50%を追加し、その後に残りの50%を追加する)。スケルトンブロックに補助ブロックを追加するたびに、CSJ−Trainsmallのいくつかのエポックを用いて、小さな学習レートでネットワーク全体を調整した上で、CSJ−Trainにより再度学習を実施する。この場合において、スケルトンモデルに含まれるスパンの長い残差結合は、そのまま維持されることになる。
【0165】
モデルの学習は、CNTKツールキットおよびpythonスクリプトを用いて実施する。従前のシステムとの整合性を考慮して、特徴およびラベルについては、Kaldi IOを用いた。ネットワークを最適化する手法として、Nesterovモメンタムおよび交差エントロピー損失を用いた確率的勾配降下法(SGD)を採用する。評価を高速化するために、配布されている学習アルゴリズムに含まれる、ブロック状モデル更新フィルタリング(BMUF:block-wise model update filtering)を用いる。なお、上述したような実装は一例であり、任意のツールキットやライブラリを用いることができる。
【0166】
完全モデルならびにスケルトンモデルおよび追加モデルは、いずれも、NVIDIA社のTesla(登録商標)K40GPUを用いて並列的に学習する。各ミニバッチに対する学習レートの初期値は0.1とし、モメンタムは0.9とする。バッチサイズは4000とし、エポック数の最大値は25とする。
【0167】
(i4:評価結果)
本検証実験においては、図3に示す110層のResNetである完全モデルをそのまま学習した場合(従来:完全モデル)の結果と、本実施の形態に従う学習方法に従って、スケルトンブロックからなるスケルトンモデルに補助ブロックを追加しつつ学習した場合(本実施の形態:スケルトンモデル+追加モデル)の結果とを比較した。ベースラインモデルについての結果を含めて、以下の表3に示す。
【0168】
【表3】
【0169】
表3には、異なるニューラルネットワークを有する音響モデルの音声認識の性能値(WER%)をそれぞれ示す。
【0170】
評価指標としては、自動音声認識(ASR:Automatic Speech Recognition)の単語誤り率(WER:word error rate)を用いる。すなわち、学習済のモデルに音声を入力して出力されるテキストについて、当該入力された音声の転記テキストに対する誤り率(WER%)を評価指標として用いる。
【0171】
比較対象のベースラインの音響モデルとして、DNN−HMMハイブリッドモデル(DNN−HMM)と、双方向LSTM−CTC(BLSTM−CTC)モデルと、残差メモリネットワーク(RMN:residual memory network)モデル(15層、単方向)とについても学習した。BLSTM−CTCモデルについては、EESENを用いてデコードを行ない、他の音響モデルについては、Kaldiデコーダに適用する。
【0172】
まず、表3に示すように、ResNet(完全モデルおよびスケルトンモデル)は、ベースラインモデルである、DNN−HMMハイブリッドモデル、BLSTM−CTCモデル、および、RMNモデルに比較して、より高い性能を発揮していることが分かる。
【0173】
次に、表3に示すように、完全モデルとスケルトンモデルとの間の性能差は小さい(いずれも1%以下)ことが分かる。補助ブロックが完全に学習されたスケルトンモデルに追加された後に、CSJ−Trainによりネットワーク全体のパラメータを8エポック単位で調整する。この結果、CSJ−Eval01については、13.13%から12.59%に改善し、CSJ−Eval02については、10.41%から9.88%に改善し、CSJ−Eval03については、15.31%から14.35%に改善していることが分かる。これらの結果は、完全モデルをそのまま学習した場合に得られる結果と遜色ない性能であることを示す。
【0174】
さらに、各GPUにおいて処理される1秒あたりのフレーム数およびエポック数を計算することで、学習に要する時間を推定する。CSJ−Trainにより完全モデルをそのまま学習する場合には、4つのGPUを用いた並列処理において、1GPUあたりの学習速度は約290フレーム/1秒であり、学習に要する時間はおおよそ3週間である。
【0175】
これに対して、同じ訓練データセットおよびGPUを用いて、スケルトンモデルを学習する場合には、1GPUあたりの学習速度は約960フレーム/1秒である。これは、完全モデルをそのまま学習する場合に比較して、約3.3倍の高速化が実現できていることを示す。
【0176】
図15は、本実施の形態に従う学習方法による学習期間と性能との関係性の一例を示すグラフである。図15に示すように、110層のResNetに対応する完全モデルをそのまま学習した場合(従来)には、学習時間の増加に伴って、音声認識の性能は漸増する(WER%は漸減している)ことが分かる。
【0177】
これに対して、本実施の形態に従う学習方法を採用することで、まず、スケルトンモデルのみを学習することで、従来に比較して音声認識の性能がより早く向上することが分かる。また、補助ブロックを追加した追加モデルについての学習による性能の向上速度は、従来と同様であるが、スケルトンモデルおよび追加モデルの学習全体としては、従来の学習方法に比較して必要な学習時間を短縮できることが分かる。
【0178】
本検証実験の結果によれば、本実施の形態に従う学習方法によれば、完全ネットワークをそのまま学習する場合に比較して、学習に要する時間を約30%削減することができる。さらに、学習対象のネットワークの層数が大きくなるほど、学習時間の削減効果は大きくなることが期待される。
【0179】
[J.まとめ]
本実施の形態に従う学習方法は、ネットワーク構造において、各層が果たす役割の不均一性に着目し、相対的に重要性の高い層を抽出することで得られる簡素化モデルを先に学習する。そして、それ以外の層を順次追加することで、最終的なモデルを構成する。このような追加的な学習を採用することで、性能の低下を抑制しつつ効率的に学習を高速化できる。
【0180】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0181】
1 音声認識システム、2 モデル(完全モデル)、2A 除去モデル、4 特徴抽出コンポーネント、6 残差結合コンポーネント、10,21,24,26 畳み込み層、12 特徴抽出部、14 認識エンジン(デコーダ)、16 音響モデル、18 言語モデル、20 残差ブロック、22,25 BN処理、23,29 活性化関数、27 恒等変換処理、28 結合処理、30 出力層、32 平均化プーリング処理、34 全結合処理、40,120 訓練データセット、42 音声信号、44 テキスト、100 学習装置、102 CPU、104 GPU、106 主メモリ、108 ディスプレイ、110 ネットワークインターフェイス、112 二次記憶装置、114 学習プログラム、116 モデル定義データ、118 ネットワークパラメータ、122 入力デバイス、124 光学ドライブ、126 光学ディスク、128 内部バス、150 完全モデル構成部、152 暫定学習部、154 基準性能値算出部、156 ブロック種別特定部、158 ブロック除去部、160 性能値算出部、162 モデル更新部、164 学習部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15