(57)【要約】【課題】用途や要求仕様の変化に対応可能なニューラルネットワークおよびその最適化手法を提供する。【解決手段】最適化方法は、入力信号と正解出力信号とが対応付けられた訓練データを用意するステップと、入力信号をニューラルネットワークに入力して、ニューラルネットワークに含まれる最深層から出力される出力信号を算出するとともに、最深層を含む１つ以上の層の各々から出力される出力信号を算出するステップと、入力信号に対応付けられた正解出力信号に対する、算出されたそれぞれの出力信号の誤差をそれぞれ算出するステップと、算出されたそれぞれの誤差に基づいて、ニューラルネットワークに含まれる各層のパラメタを最適化するステップとを含む。【選択図】図３
2020129209.tif 000002
【特許請求の範囲】
【請求項１】
複数の同一または異なる層を有するニューラルネットワークのパラメタを最適化する最適化方法であって、
入力信号と正解出力信号とが対応付けられた訓練データを用意するステップと、
前記入力信号を前記ニューラルネットワークに入力して、前記ニューラルネットワークに含まれる最深層から出力される出力信号を算出するとともに、前記最深層を含む１つ以上の層の各々から出力される出力信号を算出するステップと、
前記入力信号に対応付けられた正解出力信号に対する、前記算出されたそれぞれの出力信号の誤差をそれぞれ算出するステップと、
前記算出されたそれぞれの誤差に基づいて、前記ニューラルネットワークに含まれる各層のパラメタを最適化するステップとを備える、最適化方法。
【請求項２】
前記最適化するステップは、前記算出されたそれぞれの誤差を統合するステップを含む、請求項１に記載の最適化方法。
【請求項３】
前記最適化するステップは、パラメタを最適化する対象の層に対して逆伝搬により与えられた誤差情報と、当該対象の層の出力信号について算出された誤差とに基づいて、当該対象の層のパラメタを最適化するステップを含む、請求項１に記載の最適化方法。
【請求項４】
請求項１〜３のいずれか１項に記載の最適化方法をコンピュータに実行させるための最適化プログラム。
【請求項５】
複数の同一または異なる層を有するニューラルネットワークからなる最適化済モデルを用いた推論方法であって、
任意の入力信号を前記最適化済モデルに入力するステップと、
前記最適化済モデルの最深層に向かって順番に出力信号を算出するステップと、
前記最適化済モデルに含まれる前記複数の同一または異なる層のうち、要求に基づいて決定される、前記最深層を含む任意の層の出力信号を推論結果として出力するステップとを備え、
前記最適化済モデルは、訓練データに含まれる入力信号を前記ニューラルネットワークに入力したときに算出される、前記最深層を含む１つ以上の層の各々から出力される出力信号と、前記訓練データに含まれる前記入力信号に対応付けられた正解出力信号とのそれぞれの誤差に基づいて、パラメタを最適化することで生成される、推論方法。
【請求項６】
請求項５に記載の最適化方法をコンピュータに実行させるための推論プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、深層学習の最適化手法およびその最適化手法により得られる最適化済モデルの利用手法に関する。
【背景技術】
【０００２】
深層学習に基づく手法は、自然言語処理を含む人工知能の各分野において、他の機械学習手法よりも高い性能を発揮しつつある。
【０００３】
深層学習では、入力信号に対して複数の非線形変換を行って出力信号を得るニューラルネットワーク（以下、単に「モデル」とも称す。）を想定する。モデルの出力信号と予め与えられた正解出力信号との誤差に基づいて、ニューラルネットワークにおける非線形変換（すなわち、線形変換行列の係数およびバイアス項の値）を最適化する。このような最適化手法によって、タスクに応じた最適化済モデルを決定できる。人間が与えた入力信号と正解出力信号との組のみに基づいてモデルを最適化するｅｎｄ−ｔｏ−ｅｎｄの最適化手法は、人間が行っているような複雑な処理を細かい処理に分割して実装する必要がないことから、近年多くのタスクに用いられている。
【０００４】
一般的に、非線形変換の回数（すなわち、ニューラルネットワークの層数）を増加させることでより複雑な関数を表現できるようになり、入出力間で複雑な対応関係をもつ問題を解決できる可能性が高くなる。様々なタスクにおいて、層数を増加させることで性能を向上できることが報告されている。
【０００５】
深層学習における最適化手法においては、勾配消失（gradient vanishing）と呼ばれる問題が生じ得る。勾配消失問題への対処として、スキップ構造（residual connection）という手法がよく用いられる（例えば、非特許文献１参照）。この手法は、入力信号の次元数と出力信号の次元数とを等しくしなければならないという制約があるものの、ニューラルネットワークを安定的に最適化できる。
【０００６】
層数の増加に伴って、空間計算量（すなわち、パラメタの数）および時間計算量（すなわち、行列の乗算回数など）が増加する。その結果、入力信号に対するモデルの出力信号を算出する処理（推論処理）を実行するために、より多くのメモリを必要とするとともに、処理速度が低下するという問題が生じ得る。必要とするメモリを低減する目的で、ニューラルネットワークにおいて同じ層のパラメタを再帰的に使用するというアプローチが提案されている（非特許文献２参照）。
【０００７】
空間計算量および時間計算量を削減する別のアプローチとして、蒸留（knowledge distillation）と呼ばれる手法がある（非特許文献３参照）。蒸留手法は、先に複雑なモデルを最適化した上で、最適化済モデルの出力信号を参照しながら、比較的簡潔なモデルを最適化するというものである。蒸留手法によって、例えば、ニューラル機械翻訳におけるモデルの省メモリ化が実現されたことが報告されている（非特許文献４参照）。
【０００８】
空間計算量および時間計算量を削減するさらに別のアプローチとして、実数の表現精度を低減する（３２ビット表現ではなく１６ビット表現とする）手法（非特許文献５参照）、最適化済モデルにおけるパラメタの大半を＋１／−１の２値に制限できるように最適化する手法（非特許文献６参照）、ならびに、対象語彙の一部を２進符号化する手法（非特許文献７参照）などが提案されている。
2020129209.tif 000003
【発明の概要】
【発明が解決しようとする課題】
【０００９】
深層学習の最適化は、与えられたニューラルネットワークの最深層の情報のみに基づいて行われる。そのため、最適化済モデルのうち一部の層のみを使用して出力信号を算出した場合には、性能が極端に劣化し得る。すなわち、空間計算量および時間計算量を削減するアプローチとして、最適化の対象としたモデルと推論処理において利用するモデルとの間で、使用する層あるいはネットワーク構造を異ならせることはできない。
【００１０】
そのため、モデルの用途や要求仕様が変化した場合には、新たなモデルに対する最適化を再度実行する必要がある。この点については、上述した空間計算量および時間計算量を削減するいずれのアプローチについても同様である。
【００１１】
本技術は、用途や要求仕様の変化に対応可能なニューラルネットワークの最適化手法を提供することを目的としている。
【課題を解決するための手段】
【００１２】
本技術のある局面に従えば、複数の同一または異なる層を有するニューラルネットワークのパラメタを最適化する最適化方法が提供される。最適化方法は、入力信号と正解出力信号とが対応付けられた訓練データを用意するステップと、入力信号をニューラルネットワークに入力して、ニューラルネットワークに含まれる最深層から出力される出力信号を算出するとともに、最深層を含む１つ以上の層の各々から出力される出力信号を算出するステップと、入力信号に対応付けられた正解出力信号に対する、算出されたそれぞれの出力信号の誤差をそれぞれ算出するステップと、算出されたそれぞれの誤差に基づいて、ニューラルネットワークに含まれる各層のパラメタを最適化するステップとを含む。
【００１３】
最適化するステップは、算出されたそれぞれの誤差を統合するステップを含むようにしてもよい。
【００１４】
誤差を統合するステップは、算出されたそれぞれの誤差を統合して、最深層から逆伝搬させるための誤差情報を算出するステップを含むようにしてもよい。
【００１５】
誤差情報を算出するステップは、算出されたそれぞれの誤差の平均値を、最深層から逆伝搬させるための誤差情報として算出するステップを含むようにしてもよい。
【００１６】
最適化するステップは、パラメタを最適化する対象の層に対して逆伝搬により与えられた誤差情報と、当該対象の層の出力信号について算出された誤差とに基づいて、当該対象の層のパラメタを最適化するステップを含むようにしてもよい。
【００１７】
ニューラルネットワークは、入力信号に含まれる特徴的な情報を出力するエンコーダと、先に出力した出力信号および入力信号に含まれる特徴的な情報の入力を受けて出力信号を決定するデコーダとを含むようにしてもよい。
【００１８】
本技術の別の局面に従えば、上述の最適化方法をコンピュータに実行させるための最適化プログラムが提供される。
【００１９】
本技術のさらに別の局面に従えば、複数の同一または異なる層を有するニューラルネットワークからなる最適化済モデルを用いた推論方法が提供される。推論方法は、任意の入力信号を最適化済モデルに入力するステップと、最適化済モデルの最深層に向かって順番に出力信号を算出するステップと、最適化済モデルに含まれる複数の同一または異なる層のうち、要求に基づいて決定される最深層を含む任意の層の出力信号を推論結果として出力するステップとを含む。最適化済モデルは、訓練データに含まれる入力信号をニューラルネットワークに入力したときに算出される、最深層を含む１つ以上の層の各々から出力される出力信号と、訓練データに含まれる入力信号に対応付けられた正解出力信号とのそれぞれの誤差に基づいて、パラメタを最適化することで生成される。
【００２０】
推論結果として出力信号が出力される層は、出力信号の推論性能、および、出力信号が出力されるまでに要する時間の少なくとも一方の要求に基づいて決定されてもよい。
【００２１】
本技術のさらに別の局面に従えば、上述の最適化方法をコンピュータに実行させるための推論プログラムが提供される。
【発明の効果】
【００２２】
本技術によれば、用途や要求仕様の変化に対応可能なニューラルネットワークの最適化手法を提供できる。
【図面の簡単な説明】
【００２３】
【図１】一般的な深層学習を説明するための模式図である。
【図２】本実施の形態に従う深層学習を説明するための模式図である。
【図３】本実施の形態に従う処理手順の要部を示すフローチャートである。
【図４】ニューラル機械翻訳を実現するＴｒａｎｓｆｏｒｍｅｒモデルの一例を示す模式図である。
【図５】実施の形態１に従う最適化処理を説明するための模式図である。
【図６】実施の形態１に従う最適化処理の主要な処理手順を示すフローチャートである。
【図７】音声翻訳向け多言語対訳コーパスを用いた英日翻訳タスクについての評価結果を示すグラフである。
【図８】ニュース分野の対訳データを用いた英独翻訳タスクについての評価結果を示すグラフである。
【図９】実施の形態２に従う最適化処理を説明するための模式図である。
【図１０】実施の形態２に従う最適化処理を説明するための模式図である。
【図１１】実施の形態２に従う最適化処理の主要な処理手順を示すフローチャートである。
【図１２】実施の形態２における英日翻訳タスクについての評価結果を示すグラフである。
【図１３】実施の形態２における英独翻訳タスクについての評価結果を示すグラフである。
【図１４】実施の形態３に従う最適化処理を説明するための模式図である。
【図１５】実施の形態３に従う最適化処理の主要な処理手順を示すフローチャートである。
【図１６】実施の形態３における英日翻訳タスクについての評価結果を示すグラフである。
【図１７】本実施の形態に従う最適化処理および推論処理を実現するハードウェア構成の一例を示す模式図である。
【発明を実施するための形態】
【００２４】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２５】
［Ａ．関連技術］
まず、一般的な深層学習について説明する。
【００２６】
図１は、一般的な深層学習を説明するための模式図である。図１を参照して、深層学習では、入力信号に対して複数の非線形変換を施して出力信号を得るニューラルネットワーク１０を想定する。典型的には、ニューラルネットワーク１０は、入力層２と、１または複数の隠れ層４と、出力層６とからなる。入力層２、隠れ層４、および出力層６の各層は、状態を示すベクトルおよび活性化関数を含む。隣接する層の間は、アフィン変換などを介して結合される。
【００２７】
例えば、入力信号Ｘを６層の非線形変換Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ６を経て出力信号Ｙを得るモデルは、以下の（１）式のように表すことができる。
【００２８】
Ｙ＝Ｌ６（Ｌ５（Ｌ４（Ｌ３（Ｌ２（Ｌ１（Ｘ））））））    ・・・（１）
通常、入力信号Ｘは、有限固定次元の実数ベクトルｖ（∈Ｒｎ）である。非線形変換Ｌｉの各々は、線形変換行列およびバイアス項で表すことができる。線形変換行列の係数およびバイアス項の値をまとめて「パラメタ」と称される。パラメタの最適化は、対象のタスクに対してより高い性能を示すように、パラメタの各値を調整する処理を意味する。
【００２９】
ニューラルネットワークの最適化においては、最深層において最も有用な情報が得られると仮定する。この仮定に基づいて、以下の３つの処理（ステップＳ１〜Ｓ３）を繰り返すことでパラメタを最適化する。
【００３０】
（１）入力信号Ｘに対する出力信号Ｙを算出する（ステップＳ１）
（２）出力信号Ｙと正解出力信号との誤差ｅを算出する（ステップＳ２）
（３）誤差ｅに基づいて最深層から浅い層に向かって順番にパラメタを更新する（誤差逆伝搬（backpropagation））（ステップＳ３）
なお、ステップＳ２では、問題に応じた方法で誤差ｅが算出される。
【００３１】
より具体的には、（ｉ）回帰問題の場合（出力信号Ｙとして一定の範囲の実数ベクトルｖ（∈Ｒｎ）を得たい場合）には、シグモイド関数などを用いて出力信号Ｙを正規化し、正解出力信号である実数ベクトルｖ’（∈Ｒｎ）に対する誤差ｅを算出する。
【００３２】
また、（ｉｉ）分類問題の場合（出力信号Ｙとして離散値ｃ（∈Ｃ））を得たい場合）には、ソフトマックス関数などを用いて出力信号Ｙをｃに関する確率分布Ｐ（ｃ）に変換し、正解出力信号である離散値ｃ’（∈Ｃ）に対する誤差ｅを交差エントロピーとして算出する。
【００３３】
図１に示すような、入力信号と正解出力信号との組のみに基づくｅｎｄ−ｔｏ−ｅｎｄの最適化手法は、人間が行っているような複雑な処理を細かい処理に分割して実装する必要がないことから、近年多くのタスクに用いられている。
【００３４】
非線形変換の回数（すなわち、ニューラルネットワークの層数）を増加させることでより複雑な関数を表現できるようになり、性能向上の可能性を高めることができる。一方で、層数の増加に伴って、空間計算量（すなわち、パラメタの数）および時間計算量（すなわち、行列の乗算回数など）が増加するという課題もある。
【００３５】
［Ｂ．概要］
次に、本実施の形態に従うニューラルネットワークの概要について説明する。
【００３６】
図２は、本実施の形態に従う深層学習を説明するための模式図である。図２には、図１と同様のニューラルネットワーク１を示す。ニューラルネットワーク１は、図１に示すニューラルネットワーク１０と同様に、入力信号に対して複数の非線形変換を施して出力信号を出力する。
【００３７】
図１に示すニューラルネットワーク１０と同様に、ニューラルネットワーク１０は、典型例として、入力層２と、１または複数の同一または異なる隠れ層４と、出力層６とからなる。入力層２、隠れ層４、および出力層６の各層は、状態を示すベクトルおよび活性化関数を含む。隣接する層の間は、アフィン変換などを介して結合される。
【００３８】
図１に示すニューラルネットワーク１０においては、最深層の情報（すなわち、出力層６の出力信号Ｙ）のみに基づいて最適化が実行されるのに対して、本実施の形態に従うニューラルネットワーク１においては、最深層の情報に加えて、他の層の情報を用いて最適化が実行される。ニューラルネットワーク１０は、このような最適化に適したネットワーク構造を採用する。
【００３９】
すなわち、本実施の形態に従うニューラルネットワーク１は、出力層６以外の層からも出力信号を取り出すことが可能になっている。典型例として、図２（Ａ）に示すニューラルネットワーク１においては、入力層２と、隠れ層４と、出力層６の各々から出力信号Ｙ１，Ｙ２，・・・，Ｙｎ−１，Ｙｎが出力可能になっている。
【００４０】
ニューラルネットワーク１の最適化においては、最深層を含む複数の層の情報が利用される。一般的な深層学習においては、最深層の出力信号Ｙと正解出力信号との誤差のみが用いられるのに対して、本実施の形態においては、各層の出力信号に対して正解出力信号との誤差が算出され、算出された誤差が統合された上で、パラメタが最適化される。より具体的には、以下に示すような処理（ステップＳ１１〜Ｓ１３）を繰り返すことでパラメタを最適化する。
【００４１】
（１）入力信号Ｘに対する各層の出力信号Ｙ１，Ｙ２，・・・，Ｙｎ−１，Ｙｎを算出する（ステップＳ１１）
（２）出力信号Ｙ１，Ｙ２，・・・，Ｙｎ−１，Ｙｎの各々と正解出力信号との誤差ｅ１，ｅ２，・・・，ｅｎ−１，ｅｎを算出する（ステップＳ１２）
（３）誤差ｅｎ，ｅｎ−１，・・・，ｅ２，ｅ１に基づいて最深層から浅い層に向かって順番にパラメタを更新する（誤差逆伝搬）（ステップＳ１３）
なお、ステップＳ１３の誤差逆伝搬において、対応する層の誤差ｅｉが順番に考慮されることになる。すなわち、ｋ番目の層（１≦ｋ＜Ｎ）においては、（ｋ＋１）番目の層から逆伝搬される誤差情報（勾配）だけではなく、ｋ番目の層において算出された誤差ｅｋをｋ番目の層で直接受け取った上で、両者を考慮して、ｋ番目の層のパラメタを更新する。
【００４２】
すなわち、パラメタを最適化する処理は、パラメタを最適化する対象の層に対して逆伝搬により与えられた誤差情報と、当該対象の層の出力信号について算出された誤差とに基づいて、当該対象の層のパラメタを最適化する処理を含む。
【００４３】
このように、対応する層の誤差が順番に考慮されつつ、最深層から浅い層に向かって誤差情報が逆伝搬することで、各層のパラメタが更新されてもよい。
【００４４】
本実施の形態に従う技術思想は、特定の種類のニューラルネットワークに限定されるものではなく、様々な種類のニューラルネットワークに適用可能である。例えば、ＣＮＮ（Convolutional Neural Network）、Ｓｔａｃｋｅｄ  ＲＮＮ（Recurrent Neural Network）、Ｔｒａｎｓｆｏｒｍｅｒ（ニューラル機械翻訳の一形態）などのニューラルネットワークに適用可能である。
【００４５】
また、上述したように、出力信号としては、回帰問題の場合には、シグモイド関数などを用いて正規化した信号が用いられ、分類問題の場合には、ソフトマックス関数などを用いて確率分布に変換した信号が用いられる。いずれの形式の出力信号であっても、上述の最適化手法は適用可能である。
【００４６】
本実施の形態に従うニューラルネットワーク１においては、各層の出力信号Ｙ１，Ｙ２，・・・，Ｙｎ−１，Ｙｎがいずれも正解出力信号に対する誤差が少なくなるように、パラメタが最適化される。そのため、推論処理においては、最深層の情報（すなわち、出力層６の出力信号Ｙｎ）だけではなく、他の層の情報（すなわち、出力信号Ｙ１，Ｙ２，・・・，Ｙｎ−１）を用いることでも十分な性能を発揮できる可能性が高い。その結果、推論処理においては、要求される処理速度および性能に応じて、複数の層のうち任意の層の出力信号を推論結果として用いることができる。
【００４７】
図２（Ａ）には、各層の出力信号を正解出力信号と比較し、各層において誤差をそれぞれ算出する例を示すが、図２（Ｂ）に示すように、各層においてそれぞれ算出される誤差を統合してもよい。以下においては、誤差の統合の一手法として、平均化処理を採用した場合について説明するが、任意の手法を採用してもよい。
【００４８】
図２（Ｂ）に示す最適化手法においては、以下に示すような処理（ステップＳ１１〜Ｓ１５）を繰り返すことでパラメタを最適化する。
【００４９】
（１）入力信号Ｘに対する各層の出力信号Ｙ１，Ｙ２，・・・，Ｙｎ−１，Ｙｎを算出する（ステップＳ１１）
（２）出力信号Ｙ１，Ｙ２，・・・，Ｙｎ−１，Ｙｎの各々と正解出力信号との誤差ｅ１，ｅ２，・・・，ｅｎ−１，ｅｎを算出する（ステップＳ１２）
（３）各層の誤差ｅ１，ｅ２，・・・，ｅｎ−１，ｅｎの間を平均化して平均誤差ｅｕｎｆを算出する（ステップＳ１４）
（４）平均誤差ｅｕｎｆに基づいて最深層から浅い層に向かって順番にパラメタを更新する（誤差逆伝搬）（ステップＳ１５）
このように、パラメタを最適化する処理は、算出されたそれぞれの誤差を統合する処理を採用してもよい。この誤差を統合する処理は、算出されたそれぞれの誤差を統合して、最深層から逆伝搬させるための誤差情報を算出する処理を含む。典型的には、算出されたそれぞれの誤差の平均値を、最深層から逆伝搬させるための誤差情報として算出してもよい。
【００５０】
この平均化処理（ステップＳ１４）においては、個々の層の出力信号に対する誤差を統合している。但し、任意の方法を用いて各層の出力信号を統合した上で、誤差情報を算出し、パラメタの最適化を行ってもよい。
【００５１】
本実施の形態に従うニューラルネットワークおよびその最適化手法を採用することで、空間計算量については、最適化フェーズ（訓練時）においてわずかに増加するものの、推論フェーズ（使用時）においては要求に応じて削減できる。また、時間計算量については、最適化フェーズ（訓練時）においては増加するが、推論フェーズ（使用時）においては要求に応じて削減できる。
【００５２】
図３は、本実施の形態に従う処理手順の要部を示すフローチャートである。図３（Ａ）には、本実施の形態に従う最適化処理の処理手順を示し、図３（Ｂ）には、本実施の形態に従う推論処理の処理手順を示す。
【００５３】
図３（Ａ）には、複数の層を有するニューラルネットワーク（モデル）のパラメタを最適化する最適化方法の処理手順を示す。図３（Ａ）に示す主要なステップは、典型的には、プロセッサが最適化プログラムを実行することで実現される。
【００５４】
図３（Ａ）を参照して、まず、最適化処理に用いられる、入力信号と正解出力信号とが対応付けられた訓練データが用意される（ステップＳ５０）。
【００５５】
続いて、訓練データに含まれる入力信号をニューラルネットワークに入力して、ニューラルネットワークに含まれる最深層を含む１つ以上の層の各々から出力される出力信号を算出する（ステップＳ５２）。
【００５６】
そして、訓練データの入力信号に対応付けられた正解出力信号に対する、算出されたそれぞれの出力信号の誤差をそれぞれ算出する（ステップＳ５４）。算出されたそれぞれの誤差に基づいて、ニューラルネットワークに含まれる各層のパラメタを最適化する（ステップＳ５６）。なお、各層のパラメタを最適化する処理は、ステップＳ５４において算出されるそれぞれの誤差を統合する処理を含み得る。誤差を統合する処理は、上述の図２（Ａ）および図２（Ｂ）に示すように、誤差逆伝搬の過程で実行される。図２（Ｂ）に示す場合には、誤差を統合する処理は、誤差逆伝搬の前にも実行される。
【００５７】
通常、予め設定された回数、または、訓練データとは別に用意された検証用データ（開発データ）に対する精度が収束するまで、ステップＳ５２〜Ｓ５６の処理が繰り返される。
【００５８】
図３（Ｂ）には、複数の層を有するニューラルネットワークからなる最適化済モデルを用いた推論方法の処理手順を示す。図３（Ｂ）に示す主要なステップは、典型的には、プロセッサが推論プログラムを実行することで実現される。
【００５９】
ここで、最適化済モデルは、図３（Ａ）に示す最適化方法の処理手順に従って生成される。すなわち、最適化済モデルは、訓練データに含まれる入力信号をニューラルネットワークに入力したときに算出される、最深層を含む１つ以上の層の各々から出力される出力信号と、訓練データに含まれる入力信号に対応付けられた正解出力信号とのそれぞれの誤差に基づいて、パラメタを最適化することで生成される。
【００６０】
図３（Ｂ）を参照して、任意の入力信号を最適化済モデルに入力する（ステップＳ６０）。そして、最適化済モデルの最深層に向かって順番に出力信号を算出する（ステップＳ６２）。すなわち、入力信号に対して、各層に規定される非線形変換が順番に実行される。
【００６１】
最終的に、最適化済モデルに含まれる複数の層のうち最深層を含む任意の層の出力信号を推論結果として出力する（ステップＳ６４）。そして、推論処理は終了する。
【００６２】
なお、推論結果として出力信号が出力される層は、出力信号の推論性能、および、出力信号が出力されるまでに要する時間の少なくとも一方の要求に基づいて決定されてもよい。この点については、後述の実施の形態１〜３において具体例を挙げて説明する。
【００６３】
本実施の形態に従うニューラルネットワークおよびその最適化手法によれば、すべての層に対して誤差情報をより直接的に反映したパラメタの更新が可能となるため、モデルの頑健性（ロバスト性）を高めることができる。このため、最適化済モデルの使用時（推論フェーズ）において、訓練時（最適化フェーズ）よりも少ない任意の数の層のみを用いた場合でも、性能が極端に劣化することを防止でき、ひいては処理速度の改善が可能となる。このように、Ｎ層のニューラルネットワークを最適化した場合は、使用時（推論フェーズ）において、１〜Ｎ層のＮ段階の柔軟性を実現できる。
【００６４】
［Ｃ．アプリケーション例］
次に、本実施の形態に従うニューラルネットワークおよびその最適化手法を適用したアプリケーション例について説明する。
【００６５】
上述したように、本実施の形態に従うニューラルネットワークおよびその最適化手法は、ニューラルネットワーク全般に適用可能である。本明細書においては、アプリケーションの一例として、系列変換モデル、特にニューラル機械翻訳を想定する。
【００６６】
具体的には、後述の実施の形態１および２においては、非特許文献８に示されるような６層のＴｒａｎｓｆｏｒｍｅｒモデルを採用し、後述の実施の形態３においては、非特許文献２に示されるような６層のＲｅｃｕｒｒｅｎｔｌｙ  Ｓｔａｃｋｅｄ  Ｔｒａｎｓｆｏｒｍｅｒ（ＲＳ−Ｔｒａｎｓｆｏｒｍｅｒ）モデルを採用した。
【００６７】
図４は、ニューラル機械翻訳を実現するＴｒａｎｓｆｏｒｍｅｒモデルの一例を示す模式図である。図４を参照して、Ｔｒａｎｓｆｏｒｍｅｒモデル２０においては、入力信号を第１言語のシーケンスとし、出力信号を第２言語のシーケンスとすることで、ニューラル機械翻訳を実現する。なお、ニューラル機械翻訳は、分類問題として捉えることができる。より具体的には、Ｔｒａｎｓｆｏｒｍｅｒモデル２０は、エンコーダ３０と、デコーダ４０とを含む。
【００６８】
エンコーダ３０は、入力信号に含まれる特徴的な情報を出力する。エンコーダ３０は、入力信号に含まれる特徴的な情報を抽出するためのＮ層の隠れ層３２を有している。エンコーダ３０の前段には、入力信号であるシーケンス（自然言語）中の各語を固定次元のベクトルに変換するための入力層３６が配置されている。
【００６９】
デコーダ４０は、先に出力した出力信号（既出力）および入力信号に含まれる特徴的な情報の入力を受けて、出力信号を決定する。デコーダ４０は、Ｍ層の隠れ層４２を有している。デコーダ４０の前段には、既出力であるシーケンス（自然言語）中の各語を固定次元のベクトルに変換するための入力層４６が配置されている。
【００７０】
実施の形態１〜３においては、図４に示すようなＴｒａｎｓｆｏｒｍｅｒモデルを用いたニューラル機械翻訳の性能を評価した。
【００７１】
［Ｄ．実施の形態１］
図５は、実施の形態１に従う最適化処理を説明するための模式図である。図５を参照して、実施の形態１においては、デコーダ４０のＭ層の隠れ層４２（一例として、６層）からのそれぞれの出力信号を用いて誤差情報を生成する。経路５０に沿って、デコーダ４０の最深層から浅い層に向かって、および、エンコーダ３０の最深層から浅い層に向かって、誤差情報が順番に逆伝搬する。
【００７２】
図６は、実施の形態１に従う最適化処理の主要な処理手順を示すフローチャートである。図６を参照して、まず、最適化処理に用いられる訓練データを用意する（ステップＳ１００）。
【００７３】
続いて、訓練データに含まれる入力信号に基づいて、Ｔｒａｎｓｆｏｒｍｅｒモデル２０のエンコーダ３０の入力信号ｅｎｃ０として入力するテンソルＸを算出する（ｅｎｃ０＝Ｘ）（ステップＳ１０２）。また、誤差情報ｌｏｓｓをゼロに初期化する（ｌｏｓｓ＝０）（ステップＳ１０４）。
【００７４】
続いて、エンコーダ３０の各層の出力信号を算出する。すなわち、エンコーダ３０に含まれる隠れ層３２の層位置を示すインデックスｉ（１≦ｉ≦Ｎ）について、出力信号ｅｎｃｉ＝Ｌｉｅｎｃ（ｅｎｃｉ−１）をそれぞれ算出する（ステップＳ１１０）。ここで、Ｌｉｅｎｃは、エンコーダ３０に含まれるｉ番目の隠れ層３２の非線形変換を示す。エンコーダ３０の最深層の出力である出力信号ｅｎｃＮ（入力信号に含まれる特徴的な情報）がデコーダ４０へ与えられることになる。
【００７５】
続いて、デコーダ４０の各層の出力信号および誤差を算出する。すなわち、デコーダ４０に含まれる隠れ層４２の層位置を示すインデックスｊ（１≦ｊ≦Ｍ）について、エンコーダの最深層の出力信号ｅｎｃＮを参照しつつ、出力信号ｄｅｃｊ＝Ｌｊｄｅｃ（ｄｅｃｊ−１，ｅｎｃＮ）をそれぞれ算出する（ステップＳ１２０）。ここで、Ｌｊｄｅｃは、デコーダ４０に含まれるｊ番目の隠れ層３２の非線形変換を示す。
【００７６】
デコーダ４０の各層において、確率分布としての出力信号Ｙ＾ｊ＝ｓｏｆｔｍａｘ（ｄｅｃｊ）を算出する（ステップＳ１２２）。なお、電子出願システムの制約上、ハット記号「＾」を対象の文字に続けて記載している（以下、同様である。）。
【００７７】
さらに、確率分布としての出力信号Ｙ＾ｊと離散値としての正解出力信号Ｙとの誤差を交差エントロピーとして算出し、誤差情報ｌｏｓｓに加算する（ステップＳ１２４）。すなわち、誤差情報ｌｏｓｓ＝ｌｏｓｓ＋ｃｒｏｓｓ＿ｅｎｔｒｏｐｙ（Ｙ＾ｊ，Ｙ）が算出される。
【００７８】
最終的に、デコーダ４０の各層において算出された誤差の平均値が、パラメタの最適化に用いられる誤差情報として決定される（ステップＳ１３０）。すなわち、誤差情報ｌｏｓｓ＝ｌｏｓｓ／Ｍが算出される。そして、算出された誤差情報ｌｏｓｓに基づいて、デコーダ４０の最深層から浅い層に向かって順番にパラメタが更新され、続いて、エンコーダ３０の最深層から浅い層に向かって順番にパラメタが更新される（ステップＳ１３２）。
【００７９】
通常は、上述したステップＳ１０２以下の処理が複数回に亘って繰り返される。
なお、説明の便宜上、図５および図６においては記載を省略しているが、実際には、バッチノーマライゼーション（Batch Normalization）やドロップアウト（dropout）などの過学習を回避するための処理を適宜配置してもよい。また、最適化処理を高速化するための任意の処理を適宜配置してもよい（例えば、非特許文献５〜７など参照）。
【００８０】
上述した最適化処理による性能を以下の２つの翻訳タスクについて評価した。
１番目の翻訳タスクとして、情報通信研究機構（ＮＩＣＴ）により開発された音声翻訳向け多言語対訳コーパス（非特許文献９および非特許文献１０参照）を用いた英日翻訳タスクを設定した。多言語対訳コーパスから、訓練データとして約４０万文対を設定し、評価用データとして約２０００文対を設定した。
【００８１】
２番目の翻訳タスクとして、ニュース分野の対訳データ（非特許文献１１および非特許文献１２参照）を用いた英独翻訳タスクを設定した。ニュース分野の対訳データから、訓練データとして約５６０万文対を設定し、評価用データとして約３０００文対を設定した。
【００８２】
それぞれの翻訳タスクについて、翻訳性能をＢＬＥＵスコア（非特許文献１３参照）および翻訳の速度で評価した。
【００８３】
図７は、音声翻訳向け多言語対訳コーパスを用いた英日翻訳タスクについての評価結果を示すグラフである。図８は、ニュース分野の対訳データを用いた英独翻訳タスクについての評価結果を示すグラフである。
【００８４】
図７および図８に示す「ＢＬＵＥ：１×６」は、エンコーダ３０の層数を６とし、デコーダ４０の層数を６とした上で、図６に示す手順に従う最適化処理により得られた最適化済モデルの翻訳性能を示す。「ＢＬＵＥ：６−ｋ」は、エンコーダ３０の層数を６とし、デコーダ４０の層数を１〜６と異ならせた６種類のモデルについて関連技術に従う最適化処理（最深層の誤差情報のみに基づく最適化処理）により得られたそれぞれの最適化済モデル（６種類）の翻訳性能を示す。「ＢＬＵＥ：６−６」は、エンコーダ３０の層数を６とし、デコーダ４０の層数を６とした上で、関連技術に従う最適化処理により得られた最適化済モデルの翻訳性能を示す。「ＢＬＵＥ：６−６」に示す翻訳性能は、同一の最適化済モデルについて、推論フェーズにおいて使用するデコーダ４０の層数を１〜６にそれぞれ異ならせたものである。
【００８５】
なお、図６に示す手順に従う最適化処理の実行には、関連技術に従う最適化処理の実行に要した時間の約２．０倍の時間を要した。
【００８６】
図７および図８の横軸「１」〜「６」は、推論フェーズ（使用時）において使用するデコーダ４０の層を示す。例えば、横軸が「３」の位置においては、デコーダ４０の３番目の層からの出力信号が推論結果として使用された場合の性能を示す。
【００８７】
図７および図８に示すように、関連技術に従う最適化処理により得られた最適化済モデル（ＢＬＵＥ：６−６）においては、使用するデコーダ４０の層数を最適化フェーズ（訓練時）よりも減らした場合には、翻訳性能（ＢＬＵＥスコア）が極端に劣化していることが分かる。
【００８８】
また、推論フェーズで使用するのと同じ層数のデコーダ４０を有するモデルについて、関連技術に従う最適化処理により得られた最適化済モデル（ＢＬＵＥ：６−ｋ）においては、デコーダ４０の層数が２〜６の間では、ＢＬＵＥ：６−６と概ね同等の翻訳性能であることが分かる。
【００８９】
これに対して、実施の形態１に従う最適化処理によれば、デコーダ４０のすべての層の出力信号に基づいて、６−１〜６−６の６個のモデルを同時に最適化しており（ＢＬＵＥ：１×６）、使用するデコーダ４０の層数を最適化フェーズ（訓練時）よりも減らした場合であっても、翻訳性能の劣化はわずかであることが分かる。
【００９０】
また、図７および図８に示す「翻訳時間［ｓｅｃ］」は、実施の形態１に従う最適化処理により得られた最適化済モデル（ＢＬＵＥ：１×６）を用いて、評価用データ（英日翻訳タスクについては約２０００文、英独翻訳タスクについては約３０００文）の翻訳に要した処理時間（モデルのロード時間および入力文のエンコードに要する時間を含む）を表す。この処理時間のグラフによれば、層数を減らすことで、大幅な高速化を実現できることが分かる。
【００９１】
具体的には、１番目の翻訳タスク（英日翻訳タスク）においては、デコーダ４０の２つの層を用いることで、処理時間を約４０％低減でき、デコーダ４０の３つの層を用いることで、処理時間を約３０％低減できることが分かる。また、２番目の翻訳タスク（英独翻訳タスク）においては、デコーダ４０の２つの層を用いることで、処理時間を約５７％低減でき、デコーダ４０の３つの層を用いることで、処理時間を約３６％低減できることが分かる。
【００９２】
［Ｅ．実施の形態２］
実施の形態１においては、デコーダ４０の各層の出力信号に基づいて算出される誤差情報を用いる最適化処理について説明したが、実施の形態２においては、エンコーダ３０およびデコーダ４０の各層の出力信号に基づいて算出される誤差情報を用いる最適化処理について説明する。
【００９３】
図９および図１０は、実施の形態２に従う最適化処理を説明するための模式図である。図９および図１０を参照して、実施の形態２においては、エンコーダ３０のＮ層の隠れ層３２（一例として、６層）の各々からの出力信号、および、デコーダ４０のＭ層の隠れ層４２（一例として、６層）からのそれぞれの出力信号を用いて、誤差情報を生成する。生成された誤差情報は、経路５０に沿って、デコーダ４０の最深層から浅い層に向かって、および、エンコーダ３０の最深層から浅い層に向かって、順番に逆伝搬する。
【００９４】
図９には、一例として、エンコーダ３０の最深層（Ｎ番目の隠れ層３２）からの出力信号ｅｎｃＮがデコーダ４０に入力される場合を示し、図１０には、一例として、エンコーダ３０のｉ番目の層（ｉ番目の隠れ層３２）からの出力信号ｅｎｃｉがデコーダ４０に入力される場合を示す。図９および図１０に示すように、実施の形態２においては、エンコーダ３０の各層からのＮ通りの出力信号と、デコーダ４０の各層からのＭ通りの出力信号との組み合わせ（Ｎ×Ｍ）のそれぞれについて誤差情報が存在し得る。
【００９５】
図１１は、実施の形態２に従う最適化処理の主要な処理手順を示すフローチャートである。図１１を参照して、まず、最適化処理に用いられる訓練データを用意する（ステップＳ２００）。
【００９６】
続いて、訓練データに含まれる入力信号に基づいて、Ｔｒａｎｓｆｏｒｍｅｒモデル２０のエンコーダ３０の入力信号ｅｎｃ０として入力するテンソルＸを算出する（ｅｎｃ０＝Ｘ）（ステップＳ２０２）。また、誤差情報ｌｏｓｓをゼロに初期化する（ｌｏｓｓ＝０）（ステップＳ２０４）。
【００９７】
続いて、エンコーダ３０の各層の出力信号および誤差を算出する。すなわち、エンコーダ３０に含まれる隠れ層３２の層位置を示すインデックスｉ（１≦ｉ≦Ｎ）について、ステップＳ２１０〜Ｓ２１６の処理が繰り返される。
【００９８】
より具体的には、出力信号ｅｎｃｉ＝Ｌｉｅｎｃ（ｅｎｃｉ−１）をそれぞれ算出する（ステップＳ２１０）。ここで、Ｌｉｅｎｃは、エンコーダ３０に含まれる隠れ層３２の非線形変換を示す。この時点で、エンコーダ３０が出力する出力信号ｅｎｃｉがデコーダ４０へ与えられることになる。
【００９９】
さらに、インデックスｉの各々について、デコーダ４０の各層の出力信号および誤差を算出する。すなわち、デコーダ４０に含まれる隠れ層４２の層位置を示すインデックスｊ（１≦ｊ≦Ｍ）について、ステップＳ２１２〜Ｓ２１６の処理が繰り返される。
【０１００】
より具体的には、出力信号ｄｅｃｊ＝Ｌｊｄｅｃ（ｄｅｃｊ−１，ｅｎｃｉ）をそれぞれ算出する（ステップＳ２１２）。ここで、Ｌｊｄｅｃは、デコーダ４０に含まれるｊ番目の隠れ層３２の非線形変換を示す。
【０１０１】
そして、確率分布としての出力信号Ｙ＾ｉ，ｊ＝ｓｏｆｔｍａｘ（ｄｅｃｊ）を算出する（ステップＳ２１４）。さらに、確率分布としての出力信号Ｙ＾ｉ，ｊと離散値としての正解出力信号Ｙとの誤差を交差エントロピーとして算出し、誤差情報ｌｏｓｓに加算する（ステップＳ２１６）。すなわち、誤差情報ｌｏｓｓ＝ｌｏｓｓ＋ｃｒｏｓｓ＿ｅｎｔｒｏｐｙ（Ｙ＾ｉ，ｊ，Ｙ）が算出される。
【０１０２】
最終的に、エンコーダ３０の各層（Ｎ層）とデコーダ４０の各層（Ｍ層）との組み合わせに関して算出された誤差の平均値が、パラメタの最適化に用いられる誤差情報として決定される（ステップＳ２２０）。すなわち、誤差情報ｌｏｓｓ＝ｌｏｓｓ／（Ｎ×Ｍ）が算出される。そして、算出された誤差情報ｌｏｓｓに基づいて、デコーダ４０の最深層から浅い層に向かって順番にパラメタが更新され、続いて、エンコーダ３０の最深層から浅い層に向かって順番にパラメタが更新される（ステップＳ２２２）。
【０１０３】
通常は、上述したステップＳ２０２以下の処理が複数回に亘って繰り返される。
なお、説明の便宜上、図９〜図１１においては記載を省略しているが、実際には、バッチノーマライゼーションやドロップアウトなどの過学習を回避するための処理を適宜配置してもよい。また、最適化処理を高速化するための任意の処理を適宜配置してもよい（例えば、非特許文献５〜７など参照）。
【０１０４】
上述した最適化処理による性能を１番目の翻訳タスク（実施の形態１において説明した英日翻訳タスクと同じ）および２番目の翻訳タスク（実施の形態１において説明した英独翻訳タスクと同じ）について評価した。実施の形態１と同様に、翻訳性能をＢＬＥＵスコアおよび翻訳の速度でそれぞれ評価した。
【０１０５】
図１２は、実施の形態２における英日翻訳タスクについての評価結果を示すグラフである。図１２（Ａ）には、図１１に示す手順に従う最適化処理により得られた最適化済モデルについてのＢＬＵＥスコアの評価結果を示し、図１２（Ｂ）には、図１１に示す手順に従う最適化処理により得られた最適化済モデルについての処理時間の評価結果を示す。処理時間は、評価用データ（約２０００文）の翻訳に要した処理時間（モデルのロード時間および入力文のエンコードに要する時間を含む）を表す。
【０１０６】
図１３は、実施の形態２における英独翻訳タスクについての評価結果を示すグラフである。図１３（Ａ）には、図１１に示す手順に従う最適化処理により得られた最適化済モデルについてのＢＬＵＥスコアの評価結果を示し、図１３（Ｂ）には、図１１に示す手順に従う最適化処理により得られた最適化済モデルについての処理時間の評価結果を示す。処理時間は、評価用データ（約３０００文）の翻訳に要した処理時間（モデルのロード時間および入力文のエンコードに要する時間を含む）を表す。
【０１０７】
図１２（Ａ）、図１２（Ｂ）、図１３（Ａ）および図１３（Ｂ）において、横軸「１」〜「６」は、推論フェーズ（使用時）において使用するエンコーダ３０の層数を示す。また、縦軸「１」〜「６」は、推論フェーズ（使用時）において使用するデコーダ４０の層数を示す。例えば、横軸が「３」および横軸が「３」の位置においては、エンコーダ３０の３番目の層からの出力信号（入力信号に含まれる特徴的な情報）がデコーダ４０に入力され、デコーダ４０の３番目の層からの出力信号が推論結果として使用された場合の性能を示す。
【０１０８】
なお、図１１に示す手順に従う最適化処理の実行には、関連技術に従う最適化処理の実行に要した時間の約９．５倍の時間を要した。
【０１０９】
図１２（Ａ）に示すように、エンコーダ３０の４つ以上の層およびデコーダ４０の３つ以上の層を用いることで、関連技術に従う最適化処理により得られた最適化済モデルによる翻訳性能（２７．０９ポイント）と同等の翻訳性能（２６．０９〜２６．５３ポイント）を発揮できることが分かる。
【０１１０】
図１２（Ｂ）に示すように、エンコーダ３０の４つ以上の層およびデコーダ４０の３つの層を用いた場合には、関連技術に従う最適化処理により得られた最適化済モデルを用いた場合の処理時間（８５．２０単位時間）に比較して、処理時間を約３０％低減できることが分かる（５７．２５〜５９．４９単位時間）。
【０１１１】
また、図１３（Ａ）に示すように、エンコーダ３０の４つの層およびデコーダ４０の４つの層を用いることで、関連技術に従う最適化処理により得られた最適化済モデルによる翻訳性能（３２．３１ポイント）と同等の翻訳性能（３１．４４〜３２．０３ポイント）を発揮できることが分かる。
【０１１２】
図１３（Ｂ）に示すように、エンコーダ３０の４つ以上の層およびデコーダ４０の４つの層を用いた場合には、関連技術に従う最適化処理により得られた最適化済モデルを用いた場合の処理時間（２５１．６９単位時間）に比較して、処理時間を約３５％低減できることが分かる（１３７．８８〜１６１．４４単位時間）。
【０１１３】
なお、図１２（Ｂ）および図１３（Ｂ）の評価結果によれば、使用するエンコーダ３０の層数を減らすことは、処理の高速化にはあまり有効ではなく、一方、使用するデコーダ４０の層数を減らすことは、処理の高速化にはより有効であることが分かる。
【０１１４】
［Ｆ．実施の形態３］
実施の形態１および２においては、エンコーダ３０およびデコーダ４０が複数の異なる層を有するモデルを例示した。このような複数の異なる層を有するエンコーダ３０およびデコーダ４０に代えて、同じ層を再帰的に使用することで、メモリの使用量を抑制しつつ、複数の層と同等の非線形変換を実現できる（非特許文献２など参照）。実施の形態３においては、同じ層を再帰的に使用するモデルに対する最適化処理について説明する。
【０１１５】
図１４は、実施の形態３に従う最適化処理を説明するための模式図である。図１４を参照して、ＲＳ−Ｔｒａｎｓｆｏｒｍｅｒモデル２０Ａは、隠れ層３２を再帰的に使用可能に結合されたエンコーダ３０Ａと、隠れ層４２を再帰的に使用可能に結合されたデコーダ４０Ａとを含む。エンコーダ３０Ａの出力信号（入力信号に含まれる特徴的な情報）は、デコーダ４０Ａへ出力される。
【０１１６】
隠れ層３２を再帰的にＮ回使用することで、Ｎ層分に相当する非線形変換を実現でき、隠れ層４２を再帰的にＭ回使用することで、Ｍ層分に相当する非線形変換を実現できる。一方で、隠れ層３２および隠れ層４２は、１層分しか存在しないので、ＲＳ−Ｔｒａｎｓｆｏｒｍｅｒモデル２０Ａを規定するパラメタの数をＴｒａｎｓｆｏｒｍｅｒモデル２０よりも低減できる。
【０１１７】
実施の形態３においては、簡単化のため、実施の形態１と同様に、エンコーダ３０については関連技術と同様に最深層の出力信号のみに基づいて算出される誤差信号を用いるとともに、デコーダ４０Ａの各層の出力信号（すなわち、各再帰処理における出力信号）に基づいて算出される誤差情報を用いた最適化処理を実行する。但し、実施の形態２と同様に、エンコーダ３０Ａの各層の出力信号に基づいて算出される誤差信号、および、デコーダ４０Ａの各層の出力信号（すなわち、各再帰処理における出力信号）に基づいて算出される誤差情報を用いる最適化処理を採用してもよい。
【０１１８】
図１４に示すＲＳ−Ｔｒａｎｓｆｏｒｍｅｒモデル２０Ａに対する最適化処理においては、経路５０に沿って、デコーダ４０Ａの最深層から浅い層に向かって、および、エンコーダ３０Ａの最深層から浅い層に向かって、誤差情報が順番に逆伝搬する。この誤差情報を逆伝搬する処理においても、所定回数の再帰処理が実行される。すなわち、同一の隠れ層に対して、誤差情報が複数回に亘って逆伝搬することで、パラメタが最適化される。
【０１１９】
図１５は、実施の形態３に従う最適化処理の主要な処理手順を示すフローチャートである。図１５を参照して、まず、最適化処理に用いられる訓練データを用意する（ステップＳ３００）。
【０１２０】
続いて、訓練データに含まれる入力信号に基づいて、ＲＳ−Ｔｒａｎｓｆｏｒｍｅｒモデル２０Ａのエンコーダ３０Ａの入力信号ｅｎｃ０として入力するテンソルＸを算出する（ｅｎｃ０＝Ｘ）（ステップＳ３０２）。また、誤差情報ｌｏｓｓをゼロに初期化する（ｌｏｓｓ＝０）（ステップＳ３０４）。
【０１２１】
続いて、エンコーダ３０Ａの各層の出力信号を算出する。すなわち、エンコーダ３０Ａの隠れ層３２についての再帰処理の回数を示すインデックスｉ（１≦ｉ≦Ｎ）について、出力信号ｅｎｃｉ＝Ｌｅｎｃ（ｅｎｃｉ−１）をそれぞれ算出する（ステップＳ３１０）。ここで、Ｌｅｎｃは、エンコーダ３０Ａに含まれる隠れ層３２の非線形変換を示す。Ｎ回の再帰処理によって得られたエンコーダ３０Ａの出力である出力信号ｅｎｃＮ（最深層の出力信号に相当）がデコーダ４０Ａへ与えられることになる。
【０１２２】
続いて、デコーダ４０Ａの各層の出力信号および誤差を算出する。すなわち、デコーダ４０Ａの隠れ層４２についての再帰処理の回数を示すインデックスｊ（１≦ｊ≦Ｍ）について、出力信号ｄｅｃｊ＝Ｌｄｅｃ（ｄｅｃｊ−１，ｅｎｃＮ）をそれぞれ算出する（ステップＳ３２０）。そして、確率分布としての出力信号Ｙ＾ｊ＝ｓｏｆｔｍａｘ（ｄｅｃｊ）を算出する（ステップＳ３２２）。さらに、確率分布としての出力信号Ｙ＾ｊと離散値としての正解出力信号Ｙとの誤差を交差エントロピーとして算出し、誤差情報ｌｏｓｓに加算する（ステップＳ３２４）。すなわち、誤差情報ｌｏｓｓ＝ｌｏｓｓ＋ｃｒｏｓｓ＿ｅｎｔｒｏｐｙ（Ｙ＾ｊ，Ｙ）が算出される。
【０１２３】
最終的に、デコーダ４０Ａの各層において算出された誤差の平均値が、パラメタの最適化に用いられる誤差情報として決定される（ステップＳ３３０）。すなわち、誤差情報ｌｏｓｓ＝ｌｏｓｓ／Ｎが算出される。そして、算出された誤差情報ｌｏｓｓに基づいて、デコーダ４０Ａの最深層から浅い層に向かって順番にパラメタが更新され、続いて、エンコーダ３０Ａの最深層から浅い層に向かって順番にパラメタが更新される（ステップＳ３３２）。
【０１２４】
通常は、上述したステップＳ３０２以下の処理が複数回に亘って繰り返される。
なお、説明の便宜上、図１４および図１５においては記載を省略しているが、実際には、バッチノーマライゼーションやドロップアウトなどの過学習を回避するための処理を適宜配置してもよい。また、最適化処理を高速化するための任意の処理を適宜配置してもよい（例えば、非特許文献５〜７など参照）。
【０１２５】
上述した最適化処理による性能を１番目の翻訳タスク（実施の形態１において説明した英日翻訳タスクと同じ）について評価した。実施の形態１と同様に、翻訳性能をＢＬＥＵスコアで評価した。なお、エンコーダ３０Ａおよびデコーダ４０Ａの再帰処理の回数は同数（すなわち、図１５において、Ｎ＝Ｍ）とした。
【０１２６】
図１４に示すＲＳ−Ｔｒａｎｓｆｏｒｍｅｒモデル２０Ａの最適化済モデルは、実施の形態１に従うＴｒａｎｓｆｏｒｍｅｒモデル２０の最適化済モデルに比較して、データサイズが４７％まで低減された。
【０１２７】
図１６は、実施の形態３における英日翻訳タスクについての評価結果を示すグラフである。図１６（Ａ）には、非特許文献２に示される関連技術に従う最適化処理により得られた最適化済モデルについてのＢＬＵＥスコアの評価結果を示し、図１６（Ｂ）には、図１５に示す手順に従う最適化処理により得られた最適化済モデルについてのＢＬＵＥスコアの評価結果を示す。
【０１２８】
図１６（Ａ）および図１６（Ｂ）において、横軸「１」〜「６」は、最適化フェーズ（訓練時）における再帰処理の回数を示す。また、縦軸「１」〜「６」は、推論フェーズ（使用時）において使用するデコーダ４０Ａの再帰処理の回数を示す。推論フェーズにおいて使用するエンコーダ３０Ａの再帰処理の回数は、最適化フェーズと同じである。
【０１２９】
図１６（Ａ）および図１６（Ｂ）に示すグラフにおいて、左上から右下にかけての対角線上の値は、推論フェーズ（使用時）において、最適化フェーズ（訓練時）と同じ回数の再帰処理を実行した場合の結果を示す。図１６（Ａ）および図１６（Ｂ）に示すグラフの左下の部分は、デコーダ４０Ａの再帰処理の回数を最適化フェーズ（訓練時）よりも増やした場合を意味する。原理的には、このような処理も可能であるが、本来の目的である、処理の高速化の観点からは相反するため実際の評価は行っていない（「０．００」の値で示されている）。
【０１３０】
図１６（Ａ）および図１６（Ｂ）に示すように、再帰処理の回数が増加するほど（紙面右側にゆくほど）、翻訳性能が向上していることが分かる。しかしながら、図１６（Ａ）に示すように、関連技術に従う最適化処理により得られた最適化済モデルにおいては、デコーダ４０Ａの再帰処理の回数を最適化フェーズ（訓練時）よりも減らした場合には、翻訳性能（ＢＬＵＥスコア）が極端に劣化することが分かる。
【０１３１】
これに対して、図１６（Ｂ）に示すように、図１５に示す手順に従う最適化処理により得られた最適化済モデルによれば、デコーダ４０Ａの再帰処理の回数を最適化フェーズ（訓練時）よりも減らした場合であっても、翻訳性能の劣化はわずか（ＢＬＥＵスコアで最大０．５ポイント）であり、非特許文献２に示される最適化済モデルと同等の翻訳性能を維持できていることが分かる。
【０１３２】
［Ｇ．ハードウェア構成］
次に、本実施の形態に従う最適化処理および推論処理を実現するためのハードウェア構成の一例について説明する。
【０１３３】
図１７は、本実施の形態に従う最適化処理および推論処理を実現するハードウェア構成の一例を示す模式図である。本実施の形態に従う最適化処理および推論処理は、典型的には、コンピュータの一例である情報処理装置１００を用いて実現される。
【０１３４】
図１７を参照して、情報処理装置１００は、主要なハードウェアコンポーネントとして、ＣＰＵ（central processing unit）１０２と、ＧＰＵ（graphics processing unit）１０４と、主メモリ１０６と、ディスプレイ１０８と、ネットワークインターフェイス（Ｉ／Ｆ：interface）１１０と、二次記憶装置１１２と、入力デバイス１２２と、光学ドライブ１２４とを含む。これらのコンポーネントは、内部バス１２８を介して互いに接続される。
【０１３５】
ＣＰＵ１０２および／またはＧＰＵ１０４は、後述するような各種プログラムを実行することで、本実施の形態に従う最適化処理および推論処理を実現するプロセッサである。ＣＰＵ１０２およびＧＰＵ１０４は、複数個配置されてもよいし、複数のコアを有していてもよい。
【０１３６】
主メモリ１０６は、プロセッサ（ＣＰＵ１０２および／またはＧＰＵ１０４）が処理を実行するにあたって、プログラムコードやワークデータなどを一時的に格納（あるいは、キャッシュ）する記憶領域であり、例えば、ＤＲＡＭ（dynamic random access memory）やＳＲＡＭ（static random access memory）などの揮発性メモリデバイスなどで構成される。
【０１３７】
ディスプレイ１０８は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、ＬＣＤ（liquid crystal display）や有機ＥＬ（electroluminescence）ディスプレイなどで構成される。
【０１３８】
ネットワークインターフェイス１１０は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りする。ネットワークインターフェイス１１０としては、例えば、イーサネット（登録商標）、無線ＬＡＮ（local area network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの任意の通信方式を採用できる。
【０１３９】
入力デバイス１２２は、ユーザからの指示や操作などを受付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。また、入力デバイス１２２は、学習およびデコーディングに必要な音声信号を収集するための集音デバイスを含んでいてもよいし、集音デバイスにより収集された音声信号の入力を受付けるためのインターフェイスを含んでいてもよい。
【０１４０】
光学ドライブ１２４は、ＣＤ−ＲＯＭ（compact disc read only memory）、ＤＶＤ（digital versatile disc）などの光学ディスク１２６に格納されている情報を読出して、内部バス１２８を介して他のコンポーネントへ出力する。光学ディスク１２６は、非一過的（non-transitory）な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ１２４が光学ディスク１２６からプログラムを読み出して、二次記憶装置１１２などにインストールすることで、コンピュータが情報処理装置１００として機能するようになる。したがって、本発明の主題は、二次記憶装置１１２などにインストールされたプログラム自体、または、本実施の形態に従う機能や処理を実現するためのプログラムを格納した光学ディスク１２６などの記録媒体でもあり得る。
【０１４１】
図１７には、非一過的な記録媒体の一例として、光学ディスク１２６などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、ＭＯ（magneto-optical disk）などの光磁気記録媒体を用いてもよい。
【０１４２】
二次記憶装置１１２は、コンピュータを情報処理装置１００として機能させるために必要なプログラムおよびデータを格納する。例えば、ハードディスク、ＳＳＤ（solid state drive）などの不揮発性記憶装置で構成される。
【０１４３】
より具体的には、二次記憶装置１１２は、図示しないＯＳ（operating system）の他、典型的には、最適化処理を実現するための最適化プログラム１１４と、推論処理を実現するための推論プログラム１１６と、最適化済モデルを規定するパラメタ１１８と、訓練データ１２０とを格納している。
【０１４４】
最適化プログラム１１４は、プロセッサ（ＣＰＵ１０２および／またはＧＰＵ１０４）によって実行されることで、図３（Ａ）に示すパラメタの最適化処理を実現する。また、推論プログラム１１６は、プロセッサ（ＣＰＵ１０２および／またはＧＰＵ１０４）によって実行されることで、図３（Ｂ）に示す推論処理を実現する。
【０１４５】
プロセッサ（ＣＰＵ１０２および／またはＧＰＵ１０４）がプログラムを実行する際に必要となるライブラリや機能モジュールの一部を、ＯＳが標準で提供するライブラリまたは機能モジュールにより代替してもよい。この場合には、プログラム単体では、対応する機能を実現するために必要なプログラムモジュールのすべてを含むものにはならないが、ＯＳの実行環境下にインストールされることで、目的の処理を実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【０１４６】
また、これらのプログラムは、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【０１４７】
図１７には、単一のコンピュータを用いて情報処理装置１００を構成する例を示すが、これに限らず、コンピュータネットワークを介して接続された複数のコンピュータが明示的または黙示的に連携して、情報処理装置１００および情報処理装置１００を含むシステムを実現するようにしてもよい。
【０１４８】
プロセッサ（ＣＰＵ１０２および／またはＧＰＵ１０４）がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路（hard-wired circuit）を用いて実現してもよい。例えば、ＡＳＩＣ（application specific integrated circuit）やＦＰＧＡ（field-programmable gate array）などを用いて実現してもよい。
【０１４９】
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う情報処理装置１００を実現できるであろう。
【０１５０】
説明の便宜上、同一の情報処理装置１００を用いて、最適化処理および推論処理を実行する例を示したが、最適化処理および推論処理を異なるハードウェアを用いて実現してもよい。
【０１５１】
［Ｈ．まとめ］
本実施の形態に従う最適化方法によれば、ニューラルネットワークの最深層を含む複数の層の出力信号と正解出力信号とをそれぞれ比較して得られる誤差情報に基づいて、ニューラルネットワークのパラメタを最適化する。これによって、ニューラルネットワークの隠れ層から内部的に出力される出力信号を用いた場合であっても、最深層の出力信号に対して性能が極端に劣化するような事態を避けることができる。
【０１５２】
その結果、推論処理においては、最深層の出力信号を推論結果としなくても、最深層より浅い層の出力信号を推論結果として用いることも実用上可能となる。
【０１５３】
本実施の形態に従う最適化方法によれば、各層から比較的性能の高い出力信号を得られる最適化済モデルを生成できるので、要求仕様（例えば、出力信号の推論性能や出力信号が出力されるまでに要する時間など）に応じて、任意の層の出力信号を推論結果として利用できるので、処理の高速化に加えて、柔軟性の向上も実現できる。
【０１５４】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５５】
１，１０  ニューラルネットワーク、２，３６，４６  入力層、４，３２，４２  隠れ層、６  出力層、２０，２０Ａ  モデル、３０，３０Ａ  エンコーダ、４０，４０Ａ  デコーダ、５０  経路、１００  情報処理装置、１０２  ＣＰＵ、１０４  ＧＰＵ、１０６  主メモリ、１０８  ディスプレイ、１１０  ネットワークインターフェイス、１１２  二次記憶装置、１１４  最適化プログラム、１１６  推論プログラム、１１８  パラメタ、１２０  訓練データ、１２２  入力デバイス、１２４  光学ドライブ、１２６  光学ディスク、１２８  内部バス。
【図１】
2020129209.tif 000004
【図２】
2020129209.tif 000005
【図３】
2020129209.tif 000006
【図４】
2020129209.tif 000007
【図５】
2020129209.tif 000008
【図６】
2020129209.tif 000009
【図７】
2020129209.tif 000010
【図８】
2020129209.tif 000011
【図９】
2020129209.tif 000012
【図１０】
2020129209.tif 000013
【図１１】
2020129209.tif 000014
【図１２】
2020129209.tif 000015
【図１３】
2020129209.tif 000016
【図１４】
2020129209.tif 000017
【図１５】
2020129209.tif 000018
【図１６】
2020129209.tif 000019
【図１７】
2020129209.tif 000020