(57)【要約】  情報処理装置（２）は、時系列データ（Ｄ１）に基づきニューラルネットワーク（１０）として機能する。情報処理装置は、記憶部（２１）と、演算処理部（２０）とを備える。記憶部は、時系列データにおける順番毎の入力変数（ｘ［ｔ］）、及びニューラルネットワークとして機能するためのパラメータ群（Ｗ１〜Ｗ３）を格納する。演算処理部は、パラメータ群に基づく変換を行って、各順番の入力変数に基づき中間変数（ｈ［ｔ］）を算出し、算出した中間変数に基づき出力変数（ｙ［ｔ］）を算出する。演算処理部は、ｎ＋１番目の中間変数を算出する際に、ｎ番目の中間変数の算出結果（５１）と、パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果（５０）とを重み付け加算して、ｎ＋１番目の中間変数を算出する。
2018003457.tif 000002
【特許請求の範囲】
【請求項１】
時系列データに基づきニューラルネットワークとして機能する情報処理装置であって、
時系列データにおける順番毎の入力変数、及びニューラルネットワークとして機能するためのパラメータ群を格納する記憶部と、
前記パラメータ群に基づく変換を行って、各順番の入力変数に基づき当該順番の中間変数を算出し、算出した中間変数に基づき当該順番の出力変数を算出する演算処理部とを備え、
前記演算処理部は、ｎ＋１番目の中間変数を算出する際に、ｎ番目の中間変数の算出結果と、前記パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果とを重み付け加算して、前記ｎ＋１番目の中間変数を算出する
情報処理装置。
【請求項２】
前記演算処理部は、前記パラメータ群によって規定される一つ又は複数の第１伝達関数に基づく重み付けにおいて、前記ｎ＋１番目の中間変数を算出する際の重み付け加算を行う
請求項１に記載の情報処理装置。
【請求項３】
前記第１伝達関数の引数は、前記ｎ＋１番目以前の入力変数、前記ｎ番目以前の中間変数、及び前記ｎ番目以前の出力変数の内の少なくとも１つを含む
請求項２に記載の情報処理装置。
【請求項４】
前記演算処理部は、一つ又は複数の第２伝達関数に基づく重み付けにおいて、各順番の入力変数と、前記パラメータ群に基づき変換された当該順番の中間変数とを重み付け加算して、当該順番の出力変数を算出する
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記演算処理部は、
第３伝達関数に基づいて、前記ｎ番目の中間変数の算出結果を部分的に消去し、
部分的に消去したｎ番目の中間変数の算出結果を用いて、前記ｎ＋１番目の中間変数を算出する
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記演算処理部は、前記ｎ＋１番目の中間変数を算出する際に、一つ又は複数の第４伝達関数に基づく重み付けにおいて、前記ｎ番目の中間変数の算出結果と前記変換結果とを重み付け加算した値と、前記ｎ＋１番目の入力変数の値とを重み付け加算する
請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記演算処理部は、各順番の出力変数を算出する際に、一つ又は複数の第５伝達関数に基づく重み付けにおいて、当該順番の中間変数と、前記パラメータ群によって変換された当該順番の中間変数とを重み付け加算する
請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記時系列データは自然言語を表すデータを含み、
前記演算処理部が実行する処理に基づき、自然言語の機械翻訳を行う
請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
ニューラルネットワークの機能を実現する情報処理装置によって実行される時系列データの情報処理方法であって、
前記情報処理装置の記憶部には、ニューラルネットワークとして機能するためのパラメータ群が格納され、
前記情報処理装置が、時系列データにおける順番毎の入力変数を取得するステップと、
前記情報処理装置が、前記パラメータ群に基づく変換を行って、各順番の入力変数に基づき当該順番の中間変数を算出するステップと、
前記情報処理装置が、前記パラメータ群に基づく変換を行って、各順番の中間変数に基づき当該順番の出力変数を算出するステップとを含み、
ｎ＋１番目の中間変数を算出するステップは、ｎ番目の中間変数の算出結果と、前記パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果とを重み付け加算して、ｎ＋１番目の中間変数を算出する
時系列データの情報処理方法。
【請求項１０】
請求項９に記載の時系列データの情報処理方法を情報処理装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、時系列データの情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１は、深層ニューラルネットワークにおける機械学習の促進を図る技術を開示している。非特許文献１のハイウェイネットワークは、入力データから出力データを得るために非線形変換などを行う中間処理を選択的に飛ばしている。非特許文献１は、ハイウェイネットワークにおいて選択的に飛ばす中間処理として、リカレントニューラルネットワーク（ＲＮＮ）を挙げている。これにより、構築する深層ニューラルネットワークの中でＲＮＮによる再帰的（リカレント）な一連の演算処理をすることなく、入力データから出力データを得ることができる。【０００３】
非特許文献２は、深層ニューラルネットワークによる機械翻訳モデルを開示している。非特許文献２の機械翻訳モデルでは、時系列データにおける過去の情報を再帰的に参照するロングショートタームメモリ（ＬＳＴＭ）において、再帰的な演算処理全体を飛ばすように、入力データを出力側に渡す接続経路を設けている。非特許文献２によると、複雑な非線形変換と共に再帰的な演算処理を省略して学習の高速化を図り、ＢＬＥＵ値４０．４という高精度の機械翻訳を達成している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｓ．  Ｒ．  Ｋｕｍａｒ，  ｅｔ  ａｌ．，“Ｔｒａｉｎｉｎｇ  Ｖｅｒｙ  Ｄｅｅｐ  Ｎｅｔｗｏｒｋｓ”，ｅｐｒｉｎｔ  ａｒＸｉｖ：１５０７．０６２２８，Ｊｕｌｙ  ２０１５．
【非特許文献２】Ｚｈｏｕ  Ｊｉｅ，  ｅｔ  ａｌ．，“Ｄｅｅｐ  Ｒｅｃｕｒｒｅｎｔ  Ｍｏｄｅｌｓ  ｗｉｔｈ  Ｆａｓｔ−Ｆｏｒｗａｒｄ  Ｃｏｎｎｅｃｔｉｏｎｓ  ｆｏｒ  Ｎｅｕｒａｌ  Ｍａｃｈｉｎｅ  Ｔｒａｎｓｌａｔｉｏｎ”，ｅｐｒｉｎｔ  ａｒＸｉｖ：１６０６．０４１９９，Ｊｕｎｅ  ２０１６．
【非特許文献３】Ｂａｈｄａｎａｕ  Ｄｚｍｉｔｒｙ，  ｅｔ  ａｌ．，“Ｎｅｕｒａｌ  Ｍａｃｈｉｎｅ  Ｔｒａｎｓｌａｔｉｏｎ  ｂｙ  Ｊｏｉｎｔｌｙ  Ｌｅａｒｎｉｎｇ  ｔｏ  Ａｌｉｇｎ  ａｎｄ  Ｔｒａｎｓｌａｔｅ”，ｅｐｒｉｎｔ  ａｒＸｉｖ：１４０９．０４７３，Ｓｅｐｔｅｍｂｅｒ  ２０１４．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示は、ニューラルネットワークによる時系列データの情報処理を効率良くすることができる時系列データの情報処理方法及び情報処理装置を提供する。
【課題を解決するための手段】
【０００６】
本開示の一態様における情報処理装置は、時系列データに基づきニューラルネットワークとして機能する情報処理装置である。情報処理装置は、記憶部と、演算処理部とを備える。記憶部は、時系列データにおける順番毎の入力変数、及びニューラルネットワークとして機能するためのパラメータ群を格納する。演算処理部は、パラメータ群に基づく変換を行って、各順番の入力変数に基づき当該順番の中間変数を算出し、算出した中間変数に基づき当該順番の出力変数を算出する。演算処理部は、ｎ＋１番目の中間変数を算出する際に、ｎ番目の中間変数の算出結果と、パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果とを重み付け加算して、ｎ＋１番目の中間変数を算出する。【０００７】
本開示の一態様における時系列データの情報処理方法は、ニューラルネットワークの機能を実現する情報処理装置によって実行される。
【発明の効果】
【０００８】
本開示における情報処理装置及び時系列データの情報処理方法によると、ｎ番目の中間変数の算出結果が重み付けに応じてｎ＋１番目の中間変数に引き継がれ、ニューラルネットワークによる時系列データの情報処理を効率良くすることができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る時系列データの情報処理方法の概要を示す図
【図２】実施形態１に係る情報処理装置の構成を例示するブロック図
【図３】情報処理装置によるニューラル機械翻訳処理を示すフローチャート
【図４】実施形態１に係るリカレントハイウェイネットワーク（ＲＨＮ）の演算アルゴリズムを説明するための図
【図５】実施形態２に係るＲＨＮの演算アルゴリズムを説明するための図
【図６】実施形態２の変形例１に係るＲＨＮの演算アルゴリズムを説明するための図
【図７】実施形態２の変形例２に係るＲＨＮの演算アルゴリズムを説明するための図
【図８】実施形態３に係るＲＨＮの演算アルゴリズムを説明するための図
【図９】実施形態４に係るＲＨＮの演算アルゴリズムを説明するための図
【発明を実施するための形態】
【００１０】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１１】
なお、出願人は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１２】
（実施形態１）
本開示は、ニューラルネットワークによる機械学習の新たな枠組みであるリカレントハイウェイネットワーク（以下、「ＲＨＮ」という。）を開示する。本開示に係るＲＨＮは、例えば音声認識処理、機械翻訳処理など、時系列データを対象とする種々の情報処理に適用できる。時系列データは、時系列方向の順番を有するデータ要素の列で構成されるデータである。時系列データにおける順番は、時間を意味するものに特に限らず、対象とするデータ及び情報処理に応じて適宜、設定される。以下では、深層学習による機械翻訳にＲＨＮを適用する例を説明する。
【００１３】
１．構成
以下、本実施形態に係る時系列データの情報処理方法及び情報処理装置の構成について、説明する。
【００１４】
１−１．概要
本実施形態では、深層学習による機械翻訳のための深層ニューラルネットワークを、ＲＨＮを用いて構成する。実施形態１に係る深層ニューラルネットワークによる情報処理についての概要を、図１を参照して説明する。図１は、本実施形態に係る時系列データの情報処理方法の概要を示す図である。
【００１５】
本実施形態に係る深層ニューラルネットワーク１は、図１に示すように、入力層１１、複数の中間層１２及び出力層１３を備える。各層１１，１２，１３は、それぞれ入力時、処理中、及び出力時のデータを保持するデータバッファとして機能する。深層ニューラルネットワーク１は、例えば情報処理装置２において実現される。
【００１６】
本実施形態に係る深層ニューラルネットワーク１は、図１に示すように、入力文の時系列データＤ１に基づき、入力側言語から出力側言語への機械翻訳を行って、翻訳文の時系列データＤ２を出力する（ニューラル機械翻訳処理）。図１では、日本語から英語への翻訳例を示している。入力側言語及び出力側言語は、種々の自然言語に設定されてもよい。
【００１７】
本実施形態において、入力文の時系列データＤ１は、入力側言語（日本語）の単語系列で構成される。例えば、入力文が「これはペンです」である場合、入力文中の単語「これ」、「は」、「ペン」及び「です」のそれぞれが、時系列データＤ１のデータ要素である。また、単語系列の順番は、入力文中の各単語の並び順（昇順または降順）である。
【００１８】
入力文の時系列データＤ１は、各データ要素をベクトルで表すベクトル列の形式において、深層ニューラルネットワーク１の入力層１１に入力される。例えば、入力文の時系列データＤ１における各単語は、入力側言語の語彙数Ｋによる１−ｏｆ−Ｋ表現で表される。１−ｏｆ−Ｋ表現は、Ｋ次元のベクトル空間において、単語に一対一対応する成分のみ「１」とし、他の成分を「０」とするベクトル表現である。ベクトル表現の時系列データＤ１は、例えば入力文のテキストデータから、情報処理装置２において入力側言語の語彙を示す情報を参照することによって生成される。
【００１９】
入力層１１に入力された時系列データＤ１に基づき、深層ニューラルネットワーク１は、段階的に各中間層１２を介して、機械翻訳のための種々のベクトル演算を行う。中間層１２における演算処理では、時系列データが示す順番毎に、機械学習の対象となるパラメータ群に基づく線形変換及び非線形変換等が演算される。この際、時系列データの順番における過去の入力、中間状態（内部状態）、出力を考慮するという複雑な処理が行われる。
【００２０】
中間層１２における演算結果に基づいて、深層ニューラルネットワーク１の出力層１３は、入力文の時系列データＤ１の翻訳結果を示す翻訳文の時系列データＤ２を出力する。例えば翻訳文が「ｔｈｉｓ  ｉｓ  ａ  ｐｅｎ」である場合に、単語系列「ｔｈｉｓ」、「ｉｓ」、「ａ」及び「ｐｅｎ」を表すベクトル表現の時系列データＤ２が出力層１３から出力される。例えば、情報処理装置２は、出力側言語の語彙を示す情報を参照することによってベクトル表現の時系列データＤ２からテキストデータの翻訳文を生成する。
【００２１】
本実施形態に係る深層ニューラルネットワーク１は、図１に示すように、ＲＨＮ１０を備える。ＲＨＮ１０は、時系列データにおける順番ｔ（ｔは自然数）に応じた入力変数ｘ［ｔ］を保持する入力層、中間変数ｈ［ｔ］を保持する中間層、及び出力変数ｙ［ｔ］を保持する出力層を備える。ＲＨＮ１０の各層は、それぞれ深層ニューラルネットワーク１における入力層１１、中間層１２及び出力層１３のいずれかと一体的に構成される。これにより、ＲＨＮ１０は深層ニューラルネットワーク１に組み込まれる。ＲＨＮ１０は、モジュールとして深層ニューラルネットワーク１に組み込まれてもよいし、ライブラリとして参照されてもよい。ＲＨＮ１０の詳細については後述する。
【００２２】
本実施形態に係る時系列データの情報処理方法では、ＲＨＮ１０により、深層ニューラルネットワーク１において時系列データに基づく過去のデータ要素の処理中の情報を参照し易くする。以下、本実施形態に係る時系列データの情報処理方法を実行する情報処理装置２の構成について説明する。
【００２３】
１−２．ハードウェア構成
図２を参照して、本実施形態に係る情報処理装置２のハードウェア構成を説明する。図２は、情報処理装置２の構成を例示するブロック図である。
【００２４】
情報処理装置２は、例えばＰＣで構成される。情報処理装置２は、図２に示すように、演算処理部２０と、記憶部２１と、機器インタフェース２２と、ネットワークインタフェース２３とを備える（以下、「インタフェース」を「Ｉ／Ｆ」という。）。また、情報処理装置２は、操作部２４と、表示部２５と、マイク２６と、スピーカ２７とを備える。
【００２５】
演算処理部２０は、例えばソフトウェアと協働して所定の機能を実現するＣＰＵやＧＰＵを含み、情報処理装置２の全体動作を制御する。演算処理部２０は、記憶部２１に格納されたデータやプログラムを読み出して種々の演算処理を行い、各種の機能を実現する。例えば、演算処理部２０は、本実施形態に係る深層ニューラルネットワーク１及びＲＨＮ１０が実現されるプログラムを実行する。上記のプログラムは、ネットワークから提供されてもよいし、可搬性を有する記録媒体に格納されていてもよい。
【００２６】
なお、演算処理部２０は、所定の機能を実現するように設計された専用の電子回路や再構成可能な電子回路などのハードウェア回路であってもよい。演算処理部２０は、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＧＰＧＰＵ、ＴＰＵ、マイコン、ＤＳＰ、ＦＰＧＡ、ＡＳＩＣ等の種々の半導体集積回路で構成されてもよい。
【００２７】
記憶部２１は、情報処理装置２の機能を実現するために必要なプログラム及びデータを記憶する記憶媒体である。例えば、記憶部２１は、機械学習を行うニューラルネットワークとして機能するための、学習対象のパラメータ群を記憶する。記憶部２１は、図２に示すように、データ格納部２１ａ及びＲＡＭ２１ｂを含む。
【００２８】
データ格納部２１ａは、所定の機能を実現するために必要なパラメータ、データ及び制御プログラム等を記憶し、例えばハードディスク（ＨＤＤ）や半導体記憶装置（ＳＳＤ）で構成される。例えば、データ格納部２１ａは、深層ニューラルネットワーク１及びＲＨＮ１０のプログラム、（学習済みの）パラメータ群、入力側言語及び出力側言語の語彙を示す情報、及び対訳コーパスなどを格納する。
【００２９】
ＲＡＭ２１ｂは、例えばＤＲＡＭやＳＲＡＭ等の半導体デバイスで構成され、データを一時的に記憶（保持）する。また、ＲＡＭ２１ｂは、演算処理部２０の作業エリアとして機能してもよい。ＲＡＭ２１ｂには、例えば、入力文及び翻訳文の時系列データＤ１，Ｄ２，各種変数ｘ［ｔ］，ｈ［ｔ］，ｈ［ｔ−１］，ｙ［ｔ］及び学習対象のパラメータ群などが保持される。なお、ＧＰＵで高速に演算する場合には、パラメータ群及び演算中の中間状態はＧＰＵ上の記憶領域（記憶部の一例）に保持される。
【００３０】
機器Ｉ／Ｆ２２は、情報処理装置２に他の機器を接続するための回路（モジュール）である。機器Ｉ／Ｆ２２は、所定の通信規格にしたがい通信を行う。所定の規格には、ＵＳＢ、ＨＤＭＩ（登録商標）、ＩＥＥＥ１３９５、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等が含まれる。
【００３１】
ネットワークＩ／Ｆ２３は、無線または有線の通信回線を介してシミュレーション装置１をネットワークに接続するための回路（モジュール）である。ネットワークＩ／Ｆ２３は所定の通信規格に準拠した通信を行う。所定の通信規格には、ＩＥＥＥ８０２．３，ＩＥＥＥ８０２．１１ａ／１１ｂ／１１ｇ／１１ａｃ等の通信規格が含まれる。
【００３２】
操作部２４は、ユーザが操作を行うユーザインタフェースである。操作部２４は、例えば、キーボード、タッチパッド、タッチパネル、ボタン、スイッチ、及びこれらの組み合わせで構成される。操作部２４は、ユーザによって入力される諸情報を取得する取得部の一例である。
【００３３】
表示部２５は、例えば、液晶ディスプレイや有機ＥＬディスプレイで構成される。表示部２５は、例えば操作部２４から入力された情報など、種々の情報を表示する。
【００３４】
マイク２６は、音声を収音し、音声データを生成する取得部の一例である。情報処理装置２は、音声認識機能を有してもよく、例えばマイク２６によって生成された音声データを音声認識して、テキストデータに変換してもよい。
【００３５】
スピーカ２７は、音声データを音声出力する。情報処理装置２は、音声合成機能を有してもよく、例えば機械翻訳に基づくテキストデータを音声合成して、スピーカ２７から音声出力してもよい。
【００３６】
以上の説明では、ＰＣで構成される情報処理装置２の一例を説明した。本開示に係る情報処理装置２はこれに限定されず、種々の装置構成を有してもよい。例えば、情報処理装置２は、ＡＳＰサーバなどの一つ又は複数のサーバ装置であってもよい。例えば、情報処理装置２は、ネットワークを介して入力された入力文の時系列データＤ１をネットワークＩ／Ｆ２３（取得部の一例）により取得して、深層ニューラルネットワーク１による機械翻訳を実行してもよい。また、情報処理装置２は、機械翻訳において生成した翻訳文の時系列データＤ２を、ネットワークを介して送信してもよい。また、コンピュータクラスタ或いはクラウドコンピューティングなどにおいて、本開示に係る時系列データの情報処理が実行されてもよい。
【００３７】
２．動作
以下、本実施形態に係る情報処理装置２の動作について説明する。
【００３８】
２−１．ニューラル機械翻訳処理
本実施形態に係る情報処理装置２による機械翻訳動作について、図３を参照して説明する。図３は、本実施形態に係るニューラル機械翻訳処理を示すフローチャートである。
【００３９】
ニューラル機械翻訳処理は、情報処理装置２において構築される深層ニューラルネットワーク１により、演算処理部２０が機械翻訳を実行する処理である。図３のフローチャートによるニューラル機械翻訳処理は、情報処理装置１が例えば操作部２４、マイク２６、或いは各種Ｉ／Ｆ２２，２３を介して入力文の時系列データＤ１を取得することにより、開始される。
【００４０】
まず、演算処理部２０は、深層ニューラルネットワーク１における入力層１１として機能し（図１参照）、入力文の時系列データＤ１による単語系列中の入力単語をベクトル変数に変換する（ステップＳ１）。
【００４１】
ステップＳ１の処理において、演算処理部２０は、１−ｏｆ−Ｋ表現の入力単語に線形変換を行い、単語毎にベクトル変数に変換する。線形変換は、学習対象のパラメータを行列要素とするパラメータ行列によって行われる。変換後のベクトル変数の次元数は任意に設定できる。例えば語彙数Ｋよりも小さい次元数に設定することで、語彙の空間から射影した何らかの意味構造を示すベクトル空間において演算処理を行うことができる。
【００４２】
次に、演算処理部２０は、ベクトル変数の時系列データに基づいて、例えば双方向型ＲＮＮ（リカレントニューラルネットワーク）として機能し、入力文における語順を認識する（ステップＳ２）。ＲＮＮは、三層ニューラルネットワークの中間層においてフィードバックを行いながら、時系列データの各ベクトルに対する演算処理を順次、実行する。双方向型ＲＮＮは、時系列データにおけるベクトル列の昇順に実行されるＲＮＮと、降順に実行されるＲＮＮとを並列して実行することにより実現される。ステップＳ２の処理により、入力文の解釈（パース）がなされたベクトル列が生成される。
【００４３】
ステップＳ２の処理は、双方向型ＲＮＮに限らず、例えば双方向型ＬＳＴＭ（ロングショートタームメモリ）で実現されてもよい。ＬＳＴＭは、ＲＮＮにおいてフィードバックする内容の一部消去を行う機能を有する。双方向型ＬＳＴＭは、双方向型ＲＮＮにおけるＲＮＮに代えてＬＳＴＭを適用することによって実現される。また、ステップＳ２の処理は、双方向型ＲＮＮ（又は双方向型ＬＳＴＭ）におけるＲＮＮ（又はＬＳＴＭ）に代えて、本実施形態に係るＲＨＮ１０を適用して、行われてもよい。
【００４４】
次に、演算処理部２０は、アテンションと呼ばれる既存の手法を適用するアテンション処理を行って（例えば、非特許文献３参照）、後段への出力規則を決定する（ステップＳ３）。出力規則は、後段の処理（Ｓ４）を実行する際に、入力側の単語系列中で翻訳対象として注目すべき単語及び注目の度合いを規定する。
【００４５】
ステップＳ３のアテンション処理において、具体的に、演算処理部２０は、ステップＳ２の出力及びステップＳ４における過去の内部状態などを参照して、ステップＳ２で生成されたベクトル列にわたる総和が１の加重値０〜１の組を順次、生成する。演算処理部２０は、生成した加重値０〜１の組によってステップＳ２によるベクトル列の加重平均を行い、ステップＳ４の処理対象となる入力変数を順番に設定する。
【００４６】
次に、演算処理部２０は、例えば本実施形態に係るＲＨＮ１０として機能し、順次、設定された入力変数に基づいて、出力単語の自然さを決定する処理を行う（ステップＳ４）。
【００４７】
具体的に、演算処理部２０は、設定された入力変数の順番毎に、まず、内部状態として中間変数を算出する。次に、演算処理部２０は、現在の入力変数、現在及び過去の内部状態、並びに過去の出力結果などに基づき、出力単語に対応するベクトル変数を順次、出力する。ステップＳ４の処理は、ＲＨＮ１０に代えて、ＲＮＮ又はＬＳＴＭを用いて行われてもよい。ＲＨＮ１０による処理の詳細については、後述する。
【００４８】
次に、演算処理部２０は、深層ニューラルネットワーク１における出力層１３として機能し、出力側言語による翻訳結果の出力単語を示す情報を生成する（ステップＳ５）。具体的に、演算処理部２０は、ステップＳ４の処理において出力されたベクトル変数毎に線形変換を行う。また、線形変換結果に対してソフトマックス関数などに基づく非線形変換を演算し、演算結果のベクトルに対応する出力単語を出力する。
【００４９】
ステップＳ５において、演算処理部２０は、翻訳文における各出力単語を出力する際に、翻訳文の開始及び終了を示す情報も出力する。演算処理部２０は、翻訳文の終了を示す情報を出力することにより、本フローチャートによる処理を終了する。
【００５０】
以上の処理によると、深層ニューラルネットワーク１によって、入力側言語から出力側言語への機械翻訳が行われる。深層ニューラルネットワーク１における学習対象のパラメータ群が適切に最適化されることにより、機械翻訳を精度良く実行可能になる。
【００５１】
深層ニューラルネットワーク１において各種パラメータ群を学習させるために、演算処理部２０は、例えば記憶部２１に予め格納された対訳コーパス等を参照して、図３のフローチャートのステップＳ５の出力結果と正解の翻訳文との誤差を演算する。演算処理部２０は、誤差逆伝播法に従い、出力層１３側から入力層１１側へ順次、各層間の演算処理に用いるパラメータ群を最適化する。
【００５２】
２−２．ＲＨＮ（リカレントハイウェイネットワーク）について
本実施形態に係るＲＨＮ１０について、図４を参照して説明する。図４は、実施形態１に係るＲＨＮ１０の演算アルゴリズムを説明するための図である。
【００５３】
図４では、ＲＨＮ１０の演算アルゴリズムを模式的に示している。本実施形態に係るＲＨＮ１０は、演算処理部２０が時系列データにおける順番ｔ毎に順次、次式（１），（２）に従う演算処理を実行することによって実現される。
ｈ［ｔ］＝Ｔ１×ｈ［ｔ−１］＋（１−Ｔ１）×ｆ１  …（１）
ｙ［ｔ］＝Ｗ３・ｈ［ｔ］                          …（２）
【００５４】
上式（１），（２）において、ｔ番目の入力変数ｘ［ｔ］，中間変数ｈ［ｔ］及び出力変数ｙ［ｔ］は、それぞれベクトル変数である。ｔ−１番目の中間変数ｈ［ｔ−１］は、ｔ番目の中間変数ｈ［ｔ］と同次元のベクトル変数である。また、活性化関数ｆ１及び伝達関数Ｔ１は、引数がベクトル変数であるベクトル値関数である。上式（１）における活性化関数ｆ１の引数は、例えば次式（３）のとおりである。
ｆ１＝ｆ１（Ｗ１・ｘ［ｔ］＋Ｗ２・ｈ［ｔ−１］）  …（３）
【００５５】
上式（３）において、パラメータ行列Ｗ１，Ｗ２は、それぞれベクトル変数ｘ［ｔ］，ｈ［ｔ−１］の次元数と同じ列数を有し、双方とも中間変数ｈ［ｔ］の次元数と同じ行数を有する。また、式（２）において、パラメータ行列Ｗ３は、中間変数ｈ［ｔ］の次元数と同じ列数を有し、出力変数ｙ［ｔ］の次元数と同じ行数を有する。パラメータ行列Ｗ１〜Ｗ３は、それぞれ本実施形態において機械学習の対象となるパラメータ群の一例である。なお、活性化関数ｆ１の引数は、適宜、バイアス項を加えて設定されてもよい。
【００５６】
各式中の「・」は、行列とベクトルとの間の積を規定し、行列によってベクトルを線形変換する演算を表す。例えば、「Ｗ１・ｘ［ｔ］」は、パラメータ行列Ｗ１の行数と同じ次元数を有し、パラメータ行列Ｗ１による入力変数のｘ［ｔ］の線形変換の結果を示すベクトルとなる。演算処理部２０は、このような線形変換を実行する線形変換部として機能する。
【００５７】
また、「×」は、ベクトル同士の乗算を表す。二つのベクトルＶ１，Ｖ２の積「Ｖ１×Ｖ２」はベクトルであって、成分毎に、各ベクトルＶ１，Ｖ２の同一成分間の積（所謂Hadamard積）を表す。積「Ｖ１×Ｖ２」は、各ベクトルＶ１，Ｖ２の成分毎に、同一成分同士を乗算することによって得られる。演算処理部２０は、当該乗算を実行する乗算部として機能する。また、「＋」は、ベクトル同士の加算を表す。和「Ｖ１＋Ｖ２」は、各ベクトルＶ１，Ｖ２の成分毎に、同一成分同士を加算することによって得られる。演算処理部２０は、当該加算を実行する加算部として機能する。
【００５８】
活性化関数ｆ１は、ベクトル変数の線形変換結果を、線形変換だけでは表現できない複雑な関数を表現可能にするための非線形変換を行う関数である。演算処理部２０は、活性化関数ｆ１による非線形変換を実行する非線形変換部として機能する（以下同様）。活性化関数ｆ１としては、例えば、引数ｚにより次式（４）のように表されるシグモイド関数Ｆ（ｚ）が用いられる。
Ｆ（ｚ）＝１／（１＋ｅｘｐ（−ｚ））              …（４）
【００５９】
上式（４）において、ｅｘｐ（ｚ）は指数関数である。活性化関数ｆ１は、ベクトル変数である引数（式（３））の成分毎に、上式（４）のような非線形変換を行い、それぞれの変換結果をベクトル値として有する。活性化関数ｆ１としてシグモイド関数を用いることにより、活性化関数ｆ１の引数の各成分の値が、０〜１の範囲内で正規化される。活性化関数ｆ１としては、シグモイド関数に限らず、種々の関数を用いてもよく、例えばＲｅＬＵ（正規化線形関数）或いはｔａｎｈ（双曲線正接関数）などを用いてもよい。
【００６０】
伝達関数Ｔ１は、（時間遅れの）ｔ−１番目の中間変数ｈ［ｔ−１］などの特定の演算結果に含まれる情報が出力側に伝達する度合いを設定するための関数である。演算処理部２０は、伝達関数Ｔ１を演算する関数演算部として機能する（以下同様）。伝達関数Ｔ１は、例えば（現在の）ｔ番目の入力変数ｘ［ｔ］を引数とし、機械学習の対象となるパラメータ群によって規定される。例えば、伝達関数Ｔ１は、次式（５）のようにパラメータ行列Ｗ４が組み込まれた活性化関数ｆとして規定される。
Ｔ１＝Ｔ１（ｘ［ｔ］）＝ｆ（Ｗ４・ｘ［ｔ］）      …（５）
【００６１】
上式（５）において、活性化関数ｆとしては、例えばシグモイド関数或いはＲｅＬＵなど、種々の活性化関数を採用できる。上式（５）による非線形変換は、上記の活性化関数ｆ１と同様に、引数Ｗ４・ｘ［ｔ］の各成分に対して行われる。
【００６２】
伝達関数Ｔ１の各成分の値の範囲は、例えば０〜１であり、他にも−１〜１など、採用する活性化関数に応じて適宜、設定されてもよい。また、伝達関数Ｔ１の引数は、ｔ−１番目の中間変数ｈ［ｔ−１］あるいは出力変数ｙ［ｔ−１］であってもよいし、ｔ番目又はｔ−１番目以前の各種変数の組み合わせであってもよい。
【００６３】
パラメータ行列Ｗ４は、入力変数ｘ［ｔ］の次元数と同じ列数を有し、中間変数ｈ［ｔ］の次元数と同じ行数を有する。パラメータ行列Ｗ４は、本実施形態において機械学習の対象となるパラメータ群の一例である。
【００６４】
演算処理部２０は、ＲＨＮ１０の機能を実現するために、順番ｔ毎に、まず式（１）に従う演算を行い、ｔ番目の入力変数ｘ［ｔ］からｔ番目の中間変数ｈ［ｔ］を算出する。この際、演算処理部２０は、各種関数ｆ１，Ｔ１による非線形変換の演算も適宜、行う。次に、演算処理部２０は、式（２）に従う演算を行い、ｔ番目の中間変数ｈ［ｔ］からｔ番目の出力変数ｙ［ｔ］を算出する。
【００６５】
式（１）に関して、ＲＨＮ１０は図４に示すように、フィードバックループ５を有する。フィードバックループ５は、ｔ回目の式（１）の演算処理においてｔ番目の中間変数ｈ［ｔ］を算出する際に、前回の中間変数ｈ［ｔ−１］をフィードバックして用いる演算ループである。フィードバックループ５により、現在（ｔ番目）の出力変数ｙ［ｔ］の決定において、時間遅れ（ｔ−１番目）の中間変数ｈ［ｔ−１］による過去の内部状態の情報を反映させることが可能になる。
【００６６】
演算処理部２０は、例えば各回の演算処理において中間変数ｈ［ｔ］を算出する毎に中間変数ｈ［ｔ］の算出結果を記憶部２１に保持し、次回の演算処理において、保持した算出結果を時間遅れの中間変数ｈ［ｔ−１］として参照する。なお、初回（ｔ＝１）の演算処理については、例えば予めｈ［０］＝０等に設定しておく。記憶部２１は、入力変数ｘ［ｔ］と中間変数ｈ［ｔ］（及びｈ［ｔ−１］）と出力変数ｙ［ｔ］とをそれぞれ記憶（保持）するためのＲＨＮ１０における入力層、中間層及び出力層を含んでいる。
【００６７】
本実施形態に係るＲＨＮ１０は、図４に示すように、フィードバックループ５の中に、式（１）に基づく第１及び第２の経路５０，５１を有する。第１及び第２の経路５０，５１は、それぞれ式（１）中の各項に対応して、時間遅れの中間変数ｈ［ｔ−１］による過去の内部状態の情報等を、現在の中間変数ｈ［ｔ］に伝達させる情報伝達経路である。演算処理部２０は、このようなＲＨＮ１０を実現する機能的な構成として、第１の経路５０中の乗算部を含んだ第１のゲート（式（１）第２項の演算に対応）と、第２の経路５２中の乗算部を含んだ第２のゲート（式（１）第１項の演算に対応）とを備える。
【００６８】
図４に示すように、第１の経路５０においては、現在の入力変数ｘ［ｔ］がパラメータ行列Ｗ１によって線形変換されると共に、前回の中間変数ｈ［ｔ−１］が、パラメータ行列Ｗ２によって線形変換される。さらに、線形変換された各変数Ｗ１・ｘ［ｔ］，Ｗ２・ｈ［ｔ−１］の和は、活性化関数ｆ１によって非線形変換される（式（３）参照）。このような入力変数ｘ［ｔ］及び前回の中間変数ｈ［ｔ−１］に対する変換結果において、演算処理部２０は第１のゲートとして、第１の経路５０を介して現在の中間変数ｈ［ｔ］に含める情報を制御する（式（１）第２項参照）。
【００６９】
一方、第２の経路５１においては、図４に示すように、特に線形変換及び非線形変換が行われることなく、前回の演算処理による中間変数ｈ［ｔ−１］の算出結果が維持される。この状態において、前回の中間変数ｈ［ｔ−１］は、伝達関数Ｔ１を重み付けとして乗算される（式（１）第１項）。重み付けの値は、現在の入力変数ｘ［ｔ］などの引数に基づき伝達関数Ｔ１を演算することにより、設定される。これにより、演算処理部２０は第２のゲートとして、前回の中間変数ｈ［ｔ−１］から現在の中間変数ｈ［ｔ］に引き継ぐように、第２の経路５１を介して前回の中間変数ｈ［ｔ−１］の算出結果から取り出す情報を制御する。
【００７０】
また、上記の第１のゲートによると、第１の経路５０において、各種変換結果の活性化関数ｆ１には、第２の経路５１における重み付け（Ｔ１）とは相補的な重み付け（１−Ｔ１）が乗算される（式（１）第２項）。このように、伝達関数Ｔ１に基づく重み付けにおいて、第１の経路５０における各種変換結果と、第２の経路５１における前回の演算処理の算出結果とが重み付け加算されることにより、現在の中間変数ｈ［ｔ］が算出される（式（１）参照）。
【００７１】
第１の経路５０によると、現在の入力変数ｘ［ｔ］と共に前回の中間変数ｈ［ｔ−１］に種々の変換が行われるため、前回の中間変数ｈ［ｔ−１］による過去の情報を多様に反映させることができる。一方、第１の経路５０においては、順番毎の演算処理を行った際に、特定の順番ｎの中間変数ｈ［ｎ］に対して、演算処理を行う毎に繰り返し種々の変換を実施することとなる。特に、不可逆的な変換である非線形変換が問題になる。第１の経路５０では、前回よりも前の過去の情報が、遠い過去ほど損失してしまう事態が想定される。
【００７２】
これに対して、第２の経路５１では、順番毎の演算処理を行った際の特定の順番ｎの中間変数ｈ［ｎ］に対して、重み付け（Ｔ１）の乗算が繰り返されるだけであり、遠い過去の情報損失を低減することができる。例えば、式（１）における伝達関数Ｔ１を１にすることで、過去の内部状態の情報をそのまま引き継ぐことも可能になる（ｈ［ｎ＋１］＝ｈ［ｎ］）。
【００７３】
以上のように、本実施形態に係るＲＨＮ１０によると、第２の経路５１により、各回の演算処理において前回の中間変数ｈ［ｔ−１］の算出結果を維持したまま、過去の内部状態の情報が現在の中間変数ｈ［ｔ］に引き継がれ、無限に過去の内部状態の情報を参照することが可能になる。ＲＨＮ１０によると、和、線形変換、非線形変換のいずれも含まず無変換に、過去の内部状態を参照することができる。また、無変換の過去の内部状態では表現されない分のみ、第１の経路５０による種々の演算によって解くことで、機械学習における最適化が容易になる。
【００７４】
また、本実施形態では、伝達関数Ｔ１が、現在の入力変数ｘ［ｔ］などの引数に基づき第１及び第２の経路５０，５１による重み付けを変化させることにより、第１及び第２の経路５０，５１から出力側に伝達させる情報を適切に選択できる。また、伝達関数Ｔ１はパラメータ行列Ｗ４によって規定されるため、機械学習により、第１及び第２の経路５０，５１から伝達させる情報の選択方法を更新することができる。また、本実施形態では、伝達関数Ｔ１による重み付けを各経路５０，５１に対して相補的に設定している。これにより、各経路５０，５１に対して連動させて演算量の増加を抑制しながら、重要な情報と不要な情報の取捨選択を行うことができる。
【００７５】
以下、本実施形態に係るＲＨＮ１０を、図３のニューラル機械翻訳処理におけるステップＳ４に適用する場合について、説明する。
【００７６】
ＲＨＮ１０が図３のステップＳ４に適用される場合、ステップＳ３のアテンション処理により選択されたデータが順次、ＲＨＮ１０の入力層（ｘ［１］，ｘ［２］，…，ｘ［ｔ］）に入力される。
【００７７】
例えば、単語「免税」が入力文に含まれ、出力文において「ｔａｘ  ｆｒｅｅ」という二単語に翻訳される場合、アテンション処理（Ｓ３）によってＲＨＮに、「免税」を表す同じ値の入力変数ｘ［ｔ１］，ｘ［ｔ２］が順次、入力される。初回の「免税」を表す入力変数ｘ［ｔ１］に基づき、第１の経路５０を介する演算処理によって中間変数ｈ［ｔ１］が算出され、出力変数ｙ［ｔ１］が単語「ｔａｘ」を表すように算出される。
【００７８】
続いて、二回目の「免税」を表す入力変数ｘ［ｔ２］に基づき単語「ｆｒｅｅ」を表す出力変数ｙ［ｔ２］を得るために、入力変数ｘ［ｔ２］に基づく伝達関数Ｔ１の値は、例えば０．５になる。これにより、第１及び第２の経路５０，５１の双方からの情報が出力側に伝達し、現在の翻訳対象が「免税」であること（ｘ［ｔ２］）と共に、過去に「ｔａｘ」を出力した履歴の情報（ｈ［ｔ２−１］）を用いて、出力変数ｙ［ｔ２］を適切に決定することができる。
【００７９】
また、機械翻訳においては、入力文と翻訳文との関係が、多対一の関係にある場合がある。例えば、入力文「お願いします」、「お願いさせて頂きます」、及び「お願い致しました」を出力文「Ｐｌｅａｓｅ」に機械翻訳する場合、上記の関係は三対一となる。この場合、順次、翻訳に不要な情報を表す入力変数ｘ［ｔ］が入力されることとなる。そこで、入力文における「します」、「させて頂きます」、「致しました」といった情報を表す入力変数ｘ［ｔ］が入力されたときには伝達関数Ｔ１の値が１になることにより、翻訳処理において上記のような翻訳に不要な情報を無視させることができる。
【００８０】
また、入力文「私は魚が好きです」或いは「彼は魚が好きです」における「魚」のような入力単語を出力単語「ｆｉｓｈ」に翻訳する際には、過去に「私」を「Ｉ」に翻訳したり、「彼」を「ｈｅ」に翻訳したりしたことを現在の翻訳において参照する必要はないと考えられる。このような場合には、入力単語「魚」を表す入力変数ｘ［ｔ］に基づき伝達関数Ｔ１の値が０になることにより、第１の経路５０からの入力変数ｘ［ｔ］の変換結果を用いながら、第２の経路５１からの過去の情報を遮断できる。
【００８１】
以上のように、ＲＨＮ１０をニューラル機械翻訳処理に適用することにより、人間の直感に合致するような機械翻訳を実現することができる。
【００８２】
３．効果等
以上のように、本実施形態において、情報処理装置２は、時系列データＤ１に基づき深層ニューラルネットワーク１におけるＲＨＮ１０として機能する。情報処理装置２は、記憶部２１と、演算処理部２０とを備える。記憶部２１は、時系列データのベクトル列における順番ｔ毎の入力変数ｘ［ｔ］、及びＲＨＮ１０として機能するためのパラメータ行列Ｗ１〜Ｗ４を格納する。演算処理部２０は、パラメータ行列Ｗ１〜Ｗ３に基づく変換を行って、各順番ｔの入力変数ｘ［ｔ］に基づき当該順番の中間変数ｈ［ｔ］を算出し、算出した中間変数ｈ［ｔ］に基づき当該順番の出力変数ｙ［ｔ］を算出する。演算処理部２０は、ｎ＋１番目の中間変数ｈ［ｎ＋１］（ｎは自然数）を算出するフィードバックループ５において、重み付け加算を行う（式（１））。演算処理部２０は、ｎ番目の中間変数ｈ［ｎ］の算出結果（５１）と、パラメータ行列Ｗ２，Ｗ１に基づきｎ番目の中間変数ｈ［ｎ］及びｎ＋１番目の入力変数ｘ［ｎ］を変換した変換結果（５０）とを重み付け加算して、ｎ＋１番目の中間変数ｈ［ｎ＋１］を算出する。
【００８３】
以上の情報処理装置１によると、ｎ＋１番目の中間変数ｈ［ｎ＋１］を算出するためのフィードバックループ５において、第１の経路５０と共に第２の経路５１が構成される。第２の経路５１において、ｎ番目の中間変数ｈ［ｎ］の算出結果が重み付けに応じてｎ＋１番目の中間変数ｈ［ｎ＋１］に引き継がれ、深層ニューラルネットワーク１による時系列データの情報処理の実行、或いは機械学習を効率良くすることができる。
【００８４】
また、本実施形態において、演算処理部２０は、パラメータ行列Ｗ４によって規定される第１伝達関数である伝達関数Ｔ１に基づく重み付け（Ｔ１，１−Ｔ１）において、ｎ＋１番目の中間変数ｈ［ｎ＋１］を算出する際の重み付け加算を行う。これにより、パラメータ行列Ｗ４の更新によって、機械学習において重み付け加算による情報の取捨選択を最適化することができる。
【００８５】
また、本実施形態において、伝達関数Ｔ１の引数は、ｎ＋１番目以前の入力変数ｘ［ｔ］（ｔ≦ｎ＋１）、ｎ番目以前の中間変数ｈ［ｔ−１］、及びｎ番目以前の出力変数ｙ［ｔ−１］の内の少なくとも１つを含む。これにより、引数とする各種変数に応じて伝達関数Ｔ１による重み付けが変化し、時系列データの順番ｔに応じて過去の内部状態の情報を適切に参照することができる。
【００８６】
また、本実施形態において、時系列データＤ１は自然言語である入力側言語を表すデータを含む。情報処理装置２は、演算処理部２０が実行する処理に基づき、自然言語の機械翻訳を行う。ＲＨＮ１０によって、情報処理装置２は、効率良く機械翻訳を行うことができる。
【００８７】
また、本実施形態における時系列データの情報処理方法は、深層ニューラルネットワーク１におけるＲＨＮ１０の機能を実現する情報処理装置２によって実行される。情報処理装置２の記憶部２１には、ＲＨＮ１０として機能するためのパラメータ行列Ｗ１〜Ｗ３が格納される。本方法は、情報処理装置２が、時系列データにおける順番ｔ毎の入力変数ｘ［ｔ］を取得するステップを含む。本方法は、情報処理装置２が、パラメータ行列Ｗ１，Ｗ２に基づく変換を行って、各順番の入力変数ｘ［ｔ］に基づき当該順番の中間変数ｈ［ｔ］を算出するステップを含む。本方法は、情報処理装置２が、パラメータ行列Ｗ３に基づく変換を行って、各順番の中間変数ｈ［ｔ］に基づき当該順番の出力変数ｙ［ｔ］を算出するステップを含む。ｎ＋１番目の中間変数ｈ［ｎ＋１］を算出するステップは、ｎ番目の中間変数ｈ［ｎ］の算出結果と、パラメータ行列Ｗ２，Ｗ１に基づきｎ番目の中間変数ｈ［ｎ］及びｎ＋１番目の入力変数ｘ［ｎ］を変換した変換結果とを重み付け加算して、ｎ＋１番目の中間変数ｈ［ｎ＋１］を算出する。
【００８８】
以上の時系列データの情報処理方法によると、ｎ番目の中間変数ｈ［ｎ］の算出結果が重み付けに応じてｎ＋１番目の中間変数ｈ［ｎ＋１］に引き継がれ、深層ニューラルネットワーク１による時系列データの情報処理を効率良くすることができる。
【００８９】
また、本実施形態におけるプログラムは、時系列データの情報処理方法を情報処理装置２に実行させるためのプログラムである。これにより、情報処理装置２によって実行される時系列データの情報処理を効率良くすることができる。
【００９０】
（実施形態２）
以下、図面を用いて、実施形態２を説明する。実施形態２では、実施形態１に係るＲＨＮ１０に加えて、入力変数ｘ［ｔ］の情報を出力変数ｙ［ｔ］に伝達させる際の迂回路がさらに設けられたＲＨＮ１０Ａについて説明する。
【００９１】
以下、実施形態１に係る情報処理装置２と同様の構成、動作の説明は適宜、省略して、本実施形態に係る情報処理装置２を説明する。
【００９２】
図５は、実施形態２に係るＲＨＮ１０Ａの演算アルゴリズムを説明するための図である。本実施形態に係るＲＨＮ１０Ａでは、実施形態１の式（２）に代えて、次式（６）を採用する。
ｙ［ｔ］＝（１−Ｔ２）×Ｗ３・ｈ［ｔ］＋Ｔ２×ｘ［ｔ］  …（６）
【００９３】
上式（６）において、伝達関数Ｔ２は、式（１）の伝達関数Ｔ１と同様に学習対象のパラメータ群によって規定される。伝達関数Ｔ２の引数は、例えば現在の入力変数ｘ［ｔ］，中間変数ｈ［ｔ］，前回の出力変数ｙ［ｔ−１］，或いはこれらの組み合わせである。
【００９４】
式（６）では、入力変数ｘ［ｔ］と出力変数ｙ［ｔ］とが同じ次元数を有することを仮定している。入力変数ｘ［ｔ］と出力変数ｙ［ｔ］とが異なる次元数を有する場合、式（６）の第２項の次元数を出力変数ｙ［ｔ］の次元数に一致させるように、線形変換等が適宜、行われる。
【００９５】
本実施形態に係るＲＨＮ１０Ａは、図５に示すように、式（６）に基づく情報伝達の迂回路５２を有する。迂回路５２は、式（６）の第２項に対応して、中間変数ｈ［ｔ］を介さずに、入力変数ｘ［ｔ］の情報を出力変数ｙ［ｔ］に伝達させる情報伝達経路である。このようなＲＨＮ１０Ａを実現する機能的な構成として、演算処理部２０は、迂回路５２を介して出力変数ｙ［ｔ］に伝達させる情報を制御する出力ゲートをさらに備える（式（６）右辺の演算に対応）。
【００９６】
迂回路５２を構成する式（６）に従い、演算処理部２０は、伝達関数Ｔ２に基づく相補的な重み付けにおいて、現在の入力変数ｘ［ｔ］と中間変数ｈ［ｔ］とを重み付け加算して、出力変数ｙ［ｔ］を算出する演算処理を実行する。
【００９７】
迂回路５２により、中間変数ｈ［ｔ］の算出時の非線形変換によって恒等写像の獲得が困難になる事態を回避することができる。これにより、例えば、機械翻訳の深層ニューラルネットワーク１において、入力単語「コーヒー」と出力単語「coffee」のように、入出力間で一対一対応するような対応関係を学習させ易くすることができる。また、充分に良い変換結果が既に得られている状態において過剰な変換をしてしまったり、余計な変換を介して情報を損失したりすることを回避できる。
【００９８】
以上のように、本実施形態に係る情報処理装置２において、演算処理部２０は、第２伝達関数である伝達関数Ｔ２に基づく重み付けにおいて、各順番ｔの入力変数ｘ［ｔ］と、パラメータ行列Ｗ３に基づき変換された当該順番の中間変数ｈ［ｔ］とを重み付け加算する。これによって、演算処理部２０は、当該順番の出力変数ｙ［ｔ］を算出する。これにより、機械学習において、非線形変換などを行う中間変数ｈ［ｔ］の算出によって恒等写像の獲得が困難になることを回避することができる。
【００９９】
また、本実施形態に係るＲＨＮ１０Ａを深層ニューラルネットワーク１に組み込むことにより、学習時に、式（６）に基づく迂回路５２によって中間変数ｈ［ｔ］を算出する層を迂回させ、入力層側のパラメータ群の学習を促進することができる。これにより、前段の層が後段の層と同程度に高速に学習され、前段が後から学習された結果に応じて、後段の学習をやり直さなければならないような事態を解消することができる。
【０１００】
また、本実施形態に係るＲＨＮ１０Ａにおいては、伝達関数Ｔ２，Ｔ１に基づきｙ［ｔ］＝ｘ［ｔ］，ｈ［ｔ−１］＝ｈ［ｔ］の状態が実現可能な範囲内において、種々の演算処理を内部に追加してもよい。この変形例について、図６，７を参照して説明する。
【０１０１】
図６は、本実施形態の変形例１に係るＲＨＮ１０Ｂの演算アルゴリズムを説明するための図である。ＲＨＮ１０Ｂは、図６に示すように、実施形態２に係るＲＨＮ１０Ａ（図５）に、引数Ｗ３・ｈ［ｔ］を有する活性化関数ｆ２を追加している。活性化関数ｆ２によると、現在の出力変数ｙ［ｔ］の算出時に、中間変数ｈ［ｔ］の線形変換結果に対する非線形変換が行われる。
【０１０２】
本変形例に係るＲＨＮ１０Ｂによると、活性化関数ｆ２の演算処理を追加しながら、伝達関数Ｔ２に基づき、迂回路５２を介してｙ［ｔ］＝ｘ［ｔ］の状態を実現することができる。
【０１０３】
図７は、本実施形態の変形例２に係るＲＨＮ１０Ｃの演算アルゴリズムを説明するための図である。ＲＨＮ１０Ｃは、図７に示すように、実施形態２に係るＲＨＮ１０Ａ（図５）に、引数Ｗ２・ｈ［ｔ−１］を有する活性化関数ｆ３を追加している。活性化関数ｆ３によると、現在の中間変数ｈ［ｔ］の算出時に、入力変数ｘ［ｔ］の変換（ｆ１）とは別途、前回の中間変数ｈ［ｔ−１］の線形変換結果に対する非線形変換が行われる。
【０１０４】
本変形例に係るＲＨＮ１０Ｃによると、活性化関数ｆ３の演算処理を追加しながら、伝達関数Ｔ１に基づき、第２の経路５１を介してｈ［ｔ−１］＝ｈ［ｔ］の状態を実現することができる。
【０１０５】
なお、上記の変形例における活性化関数ｆ２，ｆ３としては、実施形態１における活性化関数ｆ１と同様に、種々の具体形を用いることができる。
【０１０６】
また、ＲＨＮ１０Ｃと同様の変形は、実施形態２に係るＲＨＮ１０Ａに限らず、実施形態１に係るＲＨＮ１０に行ってもよい。また、各変形例に係るＲＨＮ１０Ｂ，ＲＨＮ１０Ｃと同様の変形は、後述の各実施形態に適用されてもよい。
【０１０７】
（実施形態３）
以下、図面を用いて、実施形態３を説明する。実施形態３では、実施形態２に係るＲＨＮ１０Ａに加えて、過去の内部状態の情報を部分的に消去する機能を有するＲＨＮ１０Ｄについて説明する。
【０１０８】
以下、実施形態１，２に係る情報処理装置２と同様の構成、動作の説明は適宜、省略して、本実施形態に係る情報処理装置２を説明する。
【０１０９】
図８は、実施形態３に係るＲＨＮ１０Ｄの演算アルゴリズムを説明するための図である。本実施形態に係るＲＨＮ１０Ｄは、実施形態２に係るＲＨＮ１０Ａ（図５）に加えて、図８に示すように、フィードバックループ５において次式（７）の演算を行う。このようなＲＨＮ１０Ｄを実現する機能的な構成として、演算処理部２０は、時間遅れの中間変数ｈ［ｔ−１］から参照する情報を制御する忘却ゲートをさらに備える（式（７）右辺の演算に対応）。
ｈ’［ｔ−１］＝Ｔ３×ｈ［ｔ−１］                          …（７）
【０１１０】
上式（７）において、伝達関数Ｔ３は、引数として例えば現在の入力変数ｘ［ｔ］及び前回の出力変数ｙ［ｔ−１］を有する。伝達関数Ｔ３は、パラメータ行列Ｗ５を用いて、次式（８）のように規定される。
Ｔ３＝Ｔ３（ｘ［ｔ］，ｙ［ｔ−１］）＝Ｆ（Ｗ５・ｚ［ｔ］）  …（８）
【０１１１】
上式（８）では、シグモイド関数Ｆ（ｚ）を用いている（式（４）参照）。また、ベクトル変数ｚ［ｔ］は、ベクトル空間を拡張するように両変数ｘ［ｔ］及びｙ［ｔ−１］を結合することによって得られるベクトル変数である。例えば、ｘ［ｔ］＝（１，９，５）Ｔ，ｙ［ｔ］＝（１０，４３，２２）Ｔである場合に（上付き添字「Ｔ」は転置を表す。）、ｚ［ｔ］＝（１，９，５，１０，４３，２２）Ｔとなる。
【０１１２】
本実施形態に係るＲＨＮ１０Ｄの機能を実現するために、演算処理部２０は忘却ゲートとして、順番ｔ毎に、式（１）の演算処理時に、時間遅れの中間変数ｈ［ｔ−１］に代えて、伝達関数３の乗算結果の中間変数ｈ’［ｔ−１］（式（７））を用いる。引数に基づき伝達関数Ｔ３に値が０の成分を含めることにより、乗算結果の中間変数ｈ’［ｔ−１］では、時間遅れの中間変数ｈ［ｔ−１］の対応する成分が消去（忘却）される。
【０１１３】
本実施形態に係るＲＨＮ１０Ｄによると、伝達関数Ｔ３の乗算によって時間遅れの中間変数ｈ［ｔ−１］に含まれる情報を消去することで、過去の内部状態の参照を適切な時点で停止可能になる。
【０１１４】
例えば、機械翻訳において、入力文「私は…」における単語「私」及び「は」の翻訳を終えた際、「私は」の後に続く単語は無数に存在する。このように、次の単語の翻訳の際には過去に入力された情報（「私」及び「は」）が、特に必要ないと考えられる場合がある。このような場合に、伝達関数Ｔ３を用いて内部状態の情報を明示的に消去することにより、次の単語が過去の状態に依存せずに翻訳される。これにより、直感的にも合致するような機械翻訳が実現され、翻訳性能を向上することができる。
【０１１５】
以上のように、本実施形態に係る情報処理装置２において、演算処理部２０は、第３伝達関数である伝達関数Ｔ３に基づいて、ｎ番目の中間変数ｈ［ｎ］の算出結果を部分的に消去する（式（７））。演算処理部２０は、部分的に消去したｎ番目の中間変数の算出結果ｈ’［ｎ］を用いて、ｎ＋１番目の中間変数ｈ［ｎ＋１］を算出する。これにより、伝達関数Ｔ３に基づきｎ番目の中間変数ｈ［ｎ］の算出結果を部分的に消去することで、過去の内部状態の参照を適切な時点で停止可能になる。
【０１１６】
（実施形態４）
以下、図面を用いて、実施形態４を説明する。実施形態４では、各変数ｘ［ｔ］，ｈ［ｔ−１］，ｈ［ｔ］に対する非線形変換の有無を種々の組み合わせで選択可能なＲＨＮ１０Ｅについて説明する。
【０１１７】
以下、実施形態１〜３に係る情報処理装置２と同様の構成、動作の説明は適宜、省略して、本実施形態に係る情報処理装置２を説明する。
【０１１８】
図９は、実施形態４に係るＲＨＮ１０Ｅの演算アルゴリズムを説明するための図である。本実施形態に係るＲＨＮ１０Ｅは、演算処理部２０が、ｔ番目の中間変数ｈ［ｔ］及び出力変数ｙ［ｔ］の算出のために、それぞれ次式（９），（１０）に従う演算処理を実行することによって実現される。
ｈ［ｔ］＝（１−Ｔ４）×｛Ｔ１×ｈ［ｔ−１］＋（１−Ｔ１）×ｆ１｝＋Ｔ４×ｘ［ｔ］                                            …（９）
ｙ［ｔ］＝（１−Ｔ５）×ｆ２＋Ｔ５×ｈ［ｔ］  …（１０）
【０１１９】
上式（９），（１０）において、各伝達関数Ｔ４，Ｔ５は、伝達関数Ｔ１，Ｔ２と同様に、それぞれ学習対象のパラメータ群によって規定される。伝達関数Ｔ４の引数は、例えば現在の入力変数ｘ［ｔ］，前回の中間変数ｈ［ｔ−１］，出力変数ｙ［ｔ−１］或いはこれらの組み合わせである。伝達関数Ｔ５の引数は、例えば現在の入力変数ｘ［ｔ］，中間変数ｈ［ｔ］，前回の出力変数ｙ［ｔ−１］或いはこれらの組み合わせである。
【０１２０】
式（９）では、入力変数ｘ［ｔ］と中間変数ｈ［ｔ］とが同じ次元数を有することを仮定している。入力変数ｘ［ｔ］と中間変数ｈ［ｔ］とが異なる次元数を有する場合、式（９）の第２項の次元数を中間変数ｈ［ｔ］の次元数に一致させるように、線形変換等が適宜、行われる。
【０１２１】
ＲＨＮ１０Ｅによると、中間変数ｈ［ｔ］の算出時（式（９））に、伝達関数Ｔ１によって時間遅れの中間変数ｈ［ｔ−１］に対する非線形変換の有無が選択されることに加えて、伝達関数Ｔ４により、入力変数ｘ［ｔ］に対する非線形変換の有無が選択される。さらに、算出した中間変数ｈ［ｔ］に対する非線形変換の有無が、伝達関数Ｔ５により、出力変数ｙ［ｔ］の算出時（式（１０））に選択される。
【０１２２】
以上のように、各伝達関数Ｔ１，Ｔ４，Ｔ５によって各種変数ｈ［ｔ−１］，ｘ［ｔ］，ｈ［ｔ］に対する非線形変換の有無を設定可能にすることで、不要な非線形変換を省略して、ＲＨＮ１０Ｅにおける情報処理の効率性を向上することができる。
【０１２３】
以上のように、本実施形態に係る情報処理装置２において、演算処理部２０は、ｎ＋１番目の中間変数ｈ［ｎ＋１］を算出する際に、第４伝達関数である伝達関数Ｔ４に基づく重み付けにおいて、ｎ番目の中間変数ｈ［ｎ］の算出結果とその変換結果とを重み付け加算した値と、ｎ＋１番目の入力変数ｘ［ｎ＋１］の値とを重み付け加算する（式（９））。これにより、入力変数ｘ［ｎ＋１］及び時間遅れの中間変数ｈ［ｎ］に対する変換の有無をそれぞれ選択可能にすることができる。
【０１２４】
また、本実施形態において、演算処理部２０は、各順番の出力変数ｙ［ｔ］を算出する際に、第５伝達関数である伝達関数Ｔ５に基づく重み付けにおいて、重み付け加算を行う。演算処理部２０は、当該順番の中間変数ｈ［ｔ］と、パラメータ行列Ｗ３によって変換された当該順番の中間変数ｆ２（Ｗ３・ｈ［ｔ］）とを重み付け加算する（式（１０））。これにより、現在の中間変数ｈ［ｔ］に対する変換の有無をそれぞれ選択可能にすることができる。
【０１２５】
以上の説明では、伝達関数Ｔ４，Ｔ５の双方を用いる例について説明したが、伝達関数Ｔ４，Ｔ５の一方のみを用いてもよい。この場合、演算処理部２０は、式（９），（１０）において、伝達関数Ｔ４，Ｔ５のうちで使用しない伝達関数に０を代入した演算式に従う演算処理を実行する。これにより、入力変数ｘ［ｔ］又は中間変数ｈ［ｔ］と、時間遅れの中間変数ｈ［ｔ−１］とに対する非線形変換の有無をそれぞれ選択することができる。
【０１２６】
（他の実施形態）
以上のように、本出願において開示する技術の例示として、実施形態１〜４を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置換、付加、省略などを行った実施の形態にも適用可能である。また、上記各実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。そこで、以下、他の実施形態を例示する。
【０１２７】
上記の各実施形態では、各伝達関数Ｔ１，Ｔ２，Ｔ４，Ｔ５におけるそれぞれ一つの伝達関数に基づく相補的な重み付けにおいて重み付け加算を行った。重み付け加算の方法はこれに限定されず、複数の伝達関数に基づく重み付けにおいて重み付け加算を行ってもよい。例えば、式（１）のＴ１，（１−Ｔ１）に代えて、別々に設定される複数の伝達関数Ｐ１，Ｐ２を用いてもよい。これにより、第１及び第２の経路５０，５１による情報伝達を独立して調整することができる。他の伝達関数Ｔ２，Ｔ４，Ｔ５に基づく重み付け加算についても同様である。
【０１２８】
また、上記の各実施形態では、機械翻訳を行うための深層ニューラルネットワーク１の一例を説明したが、これに限らず、他の深層ニューラルネットワークを構築して機械翻訳を行ってもよい。例えば、エンコーダ／デコーダ型の翻訳モデルを用いてもよいし、双方向ＬＳＴＭをインタリーブ式に組み合わせるなど、適宜、多層化してもよい（非特許文献２参照）。この場合であっても、上記各実施形態に係るＲＨＮ１０，１０Ａ〜１０Ｅを組み込むことで、情報処理を効率良くすることができる。
【０１２９】
また、上記の各実施形態では、機械翻訳を行うための深層ニューラルネットワーク１にＲＨＮ１０，１０Ａ〜１０Ｅを組み込む例について説明したが、本開示はこれに限定されない。本開示に係るＲＨＮ１０，１０Ａ〜１０Ｅは、例えば音声認識、発話予測など、種々の時系列データを扱う情報処理に用いることができる。
【０１３０】
また、上記の各実施形態では、時系列データの一例として単語系列を説明した。時系列データはこれに限らず、例えば、文章中の文字列、音声データ中の音声特徴量の列、動画のフレーム列、画像の隣接ピクセル列など、種々のデータ要素の列であってもよい。
【０１３１】
また、上記の各実施形態では、ＲＨＮ１０，１０Ａ〜１０Ｅを深層ニューラルネットワーク１に組み込んで用いる例を説明したが、本開示はこれに限定されない。ＲＨＮ１０，１０Ａ〜１０Ｅ単体のニューラルネットワークによる情報処理が行われてもよい。本開示に係るＲＨＮは、時系列データの時系列方向に演算処理を飛ばすあらゆる構成として適用可能である。
【０１３２】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
【０１３３】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１３４】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において、種々の変更、置換、付加、省略などを行うことができる。
【産業上の利用可能性】
【０１３５】
本開示は、機械学習に基づく種々の時系列データの情報処理に適用可能であり、例えば音声認識処理、機械翻訳処理に適用可能である。
【図１】
2018003457.tif 000003
【図２】
2018003457.tif 000004
【図３】
2018003457.tif 000005
【図４】
2018003457.tif 000006
【図５】
2018003457.tif 000007
【図６】
2018003457.tif 000008
【図７】
2018003457.tif 000009
【図８】
2018003457.tif 000010
【図９】
2018003457.tif 000011
【手続補正書】
【提出日】平成30年7月26日(2018.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
時系列データに基づきニューラルネットワークとして機能する情報処理装置であって、
時系列データにおける順番毎の入力変数、及びニューラルネットワークとして機能するためのパラメータ群を格納する記憶部と、
前記パラメータ群に基づく変換を行って、各順番の入力変数に基づき当該順番の中間変数を算出し、算出した中間変数に基づき当該順番の出力変数を算出する演算処理部とを備え、
前記演算処理部は、ｎ＋１番目の中間変数を算出する際に、
ｎ番目の中間変数の算出結果と、前記パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果とを重み付け加算し、
一つ又は複数の伝達関数に基づく重み付けにおいて、前記ｎ番目の中間変数の算出結果と前記変換結果とを重み付け加算した値と、前記ｎ＋１番目の入力変数の値とを重み付け加算して、前記ｎ＋１番目の中間変数を算出する
情報処理装置。
【請求項２】
時系列データに基づきニューラルネットワークとして機能する情報処理装置であって、
時系列データにおける順番毎の入力変数、及びニューラルネットワークとして機能するためのパラメータ群を格納する記憶部と、
前記パラメータ群に基づく変換を行って、各順番の入力変数に基づき当該順番の中間変数を算出し、算出した中間変数に基づき当該順番の出力変数を算出する演算処理部とを備え、
前記演算処理部は、ｎ＋１番目の中間変数を算出する際に、ｎ番目の中間変数の算出結果と、前記パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果とを重み付け加算して、前記ｎ＋１番目の中間変数を算出し、
前記演算処理部は、各順番の出力変数を算出する際に、一つ又は複数の伝達関数に基づく重み付けにおいて、当該順番の中間変数と、前記パラメータ群によって変換された当該順番の中間変数とを重み付け加算する
情報処理装置。
【請求項３】
前記演算処理部は、前記パラメータ群によって規定される一つ又は複数の第１伝達関数に基づく重み付けにおいて、前記ｎ番目の中間変数の算出結果と前記変換結果との重み付け加算を行う
請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１伝達関数の引数は、前記ｎ＋１番目以前の入力変数、前記ｎ番目以前の中間変数、及び前記ｎ番目以前の出力変数の内の少なくとも１つを含む
請求項３に記載の情報処理装置。
【請求項５】
前記演算処理部は、一つ又は複数の第２伝達関数に基づく重み付けにおいて、各順番の入力変数と、前記パラメータ群に基づき変換された当該順番の中間変数とを重み付け加算して、当該順番の出力変数を算出する
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記演算処理部は、
第３伝達関数に基づいて、前記ｎ番目の中間変数の算出結果を部分的に消去し、
部分的に消去したｎ番目の中間変数の算出結果を用いて、前記ｎ＋１番目の中間変数を算出する
請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記時系列データは自然言語を表すデータを含み、
前記演算処理部が実行する処理に基づき、自然言語の機械翻訳を行う
請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
ニューラルネットワークの機能を実現する情報処理装置によって実行される時系列データの情報処理方法であって、
前記情報処理装置の記憶部には、ニューラルネットワークとして機能するためのパラメータ群が格納され、
前記情報処理装置が、時系列データにおける順番毎の入力変数を取得するステップと、
前記情報処理装置が、前記パラメータ群に基づく変換を行って、各順番の入力変数に基づき当該順番の中間変数を算出するステップと、
前記情報処理装置が、前記パラメータ群に基づく変換を行って、各順番の中間変数に基づき当該順番の出力変数を算出するステップとを含み、
ｎ＋１番目の中間変数を算出するステップは、
ｎ番目の中間変数の算出結果と、前記パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果とを重み付け加算し、
一つ又は複数の伝達関数に基づく重み付けにおいて、前記ｎ番目の中間変数の算出結果と前記変換結果とを重み付け加算した値と、前記ｎ＋１番目の入力変数の値とを重み付け加算して、ｎ＋１番目の中間変数を算出する
時系列データの情報処理方法。
【請求項９】
ニューラルネットワークの機能を実現する情報処理装置によって実行される時系列データの情報処理方法であって、
前記情報処理装置の記憶部には、ニューラルネットワークとして機能するためのパラメータ群が格納され、
前記情報処理装置が、時系列データにおける順番毎の入力変数を取得するステップと、
前記情報処理装置が、前記パラメータ群に基づく変換を行って、各順番の入力変数に基づき当該順番の中間変数を算出するステップと、
前記情報処理装置が、前記パラメータ群に基づく変換を行って、各順番の中間変数に基づき当該順番の出力変数を算出するステップとを含み、
ｎ＋１番目の中間変数を算出するステップは、ｎ番目の中間変数の算出結果と、前記パラメータ群に基づきｎ番目の中間変数及びｎ＋１番目の入力変数を変換した変換結果とを重み付け加算して、ｎ＋１番目の中間変数を算出し、
各順番の出力変数を算出するステップは、一つ又は複数の伝達関数に基づく重み付けにおいて、当該順番の中間変数と、前記パラメータ群によって変換された当該順番の中間変数とを重み付け加算する
時系列データの情報処理方法。
【請求項１０】
請求項８又は９に記載の時系列データの情報処理方法を情報処理装置に実行させるためのプログラム。
【国際調査報告】
2018003457.tif 000012
2018003457.tif 000013