本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
[A.関連技術]
まず、一般的な深層学習について説明する。
図1は、一般的な深層学習を説明するための模式図である。図1を参照して、深層学習では、入力信号に対して複数の非線形変換を施して出力信号を得るニューラルネットワーク10を想定する。典型的には、ニューラルネットワーク10は、入力層2と、1または複数の隠れ層4と、出力層6とからなる。入力層2、隠れ層4、および出力層6の各層は、状態を示すベクトルおよび活性化関数を含む。隣接する層の間は、アフィン変換などを介して結合される。
例えば、入力信号Xを6層の非線形変換L1,L2,L3,L4,L5,L6を経て出力信号Yを得るモデルは、以下の(1)式のように表すことができる。
Y=L6(L5(L4(L3(L2(L1(X)))))) ・・・(1)
通常、入力信号Xは、有限固定次元の実数ベクトルv(∈Rn)である。非線形変換Liの各々は、線形変換行列およびバイアス項で表すことができる。線形変換行列の係数およびバイアス項の値をまとめて「パラメタ」と称される。パラメタの最適化は、対象のタスクに対してより高い性能を示すように、パラメタの各値を調整する処理を意味する。
ニューラルネットワークの最適化においては、最深層において最も有用な情報が得られると仮定する。この仮定に基づいて、以下の3つの処理(ステップS1~S3)を繰り返すことでパラメタを最適化する。
(1)入力信号Xに対する出力信号Yを算出する(ステップS1)
(2)出力信号Yと正解出力信号との誤差eを算出する(ステップS2)
(3)誤差eに基づいて最深層から浅い層に向かって順番にパラメタを更新する(誤差逆伝搬(backpropagation))(ステップS3)
なお、ステップS2では、問題に応じた方法で誤差eが算出される。
より具体的には、(i)回帰問題の場合(出力信号Yとして一定の範囲の実数ベクトルv(∈Rn)を得たい場合)には、シグモイド関数などを用いて出力信号Yを正規化し、正解出力信号である実数ベクトルv’(∈Rn)に対する誤差eを算出する。
また、(ii)分類問題の場合(出力信号Yとして離散値c(∈C))を得たい場合)には、ソフトマックス関数などを用いて出力信号Yをcに関する確率分布P(c)に変換し、正解出力信号である離散値c’(∈C)に対する誤差eを交差エントロピーとして算出する。
図1に示すような、入力信号と正解出力信号との組のみに基づくend-to-endの最適化手法は、人間が行っているような複雑な処理を細かい処理に分割して実装する必要がないことから、近年多くのタスクに用いられている。
非線形変換の回数(すなわち、ニューラルネットワークの層数)を増加させることでより複雑な関数を表現できるようになり、性能向上の可能性を高めることができる。一方で、層数の増加に伴って、空間計算量(すなわち、パラメタの数)および時間計算量(すなわち、行列の乗算回数など)が増加するという課題もある。
[B.概要]
次に、本実施の形態に従うニューラルネットワークの概要について説明する。
図2は、本実施の形態に従う深層学習を説明するための模式図である。図2には、図1と同様のニューラルネットワーク1を示す。ニューラルネットワーク1は、図1に示すニューラルネットワーク10と同様に、入力信号に対して複数の非線形変換を施して出力信号を出力する。
図1に示すニューラルネットワーク10と同様に、ニューラルネットワーク10は、典型例として、入力層2と、1または複数の同一または異なる隠れ層4と、出力層6とからなる。入力層2、隠れ層4、および出力層6の各層は、状態を示すベクトルおよび活性化関数を含む。隣接する層の間は、アフィン変換などを介して結合される。
図1に示すニューラルネットワーク10においては、最深層の情報(すなわち、出力層6の出力信号Y)のみに基づいて最適化が実行されるのに対して、本実施の形態に従うニューラルネットワーク1においては、最深層の情報に加えて、他の層の情報を用いて最適化が実行される。ニューラルネットワーク10は、このような最適化に適したネットワーク構造を採用する。
すなわち、本実施の形態に従うニューラルネットワーク1は、出力層6以外の層からも出力信号を取り出すことが可能になっている。典型例として、図2(A)に示すニューラルネットワーク1においては、入力層2と、隠れ層4と、出力層6の各々から出力信号Y1,Y2,・・・,Yn-1,Ynが出力可能になっている。
ニューラルネットワーク1の最適化においては、最深層を含む複数の層の情報が利用される。一般的な深層学習においては、最深層の出力信号Yと正解出力信号との誤差のみが用いられるのに対して、本実施の形態においては、各層の出力信号に対して正解出力信号との誤差が算出され、算出された誤差が統合された上で、パラメタが最適化される。より具体的には、以下に示すような処理(ステップS11~S13)を繰り返すことでパラメタを最適化する。
(1)入力信号Xに対する各層の出力信号Y1,Y2,・・・,Yn-1,Ynを算出する(ステップS11)
(2)出力信号Y1,Y2,・・・,Yn-1,Ynの各々と正解出力信号との誤差e1,e2,・・・,en-1,enを算出する(ステップS12)
(3)誤差en,en-1,・・・,e2,e1に基づいて最深層から浅い層に向かって順番にパラメタを更新する(誤差逆伝搬)(ステップS13)
なお、ステップS13の誤差逆伝搬において、対応する層の誤差eiが順番に考慮されることになる。すなわち、k番目の層(1≦k<N)においては、(k+1)番目の層から逆伝搬される誤差情報(勾配)だけではなく、k番目の層において算出された誤差ekをk番目の層で直接受け取った上で、両者を考慮して、k番目の層のパラメタを更新する。
すなわち、パラメタを最適化する処理は、パラメタを最適化する対象の層に対して逆伝搬により与えられた誤差情報と、当該対象の層の出力信号について算出された誤差とに基づいて、当該対象の層のパラメタを最適化する処理を含む。
このように、対応する層の誤差が順番に考慮されつつ、最深層から浅い層に向かって誤差情報が逆伝搬することで、各層のパラメタが更新されてもよい。
本実施の形態に従う技術思想は、特定の種類のニューラルネットワークに限定されるものではなく、様々な種類のニューラルネットワークに適用可能である。例えば、CNN(Convolutional Neural Network)、Stacked RNN(Recurrent Neural Network)、Transformer(ニューラル機械翻訳の一形態)などのニューラルネットワークに適用可能である。
また、上述したように、出力信号としては、回帰問題の場合には、シグモイド関数などを用いて正規化した信号が用いられ、分類問題の場合には、ソフトマックス関数などを用いて確率分布に変換した信号が用いられる。いずれの形式の出力信号であっても、上述の最適化手法は適用可能である。
本実施の形態に従うニューラルネットワーク1においては、各層の出力信号Y1,Y2,・・・,Yn-1,Ynがいずれも正解出力信号に対する誤差が少なくなるように、パラメタが最適化される。そのため、推論処理においては、最深層の情報(すなわち、出力層6の出力信号Yn)だけではなく、他の層の情報(すなわち、出力信号Y1,Y2,・・・,Yn-1)を用いることでも十分な性能を発揮できる可能性が高い。その結果、推論処理においては、要求される処理速度および性能に応じて、複数の層のうち任意の層の出力信号を推論結果として用いることができる。
図2(A)には、各層の出力信号を正解出力信号と比較し、各層において誤差をそれぞれ算出する例を示すが、図2(B)に示すように、各層においてそれぞれ算出される誤差を統合してもよい。以下においては、誤差の統合の一手法として、平均化処理を採用した場合について説明するが、任意の手法を採用してもよい。
図2(B)に示す最適化手法においては、以下に示すような処理(ステップS11~S15)を繰り返すことでパラメタを最適化する。
(1)入力信号Xに対する各層の出力信号Y1,Y2,・・・,Yn-1,Ynを算出する(ステップS11)
(2)出力信号Y1,Y2,・・・,Yn-1,Ynの各々と正解出力信号との誤差e1,e2,・・・,en-1,enを算出する(ステップS12)
(3)各層の誤差e1,e2,・・・,en-1,enの間を平均化して平均誤差eunfを算出する(ステップS14)
(4)平均誤差eunfに基づいて最深層から浅い層に向かって順番にパラメタを更新する(誤差逆伝搬)(ステップS15)
このように、パラメタを最適化する処理は、算出されたそれぞれの誤差を統合する処理を採用してもよい。この誤差を統合する処理は、算出されたそれぞれの誤差を統合して、最深層から逆伝搬させるための誤差情報を算出する処理を含む。典型的には、算出されたそれぞれの誤差の平均値を、最深層から逆伝搬させるための誤差情報として算出してもよい。
この平均化処理(ステップS14)においては、個々の層の出力信号に対する誤差を統合している。但し、任意の方法を用いて各層の出力信号を統合した上で、誤差情報を算出し、パラメタの最適化を行ってもよい。
本実施の形態に従うニューラルネットワークおよびその最適化手法を採用することで、空間計算量については、最適化フェーズ(訓練時)においてわずかに増加するものの、推論フェーズ(使用時)においては要求に応じて削減できる。また、時間計算量については、最適化フェーズ(訓練時)においては増加するが、推論フェーズ(使用時)においては要求に応じて削減できる。
図3は、本実施の形態に従う処理手順の要部を示すフローチャートである。図3(A)には、本実施の形態に従う最適化処理の処理手順を示し、図3(B)には、本実施の形態に従う推論処理の処理手順を示す。
図3(A)には、複数の層を有するニューラルネットワーク(モデル)のパラメタを最適化する最適化方法の処理手順を示す。図3(A)に示す主要なステップは、典型的には、プロセッサが最適化プログラムを実行することで実現される。
図3(A)を参照して、まず、最適化処理に用いられる、入力信号と正解出力信号とが対応付けられた訓練データが用意される(ステップS50)。
続いて、訓練データに含まれる入力信号をニューラルネットワークに入力して、ニューラルネットワークに含まれる最深層を含む1つ以上の層の各々から出力される出力信号を算出する(ステップS52)。
そして、訓練データの入力信号に対応付けられた正解出力信号に対する、算出されたそれぞれの出力信号の誤差をそれぞれ算出する(ステップS54)。算出されたそれぞれの誤差に基づいて、ニューラルネットワークに含まれる各層のパラメタを最適化する(ステップS56)。なお、各層のパラメタを最適化する処理は、ステップS54において算出されるそれぞれの誤差を統合する処理を含み得る。誤差を統合する処理は、上述の図2(A)および図2(B)に示すように、誤差逆伝搬の過程で実行される。図2(B)に示す場合には、誤差を統合する処理は、誤差逆伝搬の前にも実行される。
通常、予め設定された回数、または、訓練データとは別に用意された検証用データ(開発データ)に対する精度が収束するまで、ステップS52~S56の処理が繰り返される。
図3(B)には、複数の層を有するニューラルネットワークからなる最適化済モデルを用いた推論方法の処理手順を示す。図3(B)に示す主要なステップは、典型的には、プロセッサが推論プログラムを実行することで実現される。
ここで、最適化済モデルは、図3(A)に示す最適化方法の処理手順に従って生成される。すなわち、最適化済モデルは、訓練データに含まれる入力信号をニューラルネットワークに入力したときに算出される、最深層を含む1つ以上の層の各々から出力される出力信号と、訓練データに含まれる入力信号に対応付けられた正解出力信号とのそれぞれの誤差に基づいて、パラメタを最適化することで生成される。
図3(B)を参照して、任意の入力信号を最適化済モデルに入力する(ステップS60)。そして、最適化済モデルの最深層に向かって順番に出力信号を算出する(ステップS62)。すなわち、入力信号に対して、各層に規定される非線形変換が順番に実行される。
最終的に、最適化済モデルに含まれる複数の層のうち最深層を含む任意の層の出力信号を推論結果として出力する(ステップS64)。そして、推論処理は終了する。
なお、推論結果として出力信号が出力される層は、出力信号の推論性能、および、出力信号が出力されるまでに要する時間の少なくとも一方の要求に基づいて決定されてもよい。この点については、後述の実施の形態1~3において具体例を挙げて説明する。
本実施の形態に従うニューラルネットワークおよびその最適化手法によれば、すべての層に対して誤差情報をより直接的に反映したパラメタの更新が可能となるため、モデルの頑健性(ロバスト性)を高めることができる。このため、最適化済モデルの使用時(推論フェーズ)において、訓練時(最適化フェーズ)よりも少ない任意の数の層のみを用いた場合でも、性能が極端に劣化することを防止でき、ひいては処理速度の改善が可能となる。このように、N層のニューラルネットワークを最適化した場合は、使用時(推論フェーズ)において、1~N層のN段階の柔軟性を実現できる。
[C.アプリケーション例]
次に、本実施の形態に従うニューラルネットワークおよびその最適化手法を適用したアプリケーション例について説明する。
上述したように、本実施の形態に従うニューラルネットワークおよびその最適化手法は、ニューラルネットワーク全般に適用可能である。本明細書においては、アプリケーションの一例として、系列変換モデル、特にニューラル機械翻訳を想定する。
具体的には、後述の実施の形態1および2においては、非特許文献8に示されるような6層のTransformerモデルを採用し、後述の実施の形態3においては、非特許文献2に示されるような6層のRecurrently Stacked Transformer(RS-Transformer)モデルを採用した。
図4は、ニューラル機械翻訳を実現するTransformerモデルの一例を示す模式図である。図4を参照して、Transformerモデル20においては、入力信号を第1言語のシーケンスとし、出力信号を第2言語のシーケンスとすることで、ニューラル機械翻訳を実現する。なお、ニューラル機械翻訳は、分類問題として捉えることができる。より具体的には、Transformerモデル20は、エンコーダ30と、デコーダ40とを含む。
エンコーダ30は、入力信号に含まれる特徴的な情報を出力する。エンコーダ30は、入力信号に含まれる特徴的な情報を抽出するためのN層の隠れ層32を有している。エンコーダ30の前段には、入力信号であるシーケンス(自然言語)中の各語を固定次元のベクトルに変換するための入力層36が配置されている。
デコーダ40は、先に出力した出力信号(既出力)および入力信号に含まれる特徴的な情報の入力を受けて、出力信号を決定する。デコーダ40は、M層の隠れ層42を有している。デコーダ40の前段には、既出力であるシーケンス(自然言語)中の各語を固定次元のベクトルに変換するための入力層46が配置されている。
実施の形態1~3においては、図4に示すようなTransformerモデルを用いたニューラル機械翻訳の性能を評価した。
[D.実施の形態1]
図5は、実施の形態1に従う最適化処理を説明するための模式図である。図5を参照して、実施の形態1においては、デコーダ40のM層の隠れ層42(一例として、6層)からのそれぞれの出力信号を用いて誤差情報を生成する。経路50に沿って、デコーダ40の最深層から浅い層に向かって、および、エンコーダ30の最深層から浅い層に向かって、誤差情報が順番に逆伝搬する。
図6は、実施の形態1に従う最適化処理の主要な処理手順を示すフローチャートである。図6を参照して、まず、最適化処理に用いられる訓練データを用意する(ステップS100)。
続いて、訓練データに含まれる入力信号に基づいて、Transformerモデル20のエンコーダ30の入力信号enc0として入力するテンソルXを算出する(enc0=X)(ステップS102)。また、誤差情報lossをゼロに初期化する(loss=0)(ステップS104)。
続いて、エンコーダ30の各層の出力信号を算出する。すなわち、エンコーダ30に含まれる隠れ層32の層位置を示すインデックスi(1≦i≦N)について、出力信号enci=Li
enc(enci-1)をそれぞれ算出する(ステップS110)。ここで、Li
encは、エンコーダ30に含まれるi番目の隠れ層32の非線形変換を示す。エンコーダ30の最深層の出力である出力信号encN(入力信号に含まれる特徴的な情報)がデコーダ40へ与えられることになる。
続いて、デコーダ40の各層の出力信号および誤差を算出する。すなわち、デコーダ40に含まれる隠れ層42の層位置を示すインデックスj(1≦j≦M)について、エンコーダの最深層の出力信号encNを参照しつつ、出力信号decj=Lj
dec(decj-1,encN)をそれぞれ算出する(ステップS120)。ここで、Lj
decは、デコーダ40に含まれるj番目の隠れ層32の非線形変換を示す。
デコーダ40の各層において、確率分布としての出力信号Y^j=softmax(decj)を算出する(ステップS122)。なお、電子出願システムの制約上、ハット記号「^」を対象の文字に続けて記載している(以下、同様である。)。
さらに、確率分布としての出力信号Y^jと離散値としての正解出力信号Yとの誤差を交差エントロピーとして算出し、誤差情報lossに加算する(ステップS124)。すなわち、誤差情報loss=loss+cross_entropy(Y^j,Y)が算出される。
最終的に、デコーダ40の各層において算出された誤差の平均値が、パラメタの最適化に用いられる誤差情報として決定される(ステップS130)。すなわち、誤差情報loss=loss/Mが算出される。そして、算出された誤差情報lossに基づいて、デコーダ40の最深層から浅い層に向かって順番にパラメタが更新され、続いて、エンコーダ30の最深層から浅い層に向かって順番にパラメタが更新される(ステップS132)。
通常は、上述したステップS102以下の処理が複数回に亘って繰り返される。
なお、説明の便宜上、図5および図6においては記載を省略しているが、実際には、バッチノーマライゼーション(Batch Normalization)やドロップアウト(dropout)などの過学習を回避するための処理を適宜配置してもよい。また、最適化処理を高速化するための任意の処理を適宜配置してもよい(例えば、非特許文献5~7など参照)。
上述した最適化処理による性能を以下の2つの翻訳タスクについて評価した。
1番目の翻訳タスクとして、情報通信研究機構(NICT)により開発された音声翻訳向け多言語対訳コーパス(非特許文献9および非特許文献10参照)を用いた英日翻訳タスクを設定した。多言語対訳コーパスから、訓練データとして約40万文対を設定し、評価用データとして約2000文対を設定した。
2番目の翻訳タスクとして、ニュース分野の対訳データ(非特許文献11および非特許文献12参照)を用いた英独翻訳タスクを設定した。ニュース分野の対訳データから、訓練データとして約560万文対を設定し、評価用データとして約3000文対を設定した。
それぞれの翻訳タスクについて、翻訳性能をBLEUスコア(非特許文献13参照)および翻訳の速度で評価した。
図7は、音声翻訳向け多言語対訳コーパスを用いた英日翻訳タスクについての評価結果を示すグラフである。図8は、ニュース分野の対訳データを用いた英独翻訳タスクについての評価結果を示すグラフである。
図7および図8に示す「BLUE:1×6」は、エンコーダ30の層数を6とし、デコーダ40の層数を6とした上で、図6に示す手順に従う最適化処理により得られた最適化済モデルの翻訳性能を示す。「BLUE:6-k」は、エンコーダ30の層数を6とし、デコーダ40の層数を1~6と異ならせた6種類のモデルについて関連技術に従う最適化処理(最深層の誤差情報のみに基づく最適化処理)により得られたそれぞれの最適化済モデル(6種類)の翻訳性能を示す。「BLUE:6-6」は、エンコーダ30の層数を6とし、デコーダ40の層数を6とした上で、関連技術に従う最適化処理により得られた最適化済モデルの翻訳性能を示す。「BLUE:6-6」に示す翻訳性能は、同一の最適化済モデルについて、推論フェーズにおいて使用するデコーダ40の層数を1~6にそれぞれ異ならせたものである。
なお、図6に示す手順に従う最適化処理の実行には、関連技術に従う最適化処理の実行に要した時間の約2.0倍の時間を要した。
図7および図8の横軸「1」~「6」は、推論フェーズ(使用時)において使用するデコーダ40の層を示す。例えば、横軸が「3」の位置においては、デコーダ40の3番目の層からの出力信号が推論結果として使用された場合の性能を示す。
図7および図8に示すように、関連技術に従う最適化処理により得られた最適化済モデル(BLUE:6-6)においては、使用するデコーダ40の層数を最適化フェーズ(訓練時)よりも減らした場合には、翻訳性能(BLUEスコア)が極端に劣化していることが分かる。
また、推論フェーズで使用するのと同じ層数のデコーダ40を有するモデルについて、関連技術に従う最適化処理により得られた最適化済モデル(BLUE:6-k)においては、デコーダ40の層数が2~6の間では、BLUE:6-6と概ね同等の翻訳性能であることが分かる。
これに対して、実施の形態1に従う最適化処理によれば、デコーダ40のすべての層の出力信号に基づいて、6-1~6-6の6個のモデルを同時に最適化しており(BLUE:1×6)、使用するデコーダ40の層数を最適化フェーズ(訓練時)よりも減らした場合であっても、翻訳性能の劣化はわずかであることが分かる。
また、図7および図8に示す「翻訳時間[sec]」は、実施の形態1に従う最適化処理により得られた最適化済モデル(BLUE:1×6)を用いて、評価用データ(英日翻訳タスクについては約2000文、英独翻訳タスクについては約3000文)の翻訳に要した処理時間(モデルのロード時間および入力文のエンコードに要する時間を含む)を表す。この処理時間のグラフによれば、層数を減らすことで、大幅な高速化を実現できることが分かる。
具体的には、1番目の翻訳タスク(英日翻訳タスク)においては、デコーダ40の2つの層を用いることで、処理時間を約40%低減でき、デコーダ40の3つの層を用いることで、処理時間を約30%低減できることが分かる。また、2番目の翻訳タスク(英独翻訳タスク)においては、デコーダ40の2つの層を用いることで、処理時間を約57%低減でき、デコーダ40の3つの層を用いることで、処理時間を約36%低減できることが分かる。
[E.実施の形態2]
実施の形態1においては、デコーダ40の各層の出力信号に基づいて算出される誤差情報を用いる最適化処理について説明したが、実施の形態2においては、エンコーダ30およびデコーダ40の各層の出力信号に基づいて算出される誤差情報を用いる最適化処理について説明する。
図9および図10は、実施の形態2に従う最適化処理を説明するための模式図である。図9および図10を参照して、実施の形態2においては、エンコーダ30のN層の隠れ層32(一例として、6層)の各々からの出力信号、および、デコーダ40のM層の隠れ層42(一例として、6層)からのそれぞれの出力信号を用いて、誤差情報を生成する。生成された誤差情報は、経路50に沿って、デコーダ40の最深層から浅い層に向かって、および、エンコーダ30の最深層から浅い層に向かって、順番に逆伝搬する。
図9には、一例として、エンコーダ30の最深層(N番目の隠れ層32)からの出力信号encNがデコーダ40に入力される場合を示し、図10には、一例として、エンコーダ30のi番目の層(i番目の隠れ層32)からの出力信号enciがデコーダ40に入力される場合を示す。図9および図10に示すように、実施の形態2においては、エンコーダ30の各層からのN通りの出力信号と、デコーダ40の各層からのM通りの出力信号との組み合わせ(N×M)のそれぞれについて誤差情報が存在し得る。
図11は、実施の形態2に従う最適化処理の主要な処理手順を示すフローチャートである。図11を参照して、まず、最適化処理に用いられる訓練データを用意する(ステップS200)。
続いて、訓練データに含まれる入力信号に基づいて、Transformerモデル20のエンコーダ30の入力信号enc0として入力するテンソルXを算出する(enc0=X)(ステップS202)。また、誤差情報lossをゼロに初期化する(loss=0)(ステップS204)。
続いて、エンコーダ30の各層の出力信号および誤差を算出する。すなわち、エンコーダ30に含まれる隠れ層32の層位置を示すインデックスi(1≦i≦N)について、ステップS210~S216の処理が繰り返される。
より具体的には、出力信号enci=Li
enc(enci-1)をそれぞれ算出する(ステップS210)。ここで、Li
encは、エンコーダ30に含まれる隠れ層32の非線形変換を示す。この時点で、エンコーダ30が出力する出力信号enciがデコーダ40へ与えられることになる。
さらに、インデックスiの各々について、デコーダ40の各層の出力信号および誤差を算出する。すなわち、デコーダ40に含まれる隠れ層42の層位置を示すインデックスj(1≦j≦M)について、ステップS212~S216の処理が繰り返される。
より具体的には、出力信号decj=Lj
dec(decj-1,enci)をそれぞれ算出する(ステップS212)。ここで、Lj
decは、デコーダ40に含まれるj番目の隠れ層32の非線形変換を示す。
そして、確率分布としての出力信号Y^i,j=softmax(decj)を算出する(ステップS214)。さらに、確率分布としての出力信号Y^i,jと離散値としての正解出力信号Yとの誤差を交差エントロピーとして算出し、誤差情報lossに加算する(ステップS216)。すなわち、誤差情報loss=loss+cross_entropy(Y^i,j,Y)が算出される。
最終的に、エンコーダ30の各層(N層)とデコーダ40の各層(M層)との組み合わせに関して算出された誤差の平均値が、パラメタの最適化に用いられる誤差情報として決定される(ステップS220)。すなわち、誤差情報loss=loss/(N×M)が算出される。そして、算出された誤差情報lossに基づいて、デコーダ40の最深層から浅い層に向かって順番にパラメタが更新され、続いて、エンコーダ30の最深層から浅い層に向かって順番にパラメタが更新される(ステップS222)。
通常は、上述したステップS202以下の処理が複数回に亘って繰り返される。
なお、説明の便宜上、図9~図11においては記載を省略しているが、実際には、バッチノーマライゼーションやドロップアウトなどの過学習を回避するための処理を適宜配置してもよい。また、最適化処理を高速化するための任意の処理を適宜配置してもよい(例えば、非特許文献5~7など参照)。
上述した最適化処理による性能を1番目の翻訳タスク(実施の形態1において説明した英日翻訳タスクと同じ)および2番目の翻訳タスク(実施の形態1において説明した英独翻訳タスクと同じ)について評価した。実施の形態1と同様に、翻訳性能をBLEUスコアおよび翻訳の速度でそれぞれ評価した。
図12は、実施の形態2における英日翻訳タスクについての評価結果を示すグラフである。図12(A)には、図11に示す手順に従う最適化処理により得られた最適化済モデルについてのBLUEスコアの評価結果を示し、図12(B)には、図11に示す手順に従う最適化処理により得られた最適化済モデルについての処理時間の評価結果を示す。処理時間は、評価用データ(約2000文)の翻訳に要した処理時間(モデルのロード時間および入力文のエンコードに要する時間を含む)を表す。
図13は、実施の形態2における英独翻訳タスクについての評価結果を示すグラフである。図13(A)には、図11に示す手順に従う最適化処理により得られた最適化済モデルについてのBLUEスコアの評価結果を示し、図13(B)には、図11に示す手順に従う最適化処理により得られた最適化済モデルについての処理時間の評価結果を示す。処理時間は、評価用データ(約3000文)の翻訳に要した処理時間(モデルのロード時間および入力文のエンコードに要する時間を含む)を表す。
図12(A)、図12(B)、図13(A)および図13(B)において、横軸「1」~「6」は、推論フェーズ(使用時)において使用するエンコーダ30の層数を示す。また、縦軸「1」~「6」は、推論フェーズ(使用時)において使用するデコーダ40の層数を示す。例えば、横軸が「3」および横軸が「3」の位置においては、エンコーダ30の3番目の層からの出力信号(入力信号に含まれる特徴的な情報)がデコーダ40に入力され、デコーダ40の3番目の層からの出力信号が推論結果として使用された場合の性能を示す。
なお、図11に示す手順に従う最適化処理の実行には、関連技術に従う最適化処理の実行に要した時間の約9.5倍の時間を要した。
図12(A)に示すように、エンコーダ30の4つ以上の層およびデコーダ40の3つ以上の層を用いることで、関連技術に従う最適化処理により得られた最適化済モデルによる翻訳性能(27.09ポイント)と同等の翻訳性能(26.09~26.53ポイント)を発揮できることが分かる。
図12(B)に示すように、エンコーダ30の4つ以上の層およびデコーダ40の3つの層を用いた場合には、関連技術に従う最適化処理により得られた最適化済モデルを用いた場合の処理時間(85.20単位時間)に比較して、処理時間を約30%低減できることが分かる(57.25~59.49単位時間)。
また、図13(A)に示すように、エンコーダ30の4つの層およびデコーダ40の4つの層を用いることで、関連技術に従う最適化処理により得られた最適化済モデルによる翻訳性能(32.31ポイント)と同等の翻訳性能(31.44~32.03ポイント)を発揮できることが分かる。
図13(B)に示すように、エンコーダ30の4つ以上の層およびデコーダ40の4つの層を用いた場合には、関連技術に従う最適化処理により得られた最適化済モデルを用いた場合の処理時間(251.69単位時間)に比較して、処理時間を約35%低減できることが分かる(137.88~161.44単位時間)。
なお、図12(B)および図13(B)の評価結果によれば、使用するエンコーダ30の層数を減らすことは、処理の高速化にはあまり有効ではなく、一方、使用するデコーダ40の層数を減らすことは、処理の高速化にはより有効であることが分かる。
[F.実施の形態3]
実施の形態1および2においては、エンコーダ30およびデコーダ40が複数の異なる層を有するモデルを例示した。このような複数の異なる層を有するエンコーダ30およびデコーダ40に代えて、同じ層を再帰的に使用することで、メモリの使用量を抑制しつつ、複数の層と同等の非線形変換を実現できる(非特許文献2など参照)。実施の形態3においては、同じ層を再帰的に使用するモデルに対する最適化処理について説明する。
図14は、実施の形態3に従う最適化処理を説明するための模式図である。図14を参照して、RS-Transformerモデル20Aは、隠れ層32を再帰的に使用可能に結合されたエンコーダ30Aと、隠れ層42を再帰的に使用可能に結合されたデコーダ40Aとを含む。エンコーダ30Aの出力信号(入力信号に含まれる特徴的な情報)は、デコーダ40Aへ出力される。
隠れ層32を再帰的にN回使用することで、N層分に相当する非線形変換を実現でき、隠れ層42を再帰的にM回使用することで、M層分に相当する非線形変換を実現できる。一方で、隠れ層32および隠れ層42は、1層分しか存在しないので、RS-Transformerモデル20Aを規定するパラメタの数をTransformerモデル20よりも低減できる。
実施の形態3においては、簡単化のため、実施の形態1と同様に、エンコーダ30については関連技術と同様に最深層の出力信号のみに基づいて算出される誤差信号を用いるとともに、デコーダ40Aの各層の出力信号(すなわち、各再帰処理における出力信号)に基づいて算出される誤差情報を用いた最適化処理を実行する。但し、実施の形態2と同様に、エンコーダ30Aの各層の出力信号に基づいて算出される誤差信号、および、デコーダ40Aの各層の出力信号(すなわち、各再帰処理における出力信号)に基づいて算出される誤差情報を用いる最適化処理を採用してもよい。
図14に示すRS-Transformerモデル20Aに対する最適化処理においては、経路50に沿って、デコーダ40Aの最深層から浅い層に向かって、および、エンコーダ30Aの最深層から浅い層に向かって、誤差情報が順番に逆伝搬する。この誤差情報を逆伝搬する処理においても、所定回数の再帰処理が実行される。すなわち、同一の隠れ層に対して、誤差情報が複数回に亘って逆伝搬することで、パラメタが最適化される。
図15は、実施の形態3に従う最適化処理の主要な処理手順を示すフローチャートである。図15を参照して、まず、最適化処理に用いられる訓練データを用意する(ステップS300)。
続いて、訓練データに含まれる入力信号に基づいて、RS-Transformerモデル20Aのエンコーダ30Aの入力信号enc0として入力するテンソルXを算出する(enc0=X)(ステップS302)。また、誤差情報lossをゼロに初期化する(loss=0)(ステップS304)。
続いて、エンコーダ30Aの各層の出力信号を算出する。すなわち、エンコーダ30Aの隠れ層32についての再帰処理の回数を示すインデックスi(1≦i≦N)について、出力信号enci=Lenc(enci-1)をそれぞれ算出する(ステップS310)。ここで、Lencは、エンコーダ30Aに含まれる隠れ層32の非線形変換を示す。N回の再帰処理によって得られたエンコーダ30Aの出力である出力信号encN(最深層の出力信号に相当)がデコーダ40Aへ与えられることになる。
続いて、デコーダ40Aの各層の出力信号および誤差を算出する。すなわち、デコーダ40Aの隠れ層42についての再帰処理の回数を示すインデックスj(1≦j≦M)について、出力信号decj=Ldec(decj-1,encN)をそれぞれ算出する(ステップS320)。そして、確率分布としての出力信号Y^j=softmax(decj)を算出する(ステップS322)。さらに、確率分布としての出力信号Y^jと離散値としての正解出力信号Yとの誤差を交差エントロピーとして算出し、誤差情報lossに加算する(ステップS324)。すなわち、誤差情報loss=loss+cross_entropy(Y^j,Y)が算出される。
最終的に、デコーダ40Aの各層において算出された誤差の平均値が、パラメタの最適化に用いられる誤差情報として決定される(ステップS330)。すなわち、誤差情報loss=loss/Nが算出される。そして、算出された誤差情報lossに基づいて、デコーダ40Aの最深層から浅い層に向かって順番にパラメタが更新され、続いて、エンコーダ30Aの最深層から浅い層に向かって順番にパラメタが更新される(ステップS332)。
通常は、上述したステップS302以下の処理が複数回に亘って繰り返される。
なお、説明の便宜上、図14および図15においては記載を省略しているが、実際には、バッチノーマライゼーションやドロップアウトなどの過学習を回避するための処理を適宜配置してもよい。また、最適化処理を高速化するための任意の処理を適宜配置してもよい(例えば、非特許文献5~7など参照)。
上述した最適化処理による性能を1番目の翻訳タスク(実施の形態1において説明した英日翻訳タスクと同じ)について評価した。実施の形態1と同様に、翻訳性能をBLEUスコアで評価した。なお、エンコーダ30Aおよびデコーダ40Aの再帰処理の回数は同数(すなわち、図15において、N=M)とした。
図14に示すRS-Transformerモデル20Aの最適化済モデルは、実施の形態1に従うTransformerモデル20の最適化済モデルに比較して、データサイズが47%まで低減された。
図16は、実施の形態3における英日翻訳タスクについての評価結果を示すグラフである。図16(A)には、非特許文献2に示される関連技術に従う最適化処理により得られた最適化済モデルについてのBLUEスコアの評価結果を示し、図16(B)には、図15に示す手順に従う最適化処理により得られた最適化済モデルについてのBLUEスコアの評価結果を示す。
図16(A)および図16(B)において、横軸「1」~「6」は、最適化フェーズ(訓練時)における再帰処理の回数を示す。また、縦軸「1」~「6」は、推論フェーズ(使用時)において使用するデコーダ40Aの再帰処理の回数を示す。推論フェーズにおいて使用するエンコーダ30Aの再帰処理の回数は、最適化フェーズと同じである。
図16(A)および図16(B)に示すグラフにおいて、左上から右下にかけての対角線上の値は、推論フェーズ(使用時)において、最適化フェーズ(訓練時)と同じ回数の再帰処理を実行した場合の結果を示す。図16(A)および図16(B)に示すグラフの左下の部分は、デコーダ40Aの再帰処理の回数を最適化フェーズ(訓練時)よりも増やした場合を意味する。原理的には、このような処理も可能であるが、本来の目的である、処理の高速化の観点からは相反するため実際の評価は行っていない(「0.00」の値で示されている)。
図16(A)および図16(B)に示すように、再帰処理の回数が増加するほど(紙面右側にゆくほど)、翻訳性能が向上していることが分かる。しかしながら、図16(A)に示すように、関連技術に従う最適化処理により得られた最適化済モデルにおいては、デコーダ40Aの再帰処理の回数を最適化フェーズ(訓練時)よりも減らした場合には、翻訳性能(BLUEスコア)が極端に劣化することが分かる。
これに対して、図16(B)に示すように、図15に示す手順に従う最適化処理により得られた最適化済モデルによれば、デコーダ40Aの再帰処理の回数を最適化フェーズ(訓練時)よりも減らした場合であっても、翻訳性能の劣化はわずか(BLEUスコアで最大0.5ポイント)であり、非特許文献2に示される最適化済モデルと同等の翻訳性能を維持できていることが分かる。
[G.ハードウェア構成]
次に、本実施の形態に従う最適化処理および推論処理を実現するためのハードウェア構成の一例について説明する。
図17は、本実施の形態に従う最適化処理および推論処理を実現するハードウェア構成の一例を示す模式図である。本実施の形態に従う最適化処理および推論処理は、典型的には、コンピュータの一例である情報処理装置100を用いて実現される。
図17を参照して、情報処理装置100は、主要なハードウェアコンポーネントとして、CPU(central processing unit)102と、GPU(graphics processing unit)104と、主メモリ106と、ディスプレイ108と、ネットワークインターフェイス(I/F:interface)110と、二次記憶装置112と、入力デバイス122と、光学ドライブ124とを含む。これらのコンポーネントは、内部バス128を介して互いに接続される。
CPU102および/またはGPU104は、後述するような各種プログラムを実行することで、本実施の形態に従う最適化処理および推論処理を実現するプロセッサである。CPU102およびGPU104は、複数個配置されてもよいし、複数のコアを有していてもよい。
主メモリ106は、プロセッサ(CPU102および/またはGPU104)が処理を実行するにあたって、プログラムコードやワークデータなどを一時的に格納(あるいは、キャッシュ)する記憶領域であり、例えば、DRAM(dynamic random access memory)やSRAM(static random access memory)などの揮発性メモリデバイスなどで構成される。
ディスプレイ108は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、LCD(liquid crystal display)や有機EL(electroluminescence)ディスプレイなどで構成される。
ネットワークインターフェイス110は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りする。ネットワークインターフェイス110としては、例えば、イーサネット(登録商標)、無線LAN(local area network)、Bluetooth(登録商標)などの任意の通信方式を採用できる。
入力デバイス122は、ユーザからの指示や操作などを受付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。また、入力デバイス122は、学習およびデコーディングに必要な音声信号を収集するための集音デバイスを含んでいてもよいし、集音デバイスにより収集された音声信号の入力を受付けるためのインターフェイスを含んでいてもよい。
光学ドライブ124は、CD-ROM(compact disc read only memory)、DVD(digital versatile disc)などの光学ディスク126に格納されている情報を読出して、内部バス128を介して他のコンポーネントへ出力する。光学ディスク126は、非一過的(non-transitory)な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ124が光学ディスク126からプログラムを読み出して、二次記憶装置112などにインストールすることで、コンピュータが情報処理装置100として機能するようになる。したがって、本発明の主題は、二次記憶装置112などにインストールされたプログラム自体、または、本実施の形態に従う機能や処理を実現するためのプログラムを格納した光学ディスク126などの記録媒体でもあり得る。
図17には、非一過的な記録媒体の一例として、光学ディスク126などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、MO(magneto-optical disk)などの光磁気記録媒体を用いてもよい。
二次記憶装置112は、コンピュータを情報処理装置100として機能させるために必要なプログラムおよびデータを格納する。例えば、ハードディスク、SSD(solid state drive)などの不揮発性記憶装置で構成される。
より具体的には、二次記憶装置112は、図示しないOS(operating system)の他、典型的には、最適化処理を実現するための最適化プログラム114と、推論処理を実現するための推論プログラム116と、最適化済モデルを規定するパラメタ118と、訓練データ120とを格納している。
最適化プログラム114は、プロセッサ(CPU102および/またはGPU104)によって実行されることで、図3(A)に示すパラメタの最適化処理を実現する。また、推論プログラム116は、プロセッサ(CPU102および/またはGPU104)によって実行されることで、図3(B)に示す推論処理を実現する。
プロセッサ(CPU102および/またはGPU104)がプログラムを実行する際に必要となるライブラリや機能モジュールの一部を、OSが標準で提供するライブラリまたは機能モジュールにより代替してもよい。この場合には、プログラム単体では、対応する機能を実現するために必要なプログラムモジュールのすべてを含むものにはならないが、OSの実行環境下にインストールされることで、目的の処理を実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
また、これらのプログラムは、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
図17には、単一のコンピュータを用いて情報処理装置100を構成する例を示すが、これに限らず、コンピュータネットワークを介して接続された複数のコンピュータが明示的または黙示的に連携して、情報処理装置100および情報処理装置100を含むシステムを実現するようにしてもよい。
プロセッサ(CPU102および/またはGPU104)がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路(hard-wired circuit)を用いて実現してもよい。例えば、ASIC(application specific integrated circuit)やFPGA(field-programmable gate array)などを用いて実現してもよい。
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う情報処理装置100を実現できるであろう。
説明の便宜上、同一の情報処理装置100を用いて、最適化処理および推論処理を実行する例を示したが、最適化処理および推論処理を異なるハードウェアを用いて実現してもよい。
[H.まとめ]
本実施の形態に従う最適化方法によれば、ニューラルネットワークの最深層を含む複数の層の出力信号と正解出力信号とをそれぞれ比較して得られる誤差情報に基づいて、ニューラルネットワークのパラメタを最適化する。これによって、ニューラルネットワークの隠れ層から内部的に出力される出力信号を用いた場合であっても、最深層の出力信号に対して性能が極端に劣化するような事態を避けることができる。
その結果、推論処理においては、最深層の出力信号を推論結果としなくても、最深層より浅い層の出力信号を推論結果として用いることも実用上可能となる。
本実施の形態に従う最適化方法によれば、各層から比較的性能の高い出力信号を得られる最適化済モデルを生成できるので、要求仕様(例えば、出力信号の推論性能や出力信号が出力されるまでに要する時間など)に応じて、任意の層の出力信号を推論結果として利用できるので、処理の高速化に加えて、柔軟性の向上も実現できる。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。