"出力データの尤もらしさを求めるためのD個Dは2以上の整数のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化装置であって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定する初期化手段と、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新する速度更新手段と、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化する位置更新手段と、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算する評価手段と、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新する自己ベスト更新手段と、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新する全体ベスト更新手段と、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力する最適化手段と、を含むシステムパラメータ最適化装置。前記速度更新手段は、更新対象の粒子について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように前記粒子の速度の複数の更新候補を算出し、前記位置更新手段は、前記更新対象の粒子について、前記粒子の速度の複数の更新候補に基づいて、前記球面上の位置になるように正規化された前記粒子の位置の複数の更新候補を算出し、前記評価手段は、前記更新対象の粒子について、前記粒子の位置の複数の更新候補の各々が示す前記複数のシステムパラメータの値を前記情報処理システムに各々設定した場合における前記評価関数の値を計算し、前記評価関数の最大値に対応する前記粒子の位置の更新候補及び前記粒子の速度の更新候補を、前記更新対象の粒子の更新結果及び前記粒子の速度の更新結果とする請求項1記載のシステムパラメータ最適化装置。出力データの尤もらしさを求めるためのD個Dは2以上の整数のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化方法であって、初期化手段によって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定するステップと、速度更新手段によって、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新するステップと、位置更新手段によって、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化するステップと、評価手段によって、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算するステップと、自己ベスト更新手段によって、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新するステップと、全体ベスト更新手段によって、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新するステップと、最適化手段によって、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力するステップと、を含むシステムパラメータ最適化方法。前記速度更新手段によって更新するステップは、更新対象の粒子について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように前記粒子の速度の複数の更新候補を算出し、前記位置更新手段によって更新するステップは、前記更新対象の粒子について、前記粒子の速度の複数の更新候補に基づいて、前記球面上の位置になるように正規化された前記粒子の位置の複数の更新候補を算出し、前記評価手段によって計算するステップは、前記更新対象の粒子について、前記粒子の位置の複数の更新候補の各々が示す前記複数のシステムパラメータの値を前記情報処理システムに各々設定した場合における前記評価関数の値を計算し、前記評価関数の最大値に対応する前記粒子の位置の更新候補及び前記粒子の速度の更新候補を、前記更新対象の粒子の更新結果及び前記粒子の速度の更新結果とする請求項3記載のシステムパラメータ最適化方法。コンピュータを、請求項1又は2記載のシステムパラメータ最適化装置の各手段として機能させるためのプログラム。上記5式に示すBLEUスコアのような複雑な評価関数に対する最良システムパラメータを見つけるのは、一般的には非常に困難であり、システムパラメータ最適化にかかる計算時間は非常に長くなる。また、システム開発の過程では、これらのシステムの評価関数を唯一に決めることは困難であり、システムの利用場面等に応じて様々な評価関数を用いて発見的に最良のシステムパラメータを決定する、といった処理が必要になる。この様なシステムの開発プロセス中のことを考えると、システムパラメータ最適化にかかる時間が非常に長いと、それだけシステム開発時間やコストが増大する、という問題が発生する。このような問題に対応するためには、関数の性質によらず高速にシステムパラメータの最適化が可能な枠組が望まれる。また、上記の非特許文献2に記載の方法では、ひとつのパラメータ毎に更新していくため、真の最適パラメータを発見しにくい、という問題がある。本発明は、上記の事情を鑑みてなされたもので、高速かつ高精度に、システムパラメータの最適化を行うことができるシステムパラメータ最適化装置、方法、及びプログラムを提供することを目的とする。上記の目的を達成するために本発明に係るシステムパラメータ最適化装置は、出力データの尤もらしさを求めるためのD個Dは2以上の整数のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化装置であって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定する初期化手段と、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新する速度更新手段と、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化する位置更新手段と、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算する評価手段と、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新する自己ベスト更新手段と、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新する全体ベスト更新手段と、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力する最適化手段と、を含んで構成されている。本発明に係るシステムパラメータ最適化方法は、出力データの尤もらしさを求めるためのD個Dは2以上の整数のコンポーネントを用いて、入力データに対して所定の情報処理を行って出力データを出力する情報処理システムに設定される、前記D個のコンポーネントに対するD個のシステムパラメータを、評価関数の値に基づいて最適化するシステムパラメータ最適化方法であって、初期化手段によって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定するステップと、速度更新手段によって、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新するステップと、位置更新手段によって、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化するステップと、評価手段によって、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算するステップと、自己ベスト更新手段によって、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新するステップと、全体ベスト更新手段によって、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新するステップと、最適化手段によって、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力するステップと、を含む。本発明によれば、初期化手段によって、前記D個のシステムパラメータの値を表わすD次元空間における所定個の粒子の各々の位置、前記所定個の粒子の各々の速度、及び前記所定個の粒子の各々における前記評価関数の値に関する自己ベストに初期値を設定すると共に、前記所定個の粒子における前記評価関数の値に関する全体ベストに初期値を各々設定する。速度更新手段によって、前記所定個の粒子の各々について、前記粒子の自己ベスト、前記全体ベスト、及び乱数に基づいて、速度の絶対値が所定値以下となるように、前記粒子の速度を各々更新する。位置更新手段によって、前記所定個の粒子の各々について、前記速度更新手段によって更新された前記粒子の速度に基づいて、前記粒子の位置を各々更新すると共に、原点を中心とし半径を所定値とした球面上の位置になるように前記更新された粒子の位置を各々正規化する。評価手段によって、前記所定個の粒子の各々について、前記粒子の現在の位置が示す前記D個のシステムパラメータの値を前記情報処理システムに設定したときに予め用意された入力データに対して前記情報処理システムから出力される前記出力データについて、前記入力データに対する正解となる出力データに基づく前記評価関数の値を計算する。そして、自己ベスト更新手段によって、前記所定個の粒子の各々について、前記評価手段によって計算された前記評価関数の値に基づいて、前記粒子の自己ベストを各々更新する。全体ベスト更新手段によって、前記所定個の粒子について更新された自己ベストに基づいて、前記全体ベストを更新する。そして、最適化手段によって、前記速度更新手段による更新、前記位置更新手段による更新、前記評価手段による計算、前記自己ベスト更新手段による更新、及び前記全体ベスト更新手段による更新を繰り返すことで、前記全体ベストを最適化したときに、前記全体ベストが示す前記D個のシステムパラメータの値を出力する。このように、システムパラメータの値を表わすD次元空間における所定個の粒子について、速度の絶対値が所定値以下となるように粒子の速度を更新すると共に、正規化された粒子の位置に更新するようにして、各粒子の位置、速度、及び自己ベストを繰り返し更新して、全体ベストを最適化することにより、高速かつ高精度に、システムパラメータの最適化を行うことができる。本発明に係るプログラムは、コンピュータを、上記のシステムパラメータ最適化装置の各手段として機能させるためのプログラムである。以上説明したように、本発明のシステムパラメータ翻訳最適化装置、方法、及びプログラムによれば、システムパラメータの値を表わすD次元空間における所定個の粒子について、速度の絶対値が所定値以下となるように粒子の速度を更新すると共に、正規化された粒子の位置に更新するようにして、各粒子の位置、速度、及び自己ベストを繰り返し更新して、全体ベストを最適化することにより、高速かつ高精度に、システムパラメータの最適化を行うことができる、という効果が得られる。以下、図面を参照して本発明の実施の形態を詳細に説明する。第1の実施の形態<システム構成>本発明の第1の実施の形態に係るシステムパラメータ最適化装置100は、翻訳元言語の入力文と翻訳先言語の正しい出力文とからなる学習データが複数入力され、機械翻訳システムのシステムパラメータを最適化する。このシステムパラメータ最適化装置100は、CPUと、RAMと、後述するパラメータ最適化処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図1に示すように、システムパラメータ最適化装置100は、入力部10と、演算部20と、出力部30とを備えている。入力部10は、入力された学習データとして、翻訳元の英語の入力文と正しい日本語訳である正解出力文とからなるデータセットを複数受け付ける。なお、図2に示すように、入力文に対する翻訳例は、翻訳のバリエーションによりいくつかの正解が考えられるため、ここでは、1つの入力文に対して、2つの正解出力文が付与された学習データを用いる。また、入力部10は、後述する評価関数の定義、および学習に関するパラメータである粒子数の入力を受け付ける。本実施の形態では、評価関数の定義として、上記5式に示すBLEUの評価関数が入力される。演算部20は、学習データ記憶部21、粒子初期化部22、K個の粒子更新部231~23K、K個のシステム処理部241~24K、全体ベスト更新部25、及び収束判定部26を備えている。なお、粒子更新部231~23Kが、速度更新手段、位置更新手段、評価手段、及び自己ベスト更新手段の一例である。収束判定部26が、最適化手段の一例である。学習データ記憶部21は、入力部10により受け付けた複数の学習データを記憶する。システム処理部241~24Kの各々は、図3に示すような機械翻訳システムとして機械翻訳処理を行う。当該機械翻訳システムは、システム出力の尤もらしさを求めるための複数のコンポーネントとして、言語モデル、単語または句翻訳モデル、及び並び替えモデルを用いて、英語の入力文に対して、日本語の出力文を出力する。機械翻訳処理では、上記2式に示すように、各コンポーネントによる推定される翻訳文の尤もらしさの推定値と、各コンポーネントに対する重みλdd=1Dとに基づいて、尤度Pが最大となる翻訳文を、出力文として決定する。各コンポーネントに対する重みλdd=1Dが、システムパラメータである。このように、当該機械翻訳システムは、上記2式で示したように、各システムパラメータに対して線形モデルになっている。また、システム処理部241~24Kは、並列計算により、各々独立して機械翻訳処理を行う。<システムパラメータ最適化の原理>次に、システムパラメータを最適化する原理について説明する。本発明では、従来のアルゴリズムのように演算装置がひとつだけの逐次処理を行う計算環境ではなく、分散並列計算環境も想定している。その上で、基本的な枠組として粒子群最適化法を、システムパラメータ最適化に利用する。また、機械翻訳システム等のようにシステムパラメータに対して線形モデルである場合に、定数倍のシステムパラメータは同じ出力となる性質を利用し、パラメータの探索空間を狭める工夫等を導入する。<粒子群最適化>まず、粒子群最適化について説明する。なお、粒子群最適化については、参考文献JKennedyandRCEberhartParticleSwarmOptimizationInProceedingsofIEEEInternationalConferenceonNeuralNetworkspages194219481995に記載されている。粒子群最適化は、反復計算により最適解を探索するアルゴリズムである。また、多数の粒子を定義し、鳥や魚が群として最適解を共有しながら行動する特徴に基づいて考案されたアルゴリズムに基づいて、各粒子が探索範囲を走査することで最適解を見つける方法である。より詳細には、各繰り返し毎に,各粒子内でこれまでで最も高い評価関数の値を取った位置と、粒子群全体で最も高い評価関数の値を取った位置とを保持し、それらの位置と現在位置との差分や乱数を用いて各粒子の速度を更新し、その速度に基づいて位置を更新する、という操作を繰り返す。これにより、粒子群全体で最も高い評価関数の値を取った位置を保持しつつ、探索空間の中で更に高い値を取る位置を探していくような最適化アルゴリズムになっている。ここで、最適化したいシステムパラメータのパラメータ数をDとし、システムパラメータをD次元のベクトルで表す。最適化に利用する目的関数をΛとする。粒子群最適化では、はじめに、D個のシステムパラメータを表わすD次元空間に、K個の粒子を生成する。各粒子Pは、現在の位置x、現在の速度v、そしてこれまでの探索で見つけた最も高い評価関数の値を取った位置自己ベスト位置bの3つの情報を持つ。このときのxk,vk,bkは全てD次元のベクトルである。ここでは、k番目の粒子と書く。この時、gは、自己ベスト位置bを利用して以下の7式のように表わされる。次に、速度と位置の更新方法について説明する。ここでは、Uが0から1の一様分布を表すものとし、r1~U0,1とr2~U0,1として、r1、r2を一様分布に従って与えられる乱数とする。xk、d,bk、d,vk,dを、それぞれ、k番目の粒子の現在位置、自己ベスト位置、速度のd次元目の値とする。同様に、全体ベスト位置のd次元目の値をgdとする。このときには、以下の関係が成り立つ。xk=xk,1,...,xk、D,bk=bk,1,...,bk,D,vk=vk,1,...,vk、D,g=g1,...,gDこのとき、粒子群最適化では、各繰り返しにおいて、以下の8式、9式に示す更新式を用いて、速度と位置を更新する.ただし、ξは慣性重みと呼ばれる過去の速度をどれだけ重視するかを表す値である。また、c1とc2は自己ベスト位置と全体ベスト位置のどちらを重視して速度を更新するかを表す定数である。ここでは、ξt=T-t/T、c1=c2=2を用いる。<局所最適解への収束の保証>通常の粒子群最適化では最適値へ収束が保証されていない。そこで、本実施の形態では、参考文献FvandenBerghandAPEngelbrechtAnewlocallyconvergentparticleswarmoptimizerInProceedingsofIEEEInternationalConferenceonSystemsManandCyberneticspages961012002で提案されている局所最適化を保証する方法を取り入れる。概要としては、自己ベスト位置が全体ベスト位置と等しい粒子について、速度と位置の更新式として、上記8式、9式を以下のように変更した式を用いる。まず、τを、自己ベスト位置が全体ベスト位置と等しい粒子の番号とする。この時、繰り返しt回目の時のτ番目の粒子の速度の更新には、以下の10式を用いる。ρは、現在の全体ベスト位置の周辺の探索範囲の広さに影響を与える変数である。ただし、ρ1とする。上記10式を上記9式に当てはめると、位置の更新式は以下の11式で表される。上記11式の位置の更新式からわかるように、自己ベスト位置が全体ベスト位置と等しい粒子は、全体ベスト位置の周辺を必ず探索することになる。よって、確率的に現在の全体ベスト位置に対する局所最適値を発見することが可能である。<線形モデルの性質の利用>情報処理システムが、システムパラメータに対して線形モデルの場合には、パラメータベクトルの定数倍は全て同じ解となる、という性質がある。よって、定数倍となるパラメータを探索しても重複となり無駄となる。そこで、粒子群最適化の際に、各繰り返しtにおいて、全ての粒子の位置xkを正規化する。具体的には、Lpノルム球面上に写像する処理を行う。ただし、p∈1,2,...である。この処理により、全ての粒子は、原点からLpノルムの意味で等しい距離の位置へ移動することになる。繰り返しtでのk番目の粒子の位置に対するLpノルム球面への写像処理は、以下の12式に従って行われる。また、速度に関しても同様にLpノルム球への写像を考える。ただし、速度の場合は、上記で説明した位置の正規化と違い、速度ベクトルがLpノルム球面上ではなくLpノルム球内であればよい。これは、各繰り返し探索時に、過剰に大きな速度を得て、粒子が発散や振動をすることがないようにするためである。よって、速度の絶対値が小さいときには、正規化する必要はない。特に、本発明では、位置はノルム球面上に存在すると仮定するため、一度に移動できる範囲もノルム球内に納めると言うのは自然な考え方と言える。具体的には、以下の13式を用いて速度のノルム球内への写像を行う。ただし、βはノルム球の大きさを表すパラメータであり、人間が設定する値である。ここではβ=1を利用する。上記13式により、速度の絶対値が所定値以下となるように、速度を正規化することができる。D=2,p=2とした場合には、図4Aに示すように、粒子の位置がノルム球面上へ写像され、図4Bに示すように、速度が、ノルム球面内に写像される。<位置更新時の棄却採択判定>粒子が探索範囲を走査する際に、できる限りよい解を発見できるようにしたい。そこで、本実施の形態では、各繰り返しで速度と現在位置を更新する際に、その更新を採択するか棄却するかを判定する機構を導入する。採択/棄却の判定は、更新位置での評価関数の値を利用して行われる。これにより、繰り返し毎に悪い評価関数の値となる位置を走査することを抑止することができるため、結果的に、より良い解が得られる可能性が高くなる。ここでは、各繰り返しにおいて、速度の更新、更新された速度に合わせた位置の更新、更新した位置での評価関数の値の計算という一連の3つの処理を、独立に複数回試行し、複数回の試行の中で最も高い評価関数の値となった速度と位置の更新情報を採択するという方式をとる。つまり、それ以外の試行の更新結果は棄却される。ここで、ポイントとしては、速度の更新式の中にはランダム性が含まれていることから、独立に複数回試行を行った結果は、確率的にたまたま一致するといったことを除けば、必ず違う更新結果となる。この結果、必然的に更新される位置も違うものになる。つまり、従来は一回の試行で更新が完了するところを、複数回繰り返した中で最も良い結果が得られる更新を選択して採択することになる。ここでは、試行の回数をTで表すこととし、T=10を利用することにする。以上のように、本実施の形態では、粒子群最適化を拡張した方法を用いて、システムパラメータを最適化する。以下、演算部20の各部について説明する。粒子初期化部22は、入力された粒子数に合わせて、複数の粒子を生成する。その後、各粒子の速度、位置、自己ベスト位置を設定する。速度と位置に関しては、乱数を用いて初期化する。ここでは、システムは線形モデルという仮定を置いているので、乱数の値域を01とする。また、乱数を用いて求められた速度と現在位置とを、上記12式および13式にしたがって正規化する。自己ベスト位置に関しては、初期化時は過去の履歴が存在しないので、初期化時の位置を、自己ベスト位置として設定する。自己ベスト位置に付与する値としては、初期化時の位置が表わすシステムパラメータを機械翻訳システムに設定した場合に得られる翻訳文システムの出力に対する評価関数の値を設定する。粒子更新部231~23Kの各々は、並列分散により、各粒子独立に、粒子に対する速度の更新、現在位置の更新、自己ベストの更新を行う。また、システム処理部241~24kの各々は、粒子更新部231~23kの各々に対応して、並列計算により、対応する粒子が表わすシステムパラメータを機械翻訳システムに設定して、機械翻訳処理を行う。なお、以下では、任意の粒子更新部23、及び当該粒子更新部23に対応するシステム処理部24について説明する。粒子更新部23は、対象の粒子について、上記8式に従って、粒子の速度の更新を複数回行って、速度の更新候補を複数計算する。ただし、対象の粒子の自己ベスト位置が全体ベスト位置と等しい場合には、粒子の速度の更新候補を、上記10式に従って計算する。その後、粒子更新部23は、計算した速度の更新候補を、上記13式に従って正規化する。また、粒子更新部23は、対象の粒子について、正規化された速度の更新候補の各々を用いて、上記9式に従って、粒子の位置の更新候補を複数計算する。ただし、対象の粒子の自己ベストが全体ベストと等しい場合には、正規化された粒子の位置の更新候補を、上記11式に従って計算する。その後、粒子更新部23は、計算した位置の更新候補を、上記12式に従って正規化する。システム処理部24は、対応する粒子更新部23により正規化された位置の更新候補毎に、当該位置の更新候補が示すシステムパラメータを、機械翻訳システムに設定して、学習データの入力文に対して、機械翻訳処理を行い、システム出力としての翻訳文を決定する。なお、システム出力の決定には上記1式を用いる。粒子更新部23は、対応するシステム処理部24によって決定された、位置の更新候補毎の各システム出力翻訳文について、学習データの正解翻訳文を用いて、上記5式に従って、翻訳文の良さを表わす評価関数の値を計算する。また、各システム出力について計算された評価関数の値を平均して、当該位置の更新候補が示すシステムパラメータに対する評価関数の値とする。粒子更新部23は、位置の更新候補の各々について計算された評価関数の値に基づいて、評価関数の値が最大値となる位置の更新候補を、今回の位置の更新結果として採用すると共に、当該位置の更新候補に対する速度の更新候補を、今回の速度の更新結果として採用する。粒子更新部23は、今回の位置の更新結果に対応する評価関数の値上記の評価関数の最大値と、自己ベスト位置の評価関数の値とを比較し、上記6式のように、今回の位置の更新結果に対応する評価関数の値の方が高い場合には、自己ベスト位置、及び自己ベスト位置における評価関数の値を更新する。全体ベスト更新部25は、粒子更新部231~23Kの各々で求められた各粒子の自己ベスト位置の評価関数の値と、全体ベスト位置の評価関数の値とを比較し、全体ベスト位置の評価関数の値より、全粒子の自己ベスト位置における評価関数の最大値の方が大きい場合には、全体ベスト位置及び全体ベスト位置における評価関数の値を、評価関数の値が最大値となる全粒子の自己ベスト位置のものに更新する。また、全体ベスト位置が更新され、全体ベスト位置となった粒子の番号が変更になった場合には、全体ベスト位置の粒子の番号も更新する。演算部20は、粒子更新部231~23K、システム処理部241~24K、及び全体ベスト更新部25による一連の処理を繰り返し行う。収束判定部26は、上記の一連の処理による最適なシステムパラメータの探索が終了したかどうかを判定する。収束判定部26により収束していないと判定された場合には、粒子更新部231~23Kからの一連の処理を繰り返す。収束判定部26により収束したと判定された場合には、全体ベスト位置が表わすシステムパラメータを出力部30により出力する。収束判定部26による収束判定では、全体ベスト位置が連続してある一定の繰り返し回数変更されていなかったときに収束したと判定する。ここでは、繰り返し数15回連続で全体ベストが更新されなかった場合に収束したと判定する。<システムパラメータ最適化装置の作用>次に、第1の実施の形態に係るシステムパラメータ最適化装置100の作用について説明する。まず、英語の入力文と日本語の正しい翻訳文とからなる学習データが、システムパラメータ最適化装置100に複数入力されると、システムパラメータ最適化装置100によって、入力された複数の学習データが、学習データ記憶部21へ格納される。また、評価関数の定義、及び粒子数が、システムパラメータ最適化装置100に入力される。そして、システムパラメータ最適化装置100によって、図5に示すパラメータ最適化処理ルーチンが実行される。まず、ステップS101において、学習データ記憶部21から複数の学習データの全てを取得する。そして、ステップS102において、入力された粒子数分の粒子を生成し、各粒子の速度、位置、及び自己ベスト位置を初期化する。また、各粒子について、初期化された位置のシステムパラメータに基づいて、機械翻訳システムのシステム出力を取得し、システム出力に対する評価関数の値を計算し、計算された値を、当該粒子の自己ベスト位置に付与する値に設定して初期化する。ステップS103では、各粒子の更新を、並列計算により行う。上記ステップS103は、各粒子について、図6に示す粒子更新処理ルーチンが並列に実行されることにより実現される。以下、ある一つの粒子を更新対象とする場合について説明する。ステップS121において、試行回数を示す変数t’に初期値1を設定する。ステップS122では、対象粒子の自己ベスト位置、全体ベスト位置、前回t-1回目の繰り返しにおける対象粒子の速度、及び位置に基づいて、上記8式に従って、速度の更新候補を計算する。対象粒子が、自己ベスト位置が全体ベスト位置と等しい粒子である場合には、全体ベスト位置、前回t-1回目における対象粒子の速度、及び位置に基づいて、上記10式に従って、速度の更新候補を計算する。また、上記13式に従って、速度の更新候補を正規化する。ステップS123では、上記ステップS122で計算された、正規化された速度の更新候補に基づいて、上記9式又は11式に従って、対象粒子の位置の更新候補を計算する。また、上記12式に従って、位置の更新候補を正規化する。そして、ステップS124において、上記ステップS123で計算された、正規化された位置の更新候補が表わすシステムパラメータを、対応するシステム処理部24の機械翻訳システムに設定する。次のステップS125において、学習データ毎に、学習データの入力文に対して、機械翻訳処理を行い、システム出力としての翻訳文を決定する。ステップS126では、学習データ毎に、学習データの正解翻訳文を用いて、上記ステップS125で決定された翻訳文について、上記5式に従って、評価関数の値を計算する。学習データ毎に計算された評価関数の値を平均して、最終的な評価関数の値とする。ステップS127では、変数t’が、試行回数を定めた定数T’以上になったか否かを判定する。変数t’が、試行回数T’未満である場合には、ステップS128において、変数t’を1インクリメントして、上記ステップS122へ戻る。一方、変数t’が、試行回数T’以上となった場合には、ステップS129へ進む。ステップS129では、上記ステップS126で計算された評価関数の値が最も高くなるときの位置の更新候補を判定し、該当する位置の更新候補正規化された位置の更新候補を、今回t回目の位置の更新結果として採用すると共に、対応する速度の更新候補正規化された速度の更新候補を、今回の速度の更新結果として採用する。そして、ステップS130では、対象粒子の自己ベスト位置の評価関数の値と、上記ステップS126で計算された評価関数の最大値とを比較し、上記ステップS126で計算された評価関数の最大値の方が大きい場合には、上記ステップS127で更新された位置に自己ベスト位置を更新すると共に、その位置における評価関数の値に、自己ベスト位置に付与する評価関数の値を更新して、粒子更新処理ルーチンを終了する。上記の粒子更新処理ルーチンが、各粒子について並列に行われることにより、各粒子の位置、速度、及び自己ベスト位置が同時に更新される。そして、ステップS104において、現在の全ての粒子の自己ベスト位置における評価値の最大値と、全体ベスト位置の評価値の値とを比較して、現在の全ての粒子の自己ベスト位置における評価値の最大値の方が大きい場合には、当該評価値が最大値となる自己ベスト位置を持つ粒子の位置に、全体ベスト位置を更新すると共に、その位置における評価関数の値に、全体ベスト位置に付与する評価関数の値を更新する。また、当該評価値が最大値となる自己ベスト位置を持つ粒子を示す番号に、全体ベスト位置の粒子の番号を変更する。次のステップS105では、最適なシステムパラメータの探索が収束したか否かを判定する。全体ベスト位置が所定回数連続して更新されていない場合には、最適なシステムパラメータの探索が収束したと判定し、ステップS106へ進む。一方、最適なシステムパラメータの探索が収束していないと判定された場合には、上記ステップS103へ戻り、上記ステップS103~ステップS104の処理を繰り返す。ステップS106では、全体ベスト位置が示すシステムパラメータを出力部30により出力して、パラメータ最適化処理ルーチンを終了する。<実験結果>次に、上記図2に示す学習データに対して実験を行った結果について説明する。上記の第1の実施の形態で説明したシステムパラメータの最適化方法を用いて、最適なシステムパラメータを推定した。粒子数を32個、128個、512個とし、粒子数と同数のCPUを用いて、分散並列計算により各粒子の更新処理を実行した。比較対象として、通常の粒子最適化手法従来法を用いてシステムパラメータを最適化する実験を行った。実験を行った結果を図7、図8に示す。図7に示すように、第1の実施の形態で説明したシステムパラメータの最適化方法を用いた場合には、従来法に比べて、最適なシステムパラメータを推定する処理、及び機械翻訳システムにより翻訳文を決定する処理の各々に置いて、実行時間が短くなることが分かった。また、図8に示すように、第1の実施の形態で説明したシステムパラメータの最適化方法を用いた場合には、従来法に比べて、最終的に得られた全体ベスト位置すわなち、最適化されたシステムパラメータの評価関数の値が高くなることが分かった。以上説明したように、第1の実施の形態に係るシステムパラメータ最適化装置によれば、システムパラメータの値を表わすD次元空間における所定個の粒子について、粒子の速度および粒子の位置を正規化するように更新して、各粒子の位置、速度、及び自己ベスト位置を繰り返し更新して、全体ベスト位置を最適化することにより、高速かつ高精度に、システムパラメータの最適化を行うことができる。また、本実施の形態で用いている粒子群最適化法は、大域的最適化法に属する方法であるため、従来法より、より良いシステムパラメータを発見できる。また、機械翻訳システムはシステムパラメータに対して線形モデルであるが、最適化の評価関数が非凸、非連続、非線型、微分不可能な関数となるような、複雑な最適化問題であっても、高速かつ高精度に、システムパラメータの最適化を行うことができる。第2の実施の形態次に、第2の実施の形態について説明する。なお、第2の実施の形態に係るシステムパラメータ最適化装置は、第1の実施の形態と同様の構成であるため、同一符号を付して説明を省略する。第2の実施の形態では、音声認識システムに設定するシステムパラメータの最適化を行っている点が、第1の実施の形態と異なっている。第2の実施の形態に係るシステムパラメータ最適化装置100は、入力となる音声信号と出力となるテキストとからなる学習データが複数入力され、音声認識システムのシステムパラメータを最適化する。システム処理部241~24Kの各々は、図9に示すような、音声認識システムとして音声認識処理を行う。当該音声認識システムは、複数のコンポーネントとして、言語モデル、及び認識モデルを用いて、入力された音声信号に対して、音声認識の結果としてテキストを出力する。音声認識処理では、上記2式と同様に、各コンポーネントによる推定されるテキストの尤もらしさの推定値と、各コンポーネントに対する重みλdd=1Dとに基づいて、尤度Pが最大となるテキストを、システム出力として出力する。各コンポーネントに対する重みλdd=1Dが、最適化するシステムパラメータである。このように、当該音声認識システムは、各システムパラメータに対して線形モデルになっている。なお、第2の実施の形態に係るシステムパラメータ最適化装置の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。このように、高速かつ高精度に、音声認識システムのシステムパラメータの最適化を行うことができる。なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。例えば、ネットワークで接続された複数の演算装置を備えた分散並列計算環境において、複数の演算装置による分散並列計算で、各粒子について独立して更新するようにしてもよい。この場合には、各演算装置が、粒子更新部23及びシステム処理部24を備えると共に、メインの演算装置が、学習データ記憶部21、粒子初期化部22、及び全体ベスト更新部25、収束判定部26を備えているように構成すればよい。これによって、機械翻訳システム、音声認識システムのシステムパラメータ最適化処理において、演算装置をひとつだけ用いて処理する従来法と比較して、数倍から数十倍程度の計算時間の高速化が可能となる。また、機械翻訳処理や音声認識処理など、入力データを出力データに変換する変換処理を行うシステムのシステムパラメータを最適化する場合を例に説明したが、これに限定されるものではない。例えば、入力画像に対して画像認識処理を行って画像認識結果を出力する画像認識システムなどの情報処理システムのシステムパラメータを最適化するようにしてもよい。また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。"