(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024142132
(43)【公開日】2024-10-10
(54)【発明の名称】演算方法
(51)【国際特許分類】
G06N 3/0455 20230101AFI20241003BHJP
G10L 15/16 20060101ALN20241003BHJP
【FI】
G06N3/0455
G10L15/16
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023054155
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】ヤルタ ネルソン
(72)【発明者】
【氏名】堀口 翔太
(57)【要約】
【課題】パラメータの数を大幅に増加させることなく精度を向上できる。
【解決手段】演算方法は、直列に接続された同一の構成を有する複数の演算ブロックを有する演算装置が実行する演算方法であって、演算ブロックのそれぞれに、演算ブロックごとに異なる値であるID番号および全ての演算ブロックに共通する値である重みを入力することと、予め定められた数式、ID番号、および重みを用いて演算ブロックごとに異なる演算を行うこととを含む。
【選択図】
図8
【特許請求の範囲】
【請求項1】
直列に接続された同一の構成を有する複数の演算ブロックを有する演算装置が実行する演算方法であって、
前記演算ブロックのそれぞれに、前記演算ブロックごとに異なる値であるID番号および全ての前記演算ブロックに共通する値である重みを入力することと、
予め定められた数式、前記ID番号、および前記重みを用いて前記演算ブロックごとに異なる演算を行うこととを含む演算方法。
【請求項2】
請求項1に記載の演算方法であって、
前記演算ブロックは、エンコーダネットワークを構成する演算方法。
【請求項3】
請求項1に記載の演算方法であって、
前記重みは第1重みと第2重みとを含み、
前記演算ブロックのそれぞれは、マルチヘッドアテンションおよび位置毎符号化を含み、
前記第1重みは前記マルチヘッドアテンションに用いられ、前記第2重みは前記位置毎符号化に用いられる演算方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算方法に関する。
【背景技術】
【0002】
音声処理や自然言語処理、画像処理などを行う機械学習モデルとして、Transformerが知られている。Transformerをベースとして、精度の向上や処理の高速化など様々な試みがなされている。非特許文献1には、Transformerに基づく音声認識のエンコーダネットワークの複数のレイヤに同一の重み係数を用いる構成が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Tatsuya Komatsu, "Non-autoregressive ASR with self-conditionedFolded Encoders", in Proc. IEEE International Conference on Acoustics,Speech and Signal Processing (ICASSP), 2022, pp. 7427-7431
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1に記載されている発明では、表現の精度に改善の余地がある。
【課題を解決するための手段】
【0005】
本発明の第1の態様による演算方法は、直列に接続された同一の構成を有する複数の演算ブロックを有する演算装置が実行する演算方法であって、前記演算ブロックのそれぞれに、前記演算ブロックごとに異なるID番号および全ての前記演算ブロックに共通する値である重みを入力することと、予め定められた数式、前記ID番号、および前記重みを用いて前記演算ブロックごとに異なる演算を行うこととを含む。
【発明の効果】
【0006】
本発明によれば、パラメータの数を大幅に増加させることなく精度を向上できる。
【図面の簡単な説明】
【0007】
【
図9】音声認識システムの動作を示すフローチャート
【発明を実施するための形態】
【0008】
―第1の実施の形態―
以下、
図1~
図7を参照して、音声認識システムの第1の実施の形態を説明する。
【0009】
図1は、本発明に係る音声認識システム1の構成図である。音声認識システム1は、音声入力部14と、音声認識部10と、ユーザインタフェース15とを備える。音声入力部14は、人間の発話などの音声を電気信号に変換し、音声信号111を音声認識部10に出力する。音声認識部10は、音声入力部14から入力される音声信号111を処理して認識テキスト114を生成し、ユーザインタフェース15に認識テキスト114を出力する。ユーザインタフェース15は、音声認識部10から入力された認識テキスト114を任意の他のアプリケーションに入力する。ただし、ユーザインタフェース15は入力された認識テキスト114を表示するだけでもよい。以下では音声認識部10の構成および動作を詳細に説明する。
【0010】
音声認識部10は、ベクトルエンコーダ112と、E2Eモデル130とを備える。ベクトルエンコーダ112には音声信号111が入力される。ベクトルエンコーダ112は、音声信号111の特徴量を算出して音声特徴量113をE2Eモデル130に出力する。E2Eモデル130には音声特徴量113が入力される。E2Eモデル130は、後述する処理を経て認識テキスト114をユーザインタフェース15に出力する。
【0011】
E2Eモデル130は、エンドツーエンド(E2E)の音声認識を行う。E2Eモデル130は、エンコーダネットワーク20と、デコーダネットワーク21と、CTCネットワーク22と、ビームサーチ23とを備える。エンコーダネットワーク20にはベクトルエンコーダ112から音声特徴量113が入力される。エンコーダネットワーク20は、後述する処理を経て時系列埋め込みベクトル201をデコーダネットワーク21およびCTCネットワーク22に出力する。
【0012】
デコーダネットワーク21は、エンコーダネットワーク20から時系列埋め込みベクトル201が入力される。デコーダネットワーク21はビームサーチ23に各トークンの確率を出力する。CTCネットワーク22は、エンコーダネットワーク20から時系列埋め込みベクトル201が入力される。CTCネットワーク22はビームサーチ23に各トークンの確率を出力する。ビームサーチ23は、デコーダネットワーク21およびCTCネットワーク22から各トークンの確率が入力される。ビームサーチ23は認識テキスト114をユーザインタフェース15に出力する。
【0013】
図2は、音声認識システム1のハードウエア構成図である。ただし音声認識システム1は複数のハードウエア装置により実現されてもよく、
図2に示す構成は一例である。音声認識システム1は、「演算装置」とも呼べる。音声認識システム1は、中央演算装置であるCPU41、読み出し専用の記憶装置であるROM42、読み書き可能な記憶装置であるRAM43、音声信号を収集するマイク44、および通信装置45を備える。CPU41がROM42に格納されるプログラムをRAM43に展開して実行することで音声認識部10の機能を実現する。
【0014】
音声認識システム1は、CPU41、ROM42、およびRAM43の組み合わせの代わりに書き換え可能な論理回路であるFPGA(Field Programmable Gate Array)や特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)により実現されてもよい。また音声認識システム1は、CPU41、ROM42、およびRAM43の組み合わせの代わりに、異なる構成の組み合わせ、たとえばCPU41、ROM42、RAM43とFPGAの組み合わせにより実現されてもよい。マイク44は音声入力部14を実現する。通信装置45は、音声認識システム1の外部と通信し、ユーザインタフェース15を実現する。通信装置45による通信は、有線および無線のいずれでもよい。
【0015】
図3は、エンコーダネットワーク20の構成図である。エンコーダネットワーク20は、L個のエンコーダブロック200を含む。それぞれのエンコーダブロック200は「レイヤ」とも呼ばれ、図示上部のエンコーダブロック200は1つ目のレイヤ、図示下部のエンコーダブロック200はN個目のレイヤとも呼べる。それぞれのエンコーダブロック200の構成および動作は同一である。以下では便宜的に、それぞれのエンコーダブロック200の入力および出力を、ブロック入力61およびブロック出力62と呼ぶ。なお以下では、エンコーダブロック200を「演算ブロック」とも呼ぶ。
【0016】
エンコーダブロック200の入出力は原則として次のとおりである。k番目のエンコーダブロック200のブロック入力61は、k-1番目のエンコーダブロックのブロック出力62である。k番目のエンコーダブロック200のブロック出力62は、k+1番目のエンコーダブロック200のブロック入力61である。エンコーダブロック200の入出力の例外は、1番目のエンコーダブロック200のブロック入力61が音声特徴量113である点と、N番目のエンコーダブロック200のブロック出力62がエンコーダネットワーク20の出力である時系列埋め込みベクトル201になる点である。次に、それぞれのエンコーダブロック200の構成を説明する。
【0017】
図4は、エンコーダブロック200の構成図である。エンコーダブロック200は、第1レイヤーノルム411と、マルチヘッドアテンション421と、第1加算器431と、第2レイヤーノルム412と、位置毎符号化部422と、第2加算器433と、ID出力部430と、第1重み出力部441と、第2重み出力部442と、を備える。エンコーダブロック200の処理は、
図3において図示上部から図示下部に向かって進む。エンコーダブロック200の処理が
図4の下端に達すると、次のエンコーダブロック200の処理が開始される。入力から第1加算器431までの前半処理と、第1加算器431の出力より後の後半処理とに分かれる。前半処理と後半処理は類似しており、大きな違いは第1重み401および第2重み402のいずれが用いられるかである。
【0018】
第1レイヤーノルム411には、ブロック入力61が入力され、第1出力451を出力する。マルチヘッドアテンション421には、第1レイヤーノルム411から第1出力451が入力され、第1重み出力部441から第1重み401が入力され、ID出力部430からID405が入力される。マルチヘッドアテンション421は、後述する演算により第2出力452を出力する。第1加算器431は、ブロック入力61と第2出力452との和である第3出力453を出力する。
【0019】
第2レイヤーノルム412には、第3出力453が入力され、第4出力454を出力する。位置毎符号化部422には、第2レイヤーノルム412から第4出力454が入力され、第2重み出力部442から第2重み402が入力され、ID出力部430からID405が入力される。位置毎符号化部422は、後述する演算により第5出力455を出力する。第2加算器432は、第3出力453と第5出力455との和であるブロック出力62を出力する。
【0020】
第1重み出力部441は、第1重み401をマルチヘッドアテンション421に出力する。第2重み出力部442は第2重み402を位置毎符号化部422に出力する。第1重み401および第2重み402は、いずれも長さKの一次元配列である。なお、このスカラー値Kは、後述するスカラー値であるsとtの積である。第1重み401および第2重み402の値は、事前に行われる学習処理により決定される。以下に示す数式では、第1重み401をpで表し、第2重み402をqで表す。
【0021】
ID出力部430は、ID405をマルチヘッドアテンション421および位置毎符号化部422に出力する。ID405は、レイヤの番号である。たとえばID出力部430を含むエンコーダブロック200がエンコーダネットワーク20のk番目のレイヤである場合に、ID出力部430は数値「k」を出力する。ID出力部430の出力は、マルチヘッドアテンション421および位置毎符号化部422のいずれに対しても同一である。
【0022】
図5は、マルチヘッドアテンション421の構成図である。マルチヘッドアテンション421は、複数のヘッド4210と、連結部4213と、線形変換部500とを備える。本実施の形態における線形変換部500は他の構成よりも抽象度が高い。たとえば
図6以降にも線形変換部500は記載されるが、
図5とは入出力が異なる。線形変換部500の構成および動作は後述する。
【0023】
それぞれのヘッド4210の出力は、連結部4213に入力される。連結部4213の出力は線形変換部500に入力される。
図5における線形変換部500の出力は、マルチヘッドアテンション421の出力である第2出力452である。それぞれのヘッド4210および線形変換部500には、ID出力部430からID405が入力され、第1重み出力部441から第1重み401が入力される。マルチヘッドアテンション421の処理は次の式で表される。
【0024】
【0025】
図6は、ヘッド4210の構成図である。ヘッド4210は、3つの線形変換部500と、アテンションブロック4215とを備える。線形変換部500には、ID出力部430からID405が入力され、第1重み出力部441から第1重み401が入力される。ヘッド4210の処理は次の式で表される。
【0026】
【0027】
図7は、位置毎符号化部422の構成図である。位置毎符号化部422は、2つの線形変換部500を備える。線形変換部500には、ID出力部430からID405が入力され、第2重み出力部442から第2重み402が入力される。
【0028】
図8は、線形変換部500の構成図である。ここでは、線形変換部500への入力をx、線形変換部500の出力をzとおく。線形変換部500には、ID405および第1重み401またはID405および第2重み402が入力される。
図8では線形変換部500に第1重み401および第2重み402の両方が入力されるようにも記載されるが、1つの線形変換部500には第1重み401および第2重み402のいずれか一方しか入力されない。ID405はID出力部430から入力され、第1重み401は第1重み出力部441から入力され、第2重み402は第2重み出力部442から入力される。以下では、第1重み401および第2重み402をまとめて「重み」400と呼ぶ。
【0029】
線形変換部500は、拡張部510aと、重み決定部530aと、プロジェクション520aとを備える。拡張部510aは、ID405を用いて算出関数4211を重み決定部530aに出力する。算出関数4211はf(d;ln)で表される。lnはn番目のエンコーダに対応する学習可能なスカラーパラメータであり、線形変換ごとに異なる値をとってもよい。関数fは特に限定されないが、たとえば次のような関数を用いることができる。dおよびDについては後述する。
【0030】
【0031】
【0032】
【0033】
重み決定部530aは、重み400および算出関数4211を用いて重み行列4212をプロジェクション520に出力する。重み行列4212はs行t列の行列であり、重み行列4212のi行j列の要素は次のように算出できる。s行t列の二次元配列に含まれる全要素を順番に並べると、i行j列の要素は先頭から(it+j)番目になる。この値を上述した数式では変数dで表していた。すなわちd=it+jである。またDはsとtの積である。
【0034】
【0035】
この式6は、重み400の(it+j)番目の要素の値pit+jにf(k;ln)を掛け合わせることを示している。重み決定部530は、重み行列4212の全要素を対象として式6の演算を繰り返す。換言すると、重み決定部530は変数kを1からKまで変化させて式6の演算を繰り返す。重み決定部530は、重み行列4212の全要素の算出が完了すると、n番目のレイヤ用の重み行列4212をプロジェクション520に出力する。プロジェクション520は、ベクトルである入力xと重み行列4212の積を算出してベクトルである出力zを得る。線形変換部500への入力であるxと、線形変換部500の出力であるzとの関係は次の式7のように表される。
【0036】
z=Wnx ・・・(式7)
【0037】
式2には多数の線形変換が含まれ、この線形変換のそれぞれにおいて
図8で説明した処理が行われる。式2は、線形変換を「h+1」含む。すなわち第1重み401および第2重み402は、「h+1」個設けられる。この重みの数は、エンコーダネットワーク20に含まれるエンコーダブロック200の個数Lに関わらず一定である。なぜならば、式3~式5に示したように、レイヤの番号l
nに応じて重みの値が変更されるからである。それぞれの第1重み401および第2重み402は、事前の学習によりそれぞれの値が決定される。
【0038】
図9は、音声認識システム1の動作を示すフローチャートである。ステップS801において音声認識システム1の音声入力部14は、発話の音声を取得し、音声信号111に変換して音声認識部10に出力する。続くステップS802では、音声認識部10のベクトルエンコーダ112が音声特徴量113を生成してE2Eモデル130に出力する。続くステップS803では、E2Eモデル130のエンコーダネットワーク20が、学習済みのパラメータである第1重み401および第2重み402を用いて、音声特徴量113の隠れた特徴である時系列埋め込みベクトル201を算出する。
【0039】
続くステップS804では、E2Eモデル130は、デコーダネットワーク21、CTCネットワーク22、およびビームサーチ23を用いて認識テキスト114を出力する。続くステップS805では音声認識システム1は、ユーザインタフェース15を用いて認識テキスト114を出力する。
【0040】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)音声認識システム1が実行する演算方法は、L個のエンコーダブロック200のそれぞれに、エンコーダブロック200ごとに異なる値であるID番号405および全ての演算ブロックに共通する値である重み400を入力することと、式3~式5に示す予め定められた数式、ID番号405、および重み400を用いてエンコーダブロック200ごとに異なる演算を行うこととを含む。そのため、パラメータの数を大幅に増加させることなく精度を向上できる。
【0041】
(2)エンコーダブロック200は、エンコーダネットワーク20を構成する。
【0042】
(3)重み400は、第1重み401と第2重み402とを含む。エンコーダブロック200のそれぞれは、マルチヘッドアテンション421および位置毎符号化部422を含む。第1重み401はマルチヘッドアテンション421に用いられ、第2重み402は位置毎符号化に用いられる。
【0043】
(変形例1)
上述した第1の実施の形態における線形変換ではバイアス項を含まなかった。しかし線形変換にバイアス項が含まれてもよい。
【0044】
図10は、変形例1における線形変換部500の構成図である。線形変換がバイアス項を含む場合には、第1重み401および第2重み402のそれぞれは、長さKの一次元配列と、長さsの一次元配列の組み合わせとなる。たとえば第1重み401は、長さKの一次元配列pと、長さsの一次元配列bの組み合わせである。この場合に、一次元配列pは第1の実施の形態と同様に利用され、一次元配列bは次のように利用される。
【0045】
まず、第2拡張部512において、ID405を用いて算出関数g(d;l’n)を出力する。l’nはn番目のエンコーダに対応する学習可能なスカラーパラメータであり、線形変換ごとに異なる値をとってもよい。関数gはたとえば前述の数式3~5と同様に定義される。そして第2重み決定部532は、一次元配列bと第2拡張部512が出力する算出関数g(d;l’n)とを用いてたとえば次の数式8のようにbnを算出する。
【0046】
【0047】
この式8は、重みのi番目の要素qiにg(d;l’n)をかけ合わせることを示している。なお前述のように一次元配列bnの長さはsである。本変形例におけるプロジェクション520は、次のように出力zを算出する。
【0048】
z=Wnx+bn ・・・(式9)
【0049】
(変形例2)
上述した第1の実施の形態では、算出関数4211はf(k;ln)として表された。しかし、他の形式、たとえばf(k;ln、φn)で表されてもよい。たとえば次の式10のように表されてもよい。
【0050】
【0051】
なお式10においてφnは位相を表すスカラーパラメータであり、lnと同様に学習可能なパラメータである。
【0052】
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
【0053】
上述した各実施の形態および変形例において、プログラムはROM42に格納されるとしたが、プログラムは不図示の不揮発性記憶装置に格納されていてもよい。また、音声認識システム1が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと音声認識システム1が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
【0054】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明では音声認識を例にとって説明したが、多層Transformerを用いる別のアプリケーション、例えば自然言語処理や画像処理などに適用することもできる。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0055】
1 :音声認識システム
10 :音声認識部
20 :エンコーダネットワーク
21 :デコーダネットワーク
22 :CTCネットワーク
23 :ビームサーチ
61 :ブロック入力
62 :ブロック出力
111 :音声信号
112 :ベクトルエンコーダ
113 :音声特徴量
114 :認識テキスト
130 :E2Eモデル
200 :エンコーダブロック
401 :第1重み
402 :第2重み
411 :第1レイヤーノルム
412 :第2レイヤーノルム
421 :第1マルチヘッドアテンション
422 :第2マルチヘッドアテンション
430 :ID出力部
431 :第1加算器
432 :第2加算器
433 :第2加算器
510 :拡張部
512 :第2拡張部
520 :プロジェクション
530 :重み決定部
532 :第2重み決定部
4211 :算出関数
4212 :重み行列