(57)【要約】【課題】パラメータの設定処理を効率化する。【解決手段】情報処理装置は、取得部、決定部、および、処理部を備える。取得部は、データの処理のために組み合わせて使用されている複数のプログラムのうちで使用が停止される第１のプログラムの情報と、第１のプログラムで行われる処理を代替する第２のプログラムの情報を取得する。決定部は、第１のプログラムを用いて入力データを処理した場合に得られる処理結果と相対的に近いデータを入力データから算出するために第２のプログラムに設定する設定パラメータを決定する。処理部は、処理結果を処理している第３のプログラムに、設定パラメータを用いた第２のプログラムでの処理により得られた出力データを出力する。【選択図】図８
2020194225.tif 000002
【特許請求の範囲】
【請求項１】
データの処理のために組み合わせて使用されている複数のプログラムのうちで使用が停止される第１のプログラムの情報と、前記第１のプログラムで行われる処理を代替する第２のプログラムの情報を取得する取得部と、
前記第１のプログラムを用いて入力データを処理した場合に得られる処理結果と相対的に近いデータを前記入力データから算出するために前記第２のプログラムに設定する設定パラメータを決定する決定部と、
前記処理結果を処理している第３のプログラムに、前記設定パラメータを用いた前記第２のプログラムでの処理により得られた出力データを出力する処理部
を備えることを特徴とする情報処理装置。
【請求項２】
前記決定部は、
前記入力データを前記第１のプログラムで処理して得られる第１の出力データと、前記入力データを前記第２のプログラムで処理して得られる第２の出力データの差分の大きさを、前記第２のプログラムに設定するパラメータの関数として求め、
前記差分が相対的に小さいときに前記第２のプログラムが使用したパラメータを前記設定パラメータに決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定部は、
前記第１のプログラムで前記入力データの処理のために使用している現用パラメータを前記設定パラメータに変換するための変換関数を求め、
前記処理部に前記変換関数と前記現用パラメータを通知し、
前記処理部は、前記現用パラメータと前記変換関数を用いることにより前記設定パラメータを求める
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記入力データが第１の範囲に含まれる場合、前記第１のプログラムで第１のパラメータを使用した処理が行われ、前記入力データが第２の範囲に含まれる場合、前記第１のプログラムで第２のパラメータを使用した処理が行われる場合、前記決定部は、
前記第１の範囲に含まれる前記入力データを前記第１のプログラムで処理した場合に得られる第１の処理結果と相対的に近いデータを、前記第１の範囲に含まれる前記入力データから算出するために前記第２のプログラムに設定する第１の設定パラメータを決定し、
前記第２の範囲に含まれる前記入力データを前記第１のプログラムで処理した場合に得られる第２の処理結果と相対的に近いデータを、前記第２の範囲に含まれる前記入力データから算出するために前記第２のプログラムに設定する第２の設定パラメータを決定し、
前記第１のパラメータを前記第１の設定パラメータに変換するとともに、前記第２のパラメータを第２の設定パラメータに変換する関数を、前記変換関数として求める
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
データの処理のために組み合わせて使用されている複数のプログラムのうちで使用が停止される第１のプログラムの情報と、前記第１のプログラムで行われる処理を代替する第２のプログラムの情報を取得し、
前記第１のプログラムを用いて入力データを処理した場合に得られる処理結果と相対的に近いデータを前記入力データから算出するために前記第２のプログラムに設定する設定パラメータを決定し、
前記処理結果を処理している第３のプログラムに、前記設定パラメータを用いた前記第２のプログラムでの処理により得られた出力データを出力する
処理を情報処理装置が行うことを特徴とする情報処理方法。
【請求項６】
データの処理のために組み合わせて使用されている複数のプログラムのうちで使用が停止される第１のプログラムの情報と、前記第１のプログラムで行われる処理を代替する第２のプログラムの情報を取得し、
前記第１のプログラムを用いて入力データを処理した場合に得られる処理結果と相対的に近いデータを前記入力データから算出するために前記第２のプログラムに設定する設定パラメータを決定し、
前記処理結果を処理している第３のプログラムに、前記設定パラメータを用いた前記第２のプログラムでの処理により得られた出力データを出力する
処理を情報処理装置に行わせることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、および、情報処理プログラムに関する。
【背景技術】
【０００２】
画像処理や音声認識などの様々な処理を行うプログラムと、それらのプログラムでの処理を行うためのＡＰＩ（Application Programming Interface）が提供されている。このため、ユーザは、ＡＰＩを用いることで、プラットフォームで提供されているプログラムによるデータの処理を行うことができる。なお、ユーザは、プラットフォーム上の複数のプログラムを組み合わせてデータを処理することもできる。プラットフォーム上のプログラムを呼び出してデータを処理する場合、ユーザは、適宜、処理に使用されるパラメータを調整し、調整したパラメータをＡＰＩに設定しておくことができる。プラットフォーム上の複数のプログラムを組み合わせてデータを処理する場合、あるプログラムによる処理後のデータに対して、他のＡＰＩで呼び出したプログラムによる処理が行われる。このため、各プログラムで用いられるパラメータは、そのプログラムの前にデータを処理するプログラムでの処理や種類に応じて変動し得る。従って、複数のプログラムを用いる場合、ユーザは、各プログラムでの処理によってデータが適切に処理されるように複数のプログラムでの入出力を考慮して、それぞれのプログラムを呼び出すＡＰＩの各々にパラメータを設定する。
【０００３】
関連する技術として、入力された設定値の群に基づいて計算した設定値の群を適用して入力データを処理した結果を評価することにより、組み合わせて使用され得る処理フローを取捨選択する処理フロー生成装置が提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２３０７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データを処理するために使用する複数のＡＰＩの各々に適切なパラメータを設定した後で、一部のＡＰＩを変更する場合があり得る。この場合、ＡＰＩの変更により、ＡＰＩが呼び出すプログラムでの処理等も変更されるので、変更されるＡＰＩ以外のＡＰＩでもパラメータの再設定を行わないと、データが適切に処理されないおそれがある。そこで、ユーザはデータの処理に使用する複数のＡＰＩのうちの一部を変更する際にも、全てのＡＰＩでのパラメータを設定し直すことになる。しかし、一部のＡＰＩを入れ替えたことにより、使用するすべてのＡＰＩについてパラメータを再設定するのは、煩雑であり、効率が悪い。また、関連する技術として述べた技術を用いても、この問題は解決されない。
【０００６】
本発明は、１つの側面として、パラメータの設定処理を効率化することを目的とする。
【課題を解決するための手段】
【０００７】
ある１つの態様にかかる情報処理装置は、取得部、決定部、および、処理部を備える。取得部は、データの処理のために組み合わせて使用されている複数のプログラムのうちで使用が停止される第１のプログラムの情報と、前記第１のプログラムで行われる処理を代替する第２のプログラムの情報を取得する。決定部は、前記第１のプログラムを用いて入力データを処理した場合に得られる処理結果と相対的に近いデータを前記入力データから算出するために前記第２のプログラムに設定する設定パラメータを決定する。処理部は、前記処理結果を処理している第３のプログラムに、前記設定パラメータを用いた前記第２のプログラムでの処理により得られた出力データを出力する。
【発明の効果】
【０００８】
パラメータの設定処理が効率化される。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置で行われる処理の例を説明する図である。
【図２】情報処理装置の構成の例を説明する図である。
【図３】情報処理装置のハードウェア構成の例を説明する図である。
【図４】第１の実施形態にかかる学習処理の例を説明する図である。
【図５】第１の実施形態にかかる学習処理の例を説明するフローチャートである。
【図６】第１の実施形態にかかるデータ処理の例を説明する図である。
【図７】第１の実施形態にかかるデータ処理の例を説明するフローチャートである。
【図８】情報処理装置で行われる処理の例を説明する図である。
【図９】第２の実施形態で使用されるパラメータの例を説明する図である。
【図１０】第２の実施形態にかかる学習処理の例を説明するフローチャートである。
【図１１】設定パラメータの計算の例を説明する図である。
【図１２】第２の実施形態でのデータ処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、情報処理装置で行われる処理の例を説明する図である。ケースＣ１に示すように、ＡＰＩ（Application Programming Interface）４０ａ、ＡＰＩ４０ｂ、および、ＡＰＩ４０ｃの順に３つのＡＰＩ４０を用いて処理対象データ２が処理されているとする。このため、ＡＰＩ４０ａには、処理対象データ２を処理するための適切なパラメータが設定されている。ＡＰＩ４０ｂはＡＰＩ４０ａからの出力データを処理するので、ＡＰＩ４０ａからの出力データの処理に適したパラメータがＡＰＩ４０ｂに設定されている。さらに、ＡＰＩ４０ｃはＡＰＩ４０ｂからの出力データを処理するので、ＡＰＩ４０ｂからの出力データの処理に適したパラメータがＡＰＩ４０ｃに設定されている。ＡＰＩ４０ｃでの処理後のデータは、処理済みデータ１２ａとして得られている。例えば、ケースＣ１に示すシステムでＡＰＩ４０ａが音声認識ＡＰＩ、ＡＰＩ４０ｂが対話ＡＰＩ、ＡＰＩ４０ｃが音声合成ＡＰＩであり、ＡＰＩ４０ａ〜４０ｃを組み合わせたチャットボットが提供されているとする。
【００１１】
ケースＣ１でのシステムの設定後に、ケースＣ２に示すように、音声認識ＡＰＩをＡＰＩ４０ａからＡＰＩ４０ｘに変更することになったとする。この場合、処理対象データ２がＡＰＩ４０ｘで処理され、その後、ＡＰＩ４０ｂ、ＡＰＩ４０ｃで処理される。このため、ＡＰＩ４０ｂはＡＰＩ４０ｘからの出力データを処理することになる。ケースＣ２の場合にＡＰＩ４０ｃの処理によって得られるデータを処理済みデータ１２ｂとする。以下の説明では、変更前に使用されているＡＰＩ４０を「現用のＡＰＩ４０」、代替により変更後に使用を開始するＡＰＩ４０のことを「代替のＡＰＩ４０」と記載することがある。同様に、現用のＡＰＩ４０で使用されているパラメータを「現用パラメータ」と記載することがある。
【００１２】
情報処理装置は、現用のＡＰＩ４０と代替のＡＰＩ４０を特定する。図１の例では、情報処理装置は、音声認識ＡＰＩがＡＰＩ４０ａからＡＰＩ４０ｘに変更されることを認識する。情報処理装置は、現用のＡＰＩ４０ａと代替のＡＰＩ４０ｘの両方に同じ入力データ５を入力して、それぞれのＡＰＩ４０からの出力データ１５を比較する（ケースＣ３）。情報処理装置は、ＡＰＩ４０ｘに入力データ５を入力することにより得られる出力データ１５ｘを、ＡＰＩ４０ａに入力データ５を入力することにより得られる出力データ１５ａに近づけるように、ＡＰＩ４０ｘに設定するパラメータを調整する。すなわち、出力データ１５ａと出力データ１５ｘの差がなるべく小さくなるように、代替のＡＰＩ４０ｘのパラメータが調整される。このため、ＡＰＩ４０ｂは、現用のＡＰＩ４０ａからの出力データ１５ａと同じパラメータを用いて代替のＡＰＩ４０ｘからの出力データ１５ｘを処理しても、適切にデータを処理できる。従って、情報処理装置は、ＡＰＩ４０ｘの後続の処理を行うＡＰＩ４０ｂとＡＰＩ４０ｃについてはパラメータを変更しない。また、ＡＰＩ４０ｘの後続の処理を行うＡＰＩ４０ｂとＡＰＩ４０ｃでのパラメータが変更されなくても、ケースＣ２で得られる処理済みデータ１２ｂと、ケースＣ１で得られる処理済みデータ１２ａの間の差は、ユーザが使用する際に許容できる程度に小さい。
【００１３】
このように、実施形態にかかる情報処理装置では、現用のＡＰＩ４０と代替のＡＰＩ４０とに同じデータを入力し、両方のＡＰＩ４０からの出力データ１５の差が小さくなるように、代替のＡＰＩ４０のパラメータを設定する。このため、変更されるＡＰＩ４０の後続の処理を行うＡＰＩ４０ではパラメータの再設定を行わなくても、適切なデータ処理を行うことができる。このため、変更の対象となっているＡＰＩ４０以外でのパラメータの設定を省略でき、パラメータの設定処理が効率化される。
【００１４】
ここで、実施形態にかかる情報処理装置では、パラメータの設定を行うＡＰＩ４０の数を減らしているだけでなく、現用のＡＰＩ４０と代替のＡＰＩ４０の出力を直接比較することによっても、パラメータの設定を効率化している。例えば、実施形態にかかる情報処理装置１０を用いていない場合、全てのＡＰＩ４０に設定される全てのパラメータが再設定の対象となる上、各ＡＰＩ４０で得られる出力の調整に使用可能な目安もない。このため、処理後の処理済みデータ１２が変更前と同様になるまで、全てのパラメータをやみくもに変動させながら調整を行うことになる。一方、実施形態にかかる情報処理装置では、代替のＡＰＩ４０の出力として望ましい値の目安として現用のＡＰＩ４０からの出力が用いられるので、全てのＡＰＩを変動させるよりも効率的に代替のＡＰＩ４０へのパラメータの設定が行われ得る。
【００１５】
なお、ケースＣ３では、ＡＰＩ４０ａとＡＰＩ４０ｘに入力データ５が入力されているが、入力データ５は任意のデータである。例えば、入力データ５は、テストデータまたは処理対象データ２であり得る。また、図１は、一例であり、変更されるＡＰＩ４０は、最初の処理を行うＡＰＩ４０以外であってもよい。例えば、ＡＰＩ４０ｂがＡＰＩ４０ｂと同じ種類の処理を行うＡＰＩ４０ｙ（図示せず）に変更されても良い。この場合、ＡＰＩ４０ｂとＡＰＩ４０ｙの両者に入力する入力データ５は、ＡＰＩ４０ａからの出力データであっても良い。また、複数のＡＰＩの組み合わせで実現される処理も任意である。例えば、複数のＡＰＩによって行われる処理は画像処理であっても良く、また、音声データの処理であっても良い。
【００１６】
＜装置構成＞
図２は、情報処理装置１０の構成の例を説明する図である。情報処理装置１０は、入出力処理部２０、データ処理部３０、および、学習部５０を備える。入出力処理部２０は、入力部２１と出力部２２を有する。入力部２１は、他の装置や情報処理装置１０が備える入力装置などからの入力データを受け付ける。出力部２２は、他の装置や情報処理装置１０が備える出力装置などへデータを出力する。
【００１７】
データ処理部３０は、ＡＰＩ４０（４０ａ〜４０ｃ）を有する。図２の例では、３つのＡＰＩ４０が図示されているが、データ処理部３０に含まれるＡＰＩ４０の数は任意である。各ＡＰＩ４０は、対応付けられたプログラムの呼び出しが可能なプログラムとして実現され得る。各ＡＰＩ４０は、処理部４１と記憶部４２を有する。処理部４１は、ＡＰＩ４０に入力されたデータを、予め記憶部４２に保持しているパラメータを用いて処理する。処理部４１は、適宜、ＡＰＩ４０が呼び出すプログラムにデータを処理させるための通信処理なども行う。処理部４１は、そのＡＰＩ４０で処理したデータの出力先を記憶しており、処理済みのデータを出力先に出力する。例えば、処理対象のデータがＡＰＩ４０ａで処理された後にＡＰＩ４０ｂで処理されるように設定されているとする。この場合、処理部４１ａは、入力部２１から入力されたデータを処理し、処理後のデータをＡＰＩ４０ｂの処理部４１ｂに出力する。処理部４１ｂは、処理部４１ａから入力されたデータを処理すると、処理後のデータを出力部２２に出力する。
【００１８】
記憶部４２は、ＡＰＩ４０で使用するパラメータを記憶する。ＡＰＩ４０が他のＡＰＩ４０の代替として使用を開始する場合、記憶部４２は、現用のＡＰＩ４０で使用されているパラメータと、現用のＡＰＩ４０で使用されているパラメータを変換するための変換関数を記憶できる。変換関数と現用のＡＰＩ４０で使用されているパラメータを用いると、代替として動作する際に設定される設定パラメータが求められる。なお、記憶部４２は、設定パラメータ自体を記憶していても良い。
【００１９】
学習部５０は、取得部５１、比較部５２、および、決定部５３を備える。取得部５１は、変更対象となっている現用のＡＰＩ４０の情報と代替のＡＰＩ４０の情報を取得する。比較部５２は、現用のＡＰＩ４０と代替のＡＰＩ４０の両方に同じデータを入力し、各ＡＰＩ４０からの出力を比較する。比較部５２は、代替のＡＰＩ４０からの出力が現用のＡＰＩ４０からの出力に近づくように、代替のＡＰＩ４０のパラメータを変更しながら、２つのＡＰＩ４０からの出力の差を比較する。決定部５３は、２つのＡＰＩ４０からの出力の差が相対的に小さくなったときに代替のＡＰＩ４０で使用したパラメータを、設定パラメータとして決定する。例えば、決定部５３は、２つのＡＰＩ４０からの出力の差の２乗誤差が最小化されたときの代替のＡＰＩ４０のパラメータを、設定パラメータに決定できる。決定部５３は、現用のＡＰＩ４０で使用されているパラメータを設定パラメータに変換するための変換関数を求め、得られた変換関数を代替のＡＰＩ４０の記憶部４２に格納できる。
【００２０】
図３は、情報処理装置１０のハードウェア構成の例を説明する図である。情報処理装置１０は、プロセッサ１０１、メモリ１０２、入力装置１０３、バス１０５、ネットワークインタフェース１０９を備える。さらに、情報処理装置１０は、出力装置１０４、記憶装置１０６、可搬記憶媒体駆動装置１０７の１つ以上を有していても良い。情報処理装置１０は、例えば、コンピュータ、サーバ装置などによって実現され得る。
【００２１】
プロセッサ１０１は、任意の処理回路であり、例えば、Central Processing Unit（ＣＰＵ）とすることができる。プロセッサ１０１は、例えば、メモリ１０２や記憶装置１０６に記憶されたプログラムを実行することができる。メモリ１０２は、プロセッサ１０１の動作により得られたデータや、プロセッサ１０１の処理に用いられるデータを、適宜、記憶する。記憶装置１０６は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ１０１などに提供する。ネットワークインタフェース１０９は、情報処理装置１０が他の装置と通信するための処理を行う。
【００２２】
バス１０５は、プロセッサ１０１、メモリ１０２、入力装置１０３、出力装置１０４、記憶装置１０６、可搬記憶媒体駆動装置１０７、ネットワークインタフェース１０９を、相互にデータの送受信が可能になるように接続する。入力装置１０３は、キーボード、マウス、マイク、カメラなど、情報の入力に使用される任意の装置であり、出力装置１０４は、ディスプレイなど、データの出力に使用される任意の装置である。可搬記憶媒体駆動装置１０７は、メモリ１０２や記憶装置１０６のデータを可搬記憶媒体１０８に出力することができ、また、可搬記憶媒体１０８からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体１０８は、Compact Disc Recordable（ＣＤ−Ｒ）やDigital Versatile Disk Recordable（ＤＶＤ−Ｒ）を含む、持ち運びが可能な任意の記憶媒体とすることができる。
【００２３】
情報処理装置１０において、プロセッサ１０１は、処理部４１および学習部５０として動作する。メモリ１０２および記憶装置１０６は、記憶部４２として動作する。入出力処理部２０は、プロセッサ１０１、メモリ１０２、記憶装置１０６によって実現され得る。なお、各ＡＰＩ４０の処理部４１や入出力処理部２０での、プログラムの呼び出しやデータの入出力などの処理のための他の装置との通信は、適宜、ネットワークインタフェース１０９によって実現される。情報処理装置１０に入力されるデータが入力装置１０３から入力される場合、入出力処理部２０は、入力装置１０３からの入力も受け付ける。さらに、入出力処理部２０は、処理結果などのデータを出力装置１０４に出力できる。
【００２４】
＜第１の実施形態＞
図４は、第１の実施形態にかかる学習処理の例を説明する図である。図４の例では、処理対象データ２がＡＰＩ４０ａ、ＡＰＩ４０ｂの順に各ＡＰＩ４０で処理されて、処理済みデータ１２ｃが得られているとする。情報処理装置１０を操作するユーザは、現用のＡＰＩ４０ａを代替のＡＰＩ４０ｘで置き換えることを決定すると、変更対象がＡＰＩ４０ａであり代替のＡＰＩ４０がＡＰＩ４０ｘであることを示す情報を、情報処理装置１０に入力する。取得部５１は、入力装置１０３からの入力や情報処理装置１０が受信した制御メッセージ等をモニタすることにより、ＡＰＩ４０の置き換えに関する情報を取得する。取得部５１は、現用のＡＰＩ４０ａと代替のＡＰＩ４０ｘを特定すると、比較部５２に通知する。
【００２５】
比較部５２は、図４に示すように、現用のＡＰＩ４０ａと代替のＡＰＩ４０ｘに処理対象データ２を入力する。ＡＰＩ４０ａの処理部４１ａは、記憶部４２ａに記憶している現用パラメータ４４ａを用いて、処理対象データ２を処理し、得られたデータ（出力データ１５ａ）を比較部５２に出力する。ＡＰＩ４０ｘの処理部４１ｘも処理対象データ２を処理し、得られたデータ（出力データ１５ｘ）を比較部５２に出力する。比較部５２は、処理部４１ａから得られた出力データ１５ａと、処理部４１ｘから得られた出力データ１５ｘを比較する。以下、入出力の二乗誤差を最小化できるパラメータを設定パラメータとして決定する際に比較部５２と決定部５３で行う学習処理の例と、代替のＡＰＩ４０への設定処理の例を説明する。
【００２６】
（１）設定パラメータの決定例
（１ａ）入出力が一次元波形データの場合
例えば、ＡＰＩ４０への入力データとＡＰＩ４０からの出力データのいずれもが音声データであり、パラメータの決定に用いるサンプルの音声波形データがＮ個あるとする。また、ｎ番目の音声波形データについての時刻ｔにおける入力値をＩｎ，ｔと表記する。入力値Ｉｎ，ｔを現用のＡＰＩ４０ａの処理部４１ａで処理した結果得られる出力をｙｎ，ｔとする。代替のＡＰＩ４０ｘに設定するパラメータをθとする。さらに、代替のＡＰＩ４０ｘの処理部４１ｘがパラメータθを用いて入力値Ｉｎ，ｔを処理した結果の出力データ１５ｘの値をｆ（Ｉｎ，ｔ，θ）とする。すると、比較部５２は、処理部４１ａから得られる出力ｙｎ，ｔと処理部４１ｘから得られる出力ｆ（Ｉｎ，ｔ，θ）を用いて、式（１）の計算を行う。
【００２７】
【数１】
2020194225.tif 000003
【００２８】
比較部５２は、パラメータθの値を変更しながら式（１）の計算を行い、得られた結果を決定部５３に出力する。なお、比較部５２は決定部５３からの指定に応じてパラメータθを変更しても良い。
【００２９】
決定部５３は、ｌ（θ）が最小となるときのθの値（ａｒｇｍｉｎｌ(θ)）を探索する。決定部５３は、ａｒｇｍｉｎｌ(θ)を探索する際に、任意の既知のアルゴリズムを使用できる。例えば、グリッドサーチ、ランダムサーチ、ベイズ最適化（Bayesian Optimization）、ＴＰＥ（Tree-structured Parzen Estimator Approach）が使用され得る。決定部５３は、式（１）を用いて求めたａｒｇｍｉｎｌ（θ）の値を代替のＡＰＩ４０ｘに設定するパラメータとする。ＡＰＩ４０への入出力データが音声波形データ以外であっても、ＡＰＩ４０への入力データと出力データのいずれもが一次波形データである場合、比較部５２と決定部５３は同様の処理により、代替のＡＰＩ４０ｘに設定するパラメータを決定できる。
【００３０】
（１ｂ）入出力が二次元波形データの場合
例えば、ＡＰＩ４０への入力データとＡＰＩ４０からの出力データのいずれもが画像データであり、パラメータの決定に用いるサンプルの画像データがＮ個あるとする。また、ｎ番目の画像の座標（ｘ，ｙ）における入力画素値をＩｎ，ｘ、ｙと表記する。この場合に、入力値Ｉｎ，ｘ、ｙを現用のＡＰＩ４０ａの処理部４１ａで処理した結果として得られる出力をｙｎ，ｘ、ｙとする。代替のＡＰＩ４０ｘに設定するパラメータをθとする。さらに、代替のＡＰＩ４０ｘの処理部４１ｘがパラメータθを用いて入力値Ｉｎ，ｘ、ｙを処理した結果の出力データ１５ｘの値をｆ（Ｉｎ，ｘ、ｙ，θ）とする。すると、比較部５２は、処理部４１ａから得られる出力ｙｎ，ｘ、ｙと処理部４１ｘから得られる出力ｆ（Ｉｎ，ｘ、ｙ，θ）を用いて、式（２）の計算を行う。
【００３１】
【数２】
2020194225.tif 000004
【００３２】
比較部５２は、パラメータθの値を変更しながら式（２）の計算を行い、得られた結果を決定部５３に出力する。この場合も、比較部５２は決定部５３からの指定に応じてパラメータθを変更しても良い。
【００３３】
決定部５３は、式（２）のｌ（θ）が最小となるときのθの値（ａｒｇｍｉｎｌ（θ））を探索する。探索処理の際に決定部５３が使用可能な探索アルゴリズムは、入出力が一次元波形データの場合と同様である。決定部５３は、式（２）を用いて求めたａｒｇｍｉｎｌ（θ）の値を代替のＡＰＩ４０ｘに設定するパラメータとする。ＡＰＩ４０への入出力データが画像データ以外であっても、ＡＰＩ４０への入力データと出力データのいずれもが二次波形データである場合、比較部５２と決定部５３は同様の処理により、代替のＡＰＩ４０ｘに設定するパラメータを決定できる。
【００３４】
（１ｃ）入力データが音声データであり、出力データが文字列である場合
例えば、ＡＰＩ４０が音声認識ＡＰＩであるとする。この場合、ＡＰＩ４０への入力データは音声データであるが、出力データは音声データ中の言語を書き起こすことによって得られる文字列となる。パラメータの決定に用いるサンプルの音声データがＮ個あるとする。また、ｎ番目の入力音声データの入力値をＩｎと表記する。入力値Ｉｎを現用のＡＰＩ４０ａの処理部４１ａで処理した結果として得られる出力をＷｎとする。代替のＡＰＩ４０ｘに設定するパラメータをθとする。さらに、代替のＡＰＩ４０ｘの処理部４１ｘがパラメータθを用いて入力値Ｗｎを処理した結果の出力データ１５ｘの値をｆ（θ，Ｉｎ）とする。さらに、現用の処理部４１ａから得られた出力Ｗｎと、代替の処理部４１ｘから得られた出力ｆ（θ，Ｉｎ）の間における単語誤り率（Word Error Rate）をＷＥＲｎとする。すると、比較部５２は、単語誤り率ＷＥＲｎを用いて、式（３）の計算を行う。
【００３５】
【数３】
2020194225.tif 000005
【００３６】
比較部５２は、パラメータθの値を変更しながら式（３）の計算を行う。この場合も、比較部５２は決定部５３からの指定に応じてパラメータθを変更しても良い。決定部５３は、式（３）のｌ（θ）が最小となるときのθの値を代替のＡＰＩ４０ｘに設定するパラメータとする。なお、式（３）のｌ（θ）が最小となるときのθの値の探索の際に決定部５３が使用可能なアルゴリズムも、入出力が一次元波形データの場合と同様である。
【００３７】
（２）代替のＡＰＩ４０への設定処理の例
決定部５３は、設定パラメータを決定すると、現用のＡＰＩ４０ａで使用されている現用パラメータ４４を設定パラメータに変換するための変換関数を求める。変換関数は、現用のＡＰＩ４０で使用されている現用パラメータ４４を設定パラメータに変換可能な任意の関数で表され得る。例えば、式（１）を用いて求めたａｒｇｍｉｎｌ（θ）の値をＱ、現用のＡＰＩ４０に設定されているパラメータをＰとする。この場合、決定部５３は、Ｆ（Ｑ）＝Ｐを満たす関数Ｆを変換関数とする。式（２）、式（３）を用いてパラメータを求めた場合にも、同様に、決定部５３は変換関数Ｆを決定する。
【００３８】
なお、変換関数の形式や各ＡＰＩ４０に設定されるパラメータの数は、実装に応じて任意に変更され得る。例えば、現用のＡＰＩ４０と代替のＡＰＩ４０のいずれにおいても複数のパラメータが設定される場合もあり得る。この場合、変換関数は行列式として表されても良い。例えば、現用のＡＰＩ４０で設定されているパラメータがＰ１、Ｐ２、Ｐ３の３つであり、代替のＡＰＩ４０に設定するために求められたパラメータがＱ１、Ｑ２、Ｑ３であるとする。この場合、Ｆ（Ｑ１，Ｑ２，Ｑ３）＝（Ｐ１，Ｐ２，Ｐ３）を満たす行列Ｆが変換関数として求められる。
【００３９】
決定部５３は、求めた変換関数と現用のＡＰＩ４０ａで使用されている現用パラメータを代替のＡＰＩ４０ｘの記憶部４２ｘに書き込む。なお、決定部５３は。さらに、設定パラメータとして求めた値自体も記憶部４２ｘに書き込んでもよい。
【００４０】
なお、図４の例では、学習部５０が代替のＡＰＩ４０ｘに設定するパラメータを決定するための処理を行っている間も、現用のＡＰＩ４０ａの処理部４１ａは、出力データを後続のＡＰＩ４０ｂの処理部４１ｂに出力する。このため、代替のＡＰＩ４０ｘに設定するパラメータの決定のための処理が行われている間に処理されたサンプルデータについても、処理部４１ｂが処理を行うことにより、処理済みデータ１２ｃを生成することができる。処理済みデータ１２ｃは、出力部２２に出力される。出力部２２は、処理済みデータ１２ｃを、適宜、出力装置１０４などに出力してもよい。
【００４１】
図５は、第１の実施形態にかかる学習処理の例を説明するフローチャートである。図５では、現用のＡＰＩ（使用中のＡＰＩ）をＡＰＩ１、代替のＡＰＩをＡＰＩ２と表記している。なお、図５は処理の一例であり、実装に応じて手順が変更され得る。例えば、ステップＳ３の処理はステップＳ４の前の任意のタイミングで行われるように手順が変更され得る。
【００４２】
使用中のＡＰＩ（ＡＰＩ１）の処理部４１は、記憶部４２に記憶している情報を用いてパラメータを設定する（ステップＳ１）。比較部５２は、ＡＰＩ１にデータを入力する（ステップＳ２）。
【００４３】
比較部５２は、使用を開始する代替のＡＰＩ（ＡＰＩ２）のパラメータを設定する（ステップＳ３）。比較部５２は、ステップＳ２でＡＰＩ１に入力したデータと同じデータをＡＰＩ２に入力する（ステップＳ４）。比較部５２は、ＡＰＩ１の出力データとＡＰＩ２の出力データを比較する（ステップＳ５）。ステップＳ５の処理において、比較部５２は、適宜、データの種類に応じて入出力の二乗誤差を求めることができる。決定部５３は、これまでに計算された二乗誤差の値を用いて、ＡＰＩ１の出力データとＡＰＩ２の出力データの間の誤差が収束したかを判定する（ステップＳ６）。すなわち、ステップＳ６において、決定部５３は、誤差が最小となるようなＡＰＩ２での設定パラメータが求まったかを判定している。誤差が最小となるようなＡＰＩ２での設定パラメータが求まっていない場合、決定部５３は、誤差が収束していないと判定する（ステップＳ６でＮｏ）。比較部５２は、ＡＰＩ２のパラメータを変更する（ステップＳ７）。その後、ステップＳ４以降の処理が繰り返される。すなわち、ステップＳ４〜Ｓ７の処理によって、ＡＰＩ１の出力データとＡＰＩ２の出力データの間の誤差の最小値が得られるまで、ＡＰＩ２のパラメータを変動させつつ、ＡＰＩ２に設定するパラメータの探索が行われる。
【００４４】
誤差が最小となるようなＡＰＩ２での設定パラメータが求まった場合、決定部５３は、誤差が収束したと判定する（ステップＳ６でＹｅｓ）。すると、決定部５３は、誤差が収束したときのＡＰＩ２のパラメータにＡＰＩ１のパラメータを変換するための変換関数を求める（ステップＳ８）。決定部５３は、ＡＰＩ２の記憶部４２に、変換関数とＡＰＩ１の現用のパラメータを記憶させる（ステップＳ９）。なお、ステップＳ９において、決定部５３は、ＡＰＩ２に設定するパラメータとして求めた値もＡＰＩ２の記憶部４２に記憶させても良い。
【００４５】
図６は、第１の実施形態にかかるデータ処理の例を説明する図である。図６を参照しながら、現用のＡＰＩ４０ａが代替のＡＰＩ４０ｘに切り替えられた後で行われるデータ処理の例を説明する。切り替えが行われる前に、図４、図５を参照しながら説明した学習処理が行われているので、図６の段階では、ＡＰＩ４０ｘは、変換関数４３ｘおよび現用パラメータ４４ｘを記憶している。ここで、現用パラメータ４４は、現用のＡＰＩ４０ａに設定されているパラメータである。また、変換関数４３ｘは、ＡＰＩ４０ａに設定されている現用パラメータ４４ａをＡＰＩ４０ｘに設定する設定パラメータ４５へ変換するために使用される関数である。
【００４６】
ＡＰＩ４０ｘとＡＰＩ４０ａには、切り替えのタイミングが取得部５１から通知されるものとする。また、ＡＰＩ４０ｘの処理部４１ｘには、切り替え後に処理したデータの出力先も通知される。例えば、図６の例では、切り替え後のデータの出力先がＡＰＩ４０ｂになることが処理部４１ｘに通知されている。このため、取得部５１からの通知に応じて、処理部４１ｘは、処理したデータの出力先を比較部５２からＡＰＩ４０ｂの処理部４１ｂに切り替えている。
【００４７】
処理部４１ｘは、ＡＰＩ４０の切り替えのために、現用パラメータ４４ｘと変換関数４３ｘを用いてＡＰＩ４０ｘでの処理に使用するパラメータを求める。処理部４１ｘは、求めたパラメータを設定パラメータ４５ｘとして記憶部４２ｘに格納する。
【００４８】
処理対象データ２がＡＰＩ４０ｘに入力されると、処理部４１ｘは、設定パラメータ４５ｘを用いて処理対象データ２を処理する。なお、処理部４１ｘは、処理対象データ２の処理に際し、適宜、他のプログラムを呼び出すことができる。呼び出しの対象のプログラムが情報処理装置１０以外の装置に格納されている場合には、処理部４１ｘは、適宜、プログラムの格納先との間の通信処理も行う。処理部４１ｘは、処理対象データ２の処理により得られたデータを、ＡＰＩ４０ｂの処理部４１ｂに出力する。
【００４９】
処理部４１ｂは、入力されたデータを記憶部４２ｂに保持しているパラメータを用いて処理し、処理済みデータ１２ｄとして出力する。ここで、ＡＰＩ４０ｂでは、ＡＰＩ４０の切り替えの前後でパラメータの設定値は変更されない。すなわち、処理部４１ｂは、図６に示す段階でも、図４での処理の際に使用したパラメータと同じパラメータを用いて、データを処理する。図６の段階では、ＡＰＩ４０ｘでのパラメータの調整により、データを処理したときに得られるＡＰＩ４０ｘからの出力とＡＰＩ４０ａからの出力との差が小さくなっている。このため、ＡＰＩ４０ｘからの出力を処理することによって得られる処理済みデータ１２ｄと、ＡＰＩ４０ａからの出力を処理することによって得られる処理済みデータ１２ｃの間の差は、処理済みデータ１２ｄの使用の際に許容され得る程度に抑えられている。
【００５０】
図７は、第１の実施形態にかかるデータ処理の例を説明するフローチャートである。図７のフローチャートは、各ＡＰＩ４０で行われる処理の例を示す。処理部４１は、入力データを取得したかを判定する（ステップＳ２１）。ステップＳ２１において、入力データは、そのＡＰＩ４０に入力されるデータである。例えば、図４のＡＰＩ４０ａや図６のＡＰＩ４０ｘのように処理対象データ２が入力されるＡＰＩ４０では、入力データは処理対象データ２である。一方、ＡＰＩ４０ｂでは、ＡＰＩ４０ｘやＡＰＩ４０ａなどの他のＡＰＩ４０での処理結果が入力データになる。処理部４１は、入力データを取得するまで待機する（ステップＳ２１でＮｏ）。
【００５１】
処理部４１は、入力データを取得すると、処理部４１自身が含まれるＡＰＩ４０は代替処理により使用を開始したＡＰＩ４０であるかを判定する（ステップＳ２１でＹｅｓ、ステップＳ２２）。代替処理により使用を開始したＡＰＩ４０ではない場合、処理部４１は、設定済みのパラメータを用いて入力データを処理する（ステップＳ２２でＮｏ、ステップＳ２３）。すなわち、ステップＳ２３での処理では、パラメータの再設定は行われず、現在使用中のパラメータを用いた処理が継続される。処理部４１は、入力データを処理することにより得られた出力データを出力する（ステップＳ２６）。なお、出力先は、予め処理部４１に設定されている。出力先は他のＡＰＩ４０であっても良く、情報処理装置１０が保持する出力装置１０４や情報処理装置１０以外の装置などであっても良い。
【００５２】
一方、代替処理により使用を開始したＡＰＩ４０である場合、処理部４１は、変換関数４３と現用のＡＰＩ４０に設定されている現用パラメータ４４を用いて、設定パラメータ４５を決定する（ステップＳ２２でＹｅｓ、ステップＳ２４）。処理部４１は、設定パラメータを用いて、入力データを処理する（ステップＳ２５）。すなわち、ステップＳ２５での処理では、処理結果が現用ＡＰＩ４０からの出力に近づくように求められた設定パラメータが設定される。処理部４１は、入力データを処理することにより得られた出力データを出力する（ステップＳ２６）。
【００５３】
図８は、情報処理装置１０で行われる処理の例を説明する図である。ケースＣ１１は、現用のＡＰＩ４０が用いられている際の処理の様子を、各ＡＰＩ４０で用いられるパラメータとともに示している。ケースＣ１１では、処理対象データ２がＡＰＩ４０ａ、ＡＰＩ４０ｂ、および、ＡＰＩ４０ｃで処理されることにより、処理済みデータ１２ａが得られている。ＡＰＩ４０ａで使用されるパラメータはＰ１、Ｐ２、Ｐ３である。また、ＡＰＩ４０ｂで使用されるパラメータはＰ１１、Ｐ１２、Ｐ１３であり、ＡＰＩ４０ｃで使用されるパラメータはＰ２１、Ｐ２２、Ｐ２３である。
【００５４】
ケースＣ１２は、代替のＡＰＩ４０が用いられている際の処理の様子を示している。ケースＣ１２では、ＡＰＩ４０ａがＡＰＩ４０ｘで置き換えられるので、処理対象データ２がＡＰＩ４０ｘ、ＡＰＩ４０ｂ、および、ＡＰＩ４０ｃで処理される。また、ＡＰＩ４０ｘ、ＡＰＩ４０ｂ、および、ＡＰＩ４０ｃでの処理によって得られる最終的なデータは、処理済みデータ１２ｂである。
【００５５】
ここで、ＡＰＩ４０ｘでの処理に用いられるパラメータは、ＡＰＩ４０ａでの処理に使用されているパラメータＰ１、Ｐ２、Ｐ３と変換関数Ｆから計算された設定パラメータ４５（Ｑ１、Ｑ２、Ｑ３）である。ＡＰＩ４０ａとＡＰＩ４０ｘは、異なるＡＰＩであり、処理のために呼び出すプログラム等も異なるが、設定パラメータ４５を用いた場合のＡＰＩ４０ｘからの出力は、ＡＰＩ４０ａからの出力に近似できる値である。このため、ＡＰＩ４０ｂでは、処理対象データ２を処理するＡＰＩ４０の変更に応じて使用するパラメータを変更しなくても、ＡＰＩ４０ｘからの出力を適切に処理できる。さらに、ＡＰＩ４０ｂからＡＰＩ４０ｃに入力されるデータは、ＡＰＩ４０ｂの前に処理を行うＡＰＩ４０がＡＰＩ４０ａからＡＰＩ４０ｘに変更されても、ＡＰＩ４０の変更前と同様に処理されたデータである。このため、ＡＰＩ４０ｃにおいても、処理対象データ２を処理するＡＰＩ４０の変更に応じて使用するパラメータを変更しなくても、ＡＰＩ４０ｂからの出力を適切に処理できる。従って、ＡＰＩ４０ａからＡＰＩ４０ｘへの切り替えが行われても、ＡＰＩ４０ｂで使用されるパラメータはＰ１１、Ｐ１２、Ｐ１３であり、ＡＰＩ４０ｃで使用されるパラメータはＰ２１、Ｐ２２、Ｐ２３である。
【００５６】
このように、第１の実施形態によると、変更されるＡＰＩ４０の後続の処理を行うＡＰＩ４０ではパラメータの再設定を行わなくても、適切なデータ処理を行うことができる。このため、第１の実施形態によると、変更の対象となっているＡＰＩ４０以外でのパラメータの再設定を省略でき、パラメータの設定処理を効率化できる。
【００５７】
第１の実施形態にかかる情報処理装置１０を用いない場合、ＡＰＩに設定するパラメータが適切であるかは処理によって得られた最終データを用いて判定される。そこで、ＡＰＩを組み合わせて処理したデータの使用方法によっては、代替のＡＰＩのパラメータや既存のＡＰＩに再設定したパラメータが適切であるかを判定するために、ユーザに対する主観調査を行う場合もある。主観調査を行う際には複数のユーザに対して、ＡＰＩの変更の前後の処理データを提示して各ユーザの主観を聞き取り調査し、得られた結果をまとめて、最終的に、ＡＰＩの変更後のパラメータが妥当であるかを判定する。従って、主観調査は時間的にも作業工数的にも煩雑な処理であるといえる。情報処理装置１０を用いない場合、主観調査を行う代わりにデータの使用環境を模した実験を行うこともある。例えば、ノイズ環境下でのノイズのカットの状況を確認するために、テストデータを用意して、ＡＰＩの変更の前後の処理データを比較することにより、変更後のＡＰＩのパラメータが妥当であるかを判定することもある。このため、実験についても、主観調査ほどではないとしても、時間的にも作業工数的にも煩雑な処理であるといえる。
【００５８】
一方、情報処理装置１０では、現用のＡＰＩ４０と代替のＡＰＩ４０の間での出力の差を小さくするように、代替のＡＰＩ４０に設定するパラメータを調整する。このため、情報処理装置１０を用いていないときのように、主観調査や実験を行わなくても、代替のＡＰＩ４０に適切なパラメータを設定できる。従って、情報処理装置１０を用いると、効率的にパラメータの設定が行われ得る。
【００５９】
さらに、情報処理装置１０の学習部５０は、現用のＡＰＩ４０と代替のＡＰＩ４０の出力を直接比較して、代替のＡＰＩ４０からの出力を現用のＡＰＩ４０からの出力に近づけるように、パラメータの変換関数を求める。このため、ＡＰＩ４０の変更の前後での出力の差が小さくなるように複数のＡＰＩの組み合わせの全体で使用されるパラメータを同時に変更する場合に比べて、効率的にパラメータを求めることができる。
【００６０】
＜第２の実施形態＞
第２の実施形態では、入力データの範囲に応じて現用のＡＰＩ４０において使用するパラメータを変動させる場合について、ＡＰＩ４０の切り替えの際に行われる処理の例を説明する。
【００６１】
図９は、第２の実施形態で使用されるパラメータの例を説明する図である。以下の説明では、現用のＡＰＩ４０では、入力データ（ｆ）の範囲がｆ＜Ｆ１の場合にパラメータＰ１、Ｐ２、Ｐ３が使用されるとする。さらに、現用のＡＰＩ４０では、入力データの範囲がＦ１≦ｆ＜Ｆ２の場合はパラメータＰ４１、Ｐ４２、Ｐ４３が使用され、入力データの範囲がＦ２≦ｆの場合はパラメータＰ５１、Ｐ５２、Ｐ５３が使用されるとする。
【００６２】
図９に示すように、入力データに応じてパラメータが変更される場合の例として、例えば、音声のノイズ成分に応じて音声認識ＡＰＩのパラメータが変動する場合が考えられる。この場合、音声認識ＡＰＩの前に処理を行うＡＰＩにおいてノイズ成分が推定されても良い。例えば、バンドパスフィルタの周波数などに応じた条件に沿ってパラメータが変動し得る。なお、処理されるデータが画像データの場合でも、画像のノイズ成分に応じて、画像認識ＡＰＩのパラメータが変動し得る。
【００６３】
図１０は、第２の実施形態にかかる学習処理の例を説明するフローチャートである。図１０では、現用のＡＰＩ（使用中のＡＰＩ）をＡＰＩ１、代替のＡＰＩをＡＰＩ２と表記している。図１０では、変数ｎと定数Ｎが使用される。定数Ｎは現用のＡＰＩ１においてパラメータに対応付けられている条件の総数である。例えば、図９に示すように、入力データがＦ１未満、Ｆ１以上Ｆ２未満、Ｆ２以上の３通りに分けられてパラメータが設定されている場合、定数Ｎは３となる。変数ｎは、設定パラメータを求める処理の対象とした条件の数である。なお、図１０は処理の一例であり、処理の手順は実装に応じて変更され得る。例えば、ステップＳ３３とステップＳ３４の順序は任意に変更され得る。
【００６４】
比較部５２は、変数ｎを１に設定する（ステップＳ３１）。使用中のＡＰＩ（ＡＰＩ１）の処理部４１は、記憶部４２に記憶している情報を用いて、ｎ番目の条件に対応するパラメータを設定する（ステップＳ３２）。比較部５２は、ｎ番目の条件に当てはまるデータをＡＰＩ１に入力する（ステップＳ３３）。従って、ステップＳ３３において、現用のＡＰＩ１でのｎ番目の条件に当てはまるデータについての処理が行われる。
【００６５】
比較部５２は、使用を開始する代替のＡＰＩ（ＡＰＩ２）のパラメータを設定する（ステップＳ３４）。比較部５２は、ステップＳ３３でＡＰＩ１に入力したデータと同じデータをＡＰＩ２に入力する（ステップＳ３５）。比較部５２は、ＡＰＩ１の出力データとＡＰＩ２の出力データを比較する（ステップＳ３６）。決定部５３は、ＡＰＩ１の出力データとＡＰＩ２の出力データの間の誤差が収束したかを判定する（ステップＳ３７）。ステップＳ３６、Ｓ３７での処理は図５のステップＳ５、Ｓ６などを参照しながら説明した処理と同様である。すなわち、比較部５２や決定部５３は、適宜、入出力の二乗誤差などを用いて出力データの比較処理や誤差が収束したかの判定を行うことができる。比較部５２は、誤差が収束していない場合、ＡＰＩ２のパラメータを変更し、ステップＳ３５以降の処理を繰り返す（ステップＳ３７でＮｏ、ステップＳ３８）。すなわち、ステップＳ３５〜Ｓ３７の処理によって、ｎ番目の条件下で、ＡＰＩ２のパラメータを変動させつつ、ＡＰＩ２に設定するパラメータの探索が行われる。
【００６６】
誤差が最小となるようなＡＰＩ２での設定パラメータが求まった場合、決定部５３は、誤差が収束したと判定する（ステップＳ３７でＹｅｓ）。すると、決定部５３は、誤差が収束したときのＡＰＩ２のパラメータを、ｎ番目の条件での設定パラメータとする（ステップＳ３９）。決定部５３は、変数ｎを１つインクリメントして、定数Ｎと比較する（ステップＳ４０、Ｓ４１）。変数ｎが定数Ｎ以下の場合、まだ処理されていない条件があるので、ステップＳ３２以降の処理が繰り返される（ステップＳ４１でＮｏ）。
【００６７】
一方、変数ｎが定数Ｎを超えた場合、全ての条件に付いて設定パラメータが求められている（ステップＳ４１でＹｅｓ）。そこで、決定部５３は、ｎ＝１〜Ｎの全ての条件について、現用パラメータを設定パラメータに変換する変換関数を求める（ステップＳ４２）。その後、決定部５３は、ＡＰＩ２の記憶部４２に、変換関数とＡＰＩ１の現用のパラメータを記憶させる。なお、ステップＳ４２において、決定部５３は、ＡＰＩ２に設定するパラメータとして求めた値もＡＰＩ２の記憶部４２に記憶させても良い。
【００６８】
図９、図１０を参照しながら説明したような学習処理が行われる間、ＡＰＩ１とＡＰＩ２の両方からの出力が比較部５２に出力されるので、図４に示すようにデータの入出力が行われる。
【００６９】
次に、ＡＰＩ４０の切り替え処理後に行われる処理について説明する。学習部５０での処理が終わり、代替のＡＰＩ４０への切り替えが行われたとする。第２の実施形態でも図６や図８を参照しながら説明したように、代替のＡＰＩ４０の記憶部４２には、変換関数４３と現用パラメータ４４が記憶されている。そこで、処理部４１は、データの処理に使用するパラメータを計算できる。例えば、変換関数Ｆとともに、現用パラメータ４４の情報として図９に示す情報が、代替のＡＰＩ４０に通知されたとする。
【００７０】
図１１は、設定パラメータの計算の例を説明する図である。処理部４１は、入力データであるｆがＦ１未満の場合について、Ｆ（Ｑ１，Ｑ２，Ｑ３）＝（Ｐ１，Ｐ２，Ｐ３）であることから、ｆがＦ１未満の場合の設定パラメータをＱ１、Ｑ２、Ｑ３とする。なお、設定パラメータは、変換関数によって現用パラメータを変換したときの変換後のパラメータである。
【００７１】
同様に、処理部４１は、入力データｆがＦ１以上でＦ２未満の場合について、Ｆ（Ｑ４１，Ｑ４２，Ｑ４３）＝（Ｐ４１，Ｐ４２，Ｐ４３）であることから、ｆがＦ１以上でＦ２未満の場合の設定パラメータをＱ４１、Ｑ４２、Ｑ４３とする。さらに、処理部４１は、入力データｆがＦ２以上の場合について、Ｆ（Ｑ５１，Ｑ５２，Ｑ５３）＝（Ｐ５１，Ｐ５２，Ｐ５３）であることから、ｆがＦ２以上の場合の設定パラメータをＱ５１、Ｑ５２、Ｑ５３とする。処理部４１は、このようにして求めた設定パラメータを用いて入力データを処理する。
【００７２】
図１２は、第２の実施形態において、各ＡＰＩ４０で行われるデータ処理の例を説明するフローチャートである。処理部４１は、入力データを取得するまで待機する（ステップＳ５１でＮｏ）。処理部４１は、入力データを取得すると、処理部４１自身が含まれるＡＰＩ４０は代替処理により使用を開始したＡＰＩ４０であるかを判定する（ステップＳ５１でＹｅｓ、ステップＳ５２）。代替処理により使用を開始したＡＰＩ４０ではない場合、処理部４１は、入力データの範囲に対応付けられた設定済みのパラメータを用いて入力データを処理する（ステップＳ５２でＮｏ、ステップＳ５３）。すなわち、ステップＳ５３において、現在使用中のパラメータを用いた処理が継続される。処理部４１は、入力データを処理することにより得られた出力データを出力する（ステップＳ５６）。
【００７３】
一方、代替処理により使用を開始したＡＰＩ４０である場合、処理部４１は、入力データに対応付けられた現用パラメータ４４を特定する（ステップＳ５２でＹｅｓ、ステップＳ５４）。例えば、図１１の例では、入力データｆがＦ１未満の場合、処理部４１は、現用パラメータ４４として（Ｐ１，Ｐ２，Ｐ３）を特定する。また、入力データｆがＦ１以上Ｆ２未満の場合、処理部４１は、現用パラメータ４４として（Ｐ４１，Ｐ４２，Ｐ４３）を特定する。さらに、入力データｆがＦ２以上の場合、処理部４１は、現用パラメータ４４として（Ｐ５１，Ｐ５２，Ｐ５３）を特定する。
【００７４】
処理部４１は、特定した現用パラメータ４４と変換関数４３を用いて、入力データの処理に使用する設定パラメータ４５を決定する（ステップＳ５５）。設定パラメータの決定のために行われる計算処理は図１１を参照しながら説明したとおりである。その後、処理部４１は、設定パラメータを用いて、入力データを処理する（ステップＳ５６）。すなわち、ステップＳ５６の処理では、入力データの値に応じて選択された現用パラメータ４４を用いた現用ＡＰＩ４０からの出力に近づくように求められた設定パラメータを用いて、入力データが処理される。処理部４１は、入力データを処理することにより得られた出力データを出力する（ステップＳ５７）。なお、第２の実施形態においても、出力先は他のＡＰＩ４０であっても良く、情報処理装置１０が保持する出力装置１０４や情報処理装置１０以外の装置などであっても良い。
【００７５】
このように、第２の実施形態によると、入力データに応じてパラメータが変動する場合においても、代替のＡＰＩ４０に対して効率的にパラメータの設定が行われる。また、第２の実施形態によっても、変更されるＡＰＩ４０の後続の処理を行うＡＰＩ４０ではパラメータの再設定を行わなくても、適切なデータ処理を行うことができる。このため、変更の対象となっているＡＰＩ４０以外でのパラメータの設定を省略でき、パラメータの設定処理が効率化される。
【００７６】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【００７７】
処理対象データ２の処理に用いられているＡＰＩ４０は、同じ種類の処理や機能を提供する他のＡＰＩ４０に変更され得る。例えば、音声認識ＡＰＩは他の音声認識ＡＰＩで代替され得る。同様に、フィルタリング、画像認識、音声合成などの他の処理についても、その処理を提供する複数のＡＰＩ間での変更が行われ得る。また、１つのＡＰＩ４０が複数のＡＰＩ４０で代替されてもよい。例えば、音声認識ＡＰＩにノイズ減算機能が含まれている場合、現用の音声認識ＡＰＩを、ノイズ除去ＡＰＩと他の音声認識ＡＰＩの組み合わせに置き換えても良い。この場合、比較部５２や決定部５３は、代替として使用するノイズ除去ＡＰＩと他の音声認識ＡＰＩの組み合わせからの出力を、現用の音声認識ＡＰＩからの出力に近づけるように、ノイズ除去ＡＰＩと他の音声認識ＡＰＩのパラメータを設定する。さらに、２以上の現用のＡＰＩ４０が任意の数の代替のＡＰＩで置き換えられても良い。
【００７８】
図４などを参照しながら設定パラメータを求める際の学習処理の例を説明したが、入出力の二乗誤差以外の指標を用いて設定パラメータが求められても良い。また、現用のＡＰＩ４０と代替のＡＰＩ４０での処理結果の差分の計算方法も、実装に応じて任意に変更され得る。例えば、出力データが文字列である場合には、現用のＡＰＩ４０からの出力データと代替のＡＰＩ４０からの出力データのコサイン類似度を用いても良い。
【００７９】
以上の説明で図示したテーブル等は一例であり、テーブルに含まれる情報要素は実装に応じて変更され得る。
【符号の説明】
【００８０】
２  処理対象データ
５  入力データ
１０  情報処理装置
１２  処理済みデータ
１５  出力データ
２０  入出力処理部
２１  入力部
２２  出力部
３０  データ処理部
４０  ＡＰＩ
４１  処理部
４２  記憶部
５０  学習部
５１  取得部
５２  比較部
５３  決定部
１０１  プロセッサ
１０２  メモリ
１０３  入力装置
１０４  出力装置
１０５  バス
１０６  記憶装置
１０７  可搬記憶媒体駆動装置
１０８  可搬記憶媒体
１０９  ネットワークインタフェース
【図１】
2020194225.tif 000006
【図２】
2020194225.tif 000007
【図３】
2020194225.tif 000008
【図４】
2020194225.tif 000009
【図５】
2020194225.tif 000010
【図６】
2020194225.tif 000011
【図７】
2020194225.tif 000012
【図８】
2020194225.tif 000013
【図９】
2020194225.tif 000014
【図１０】
2020194225.tif 000015
【図１１】
2020194225.tif 000016
【図１２】
2020194225.tif 000017