説明

システムパラメータ最適化装置、方法、及びプログラム

【課題】高速かつ高精度に、システムパラメータの最適化を行うことができるようにする。
【解決手段】粒子更新部23によって、粒子の速度を正規化して更新し、更新された粒子の速度に基づいて、粒子の位置を正規化して更新する。システム処理部24に、粒子の現在の位置が示すシステムパラメータの値が設定され、予め用意された入力文に対して翻訳処理を行い、翻訳文を出力する。粒子更新部23は、出力された翻訳文に対して評価関数の値を計算する。粒子更新部23によって、計算された評価関数の値に基づいて、粒子の自己ベスト位置を更新する。全体ベスト更新部25によって、各粒子について更新された自己ベスト位置に基づいて、全体ベスト位置を更新する。収束判定部26によって、全体ベスト位置が収束したと判定したときに繰り返し処理を終了し、最適化された全体ベスト位置が示すシステムパラメータの値を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムパラメータ最適化装置、方法、及びプログラムに係り、特に、情報処理システムに設定するシステムパラメータを最適化するシステムパラメータ最適化装置、方法、及びプログラムに関する。
【背景技術】
【0002】
機械翻訳、音声認識、画像認識と言った総合的な情報処理システムでは、複数のコンポーネントで構成されていることが一般的であり、複数のコンポーネントに対して複数のシステムパラメータが存在する。
【0003】
よって、上記のような情報処理システムを作成する際には、どのような入力に対しても、平均的に最もよい出力がされるようにシステムパラメータを選択したい。最良のシステムパラメータを選択する処理は、学習データと呼ばれる、想定される入力とそれに対応する正解出力の例を多数準備し、それらの例を使ってシステムの良さを評価する評価関数の値が最も高くなるようなシステムパラメータを探索する処理とみなすことができる。
【0004】
ここでは、統計翻訳システムのシステムパラメータを最適化する問題を例に取り上げる。翻訳とは、ある言語の文章を別の言語の文章に変換することである。例えば、入力文の言語は、英語であり、出力文の言語は日本語である。ここでは簡単のため、入力される文章は一文と仮定して説明を行う。ただし、入力が複数の文から成る文章の場合でも、文章は単文が複数で構成されている解釈すれば、単文の処理の連続で文章を処理することが可能であるため、ここで一文に限定して話を進めても、ここでの技術を用いて文章を処理することが可能である。
【0005】
翻訳を自動的に行う統計翻訳システムは、入力文fに対して最も適していると思われる翻訳文^eを出力するシステムといえる。ここでは、システムが出し得る翻訳文の集合(加算無限集合)をEとすると、入力文fに対して最適な翻訳文^eを出力する問題を、以下の(1)式のように、最適化問題として記述することができる。
【0006】
【数1】

【0007】
ただし、P(e|f)は入力fが与えられた際の出力eの確率または尤度である。
【0008】
現在の最先端の技術を用いた統計翻訳システムでは、一般的に複数のコンポーネントを組み合わせて翻訳システムが構成される。例えば、言語モデル、単語または句翻訳モデル、語順選択モデル等を組み合わせて翻訳システムが構成される。ここでは、翻訳システムがD個のコンポーネントで構成されていると仮定する。
【0009】
このとき、上記(1)式の尤度Pは、以下の(2)式に示すように、翻訳文の品質(尤もらしさ)を各コンポーネント毎に推定した値の組み合わせで計算される。
【0010】
【数2】

【0011】
ただし、{φ(e,f),...,φ(e,f)}は、入力文と翻訳文のペア(e,f)に対して各コンポーネントが与える翻訳文としての尤もらしさの推定値である。また、{λ}d=1は、各コンポーネントの信頼度に相当する重みであり、これらがシステムパラメータである。つまり、翻訳システムでのシステムパラメータ最適化処理では、各コンポーネントの信頼度である{λ}d=1の値を、尤も質の高い翻訳文を選択するような値に決定することになる。
【0012】
ここで、利用する評価関数をΛ()とする。次に、学習データとしてM個の事例を用意する。この学習データの個々の事例は、システムの入力とそれに対するいくつかの正解出力のペアである。
【0013】
よって、m番目の事例に対する、入力文をfとすると、そのm番目の入力文に対する人間が作成したK個の正解翻訳例を{rm,k}k=1とする。システムパラメータを、ベクトルλとし、学習データ中のm番目のサンプルに対するシステムの出力を^e(λ)とする。このとき、システムパラメータの最適化処理は,以下の(3)式に示す最適化問題を解くことと等価である。
【0014】
【数3】

【0015】
一般論として、上記(3)式で示した最適化に利用する評価関数が凸関数かつ微分可能な関数であれば、勾配法等の非常に良く知られた最適化アルゴリズムを用いて容易かつ効率的に最適なシステムパラメータを発見することが可能である。例えば、評価関数が、以下の(4)式に示すような線形関数となる平均エラー率等の場合である。
【0016】
【数4】

