(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024010859
(43)【公開日】2024-01-25
(54)【発明の名称】変換装置およびプログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20240118BHJP
G06N 20/00 20190101ALI20240118BHJP
G06V 40/20 20220101ALI20240118BHJP
G06V 10/82 20220101ALI20240118BHJP
G06V 10/774 20220101ALI20240118BHJP
G09B 21/00 20060101ALI20240118BHJP
G09B 21/04 20060101ALI20240118BHJP
【FI】
G06N3/08
G06N20/00 130
G06V40/20
G06V10/82
G06V10/774
G09B21/00 Z
G09B21/04
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022112408
(22)【出願日】2022-07-13
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【弁理士】
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【弁理士】
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】梶山 岳士
(72)【発明者】
【氏名】遠藤 伶
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA08
5L096CA04
5L096DA02
5L096DA04
5L096FA02
5L096GA51
5L096HA11
5L096KA04
5L096KA15
(57)【要約】
【課題】映像を単語列に変換する変換装置において、負例(不正解の単語列)による機械学習も可能とする。
【解決手段】第1エンコーダー部は、映像特徴量を基にニューラルネットワークによる計算を行うことによって、状態ベクトルを求めて出力する。第2エンコーダー部は、与えられる単語列を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する。学習用データ供給部は、映像と当該映像に対応する正解語列との対を学習用に供給する。負例データ生成部は、学習用データ供給部が供給する前記正解語列に基づいて不正解語列を生成する。ロス算出部は、正解誤差と不正解誤差を算出する。制御部は、正解誤差と不正解誤差との両方に基づいて少なくとも第1エンコーダー部のニューラルネットワークの誤差逆伝播による学習を行うように制御する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
映像特徴量を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第1エンコーダー部と、
前記第1エンコーダー部が出力する前記状態ベクトルを基にニューラルネットワークによる計算を行うことによって、単語列を推定して出力するデコーダー部と、
与えられる単語列を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第2エンコーダー部と、
映像と当該映像に対応する正解語列との対を学習用に供給する学習用データ供給部と、
前記学習用データ供給部が供給する前記正解語列に基づいて不正解語列を生成する負例データ生成部と、
(1)前記学習用データ供給部が供給する前記映像の映像特徴量を基に前記第1エンコーダー部が出力する第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である正解誤差を求めるとともに、(2)前記第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列に基づいて前記負例データ生成部が生成した不正解語列、を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である不正解誤差を求める、ロス算出部と、
前記正解誤差と前記不正解誤差との両方に基づいて少なくとも前記第1エンコーダー部のニューラルネットワークの誤差逆伝播による学習を行うように制御する制御部と、
を備える変換装置。
【請求項2】
前記ロス算出部は、求めた前記正解誤差と前記不正解誤差との両方に基づく誤差である合成誤差を求め、
前記制御部は、前記合成誤差に基づいて少なくとも前記第1エンコーダー部のニューラルネットワークの誤差逆伝播による学習を行うように制御するものであり、
前記正解誤差の値が大きい程、前記合成誤差の値は大きく、
前記不正解誤差の値が大きい程、前記合成誤差の値は小さい、
請求項1に記載の変換装置。
【請求項3】
前記合成誤差は、前記ロス算出部が式(1)によって求めるL
tripletである、
【数1】
(ただし、式(1)において、
d
positiveは、前記正解誤差であり、
d
negativeは、前記不正解誤差であり、
αは、適宜定められる値である)
請求項2に記載の変換装置。
【請求項4】
前記制御部は、前記正解誤差の値が所定の閾値より大きい場合には前記正解誤差に基づいて前記第1エンコーダー部のニューラルネットワークの誤差逆伝播を行うように制御し、前記正解誤差の値が前記閾値以下である場合には前記合成誤差に基づいて前記第1エンコーダー部のニューラルネットワークの誤差逆伝播を行うように制御するものである、
請求項2に記載の変換装置。
【請求項5】
映像特徴量を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第1エンコーダー部と、
前記第1エンコーダー部が出力する前記状態ベクトルを基にニューラルネットワークによる計算を行うことによって、単語列を推定して出力するデコーダー部と、
与えられる単語列を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第2エンコーダー部と、
映像と当該映像に対応する正解語列との対を学習用に供給する学習用データ供給部と、
前記学習用データ供給部が供給する前記正解語列に基づいて不正解語列を生成する負例データ生成部と、
(1)前記学習用データ供給部が供給する前記映像の映像特徴量を基に前記第1エンコーダー部が出力する第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である正解誤差を求めるとともに、(2)前記第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列に基づいて前記負例データ生成部が生成した不正解語列、を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である不正解誤差を求める、ロス算出部と、
前記正解誤差と前記不正解誤差との両方に基づいて少なくとも前記第1エンコーダー部のニューラルネットワークの誤差逆伝播による学習を行うように制御する制御部と、
を備える変換装置、としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変換装置およびプログラムに関する。
【背景技術】
【0002】
手話を撮影した映像を基に発話内容を自動認識する技術が研究されている。このような技術は、聴覚障害者と健聴者の間のコミュニケーションを補助する技術として期待されている。
【0003】
特許文献1には、手話映像の自動認識を行うための構成が記載されている。特許文献1に記載された装置は、映像を基に記号列を生成する。生成される記号列は、手話単語列である。特許文献1に記載されている技術では、ニューラルネットワークを用いて手話映像の自動認識を行っている。ここでは、ニューラルネットワークの学習効率を上げるために誤差逆伝播の経路長を短くする工夫が導入されている。具体的には下記の通りである。
【0004】
手話映像を自動的に認識するためのしくみとして、エンコーダーとデコーダーとを直列に接続した構成が用いられる。エンコーダーおよびデコーダーは、それぞれ、ニューラルネットワークを用いて実現される。エンコーダーは、入力映像(手話映像)の特徴量を入力し、状態ベクトルを出力する。デコーダーは、上記エンコーダーから出力される状態ベクトルを入力し、推定語列(手話単語列、記号列、ラベル列)を出力する。この構成において学習を行う場合には、学習用データ(入力映像と正解語列との対)に基づいて、入力映像から得られた推定語列と正解語列との間の誤差(ロス)に基づいて、デコーダーおよびエンコーダーの経路での誤差逆伝播を行う。これにより、エンコーダーおよびデコーダーがそれぞれ持つニューラルネットワークの内部パラメーターが最適化される。
【0005】
前記の特許文献1に記載されている技術では、上記の構成(エンコーダーとデコーダーとを直列に接続した構成)での学習に加えて、別のしくみでの学習を導入している。特許文献1に記載されている技術では、上記のエンコーダー(入力映像の特徴量を基に状態ベクトルを出力するエンコーダー。便宜的に「第1エンコーダー」と呼ぶ。)とは別に、第2エンコーダーを設けている。第2エンコーダーは、正解単語列(手話単語列、記号列、ラベル列)を基に状態ベクトルを求めるニューラルネットワークを備えている。そして、第1エンコーダーから出力される状態ベクトルと第2エンコーダーから出力される状態ベクトルとの間の誤差(ロス)を算出し、その誤差に基づいて誤差逆伝播を行い、第1エンコーダーおよび第2エンコーダーの両方の学習を行う。
【0006】
つまり、特許文献1の技術では、基本的な構成(エンコーダーとデコーダーとを直列に接続した構成)での学習に加えて、第1エンコーダーからの出力と第2エンコーダーからの出力との間での誤差に基づく学習を行っている。つまり、特許文献1の技術では、より経路の短い誤差逆伝播を導入している。このように特許文献1の技術では、経路の短い伝播を行うことにより、勾配損失の影響を抑制したエンコーダーの学習を可能としている。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来技術には次のような問題がある。即ち、特許文献1に示される装置では、第2エンコーダー(特許文献1の手法において追加的に設けているエンコーダー。特許文献1の実施形態に記載された「第2エンコーダー部60」。)への入力は、常に正例(正解データ)の単語列のみである。このため、特許文献1の技術では、負例(不正解データ)による第1エンコーダー(映像特徴量を入力して状態ベクトルを出力するエンコーダー。特許文献1の実施形態に記載された「エンコーダー部20」)の学習を行えないという問題がある。
【0009】
本発明は、上記の課題認識に基づいて行なわれたものであり、特許文献1に記載された構成を有する変換装置において、負例(不正解の単語列)による学習も可能とする変換装置およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【0010】
[1]上記の課題を解決するため、本発明の一態様による変換装置は、映像特徴量を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第1エンコーダー部と、前記第1エンコーダー部が出力する前記状態ベクトルを基にニューラルネットワークによる計算を行うことによって、単語列を推定して出力するデコーダー部と、与えられる単語列を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第2エンコーダー部と、映像と当該映像に対応する正解語列との対を学習用に供給する学習用データ供給部と、前記学習用データ供給部が供給する前記正解語列に基づいて不正解語列を生成する負例データ生成部と、(1)前記学習用データ供給部が供給する前記映像の映像特徴量を基に前記第1エンコーダー部が出力する第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である正解誤差を求めるとともに、(2)前記第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列に基づいて前記負例データ生成部が生成した不正解語列、を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である不正解誤差を求める、ロス算出部と、前記正解誤差と前記不正解誤差との両方に基づいて少なくとも前記第1エンコーダー部のニューラルネットワークの誤差逆伝播による学習を行うように制御する制御部と、を備える。
【0011】
上記[1]の構成によると、負例データ生成部は、不正解語列を自動的に生成する。ロス算出部は、正解語列に基づく正解誤差だけではなく、不正解語列に基づく不正解誤差を算出する。そして、制御部は、正解誤差と不正解誤差との両方に基づいて第1エンコーダー部のニューラルネットワークの学習を行う。つまり、第1エンコーダー部の学習を、不正解語列に基づいて行える。なお、この第1エンコーダー部のニューラルネットワークの学習を行う際に、同じ誤差に基づいて第2エンコーダー部のニューラルネットワークの学習を行うようにしてもよい。そして、学習後の第1エンコーダー部が出力する状態ベクトルに基づいて、デコーダー部が、単語列を推定することができる。
【0012】
[2]また、本発明の一態様は、上記[1]の変換装置において、前記ロス算出部は、求めた前記正解誤差と前記不正解誤差との両方に基づく誤差である合成誤差を求め、前記制御部は、前記合成誤差に基づいて少なくとも前記第1エンコーダー部のニューラルネットワークの誤差逆伝播による学習を行うように制御するものであり、前記正解誤差の値が大きい程、前記合成誤差の値は大きく、前記不正解誤差の値が大きい程、前記合成誤差の値は小さい、としたものである。
【0013】
上記[2]の構成によると、正解誤差の値が大きい程、合成誤差の値は大きい。また、不正解誤差の値が大きい程、合成誤差の値は小さい。このような合成誤差に基づいて第1エンコーダー部のニューラルネットワークの学習を行うことにより、学習後の第1エンコーダー部が出力する状態ベクトルは、正解誤差に対応する情報により近づき、不正解誤差に対応する情報からはより遠ざかる。
【0014】
[3]また、本発明の一態様として、上記[2]の変換装置において、前記合成誤差は、前記ロス算出部が下記の式(1)によって求めるLtripletである(ただし、式(1)において、dpositiveは、前記正解誤差であり、dnegativeは、前記不正解誤差であり、αは、適宜定められる値である)。
【0015】
上記[3]の構成において、トリプレット誤差Ltripletは、前記合成誤差の具体的な一例である。
【0016】
[4]また、本発明の一態様は、上記[2]または[3]の変換装置において、前記制御部は、前記正解誤差の値が所定の閾値より大きい場合には前記正解誤差に基づいて前記第1エンコーダー部のニューラルネットワークの誤差逆伝播を行うように制御し、前記正解誤差の値が前記閾値以下である場合には前記合成誤差に基づいて前記第1エンコーダー部のニューラルネットワークの誤差逆伝播を行うように制御するものである。
【0017】
上記[4]の構成によると、正解誤差が閾値より大きい段階においては正解誤差がより小さくなる方向だけに集中して第1エンコーダー部のニューラルネットワークの学習を行うことができる。且つ、正解誤差がその閾値以下となった段階においては、正解誤差がより小さくなり且つ不正解誤差がより大きくなることが両立する方向に、第1エンコーダー部のニューラルネットワークの学習を行うことができる。
【0018】
[5]また、本発明の一態様は、映像特徴量を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第1エンコーダー部と、前記第1エンコーダー部が出力する前記状態ベクトルを基にニューラルネットワークによる計算を行うことによって、単語列を推定して出力するデコーダー部と、与えられる単語列を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する第2エンコーダー部と、映像と当該映像に対応する正解語列との対を学習用に供給する学習用データ供給部と、前記学習用データ供給部が供給する前記正解語列に基づいて不正解語列を生成する負例データ生成部と、(1)前記学習用データ供給部が供給する前記映像の映像特徴量を基に前記第1エンコーダー部が出力する第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である正解誤差を求めるとともに、(2)前記第1の状態ベクトルと、前記学習用データ供給部が供給する前記正解語列に基づいて前記負例データ生成部が生成した不正解語列、を基に前記第2エンコーダー部が出力する第2の状態ベクトルと、の間の誤差である不正解誤差を求める、ロス算出部と、前記正解誤差と前記不正解誤差との両方に基づいて少なくとも前記第1エンコーダー部のニューラルネットワークの誤差逆伝播による学習を行うように制御する制御部と、を備える変換装置、としてコンピューターを機能させるためのプログラムである。
【発明の効果】
【0019】
本発明によれば、正解語列に基づく正解誤差だけではなく、不正解語列に基づく不正解誤差も用いて、第1エンコーダー部の学習を行うことができる。つまり、本発明によれば、負例も用いた学習により、第1エンコーダー部の精度を高めることが可能となる。
【図面の簡単な説明】
【0020】
【
図1】本発明の実施形態による変換装置の概略機能構成を示すブロック図である。
【
図2】同実施形態における、第1エンコーダー部および第2エンコーダー部と、それらの入出力データの概略を示すブロック図である。
【
図3】同実施形態による変換装置が、学習モードにおいて第1パターンによる学習を行う際の処理手順を示すフローチャートである。
【
図4】同実施形態による変換装置が、学習モードにおいて第2パターンによる学習を行う際の処理手順を示すフローチャートである。
【
図5】同実施形態による変換装置が、変換実行モードで稼働する場合の処理手順を示すフローチャートである。
【
図6】同実施形態による変換装置の内部構成の例を示すブロック図である。
【発明を実施するための形態】
【0021】
次に、本発明の一実施形態について、図面を参照しながら説明する。本実施形態は、前記の特許文献1に記載された変換装置をさらに改善するものである。具体的には、本実施形態では、映像を基に状態ベクトルを生成するエンコーダーの学習効果を改善する。そのために、本実施形態の変換装置は、学習用データが持つ正例(正解の単語列)を基に負例(不正解の単語列)を生成する機能を有する。
【0022】
本実施形態は、供給される正例だけではなく、変換装置が生成した負例をも用いて、エンコーダーの学習を行う。具体的には、本実施形態では、下の式(1)によって算出されるトリプレットロス(トリプレット誤差)Ltripletに基づいたニューラルネットワークの学習を行う。
【0023】
【0024】
式(1)において、dpositiveは、ニューラルネットワークからの出力(その時点における推定値)と正例との間の距離である。また、dnegativeは、ニューラルネットワークからの出力(その時点における推定値)と負例との間の距離である。αは、ハイパーパラメーターである。αは「マージン」とも呼ばれる。αの値は、適宜与えられる。αを、非負値としてよい。また、αの値を可変として機械学習によって求めるようにしてもよい。また、maxは、実引数のうちの最大値を返す最大値関数である。
【0025】
つまり、式(1)で算出されるトリプレットロスLtripletは、ニューラルネットワークからの出力が、正例により近くなり且つ負例からはより遠ざかるような学習作用をもたらす誤差(ロス、損失)である。
【0026】
本実施形態の変換装置は、dnegativeを計算するために、擬似的な負例のデータを自動的に生成する。本実施形態は、これにより、エンコーダーの学習改善を図る。
【0027】
図1は、本実施形態による変換装置の概略機能構成を示すブロック図である。図示するように、変換装置1は、入力部10と、第1エンコーダー部20と、デコーダー部30と、出力部40と、第1ロス算出部50と、第2エンコーダー部60と、第2ロス算出部70と、学習用データ供給部80と、制御部90と、負例データ生成部110とを含んで構成される。 これらの各機能部は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0028】
上記構成を有する変換装置1は、手話の動作を含む映像を入力し、その映像に映された手話の動作に対応する単語列の情報を出力する。変換装置1が出力する単語列とは、単語に相当する手話動作(手話動作は、手話ラベル(手話単語、グロス)に対応する)を表す記号の列である。つまり、変換装置1は、手話の映像を単語列に変換する。
【0029】
変換装置1は、内部に機械学習可能なモデルを含んで構成される。機械学習可能なモデルは、例えば、ニューラルネットワークである。変換装置1は、学習モードあるいは変換実行モードのいずれかのモードで動作する。学習モードにおいては、変換装置1は、学習用データに基づいて上記モデルの学習を行う。具体的には、変換装置1は、モデルの内部パラメーターの最適化を行う。例えばニューラルネットワークを用いてモデルが構成される場合には、内部パラメーターの最適化を行う手法として、誤差逆伝播等の手法を利用することができる。変換実行モードにおいては、変換装置1は、学習済みのモデルに基づいて、未知の入力映像を基に、その映像に対応する単語列を求め(推測し)、得られた単語列を出力する。
【0030】
変換装置1が学習モードで稼働する場合には、第1パターンによる学習と第2パターンによる学習とを併用する。第1パターンによる学習とは、正例の学習用データのみを用いて、エンコーダー(下記の第1エンコーダー部20)とデコーダー(下記のデコーダー部30)との学習を行うものである。第2パターンによる学習とは、正例および負例の学習用データを併用して、第1エンコーダー(下記の第1エンコーダー部20)と第2エンコーダー(下記の第2エンコーダー部60)との学習を行うものである。第2パターンによる学習においては、デコーダーの学習は行われない。なお、第2パターンの学習においても、負例の学習用データを用いた学習が効果的ではないと考えられる状況においては、正例の学習用データのみに基づいて、第1エンコーダーと第2エンコーダーとの学習が行われる。第1パターンおよび第2パターンのそれぞれの学習の手順については、後でフローチャートを参照しながら説明する。
【0031】
一例として、変換装置1は、モデルの学習を行う際に、第1パターンによる学習と第2パターンによる学習とを交互に行うようにしてもよい。あるいは、変換装置1は、第1パターンによる学習を複数回行った後で、第2パターンによる学習を複数回行い、以後はこれを繰り返すようにしてもよい。
【0032】
変換装置1を構成する各部の機能は、次の通りである。
【0033】
入力部10は、変換対象の入力映像を外部から取得して第1エンコーダー部20に渡す。変換装置1が変換実行モードで稼働する場合に、入力部10が入力映像を外部から取得する。
【0034】
第1エンコーダー部20は、入力部10あるいは学習用データ供給部80から渡される映像を基に、その映像の意味を抽出し、抽出された意味の情報を含んだ状態ベクトルを出力する。つまり、状態ベクトルは、意味を表現する意味表現データである。つまり、第1エンコーダー部20は、映像特徴量を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する。変換装置1が変換実行モードで稼働する場合には、第1エンコーダー部20は、出力する状態ベクトルをデコーダー部30に渡す。変換装置1が学習モードで稼働する場合には、第1パターンの学習においては、第1エンコーダー部20は出力する状態ベクトルをデコーダー部30に渡す。第2パターンの学習においては、第1エンコーダー部20は、出力する状態ベクトルを第2ロス算出部70に渡す。
【0035】
第1エンコーダー部20は、内部にニューラルネットワークを含むように構成される。第1エンコーダー部20が持つニューラルネットワークは、機械学習可能である。第1エンコーダー部20は、一例として、RNN(Recurrent Neural Network、再帰型ニューラルネットワーク)を用いて実現され得る。
【0036】
なお、第1エンコーダー部20が持つRNNには、入力映像(フレーム画像の系列)が直接入力されるわけではない。第1エンコーダー部20が持つRNNには、CNN(Convolutioanl Neural Network,畳み込みニューラルネットワーク)を用いて抽出したフレーム画像の画像特徴量が入力されるようにする。
【0037】
デコーダー部30は、第1エンコーダー部20が出力した状態ベクトルを基に、単語列を算出し、出力する。デコーダー部30が出力する単語列は、各々の単語に対応するベクトルの列である。変換装置1が変換実行モードで稼働する場合には、デコーダー部30は、出力する単語列を出力部40に渡す。変換装置1が学習モード(第1パターンの学習)で稼働する場合には、デコーダー部30は、出力する単語列を第1ロス算出部50に渡す。デコーダー部30もまた、第1エンコーダー部20と同様に、内部にニューラルネットワークを含むように構成される。デコーダー部30は、一例として、RNNを用いて実現され得る。つまり、デコーダー部30は、第1エンコーダー部20が出力する状態ベクトルを基にニューラルネットワークによる計算を行うことによって、単語列を推定して出力する。
【0038】
出力部40は、デコーダー部30から単語列を渡される場合に、その単語列を外部に出力する。つまり、変換装置1が変換実行モードで稼働する場合に、出力部40は、入力映像に対応する単語列(入力映像の認識結果である推定語列)を、外部に出力する。
【0039】
第1ロス算出部50は、ニューラルネットワークの学習のためのロス(損失、誤差)を算出する。具体的には、第1ロス算出部50は、第1パターンの学習において、デコーダー部30が出力する単語列と、学習用データ供給部80から供給される正解語列と、の間のロスを算出する。第1ロス算出部50が算出したロスは、デコーダー部30および第1エンコーダー部20がそれぞれ持つニューラルネットワークの誤差逆伝播にために用いられる。
【0040】
第2エンコーダー部60は、学習用データ供給部80が供給する語列を基に、その語列の意味を抽出し、その結果として状態ベクトルを出力する。学習用データ供給部80が供給する語列のデータは、正解語列である場合と不正解語列である場合とがある。正解語列を基に第2エンコーダー部60が算出した状態ベクトルは、前記の式(1)におけるdpositiveを求めるために用いられる。不正解語列を基に第2エンコーダー部60が算出した状態ベクトルは、前記の式(1)におけるdnegativeを求めるために用いられる。第2エンコーダー部60もまた、第1エンコーダー部20と同様に、内部にニューラルネットワークを含むように構成される。第2エンコーダー部60は、一例として、RNNを用いて実現され得る。つまり、第2エンコーダー部60は、学習用データ供給部80から与えられる単語列を基にニューラルネットワークによる計算を行うことによって、意味情報を表す状態ベクトルを求めて出力する。
【0041】
第2ロス算出部70は、ニューラルネットワークの誤差逆伝播を行うためのロスを算出する。具体的には、第2ロス算出部70は、第2パターンの学習のためのロスを算出する。つまり、第2ロス算出部70は、第1エンコーダー部20が出力した状態ベクトルと第2エンコーダー部60が出力した状態ベクトルとの間のロスを求める。また、第2ロス算出部70は、正解語列に基づいて求められたdpositiveと、不正解語列に基づいて求められたdnegativeとを用いて、前記の式(1)により、トリプレットロスLtripletを算出する。なお、第2ロス算出部70を単に「ロス算出部」と呼んでもよい。
【0042】
つまり、第2ロス算出部70は、学習用データ供給部80が供給する映像(学習用データ)の映像特徴量を基に第1エンコーダー部20が出力する第1の状態ベクトルと、学習用データ供給部80が供給する正解語列(学習用データ)を基に第2エンコーダー部60が出力する第2の状態ベクトルと、の間の誤差である正解誤差(dpositive)を求める。また、第2ロス算出部70は、前記第1の状態ベクトルと、学習用データ供給部80が供給する正解語列に基づいて負例データ生成部110が生成する不正解語列、を基に第2エンコーダー部60が出力する第2の状態ベクトルと、の間の誤差である不正解誤差(dnegative)を求める。
【0043】
また、第2ロス算出部70は、求めた正解誤差と不正解誤差との両方に基づく誤差である合成誤差を求める。なお、合成誤差は、次のようなものである。正解誤差の値が大きい程、合成誤差の値は大きい。また、不正解誤差の値が大きい程、合成誤差の値は小さい。合成誤差の一例は、第2ロス算出部70が、前記の式(1)によって求めるトリプレット誤差Ltripletである。
【0044】
学習用データ供給部80は、変換装置1が機械学習を行うための学習用データを供給する。学習用データ供給部80は、入力映像と正解語列の対を1件の正例の学習用データとして供給する。また、学習用データ供給部80は、上記の正解語列に基づいて、負例データ生成部110に不正解語列を生成するよう指示する。学習用データ供給部80は、入力映像とその不正解語列の対を、上記正例の学習用データに対応する1件の負例の学習用データとして供給する。このように、学習用データ供給部80が、1つの入力映像に関して、正例の学習用データ(正解語列)と負例の学習用データ(不正解語列)の両方を供給するため、第2ロス算出部70は、上記のdpositiveとdnegativeとに基づいてトリプレットロスLtripletを算出することが可能となる。つまり、学習用データ供給部80は、少なくとも映像と当該映像に対応する正解語列との対を、学習用に供給するものである。
【0045】
なお、学習用データ供給部80が供給する不正解語列のデータは、正解語列に基づいて機械的に生成される擬似的な負例である。この不正解語列を「不完全正解語列」と呼んでもよい。
【0046】
負例データ生成部110は、学習用データ供給部80からの指示に基づき負例データを生成する。具体的には、負例データ生成部110は、学習用データ供給部80から渡される正解語列を基に不正解語列を生成し、その不正解語列を負例データとして学習用データ供給部80に返す。
【0047】
負例データ生成部110による処理方法の一例は、次の通りである。負例データ生成部110は、学習用データ供給部80から正解語列を受け取る。この正解語列は、Word1-・・・-WordUと表わされ得る。つまり、正解語列は、U個の単語の列である。Word1からWordUまでの各々の単語は、手話ラベル(記号)である。負例データ生成部110は、上記の正解語列を構成するU個の単語のうちの任意のm個の単語を、それぞれ他の単語に置き換えることによって、不正解語列を生成する。なお、1≦m≦Uである。mの値を、1または2等としてもよいし、1≦m≦Uの範囲内でランダムに選択された値としてもよい。また、m個の単語を置き換える際の置き換え後の単語は、例えば、ランダムに選択された単語であってよい。あるいは、置き換え後の単語を、置き換え前の単語と類似の文法的性質を持つ単語に限定してもよい。
【0048】
制御部90は、変換装置1全体の動作を制御する。具体的には、制御部90は、変換装置1が、学習モードで稼働するか変換実行モードで稼働するかを制御する。制御部90は、その時点での稼働モードに依存した動作を行うように各機能部を制御する。また、制御部90は、変換装置1が学習モードで稼働する際に、第1パターンによる学習を行うか第2パターンによる学習を行うかを制御する。
【0049】
また、制御部90は、変換装置1による機械学習の手順を具体的に制御する。
【0050】
つまり、第1パターンの学習を行う場合には、制御部90は、学習用データに含まれる映像が第1エンコーダー部20に供給されるように制御するとともに、第1エンコーダー部20およびデコーダー部30にニューラルネットワークの順方向の処理を行わせる。また、制御部90は、学習用データに含まれる正解語列が第1ロス算出部50に供給されるように制御する。また、制御部90は、第1ロス算出部50が算出したロスに基づいて、デコーダー部30および第1エンコーダー部20がそれぞれ持つニューラルネットワークの誤差逆伝播を行わせる。
【0051】
また、第2パターンの学習を行う場合には、制御部90は、負例データ生成部110に、不正解語列を生成させる。また、制御部90は、学習用データに含まれる映像が第1エンコーダー部20に供給されるように制御するとともに、学習用データに含まれる正解語列データや負例データ生成部110によって生成された不正解語列が第2エンコーダー部60に供給されるように制御する。また、制御部90は、第1エンコーダー部20および第2エンコーダー部60のそれぞれが持つニューラルネットワークに、順方向の処理を行わせる。また、制御部90は、第2ロス算出部70にロスを算出させる。第2ロス算出部70は、状況に応じて、正解誤差(dpositive)、不正解誤差(dnegative)、およびトリプレット誤差(Ltriplet)のうちの必要なものを算出する。また、制御部90は、第2ロス算出部70が算出したロスに基づいて、第1エンコーダー部20や第2エンコーダー部60のそれぞれのニューラルネットワークの誤差逆伝播を行わせるよう制御する。
【0052】
また、制御部90は、映像と正解語列との対の集合(学習用データ)に含まれる各対が、順次、学習のために使用されるように制御する。また、制御部90は、ニューラルネットワークの学習に関する終了条件を判定し、学習を終了させるか否かを制御する。制御部90は、例えば、所定回数(所定エポック数)の処理が完了したときに学習を終了させるようにしてよい。また、制御部90は、例えば、ニューラルネットワークの内部パラメーターの値の学習による変化が収束したか否かを判定し、その判定結果に基づいて学習を終了させるか否かを決定してもよい。
【0053】
また、制御部90は、正解誤差と不正解誤差との両方に基づいて少なくとも第1エンコーダー部20のニューラルネットワークの誤差逆伝播による学習を行うように制御する。制御部90が、正解誤差と不正解誤差との両方に基づいて、さらに第2エンコーダー部60のニューラルネットワークの誤差逆伝播による学習を行うように制御してもよい。なお、制御部90は、前記の合成誤差に基づいて少なくとも第1エンコーダー部20のニューラルネットワークの誤差逆伝播による学習を行うように制御するものであってよい。
【0054】
また、制御部90は、前記正解誤差の値が所定の閾値より大きい場合には前記正解誤差に基づいて前記第1エンコーダー部のニューラルネットワークの誤差逆伝播を行うように制御し、前記正解誤差の値が前記閾値以下である場合には前記合成誤差に基づいて前記第1エンコーダー部のニューラルネットワークの誤差逆伝播を行うように制御するものであってよい。その具体的な手順については、後でフローチャートを参照しながら説明する。
【0055】
図2は、第1エンコーダー部20および第2エンコーダー部60と、それらの入出力データの概略を示すブロック図である。図示するように、第1エンコーダー部20は、内部にニューラルネットワーク220を備えて構成される。また、第2エンコーダー部60は、内部にニューラルネットワーク260を備えて構成される。
【0056】
第1エンコーダー部20に設けられたニューラルネットワーク220は、入力映像に含まれるフレーム画像の情報を入力し、その意味を表す情報を持つ状態ベクトルを出力する。なお、前述の通り、CNNが、入力されるフレーム画像の特徴を表す特徴量(特徴ベクトル)を出力する。そして、RNNが、そのフレーム画像の特徴量を入力し状態ベクトルを出力する。第2エンコーダー部60に設けられたニューラルネットワーク260は、単語列の情報を入力し、その意味を表す情報を持つ状態ベクトルを出力する。なお、単語列は、学習用データ供給部80から供給されるデータであり、正解語列または不正解語列のいずれかである。
【0057】
第2ロス算出部70は、第1エンコーダー部20のニューラルネットワーク220から出力される状態ベクトルと、第2エンコーダー部60のニューラルネットワーク260から出力される状態ベクトルと、の間のロスを算出する。第2ロス算出部70は、学習用データ供給部80から供給される正解語列に対応するロスであるdpositiveを算出する場合と、学習用データ供給部80から供給される不正解語列に対応するロスであるdnegativeを算出する場合とがある。さらに、第2ロス算出部は、これらのdpositiveおよびdnegativeを基に、式(1)により、トリプレットロスLtripletを算出することができる。
【0058】
ニューラルネットワーク220および260の誤差逆伝播を行う場合には、上記のdpositiveあるいはトリプレットロスLtripletを用いる。このような学習を行うことにより、ニューラルネットワーク220および260が出力する状態ベクトルは、正解語列に対応した状態ベクトルに近づき、且つ、不正解語列に対応した状態ベクトルから遠ざかる。
【0059】
次に、変換装置1の動作手順について説明する。学習モードでの動作(第1パターンの学習(
図3)および第2パターンの学習(
図4))と、変換実行モードでの動作(
図5)とのそれぞれについて、フローチャートを参照しながら説明する。
【0060】
図3は、変換装置1が、学習モードにおいて第1パターンによる学習を行う際の処理手順を示すフローチャートである。このフローチャートは、1対の入力映像および正解語列に対応する処理を示すものである。以下、このフローチャートに沿って処理手順を説明する。
【0061】
ステップS1において、学習用データ供給部80は、入力映像と正解語列の対(正例)のデータを1件取得する。学習用データ供給部80は、この対に含まれる入力映像を、第1エンコーダー部20に供給する。また、学習用データ供給部80は、この対に含まれる正解語列を、第1ロス算出部50に供給する。
【0062】
ステップS2において、学習用データ供給部80は、ステップS1において取得された入力映像のデータを、第1エンコーダー部20に供給する。第1エンコーダー部20は、渡された入力映像のデータに基づいて、ニューラルネットワークの順伝播の処理を行う。これにより、第1エンコーダー部20は、状態ベクトルを出力する。この状態ベクトルは、デコーダー部30に渡される。
【0063】
ステップS3において、デコーダー部30は、ステップS2の処理によって第1エンコーダー部20から出力された状態ベクトルを入力し、ニューラルネットワークの順伝播の処理を行う。この結果として、デコーダー部30は、推定語列を出力する。この推定語列は、元の入力映像に対応する語列として推定されたものである。デコーダー部30は、この推定語列を、第1ロス算出部50に渡す。
【0064】
ステップS4において、第1ロス算出部50は、デコーダー部30から出力された推定語列と、学習用データ供給部80から供給される(ステップS1)正解語列との間のロスを算出する。このロスは、ステップS5からS6までにおける誤差逆伝播の処理の基となる。
【0065】
ステップS5において、変換装置1は、上記のロスに基づいて、デコーダー部30が持つニューラルネットワークの誤差逆伝播を行う。これにより、デコーダー部30の内部パラメーターの値が更新される。
【0066】
ステップS6において、変換装置1は、上記のステップS5に引き続き、第1エンコーダー部20が持つニューラルネットワークの誤差逆伝播を行う。これにより、第1エンコーダー部20の内部パラメーターの値が更新される。
【0067】
図4は、変換装置1が、学習モードにおいて第2パターンによる学習を行う際の処理手順を示すフローチャートである。このフローチャートは、1件の入力映像、正解語列、および不正解語列の組に対応する処理を示すものである。以下、このフローチャートに沿って処理手順を説明する。
【0068】
ステップS11において、学習用データ供給部80は、入力映像と正解語列の対(正例)のデータを1件取得する。
【0069】
ステップS12において、負例データ生成部110は、ステップS11において取得された正解語列を基に、不正解語列を生成する。負例データ生成部110は、生成した不正解語列のデータを学習用データ供給部80に渡す。
【0070】
ステップS13において、学習用データ供給部80は、ステップS11において取得された入力映像のデータを、第1エンコーダー部20に供給する。第1エンコーダー部20は、渡された入力映像のデータに基づいて、ニューラルネットワークの順伝播の処理を行う。これにより、第1エンコーダー部20は、状態ベクトルを出力する。
【0071】
ステップS14において、学習用データ供給部80は、ステップS11において取得された正解語列のデータを、第2エンコーダー部60に供給する。第2エンコーダー部60は、渡された正解語列のデータに基づいて、順伝播の処理を行う。これにより、第2エンコーダー部60は、状態ベクトルを出力する。
【0072】
ステップS15において、第2ロス算出部70は、第1エンコーダー部20から出力された状態ベクトルと、第2エンコーダー部60から出力された状態ベクトルとの間のロスを算出する。ここで算出されるロスは、前記の式(1)におけるdpositiveである。
【0073】
ステップS16において、制御部90は、ステップS15において算出されたロス(第1エンコーダー部20から出力された状態ベクトルと、第2エンコーダー部60から出力された状態ベクトルと、の間のロス)が所定の閾値より大きいか否かを判定する。ロスが閾値よりも大きい場合(ステップS16:YES)には、ステップS20の処理に飛ぶ。ロスが閾値以下である場合(ステップS16:NO)には、次のステップS17の処理に飛ぶ。
【0074】
なお、上記の閾値は適宜定めればよい。一例として、閾値を0.01などとしてよい。
【0075】
言い換えれば、ステップS15において算出されたロスが所定の閾値よりも大きい場合には、そのロス(正例のみに基づくロス)によってニューラルネットワークの内部パラメーターの調整を行うようにする。また、ステップS15において算出されたロスがその閾値以下である場合には、正例だけではなく負例にも基づいて算出されるトリプレットロスによってニューラルネットワークの内部パラメーターの調整を行うようにする。
【0076】
ステップS17に進んだ場合、同ステップにおいて、学習用データ供給部80は、ステップS12において生成された不正解語列(負例)を第2エンコーダー部60に供給する。第2エンコーダー部60は、渡された不正解語列のデータに基づいて、順伝播の処理を行う。これにより、第2エンコーダー部60は、状態ベクトルを出力する。
【0077】
ステップS18において、第2ロス算出部70は、第1エンコーダー部20から出力された状態ベクトル(ステップS13)と、第2エンコーダー部60から出力された状態ベクトル(ステップS17)との間のロスを算出する。ここで算出されるロスは、前記の式(1)におけるdnegativeである。
【0078】
ステップS19において、第2ロス算出部70は、前記の式(1)により、トリプレットロスLtripletを算出する。式(1)に表しているように、第1エンコーダー部20から出力される状態ベクトルが正解語列(正例)に基づいて第2エンコーダー部60によって算出される状態ベクトルに近い程、トリプレットロスLtripletの値は小さくなる。また、第1エンコーダー部20から出力される状態ベクトルが不正解語列(負例)に基づいて第2エンコーダー部60によって算出される状態ベクトルに近い程、トリプレットロスLtripletの値は大きくなる。
【0079】
次にステップS20およびS21の誤差逆伝播の処理に移る。なお、ステップS16においてロスが閾値より大きい(ステップS16:YES)と判定されていた場合には、ステップS15で算出されたロスLpositiveに基づく逆伝播を行うようにする。ステップS16においてロスが閾値以下である(ステップS16:NO)と判定されていた場合には、ステップS19で算出されたトリプレットロスLtripletに基づく逆伝播を行うようにする。
【0080】
ステップS20において、変換装置1は、上記のロスに基づいて、第2エンコーダー部60が持つニューラルネットワークの誤差逆伝播を行う。これにより、第2エンコーダー部60の内部パラメーターの値が更新される。
【0081】
ステップS21において、変換装置1は、上記のロスに基づいて、第1エンコーダー部20が持つニューラルネットワークの誤差逆伝播を行う。これにより、第1エンコーダー部20の内部パラメーターの値が更新される。
【0082】
図5は、変換装置1が、変換実行モードで稼働する場合の処理手順を示すフローチャートである。変換装置1が変換実行モードで稼働するのは、ニューラルネットワークの学習が完了していることが前提である。以下、このフローチャートに沿って処理手順を説明する。
【0083】
ステップS51において、入力部10は、入力映像を取得する。入力部10は、その入力映像に含まれるフレーム画像を、第1エンコーダー部20に渡す。
【0084】
ステップS52において、第1エンコーダー部20は、ステップS51で取得された入力映像に基づいて、ニューラルネットワークの順伝播の処理を行う。その結果として、第1エンコーダー部20は状態ベクトルを出力する。この状態ベクトルは、デコーダー部30に渡される。
【0085】
ステップS53において、デコーダー部30は、ステップS52において第1エンコーダー部20から出力された状態ベクトルを入力として、ニューラルネットワークの順伝播の処理を行う。その結果として、デコーダー部30は、単語列を出力する。この単語列は、入力映像に移る手話動作に対応する単語列である。言い換えれば、この単語列は、その手話動作の内容を表すものとして推定された推定語列である。つまり、この単語列は、入力映像に映る手話動作の認識結果である。デコーダー部30は、この単語列を出力部40に渡す。
【0086】
ステップS54において、出力部40は、ステップS53においてデコーダー部30から出力された単語列を、変換結果(手話動作の認識結果)として外部に出力する。
【0087】
変換装置1は、例えば、第1パターンの学習と第2パターンの学習とを交互に繰り返して行うようにしてよい。また、変換装置1は、すべての学習用データを順次適用して行うことを、繰り返し行うようにしてよい。変換装置1は、学習用データを用いた機械学習についての既存手法を用いる場合がある。
【0088】
図6は、変換装置1の内部構成の例を示すブロック図である。変換装置1は、コンピューターを用いて実現され得る。図示するように、そのコンピューターは、中央処理装置901と、RAM902と、入出力ポート903と、入出力デバイス904や905等と、バス906と、を含んで構成される。コンピューター自体は、既存技術を用いて実現可能である。中央処理装置901は、RAM902等から読み込んだプログラムに含まれる命令を実行する。中央処理装置901は、各命令にしたがって、RAM902にデータを書き込んだり、RAM902からデータを読み出したり、算術演算や論理演算を行ったりする。RAM902は、データやプログラムを記憶する。RAM902に含まれる各要素は、アドレスを持ち、アドレスを用いてアクセスされ得るものである。なお、RAMは、「ランダムアクセスメモリー」の略である。入出力ポート903は、中央処理装置901が外部の入出力デバイス等とデータのやり取りを行うためのポートである。入出力デバイス904や905は、入出力デバイスである。入出力デバイス904や905は、入出力ポート903を介して中央処理装置901との間でデータをやりとりする。バス906は、コンピューター内部で使用される共通の通信路である。例えば、中央処理装置901は、バス906を介してRAM902のデータを読んだり書いたりする。また、例えば、中央処理装置901は、バス906を介して入出力ポートにアクセスする。
【0089】
なお、実施形態における変換装置1の少なくとも一部の機能をコンピューターおよびプログラムで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。つまり、「コンピューター読み取り可能な記録媒体」とは、非一過性の(non-transitory)コンピューター読み取り可能な記録媒体であってよい。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0090】
以上説明したように、本実施形態によると、変換装置1は、dpositive(正解誤差)を小さくして、dnegative(不完全誤差)を大きくするような学習を行う。また、変換装置1は、そのような学習を行うための不正解語列(不完全語列)を自動的に生成する。つまり、第1エンコーダー部20は、正解語列と不正解語列(不完全語列)の違いを学習することができ、映像の認識精度の向上が図られる。
【0091】
上記実施形態の実証実験を行った結果は、次の通りである。実証実験においては、学習用データとして、手話映像(入力映像)と正解語列との対を6000対準備し、変換装置1の学習を行った。また、評価用データとして手話映像と正解語列の対を1000対用いて、手話映像に基づく変換を行った結果の推定語列の誤り率を評価した。従来技術(特許文献1に記載された手法)と比較して、誤り率が1.5%低くなったことを確認できた。
【0092】
以上、実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。
【0093】
[変形例]
上記実施形態では、第2パターンによる学習(
図4)を行う際に、d
positive(正解誤差)が所定の閾値以下である場合にのみ、トリプレット誤差L
tripletに基づく逆伝播を行うようにした(
図4のステップS16における判断)。変形例としては、このステップS16での判定を行わず、常にトリプレット誤差L
tripletに基づく逆伝播を行うようにしてもよい。
【0094】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0095】
本発明は、例えば、映像からの意味抽出や映像の認識等の処理に利用することができる。その一例として、言語表現的な内容を含む映像を、他の言語表現に変換するために利用することが考えられる。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0096】
1 変換装置
10 入力部
20 エンコーダー部
30 デコーダー部
40 出力部
50 第1ロス算出部
60 第2エンコーダー部
70 第2ロス算出部(ロス算出部)
80 学習用データ供給部
90 制御部
110 負例データ生成部
220,260 ニューラルネットワーク
901 中央処理装置
902 RAM
903 入出力ポート
904,905 入出力デバイス
906 バス