(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022019422
(43)【公開日】2022-01-27
(54)【発明の名称】学習装置、推論装置、学習方法、推論方法及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220120BHJP
G06N 3/08 20060101ALI20220120BHJP
G06N 99/00 20190101ALI20220120BHJP
【FI】
G06N20/00
G06N3/08
G06N99/00 180
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2020123246
(22)【出願日】2020-07-17
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504145342
【氏名又は名称】国立大学法人九州大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】特許業務法人 志賀国際特許事務所
(72)【発明者】
【氏名】武 小萌
(72)【発明者】
【氏名】木村 昭悟
(72)【発明者】
【氏名】柏野 邦夫
(72)【発明者】
【氏名】アタルサイハン ガントゥグス
(72)【発明者】
【氏名】内田 誠一
(57)【要約】
【課題】人手によって設計された特徴表現の使用に依存することなく、より複雑な特徴表現を導出及び使用可能な配列整列であると同時に、単調で連続的な対応関数を導出及び使用可能を実現することが可能である学習装置、推論装置、学習方法、推論方法及びプログラムを提供する。
【解決手段】学習装置は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、第1特徴配列と第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、同じクラスに第1配列と第2配列とが属するか否かを表すラベルと第1特徴配列と第2特徴配列とに応じた値である目的関数値を、重み行列に基づいて導出する目的関数値導出部と、目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新部とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、
同じクラスに前記第1配列と前記第2配列とが属するか否かを表すラベルと前記第1特徴配列と前記第2特徴配列とに応じた値である目的関数値を、前記重み行列に基づいて導出する目的関数値導出部と、
前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新部と
を備える学習装置。
【請求項2】
前記目的関数値導出部は、前記第1特徴配列と前記第2特徴配列との間又は前記第2特徴配列と前記重み行列から導出された特徴配列との間の差分若しくは類似度が前記ラベルに関連付けられるように、前記目的関数値を定める、
請求項1に記載の学習装置。
【請求項3】
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、
現在の時刻における前記第2配列の要素に対する前記第1特徴配列の各要素の重みと前記第1特徴配列とに基づいて、現在の時刻における前記第2配列の要素を導出する復号化部と、
正解配列と前記第2配列とに応じた値である目的関数値を導出する目的関数値導出部と、
前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新部と
を備える学習装置。
【請求項4】
前記第1配列の要素と前記第2配列の要素とに対応関係がある場合、単調性制約と連続性制約とのうちの少なくとも一方を表す制約関数値を前記重み行列に基づいて導出する制約関数値導出部
を備え、
前記単調性制約は、前記第2配列の要素の添字の増加につれて、前記第2配列の要素との対応関係にある前記第1配列の要素の添字が減少しないという制約であり、
前記連続性制約は、前記第2配列において隣り合う要素の添字が連続している場合に、前記第2配列において隣り合う要素の添字との対応関係にある前記第1配列の要素の添字同士の差が所定の正値以下であるという制約であり、
前記更新部は、前記目的関数値と前記制約関数値とに基づいて所定の学習処理を実行することによって学習結果を生成する、
請求項1から請求項3のいずれか一項に記載の学習装置。
【請求項5】
前記制約関数値導出部は、前記単調性制約と前記連続性制約とのうちの少なくとも一方が満たされる度合いが大きいほど、前記制約関数値を小さくする、
請求項4に記載の学習装置。
【請求項6】
前記制約関数値導出部は、前記重み行列と所定の等差数列との積を対応配列として導出し、前記対応配列における全ての要素に関する全ての局所的な前記単調性制約の関数値の総和又は平均を単調性の前記制約関数値として導出する、
請求項4又は請求項5に記載の学習装置。
【請求項7】
前記制約関数値導出部は、前記重み行列と所定の等差数列との積を対応配列として導出し、前記対応配列の各要素について前記対応配列の要素の1個前の要素と前記対応配列の要素との差の絶対値を導出し、導出された絶対値から所定の正数を減算し、減算結果の数値と0とのうちの最大値を局所的な前記連続性制約の関数値として導出し、前記対応配列における全ての要素に関する全ての局所な前記連続性制約の関数値の総和又は平均を連続性の前記制約関数値として導出する、
請求項4又は請求項5に記載の学習装置。
【請求項8】
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、
前記第1特徴配列と前記第2特徴配列と前記重み行列とに基づいて、前記第1配列と前記第2配列との間の距離を導出する照合部と、
前記距離に基づいて所定の推論処理を実行することによって推論結果を生成する推論部と
を備える推論装置。
【請求項9】
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、
前記第1特徴配列と前記重み行列とに基づいて第2配列を導出する復号化部と、
前記第2配列に基づいて所定の推論処理を実行することによって推論結果を生成する推論部と
を備える推論装置。
【請求項10】
学習装置が実行する学習方法であって、
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、
同じクラスに前記第1配列と前記第2配列とが属するか否かを表すラベルと前記第1特徴配列と前記第2特徴配列とに応じた値である目的関数値を、前記重み行列に基づいて導出する目的関数値導出ステップと、
前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新ステップと
を含む学習方法。
【請求項11】
推論装置が実行する推論方法であって、
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、
前記第1特徴配列と前記第2特徴配列と前記重み行列とに基づいて、前記第1配列と前記第2配列との間の距離を導出する照合ステップと、
前記距離に基づいて所定の推論処理を実行することによって推論結果を生成する推論ステップと
を含む推論方法。
【請求項12】
学習装置が実行する学習方法であって、
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、
現在の時刻における前記第2配列の要素に対する前記第1特徴配列の各要素の重みと前記第1特徴配列とに基づいて、現在の時刻における前記第2配列の要素を導出する復号化ステップと、
正解配列と前記第2配列とに応じた値である目的関数値を導出する目的関数値導出ステップと、
前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新ステップと
を含む学習方法。
【請求項13】
推論装置が実行する推論方法であって、
第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、
前記第1特徴配列と前記重み行列とに基づいて第2配列を導出する復号化ステップと、
前記第2配列に基づいて所定の推論処理を実行することによって推論結果を生成する推論ステップと
を含む推論方法。
【請求項14】
請求項1から請求項7のいずれか一項に記載の学習装置としてコンピュータを機能させるためのプログラム。
【請求項15】
請求項8又は請求項9に記載の推論装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、推論装置、学習方法、推論方法及びプログラムに関する。
【背景技術】
【0002】
配列とは、順番に並べられた一続きのデータである。配列の例として、音声信号と音響信号と生体信号とがある。配列の各データは、数値や数値ベクトルなどであり、配列の要素と呼ばれる。配列の各データは、自然数などの添字を用いて識別される。
【0003】
配列整列とは、複数の配列において互いに類似する領域を特定できるように、各配列の要素を整列させることである。配列の関係性を知る手がかりが配列整列によって与えられるので、配列整列は、例えば、動作認識、音声分析、生体信号分類及び署名認証等の多くの応用問題において重要である。特に、2個の配列の間に、局所的な変移と速度の変化とに関する非線形の時間変動が存在する場合、配列整列が必要となる。配列整列の代表的な方法として、動的時間伸縮法がある(非特許文献1参照)。
【0004】
動的時間伸縮法では、2個の配列における各要素間の距離が導出される。対応関係にある要素間の距離の合計が最小になるように、2個の配列における各要素間の対応関係が検出される。対応関係とは、互いに対応している2個の要素の組み合わせ、又は、互いに対応している2個の要素の添字の組み合わせである。
【0005】
動的時間伸縮法では、処理の並列化が困難である。このため、動的時間伸縮法と深層学習とを組み合わせることは難しい。また、動的時間伸縮法は、人手によって設計された特徴表現の使用に依存し、より複雑な特徴表現が必要な場合に性能が不十分である。従って、動的時間伸縮法は、所定の目的の応用問題には最適でない場合が多い。
【0006】
機械翻訳、音声合成及び音声変換等の分野では、深層学習と組み合わせることが容易な配列整列の方法として、注意機構を使用する方法がある(非特許文献2、3参照)。注意機構は、第1配列と第2配列との2個の配列に関して、第2配列の各要素に対する第1配列の各要素の重みを導出する。導出された各重みは、第1配列と第2配列との2個の配列の各要素が対応関係にある確率を表す。注意機構を使用する配列整列の方法では、第2配列の各要素に対する第1配列の各要素の重みに基づいて第1配列の各要素が並べ替えられることによって、配列整列が実現される。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Hiroaki Sakoe and Seibi Chiba, "Dynamic programming algorithm optimization for spoken word recognition," IEEE Transactions on Acoustics, Speech and Signal Processing, Vol. 26, No. 1, pp. 43-49, 1978.
【非特許文献2】Dzmitry Bahdanau, KyungHyun Cho, and Yoshua Bengio, "Neural machine translation by jointly learning to align and translate," In ICLR, 2015.
【非特許文献3】Minh-Thang Luong, Hieu Pham, and Christopher D. Manning, "Effective approaches to attention-based neural machine translation," In EMNLP, pp. 1412-1421, 2015.
【発明の概要】
【発明が解決しようとする課題】
【0008】
第2配列の添字を独立変数とし、第2配列の添字との対応関係にある第1配列の添字を従属変数とする関数(以下「対応関数」という。)を用いて、2個の配列の各要素間の対応関係は表される。照合又は分類などの応用問題では、同じクラスに属する2個の配列において、対応関数が単調で連続的である場合が多い。これに対して、異なるクラスに属する2個の配列において、対応関数が非単調又は非連続的である場合が多い。
【0009】
このような性質が利用されることによって、同じクラスに2個の配列が属するか否かを判定することが可能である。例えば、単調で連続的な対応関数が2個の配列から導出され、対応関係にある要素間の距離の合計が導出可能である。この合計が大きい場合には、異なるクラスに2個の配列が属すると判定することができる。
【0010】
このような性質を利用する代表的な配列整列方法として、動的時間伸縮法がある。しかしながら、動的時間伸縮法は、人手によって設計された特徴表現の使用に依存し、より複雑な特徴表現が必要な場合に性能が不十分である。従って、動的時間伸縮法は、所定の目的の応用問題には最適でない場合が多い。
【0011】
これに対して注意機構は、人手によって設計された特徴表現に依存しない。しかしながら従来では、注意機構を使用して照合又は分類などの応用問題を解決することができない。なぜなら、2個の配列の各要素が対応関係にある確率を従来の注意機構が導出したとしても、対応関数を確率から導出することができないためである。また、従来の注意機構が対応関数を導出したとしても、対応関数が単調で連続的であることを保証する方法がないためである。
【0012】
従って、従来の注意機構を使用して整列された配列の間の距離が照合又は分類等の応用問題に適用された場合、配列間の距離が非常に小さく導出されることが多い。このため、異なるクラスに属する2個の配列を正しく区別することができないことが多い。
【0013】
図10は、重み行列の例を示す図である。重み行列は、2個の配列の各要素が対応関係にある確率を表す行列である。
図10では、第1配列は一例として「LISTEN」であり、第2配列は一例として「SILENT」である。値が「1」である重み行列の要素は、該当する要素が対応関係にあることを表す。
【0014】
図10における左側に示された重み行列は、従来の注意機構によって導出された重み行列である。このように従来の注意機構は、非単調で非連続的な対応関数を導出する。異なるクラスに2個の配列が属していても、
図10における左側に示された重み行列では、対応関係にある要素間の距離の合計が0となっているため、2個の配列を正しく区別することができていない。
【0015】
このため、照合又は分類などの応用問題において、
図10における右側に示された重み行列における「1」の並び方のように単調で連続的な対応関数を導出及び使用可能な配列整列方法が必要とされている。このような配列整列方法によって、配列間の距離又は類似度が正しく導出され、異なるクラスに属する配列であるか否かを正しく推論することが可能である。
【0016】
音声合成又は音声変換などの応用問題では、第1配列を第2配列に変換することが目的である。第1配列と第2配列との間において、局所的な変移と速度の変化とに関する非線形の時間変動が存在する場合、配列整列が必要となる。例えば、日本人の英語音声をアメリカ人の英語音声に変換する場合、英語音声のテンポに変動が存在するため、音声信号の配列を整列する必要がある。すなわち、2個の配列の各要素間の対応関係が推定され、推定された対応関係を使用して第1配列が整列され、整列された第1配列が第2配列に変換される必要がある。このような場合でも、2個の配列の間における対応関数が単調で連続的であることが多い。
【0017】
しかしながら、従来の注意機構を使用する方法では、単調で連続的な対応関数を注意機構が導出できるように、数理モデルの学習を誘導(ガイド)する機能がない。このため、注意機構が十分な性能を提供できるようになるまでには、長い学習時間が必要である場合が多い。
【0018】
このため、音声合成又は音声変換などの応用問題においても、上述の配列整列方法が必要とされている。このような配列整列方法によって、音声合成又は音声変換などの推論精度の向上と学習時間の短縮とを両立させることが可能である。
【0019】
上記事情に鑑み、本発明は、人手によって設計された特徴表現の使用に依存することなく、より複雑な特徴表現を導出及び使用可能であると同時に、単調で連続的な対応関数を導出及び使用可能な配列整列を実現することが可能である学習装置、推論装置、学習方法、推論方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0020】
本発明の一態様は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、同じクラスに前記第1配列と前記第2配列とが属するか否かを表すラベルと前記第1特徴配列と前記第2特徴配列とに応じた値である目的関数値を、前記重み行列に基づいて導出する目的関数値導出部と、前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新部とを備える学習装置である。
【0021】
本発明の一態様は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、現在の時刻における前記第2配列の要素に対する前記第1特徴配列の各要素の重みと前記第1特徴配列とに基づいて、現在の時刻における前記第2配列の要素を導出する復号化部と、正解配列と前記第2配列とに応じた値である目的関数値を導出する目的関数値導出部と、前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新部とを備える学習装置である。
【0022】
本発明の一態様は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、前記第1特徴配列と前記第2特徴配列と前記重み行列とに基づいて、前記第1配列と前記第2配列との間の距離を導出する照合部と、前記距離に基づいて所定の推論処理を実行することによって推論結果を生成する推論部とを備える推論装置である。
【0023】
本発明の一態様は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意機構と、前記第1特徴配列と前記重み行列とに基づいて第2配列を導出する復号化部と、前記第2配列に基づいて所定の推論処理を実行することによって推論結果を生成する推論部とを備える推論装置である。
【0024】
本発明の一態様は、学習装置が実行する学習方法であって、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、同じクラスに前記第1配列と前記第2配列とが属するか否かを表すラベルと前記第1特徴配列と前記第2特徴配列とに応じた値である目的関数値を、前記重み行列に基づいて導出する目的関数値導出ステップと、前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新ステップとを含む学習方法である。
【0025】
本発明の一態様は、推論装置が実行する推論方法であって、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、前記第1特徴配列と前記第2特徴配列と前記重み行列とに基づいて、前記第1配列と前記第2配列との間の距離を導出する照合ステップと、前記距離に基づいて所定の推論処理を実行することによって推論結果を生成する推論ステップとを含む推論方法である。
【0026】
本発明の一態様は、学習装置が実行する学習方法であって、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、現在の時刻における前記第2配列の要素に対する前記第1特徴配列の各要素の重みと前記第1特徴配列とに基づいて、現在の時刻における前記第2配列の要素を導出する復号化ステップと、正解配列と前記第2配列とに応じた値である目的関数値を導出する目的関数値導出ステップと、前記目的関数値に基づいて所定の学習処理を実行することによって学習結果を生成する更新ステップとを含む学習方法である。
【0027】
本発明の一態様は、推論装置が実行する推論方法であって、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、前記第1特徴配列と前記第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する注意ステップと、前記第1特徴配列と前記重み行列とに基づいて第2配列を導出する復号化ステップと、前記第2配列に基づいて所定の推論処理を実行することによって推論結果を生成する推論ステップとを含む推論方法である。
【0028】
本発明の一態様は、上記に記載の学習装置としてコンピュータを機能させるためのプログラムである。
【0029】
本発明の一態様は、上記に記載の推論装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0030】
本発明により、人手によって設計された特徴表現の使用に依存することなく、より複雑な特徴表現を導出及び使用可能であると同時に、単調で連続的な対応関数を導出及び使用可能な配列整列を実現することが可能である。
【図面の簡単な説明】
【0031】
【
図1】第1実施形態における、推論装置の構成例を示す図である。
【
図2】第1実施形態における、学習装置の構成例を示す図である。
【
図3】第1実施形態における、対応配列の例を示す図である。
【
図4】第1実施形態における、単調性制約関数値の導出例を示す図である。
【
図5】第1実施形態における、連続性制約関数値の導出例を示す図である。
【
図6】第2実施形態における、推論装置の構成例を示す図である。
【
図7】第2実施形態における、学習装置の構成例を示す図である。
【
図8】各実施形態における、推論装置のハードウェア構成例を示す図である。
【
図9】各実施形態における、学習装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0032】
本発明の実施形態について、図面を参照して詳細に説明する。
以下では、配列の照合又は分類などの応用問題において、注意機構が使用される。これによって、人手によって設計された特徴表現の使用に依存することなく、より複雑な特徴表現を導出及び使用可能な配列整列が実現される。
【0033】
以下では、単調性制約と連続性制約とのうちの少なくとも一方を表す制約関数値が新たに提案される。単調で連続的な対応関数を注意機構が導出できるように、制約関数値が最小化されることによって、符号化部と注意機構とを含む数理モデルの学習を誘導(ガイド)することが可能である。
【0034】
以下、単調性制約とは、第1配列の要素と第2配列の要素とに対応関係があり、第2配列の要素の添字(番号)の増加につれて、第2配列の要素との対応関係にある第1配列の要素の添字(番号)が減少しないという制約である。以下、連続性制約とは、第1配列の要素と第2配列の要素とに対応関係があり、第2配列において隣り合う要素の添字(番号)が連続している場合に、第2配列において隣り合う要素の添字との対応関係にある第1配列の要素の添字同士の差が所定の正値以下であるという制約である。
【0035】
(第1実施形態)
第1実施形態では、照合又は分類などの応用問題に、学習方法及び推論方法が適用される。照合又は分類などの応用問題として、例えば、動作認識、音声認識、生体信号分類及び署名認証等がある。
【0036】
学習段階において、学習装置が注意機構を用いて、数理モデルの学習を実行する。すなわち学習段階において、学習装置は、多数のパラメータを持つ数理モデルを、学習データを用いて学習する。学習装置は、数理モデルのパラメータの数値を決定することによって、学習済の数理モデルを生成する。実行段階において、推論装置は、学習済の数理モデルを用いて、推論処理を実行する。例えば、推論装置は、照合又は分類等の目的のタスクを実行する。
【0037】
まず、実行段階における、照合又は分類などの応用問題に適用される推論方法について説明する。
【0038】
図1は、第1実施形態における、推論装置1の構成例を示す図である。第1実施形態の実行段階では、照合又は分類などの応用問題に推論方法が適用される。推論装置1は、第1配列と第2配列を入力として取得する。例えば、動作認識では、推論装置1は、人体における複数の特徴点(例えば、関節位置)の座標などを時間順に並べた配列を、入力として取得する。署名認証では、推論装置1は、署名収集装置のディスプレイにおける署名座標又は筆圧などを時間順に並べた配列を、入力として取得する。推論装置1は、第1配列と第2配列の間の距離を導出する。推論装置1は、距離に基づいて推論処理を実行する。推論装置1は、推論結果を所定の外部装置(不図示)に出力する。
【0039】
距離は、照合又は分類などの応用問題を解決するために使用可能である。例えば、分類問題では、推論装置1は、クラスが既知である学習配列と、クラスが未知である目標配列との間の距離を導出する。推論装置1は、K近傍法又はサポートベクターマシンなどを使用して、目標配列のクラスを推定する。探索問題では、推論装置1は、クエリ配列とデータベースにある配列との間の距離を導出する。推論装置1は、距離が最も短い配列を、探索結果として導出する。
【0040】
推論装置1は、符号化部10-1と、符号化部10-2と、注意機構11と、照合部12と、推論部13とを備える。
【0041】
推論装置1の機能部の詳細を説明する。
<符号化部10>
符号化部10-1は、第1配列を入力として取得する。符号化部10-2は、第2配列を入力として取得する。符号化部10-1は、第1特徴配列(第1特徴表現)を注意機構11と照合部12とに出力する。符号化部10-2は、第2特徴配列(第2特徴表現)を注意機構11と照合部12とに出力する。
【0042】
符号化部10-1の動作は、符号化部10-2の動作と同様である。このため以下では、符号化部10-1の動作について説明する。また以下では、符号化部10-1と符号化部10-2とに共通する事項については、符号の一部を省略して、「符号化部10」と表記する。符号化部10は、第1配列に基づいて、数値又は数値ベクトルを要素とする配列を第1特徴配列として導出する。
【0043】
<符号化部10の第1例>
符号化部10の第1例では、符号化部10は、人工ニューラルネットワークを使用して、第1特徴配列を第1配列から導出する。学習段階において、人工ニューラルネットワークのパラメータは、学習データに基づいて決定される。
【0044】
符号化部10の第1例の処理の詳細は、以下の通りである。
符号化部10の第1例では、符号化部10は、第1配列の長さを,所定の長さ(例えば、1024)に変更する。これは、人工ニューラルネットワークの学習が実行される場合に、バッチ学習又はミニバッチ学習を使用可能とするために必要である。第1配列の各要素は、1次元の数値又は多次元の数値ベクトルである。
【0045】
長さが変更された第1配列の要素の各次元について、当該次元の全ての数値の平均が0になり、当該次元の全ての数値の分散が1になるように、符号化部10は、当該次元の全ての数値を正規化する。正規化された第1配列は、例えば、「1×1024×5」のテンソルである。この「1024」は、配列の長さの例である。この「5」は、配列の要素の次元数の例である。
【0046】
符号化部10は、正規化された第1配列を、畳み込みニューラルネットワークに入力する。畳み込みニューラルネットワークは、例えば、1個の「1×7×64」の畳み込み層と、1個の最大プーリング層と、2個の「1×3×64」の畳み込み層を備える。各畳み込み層の直後には、バッチ正規化層が備えられる。バッチ正規化層に続いて、ReLU層が活性化関数として備えられる。最後のReLU層は、多次元の数値ベクトルを要素とする配列を出力する。
【0047】
符号化部10は、多次元の数値ベクトルを要素とする配列の各要素について、当該要素の全ての数値のL2ノルムが1になるように、当該要素の全ての数値を正規化する。符号化部10は、正規化された配列を第1特徴配列として、注意機構11と照合部12とに出力する。符号化部10の第1例では、畳み込みニューラルネットワークの代わりに、再帰型ニューラルネットワークなどが使用されてもよい。
【0048】
<符号化部10の第2例>
符号化部10の第2例では、符号化部10は、入力された第1配列を第1特徴配列として、注意機構11と照合部12とに出力する。符号化部10の第2例では、符号化部10は、パラメータを持たない。
【0049】
<注意機構11>
注意機構11は、第1特徴配列を、符号化部10-1から取得する。注意機構11は、第2特徴配列を、符号化部10-2から取得する。注意機構11は、第1特徴配列の各要素と第2特徴配列の各要素とに基づいて、第2特徴配列の各要素に対する第1特徴配列の各要素の重みを導出する。第2特徴配列の各要素に対する、第1特徴配列の各要素の重みは、2個の要素が対応関係にある確率を表す。重みが大きいほど、2個の要素が対応関係にある確率が高い。注意機構11は、重み行列を照合部12に出力する。
【0050】
<注意機構11の第1例>
注意機構11の第1例では、注意機構11は、人工ニューラルネットワークを使用して、第1特徴配列の各要素と第2特徴配列の各要素とに基づいて、第2特徴配列の各要素に対する第1特徴配列の各要素の重みを導出する。学習段階において、人工ニューラルネットワークのパラメータは、学習データに基づいて決定される。
【0051】
注意機構11の第1例の処理の詳細は、以下の通りである。
注意機構11の第1例では、注意機構11は、第1特徴配列の各要素である数値ベクトルと、第2特徴配列の各要素である数値ベクトルとを、数値ベクトルの次元方向に沿って連結する。注意機構11は、連結された数値ベクトルを、人工ニューラルネットワークに入力する。
【0052】
人工ニューラルネットワークは、例えば、3個の全結合層を備える。3個の全結合層において、1個目の全結合層が64個の隠れユニットを有し、2個目の全結合層が16個の隠れユニットを有し、3個目の全結合層が1個の隠れユニットを有する。1個目の全結合層の直後において、活性化関数としてReLU層が備えられる。2個目の全結合層の直後において、活性化関数としてReLU層が備えられる。3個目の全結合層は、1個の実数を出力する。
【0053】
第2特徴配列の各要素について、注意機構11は、当該要素と第1特徴配列の各要素とを用いて導出された実数を全て含む配列を、Softmax関数を用いて正規化する。この導出された実数を全て含む配列とは、第1特徴配列の各要素に対して出力された実数を配列としてまとめたものである。導出された実数を全て含む配列は、第1特徴配列の要素数と同じ数の実数を含む。注意機構11は、第2特徴配列の各要素に対する第1特徴配列の各要素の重みとして、正規化された実数を導出する。注意機構11は、第2特徴配列の各要素に対する第1特徴配列の各要素の重みを全て含む行列を、重み行列として照合部12に出力する。
【0054】
<注意機構11の第2例>
注意機構11の第2例の処理の詳細は、以下の通りである。
注意機構11の第2例では、注意機構11は、第1特徴配列の各要素と第2特徴配列の各要素との内積を導出する。注意機構11は、第2特徴配列の各要素について、第2特徴配列の各要素と第1特徴配列の各要素との内積を全て含む配列を、Softmax関数によって正規化する。注意機構11は、第2特徴配列の各要素に対する第1特徴配列の各要素の重みとして、正規化された内積を導出する。注意機構11は、第2特徴配列の各要素に対する第1特徴配列の各要素の重みを全て含む行列を、重み行列として照合部12に出力する。
【0055】
注意機構11の第2例では、注意機構11は、パラメータを持たない。符号化部10と注意機構11とを含む数理モデルを学習するためには、数理モデルがパラメータを持たなければ、数理モデルを学習することができない。従って、符号化部10の第2例が使用される場合には、注意機構11の第2例を使用することはできない。すなわち、パラメータを持たない符号化部10が使用される場合には、パラメータを持たない注意機構11を使用することはできない。
【0056】
<照合部12>
照合部12は、第1特徴配列を符号化部10-1から取得する。照合部12は、第2特徴配列を符号化部10-2から取得する。照合部12は、重み行列を注意機構11から取得する。照合部12は、第1特徴配列と第2特徴配列と重み行列とに基づいて、第1配列と第2配列との間の距離を導出する。照合部12は、第1配列と第2配列との間の距離(距離情報)を、推論部13に出力する。なお、照合部12は、所定の外部装置(不図示)に距離(距離情報)を出力してもよい。
【0057】
<照合部12の第1例>
照合部12の第1例では、照合部12は、重み行列を使用して、第1特徴配列の各要素に対して重み付けを実行する。照合部12は、重み付けによって得られた新しい特徴配列を、変換特徴配列として導出する。照合部12は、変換特徴配列と第2特徴配列との間の距離を、第1配列と第2配列との間の距離として導出する。
【0058】
照合部12の第1例の処理の詳細は、以下の通りである。
照合部12の第1例では、照合部12は、第2特徴配列の各要素について、第2特徴配列の各要素に対する第1特徴配列の各要素の重みを用いて、第1特徴配列の全ての要素の加重総和を導出する。これによって、第2特徴配列の各要素との対応関係にある第1特徴配列の要素が、加重総和として特定(抽出又は生成)される。すなわち、第2特徴配列の各要素との対応関係にある第1特徴配列の要素が整列される。従って、第1配列と第2配列との間に存在する局所的な変移と速度の変化とに関する非線形の時間変動が補償される。
【0059】
照合部12は、第2特徴配列の各要素(数値又は数値ベクトル)と、当該要素に対して導出された第1特徴配列の全ての要素の加重総和(数値又は数値ベクトル)との距離(例えば、ユークリッド距離)を、局所距離として導出する。第1配列と第2配列との間の時間変動が既に補償されているため、第2特徴配列の各要素と当該要素に対して導出された加重総和とが対応関係にある確率は高い。従って、第2特徴配列の各要素と当該要素に対して導出された加重総和との距離を照合部12が導出することによって、第1特徴配列と第2特徴配列との間の局所的な差異をより正しく表す距離を照合部12が導出することが可能になる。
【0060】
照合部12は、第2特徴配列の全ての要素に関する全ての局所距離の総和又は平均を導出する。照合部12は、局所距離の総和又は平均を、第1配列と第2配列との間の距離として推論部13に出力する。ここで、第1特徴配列は「X∈RW×K」と表記され、第2特徴配列は「Y∈RW×K」と表記される。「W」は、特徴配列の長さを表す。「K」は、特徴配列の要素である数値又は数値ベクトルの次元数を表す。「X」のj番目の行ベクトル「xj∈R1×K」は、「X」のj番目の要素を表す。同様に、「Y」のi番目の行ベクトル「yi∈R1×K」は、「Y」のi番目の要素を表す。
【0061】
重み行列は「P∈RW×W」と表記される。「P」のi番目の行ベクトル「pi∈R1×W」は、「yi」に対する「x1,…,xW」の重み「pi1,…,piW」を含む。「pi」のj番目の要素「pij」は、「yi」に対する「xj」の重みを表す。
【0062】
「pi」がSoftmax関数によって正規化されているので、「pi1,…,piW」の合計は1である。従って、第1配列と第2配列との間の距離は、式(1)のように表される。
【0063】
【0064】
ここで、「piX」は、「yi」に対する「x1,…,xW」の加重総和を表す。「||piX-yi||」は、「piX」と「yi」との間のユークリッド距離、すなわち局所距離を表す。
【0065】
<照合部12の第2例>
照合部12の第2例では、照合部12は、第1特徴配列の各要素と第2特徴配列の各要素との間の距離を導出する。照合部12は、重み行列を使用して、距離に対して重み付けを実行する。照合部12は、重みに基づいて、第1配列と第2配列との間の距離を導出する。
【0066】
照合部12の第2例の処理の詳細は、以下の通りである。
照合部12の第2例では、照合部12は、第1特徴配列の各要素と第2特徴配列の各要素との間の距離(例えば、ユークリッド距離)を、局所距離として導出する。照合部12は、重み行列を使用して、局所距離の加重総和又は加重平均を導出する。照合部12は、第1配列と第2配列との間の距離として、局所距離の加重総和又は加重平均を推論部13に出力する。
【0067】
第2特徴配列の各要素に対する第1特徴配列の各要素の重みは、2個の要素が対応関係にある確率を表す。重みが大きいほど、2個の要素が対応関係にある確率が高い。照合部12は、対応関係にある確率の高い2個の要素に対して、2個の要素の間の局所距離に対してより大きい重みを付与する。照合部12は、対応関係にある確率の低い2個の要素に対して、2個の要素の間の局所距離に対してより小さい重みを付与する。
【0068】
これによって、第1配列と第2配列との間に存在する局所的な変移と速度の変化とに関する非線形の時間変動が補償される。また、第1配列と第2配列との間の距離が、より正しく導出される。
【0069】
照合部12の第1例と同様に、照合部12の第2例では、第1特徴配列は「X∈RW×K」と表記され、第2特徴配列は「Y∈RW×K」と表記される。特徴配列の長さは「W」と表記される。「X」のj番目の要素が「xj∈R1×K」と表記され、「Y」のi番目の要素は「yi∈R1×K」と表記される。重み行列は「P∈RW×W」と表記される。「yi」に対する「xj」の重みは「pij∈P」と表記される。従って、第1配列と第2配列との間の距離は、式(2)のように表される。
【0070】
【0071】
ここで、「||xj-yi||」は、「xj」と「yi」との間のユークリッド距離、すなわち局所距離を表す。
【0072】
<推論部13>
推論部13は、第1配列と第2配列との間の距離として、局所距離の加重総和又は加重平均を、照合部12から取得する。推論部13は、第1配列と第2配列との間の距離に基づいて推論処理を実行する。推論部13は、所定の外部装置(不図示)に推論結果を出力する。推論処理は、特定の推論処理に限定されない。例えば、複数人の手書き署名の筆者が推論される場合、筆者が未知である署名(第1配列)と筆者が既知である署名(第2配列)とが学習済の数理モデルに入力される。推論部13は、照合部12から取得された第1配列と第2配列との間の距離が最も短い第2配列の筆者ID(identification number)を、第1配列の筆者ID(推論結果)として出力する。各筆者について第2配列が複数存在する場合には、推論部13は、距離の平均値が最も短い筆者IDを、推論結果として出力してもよい。
【0073】
次に、学習段階における、照合又は分類などの応用問題に適用される学習方法について説明する。
【0074】
図2は、第1実施形態における、学習装置2の構成例を示す図である。第1実施形態の学習段階では、照合又は分類などの応用問題に学習方法が適用される。学習装置2は、第1配列と第2配列とラベルとを、入力として取得する。学習装置2は、目的関数値と制約関数値とを導出する。学習装置2は、目的関数値と制約関数値とに基づいて、学習済の数理モデル(学習結果)を所定の外部装置(不図示)に出力する。また、学習装置2は、学習済の数理モデルを、実行段階よりも前に推論装置1に出力する。
【0075】
第1配列と第2配列とラベルとは、所定の目的(例えば、照合又は分類)のタスクを実行するための数理モデルを学習装置2が学習するために使用される学習データである。ラベルは、同じクラスに第1配列と第2配列とが属するか否かを表す。目的関数値と制約関数値とは、数理モデルを学習装置2が学習するために使用される。例えば、多数の学習データを使用して導出された目的関数値と制約関数値との加重総和又は加重平均が可能な限り小さくなるように(例えば、最小になるように)、学習装置2は数理モデルのパラメータを更新する。学習データの数が多いほど、数理モデルの性能が向上する。学習データの数は、例えば、2万から3万程度である。
【0076】
学習装置2は、符号化部20-1と、符号化部20-2と、注意機構21と、目的関数値導出部22と、制約関数値導出部23と、更新部24とを備える。
【0077】
学習装置2の機能部の詳細を説明する。
<符号化部20>
符号化部20-1は、第1配列を入力として取得する。符号化部20-2は、第2配列を入力として取得する。符号化部20-1の動作は、符号化部20-2の動作と同様である。学習段階における符号化部20-1の処理は、実行段階における符号化部10-1の処理と同じである。学習段階における符号化部20-2の処理は、実行段階における符号化部10-2の処理と同じである。
【0078】
符号化部20-1は、第1特徴配列を注意機構21と目的関数値導出部22とに出力する。符号化部20-2は、第2特徴配列を注意機構21と目的関数値導出部22とに出力する。以下では、符号化部20-1と符号化部20-2とに共通する事項については、符号の一部を省略して、「符号化部20」と表記する。
【0079】
<注意機構21>
注意機構21は、第1特徴配列を符号化部20-1から取得する。注意機構21は、第2特徴配列を符号化部20-2から取得する。学習段階における注意機構21の処理は、実行段階における注意機構11の処理と同じである。注意機構21は、重み行列を目的関数値導出部22と制約関数値導出部23とに出力する。
【0080】
<目的関数値導出部22>
目的関数値導出部22は、ラベルを入力として取得する。目的関数値導出部22は、第1特徴配列と第2特徴配列とを、符号化部20から取得する。目的関数値導出部22は、重み行列を注意機構21から取得する。目的関数値導出部22は、第1特徴配列と第2特徴配列と重み行列とに基づいて、第1特徴配列と第2特徴配列との間の差分を導出する。目的関数値導出部22は、導出された差分がラベルに関連付けられるように、目的関数値を導出する。
【0081】
同じクラスに第1配列と第2配列とが属する場合、差分が大きいほど、目的関数値が大きくなる。異なるクラスに第1配列と第2配列とが属する場合、差分が小さいほど、目的関数値が大きくなる。目的関数値導出部22は、このような目的関数値を更新部24に出力する。
【0082】
<目的関数値導出部22の第1例>
実行段階において照合部12の第1例が使用される場合、学習段階において、目的関数値導出部22の第1例が使用されるほうが、目的関数値導出部22の第2例が使用されるよりも望ましい。目的関数値導出部22の第1例では、目的関数値導出部22は、重み行列を使用して、第1特徴配列の各要素に対して重み付けを実行する。目的関数値導出部22は、重み付けによって得られた新しい特徴配列を、変換特徴配列として導出する。目的関数値導出部22は、変換特徴配列と第2特徴配列との間の差分を導出する。目的関数値導出部22は、導出された差分がラベルに関連付けられるように、目的関数値を導出する。
【0083】
目的関数値導出部22の第1例の処理の詳細は、以下の通りである。
目的関数値導出部22の第1例では、目的関数値導出部22は、第2特徴配列の各要素について、第2特徴配列の各要素に対する第1特徴配列の各要素の重みを用いて、第1特徴配列の全ての要素の加重総和を導出する。
【0084】
これによって、第2特徴配列の各要素との対応関係にある第1特徴配列の要素が、加重総和として特定(抽出又は生成)される。すなわち、第2特徴配列の各要素との対応関係にある第1特徴配列の要素が整列される。従って、第1配列と第2配列との間に存在する局所的な変移と速度の変化とに関する非線形の時間変動が補償される。
【0085】
目的関数値導出部22は、第1特徴配列の全ての要素の加重総和(数値又は数値ベクトル)と、第2特徴配列の各要素(数値又は数値ベクトル)との距離(例えば、ユークリッド距離)を、局所距離として導出する。目的関数値導出部22は、局所距離を用いて、局所目的関数値を導出する。同じクラスに第1配列と第2配列とが属する場合、局所距離が長いほど、局所目的関数値が大きくなる。異なるクラスに第1配列と第2配列とが属する場合、局所距離が短いほど、局所目的関数値が大きくなる。
【0086】
目的関数値導出部22は、第2特徴配列の全ての要素に関する全ての局所目的関数値の総和又は平均を導出する。目的関数値導出部22は、局所目的関数値の総和又は平均を、目的関数値として更新部24に出力する。ここで、第1特徴配列は「X∈RW×K」と表記される。第2特徴配列は「Y∈RW×K」と表記される。特徴配列の長さは「W」と表記される。「X」のj番目の要素は「xj∈R1×K」と表記される。「Y」のi番目の要素は「yi∈R1×K」と表記される。
【0087】
重み行列は、「P∈RW×W」と表記される。「P」のi番目の行ベクトル「pi∈R1×W」は、「yi」に対する「x1,…,xW」の重み「pi1,…,piW」を含む。ラベルが「z∈{0,1}」と表記される。同じクラスに第1配列と第2配列とが属する場合に、ラベルが「z=1」となる。異なるクラスに第1配列と第2配列とが属する場合に、ラベルが「z=0」となる。従って、目的関数値は、式(3)のように表される。
【0088】
【0089】
ここで、「piX」は、「yi」に対する「x1,…,xW」の加重総和を表す。「||piX-yi||」は、「piX」と「yi」との間のユークリッド距離、すなわち局所距離を表す。「τ」は、ハイパーパラメータであって、正の実数である。
【0090】
学習段階では、更新部24は、多数の学習データを使用して導出された目的関数値と制約関数値との加重総和又は加重平均が可能な限り小さくなるように(例えば、最小になるように)、符号化部20と注意機構21とを含む数理モデルのパラメータを更新する。目的関数値が最小化されることによって、同じクラスに第1配列と第2配列とが属する場合において数理モデルが局所距離をより小さく導出するようにパラメータが更新される。
【0091】
同じクラスに第1配列と第2配列とが属する場合において第2特徴配列の各要素と類似する第1特徴配列の要素を数理モデルがより正しく特定できるように、目的関数値導出部22の第1例の目的関数値に基づいて、パラメータが更新される。すなわち、同じクラスに第1配列と第2配列とが属する場合において第2特徴配列の各要素との対応関係にある第1特徴配列の要素を数理モデルがより正しく特定できるように、目的関数値導出部22の第1例の目的関数値に基づいて、パラメータが更新される。
【0092】
このように学習された数理モデルが使用されることによって、第1特徴配列の各要素と第2特徴配列の各要素との間の対応関係が、より正しく特定される。第1配列と第2配列との間の距離が、より正しく導出される。また、人手によって設計された特徴表現の使用に依存することなく、動的時間伸縮法と比べてより複雑な特徴表現を導出及び使用可能な配列整列が実現される。
【0093】
<目的関数値導出部22の第2例>
実行段階において照合部12の第2例が使用される場合、学習段階において、目的関数値導出部22の第2例が使用されたほうが、目的関数値導出部22の第1例が使用されるよりも望ましい。目的関数値導出部22の第2例では、目的関数値導出部22は、第1特徴配列の各要素と第2特徴配列の各要素との間の距離を導出する。目的関数値導出部22は、重み行列を使用して、距離に対して重み付けを実行する。目的関数値導出部22は、第1特徴配列と第2特徴配列との間の類似度を導出する。目的関数値導出部22は、導出された類似度がラベルに関連付けられるように、目的関数値を導出する。
【0094】
目的関数値導出部22の第2例の処理の詳細は、以下の通りである。
目的関数値導出部22の第2例では、目的関数値導出部22は、第1特徴配列の各要素と第2特徴配列の各要素の間の距離(例えば、ユークリッド距離)を、局所距離として導出する。目的関数値導出部22は、重み行列を使用して、局所距離の加重総和又は加重平均を導出する。目的関数値導出部22は、導出された加重総和又は加重平均がラベルに関連付けられるように、目的関数値を導出する。
【0095】
ここで、第1特徴配列が「X∈RW×K」と表記される。第2特徴配列が「Y∈RW×K」と表記される。特徴配列の長さが「W」と表記される。「X」のj番目の要素が「xj∈R1×K」と表記される。「Y」のi番目の要素が「yi∈R1×K」と表記される。重み行列が「P∈RW×W」と表記される。「yi」に対する「xj」の重みが「pij∈P」と表記される。ラベルが「z∈{0,1}」と表記される。同じクラスに第1配列と第2配列とが属する場合に、ラベルが「z=1」となる。異なるクラスに第1配列と第2配列とが属する場合に、ラベルが「z=0」となる。従って、第1特徴配列と第2特徴配列との間の類似度は、式(4)のように表される。
【0096】
【0097】
ここで、「||xj-yi||」は、「xj」と「yi」との間のユークリッド距離、すなわち局所距離を表す。目的関数値は、式(5)のように表される。
【0098】
【0099】
学習段階では、多数の学習データを使用して導出された目的関数値が可能な限り小さくなるように(例えば、最小になるように)、更新部24は、符号化部20と注意機構21とを含む数理モデルのパラメータを更新する。目的関数値が最小化されることによって、同じクラスに第1配列と第2配列とが属する場合において数理モデルが局所距離をより小さく導出するようにパラメータが更新される。
【0100】
同じクラスに第1配列と第2配列とが属する場合、対応関係にある確率が高い2個の要素に対してより大きい重みが導出されるように、更新部24は数理モデルのパラメータを更新する。同じクラスに第1配列と第2配列とが属する場合、対応関係にある確率が低い2個の要素に対してより小さい重みが導出されるように、更新部24は数理モデルのパラメータを更新する。すなわち、第1特徴配列の各要素と第2特徴配列の各要素との間の対応関係がより正しく特定できるように、数理モデルのパラメータが更新される。
【0101】
このようにして学習された数理モデルが使用されることによって、第1特徴配列の各要素と第2特徴配列の各要素との間の対応関係がより正しく特定され、第1配列と第2配列との間の距離をより正しく導出することができる。また、人手によって設計された特徴表現の使用に依存することなく、動的時間伸縮法と比べてより複雑な特徴表現を導出及び使用可能な配列整列を実現することができる。
【0102】
<制約関数値導出部23>
制約関数値導出部23は、重み行列を注意機構21から取得する。制約関数値導出部23は、重み行列を使用して、制約関数値を導出する。制約関数値導出部23は、単調性制約と連続性制約とのうちの少なくとも一方を満たす度合いが大きいほど制約関数値が小さくなるように、制約関数値を導出する。制約関数値導出部23は、制約関数値を更新部24に出力する。
【0103】
符号化部20と注意機構21とを含む数理モデルは、制約関数値が最小化されることによって、第1特徴配列の各要素と第2特徴配列の各要素との間の対応関係が単調性制約と連続性制約とのうちの少なくとも一方を満たす重み行列を導出するように学習される。
【0104】
制約関数値導出部23の処理の詳細は、以下の通りである。
重み行列は、第1特徴配列の各要素と第2特徴配列の各要素とが対応関係にある確率を表す行列であり、対応関係そのものではない。従って、単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いに関して、度合いを重み行列から直接評価することはできない。
【0105】
単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いを評価するために、対応関数のような形に重み行列を変換する必要がある。この対応関数は、例えば、第2特徴配列の各要素の添字を独立変数とし、第2特徴配列の各要素の添字との対応関係にある第1特徴配列の要素の添字を従属変数とした関数である。
【0106】
そこで、制約関数値導出部23は、重み行列と所定の等差数列との積を、対応配列として導出する。等差数列とは、隣り合う要素ごとに共通の差を持つ数列である。
【0107】
図3は、第1実施形態における、対応配列の例を示す図である。
図3における上側には、単調性制約と連続性制約とが満たされた場合について、重み行列の例と、等差数列の例と、対応配列の例とが表されている。
図3における下側には、単調性制約と連続性制約とが満たされていない場合について、重み行列の例と、等差数列の例と、対応配列の例とが表されている。すなわち、等号の左辺には、重み行列と等差数列「[1,2,3,4]
T」との積が表されている。重み行列の各行は正規化済みであり、重み行列の各行では要素の合計が1である。等号の右辺には、対応配列が表されている。
【0108】
等差数列を用いて導出された対応配列の添字は、第2特徴配列の各要素の添字(番号)を表す。対応配列の要素である数値は、第2特徴配列の各要素との対応関係にある第1特徴配列の要素の添字(番号)を表す。なお、対応配列の要素である数値は、第2特徴配列の各要素との対応関係にある第1特徴配列の要素の添字に比例する数値を表してもよい。
【0109】
図3では、重み行列と等差数列とを使用して、対応配列が導出されている。例えば、
図3における上側に表された例では、第2特徴配列の1番目の要素が第1特徴配列の1番目の要素との対応関係にあることを、対応配列が表している。第2特徴配列の2番目の要素が第1特徴配列の2番目の要素との対応関係にあることを、対応配列が表している。第2特徴配列の3番目の要素が第1特徴配列の2番目の要素との対応関係にあることを、対応配列が表している。
【0110】
第2特徴配列の4番目の要素との対応関係にある第1特徴配列の要素の添字は、整数を用いて表されているのではなく、実数を用いて「3.6」と表されている。このような対応配列が使用されることによって、単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いを評価することが可能になる。
【0111】
対応配列を使用して導出される制約関数値は、単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いが大きいほど小さくなる必要がある。なお、勾配法を使用して学習装置2が数理モデルを学習するために、重み行列又は対応配列に対して制約関数値が微分可能であることが望ましい。また、より高速な学習を可能とするために、制約関数値の導出の並列化が容易であることが望ましい。
【0112】
制約関数値導出部23は、単調性制約関数値と連続性制約関数値とのうちの少なくとも一方を、制約関数値として導出する。
【0113】
<単調性制約関数値>
制約関数値導出部23は、対応配列の各要素について、対応配列の要素の1個前の要素と対応配列の要素との大きさを比較することによって、局所的な単調性制約の関数値(以下「局所単調性制約関数値」という。)を導出する。局所単調性制約関数値は、対応配列の要素の1個前の要素が対応配列の要素よりも大きい場合、これら2個の要素の差の絶対値となる。局所単調性制約関数値は、対応配列の要素の1個前の要素が対応配列の要素以下である場合、0となる。
【0114】
制約関数値導出部23は、対応配列における全ての要素に関する全ての局所単調性制約関数値の総和又は平均を導出する。制約関数値導出部23は、局所単調性制約関数値の総和又は平均を、単調性制約関数値として更新部24に出力する。
【0115】
ここで、重み行列は「P∈RW×W」と表記される。特徴配列の長さは「W」と表記される。対応配列は「F∈RW×1」と表記される。「F」のi番目の要素は「fi」と表記される。従って、単調性制約関数値は、式(6)のように表される。
【0116】
【0117】
ここで、「f0」は0である。畳み込みニューラルネットワークのライブラリを使用して式(6)が実装されることによって、単調性制約関数値がより高速に導出される。
【0118】
図4は、第1実施形態における、単調性制約関数値の導出例を示す図である。
図4における上側には、単調性制約と連続性制約とが満たされた場合について、単調性制約関数値の導出例が表されている。
図4における下側には、単調性制約と連続性制約とが満たされていない場合について、単調性制約関数値の導出例が表されている。
【0119】
図4には、左側から順に、対応配列の例と、フィルタの例と、対応配列において隣り合う2個の要素の差と、局所単調性制約関数値の例と、単調性制約関数値の例とが表されている。
図4において、丸印に「×」の記号は畳み込みを表す。「損失」は単調性制約関数値を表す。対応配列が単調性制約を満たす度合いが大きいほど、より小さい単調性制約関数値が導出される。対応配列が単調性制約を満たす度合いが小さいほど、より大きい単調性制約関数値が導出される。
【0120】
図4において、対応配列とフィルタ「[1,-1]
T」との畳み込みの結果として、対応配列において隣り合う2個の要素の差が導出される。制約関数値導出部23は、隣り合う2個の要素の差の配列に対して、「ReLU」を活性化関数として適用する。このようにして、局所単調性制約関数値が導出される。局所単調性制約関数値の配列における全ての要素の平均が導出されることによって、式(6)のような単調性制約関数値が容易に導出される。
【0121】
なお、フィルタは、対応配列において位置が互いに近い2個の要素の差を導出可能な任意のフィルタでよい。例えば、「[1,0,-1]T」又は「[2,1,-1,-2]T」等のフィルタが、「[1,-1]T」の代わりに使用されてもよい。
【0122】
<連続性制約関数値>
制約関数値導出部23は、対応配列の各要素について、対応配列の要素の1個前の要素と対応配列の要素との差の絶対値を導出する。制約関数値導出部23は、所定の正数を、導出された絶対値から減算する。この所定の正数は、ハイパーパラメータであり、例えば、1、2又は3などの正の整数である。「1.5」などの実数がハイパーパラメータとして使用されてもよい。
【0123】
制約関数値導出部23は、減算結果の数値と0とのうちの最大値を、局所的な連続性制約の関数値(以下「局所連続性制約関数値」という。)として導出する。制約関数値導出部23は、対応配列における全ての要素に関する全ての局所連続性制約関数値の総和又は平均を導出する。制約関数値導出部23は、局所連続性制約関数値の総和又は平均を、連続性制約関数値として更新部24に出力する。
【0124】
重み行列は「P∈RW×W」と表記される。特徴配列の長さは「W」と表記される。対応配列は「F∈RW×1」と表記される。「F」のi番目の要素は「fi」と表記される。従って、連続性制約関数値は、式(7)のように表される。
【0125】
【0126】
ここで、「f0」は0である。畳み込みニューラルネットワークのライブラリを使用して式(7)が実装されることによって、連続性制約関数値がより高速に導出される。
【0127】
図5は、第1実施形態における、連続性制約関数値の導出例を示す図である。
図5における上側には、単調性制約と連続性制約とが満たされた場合について、連続性制約関数値の導出例が表されている。
図5における下側には、単調性制約と連続性制約とが満たされていない場合について、連続性制約関数値の導出例が表されている。
【0128】
図4には、左側から順に、対応配列の例と、フィルタの例と、所定の正数の例と、対応配列において隣り合う2個の要素の差の絶対値から所定の正数が減算された結果と、局所連続性制約関数値の例と、連続性制約関数値の例とが表されている。
図5において、丸印に「×」の記号は畳み込みを表す。「損失」は、連続性制約関数値を表す。
【0129】
図5において、対応配列とフィルタ「[-1,1]
T」との畳み込みによって、対応配列において隣り合う2個の要素の差が導出される。制約関数値導出部23は、隣り合う2個の要素の差の配列における各要素の絶対値を導出する。制約関数値導出部23は、所定の正数(
図5では、1)を、導出された絶対値から減算する。制約関数値導出部23は、減算結果の配列に対して、「ReLU」を活性化関数として適用する。このようにして、局所連続性制約関数値が導出される。局所連続性制約関数値の配列における全ての要素の平均が導出されることによって、式(7)のような連続性制約関数値が容易に導出される。
【0130】
なお、フィルタは、対応配列において位置が互いに近い2個の要素の差を導出可能な任意のフィルタでよい。例えば、「[1,0,-1]T」又は「[2,1,-1,-2]T」等のフィルタが、「[1,-1]T」の代わりに使用されてもよい。
【0131】
図5に表されているように、対応配列が連続性制約を満たす度合いが大きいほど、より小さい連続性制約関数値が導出される。対応配列が連続性制約を満たす度合いが小さいほど、より大きい連続性制約関数値が導出される。
【0132】
<更新部24>
更新部24は、目的関数値を目的関数値導出部22から取得する。更新部24は、制約関数値を制約関数値導出部23から取得する。更新部24は、目的関数値と制約関数値とに基づいて学習処理を実行する。学習処理は、特定の学習処理に限定されない。更新部24は、制約関数値と目的関数値との加重総和又は加重平均が可能な限り小さくなるように(例えば、最小になるように)、符号化部20と注意機構21とを含む数理モデルのパラメータを更新する。更新部24は、所定の外部装置(不図示)に学習済の数理モデル(学習結果)を出力する。
【0133】
以上のように、学習段階において、注意機構21は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、第1特徴配列と第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する。目的関数値導出部22は、同じクラスに第1配列と第2配列とが属するか否かを表すラベルと第1特徴配列と第2特徴配列とに応じた値である目的関数値を、重み行列に基づいて導出する。制約関数値導出部23は、単調性制約と連続性制約とのうちの少なくとも一方を表す制約関数値を、重み行列に基づいて導出する。更新部24は、目的関数値と制約関数値とに基づいて所定の学習処理を実行することによって学習結果を生成する。目的関数値は、例えば、第1特徴配列と第2特徴配列との間の差分又は類似度と、ラベルとに応じた値である。更新部24は、数理モデルを更新する。
【0134】
学習段階において更新された数理モデルは、実行段階において推論処理の実行に使用される。実行段階において、注意機構11は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、第1特徴配列と第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する。照合部12は、第1特徴配列と第2特徴配列と重み行列とに基づいて、第1配列と第2配列との間の距離を導出する。推論部13は、距離に基づいて所定の推論処理を実行することによって推論結果を生成する。
【0135】
このように、単調性制約と連続性制約とのうちの少なくとも一方を表す制約関数値を用いて学習された数理モデルを用いて符号化部が特徴配列を導出することによって、有効に働く重み行列を注意機構が特徴配列に基づいて生成する。
【0136】
これによって、人手によって設計された特徴表現の使用に依存することなく、より複雑な特徴表現を導出及び使用可能であると同時に、単調で連続的な対応関数を導出及び使用可能な配列整列を実現することが可能である。人手によって設計された特徴表現の使用に依存することなく、より複雑な特徴表現を実現することが可能である。また、推論精度の向上と学習時間の短縮とを両立させることが可能である。
【0137】
学習装置2、学習方法及びプログラムによれば、注意機構11が単調で連続的な対応関数を導出できるように、更新部24が数理モデルを学習する際に数理モデルの学習を誘導(ガイド)することが可能になる。学習済の数理モデルにおける注意機構11が使用されることによって、照合又は分類などの応用問題において、配列間の距離又は類似度を正しく導出することが可能である。異なるクラスに属する配列であるか否かを正しく推論することが可能である。また、注意機構11が十分な性能を提供できるようになるまでの学習時間(数理モデルの学習に必要とされる時間)を短縮することが可能になる。
【0138】
(第2実施形態)
第2実施形態は、音声等の連続データの合成又は変換などの応用問題に学習方法及び推論方法を適用するための実施形態である。音声合成とは、人間の音声を人工的に作り出すことであり、例えば、音声を文章から合成することである。音声変換とは、個人の音声を別の個人又はキャラクタの音声に変換することである。
【0139】
なお、連続データとなるように不連続データ(例えば、手書き署名)が予め補正されるのであれば、第2実施形態における学習方法及び推論方法を不連続データに対して使うことは可能である。
【0140】
第2実施形態は、学習段階と実行段階とに分けられる。学習段階では、学習装置は、学習データを使用して、多数のパラメータを持つ数理モデルを学習する。学習装置は、数理モデルのパラメータの数値を決定する。実行段階では推論装置は、学習済の数理モデルを使用して、所定の目的(例えば、音声合成、音声変換)のタスクを実行する。
【0141】
まず、実行段階における、音声合成又は音声変換などの応用問題に適用される推論方法について説明する。
【0142】
図6は、第2実施形態における、推論装置3の構成例を示す図である。音声合成では、第1配列の要素は、例えば、文章の各単語の特徴を表す数値ベクトルである。文章の各単語の特徴は、例えば、単語のOne-Hotベクトルである。第2配列の要素は、例えば、音声の各時刻又は各フレームの特徴を表す数値ベクトルである。
【0143】
音声変換では、第1配列の要素は、例えば、音声の各時刻又は各フレームの特徴を表す数値ベクトルである。音声の各時刻又は各フレームの特徴は、例えば、所定の抽出方法(参考文献1:Masanori Morise, Fumiya Yokomori, Kenji Ozawa, "WORLD: A vocoder-based high-quality speech synthesis system for real-time applications, " IEICE Trans. Inf. Syst. 99-D (7): 1877-1884 (2016))を用いて抽出された、メルケプストラム係数と対数F0パターンとを含む多次元ベクトルである。第2配列の要素は、例えば、第1配列の音声の個人とは別の個人又はキャラクタの音声における、各時刻又は各フレームの特徴を表す数値ベクトルである。
【0144】
推論装置3は、第1符号化部30と、第2符号化部31と、注意機構32と、復号化部33と、推論部34とを備える。
【0145】
第1符号化部30は、第1配列を入力として取得する。第1符号化部30は、第1配列に対する符号化処理を例えば1回だけ実行することによって。第1特徴配列を導出する。第1符号化部30は、第1特徴配列を注意機構32と復号化部33とに出力する。
【0146】
第2符号化部31は、1個前の時刻における第2配列の要素を、復号化部33から取得する。第2符号化部31は、1個前の時刻における第2配列の要素に対する符号化処理を実行することによって、1個前の時刻における第2特徴配列の要素を導出する。第2符号化部31は、1個前の時刻における第2特徴配列の要素を、注意機構32に出力する。
【0147】
注意機構32は、第1特徴配列を、第1符号化部30から取得する。注意機構32は、1個前の時刻における第2特徴配列の要素を、第2符号化部31から取得する。注意機構32は、1個前の時刻における第2特徴配列の要素と第1特徴配列の各要素とを使用して、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを導出する。注意機構32は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを、重み行列として復号化部33に出力する。
【0148】
復号化部33は、第1特徴配列を第1符号化部30から取得する。復号化部33は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを、重み行列として注意機構32から取得する。復号化部33は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みと、第1特徴配列とに基づいて、現在の時刻における第2配列の要素を導出する。復号化部33は、現在の時刻における第2配列の要素を、第2符号化部31と推論部34とに出力する。なお、復号化部33は、現在の時刻における第2配列の要素を、所定の外部装置(不図示)に出力してもよい。
【0149】
第2符号化部31は、現在の時刻における第2配列の要素を、復号化部33から取得する。第2符号化部31は、現在の時刻における第2配列の要素を使用して、現在の時刻における第2特徴配列の要素を導出する。第2符号化部31は、現在の時刻における第2特徴配列の要素を、注意機構32に出力する。
【0150】
このように、信号が第2符号化部31から出発し、注意機構32と復号化部33とを信号が経由し、第2符号化部31に信号が再び戻るという循環が、推論装置3に存在する。最初の時刻において第2配列の要素が初期化されてから、初期化された第2配列の要素が第2符号化部31に入力され、最後の時刻において第2配列の要素が復号化部33から出力されるまでの単位時間ごとに、この循環における推論処理が繰り返される。
【0151】
注意機構32は、第2配列の各要素に対する第1特徴配列の各要素の重みを全て含む行列を、重み行列として復号化部33に出力する。また、復号化部33は、全ての時刻における第2配列の各要素を、第2配列として推論部34に出力する。
【0152】
推論部34は、第2配列を、復号化部33から取得する。推論部34は、第2配列に基づいて推論結果を生成する。音声合成又は音声変換等の応用問題では、推論結果は、音声信号である。推論部34は、所定の外部装置(不図示)に推論結果を出力する。
【0153】
推論装置3の機能部の詳細を説明する。
<第1符号化部30>
第1符号化部30は、第1配列を入力として取得する。第1符号化部30は、第1配列を使用して、数値又は数値ベクトルを要素とする配列を、第1特徴配列として導出する。例えば、第1符号化部30は、参考文献2(Jonathan Shen, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly,Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, RJ-Skerrv Ryan, Rif A. Saurous, Yannis Agiomyrgiannakis, and Yonghui Wu, "Natural TTS synthesis by conditioning wavenet on MEL spectrogram predictions," In ICASSP, pp.4779-4783, 2018.)の人工ニューラルネットワークを使用して、第1特徴配列を第1配列から導出する。第1符号化部30は、人工ニューラルネットワークのパラメータを、学習段階において学習データを使用して決定する。第1符号化部30は、第1特徴配列を注意機構32と復号化部33に出力する。
【0154】
第1符号化部30の処理の詳細は、以下の通りである。
第1配列は、例えば、「1×N×512」のテンソルである。「N」は配列の長さを表す。「512」は、配列の要素の次元数の例である。第1符号化部30は、第1配列を人工ニューラルネットワークに入力する。
【0155】
人工ニューラルネットワークは、例えば、3個の「1×5×512」の畳み込み層と、1個の双方向長短期記憶(Bidirectional Long Short-Term Memory : BiLSTM)(以下「双方向LSTM」という。)とを備える。各畳み込み層の直後にバッチ正規化層が備えられる。バッチ正規化層の直後において、活性化関数としてReLU層が備えられる。双方向LSTMは、合計512個の隠れユニットを有する。第1符号化部30の双方向LSTMは、数値又は数値ベクトルを要素とする配列を第1特徴配列として、注意機構32と復号化部33とに出力する。
【0156】
<第2符号化部31>
第2符号化部31は、第2配列を復号化部33から取得する。1個前の時刻における第2配列の要素を、復号化部33から取得する。第2符号化部31は、1個前の時刻における第2配列の要素を使用して、1個前の時刻における第2特徴配列の要素として、数値又は数値ベクトルを導出する。数値又は数値ベクトルの導出には、例えば、上述の参考文献2の人工ニューラルネットワークを使用することができる。人工ニューラルネットワークのパラメータは、学習段階で学習データを使用して決定される。第2符号化部31は、第2特徴配列を注意機構32に出力する。
【0157】
第2符号化部31の処理の詳細は、以下の通りである。
1個前の時刻における第2配列の各要素は、例えば、512次元の数値ベクトルである。第2符号化部31は、1個前の時刻における第2配列の各要素を、人工ニューラルネットワークに入力する。この人工ニューラルネットワークは、例えば、2個の全結合層を備える。各全結合層は256個の隠れユニットを有する。各全結合層の直後には、活性化関数としてReLU層が備えられる。最後の全結合層は、1個前の時刻における第2特徴配列の要素として、数値又は数値ベクトルを注意機構32に出力する。
【0158】
<注意機構32>
注意機構32は、第1特徴配列を第1符号化部30から取得する。注意機構32は、第2特徴配列を第2符号化部31から取得する。注意機構32は、1個前の時刻における第2特徴配列の要素と、第1特徴配列の各要素とを使用して、現在の時刻に対する第2配列の要素に対する第1特徴配列の各要素の重みを導出する。注意機構32として、例えば、人工ニューラルネットワークが使用されてもよいし、人工ニューラルネットワーク以外の数理モデル(例えば、線形回帰モデル、多項式回帰モデル、ロジスティック回帰モデル)が使用されてもよい。人工ニューラルネットワークのパラメータは、学習段階において、学習データを使用して決定される。注意機構32は、重み行列を復号化部33に出力する。
【0159】
注意機構32の処理の詳細は、以下の通りである。
注意機構32は、1個前の時刻における第2特徴配列の要素である数値ベクトルと、第1特徴配列の各要素である数値ベクトルとを、数値ベクトルの次元方向に沿って連結する。注意機構32は、連結された数値ベクトルを、人工ニューラルネットワークに入力する。人工ニューラルネットワークは、例えば、3個の全結合層を備える。3個の全結合層において、1個目の全結合層が64個の隠れユニットを有し、2個目の全結合層が16個の隠れユニットを有し、3個目の全結合層が1個の隠れユニットを有する。1個目の全結合層の直後において、活性化関数としてReLU層が備えられる。2個目の全結合層の直後において、活性化関数としてReLU層が備えられる。3個目の全結合層は、1個の実数を出力する。
【0160】
注意機構32は、1個前の時刻における第2特徴配列の要素と第1特徴配列の各要素とを使用して導出された実数を全て含む配列を、Softmax関数によって正規化する。この導出された実数を全て含む配列とは、第1特徴配列の各要素に対して出力された実数を配列としてまとめたものである。導出された実数を全て含む配列は、第1特徴配列の要素数と同じ数の実数を含む。注意機構32は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みとして、正規化された実数を導出する。注意機構32は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを全て含む行列を、重み行列として復号化部33に出力する。
【0161】
<復号化部33>
復号化部33は、第1特徴配列を第1符号化部30から取得する。復号化部33は、重み行列を注意機構32から取得する。復号化部33は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを使用して、第1特徴配列の各要素に対して重み付けを実行する。復号化部33は、重み付けによって得られた数値又は数値ベクトルを使用して、現在の時刻における第2配列の要素を導出する。例えば、復号化部33は、上述の参考文献2の人工ニューラルネットワークを使用して、現在の時刻における第2配列の要素を導出する。復号化部33は、人工ニューラルネットワークのパラメータを、学習段階において学習データを使用して決定する。復号化部33は、第2配列を推論部34に出力する。
【0162】
復号化部33の処理の詳細は、以下の通りである。
復号化部33は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを用いて、第1特徴配列の全ての要素の加重総和を導出する。これによって、現在の時刻における第2配列の要素との対応関係にある第1特徴配列の要素が、加重総和として特定(抽出又は生成)される。すなわち、現在の時刻における第2配列の要素との対応関係にある第1特徴配列の要素が整列される。従って、第1配列と第2配列との間に存在する局所的な変移と速度の変化とに関する非線形の時間変動が補償される。
【0163】
ここで、第1特徴配列は「X∈RW×K」と表記される。重み行列は「P∈RW×W」と表記される。現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを全て含む行ベクトルは「pi∈R1×W」と表記される。現在の時刻は「i」と表記される。現在の時刻における第2配列の要素に対する第1特徴配列の全ての要素の加重総和は、「piX」と表記される。
【0164】
加重総和は、例えば、128次元の数値ベクトルである。復号化部33は、この数値ベクトルを、人工ニューラルネットワークに入力する。人工ニューラルネットワークは、例えば、2個の双方向LSTMと1個の全結合層とを備える。各双方向LSTMは、1024個の隠れユニットを有する。全結合層は、数値又は数値ベクトルを、現在の時刻における第2配列の要素として推論部34に出力する。
【0165】
なお、復号化部33は、第2符号化部31から出力された第2特徴配列と、第1特徴配列と、重み行列とを使用して、第2配列を導出してもよい。この場合、復号化部33は、加重総和である数値ベクトルと、1個前の時刻における第2特徴配列の要素である数値ベクトルとを、数値ベクトルの次元方向に沿って連結する。復号化部33は、連結された数値ベクトルを、人工ニューラルネットワークに入力する。
【0166】
<推論部34>
推論部34は、第2配列を復号化部33から取得する。推論部34は、第2配列に基づいて推論結果を生成する。音声合成又は音声変換等の応用問題では、推論結果は、音声信号である。推論部34は、例えば、所定の生成方法(参考文献3:Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew W. Senior, Koray Kavukcuoglu, "WaveNet: A generative model for raw audio, " SSW 2016: 125.)を用いて、第2配列に基づいて音声信号を生成する。推論部34は、所定の外部装置(不図示)に推論結果を出力する。
【0167】
次に、学習段階における、音声合成又は音声変換などの応用問題に適用される学習方法について説明する。
【0168】
図7は、第2実施形態における、学習装置4の構成例を示す図である。第2実施形態の学習段階では、音声合成又は音声変換などの応用問題に学習方法が適用される。学習装置4は、第1配列と正解配列とを入力として取得する。学習装置4は、目的関数値と制約関数値とを導出する。学習装置4は、目的関数値と制約関数値とに基づいて数理モデルを学習し、学習済の数理モデル(学習結果)を、所定の外部装置(不図示)に出力する。また、学習装置4は、学習済の数理モデルを、実行段階よりも前に推論装置3に出力する。
【0169】
第1配列と正解配列とは、所定の目的(例えば、音声合成又は音声変換)のタスクを実行するための数理モデルを学習するために使用される学習データである。目的関数値と制約関数値とは、数理モデルを学習装置4が学習するために使用される。例えば、多数の学習データを使用して導出された目的関数値と制約関数値との加重総和又は加重平均が可能な限り小さくなるように(例えば、最小になるように)、学習装置4は、数理モデルのパラメータを更新する。学習データの数が多いほど、数理モデルの性能が向上する。学習データの数は、例えば、2万から3万程度である。
【0170】
学習装置4は、第1符号化部40と、第2符号化部41と、注意機構42と、復号化部43と、目的関数値導出部44と、制約関数値導出部45と、更新部46とを備える。
【0171】
第1符号化部40は、第1配列を入力として取得する。第1符号化部40は、第1配列に対する符号化処理を例えば1回だけ実行することによって。第1特徴配列を導出する。第1符号化部40は、第1特徴配列を注意機構42と復号化部43とに出力する。
【0172】
第2符号化部41は、1個前の時刻における第2配列の要素を、復号化部43から取得する。第2符号化部41は、1個前の時刻における第2配列の要素に対する符号化処理を実行することによって、1個前の時刻における第2特徴配列の要素を導出する。
【0173】
注意機構42は、第1特徴配列を、第1符号化部40から取得する。注意機構42は、1個前の時刻における第2特徴配列の要素を、第2符号化部41から取得する。注意機構42は、1個前の時刻における第2特徴配列の要素と第1特徴配列の各要素とを使用して、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを導出する。注意機構32は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを、重み行列として復号化部43に出力する。
【0174】
復号化部43は、第1特徴配列を第1符号化部40から取得する。復号化部43は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みを、重み行列として注意機構42から取得する。復号化部43は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みと、第1特徴配列とに基づいて、現在の時刻における第2配列の要素を導出する。復号化部43は、現在の時刻における第2配列の要素を、第2符号化部41と目的関数値導出部44とに出力する。
【0175】
第2符号化部41は、現在の時刻における第2配列の要素を、復号化部43から取得する。第2符号化部41は、現在の時刻における第2配列の要素を使用して、現在の時刻における第2特徴配列の要素を導出する。第2符号化部41は、現在の時刻における第2特徴配列の要素を、注意機構42に出力する。
【0176】
このように、信号が第2符号化部41から出発し、注意機構42と復号化部43とを信号が経由し、第2符号化部41に信号が再び戻るという循環が、学習装置4に存在する。この循環では、最初の時刻において第2配列の要素が初期化されてから、初期化された第2配列の要素が第2符号化部41に入力され、最後の時刻において第2配列の要素が復号化部43から出力されるまでの単位時間ごとに、学習処理が繰り返される。
【0177】
注意機構42は、第2配列の各要素に対する第1特徴配列の各要素の重みを全て含む行列を、重み行列として復号化部43に出力する。また、復号化部43は、全ての時刻における第2配列の各要素を、第2配列として第2符号化部41と目的関数値導出部44とに出力する。
【0178】
目的関数値導出部44は、正解配列を入力として取得する。目的関数値導出部44は、第2配列を復号化部43から取得する。目的関数値導出部44は、正解配列と第2配列とに基づいて、目的関数値を導出する。目的関数値導出部44が目的関数値を導出する処理は、例えば1回だけ実行される。目的関数値導出部44は、目的関数値を更新部46に出力する。
【0179】
制約関数値導出部45は、重み行列を注意機構42から取得する。制約関数値導出部45は、重み行列を使用して、制約関数値を導出する。制約関数値導出部45が制約関数値を導出する処理は、例えば1回だけ実行される。制約関数値導出部45は、制約関数値を更新部46に出力する。
【0180】
更新部46は、目的関数値を目的関数値導出部44から取得する。更新部46は、制約関数値を制約関数値導出部45から取得する。更新部46は、目的関数値と制約関数値とに基づいて学習処理を実行する。更新部46は、制約関数値と目的関数値との加重総和又は加重平均が可能な限り小さくなるように(例えば、最小になるように)、第1符号化部40と第2符号化部41と注意機構42と復号化部43とを含む数理モデルを更新する。更新部46は、所定の外部装置(不図示)に、学習済の数理モデル(学習結果)を出力する。
【0181】
学習装置4の機能部の詳細を説明する。
<第1符号化部40>
第1符号化部40は、第1配列を入力として取得する。学習段階における第1符号化部40が実行する処理は、実行段階における第1符号化部30が実行する処理と同じである。第1符号化部40は、第1特徴配列を注意機構42と復号化部43に出力する。
【0182】
<第2符号化部41>
第2符号化部41は、第2配列を復号化部43から取得し、第2特徴配列を注意機構42に出力する。学習段階における第2符号化部41の処理は、実行段階における第2符号化部31の処理と同じである。なお、学習段階における第2符号化部41は、第2配列を入力として使用する代わりに、正解配列を入力として使用してもよい。この場合、第2配列に対して実行される全ての処理は、第2配列の代わりに使用される正解配列に対して実行される。
【0183】
<注意機構42>
注意機構42は、第1特徴配列を第1符号化部40から取得する。注意機構42は、第2特徴配列を第2符号化部41から取得する。学習段階における注意機構42の処理は、実行段階における注意機構32の処理と同じである。注意機構42は、重み行列を復号化部43と制約関数値導出部45とに出力する。
【0184】
<復号化部43>
復号化部43は、第1特徴配列を第1符号化部40から取得する。復号化部43は、重み行列を注意機構42から取得する。学習段階における復号化部43の処理は、実行段階における復号化部33の処理と同じである。復号化部43は、第2配列を目的関数値導出部44に出力する。
【0185】
<目的関数値導出部44>
目的関数値導出部44は、正解配列を入力として取得する。目的関数値導出部44は、第2配列を復号化部43から取得する。目的関数値導出部44は、正解配列と第2配列との間の差分を導出する。目的関数値導出部44は、導出された差分が大きいほど値が大きくなるような目的関数値を導出する。目的関数値導出部44は、目的関数値を更新部46に出力する。
【0186】
目的関数値導出部44の処理の詳細は、以下の通りである。
目的関数値導出部44は、例えば、正解配列と第2配列との間の残差平方和(類似度)を、目的関数値として導出する。ここで、正解配列は「Z*」と表記される。第2配列は「Z」と表記される。従って、目的関数値は、式(8)のように表される。
【0187】
【0188】
ここで、「||・||」は、L2ノルムを表す。
【0189】
<制約関数値導出部45>
制約関数値導出部45は、重み行列を注意機構42から取得する。制約関数値導出部45は、重み行列を使用して、制約関数値を導出する。ここで、単調性制約と連続性制約とのうちの少なくとも一方を満たす度合いが大きいほど、制約関数値が小さくなるように、制約関数値は導出される。制約関数値導出部45は、制約関数値を更新部46に出力する。
【0190】
制約関数値が最小化されることによって、第1特徴配列の各要素と第2配列の各要素との間の対応関係が単調性制約と連続性制約とのうちの少なくとも一方を満たすという重み行列を導出するように数理モデルは学習される。この数理モデルは、第1符号化部40と、第2符号化部41と、注意機構42と、復号化部43とを含む。
【0191】
制約関数値導出部45の処理の詳細は、以下の通りである。
重み行列とは、第1特徴配列の各要素と第2配列の各要素とが対応関係にある確率を表す行列である。重み行列は、対応関係そのものではない。従って、単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いを、重み行列からは直接評価することができない。
【0192】
単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いを評価することができるようになるためには、重み行列が変換される必要がある。例えば、第2配列の各要素の時刻を独立変数とし、第2配列の各要素の時刻との対応関係にある第1特徴配列の要素の添字を従属変数とした関数(対応関数)のような形に、重み行列が変換される必要がある。このために、制約関数値導出部45は、重み行列と所定の等差数列との積を、対応配列として導出する。等差数列とは、各項(各要素)がその直前の項(要素)に一定数(公差)を加えて得られる数列である。
【0193】
例えば
図3では、「[1,2,3,4]
T」が等差数列である。等差数列を用いて導出された対応配列において、対応配列の添字は第2配列の各要素の時刻を表す。対応配列の要素である数値は、第2配列の各要素との対応関係にある第1特徴配列の要素の添字又は添字に比例する数値を表す。
図3における上側に表された例では、第2配列の1番目の要素が、第1特徴配列の1番目の要素との対応関係にある。第2配列の2番目の要素が第1特徴配列の2番目の要素との対応関係にある。第2配列の3番目の要素が、第1特徴配列の2番目の要素との対応関係にあることを、対応配列が表している。第2配列の4番目の要素との対応関係にある第1特徴配列の要素の添字は、整数を用いて表されているのではなく、実数を用いて「3.6」と表されている。このような対応配列が使用されることによって、単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いを評価することが可能になる。
【0194】
対応配列を使用して導出される制約関数値は、単調性制約と連続性制約とのうちの少なくとも一方が満たされる度合いが大きいほど値が小さくなる必要がある。なお、勾配法を使用して学習装置4が数理モデルを学習するために、重み行列又は対応配列に対して制約関数値が微分可能であることが望ましい。また、より高速な学習を可能にするために、制約関数値の導出の並列化が容易であることが望ましい。
【0195】
制約関数値導出部45は、単調性制約関数値と連続性制約関数値とのうちの少なくとも一方を、制約関数値として導出する。
【0196】
<単調性制約関数値>
第2実施形態における単調性制約関数値に関する説明は、第1実施形態における単調性制約関数値に関する説明と同様である。
【0197】
<連続性制約関数値>
第2実施形態における連続性制約関数値に関する説明は、第1実施形態における連続性制約関数値に関する説明と同様である。
【0198】
<更新部46>
更新部46は、目的関数値を目的関数値導出部44から取得する。更新部46は、制約関数値を制約関数値導出部45から取得する。更新部46は、目的関数値と制約関数値とに基づいて学習処理を実行する。更新部46は、所定の外部装置(不図示)に、学習済の数理モデル(学習結果)を出力する。学習処理は、特定の学習処理に限定されない。
【0199】
以上のように、注意機構42は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、第1特徴配列と第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する。復号化部43は、現在の時刻における第2配列の要素に対する第1特徴配列の各要素の重みと、第1特徴配列とに基づいて、現在の時刻における第2配列の要素を導出する。目的関数値導出部44は、正解配列と第2配列とに応じた値である目的関数値を導出する。制約関数値導出部45は、重み行列に基づいて制約関数値を導出する。更新部46は、目的関数値と制約関数値とに基づいて所定の学習処理を実行することによって、第1符号化部40と第2符号化部41と注意機構42と復号化部43とを含む数理モデルのパラメータを更新し、学習結果を生成する。目的関数値は、例えば、正解配列と第2配列との間の差分又は残差平方和である。更新部46は、数理モデルを更新する。
【0200】
学習段階において更新された数理モデルは、実行段階において推論処理の実行に使用される。実行段階において、注意機構32は、第1配列に基づく第1特徴配列と第2配列に基づく第2特徴配列とを用いて、第1特徴配列と第2特徴配列との各要素が対応関係にある確率を表す行列である重み行列を生成する。復号化部33は、第1特徴配列と重み行列とに基づいて、第2配列を導出する。推論部34は、第2配列に基づいて所定の推論処理を実行することによって推論結果を生成する。
【0201】
このように、単調性制約と連続性制約とのうちの少なくとも一方を表す制約関数値を用いて学習された数理モデルを用いて符号化部が特徴配列を導出することによって、有効に働く重み行列を注意機構が生成する。
【0202】
これによって、人手によって設計された特徴表現の使用に依存することなく、音声合成又は音声変換などの応用問題に対して、より複雑な特徴表現を導出及び使用可能であると同時に、単調で連続的な対応関数を導出及び使用可能な配列整列を実現することが可能である。人手によって設計された特徴表現の使用に依存することなく、音声合成又は音声変換などの応用問題に対して、より複雑な特徴表現を実現することが可能である。また、音声合成又は音声変換などの推論精度の向上と学習時間の短縮とを両立させることが可能である。
【0203】
図8は、各実施形態における、推論装置1のハードウェア構成例を示す図である。推論装置1の各機能部のうちの一部又は全部は、CPU(Central Processing Unit)等のプロセッサ100が、不揮発性の記録媒体(非一時的な記録媒体)を有する記憶部200に記憶されたプログラムを実行することにより、ソフトウェアとして実現される。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置などの非一時的な記録媒体である。通信部300は、推論装置1による処理結果を外部装置(不図示)に送信する。通信部300は、通信回線を経由してプログラムを受信してもよい。表示部400は、推論装置1による処理結果を表示する。表示部400は、例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイである。
【0204】
推論装置1の各機能部のうちの一部又は全部は、例えば、LSI(Large Scale Integration circuit)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field Programmable Gate Array)等を用いた電子回路(electronic circuit又はcircuitry)を含むハードウェアを用いて実現されてもよい。なお、推論装置3のハードウェア構成例は、推論装置1のハードウェア構成例と同様である。
【0205】
図9は、各実施形態における、学習装置2のハードウェア構成例を示す図である。学習装置2の各機能部のうちの一部又は全部は、CPU等のプロセッサ101が、不揮発性の記録媒体(非一時的な記録媒体)を有する記憶部201に記憶されたプログラムを実行することにより、ソフトウェアとして実現される。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置などの非一時的な記録媒体である。通信部301は、学習装置2による処理結果を外部装置(不図示)に送信する。通信部301は、通信回線を経由してプログラムを受信してもよい。表示部401は、学習装置2による処理結果を表示する。表示部401は、例えば、液晶ディスプレイ、有機ELディスプレイである。
【0206】
学習装置2の各機能部のうちの一部又は全部は、例えば、LSI、ASIC、PLD又はFPGA等を用いた電子回路(electronic circuit又はcircuitry)を含むハードウェアを用いて実現されてもよい。なお、学習装置4のハードウェア構成例は、学習装置2のハードウェア構成例と同様である。
【0207】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0208】
本発明は、学習装置及び推論装置に適用可能である。
【符号の説明】
【0209】
1…推論装置、2…学習装置、3…推論装置、4…学習装置、10…符号化部、11…注意機構、12…照合部、13…推論部、20…符号化部、21…注意機構、22…目的関数値導出部、23…制約関数値導出部、24…更新部、30…第1符号化部、31…第2符号化部、32…注意機構、33…復号化部、34…推論部、40…第1符号化部、41…第2符号化部、42…注意機構、43…復号化部、44…目的関数値導出部、45…制約関数値導出部、46…更新部、100…プロセッサ、101…プロセッサ、200…記憶部、201…記憶部、300…通信部、301…通信部、400…表示部、401…表示部