【0017】
ただし、機械翻訳、音声認識、画像認識と言った総合的な情報処理システムでは、単純な評価関数ではなく、人間の直観と合致するような評価関数を利用したい場合がある。このような評価関数は、非凸、非連続、非線型、微分不可能と言うように、最適化には不向きな複雑な関数となる場合がしばしば起こり得る。例えば、統計翻訳の分野では、システム出力の翻訳文章が、どの程度人間の作った翻訳文章に適合しているかを計る指標として、以下の(5)式に示す、BLEUと呼ばれる評価指標を利用することが多い(非特許文献1)。
【0018】
【数5】

【0019】
ただし、Bは、短い翻訳文に高いスコアを与えるのを抑制するために導入された項である。また、cはシステムの翻訳の長さ、rは人間が作った翻訳文の長さを表す。直感的に説明すると、BLEUでは、システムの翻訳文と人間の翻訳文との単語連鎖の重なりの度合いを計算することにより、翻訳文の質を評価していることになる。
【0020】
上記(5)式で示したような複雑な評価関数に対してシステムパラメータを最適化する方法が知られている(例えば、非特許文献2)。非特許文献2に記載の方法では、基本的な処理として、複数あるパラメータからひとつ選択し他のパラメータを固定した上で、選択したひとつのパラメータの値を変化させて最も高い評価関数の値を得る値を探索している。これを複数回繰り返すことで、山登り法のように、全体として最適なシステムパラメータを決定している。
【先行技術文献】
【非特許文献】
【0021】
【非特許文献1】Kishore Papineni, SalimRoukos, Todd Ward, and Wei jing Zhu. Bleu: a method for automatic evaluation of machine translation. In Research Report RC22176, IBM Research Division, Thomas J. Watson Research Center, pages 311-318, 2002.
【非特許文献2】F. van den Bergh and A. P. Engelbrecht. A new locally convergent particle swarm optimizer. In Proceedings of IEEE International Conference on Systems, Man, and Cybernetics, pages 96-101, 2002.
【発明の概要】
【発明が解決しようとする課題】
【0022】
上記(5)式に示すBLEUスコアのような複雑な評価関数に対する最良システムパラメータを見つけるのは、一般的には非常に困難であり、システムパラメータ最適化にかかる計算時間は非常に長くなる。また、システム開発の過程では、これらのシステムの評価関数を唯一に決めることは困難であり、システムの利用場面等に応じて様々な評価関数を用いて発見的に最良のシステムパラメータを決定する、といった処理が必要になる。この様なシステムの開発プロセス中のことを考えると、システムパラメータ最適化にかかる時間が非常に長いと、それだけシステム開発時間やコストが増大する、という問題が発生する。このような問題に対応するためには、関数の性質によらず高速にシステムパラメータの最適化が可能な枠組が望まれる。
【0023】
また、上記の非特許文献2に記載の方法では、ひとつのパラメータ毎に更新していくため、真の最適パラメータを発見しにくい、という問題がある。
【0024】
本発明は、上記の事情を鑑みてなされたもので、高速かつ高精度に、システムパラメータの最適化を行うことができるシステムパラメータ最適化装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0025】
上記の目的を達成するために本発明に係るシステムパラメータ最適化装置は、出力データの尤もらしさを求めるためのD個(Dは2以上の整数)のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化装置であって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定する初期化手段と、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新する速度更新手段と、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化する位置更新手段と、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算する評価手段と、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新する自己ベスト更新手段と、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新する全体ベスト更新手段と、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力する最適化手段と、を含んで構成されている。
【0026】
本発明に係るシステムパラメータ最適化方法は、出力データの尤もらしさを求めるためのD個(Dは2以上の整数)のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化方法であって、初期化手段によって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定するステップと、速度更新手段によって、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新するステップと、位置更新手段によって、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化するステップと、評価手段によって、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算するステップと、自己ベスト更新手段によって、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新するステップと、全体ベスト更新手段によって、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新するステップと、最適化手段によって、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力するステップと、を含む。
【0027】
本発明によれば、初期化手段によって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定する。
【0028】
速度更新手段によって、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新する。位置更新手段によって、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化する。評価手段によって、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算する。
【0029】
そして、自己ベスト更新手段によって、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新する。全体ベスト更新手段によって、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新する。
【0030】
そして、最適化手段によって、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力する。
【0031】
このように、システムパラメータの値を表わすD次元空間における所定個の粒子について、速度の絶対値が所定値以下となるように粒子の速度を更新すると共に、正規化された粒子の位置に更新するようにして、各粒子の位置、速度、及び自己ベストを繰り返し更新して、全体ベストを最適化することにより、高速かつ高精度に、システムパラメータの最適化を行うことができる。
【0032】
本発明に係るプログラムは、コンピュータを、上記のシステムパラメータ最適化装置の各手段として機能させるためのプログラムである。
【発明の効果】
【0033】
以上説明したように、本発明のシステムパラメータ翻訳最適化装置、方法、及びプログラムによれば、システムパラメータの値を表わすD次元空間における所定個の粒子について、速度の絶対値が所定値以下となるように粒子の速度を更新すると共に、正規化された粒子の位置に更新するようにして、各粒子の位置、速度、及び自己ベストを繰り返し更新して、全体ベストを最適化することにより、高速かつ高精度に、システムパラメータの最適化を行うことができる、という効果が得られる。
【図面の簡単な説明】
【0034】
【図1】本発明の第1の実施の形態に係るシステムパラメータ最適化装置の構成を示す概略図である。
【図2】学習データの例を示す図である。
【図3】機械翻訳システムのコンポーネントを説明するための図である。
【図4】(A)粒子の位置の正規化を説明するための図、及び(B)粒子の速度の正規化を説明するための図である。
【図5】本発明の第1の実施の形態に係るシステムパラメータ最適化装置におけるパラメータ最適化処理ルーチンの内容を示すフローチャートである。
【図6】本発明の第1の実施の形態に係るシステムパラメータ最適化装置における粒子更新処理ルーチンの内容を示すフローチャートである。
【図7】本発明の最適化手法を用いた場合と従来法を用いた場合とにおける実行時間を示すグラフである。
【図8】本発明の最適化手法を用いた場合と従来法を用いた場合とにおける評価関数の値を示すグラフである。
【図9】音声認識システムのコンポーネントを説明するための図である。
【発明を実施するための形態】
【0035】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0036】
〔第1の実施の形態〕
<システム構成>
本発明の第1の実施の形態に係るシステムパラメータ最適化装置100は、翻訳元言語の入力文と翻訳先言語の正しい出力文とからなる学習データが複数入力され、機械翻訳システムのシステムパラメータを最適化する。このシステムパラメータ最適化装置100は、CPUと、RAMと、後述するパラメータ最適化処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図1に示すように、システムパラメータ最適化装置100は、入力部10と、演算部20と、出力部30とを備えている。
【0037】
入力部10は、入力された学習データとして、翻訳元の英語の入力文と正しい日本語訳である正解出力文とからなるデータセットを複数受け付ける。なお、図2に示すように、入力文に対する翻訳例は、翻訳のバリエーションによりいくつかの正解が考えられるため、ここでは、1つの入力文に対して、2つの正解出力文が付与された学習データを用いる。また、入力部10は、後述する評価関数の定義、および学習に関するパラメータである粒子数の入力を受け付ける。本実施の形態では、評価関数の定義として、上記(5)式に示すBLEUの評価関数が入力される。
【0038】
演算部20は、学習データ記憶部21、粒子初期化部22、K個の粒子更新部23〜23、K個のシステム処理部24〜24、全体ベスト更新部25、及び収束判定部26を備えている。なお、粒子更新部23〜23が、速度更新手段、位置更新手段、評価手段、及び自己ベスト更新手段の一例である。収束判定部26が、最適化手段の一例である。
【0039】
学習データ記憶部21は、入力部10により受け付けた複数の学習データを記憶する。
【0040】
システム処理部24〜24の各々は、図3に示すような機械翻訳システムとして機械翻訳処理を行う。当該機械翻訳システムは、システム出力の尤もらしさを求めるための複数のコンポーネントとして、言語モデル、単語または句翻訳モデル、及び並び替えモデルを用いて、英語の入力文に対して、日本語の出力文を出力する。機械翻訳処理では、上記(2)式に示すように、各コンポーネントによる推定される翻訳文の尤もらしさの推定値と、各コンポーネントに対する重み{λ}d=1とに基づいて、尤度Pが最大となる翻訳文を、出力文として決定する。各コンポーネントに対する重み{λ}d=1が、システムパラメータである。このように、当該機械翻訳システムは、上記(2)式で示したように、各システムパラメータに対して線形モデルになっている。また、システム処理部24〜24は、並列計算により、各々独立して機械翻訳処理を行う。
【0041】
<システムパラメータ最適化の原理>
次に、システムパラメータを最適化する原理について説明する。
【0042】
本発明では、従来のアルゴリズムのように演算装置がひとつだけの逐次処理を行う計算環境ではなく、分散並列計算環境も想定している。その上で、基本的な枠組として粒子群最適化法を、システムパラメータ最適化に利用する。また、機械翻訳システム等のようにシステムパラメータに対して線形モデルである場合に、定数倍のシステムパラメータは同じ出力となる性質を利用し、パラメータの探索空間を狭める工夫等を導入する。
【0043】
<粒子群最適化>
まず、粒子群最適化について説明する。なお、粒子群最適化については、参考文献(J. Kennedy and R. C. Eberhart. Particle Swarm Optimization. In Proceedings of IEEE International Conference on Neural Networks, pages 1942-1948, 1995.)に記載されている。
【0044】
粒子群最適化は、反復計算により最適解を探索するアルゴリズムである。また、多数の粒子を定義し、鳥や魚が群として最適解を共有しながら行動する特徴に基づいて考案されたアルゴリズムに基づいて、各粒子が探索範囲を走査することで最適解を見つける方法である。より詳細には、各繰り返し毎に,各粒子内でこれまでで最も高い評価関数の値を取った位置と、粒子群全体で最も高い評価関数の値を取った位置とを保持し、それらの位置と現在位置との差分や乱数を用いて各粒子の速度を更新し、その速度に基づいて位置を更新する、という操作を繰り返す。これにより、粒子群全体で最も高い評価関数の値を取った位置を保持しつつ、探索空間の中で更に高い値を取る位置を探していくような最適化アルゴリズムになっている。
【0045】
ここで、最適化したいシステムパラメータのパラメータ数をDとし、システムパラメータをD次元のベクトルで表す。最適化に利用する目的関数をΛとする。
【0046】
粒子群最適化では、はじめに、D個のシステムパラメータを表わすD次元空間に、K個の粒子を生成する。各粒子Pは、現在の位置x、現在の速度v、そしてこれまでの探索で見つけた最も高い評価関数の値を取った位置(「自己ベスト位置」)bの3つの情報を持つ。このときのx,v,bは全てD次元のベクトルである。ここでは、k番目の粒子(k=1,...,K)をP=(x,v,b)で表す。粒子群最適化は、反復計算により最適解を探索するアルゴリズムである。ここではtを繰り返しのカウントとする。また、Tを繰り返しの上限値とする。
【0047】
k番目の粒子の繰り返しt回目の時点における自己ベスト位置b(t)は,以下の(6)式で表される。
【0048】
【数6】

