(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024055624
(43)【公開日】2024-04-18
(54)【発明の名称】機械学習プログラム、情報処理装置および機械学習方法
(51)【国際特許分類】
G06N 3/082 20230101AFI20240411BHJP
G06F 40/216 20200101ALI20240411BHJP
【FI】
G06N3/08 120
G06F40/216
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022162705
(22)【出願日】2022-10-07
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鎌田 裕一
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091EA01
(57)【要約】
【課題】学習データにはない文章入力に対しても、認識精度を向上させる。
【解決手段】情報処理装置1は、ニューラルネットワークで構成されたモジュールを複数組み合わせて構築される機械学習モデルの学習において、画像および画像に関する質問文を組とする学習データの質問文に含まれる複数の単語に対して、単語間の係り受けを解析し、解析の結果に基づいて、複数のモジュールそれぞれに対して適用する重みを決定し、
前記複数のモジュールそれぞれに対して適用する重みに基づいて、前記複数のモジュールから、前記機械学習モデルで用いられるモジュールの組み合わせの選択を制御する。かかる情報処理装置1の処理は、例えば、自然言語をクエリとする画像検索アプリケーションに適用することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ニューラルネットワークで構成されたモジュールを複数組み合わせて構築される機械学習モデルの学習において、
画像および画像に関する質問文を組とする学習データの質問文に含まれる複数の単語に対して、単語間の係り受けを解析し、
解析の結果に基づいて、複数のモジュールそれぞれに対して適用する重みを決定し、
前記複数のモジュールそれぞれに対して適用する重みに基づいて、前記複数のモジュールから、前記機械学習モデルで用いられるモジュールの組み合わせの選択を制御する
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記解析する処理は、
係り受け解析を用いて、前記質問文に含まれる各単語の係り先と係り受けタグ情報とを特定し、
前記決定する処理は、
各単語のエンベッディングに、各単語に対する係り受けタグのエンベッディングを加算し、前記質問文に含まれる各単語の係り先の位置を表す行列を用いて、各係り先の単語のエンベッディングの位置に対して、係り元の単語群の情報に線形変換した値を足し合わせ、足し合わせた配列を、係り先の単語のエンベッディング列に足し合わせて、係り受け情報を加味した係り受け単語のエンベッディング列を生成し、
前記係り受け単語のエンベッディング列を用いて、前記複数のモジュールそれぞれに対して適用する重みを決定する
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記重みを決定する処理は、トランスフォーマーブロックで構成された複数のモジュールそれぞれに対して、前記係り受け単語のエンベッディング列および前記画像の物体特徴量を入力して出力を計算し、MLP処理で前記複数のモジュールの出力を重み付き平均して、重み付き平均した出力を次層への入力として、予め定められた個数の層分の処理を行い、
最終層の出力を前記MLP処理し、回答を出力し、
誤差逆伝播法で前記ニューラルネットワークを学習し、各モジュールに適用する重みを決定する
ことを特徴とする請求項2に記載の機械学習プログラム。
【請求項4】
ニューラルネットワークで構成されたモジュールを複数組み合わせて構築される機械学習モデルの学習において、
画像および画像に関する質問文を組とする学習データの質問文に含まれる複数の単語に対して、単語間の係り受けを解析する解析部と、
解析の結果に基づいて、複数のモジュールそれぞれに対して適用する重みを決定する決定部と、
前記複数のモジュールそれぞれに対して適用する重みに基づいて、前記複数のモジュールから、前記機械学習モデルで用いられるモジュールの組み合わせの選択を制御する制御部と、
を有することを特徴とする情報処理装置。
【請求項5】
ニューラルネットワークで構成されたモジュールを複数組み合わせて構築される機械学習モデルの学習において、
画像および画像に関する質問文を組とする学習データの質問文に含まれる複数の単語に対して、単語間の係り受けを解析し、
解析の結果に基づいて、複数のモジュールそれぞれに対して適用する重みを決定し、
前記複数のモジュールそれぞれに対して適用する重みに基づいて、前記複数のモジュールから、前記機械学習モデルで用いられるモジュールの組み合わせの選択を制御する
処理をコンピュータが実行することを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習プログラムなどに関する。
【背景技術】
【0002】
ニューラルモジュールの組み合わせ(プログラム)を制御して機械学習する手法が開示されている。
【0003】
例えば、第1の技術では、機械学習の学習データであるCLEVRデータセットの質問文を構成する句や節を組み合わせ、CLEVRデータセットでは直接的には登場しない質問の仕方によって精度を評価するCLOSUREデータセットが提案されている(例えば、非特許文献1参照)。ここでいうCLEVRデータセットとは、3Dレンダリング画像のコンテンツに対する質問文のデータセットのことをいう。CLOSUREデータセットとは、学習データであるCLEVRデータセットでは直接的には登場しない質問の仕方によって精度を評価するためのデータセットのことをいう。CLOSUREデータセットについては、CLEVRデータセットで学習した後のニューラルモジュールネットワークモデルのテストで、精度が悪くなることが開示されている。このため、第1の技術では、文章特徴量で画像特徴量を変調する手法(FiLM)を、ニューラルモジュールに適用することにより、CLOSUREデータセットでの精度を向上させる。
【0004】
なお、
図7は、CLEVRおよびCLOSUREデータセットおよびニューラルモジュールの組み合わせを示す参考図である。
図7左図は、CLEVRおよびCLOSUREデータセットを示す参考図である。
図7右図は、ニューラルモジュールの組み合わせ(プログラム)を示す参考図である。
図7右図に示すP1は、CLEVRデータセットの質問文Q1を構成する句や節をニューラルモジュールとしたモジュールの組み合わせ(プログラム)である。モジュールの下の括弧は、引数である。P2は、CLEVRデータセットの質問文Q2を構成する句や節をニューラルモジュールとしたモジュールの組み合わせ(プログラム)である。P1およびP2は、それぞれ質問文Q1およびQ2に対するモジュールの組み合わせ(プログラム)の正解である。P3は、CLOSUREデータセットの質問文Q3を構成する句や節をニューラルモジュールとしたモジュールの組み合わせであって、CLEVRデータセットの質問文に登場しない質問の仕方を持つモジュールの組み合わせ(プログラム)である。
【0005】
また、第2の技術では、CLEVRプログラムの各処理を学習するニューラルモジュールを用意する。学習処理は、入力する質問文の要求に対する回答に必要となる、モジュール処理の組み合わせを制御するための重みも学習により自動生成する(例えば、非特許文献2参照)。なお、
図8は、CLEVRプログラムの学習を示す参考図である。
図8で示す「find」,「transform」,・・・,「answer」および「compare」がモジュール処理の組み合わせであり、このモジュール処理の組み合わせを制御するための重みW
(t)も学習により自動生成される。
【0006】
第1の技術および第2の技術では、学習時に、入力する質問文に対する回答に必要な各ニューラルモジュールと、モジュールの組み合わせ(プログラム)を予め用意して、学習する。すなわち、第1の技術および第2の技術は、学習時に、質問文に対する正解のプログラムのとおりにニューラルモジュールを構成して学習する。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】“CLOSURE Assessing Systematic Generalization of CLEVR Models”,arXiv:1912.05783
【非特許文献2】“Explainable Neural Computation via Stack Neural Module Networks”,In:ECCV 2018
【発明の概要】
【発明が解決しようとする課題】
【0008】
第1の技術および第2の技術では、学習時に、質問文に対する正解のモジュールの組み合わせ(プログラム)を用意する必要がある。しかしながら、様々な入力としてのタスク(質問文)を解くために必要なモジュールの組み合わせ(プログラム)の正解を、あらかじ用意するのは困難であるという問題がある。
【0009】
本発明は、1つの側面では、学習データにはない文章入力に対しても、認識精度を向上させることを目的とする。
【課題を解決するための手段】
【0010】
1つの態様では、機械学習プログラムが、ニューラルネットワークで構成されたモジュールを複数組み合わせて構築される機械学習モデルの学習において、画像および画像に関する質問文を組とする学習データの質問文に含まれる複数の単語に対して、単語間の係り受けを解析し、解析の結果に基づいて、複数のモジュールそれぞれに対して適用する重みを決定し、前記複数のモジュールそれぞれに対して適用する重みに基づいて、前記複数のモジュールから、前記機械学習モデルで用いられるモジュールの組み合わせの選択を制御する、処理をコンピュータに実行させる。
【発明の効果】
【0011】
1実施態様によれば、学習データにはない文章入力に対しても、認識精度を向上させることができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施例に係る情報処理装置の機能構成の一例を示すブロック図である。
【
図2】
図2は、実施例に係る係り受け解析の一例を示す図である。
【
図3】
図3は、実施例に係る係り先行列の生成方法を示す図である。
【
図4】
図4は、実施例に係る機械学習の流れの一例を示す図である。
【
図5】
図5は、実施例に係る機械学習処理のフローチャートの一例を示す図である。
【
図6】
図6は、機械学習プログラムを実行するコンピュータの一例を示す図である。
【
図7】
図7は、CLEVRおよびCLOSUREデータセットおよびモジュールの組み合わせを示す参考図である。
【
図8】
図8は、CLEVRプログラムの学習を示す参考図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示する機械学習プログラム、情報処理装置および機械学習方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【実施例0014】
図1は、実施例に係る情報処理装置の機能構成の一例を示すブロック図である。
図1に示される情報処理装置1は、ニューラルモジュールの組み合わせを制御する重み分布を機械学習する際に、学習データに含まれる文章の係り受けを解析した結果を利用する。そして、情報処理装置1は、テスト時に、学習データにはない入力文章であっても、学習時に用いられた文章内の句・節の組み合わせで構成された入力文章に対しての認識精度を向上させる。すなわち、情報処理装置1は、CLEVRの学習データにはないCLOSUREの入力文章であっても、入力文章に対しての認識精度を向上させる。
【0015】
情報処理装置1は、制御部10と、記憶部20とを有する。制御部10は、ミニバッチ作成部11、係り受け解析処理部12、ニューラルネットワーク処理部13および学習処理部14を有する。記憶部20は、学習データ記憶部21およびネットワーク重み記憶部22を有する。なお、係り受け解析処理部12は、解析部の一例である。ニューラルネットワーク処理部13および学習処理部14は、決定部および制御部の一例である。
【0016】
学習データ記憶部21は、学習データを記憶する。学習データは、質問文、画像および回答を1つのデータセットとするトレーニングデータである。質問文は、画像に対する質問の文章である。例えば、質問文は、3Dレンダリング画像のコンテンツに対する質問文である。画像がcubeやcylinderなどの色付きのコンテンツを描画した3Dレンダリング画像である場合の質問文の一例として、「There is another cube that is the same size as the brown cube; what is the color?」が挙げられる。
【0017】
ネットワーク重み記憶部22は、ニューラルネットワークの重みを記憶する。なお、ネットワーク重み記憶部22は、学習処理部14によって更新される。
【0018】
ミニバッチ作成部11は、ミニバッチ学習で用いられる学習データを作成する。例えば、ミニバッチ作成部11は、学習データ記憶部21から、ミニバッチ学習で用いられるバッチサイズ分の学習データを取得する。ここでいうミニバッチ学習とは、学習で用いられるパラメータの更新方法のことをいい、バッチサイズ分の学習データで纏めて学習し、重みなどのパラメータを更新する。バッチサイズは、1より大きく、全学習データの数より小さく、予め決定される。学習データには、質問文、画像および回答が含まれる。
【0019】
係り受け解析処理部12は、質問文の係り受けを解析する。例えば、係り受け解析処理部12は、ミニバッチ作成部11によって作成された学習データを学習の入力として受け付ける。係り受け解析処理部12は、学習データの質問文を、単語に分割する。単語の分割は、例えば、形態素解析を用いれば良く、いかなる従来手法を用いても良い。係り受け解析処理部12は、係り受け解析(Dependency Parsing)を用いて、各単語同士の係り先情報と係り受けタグ情報を解析する。ここでいう係り受けタグとは、単語間の句、節などの関係性を示すタグのことをいい、係り受け解析時に使用される。
【0020】
ここで、係り受け解析の一例を、
図2を参照して説明する。
図2は、実施例に係る係り受け解析の一例を示す図である。
図2に示すように、学習データの質問文として、「There is another cube that is the same size as the brown cube; what is the color?」が表わされている。各単語が空白で分割される。係り受け解析処理部12は、かかる質問文について、係り受け解析を行う。そして、係り受け解析処理部12は、係り受け解析によって、係り先情報と係り受けタグ情報を取得する。ここでは、係り先情報として、係り受け元の単語から係り受け先の単語へ矢印で表わされている。一例として、係り受けタグ情報として、係り受け元を示す単語「there」の係り受けタグは、「expl」であり、「嘘辞」という意味を示す。係り受け先を示す単語「is」の係り受けタグは、「ccomp」であり、「補文」という意味を示す。すなわち、係り受け先を示す単語「is」に対して係り受け元を示す単語「there」が「嘘辞」という意味(Dependency Relations)であることを示す。このような係り受け解析の結果を利用して、後述する学習処理部14は、ニューラルネットワークを構成する各ニューラルモジュールの重みを決定する。なお、以降、「係り受け先」のことを「係り先」という。「係り受け元」のことを「係り元」という。また、「ニューラルモジュール」のことを「モジュール」という場合がある。
【0021】
なお、係り受けタグの一覧は、例えば、「https://qiita.com/kei_0324/items/400f639b2f185b39a0cf」や「https://universaldependencies.org/u/dep/」に開示されている。
【0022】
図1に戻って、ニューラルネットワーク処理部13は、ニューラルネットワークを処理する。
【0023】
例えば、ニューラルネットワーク処理部13は、入力として受け付けた質問文の各単語をそれぞれ単語embeddingに変換する。また、ニューラルネットワーク処理部13は、係り受け解析によって解析された、各単語に対応する係り受けタグをそれぞれ係り受けタグembeddingに変換する。ここでいうembeddingは、自然言語を計算が可能な形に変換することをいう。ここでいう単語embeddingは、単語をベクトル空間にコード化したものであって、意味が類似する単語同士は距離が近いベクトルになる。ここでいう係り受けタグembeddingは、係り受けタグをベクトル空間にコード化したものであって、意味が類似するタグ同士は距離が近いベクトルになる。
【0024】
そして、ニューラルネットワーク処理部13は、各単語embeddingに、各単語に対応する係り受けタグembeddingを足し合わせて係り先単語embedding列を出力する。そして、ニューラルネットワーク処理部13は、係り受け解析によって解析された、質問文に含まれる単語の係り先を「0」、「1」のハードアテンション(ハードな注意)で表した係り先行列を用いて、各係り先単語のembeddingの位置に対して、係り元単語群のembeddingに線形変換した値を足し合わせる。そして、ニューラルネットワーク処理部13は、各係り先単語のembeddingの位置に係り元単語embeddingを足し合わせた結果を示す配列を、係り先単語embedding列に足し合わせて、係り受け情報を加味した単語embedding列を生成する。生成された単語embedding列は、係り受け単語embedding列である。
【0025】
そして、ニューラルネットワーク処理部13は、ニューラルモジュールの数をM個として、Transformerブロックで構成されるM個全てのモジュールに対して入力を与えて出力を計算する。ここでいうM個は、学習に必要なモジュールの数であり、ニューラルネットワークによって定められる。また、ここでいう入力は、質問文の先頭から最後尾までの係り受け単語embeddingと、画像から生成される物体特徴量とを含む。物体特徴量は、画像から物体を切り出して特徴量を計算したものである。なお、物体特徴量は、いかなる手法を用いて計算されても良い。
【0026】
そして、ニューラルネットワーク処理部13は、M個のモジュールの出力を重み付き平均するための重み分布を、入力した文章の先頭を表す特殊トークン(BOSトークン)から多層パーセプトロン(MLP:Multilayer perceptron)処理で計算する。そして、ニューラルネットワーク処理部13は、重み付き平均したモジュール出力を次の層への入力とし、MLP処理を最終層まで繰り返す。
【0027】
学習処理部14は、ニューラルネットワークを学習する。例えば、学習処理部14は、最終層の出力からMLP処理を行い、回答を出力する。一例として、学習処理部14は、質問に対して予め用意された選択肢からのクラス分類として回答を出力する。そして、学習処理部14は、出力した回答と正解となる回答との誤差から誤差逆伝播法でニューラルネットワークを学習する。そして、学習処理部14は、ニューラルネットワークの各モジュールに適用する重みを更新し、ネットワーク重み記憶部22に格納する。
【0028】
これにより、学習処理部14は、学習データに含まれる文章内の句・節の組み合わせで構成された新たな入力文章(質問文)であれば、学習データにはない入力文章であっても、入力文章に対しての認識精度を向上させることができる。つまり、従来技術では、質問文を解くために必要な各モジュール機能とその組み合わせ(プログラム列)とを予め用意しなければならなかった。この制約を取り外すためには、汎用的なニューラルネットワークで構成されたモジュール群によって、質問文、画像および回答を含む学習データから自動的に要求されるモジュール機能とその組み合わせを学習する必要がある。そこで、学習処理部14は、係り受け解析によって節・句に分割された質問文の情報があれば、学習データにないモジュールの組み合わせ(プログラム列)の新たな入力文章(質問文)に対して、句・節の単位では学習データと同じものであるということを特定できる。
【0029】
[係り先行列の生成方法]
図3は、実施例に係る係り先行列の生成方法を示す図である。
図3に示すように、係り先行列は、質問文に含まれる単語の係り先を「0」、「1」のハードアテンション(ハードな注意)で表した行列である。係り先行列は、各要素について、列を係り元の単語とし、行を係り先の単語として、係り先の単語の行と係り元の単語の列とが交わる行列を「1」で表わす。
【0030】
一例として、「There is another cube・・・」という質問文に対して、「there」が係り元であり、「is」が係り先であると解析される。すると、2行目は「is」を示し、1列目は「there」を示すので、係り先行列の2行1列の要素に「1」が設定される。また、同じ質問文に対して、「cube」が係り元であり、「is」が係り先であると解析される。すると、2行目は「is」を示し、4列目は「cube」を示すので、係り先行列の2行4列の要素に「1」が設定される。また、同じ質問文に対して、「another」が係り元であり、「cube」が係り先であると解析される。すると、4行目は「cube」を示し、3列目は「another」を示すので、係り先行列の4行3列の要素に「1」が設定される。
【0031】
かかる係り先行列を用いて、ニューラルネットワーク処理部13は、係り先単語のembeddingの位置に対して、係り元単語群のembeddingに線形変換した値を足し合わせ、係り受け情報を加味した係り受け単語embeddingを生成する。
【0032】
[機械学習の流れの一例]
図4は、実施例に係る機械学習の流れの一例を示す図である。
図4に示すように、係り受け解析処理部12は、学習データとして質問文、画像を含む学習データを受け付ける(a1)。ここでは、ミニバッチ作成部11が、学習データ記憶部21から、ミニバッチ学習で用いられるバッチサイズ分の学習データを抽出する。そして、係り受け解析処理部12が、バッチサイズ分の学習データを受け付ける。そして、バッチサイズ分の学習データごとに、以下のa2~a7の処理が実施される。
【0033】
係り受け解析処理部12は、質問文を単語に分割し、単語embedding列を入力して、各単語同士の係り受け解析を実施し、各単語同士の係り先情報と係り受けタグ情報を出力する(a2)。
【0034】
続いて、ニューラルネットワーク処理部13は、単語embedding列に、係り受けタグembedding列を足し合わせる(a3)。そして、ニューラルネットワーク処理部13は、足し合わせた結果を示す係り先単語embedding列を、係り元単語群のembeddingに線形変換する行列(Value)によって計算処理を行い、係り元単語embedding列を出力する(a4)。なお、Valueの線形変換行列(FCv)は、学習により更新されるパラメータで構成される行列であり、初期値は乱数である。
【0035】
また、ニューラルネットワーク処理部13は、各単語同士の係り先情報を用いて、係り先行列を生成する(a5)。係り先行列は、係り受け解析によって解析された、質問文に含まれる単語の係り先を0、1のハードアテンション(ハードな注意)で表した行列である。
【0036】
そして、ニューラルネットワーク処理部13は、係り先単語に対する係り元単語群のembeddingのみを符号a7で係り先単語embedding列に加算するために、係り元単語embedding列を、係り先行列に乗算する(a6)。例えば、単語embedding列が(e1,・・・,es)であり、係り受けタグembedding列が(t1,・・・,ts)であるとする。係り先行列が
図3で示す行列であるとする。すると、係り元単語embedding列は、(FC
v(t1+e1),・・・,FC
v(ts+es))と計算される。そして、係り元単語embedding列を係り先行列に乗算した結果は、(0,FC
v(t2+e2)+FC
v(t4+e4),0,FC
v(t3+e3),・・・)と計算される。すなわち、係り先行列に指定した「1」の位置は、係り元の単語に対する係り先の単語の位置であるので、この位置に係り元の単語のembedding列が予め足し合わせられる。
【0037】
そして、ニューラルネットワーク処理部13は、係り先単語embedding列に対して、係り先行列で指定した位置に足し合わせられた係り元単語embedding列を足し合わせる(a7)。この結果、係り受け単語embedding列が生成される。係り受け単語embedding列は、係り先行列が
図3で示す行列であった場合、イメージとして、「There」,「There is cube」,「another」,「another cube is」,・・・を各要素とするembedding列となる。
【0038】
そして、ニューラルネットワーク処理部13は、バッチサイズ分の学習データからそれぞれ生成された係り受け単語embedding列をLayerNorm(Layer Normalization)によって正規化して出力する。
【0039】
続いて、ニューラルネットワーク処理部13は、モジュール数をM個として、Transformerブロックで構成された1層目のM個全てのモジュールに対して、LayerNormによって出力を正規化した係り受け単語embedding列を入力する。加えて、ニューラルネットワーク処理部13は、1層目のM個全てのモジュールに対して、画像から生成される物体特徴量列を入力する(a8)。ここでは、係り受け単語embedding列の先頭(BOS)から最後尾(EOS)までの係り受け単語embeddingが入力される。物体特徴量列の先頭(BOI)から後尾(BOE)までの物体特徴量が入力される。
【0040】
そして、ニューラルネットワーク処理部13は、M個のモジュールの出力を重み付き平均するための重み分布を、入力した文章の先頭を表す特殊トークン(BOSトークン)から多層パーセプトロン(MLP)処理で計算する。そして、ニューラルネットワーク処理部13は、重み付き平均した出力を次の層への入力とし、MLP処理を最終のL層目まで繰り返す。
【0041】
そして、学習処理部14は、最終のL層の出力からMLP処理(MLPhead)して、選択肢からのクラス分類として回答を出力する。そして、学習処理部14は、出力した回答と正解となる回答との誤差から誤差逆伝播法でニューラルネットワークを学習する。そして、学習処理部14は、ニューラルネットワークの各モジュールに適用する重みを更新し、ネットワーク重み記憶部22に格納する。
【0042】
そして、ミニバッチ作成部11、係り受け解析処理部12、ニューラルネットワーク処理部13および学習処理部14は、学習処理を規定回数分繰り返して、ニューラルネットワークの各モジュールに適用する重みを更新し、ネットワーク重み記憶部22に格納する。
【0043】
この後、学習処理部14では、モジュールの組み合わせについて、学習されたMLPctrlが、入力した学習データおよび各モジュールに適用した重みに応じて選択する。
【0044】
[機械学習処理のフローチャート]
ここで、情報処理装置1によって行われる機械学習処理のフローチャートの一例を、
図5を参照して説明する。
図5は、実施例に係る機械学習処理のフローチャートの一例を示す図である。
図5に示すように、情報処理装置1は、ニューラルネットワークの重みをランダム値で初期化する(ステップS11)。情報処理装置1は、学習ループであるステップS13~ステップS23を規定回数のNepoch分繰り返す(ステップS12,S24)。
【0045】
情報処理装置1は、学習データからミニバッチを作成する(ステップS13)。例えば、ミニバッチ作成部11は、学習データ記憶部21から、ミニバッチ学習で用いられるバッチサイズ分の学習データを取得する。情報処理装置1は、ミニバッチを作成された学習データについて、係り受け解析で、入力する文章(質問文)の各単語の係り先と係り受けタグ情報を特定する(ステップS14)。
【0046】
情報処理装置1は、各単語embeddingに係り受けタグembeddingを加算して(ステップS15)、係り先単語embedding列を生成する。
【0047】
そして、情報処理装置1は、各単語の係り先を「0」、「1」で表した係り先行列と、係り元単語群のembeddingを線形変換する行列を用いて、係り先単語のembeddingに係り受け情報を加算し、係り受け単語embeddingを生成する(ステップS16)。例えば、情報処理装置1は、係り先単語embedding列に、係り元単語群のembeddingを線形変換する行列(Value)を乗算して、係り元単語embedding列を出力する。また、情報処理装置1は、各単語同士の係り先情報を用いて、係り先行列を生成する。そして、情報処理装置1は、係り元単語embedding列を、係り先行列に乗算して、係り先行列で指定した係り先単語の位置に、係り元単語群のみを予め足し合わせる。そして、情報処理装置1は、係り先単語embedding列に対して、予め足し合わせられた係り元単語embedding列を足し合わせる。この結果、係り受け単語embedding列が生成される。
【0048】
続いて、情報処理装置1は、モジュール処理のループであるステップS18~ステップS20をL層分繰り返す(ステップS17,S21)。情報処理装置1は、全モジュールに対して入力データ(係り受け単語embedding列、物体特徴量)を与えて、出力を計算する(ステップS18)。情報処理装置1は、入力データの先頭のトークンから、MLP処理でモジュール出力に対する重み分布を計算する(ステップS19)。そして、情報処理装置1は、重み付き平均したモジュール出力を、次層への入力データに設定する(ステップS20)。
【0049】
そして、情報処理装置1は、モジュール処理がL層分終了すると、最終層の出力をMLP処理し、クラス分類として回答を出力する(ステップS22)。そして、情報処理装置1は、誤差逆伝播法でニューラルネットワークの重みを更新する(ステップS23)。
【0050】
そして、情報処理装置1は、学習ループを規定回数Nepoch分終了すると、ニューラルネットワークの重みに応じて、モジュールの組み合わせを選択する(ステップS25)。そして、情報処理装置1は、機械学習処理を終了する。
【0051】
[実施例の効果]
上記実施例によれば、情報処理装置1は、ニューラルネットワークで構成されたモジュールを複数組み合わせて構築される機械学習モデルの学習において、画像および画像に関する質問文を組とする学習データの質問文に含まれる複数の単語に対して、単語間の係り受けを解析する。情報処理装置1は、解析の結果に基づいて、複数のモジュールそれぞれに対して適用する重みを決定する。情報処理装置1は、複数のモジュールそれぞれに対して適用する重みに基づいて、複数のモジュールから、機械学習モデルで用いられるモジュールの組み合わせの選択を制御する。かかる構成によれば、情報処理装置1は、学習データの単語間の係り受けを学習に用いることで、学習データにある単語間の係り受け(句・節)を組み合わせた文章入力であって学習データにはない文章入力に対しても認識精度を向上させることができる。
【0052】
また、上記実施例によれば、情報処理装置1は、係り受け解析を用いて、質問文に含まれる各単語の係り先と係り受けタグ情報とを特定する。情報処理装置1は、各単語のエンベッディングに、各単語に対する係り受けタグのエンベッディングを加算する。そして、情報処理装置1は、質問文に含まれる各単語の係り先の位置を表す行列を用いて、各係り先の単語のエンベッディングの位置に対して、係り元の単語群のエンベッディングに線形変換した値を足し合わせ、足し合わせた配列を、係り先の単語のエンベッディング列に足し合わせて、係り受け情報を加味した係り受け単語エンベッディング列を生成する。係る構成によれば、情報処理装置1は、質問文に含まれる各単語の係り先の位置を表す行列を用いて、係り先の単語のエンベッディング列に加算すべき係り元の単語のエンベッディングの配列を生成することで、係り受け情報を加味した係り受け単語エンベッディング列を生成できる。
【0053】
また、上記実施例によれば、情報処理装置1は、トランスフォーマーブロックで構成された複数のモジュールそれぞれに対して、係り受け単語エンベッディング列および画像の物体特徴量を入力して出力を計算し、MLP処理で複数のモジュールの出力を重み付き平均する。情報処理装置1は、重み付き平均した出力を次層への入力として、予め定められた個数の層分の処理を行う。情報処理装置1は、最終層の出力をMLP処理し、回答を出力する。そして、情報処理装置1は、誤差逆伝播法でニューラルネットワークを学習し、各モジュールに適用する重みを決定する。かかる構成によれば、情報処理装置1は、トランスフォーマーブロックで構成された複数のモジュールの重みを学習することができ、モジュールの重みに基づき、モジュールの組合せを選択できる。
【0054】
なお、図示した情報処理装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。また、記憶部20を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
【0055】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図1に示した情報処理装置1と同様の機能を実現する機械学習プログラムを実行するコンピュータの一例を説明する。ここでは、情報処理装置1と同様の機能を実現する機械学習プログラムを一例として説明する。
図6は、機械学習プログラムを実行するコンピュータの一例を示す図である。
【0056】
図6に示すように、コンピュータ200は、各種演算処理を実行するCPU(Central Processing Unit)203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信I/F(Interface)217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、表示装置209、ドライブ装置213、入力装置215、通信I/F217は、バス219で接続されている。
【0057】
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、機械学習プログラム205aおよび機械学習処理関連情報205bを記憶する。通信I/F217は、ネットワークと装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。通信I/F217には、例えば、モデムやLANアダプタなどを採用することができる。
【0058】
表示装置209は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。表示装置209は、例えば、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイなどを採用することができる。
【0059】
CPU203は、機械学習プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは情報処理装置1の各機能部に対応する。機械学習処理関連情報205bには、例えば、学習データ記憶部21、ネットワーク重み記憶部22が含まれる。そして、例えばリムーバブルディスク211が、機械学習プログラム205aなどの各情報を記憶する。
【0060】
なお、機械学習プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから機械学習プログラム205aを読み出して実行するようにしても良い。
【0061】
また、上記実施例で説明した情報処理装置1が行う機械学習処理は、自然言語をクエリとする画像検索アプリケーションに適用可能である。例えば、画像に対する質問(クエリ)と画像とを入力して、対象物を検索する画像検索アプリケーションに適用することができる。