【0049】
ただし、全てのkに対して、Λ(b(0))=−∞とする。
【0050】
次に、全ての粒子の中で最も高い評価関数の値を取った粒子の位置を「全体ベスト位置」と呼ぶことにする。この全体ベスト位置をgとして、繰り返しt回目の時点における全体ベスト位置をg(t)と書く。
【0051】
この時、g(t)は、自己ベスト位置bを利用して以下の(7)式のように表わされる。
【0052】
【数7】

【0053】
次に、速度と位置の更新方法について説明する。ここでは、U(0,1)が0から1の一様分布を表すものとし、r〜U(0,1)とr〜U(0,1)として、r1、r2を一様分布に従って与えられる乱数とする。xk、d,bk、d,vk,dを、それぞれ、k番目の粒子の現在位置、自己ベスト位置、速度のd次元目の値とする。同様に、全体ベスト位置のd次元目の値をgdとする。このときには、以下の関係が成り立つ。
【0054】
=(xk,1,...,xk、D),b=(bk,1,...,bk,D),v=(vk,1,...,k、D),g=(g,...,g
【0055】
このとき、粒子群最適化では、各繰り返しにおいて、以下の(8)式、(9)式に示す更新式を用いて、速度と位置を更新する.
【0056】
【数8】

【0057】
ただし、ξは慣性重みと呼ばれる過去の速度をどれだけ重視するかを表す値である。また、c1とc2は自己ベスト位置と全体ベスト位置のどちらを重視して速度を更新するかを表す定数である。ここでは、ξ(t)=(T−t)/T、c=c=2を用いる。
【0058】
<局所最適解への収束の保証>
通常の粒子群最適化では(局所)最適値へ収束が保証されていない。そこで、本実施の形態では、参考文献(F. van den Bergh and A. P. Engelbrecht. A new locally convergent particle swarm optimizer. In Proceedings of IEEE International Conference on Systems, Man, and Cybernetics, pages 96-101, 2002)で提案されている局所最適化を保証する方法を取り入れる。概要としては、自己ベスト位置が全体ベスト位置と等しい粒子について、速度と位置の更新式として、上記(8)式、(9)式を以下のように変更した式を用いる。
【0059】
まず、τを、自己ベスト位置が全体ベスト位置と等しい粒子の番号とする。この時、繰り返しt回目の時のτ番目の粒子の速度の更新には、以下の(10)式を用いる。
【0060】
【数9】

【0061】
ρは、現在の全体ベスト位置の周辺の探索範囲の広さに影響を与える変数である。ただし、ρ(0)=1とする。
【0062】
上記(10)式を上記(9)式に当てはめると、位置の更新式は以下の(11)式で表される。
【0063】
【数10】

【0064】
上記(11)式の位置の更新式からわかるように、自己ベスト位置が全体ベスト位置と等しい粒子は、全体ベスト位置の周辺を必ず探索することになる。よって、確率的に現在の全体ベスト位置に対する局所最適値を発見することが可能である。
【0065】
<線形モデルの性質の利用>
情報処理システムが、システムパラメータに対して線形モデルの場合には、パラメータベクトルの定数倍は全て同じ解となる、という性質がある。よって、定数倍となるパラメータを探索しても重複となり無駄となる。そこで、粒子群最適化の際に、各繰り返しtにおいて、全ての粒子の位置xk(t)を正規化する。具体的には、Lpノルム球面上に写像する処理を行う。ただし、p∈{1,2,...}である。この処理により、全ての粒子は、原点からLpノルムの意味で等しい距離の位置へ移動することになる。繰り返しtでのk番目の粒子の位置に対するLpノルム球面への写像処理は、以下の(12)式に従って行われる。
【0066】
【数11】

【0067】
また、速度に関しても同様にLpノルム球への写像を考える。ただし、速度の場合は、上記で説明した位置の正規化と違い、速度ベクトルがLpノルム球面上ではなくLpノルム球内であればよい。これは、各繰り返し探索時に、過剰に大きな速度を得て、粒子が発散や振動をすることがないようにするためである。
【0068】
よって、速度の絶対値が小さいときには、正規化する必要はない。特に、本発明では、位置はノルム球面上に存在すると仮定するため、一度に移動できる範囲もノルム球内に納めると言うのは自然な考え方と言える。具体的には、以下の(13)式を用いて速度のノルム球内への写像を行う。
【0069】
【数12】

【0070】
ただし、βはノルム球の大きさを表すパラメータであり、人間が設定する値である。ここではβ=1を利用する。上記(13)式により、速度の絶対値が所定値以下となるように、速度を正規化することができる。
【0071】
D=2,p=2とした場合には、図4(A)に示すように、粒子の位置がノルム球面上へ写像され、図4(B)に示すように、速度が、ノルム球面内に写像される。
【0072】
<位置更新時の棄却採択判定>
粒子が探索範囲を走査する際に、できる限りよい解を発見できるようにしたい。そこで、本実施の形態では、各繰り返しで速度と現在位置を更新する際に、その更新を採択するか棄却するかを判定する機構を導入する。採択/棄却の判定は、更新位置での評価関数の値を利用して行われる。これにより、繰り返し毎に悪い評価関数の値となる位置を走査することを抑止することができるため、結果的に、より良い解が得られる可能性が高くなる。
【0073】
ここでは、各繰り返しにおいて、速度の更新、更新された速度に合わせた位置の更新、更新した位置での評価関数の値の計算という一連の3つの処理を、独立に複数回試行し、複数回の試行の中で最も高い評価関数の値となった速度と位置の更新情報を採択するという方式をとる。つまり、それ以外の試行の更新結果は棄却される。ここで、ポイントとしては、速度の更新式の中にはランダム性が含まれていることから、独立に複数回試行を行った結果は、確率的にたまたま一致するといったことを除けば、必ず違う更新結果となる。この結果、必然的に更新される位置も違うものになる。つまり、従来は一回の試行で更新が完了するところを、複数回繰り返した中で最も良い結果が得られる更新を選択して採択することになる。ここでは、試行の回数をT'で表すこととし、T'=10を利用することにする。
【0074】
以上のように、本実施の形態では、粒子群最適化を拡張した方法を用いて、システムパラメータを最適化する。以下、演算部20の各部について説明する。
【0075】
粒子初期化部22は、入力された粒子数に合わせて、複数の粒子を生成する。その後、各粒子の速度、位置、自己ベスト位置を設定する。速度と位置に関しては、乱数を用いて初期化する。ここでは、システムは線形モデルという仮定を置いているので、乱数の値域を[0,1]とする。また、乱数を用いて求められた速度と現在位置とを、上記(12)式および(13)式にしたがって正規化する。
【0076】
自己ベスト位置に関しては、初期化時は過去の履歴が存在しないので、初期化時の位置を、自己ベスト位置として設定する。自己ベスト位置に付与する値としては、初期化時の位置が表わすシステムパラメータを機械翻訳システムに設定した場合に得られる翻訳文(システムの出力)に対する評価関数の値を設定する。
【0077】
粒子更新部23〜23の各々は、並列分散により、各粒子独立に、粒子に対する速度の更新、現在位置の更新、自己ベストの更新を行う。また、システム処理部24〜24の各々は、粒子更新部23〜23の各々に対応して、並列計算により、対応する粒子が表わすシステムパラメータを機械翻訳システムに設定して、機械翻訳処理を行う。なお、以下では、任意の粒子更新部23、及び当該粒子更新部23に対応するシステム処理部24について説明する。
【0078】
粒子更新部23は、対象の粒子について、上記(8)式に従って、粒子の速度の更新を複数回行って、速度の更新候補を複数計算する。ただし、対象の粒子の自己ベスト位置が全体ベスト位置と等しい場合には、粒子の速度の更新候補を、上記(10)式に従って計算する。その後、粒子更新部23は、計算した速度の更新候補を、上記(13)式に従って正規化する。
【0079】
また、粒子更新部23は、対象の粒子について、正規化された速度の更新候補の各々を用いて、上記(9)式に従って、粒子の位置の更新候補を複数計算する。ただし、対象の粒子の自己ベストが全体ベストと等しい場合には、正規化された粒子の位置の更新候補を、上記(11)式に従って計算する。その後、粒子更新部23は、計算した位置の更新候補を、上記(12)式に従って正規化する。
【0080】
システム処理部24は、対応する粒子更新部23により正規化された位置の更新候補毎に、当該位置の更新候補が示すシステムパラメータを、機械翻訳システムに設定して、学習データの入力文に対して、機械翻訳処理を行い、システム出力としての翻訳文を決定する。なお、システム出力の決定には上記(1)式を用いる。
【0081】
粒子更新部23は、対応するシステム処理部24によって決定された、位置の更新候補毎の各システム出力(翻訳文)について、学習データの正解翻訳文を用いて、上記(5)式に従って、翻訳文の良さを表わす評価関数の値を計算する。また、各システム出力について計算された評価関数の値を平均して、当該位置の更新候補が示すシステムパラメータに対する評価関数の値とする。
【0082】
粒子更新部23は、位置の更新候補の各々について計算された評価関数の値に基づいて、評価関数の値が最大値となる位置の更新候補を、今回の位置の更新結果として採用すると共に、当該位置の更新候補に対する速度の更新候補を、今回の速度の更新結果として採用する。
【0083】
粒子更新部23は、今回の位置の更新結果に対応する評価関数の値(上記の評価関数の最大値)と、自己ベスト位置の評価関数の値とを比較し、上記(6)式のように、今回の位置の更新結果に対応する評価関数の値の方が高い場合には、自己ベスト位置、及び自己ベスト位置における評価関数の値を更新する。
【0084】
全体ベスト更新部25は、粒子更新部23〜23の各々で求められた各粒子の自己ベスト位置の評価関数の値と、全体ベスト位置の評価関数の値とを比較し、全体ベスト位置の評価関数の値より、全粒子の自己ベスト位置における評価関数の最大値の方が大きい場合には、全体ベスト位置及び全体ベスト位置における評価関数の値を、評価関数の値が最大値となる全粒子の自己ベスト位置のものに更新する。また、全体ベスト位置が更新され、全体ベスト位置となった粒子の番号が変更になった場合には、全体ベスト位置の粒子の番号も更新する。
【0085】
演算部20は、粒子更新部23〜23、システム処理部24〜24、及び全体ベスト更新部25による一連の処理を繰り返し行う。
【0086】
収束判定部26は、上記の一連の処理による最適なシステムパラメータの探索が終了したかどうかを判定する。収束判定部26により収束していないと判定された場合には、粒子更新部23〜23からの一連の処理を繰り返す。収束判定部26により収束したと判定された場合には、全体ベスト位置が表わすシステムパラメータを出力部30により出力する。
【0087】
収束判定部26による収束判定では、全体ベスト位置が連続してある一定の繰り返し回数変更されていなかったときに収束したと判定する。ここでは、繰り返し数15回連続で全体ベストが更新されなかった場合に収束したと判定する。
【0088】
<システムパラメータ最適化装置の作用>
次に、第1の実施の形態に係るシステムパラメータ最適化装置100の作用について説明する。まず、英語の入力文と日本語の正しい翻訳文とからなる学習データが、システムパラメータ最適化装置100に複数入力されると、システムパラメータ最適化装置100によって、入力された複数の学習データが、学習データ記憶部21へ格納される。また、評価関数の定義、及び粒子数が、システムパラメータ最適化装置100に入力される。
【0089】
そして、システムパラメータ最適化装置100によって、図5に示すパラメータ最適化処理ルーチンが実行される。
【0090】
まず、ステップS101において、学習データ記憶部21から複数の学習データの全てを取得する。そして、ステップS102において、入力された粒子数分の粒子を生成し、各粒子の速度、位置、及び自己ベスト位置を初期化する。また、各粒子について、初期化された位置のシステムパラメータに基づいて、機械翻訳システムのシステム出力を取得し、システム出力に対する評価関数の値を計算し、計算された値を、当該粒子の自己ベスト位置に付与する値に設定して初期化する。
【0091】
ステップS103では、各粒子の更新を、並列計算により行う。上記ステップS103は、各粒子について、図6に示す粒子更新処理ルーチンが並列に実行されることにより実現される。以下、ある一つの粒子を更新対象とする場合について説明する。
【0092】
ステップS121において、試行回数を示す変数t’に初期値1を設定する。ステップS122では、対象粒子の自己ベスト位置、全体ベスト位置、前回(t−1回目の繰り返し)における対象粒子の速度、及び位置に基づいて、上記(8)式に従って、速度の更新候補を計算する。対象粒子が、自己ベスト位置が全体ベスト位置と等しい粒子である場合には、全体ベスト位置、前回(t−1回目)における対象粒子の速度、及び位置に基づいて、上記(10)式に従って、速度の更新候補を計算する。また、上記(13)式に従って、速度の更新候補を正規化する。
【0093】
ステップS123では、上記ステップS122で計算された、正規化された速度の更新候補に基づいて、上記(9)式又は(11)式に従って、対象粒子の位置の更新候補を計算する。また、上記(12)式に従って、位置の更新候補を正規化する。そして、ステップS124において、上記ステップS123で計算された、正規化された位置の更新候補が表わすシステムパラメータを、対応するシステム処理部24の機械翻訳システムに設定する。
【0094】
次のステップS125において、学習データ毎に、学習データの入力文に対して、機械翻訳処理を行い、システム出力としての翻訳文を決定する。ステップS126では、学習データ毎に、学習データの正解翻訳文を用いて、上記ステップS125で決定された翻訳文について、上記(5)式に従って、評価関数の値を計算する。学習データ毎に計算された評価関数の値を平均して、最終的な評価関数の値とする。
【0095】
ステップS127では、変数t’が、試行回数を定めた定数T’以上になったか否かを判定する。変数t’が、試行回数T’未満である場合には、ステップS128において、変数t’を1インクリメントして、上記ステップS122へ戻る。一方、変数t’が、試行回数T’以上となった場合には、ステップS129へ進む。
【0096】
ステップS129では、上記ステップS126で計算された評価関数の値が最も高くなるときの位置の更新候補を判定し、該当する位置の更新候補(正規化された位置の更新候補)を、今回(t回目)の位置の更新結果として採用すると共に、対応する速度の更新候補(正規化された速度の更新候補)を、今回の速度の更新結果として採用する。
【0097】
そして、ステップS130では、対象粒子の自己ベスト位置の評価関数の値と、上記ステップS126で計算された評価関数の最大値とを比較し、上記ステップS126で計算された評価関数の最大値の方が大きい場合には、上記ステップS127で更新された位置に自己ベスト位置を更新すると共に、その位置における評価関数の値に、自己ベスト位置に付与する評価関数の値を更新して、粒子更新処理ルーチンを終了する。
【0098】
上記の粒子更新処理ルーチンが、各粒子について並列に行われることにより、各粒子の位置、速度、及び自己ベスト位置が同時に更新される。
【0099】
そして、ステップS104において、現在の全ての粒子の自己ベスト位置における評価値の最大値と、全体ベスト位置の評価値の値とを比較して、現在の全ての粒子の自己ベスト位置における評価値の最大値の方が大きい場合には、当該評価値が最大値となる自己ベスト位置を持つ粒子の位置に、全体ベスト位置を更新すると共に、その位置における評価関数の値に、全体ベスト位置に付与する評価関数の値を更新する。また、当該評価値が最大値となる自己ベスト位置を持つ粒子を示す番号に、全体ベスト位置の粒子の番号を変更する。
【0100】
次のステップS105では、最適なシステムパラメータの探索が収束したか否かを判定する。全体ベスト位置が所定回数連続して更新されていない場合には、最適なシステムパラメータの探索が収束したと判定し、ステップS106へ進む。
【0101】
一方、最適なシステムパラメータの探索が収束していないと判定された場合には、上記ステップS103へ戻り、上記ステップS103〜ステップS104の処理を繰り返す。
【0102】
ステップS106では、全体ベスト位置が示すシステムパラメータを出力部30により出力して、パラメータ最適化処理ルーチンを終了する。
【0103】
<実験結果>
次に、上記図2に示す学習データに対して実験を行った結果について説明する。上記の第1の実施の形態で説明したシステムパラメータの最適化方法を用いて、最適なシステムパラメータを推定した。粒子数を32個、128個、512個とし、粒子数と同数のCPUを用いて、分散並列計算により各粒子の更新処理を実行した。比較対象として、通常の粒子最適化手法(従来法)を用いてシステムパラメータを最適化する実験を行った。
【0104】
実験を行った結果を図7、図8に示す。図7に示すように、第1の実施の形態で説明したシステムパラメータの最適化方法を用いた場合には、従来法に比べて、最適なシステムパラメータを推定する処理、及び機械翻訳システムにより翻訳文を決定する処理の各々に置いて、実行時間が短くなることが分かった。
【0105】
また、図8に示すように、第1の実施の形態で説明したシステムパラメータの最適化方法を用いた場合には、従来法に比べて、最終的に得られた全体ベスト位置(すわなち、最適化されたシステムパラメータ)の評価関数の値が高くなることが分かった。
【0106】
以上説明したように、第1の実施の形態に係るシステムパラメータ最適化装置によれば、システムパラメータの値を表わすD次元空間における所定個の粒子について、粒子の速度および粒子の位置を正規化するように更新して、各粒子の位置、速度、及び自己ベスト位置を繰り返し更新して、全体ベスト位置を最適化することにより、高速かつ高精度に、システムパラメータの最適化を行うことができる。
【0107】
また、本実施の形態で用いている粒子群最適化法は、大域的最適化法に属する方法であるため、従来法より、より良いシステムパラメータを発見できる。
【0108】
また、機械翻訳システムはシステムパラメータに対して線形モデルであるが、最適化の評価関数が非凸、非連続、非線型、微分不可能な関数となるような、複雑な最適化問題であっても、高速かつ高精度に、システムパラメータの最適化を行うことができる。
【0109】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。なお、第2の実施の形態に係るシステムパラメータ最適化装置は、第1の実施の形態と同様の構成であるため、同一符号を付して説明を省略する。
【0110】
第2の実施の形態では、音声認識システムに設定するシステムパラメータの最適化を行っている点が、第1の実施の形態と異なっている。
【0111】
第2の実施の形態に係るシステムパラメータ最適化装置100は、入力となる音声信号と出力となるテキストとからなる学習データが複数入力され、音声認識システムのシステムパラメータを最適化する。
【0112】
システム処理部24〜24の各々は、図9に示すような、音声認識システムとして音声認識処理を行う。当該音声認識システムは、複数のコンポーネントとして、言語モデル、及び認識モデルを用いて、入力された音声信号に対して、音声認識の結果としてテキストを出力する。音声認識処理では、上記(2)式と同様に、各コンポーネントによる推定されるテキストの尤もらしさの推定値と、各コンポーネントに対する重み{λ}d=1とに基づいて、尤度Pが最大となるテキストを、システム出力として出力する。各コンポーネントに対する重み{λ}d=1が、最適化するシステムパラメータである。このように、当該音声認識システムは、各システムパラメータに対して線形モデルになっている。
【0113】
なお、第2の実施の形態に係るシステムパラメータ最適化装置の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
【0114】
このように、高速かつ高精度に、音声認識システムのシステムパラメータの最適化を行うことができる。
【0115】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0116】
例えば、ネットワークで接続された複数の演算装置を備えた分散並列計算環境において、複数の演算装置による分散並列計算で、各粒子について独立して更新するようにしてもよい。この場合には、各演算装置が、粒子更新部23及びシステム処理部24を備えると共に、メインの演算装置が、学習データ記憶部21、粒子初期化部22、及び全体ベスト更新部25、収束判定部26を備えているように構成すればよい。これによって、機械翻訳システム、音声認識システムのシステムパラメータ最適化処理において、演算装置をひとつだけ用いて処理する従来法と比較して、数倍から数十倍程度の計算時間の高速化が可能となる。
【0117】
また、機械翻訳処理や音声認識処理など、入力データを出力データに変換する変換処理を行うシステムのシステムパラメータを最適化する場合を例に説明したが、これに限定されるものではない。例えば、入力画像に対して画像認識処理を行って画像認識結果を出力する画像認識システムなどの情報処理システムのシステムパラメータを最適化するようにしてもよい。
【0118】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【0119】
10 入力部
20 演算部
21 学習データ記憶部
22 粒子初期化部
23 粒子更新部
24 システム処理部
25 全体ベスト更新部
26 収束判定部
100 システムパラメータ最適化装置

【特許請求の範囲】
【請求項1】
出力データの尤もらしさを求めるためのD個(Dは2以上の整数)のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化装置であって、
前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定する初期化手段と、
前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新する速度更新手段と、
前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化する位置更新手段と、
前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算する評価手段と、
前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新する自己ベスト更新手段と、
前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新する全体ベスト更新手段と、
前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力する最適化手段と、
を含むシステムパラメータ最適化装置。
【請求項2】
前記速度更新手段は、更新対象の粒子について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように前記粒子の速度の複数の更新候補を算出し、
前記位置更新手段は、前記更新対象の粒子について、前記粒子の速度の複数の更新候補に基づいて、前記球面上の位置になるように正規化された前記粒子の位置の複数の更新候補を算出し、
前記評価手段は、前記更新対象の粒子について、前記粒子の位置の複数の更新候補の各々が示す前記複数のシステムパラメータの値を前記情報処理システムに各々設定した場合における前記評価関数の値を計算し、前記評価関数の最大値に対応する前記粒子の位置の更新候補及び前記粒子の速度の更新候補を、前記更新対象の粒子の更新結果及び前記粒子の速度の更新結果とする請求項1記載のシステムパラメータ最適化装置。
【請求項3】
出力データの尤もらしさを求めるためのD個(Dは2以上の整数)のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化方法であって、
初期化手段によって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定するステップと、
速度更新手段によって、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新するステップと、
位置更新手段によって、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化するステップと、
評価手段によって、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算するステップと、
自己ベスト更新手段によって、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新するステップと、
全体ベスト更新手段によって、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新するステップと、
最適化手段によって、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力するステップと、
を含むシステムパラメータ最適化方法。
【請求項4】
前記速度更新手段によって更新するステップは、更新対象の粒子について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように前記粒子の速度の複数の更新候補を算出し、
前記位置更新手段によって更新するステップは、前記更新対象の粒子について、前記粒子の速度の複数の更新候補に基づいて、前記球面上の位置になるように正規化された前記粒子の位置の複数の更新候補を算出し、
前記評価手段によって計算するステップは、前記更新対象の粒子について、前記粒子の位置の複数の更新候補の各々が示す前記複数のシステムパラメータの値を前記情報処理システムに各々設定した場合における前記評価関数の値を計算し、前記評価関数の最大値に対応する前記粒子の位置の更新候補及び前記粒子の速度の更新候補を、前記更新対象の粒子の更新結果及び前記粒子の速度の更新結果とする請求項3記載のシステムパラメータ最適化方法。
【請求項5】
コンピュータを、請求項1又は2記載のシステムパラメータ最適化装置の各手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−89025(P2013−89025A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−228964(P2011−228964)
【出願日】平成23年10月18日(2011.10.18)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】