(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-03
(45)【発行日】2022-10-12
(54)【発明の名称】学習方法及び装置、プログラム、学習済みモデル並びにテキスト生成装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20221004BHJP
G06N 20/00 20190101ALI20221004BHJP
【FI】
G06T7/00 350C
G06N20/00 130
(21)【出願番号】P 2021516031
(86)(22)【出願日】2020-04-15
(86)【国際出願番号】 JP2020016556
(87)【国際公開番号】W WO2020218111
(87)【国際公開日】2020-10-29
【審査請求日】2021-09-30
(31)【優先権主張番号】P 2019083057
(32)【優先日】2019-04-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】100083116
【氏名又は名称】松浦 憲三
(74)【代理人】
【識別番号】100170069
【氏名又は名称】大原 一樹
(74)【代理人】
【識別番号】100128635
【氏名又は名称】松村 潔
(74)【代理人】
【識別番号】100140992
【氏名又は名称】松浦 憲政
(72)【発明者】
【氏名】大関 誠
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】国際公開第2016/033710(WO,A1)
【文献】原田 達也,機械学習の新展開,シミュレーション 第34巻 第4号,日本,小宮山印刷工業株式会社,2015年
【文献】中村 玄貴,コンテキストアウェア敵対的生成ネットワークによる画像生成,第9回データ工学と情報マネジメントに関するフォーラム (第15回日本データベース学会年次大会),日本,電子情報通信学会データ工学研究専門委員会 日本デー,2017年
【文献】牛久 祥孝,視覚・言語融合の最前線,映像情報メディア学会誌 第72巻 第5号,日本,一般社団法人映像情報メディア学会,2018年
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06N 20/00 - 20/20
(57)【特許請求の範囲】
【請求項1】
画像から画像特徴量を抽出する特徴量抽出部と、前記画像特徴量に基づいて前記画像に関する推定テキストを生成するテキスト生成部と、前記推定テキスト又は正解テキストの入力を受け、入力されたテキストに対応する画像の統計量を推定して推定画像統計量を生成する統計量推定部と、を含む学習モデルを用いることと、
学習用の第1画像と、前記第1画像に対する前記正解テキストとしての第1テキストと、を組み合わせた複数の学習データの入力を受け付けることと、
前記特徴量抽出部に前記第1画像を入力して第1画像特徴量を取得することと、
前記テキスト生成部に前記第1画像特徴量を入力して第1推定テキストを取得することと、
前記第1推定テキストについて前記第1テキストとの第1誤差を計算することと、
前記統計量推定部に前記第1テキストを入力して第1推定画像統計量を取得することと、
前記第1推定画像統計量について前記第1画像から計算される第1画像統計量との第2誤差を計算することと、
前記統計量推定部に前記第1推定テキストを入力して第2推定画像統計量を取得することと、
前記第2推定画像統計量について前記第1画像統計量との第3誤差を計算することと、
前記第2誤差に基づいて前記統計量推定部のパラメータを更新することと、
前記第1誤差及び前記第3誤差に基づいて少なくとも前記テキスト生成部のパラメータを更新することと、
を含む学習方法。
【請求項2】
前記テキスト生成部は、前記画像特徴量と前記画像に関連付けされたユーザに関するメタデータとから前記推定テキストを生成するモジュールであり、
前記学習モデルは、さらに、
前記推定テキスト又は前記第1テキストの入力を受け、入力されたテキストに対応するユーザのメタデータを推定して推定メタデータを生成するメタデータ推定部を含み、
前記学習データは、さらに、前記第1画像に関連付けされた第1ユーザに関する第1メタデータを含み、
前記テキスト生成部に前記第1画像特徴量と前記第1メタデータとを入力することにより前記第1推定テキストが取得され、
さらに、
前記メタデータ推定部に前記第1テキストを入力して第1推定メタデータを取得することと、
前記第1推定メタデータについて前記第1メタデータとの第4誤差を計算することと、
前記第4誤差に基づいて前記メタデータ推定部のパラメータを更新することと、
前記メタデータ推定部に前記第1推定テキストを入力して第2推定メタデータを取得することと、
前記第2推定メタデータについて前記第1メタデータとの第5誤差を計算することと、
を含み、
前記第5誤差に基づいて少なくとも前記テキスト生成部のパラメータが更新される、
請求項1に記載の学習方法。
【請求項3】
前記第1ユーザは、前記画像の撮影者、創作者、投稿者、提供者、及び所有者のうち少なくとも1つに該当しており、
前記第1メタデータは、前記第1ユーザの属性を示す情報を含む、請求項2に記載の学習方法。
【請求項4】
前記第1テキストは、前記第1ユーザによって作成された文章を含む、請求項2又は3に記載の学習方法。
【請求項5】
前記第1画像は、前記第1ユーザによってソーシャルネットワーキングサービスに投稿された画像であり、
前記第1テキストは、前記第1ユーザによって前記ソーシャルネットワーキングサービスに投稿された文章であり、
前記第1メタデータは、前記ソーシャルネットワーキングサービスに登録されている前記第1ユーザのユーザ情報の少なくとも一部を含む、
請求項2から4のいずれか一項に記載の学習方法。
【請求項6】
前記第1画像は、前記第1ユーザが受信したメールを画像情報に変換した画像であり、
前記第1テキストは、前記第1ユーザが送信したメールの文章を含む、請求項2から5のいずれか一項に記載の学習方法。
【請求項7】
前記第1誤差に基づいて前記特徴量抽出部のパラメータを更新すること、
をさらに含む、請求項1から6のいずれか一項に記載の学習方法。
【請求項8】
前記学習モデルは、階層型ニューラルネットワークを用いて構成される請求項1から7のいずれか一項に記載の学習方法。
【請求項9】
請求項1から8のいずれか一項に記載の学習方法の処理をコンピュータに実行させるためのプログラム。
【請求項10】
請求項9に記載のプログラムが記録された非一時的かつコンピュータ読取可能な記録媒体。
【請求項11】
請求項1から8のいずれか一項に記載の学習方法を用いて学習された学習済みの前記テキスト生成部である学習済みモデル。
【請求項12】
請求項1から8のいずれか一項に記載の学習方法を用いて学習された学習済みの前記テキスト生成部と、
前記特徴量抽出部と、
を備えるテキスト生成装置。
【請求項13】
学習用の第1画像と、前記第1画像に対する正解テキストとしての第1テキストと、を組み合わせた複数の学習データの入力を受け付ける学習データ取得部と、
前記学習データによって訓練される学習モデルであって、
入力された画像から画像特徴量を抽出する特徴量抽出部と、
前記画像特徴量に基づいて前記画像に関する推定テキストを生成するテキスト生成部と、
前記推定テキスト又は前記第1テキストの入力を受け、入力されたテキストに対応する画像の統計量を推定して推定画像統計量を生成する統計量推定部と、
を含む前記学習モデルと、
前記第1画像を前記特徴量抽出部に入力することにより前記特徴量抽出部から得られる第1画像特徴量を、前記テキスト生成部に入力することにより前記テキスト生成部から得られる第1推定テキストと前記第1テキストとの第1誤差を計算する第1誤差計算部と、
前記統計量推定部に前記第1テキストを入力することにより前記統計量推定部から得られる第1推定画像統計量と前記第1画像から計算される第1画像統計量との第2誤差を計算し、かつ、前記統計量推定部に前記第1推定テキストを入力することにより前記統計量推定部から得られる第2推定画像統計量と前記第1画像統計量との第3誤差を計算する第2誤差計算部と、
前記第1誤差及び前記第2誤差に基づいて前記テキスト生成部及び前記統計量推定部のパラメータを更新し、かつ、前記第3誤差に基づいて少なくとも前記テキスト生成部のパラメータを更新するパラメータ更新部と、
を備える学習装置。
【請求項14】
前記テキスト生成部は、前記画像特徴量と前記画像に関連付けされたユーザに関するメタデータとから前記推定テキストを生成するモジュールであり、
前記学習モデルは、さらに、
前記推定テキスト又は前記第1テキストの入力を受け、入力されたテキストに対応するユーザのメタデータを推定して推定メタデータを生成するメタデータ推定部を含み、
前記学習データは、さらに、前記第1画像に関連付けされた第1ユーザに関する第1メタデータを含み、
前記テキスト生成部に前記第1画像特徴量と前記第1メタデータとを入力することにより前記第1推定テキストが取得され、
さらに、
前記メタデータ推定部に前記第1テキストを入力することにより前記メタデータ推定部から得られる第1推定メタデータと前記第1メタデータとの第4誤差を計算し、かつ、前記メタデータ推定部に前記第1推定テキストを入力することにより前記メタデータ推定部から得られる第2推定メタデータと前記第1画像統計量との第5誤差を計算する第3誤差計算部を備え、
前記パラメータ更新部は、前記第4誤差に基づいて前記メタデータ推定部のパラメータを更新し、かつ、前記第5誤差に基づいて少なくとも前記テキスト生成部のパラメータを更新する、請求項13に記載の学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法及び装置、プログラム、学習済みモデル並びにテキスト生成装置に係り、特に、画像に関連するテキストの生成を実現する機械学習技術、画像処理技術及び自然言語処理技術に関する。
【背景技術】
【0002】
画像から画像のキャプションを自動生成する技術として、非特許文献1に記載の技術が知られている。非特許文献1では画像から画像の特徴を抽出する畳み込みニューラルネットワーク(CNN:Convolutional neural network)と、抽出された画像特徴量を基に自然言語によるキャプションを生成する再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)と、を組み合わせた画像キャプション生成器が提案されている。なお、キャプションはテキストの概念に含まれる。
【0003】
非特許文献2には、従来の画像キャプションの自動生成技術について概括的にまとめられている。
【0004】
非特許文献3には、条件付き敵対的生成ネットワーク(Conditional GAN:Conditional Generative Adversarial Network)を用い、学習の際に画像以外の入力を加えることで、1つのモデルから様々な文体を出力する研究が記載されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】Oriol Vinyals, Alexander Toshev, Samy Bengio, Dumitru Erhan “Show and Tell: A Neural Image Caption Generator”, arXiv:1411.4555
【文献】牛久祥孝「画像キャプションの自動生成」[平成30年12月22日検索]、インターネット<URL:https://www.slideshare.net/YoshitakaUshiku/ss-57148161>
【文献】Bo Dai, Sanja Fidler, Raquel Urtasun, Dahua Lin “Towards Diverse and Natural Image Descriptions via a Conditional GAN”, arXiv:1703.06029
【発明の概要】
【発明が解決しようとする課題】
【0006】
画像に対応するテキストを自動生成するためのテキスト生成モデルを得るために、学習用の画像とその画像に対応する正解のテキストとのペアのデータを用いて機械学習を行うことが考えられる。しかし、画像に対するテキストの表現の自由度は大きく、従来の学習方法では、学習モデルのパラメータの収束が遅いこと、及び/又は、学習によって得られるテキスト生成モデルの推論の精度が不十分である、という課題がある。
【0007】
本発明はこのような事情に鑑みてなされたもので、画像からテキストを自動生成する処理に用いられるモデルの推論の精度を高めることができる学習方法及び装置、プログラム、学習済みモデル並びにテキスト生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示の一態様に係る学習方法は、画像から画像特徴量を抽出する特徴量抽出部と、画像特徴量に基づいて画像に関する推定テキストを生成するテキスト生成部と、推定テキスト又は正解テキストの入力を受け、入力されたテキストに対応する画像の統計量を推定して推定画像統計量を生成する統計量推定部と、を含む学習モデルを用いることと、学習用の第1画像と、第1画像に対する正解テキストとしての第1テキストと、を組み合わせた複数の学習データの入力を受け付けることと、特徴量抽出部に第1画像を入力して第1画像特徴量を取得することと、テキスト生成部に第1画像特徴量を入力して第1推定テキストを取得することと、第1推定テキストについて第1テキストとの第1誤差を計算することと、統計量推定部に第1テキストを入力して第1推定画像統計量を取得することと、第1推定画像統計量について第1画像から計算される第1画像統計量との第2誤差を計算することと、統計量推定部に第1推定テキストを入力して第2推定画像統計量を取得することと、第2推定画像統計量について第1画像統計量との第3誤差を計算することと、第2誤差に基づいて統計量推定部のパラメータを更新することと、第1誤差及び第3誤差に基づいて少なくともテキスト生成部のパラメータを更新することと、を含む学習方法である。
【0009】
本態様の学習方法は、テキスト生成部と統計量推定部とを組み合わせた学習モデルが用いられ、テキスト生成部と統計量推定部との学習が並行して行われる。本態様によれば、テキスト生成部の推定結果を基に統計量推定部により推定される第1推定画像統計量と正解の第1画像統計量との第3誤差を用いてテキスト生成部のパラメータを更新する仕組みが導入されており、自由度の高いテキストの生成に対して、画像統計量の制約が加味された学習が行われる。これにより、与えられた画像から精度の高いテキストを生成することが可能なモデルを得ることができる。
【0010】
第1誤差に基づくテキスト生成部のパラメータの更新タイミングと、第3誤差に基づくテキスト生成部のパラメータの更新タイミングとは、異なるタイミングであってもよいし、同時のタイミングであってもよい。また、テキスト生成部のパラメータを更新するタイミングと、統計量推定部のパラメータを更新するタイミングとは、異なるタイミングであってもよいし、同時のタイミングであってもよい。
【0011】
本開示の他の態様に係る学習方法において、テキスト生成部は、画像特徴量と画像に関連付けされたユーザに関するメタデータとから推定テキストを生成するモジュールであり、学習モデルは、さらに、推定テキスト又は正解テキストの入力を受け、入力されたテキストに対応するユーザのメタデータを推定して推定メタデータを生成するメタデータ推定部を含み、学習データは、さらに、第1画像に関連付けされた第1ユーザに関する第1メタデータを含み、テキスト生成部に第1画像特徴量と第1メタデータとを入力することにより第1推定テキストが取得され、さらに、メタデータ推定部に第1テキストを入力して第1推定メタデータを取得することと、第1推定メタデータについて第1メタデータとの第4誤差を計算することと、第4誤差に基づいてメタデータ推定部のパラメータを更新することと、メタデータ推定部に第1推定テキストを入力して第2推定メタデータを取得することと、第2推定メタデータについて第1メタデータとの第5誤差を計算することと、を含み、第5誤差に基づいて少なくともテキスト生成部のパラメータが更新される構成とすることができる。
【0012】
この態様によれば、ユーザの属性に基づいて生成するテキストの文体を変化させ、ユーザの意図に近いテキストを生成することが可能になる。
【0013】
本開示のさらに他の態様に係る学習方法において、第1ユーザは、画像の撮影者、創作者、投稿者、提供者、及び所有者のうち少なくとも1つに該当しており、第1メタデータは、第1ユーザの属性を示す情報を含む構成とすることができる。
【0014】
本開示のさらに他の態様に係る学習方法において、第1テキストは、第1ユーザによって作成された文章を含む構成とすることができる。
【0015】
本開示のさらに他の態様に係る学習方法において、第1画像は、第1ユーザによってソーシャルネットワーキングサービスに投稿された画像であり、第1テキストは、第1ユーザによってソーシャルネットワーキングサービスに投稿された文章であり、第1メタデータは、ソーシャルネットワーキングサービスに登録されている第1ユーザのユーザ情報の少なくとも一部を含む構成とすることができる。
【0016】
本開示のさらに他の態様に係る学習方法において、第1画像は、第1ユーザが受信したメールを画像情報に変換した画像であり、第1テキストは、第1ユーザが送信したメールの文章を含む構成とすることができる。
【0017】
本開示のさらに他の態様に係る学習方法において、第1誤差に基づいて特徴量抽出部のパラメータを更新すること、をさらに含む構成とすることができる。
【0018】
本開示のさらに他の態様に係る学習方法において、学習モデルは、階層型ニューラルネットワークを用いて構成される構成とすることができる。
【0019】
本開示のさらに他の態様に係るプログラムは、本開示のいずれか一態様に係る学習方法の処理をコンピュータに実行させるためのプログラムである。
【0020】
本開示のさらに他の態様に係る学習済みモデルは、本開示のいずれか一態様に係る学習方法を用いて学習された学習済みのテキスト生成部である。
【0021】
本開示のさらに他の態様に係るテキスト生成装置は、本開示のいずれか一態様に係る学習方法を用いて学習された学習済みのテキスト生成部と、特徴量抽出部と、を備えるテキスト生成装置である。
【0022】
本開示のさらに他の態様に係る学習装置は、学習用の第1画像と、第1画像に対する正解テキストとしての第1テキストと、を組み合わせた複数の学習データの入力を受け付ける学習データ取得部と、学習データによって訓練される学習モデルであって、入力された画像から画像特徴量を抽出する特徴量抽出部と、画像特徴量に基づいて画像に関する推定テキストを生成するテキスト生成部と、推定テキスト又は第1テキストの入力を受け、入力されたテキストに対応する画像の統計量を推定して推定画像統計量を生成する統計量推定部と、を含む学習モデルと、第1画像を特徴量抽出部に入力することにより特徴量抽出部から得られる第1画像特徴量を、テキスト生成部に入力することによりテキスト生成部から得られる第1推定テキストと第1テキストとの第1誤差を計算する第1誤差計算部と、統計量推定部に第1テキストを入力することにより統計量推定部から得られる第1推定画像統計量と第1画像から計算される第1画像統計量との第2誤差を計算し、かつ、統計量推定部に第1推定テキストを入力することにより統計量推定部から得られる第2推定画像統計量と第1画像統計量との第3誤差を計算する第2誤差計算部と、第1誤差及び第2誤差に基づいてテキスト生成部及び統計量推定部のパラメータを更新し、かつ、第3誤差に基づいて少なくともテキスト生成部のパラメータを更新するパラメータ更新部と、を備える学習装置である。
【0023】
パラメータ更新部による、テキスト生成部及び統計量推定部のそれぞれのパラメータの更新タイミングは異なるタイミングであってもよいし、同時のタイミングであってもよい。パラメータ更新部は、第1誤差及び第3誤差に基づいてテキスト生成部のパラメータを更新し、かつ、第2誤差に基づいて統計量推定部のパラメータを更新してよい。パラメータ更新部は、第3誤差に基づいて統計量推定部のパラメータを更新してもよい。
【0024】
本開示のさらに他の態様に係る学習装置において、テキスト生成部は、画像特徴量と画像に関連付けされたユーザに関するメタデータとから推定テキストを生成するモジュールであり、学習モデルは、さらに、推定テキスト又は第1テキストの入力を受け、入力されたテキストに対応するユーザのメタデータを推定して推定メタデータを生成するメタデータ推定部を含み、学習データは、さらに、第1画像に関連付けされた第1ユーザに関する第1メタデータを含み、テキスト生成部に第1画像特徴量と第1メタデータとを入力することにより第1推定テキストが取得され、さらに、メタデータ推定部に第1テキストを入力することによりメタデータ推定部から得られる第1推定メタデータと第1メタデータとの第4誤差を計算し、かつ、メタデータ推定部に第1推定テキストを入力することによりメタデータ推定部から得られる第2推定メタデータと第1画像統計量との第5誤差を計算する第3誤差計算部を備え、パラメータ更新部は、第4誤差に基づいてメタデータ推定部のパラメータを更新し、かつ、第5誤差に基づいて少なくともテキスト生成部のパラメータを更新する構成であってよい。
【0025】
本開示の他の態様に係る学習装置は、少なくとも1つのプロセッサと、プロセッサに実行させるための命令が記憶された非一時的なコンピュータ可読媒体と、を備え、プロセッサは、命令を実行することにより、画像から画像特徴量を抽出する特徴量抽出部と、画像特徴量に基づいて画像に関する推定テキストを生成するテキスト生成部と、推定テキスト又は正解テキストの入力を受け、入力されたテキストに対応する画像の統計量を推定して推定画像統計量を生成する統計量推定部と、を含む学習モデルとして機能し、学習用の第1画像と、第1画像に対する正解テキストとしての第1テキストと、を組み合わせた複数の学習データの入力を受け付けることと、第1画像を特徴量抽出部に入力することにより特徴量抽出部から得られる第1画像特徴量を、テキスト生成部に入力することによりテキスト生成部から得られる第1推定テキストと第1テキストとの第1誤差を計算することと、統計量推定部に第1テキストを入力することにより統計量推定部から得られる第1推定画像統計量と第1画像から計算される第1画像統計量との第2誤差を計算し、かつ、統計量推定部に第1推定テキストを入力することにより統計量推定部から得られる第2推定画像統計量と第1画像統計量との第3誤差を計算することと、第1誤差及び第2誤差に基づいてテキスト生成部及び統計量推定部のパラメータを更新し、かつ、第3誤差に基づいて少なくともテキスト生成部のパラメータを更新することを、を含む処理を行う学習装置である。
【発明の効果】
【0026】
本発明によれば、画像に対応するテキストを精度よく生成することが可能になる。
【図面の簡単な説明】
【0027】
【
図1】
図1は、第1実施形態に係るキャプション生成装置の例を示す機能ブロック図である。
【
図2】
図2は、第1実施形態に係る学習装置の構成例を示す機能ブロック図である。
【
図3】
図3は、学習装置の特徴量抽出部、テキスト生成部、統計量推定部及び統計量計算部の各モジュールに入力されるデータと各モジュールから出力されるデータとを概略的に示すブロック図である。
【
図4】
図4は、第1実施形態に係る学習方法の手順を例示的に示すフローチャートである。
【
図5】
図5は、第1実施形態に係る学習方法の手順を例示的に示すフローチャートである。
【
図6】
図6は、学習装置の第1誤差計算部によって計算される第1誤差に基づいてテキスト生成部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図7】
図7は、学習装置の第2誤差計算部によって計算される第2誤差に基づいて統計量推定部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図8】
図8は、学習装置の第2誤差計算部によって計算される第3誤差に基づいてテキスト生成部及び統計量推定部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図9】
図9は、第2実施形態に係るキャプション生成装置の例を示す機能ブロック図である。
【
図10】
図10は、第2実施形態に係る学習装置の構成例を示す機能ブロック図である。
【
図11】
図11は
、学習装置の特徴量抽出部、テキスト生成部、メタデータ推定部、統計量推定部及び統計量計算部の各モジュールに入力されるデータと各モジュールから出力されるデータとを概略的に示すブロック図である。
【
図12】
図12は、第2実施形態に係る学習方法の手順を例示的に示すフローチャートである。
【
図13】
図13は、第2実施形態に係る学習方法の手順を例示的に示すフローチャートである。
【
図14】
図14は、学習装置の第1誤差計算部によって計算される第1誤差に基づいてテキスト生成部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図15】
図15は、学習装置の第3誤差計算部によって計算される第4誤差に基づいてメタデータ推定部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図16】
図16は、学習装置の第2誤差計算部によって計算される第2誤差に基づいて統計量推定部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図17】
図17は、学習装置の第3誤差計算部によって計算される第5誤差に基づいてテキスト生成部及びメタデータ推定部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図18】
図18は、学習装置の第2誤差計算部によって計算される第3誤差に基づいてテキスト生成部及び統計量推定部のパラメータを更新する処理の様子を模式的に示すブロック図である。
【
図19】
図19は、応用例1に係るキャプション生成機能を実現するコンピュータシステムの全体構成の例を示すブロック図である。
【
図20】
図20は、データ保管部に保管されているデータの概念図である。
【
図21】
図21は、コンピュータのハードウェア構成の例を示すブロック図である。
【発明を実施するための形態】
【0028】
以下、添付図面に従って本発明の好ましい実施の形態について詳説する。
【0029】
《第1実施形態に係るテキスト生成装置の概要》
図1は、本発明の第1実施形態に係るキャプション生成装置の例を示す機能ブロック図である。キャプション生成装置10は、画像IMGを入力として、入力された画像IMGに関する推定テキストPTXを生成して出力する。画像IMGは、例えば、撮像デバイスを用いて撮影されたデジタル写真画像であってもよいし、スキャナを用いて読み込まれた読取画像であってもよいし、スクリーンショットのようなキャプチャ画像であってもよいし、あるいは作画ツールなどを用いて作成されたイラストなどであってもよい。
【0030】
推定テキストPTXは、画像IMGのコンテンツに応じたキャプションであり、自然言語の表現による文字情報である。「テキスト」という用語は「キャプション」の概念を含む。本明細書でいう「テキスト」あるいは「キャプション」という用語は、意味のまとまりを伝える複数の単語の配列を含み、文、文章、句、若しくは、節の概念を含む。テキストに使用する文字には、記号、顔文字及び絵文字が含まれてもよい。本明細書では「生成する」という用語は「推定する」という用語の概念を含む。
【0031】
キャプション生成装置10は、画像取得部12と、特徴量抽出部16と、テキスト生成部18と、を含む。キャプション生成装置10は、1台又は複数台のコンピュータを含むコンピュータシステムによって実現することができる。すなわち、画像取得部12、特徴量抽出部16、及びテキスト生成部18の機能は、コンピュータのハードウェアとソフトウェアの組み合わせによって実現できる。ソフトウェアは「プログラム」と同義である。
【0032】
画像取得部12は、画像IMGのデータを取り込むためのインターフェースである。画像取得部12は、外部又は装置内の他の信号処理部から画像IMGのデータを取り込むデータ入力端子で構成されてよい。メタデータ取得部14は、メタデータMTDのデータを取り込むためのインターフェースである。メタデータ取得部14は、外部又は装置内の他の信号処理部からメタデータMTDを取り込むデータ入力端子で構成されてよい。
【0033】
また、画像取得部12には、有線又は無線の通信インターフェース部を採用してもよいし、メモリカードなどの可搬型の外部記憶媒体の読み書きを行うメディアインターフェース部を採用してもよく、若しくは、これら態様の適宜の組み合わせであってもよい。
【0034】
画像取得部12を介して入力された画像IMGは特徴量抽出部16に送られる。特徴量抽出部16は、入力された画像IMGから画像特徴量を抽出して出力する。特徴量抽出部16は、例えば、畳み込みニューラルネットワーク(CNN)に代表される階層型ニューラルネットワークを用いた学習済みモデルであってよい。特徴量抽出部16は、画像分類のタスクなどに利用されるCNNのエンコーダに相当するネットワーク部分を利用したものであってよい。
【0035】
「ニューラルネットワーク」とは、脳神経系の仕組みを模擬した情報処理の数理モデルである。ニューラルネットワークを用いた処理は、コンピュータを用いて実現することができる。ニューラルネットワークを含む処理部は、プログラムモジュールとして構成され得る。本明細書においてニューラルネットワークを単に「ネットワーク」と表記する場合がある。
【0036】
特徴量抽出部16から出力された画像特徴量はテキスト生成部18に送られる。
【0037】
テキスト生成部18は、与えられた画像特徴量を基に、推定テキストPTXを生成する。テキスト生成部18は、階層型ニューラルネットワークを含む学習モデルによって構成されており、後述の学習方法を用いた機械学習によって画像からテキストを生成する機能が獲得される。キャプション生成装置10は本開示における「テキスト生成装置」の一例である。
【0038】
《学習装置の構成例1》
次に、テキスト生成部18の推定機能を高めるための学習方法について説明する。
【0039】
図2は、第1実施形態に係る学習装置20の構成例を示す機能ブロック図である。学習装置20は、学習データ保管部60と接続される。学習データ保管部60は、学習装置20が機械学習を行うために必要な学習データLDiを保管しておくストレージを含んで構成される。「学習データ」とは、機械学習に用いる訓練用のデータであり、「学習用データ」或いは「訓練データ」と同義である。
【0040】
本実施形態の機械学習においては、画像Iiと、画像Iiを説明するテキストTiと、の組み合わせである学習データLDi=(Ii,Ti)を多数使用する。iは学習データを識別するインデックス番号であり、例えば、用意される学習データの総数がNである場合、iは0以上N-1以下の整数であってよい。例えば、i=0からi=nまでのn+1セットの学習データの集合は、次のように表記される。
【0041】
{(I0,T0),(I1,T1),・・・(Ii,Ti),・・・(In,Tn)}
なお、ミニバッチ処理を行う場合、ミニバッチの学習データ数をmとすると、N組の中からm組の学習データが選択されることになる。
【0042】
学習データ保管部60及び学習装置20の機能は、コンピュータのハードウェアとソフトウェアの組み合わせによって実現できる。ここでは、学習データ保管部60と学習装置20とがそれぞれ別々の装置として構成される例を説明するが、これらの機能は1台のコンピュータで実現してもよいし、2以上の複数台のコンピュータで処理の機能を分担して実現してもよい。
【0043】
例えば、学習データ保管部60と学習装置20とは、図示しない電気通信回線を介して互いに接続されていてもよい。「接続」という用語は、有線接続に限らず、無線接続の概念も含む。電気通信回線は、ローカルエリアネットワークであってもよいし、ワイドエリアネットワークであってもよい。
【0044】
このように構成することで、学習データの生成と生成モデルの学習とを物理的にも時間的にも互いに束縛されることなく実施することができる。
【0045】
学習装置20は、学習データ保管部60から学習データLDiを読み込み、機械学習を実行する。学習装置20は、複数の学習データLDiをまとめたミニバッチの単位で学習データLDiの読み込みとパラメータの更新を行うことができる。
図2においては、説明を簡単にするために1組の学習データLDi=(Ii,Ti)の処理の流れを示すが、ミニバッチ学習を行う場合、ミニバッチに含まれる複数組の(例えばm組の)学習データが一括して処理される。
【0046】
学習装置20は、データ取得部22と、特徴量抽出部26と、テキスト生成部28と、統計量推定部32と、統計量計算部34と、第1誤差計算部41と、第2誤差計算部42と、オプティマイザ46と、を含む。
【0047】
データ取得部22は、学習データLDiを取り込むためのインターフェースである。データ取得部22は、
図1の画像取得部12と同様の構成であってよい。すなわち、データ取得部22は、外部又は装置内の他の信号処理部から学習データLDiを取り込むデータ入力端子で構成されてよい。また、データ取得部22には、有線又は無線の通信インターフェース部を採用してもよいし、メモリカードなどの可搬型の外部記憶媒体の読み書きを行うメディアインターフェース部を採用してもよく、若しくは、これら態様の適宜の組み合わせであってもよい。
【0048】
特徴量抽出部26は、入力された画像Iiから画像特徴量Fiを計算する。特徴量抽出部26は、
図1の特徴量抽出部16と同様の構成である。特徴量抽出部26によって計算された画像特徴量Fiは、多次元のベクトルで表される。例えば、画像特徴量Fiは512次元のベクトルで表されてよい。特徴量抽出部26によって計算された画像特徴量Fiはテキスト生成部28に送られる。
【0049】
テキスト生成部28は、
図1のテキスト生成部18と同様の階層型ニューラルネットワークを含むモデルによって構成される。テキスト生成部28は、与えられた画像特徴量Fiを基に、推定テキストT^iを生成する。テキスト生成部28から出力された推定テキストT^iは第1誤差計算部41に送られる。また、テキスト生成部28から出力された推定テキストT^iは統計量推定部32に送られる。
【0050】
第1誤差計算部41は、テキスト生成部28によって生成された推定テキストT^iに対して、教師データであるテキストTiとの誤差を計算する。第1誤差計算部41は、損失関数を用いて誤差を評価する。推定テキストT^iと正解テキストとしてのテキストTiとの誤差を第1誤差Er1という。第1誤差計算部41によって計算された第1誤差Er1はオプティマイザ46に送られる。
【0051】
統計量推定部32は、与えられたテキストから、このテキストに対応する画像の画像統計量を推定して推定画像統計量を出力する。画像統計量とは、例えば、R(赤)G(緑)B(青)の色成分の平均値、若しくは色の分布、カラーヒストグラムなどのように、画像のデータから統計的な計算によって求めることができる統計量である。画像統計量は、画像全体の雰囲気を評価する指標として用いられる。統計量推定部32は、データ取得部22を介して入力されたテキストTiが与えられると、このテキストTiからテキストTiに対応する画像の推定画像統計量IS^iを生成する。統計量推定部32から出力された推定画像統計量IS^iは第2誤差計算部42に送られる。
【0052】
統計量計算部34は、データ取得部22を介して入力された画像Iiから、この画像Iiの実際の画像統計量ISiを計算する。統計量計算部34から出力された画像統計量ISiは第2誤差計算部42に送られる。
【0053】
第2誤差計算部42は、統計量推定部32によって生成された推定画像統計量IS^iに対して、教師データに相当する画像統計量ISiとの誤差を計算する。第2誤差計算部42は、損失関数を用いて誤差を評価する。推定画像統計量IS^iと正解としての画像統計量ISiとの誤差を第2誤差Er2という。第2誤差計算部42によって算出された第2誤差Er2はオプティマイザ46に送られる。
【0054】
オプティマイザ46は、第1誤差計算部41、及び第2誤差計算部42の各々の計算結果からテキスト生成部28及び統計量推定部32のそれぞれのネットワークのパラメータを更新する処理を行う。ネットワークのパラメータは、各層の処理に用いるフィルタのフィルタ係数(ノード間の結合の重み)及びノードのバイアスなどを含む。
【0055】
オプティマイザ46は、第1誤差計算部41及び第2誤差計算部42の各々から得られる誤差の計算結果を用いて、テキスト生成部28及び統計量推定部32のそれぞれのネットワークのパラメータの更新量を計算するパラメータ演算処理と、計算されたパラメータの更新量に従い、テキスト生成部28及び統計量推定部32のそれぞれのネットワークのパラメータを更新するパラメータ更新処理と、を行う。オプティマイザ46は、勾配降下法に代表される誤差逆伝播法などのアルゴリズムに基づきパラメータの更新を行う。
【0056】
さらに、この学習装置20では、テキスト生成部28が生成した推定テキストT^iを統計量推定部32に入力して、上記と同様の学習を行う。すなわち、テキスト生成部28によって生成した推定テキストT^iは統計量推定部32に入力される。
【0057】
統計量推定部32は、与えられた推定テキストT^iから、この推定テキストT^iに対応する画像の推定画像統計量IS^^iを生成する。統計量推定部32から出力された推定画像統計量IS^^iは第2誤差計算部42に送られる。
【0058】
第2誤差計算部42は、統計量推定部32によって生成された推定画像統計量IS^^iに対して、教師データとしての画像統計量ISiとの誤差を計算する。推定画像統計量IS^^iと正解としての画像統計量ISiとの誤差を第3誤差Er3という。第2誤差計算部42によって算出された第3誤差Er3はオプティマイザ46に送られる。
【0059】
オプティマイザ46は、第2誤差計算部42から得られる第3誤差Er3を用いて、テキスト生成部28及び統計量推定部32のそれぞれのネットワークのパラメータを更新する。なお、オプティマイザ46は、第3誤差Er3から少なくともテキスト生成部28のパラメータの更新量を計算してテキスト生成部28のパラメータを更新すればよく、統計量推定部32のパラメータは、第3誤差Er3を基に更新しない態様も可能である。
【0060】
テキスト生成部28及び統計量推定部32のパラメータを更新するタイミングは特に限定されない。テキスト生成部28のパラメータの更新タイミングと、統計量推定部32のパラメータの更新タイミングとは、異なるタイミングであってもよいし、同時のタイミングであってもよい。
【0061】
また、第1誤差から計算されるテキスト生成部28のパラメータ更新量に基づくテキスト生成部28のパラメータ更新のタイミングと、第3誤差から計算されるテキスト生成部28のパラメータ更新量に基づくテキスト生成部28のパラメータ更新のタイミングとは、異なるタイミングであってもよいし、同時のタイミングであってもよい。例えば、オプティマイザ46は、第1誤差から計算されるテキスト生成部28のパラメータ更新量と、第3誤差から計算されるテキスト生成部28のパラメータ更新量とをマージして、このマージしたパラメータ更新量に従ってテキスト生成部28のパラメータの更新処理を実施してもよい。
【0062】
図3は、学習装置20における特徴量抽出部26、テキスト生成部28、統計量推定部32及び統計量計算部34の各モジュールに入力されるデータと各モジュールから出力されるデータとを概略的に示すブロック図である。テキスト生成部28から出力される推定テキストT^iと正解のテキストTiとに基づいて第1誤差Er1が計算される。統計量推定部32には、テキストTi又は推定テキストT^iが選択的に入力される。統計量推定部32は、テキストTiの入力を受けて推定画像統計量IS^iを出力する。統計量推定部32から出力される推定画像統計量IS^iと正解の画像統計量ISiとに基づいて第2誤差Er2が計算される。
【0063】
また、統計量推定部32は、推定テキストT^iの入力を受けて推定画像統計量IS^^iを出力する。統計量推定部32から出力される推定画像統計量IS^^iと正解の画像統計量ISiとに基づいて第3誤差Er3が計算される。
【0064】
データ取得部22は本開示における「学習データ取得部」の一例である。画像Iiは本開示における「学習用の第1画像」の一例である。テキストTiは本開示における「第1テキスト」の一例である。特徴量抽出部26、テキスト生成部28、統計量推定部32の組み合わせは本開示における「学習モデル」の一例である。画像特徴量Fiは本開示における「第1画像特徴量」の一例である。推定テキストT^iは本開示における「第1推定テキスト」の一例である。画像統計量ISiは本開示における「第1画像統計量」の一例である。推定画像統計量IS^iは本開示における「第1推定画像統計量」の一例である。推定テキストT^iから推定される推定画像統計量IS^^iは本開示における「第2推定画像統計量」の一例である。オプティマイザ46は本開示における「パラメータ更新部」の一例である。
【0065】
《学習装置20を用いた学習方法の例》
図4及び
図5は、本発明の実施形態に係る学習方法の手順を例示的に示すフローチャートである。
図4及び
図5に示すフローチャートのステップの一部又は全部は、学習装置20として機能するプロセッサによって実行される。
【0066】
まず、ステップS1において、学習データセットを用意する。すなわち、画像IiとテキストTiとの組み合わせを複数組み用意する。学習データセットを生成する機能は、学習装置20に組み込まれていてもよいし、学習装置20とは別の装置に組み込まれていてもよい。
【0067】
ステップS1は、学習装置20が学習データを読み込み可能な状態に学習データをあらかじめ準備することを含む。また、ステップS1は、学習データを必要に応じて随時生成することを含む。学習装置20は、ステップS1にて用意された学習データを読み込む。学習装置20は、複数の学習データを含むミニバッチの単位で学習データを取得することができる。
【0068】
ステップS2において、学習装置20は特徴量抽出部26に画像Iiを入力し、画像特徴量Fiを取得する。
【0069】
ステップS3において、学習装置20はテキスト生成部28に画像特徴量Fiを入力し、推定テキストT^iを取得する。
【0070】
ステップS4において、第1誤差計算部41は推定テキストT^iに対して、テキストTiとの誤差(第1誤差Er1)を計算する。
【0071】
ステップS7において、学習装置20は統計量推定部32にテキストTiを入力し、推定画像統計量IS^iを取得する。
【0072】
ステップS8において、第2誤差計算部42は推定画像統計量IS^iと画像Iiから計算できる画像統計量ISiとの誤差(第2誤差Er2)を計算する。統計量計算部34は、ステップS8以前の適宜のタイミングで画像Iiから画像統計量ISiを計算する。
【0073】
ステップS9において、オプティマイザ46はステップS4及びS8で計算された誤差に基づいて、テキスト生成部28及び統計量推定部32のパラメータを更新する。パラメータの更新処理はミニバッチの単位で実施される。
【0074】
ステップS9の後、上述のステップS7からS9の各入力として、テキスト生成部28が推定した推定テキストT^iを使用し、同様の処理を行う。
【0075】
すなわち、
図5のステップS17において、学習装置20は統計量推定部32に推定テキストT^iを入力し、推定画像統計量IS^^iを取得する。
【0076】
ステップS18において、第2誤差計算部42は推定画像統計量IS^^iと画像Iiから計算できる画像統計量ISiとの誤差(第3誤差Er3)を計算する。
【0077】
ステップS19において、オプティマイザ46はステップS18で計算された誤差に基づいて、テキスト生成部28、及び統計量推定部32のパラメータを更新する。なお、オプティマイザ46は、ステップS18で計算された第3誤差Er3を用いて少なくともテキスト生成部28のパラメータを更新すればよい。例えば、ステップS19の際に、オプティマイザ46は統計量推定部32のパラメータを固定して更新の対象から除外し、テキスト生成部28に限りパラメータを更新してもよい。また、オプティマイザ46は、ステップS19において、ステップS4で計算された第1誤差Er1とステップS18で計算された第3誤差Er3に基づきテキスト生成部28のパラメータを更新してもよい。
【0078】
ステップS20において、学習装置20は学習を終了するか否かの判別を行う。学習終了条件は、誤差の値に基づいて定められていてもよいし、パラメータの更新回数に基づいて定められていてもよい。誤差の値に基づく方法としては、例えば、誤差が規定の範囲内に収束していることを学習終了条件としてよい。更新回数に基づく方法としては、例えば、更新回数が規定回数に到達したことを学習終了条件としてよい。
【0079】
ステップS20の判定結果がNo判定である場合、学習装置20はステップS1に戻り、学習終了条件を満たすまで、学習の処理を繰り返す。
【0080】
ステップS20の判定結果がYes判定である場合、学習装置20は
図4及び
図5に示すフローチャートを終了する。
【0081】
こうして得られた学習済みのテキスト生成部28の部分を、キャプション生成装置10のテキスト生成部18として適用する。学習済みのテキスト生成部28は本開示における「学習済みモデル」の一例である。学習済みのテキスト生成部28のモジュールを学習装置20とは別装置のキャプション生成装置10のテキスト生成部18として実装してもよいし、学習装置20をそのままキャプション生成装置10として利用することも可能である。すなわち、学習装置20を構成している特徴量抽出部26及びテキスト生成部28の部分をそのままキャプション生成装置10として利用する形態も可能である。
【0082】
なお、本実施形態では、特徴量抽出部26については学習の対象としていないが、特徴量抽出部26のパラメータも学習の対象に加えてもよい。この場合、特徴量抽出部26及びテキスト生成部28の各ネットワークのパラメータを学習によって更新し、学習済みの特徴量抽出部26及びテキスト生成部28を、キャプション生成装置10の特徴量抽出部16及びテキスト生成部18として利用する。
【0083】
図4及び
図5のフローチャートに示すステップの順番は、技術的矛盾の無い範囲で適宜変更可能であり、複数のステップが同時に実行される場合もありうる。また、テキスト生成部28及び統計量推定部32のそれぞれのパラメータの更新タイミング及び更新頻度についても
図4及び
図5の例に限定されない。
【0084】
《学習モデルのパラメータ更新処理の例》
図6は、第1誤差計算部41によって計算される第1誤差Er1に基づいてテキスト生成部28のパラメータを更新する処理の様子を模式的に示すブロック図である。
図6は、
図4のステップS2~S4及びステップS9の動作によってテキスト生成部28のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。
【0085】
図7は、第2誤差計算部42によって計算される第2誤差Er2に基づいて統計量推定部32のパラメータを更新する処理の様子を模式的に示すブロック図である。
図7は、
図4のステップS7~S9の動作によって統計量推定部32のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。
【0086】
図8は、第2誤差計算部42によって計算される第3誤差Er3に基づいてテキスト生成部28及び統計量推定部32のパラメータを更新する処理の様子を模式的に示すブロック図である。
図8は、
図5のステップS17~S19の動作によってテキスト生成部28及び統計量推定部32のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。
【0087】
図6から
図8の各図において破線で示す矢印は、誤差逆伝播法によるパラメータの更新処理のデータの流れ方向を表している。また、
図6から
図8の各図においてグレーの塗りつぶしにより表示されるブロックは、破線の矢印で示す逆伝播経路のパラメータの更新処理の際に直接的に関与しない要素、つまり非使用となる要素(以下、非アクティブの要素という。)を表している。
【0088】
図6に示す処理を実行する場合、統計量計算部34、統計量推定部32、及び第2誤差計算部42は非アクティブとなる。オプティマイザ46は、第1誤差Er1を基に計算されるテキスト生成部28のパラメータの更新量に基づきテキスト生成部28のパラメータを更新する。なお、オプティマイザ46は、テキスト生成部28に加えて特徴量抽出部26のパラメータを更新してもよい。この場合、オプティマイザ46は第1誤差Er1を基に計算されるテキスト生成部28及び特徴量抽出部26のそれぞれのパラメータの更新量に基づきテキスト生成部28及び特徴量抽出部26のパラメータを更新する。
【0089】
図7に示す処理を実行する場合、オプティマイザ46は、第2誤差Er2を基に計算される統計量推定部32のパラメータの更新量に基づき統計量推定部32のパラメータを更新する。
【0090】
図8に示す処理を実行する場合、オプティマイザ46は、第3誤差Er3を基に計算される統計量推定部32及びテキスト生成部28のそれぞれのパラメータの更新量に基づき、統計量推定部32及びテキスト生成部28のそれぞれのパラメータを更新する。第3誤差Er3に基づくパラメータの更新に関して、
図6と同様に、オプティマイザ46は、特徴量抽出部26のパラメータを更新してもよい。この場合、オプティマイザ46は第3誤差Er3を基に計算される統計量推定部32、テキスト生成部28及び特徴量抽出部26のそれぞれのパラメータの更新量に基づき統計量推定部32、テキスト生成部28及び特徴量抽出部26のパラメータを更新する。
【0091】
あるいはまた、オプティマイザ46は、
図8に示す統計量推定部32についてパラメータを更新しない態様も可能である。
【0092】
テキスト生成部28は、
図6に示す第1誤差Er1と
図8に示す第3誤差Er3とに基づいてパラメータの更新が行われるため、第1誤差Er1のみに基づいてパラメータの更新を行う場合と比較して、効率よく学習を行うことができ、より正確なテキスト生成を実現できる。
【0093】
第3誤差Er3は、テキスト生成部28によって生成された推定テキストの妥当性あるいは正確性を評価する値となりうる。画像からテキストを推定するタスクは、テキストの自由度が大きく、第1誤差Er1のみを用いる学習方法では学習が収束しにくい。
【0094】
この点、第1実施形態に係る学習方法では、テキスト生成部28に統計量推定部32を組み合わせた学習モデルを採用しており、テキスト生成部28によって生成された推定テキストを統計量推定部32の入力として用い、統計量推定部32から得られる推定画像統計量について正解の画像統計量との誤差を評価して、テキスト生成部28の学習に利用している。第1実施形態によれば、統計量推定部32とテキスト生成部28のそれぞれの学習が進むことで、テキスト生成部28は、より正確な推定テキストを出力する機能を獲得する。
【0095】
なお、統計量推定部32を用いる代わりに、テキストの入力を受けて画像を出力する画像生成モデルを採用するという考え方もあり得るが、テキストから画像を生成するというタスクは、画像からテキストを生成するタスクに比べてさらに複雑困難なタスクである。したがって、画像からテキストを生成する処理に用いるテキスト生成モデルを作成することを主眼とする学習モデルに、そのような複雑困難な処理を行うモデルを組み合わせる合理性に乏しい。
【0096】
この点、第1実施形態ではテキストから「画像」を推定する代わりに、より簡易な情報としての「画像統計量」を用い、推定画像統計量が正解の画像統計量に近くなるように制約を加えてテキスト生成部28を含む学習モデルの学習を行う仕組みを採用している。
【0097】
《第1実施形態による効果》
第1実施形態に係る学習方法によれば、テキスト生成部28と統計量推定部32との各ネットワークの学習を並行して進め、さらに、テキスト生成部28から出力される推定テキストT^iを統計量推定部32への入力に与えて学習を行うため、より精度の高い推定テキストの生成が可能になる。
【0098】
《第2実施形態が解決しようとする課題の説明》
次に、本発明の第2実施形態について説明する。まず、解決課題について簡単に説明する。非特許文献1-2に記載されている従来のキャプション生成技術では、学習したデータに従ってキャプションを生成する。自動生成されるキャプションの文体は、学習に用いたデータに依存するため、異なった文体を出力するためには、それぞれのモデルを用意する必要がある。例えば、人が作成する文章には、作成者個人に特有の表現や文章スタイルなどがあり、これらの個性的な表現の特性がその人特有の文体として現れる。
【0099】
このような各個人に特有の文体に近いキャプションを自動生成しようとする場合、従来の技術では、例えば、一人に1つの個別のモデルを用意して、その個人ごとに学習データを用いて個別のモデルの学習を行うことが考えられる。しかし、個人ごとに大量の学習データを収集することは困難であり、現実的とは言えない。
【0100】
非特許文献3では、1つのモデルに対して、画像とは別の情報を付加して、様々な文体を出力する技術が提案されているものの、個人に特有の文体の再現などに関する具体的な手法については記載されていない。
【0101】
このような事情に鑑みて、本発明の第2実施形態は、ユーザの属性に基づいて文体を変化させ、ユーザの意図に近いテキストを生成することが可能となるモデルの学習方法及び装置、プログラム、学習済みモデル、並びにテキスト生成装置を提供する。
【0102】
《第2実施形態に係るキャプション生成装置の概要》
図9は、第2実施形態に係るキャプション生成装置110の例を示す機能ブロック図である。
図9において
図1と同一又は類似する要素には同一の符号を付す。
図1との相違点を説明する。
図9に示すキャプション生成装置110は、画像IMGと、ユーザの属性情報を含むメタデータMTDと、を入力として、これらの入力からユーザの文体に近い推定テキストPTXを生成して出力する。
【0103】
ここでいう「ユーザ」とは、画像IMGに対してキャプションを付加しようとしている者を指す。ユーザは、例えば、画像IMGの撮影者、創作者、投稿者、提供者、及び所有者のうち少なくとも1つに該当するものであってよい。ユーザの属性情報とは、例えば、ユーザの性別、年齢、職業、趣味、嗜好、及び交友関係などのうちの少なくとも1つ、好ましくは複数の情報の組み合わせを含む。メタデータMTDの一部又は全部は、ユーザの登録情報などから取得することができる。例えば、ソーシャルネットワーキングサービス(SNS:Social Networking Service)のシステムを利用するユーザの場合、アカウントの登録情報からメタデータMTDの一部又は全部を読み込むことができる。また、SNSにおける過去の投稿内容を分析するなどして、ユーザの趣味、嗜好などの情報を自動的に取得することもできる。
【0104】
推定テキストPTXは、画像IMGのコンテンツに応じたキャプションであり、メタデータMTDにより特定されるユーザの意図に近いと推定される自然言語の表現による文字情報である。「ユーザの意図」は、「ユーザの好み」、「ユーザの趣味嗜好」あるいは「ユーザの文体」と言い換えてもよい。つまり、推定テキストPTXは、メタデータMTDにより特定されるユーザによって作成される表現(文体)に近いと推定される言語表現の情報である。
【0105】
キャプション生成装置110は、画像取得部12と、メタデータ取得部14と、特徴量抽出部16と、テキスト生成部18と、を含む。キャプション生成装置110は、1台又は複数台のコンピュータを含むコンピュータシステムによって実現することができる。メタデータ取得部14の機能は、コンピュータのハードウェアとソフトウェアの組み合わせによって実現できる。
【0106】
メタデータ取得部14は、メタデータMTDのデータを取り込むためのインターフェースである。メタデータ取得部14は、外部又は装置内の他の信号処理部からメタデータMTDを取り込むデータ入力端子で構成されてよい。画像取得部12及びメタデータ取得部14として機能する共通のインターフェースを採用してもよい。
【0107】
メタデータ取得部14を介して入力されたメタデータMTDは、テキスト生成部18に送られる。
【0108】
テキスト生成部18は、与えられた画像特徴量と画像に関連付けされたメタデータMTDとを基に、推定テキストPTXを生成する。テキスト生成部18は、後述の学習方法を用いた機械学習によってユーザ特有の文体に近い文体のテキストを生成する機能が獲得される。キャプション生成装置110は本開示における「テキスト生成装置」の一例である。
【0109】
《学習装置の構成例2》
次に、テキスト生成部18の推定機能を高めるための学習方法について説明する。
【0110】
図10は、第2実施形態に係る学習装置120の構成例を示す機能ブロック図である。
図10において
図3と同一又は類似する要素には同一の符号を付す。
図3との相違点を説明する。
【0111】
学習装置120は、学習データ保管部60と接続される。学習データ保管部60は、学習装置20が機械学習を行うために必要な学習データLDiを保管しておくストレージを含んで構成される。第2実施形態の機械学習においては、画像Iiと、ユーザの属性を示すメタデータMiと、画像Iiを説明するテキストTiと、の組み合わせである学習データLDi=(Ii,Mi,Ti)を多数使用する。例えば、i=0からi=nまでのn+1セットの学習データの集合は、次のように表記される。
【0112】
{(I0,M0,T0),(I1,M1,T1),・・・(Ii,Mi,Ti),・・・(In,Mn,Tn)}
このような学習データセットは、例えば、SNS(Social Networking Service)を利用するユーザが過去に投稿した画像と、ユーザ(投稿者)のユーザ情報と、その画像に対してユーザが入力したキャプションと、を組み合わせることによって生成することができる。
【0113】
学習装置120は、学習データ保管部60から学習データLDiを読み込み、機械学習を実行する。
図10においては、説明を簡単にするために1組の学習データLDi=(Ii,Mi,Ti)の処理の流れを示すが、ミニバッチ学習を行う場合、ミニバッチに含まれる複数組の(例えばm組の)学習データが一括して処理される。
【0114】
学習装置120は、データ取得部22と、特徴量抽出部26と、テキスト生成部28と、メタデータ推定部30と、統計量推定部32と、統計量計算部34と、第1誤差計算部41と、第2誤差計算部42と、第3誤差計算部43と、オプティマイザ46と、を含む。
【0115】
データ取得部22は、
図9の画像取得部12及びメタデータ取得部14と同様の構成であってよい。
【0116】
テキスト生成部28は、
図9のテキスト生成部18と同様の階層型ニューラルネットワークを含む学習モデルによって構成される。テキスト生成部28は、与えられた画像特徴量FiとメタデータMiとを基に、推定テキストT^iを生成する。テキスト生成部28から出力された推定テキストT^iは第1誤差計算部41に送られる。また、テキスト生成部28から出力された推定テキストT^iは、メタデータ推定部30及び統計量推定部32に送られる。
【0117】
メタデータ推定部30は、与えられたテキストから、このテキストに対応するユーザのメタデータを推定して推定メタデータを出力する。すなわち、メタデータ推定部30は、データ取得部22を介して入力されたテキストTiが与えられると、このテキストTiから推定メタデータM^iを生成する。メタデータ推定部30から出力された推定メタデータM^iは第3誤差計算部43に送られる。
【0118】
第3誤差計算部43は、メタデータ推定部30によって生成された推定メタデータM^iに対して、教師データであるメタデータMiとの誤差を計算する。第3誤差計算部43は、損失関数を用いて誤差を評価する。推定メタデータM^iと正解としてのメタデータMiとの誤差を第4誤差Er4という。第3誤差計算部43によって計算された第4誤差Er4はオプティマイザ46に送られる。
【0119】
オプティマイザ46は、第1誤差計算部41、第2誤差計算部42及び第3誤差計算部43の各々の計算結果からテキスト生成部28、メタデータ推定部30及び統計量推定部32のそれぞれのネットワークのパラメータを更新する処理を行う。
【0120】
オプティマイザ46は、第1誤差計算部41、第2誤差計算部42及び第3誤差計算部43の各々から得られる誤差の計算結果を用いて、テキスト生成部28、メタデータ推定部30及び統計量推定部32のそれぞれのネットワークのパラメータの更新量を計算するパラメータ演算処理と、計算されたパラメータの更新量に従い、テキスト生成部28、メタデータ推定部30及び統計量推定部32のそれぞれのネットワークのパラメータを更新するパラメータ更新処理と、を行う。
【0121】
さらに、この学習装置120では、テキスト生成部28が生成した推定テキストT^iをメタデータ推定部30及び統計量推定部32の各々に入力して、上記と同様の学習を行う。すなわち、テキスト生成部28によって生成した推定テキストT^iは、メタデータ推定部30及び統計量推定部32に入力される。
【0122】
メタデータ推定部30は、与えられた推定テキストT^iから、この推定テキストT^iに対応するユーザの推定メタデータM^^iを生成する。メタデータ推定部30から出力された推定メタデータM^^iは第3誤差計算部43に送られる。
【0123】
第3誤差計算部43は、メタデータ推定部30によって生成された推定メタデータM^^iに対して、教師データであるメタデータMiとの誤差を計算する。推定メタデータM^^iと正解としてのメタデータMiとの誤差を第5誤差Er5という。第3誤差計算部43によって算出された第5誤差Er5はオプティマイザ46に送られる。
【0124】
オプティマイザ46は、第3誤差計算部43から得られる第4誤差Er4を用いて、メタデータ推定部30のネットワークのパラメータを更新する。また、オプティマイザ46は、第3誤差計算部43から得られる第5誤差Er5を用いて、メタデータ推定部30及びテキスト生成部28の各々のネットワークパラメータを更新する。
【0125】
なお、オプティマイザ46は、第5誤差Er5から少なくともテキスト生成部28のパラメータの更新量を計算してテキスト生成部28のパラメータを更新すればよく、メタデータ推定部30のパラメータは、第5誤差Er5を基に更新しない態様も可能である。
【0126】
テキスト生成部28、メタデータ推定部30、及び統計量推定部32のパラメータを更新するタイミングは特に限定されない。テキスト生成部28のパラメータの更新タイミングと、メタデータ推定部30のパラメータの更新タイミングと、統計量推定部32のパラメータの更新タイミングとは、異なるタイミングであってもよいし、同時のタイミングであってもよい。また、第1誤差Er1から計算されるテキスト生成部28のパラメータ更新量に基づくテキスト生成部28のパラメータ更新のタイミングと、第3誤差Er3から計算されるテキスト生成部28のパラメータ更新量に基づくテキスト生成部28のパラメータ更新のタイミングと、第5誤差Er5から計算されるテキスト生成部28のパラメータ更新量に基づくテキスト生成部28のパラメータ更新のタイミングとは、それぞれ異なるタイミングであってもよいし、これらの一部又は全部が同時のタイミングであってもよい。例えば、オプティマイザ46は、第1誤差から計算されるテキスト生成部28のパラメータ更新量と、第3誤差から計算されるテキスト生成部28のパラメータ更新量と、第5誤差から計算されるテキスト生成部28のパラメータ更新量とをマージして、このマージしたパラメータ更新量に従ってテキスト生成部28のパラメータの更新処理を実施してもよい。
【0127】
図11は、学習装置120の特徴量抽出部26、テキスト生成部28、メタデータ推定部30、統計量推定部32及び統計量計算部34の各モジュールに入力されるデータと各モジュールから出力されるデータとを概略的に示すブロック図である。
図11において
図3に示す構成と同一の要素には同一の符号を付し、その説明は省略する。
図11について
図3との相違点を説明する。
【0128】
図11に示す学習装置120のメタデータ推定部30には、テキストTi又は推定テキストT^iが選択的に入力される。メタデータ推定部30は、テキストTiの入力を受けて推定メタデータM^iを出力する。メタデータ推定部30から出力される推定メタデータM^iと正解のメタデータMiとに基づいて第4誤差Er4が計算される。
【0129】
また、メタデータ推定部30は、推定テキストT^iの入力を受けて推定メタデータM^^iを出力する。メタデータ推定部30から出力される推定メタデータM^^iと正解のメタデータMiとに基づいて第5誤差Er5が計算される。
【0130】
メタデータMiは本開示における「第1メタデータ」の一例である。メタデータMiに対応するユーザは本開示における「第1ユーザ」の一例である。特徴量抽出部26、テキスト生成部28、メタデータ推定部30及び統計量推定部32の組み合わせは本開示における「学習モデル」の一例である。推定メタデータM^iは本開示における「第1推定メタデータ」の一例である。推定テキストT^iから推定される推定メタデータM^^iは本開示における「第2推定メタデータ」の一例である。
【0131】
《学習装置120を用いた学習方法の例》
図12及び
図13は、第2実施形態に係る学習方法の手順を例示的に示すフローチャートである。
図12及び
図13において、
図3及び
図4に示すフローチャートと同一又は類似のステップには同一のステップ番号を付す。
図12及び
図13について
図3及び
図4との相違点を説明する。
【0132】
図12のフローチャートは、
図3のステップS1、ステップS3及びステップS9に代えて、ステップS1A、ステップS3A及びステップS9Aを含む。また、
図12のフローチャートは、
図3のステップS4とステップS7との間にステップS5及びS6を含む。
図13のフローチャートは、
図4に示すステップS17の前に、ステップS15及びS16を含む。また、
図13のフローチャートは、
図4のステップS19に代えて、ステップS19Aを含む。
【0133】
図12のステップS1Aにおいて、画像IiとメタデータMiとテキストTiとの組み合わせを複数組み用意する。
【0134】
ステップS3Aにおいて、学習装置20はテキスト生成部28に画像特徴量FiとメタデータMiとを入力し、推定テキストT^iを取得する。
【0135】
ステップS5において、学習装置20はメタデータ推定部30にテキストTiを入力し、推定メタデータM^iを取得する。
【0136】
ステップS6において、第3誤差計算部43は推定メタデータM^iに対して、メタデータMiとの誤差(第4誤差)を計算する。
【0137】
ステップS9Aにおいて、オプティマイザ46はステップS4、S6、及びS8で計算された誤差に基づいて、テキスト生成部28、メタデータ推定部30、及び統計量推定部32のパラメータを更新する。
【0138】
ステップS9Aの後、上述のステップS5からS9Aの各入力として、テキスト生成部28が推定した推定テキストT^iを使用し、同様の処理を行う。
【0139】
すなわち、
図13のステップS15において、学習装置120はメタデータ推定部30に推定テキストT^iを入力し、推定メタデータM^^iを取得する。
【0140】
ステップS16において、第3誤差計算部43は推定メタデータM^^iに対して、メタデータMiとの誤差(第5誤差Er5)を計算する。
【0141】
ステップS19Aにおいて、オプティマイザ46はステップS4、S16、及びS18で計算された誤差に基づいて、テキスト生成部28、メタデータ推定部30、及び統計量推定部32のパラメータを更新する。なお、オプティマイザ46は、ステップS16で計算された第5誤差と、ステップS18で計算された第3誤差Er3と、を用いて少なくともテキスト生成部28のパラメータを更新すればよい。例えば、ステップS19Aの際に、オプティマイザ46はメタデータ推定部30及び統計量推定部32のいずれか一方又は両方のパラメータを固定して更新の対象から除外し、テキスト生成部28のパラメータを更新してもよい。また、ステップS19Aにおいて、オプティマイザ46はステップS4で計算された第1誤差Er1を用いずに、第5誤差Er5と第3誤差Er3に基づいてテキスト生成部28のパラメータを更新してもよい。他の処理は
図3及び
図4に示すフローチャートと同様である。
【0142】
こうして得られた学習済みのテキスト生成部28の部分を、キャプション生成装置110のテキスト生成部18として適用する。なお、特徴量抽出部26を学習の対象に含めてもよいことは第1実施形態と同様である。
【0143】
図12及び
図13のフローチャートに示すステップの順番は、技術的矛盾の無い範囲で適宜変更可能であり、複数のステップが同時に実行される場合もありうる。また、テキスト生成部28、メタデータ推定部30及び統計量推定部32のそれぞれのパラメータの更新タイミング及び更新頻度についても
図12及び
図13の例に限定されない。
【0144】
《学習モデルにおけるパラメータの更新処理の例》
図14は、第1誤差計算部41によって計算される第1誤差に基づいてテキスト生成部28のパラメータを更新する処理の様子を模式的に示すブロック図である。
図14は、
図12のステップS2~S4及びステップS9Aの動作によってテキスト生成部28のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。なお、特徴量抽出部26のパラメータは、学習による更新処理の対象に含めてもよいし、含めなくてもよい。
【0145】
図15は、第3誤差計算部43によって計算される第4誤差に基づいてメタデータ推定部30のパラメータを更新する処理の様子を模式的に示すブロック図である。
図15は、
図12のステップS5、S6及びS9Aの動作によってメタデータ推定部30のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。
【0146】
図16は、第2誤差計算部42によって計算される第2誤差に基づいて統計量推定部32のパラメータを更新する処理の様子を模式的に示すブロック図である。
図16は、
図12のステップS7、S8及びS9Aの動作によってメタデータ推定部30のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。
【0147】
図17は、第3誤差計算部43によって計算される第5誤差に基づいてメタデータ推定部30及びテキスト生成部28の各々のパラメータを更新する処理の様子を模式的に示すブロック図である。
図17は、
図13のステップS15、S16及びS19Aの動作によってメタデータ推定部30及びテキスト生成部28のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。
【0148】
図18は、第2誤差計算部42によって計算される第3誤差に基づいてメタデータ推定部30及びテキスト生成部28の各々のパラメータを更新する処理の様子を模式的に示すブロック図である。
図18は、
図13のステップS17、S18及びS19Aの動作によって統計量推定部32及びテキスト生成部28のパラメータを更新する場合にアクティブとなる要素とデータの流れを示している。
図14から
図18の各図面の表示ルールは、
図6から
図8の表示ルールと同様である。
【0149】
図14に示す処理を実行する場合、メタデータ推定部30、第3誤差計算部43、統計量推定部32、統計量計算部34、及び第2誤差計算部42は非アクティブとなる。オプティマイザ46は、第1誤差Er1を基に計算されるテキスト生成部28のパラメータの更新量に基づきテキスト生成部28のパラメータを更新する。
【0150】
図15に示す処理を実行する場合、オプティマイザ46は、第4誤差Er4を基に計算されるメタデータ推定部30のパラメータの更新量に基づきメタデータ推定部30のパラメータを更新する。
【0151】
図16に示す処理を実行する場合、オプティマイザ46は、第2誤差Er2を基に計算される統計量推定部32のパラメータの更新量に基づき統計量推定部32のパラメータを更新する。
【0152】
図17に示す処理を実行する場合、オプティマイザ46は、第5誤差Er5を基に計算されるメタデータ推定部30及びテキスト生成部28のそれぞれのパラメータの更新量に基づき、メタデータ推定部30及びテキスト生成部28のそれぞれのパラメータを更新する。第5誤差Er5に基づくパラメータの更新に関して、
図14と同様に、オプティマイザ46は、特徴量抽出部26のパラメータを更新してもよい。あるいはまた、オプティマイザ46は、
図17に示すメタデータ推定部30及びテキスト生成部28のうちメタデータ推定部30についてパラメータを更新せずに、テキスト生成部28のみパラメータを更新してもよい。
【0153】
図18に示す処理を実行する場合、オプティマイザ46は、第3誤差Er3を基に計算される統計量推定部32及びテキスト生成部28のそれぞれのパラメータの更新量に基づき、統計量推定部32及びテキスト生成部28のそれぞれのパラメータを更新する。第3誤差Er3に基づくパラメータの更新に関して、
図14と同様に、オプティマイザ46は、特徴量抽出部26のパラメータを更新してもよい。
【0154】
テキスト生成部28は、
図14に示す第1誤差Er1と、
図17に示す第5誤差Er5と、
図18に示す第3誤差Er3とに基づいてパラメータの更新が行われる。
【0155】
《第2実施形態による効果》
第2実施形態によれば、学習データとして、画像IiとテキストTiとに加え、ユーザの属性情報を含むメタデータMiを含む組み合わせを用いているため、ユーザの属性を反映した精度の高いテキスト生成を実現できるモデルを効率よく学習することができる。また、第2実施形態に係る学習方法は、テキスト生成部28とメタデータ推定部30と統計量推定部32との各ネットワークの学習を並行して進め、さらに、テキスト生成部28から出力される推定テキストT^iをメタデータ推定部30及び統計量推定部32への入力に与えて学習を行うため、より精度の高い推定テキストの生成が可能になる。第2実施形態によれば、ユーザの意図に近いキャプションを生成することができる。
【0156】
また、第2実施形態によれば、異なるユーザの学習データを含む学習データセットを用いて学習を行うことにより、様々な属性のユーザに対応したキャプションの自動生成が可能な汎用性のあるモデルを得ることができる。
【0157】
《応用例1》
本開示の技術は、例えば、SNSに付随する投稿支援機能の一つとしてのキャプション生成機能のサービスとして適用できる。このキャプション生成機能は、次の手順で実現される。
【0158】
[手順1-1]ユーザがキャプションを生成したい画像をシステムにアップロードする。ここでいう「システム」とは、キャプション生成の処理機能を提供するコンピュータシステムである。このシステムを、以下「キャプション生成システム」という。キャプション生成システムは、SNSシステムと一体に構築されていてもよいし、独立したシステムとして構築されてもよい。
【0159】
[手順1-2]キャプション生成システムは、ユーザによる過去の投稿内容などから、ユーザの過去の入力文字と画像とを分析する。ここでいう「分析」とは、ユーザのメタデータと入力文字(テキスト)と画像とを組み合わせて複数の学習データを生成し、学習装置20を用いて機械学習を実行することを指す。なお、上述の[手順1-1]と[手順1-2]の順番は入れ替え可能である。
【0160】
[手順1-3]手順1-2の分析(学習)によって得られた学習済みのテキスト生成部28を含むキャプション生成装置10に対象画像(アップロードされた画像)を入力してキャプションを生成する。生成されたキャプションをユーザに提供する。
【0161】
〈応用例1のシステム構成例〉
図19は、応用例1に係るキャプション生成機能を実現するコンピュータシステムの全体構成の例を示すブロック図である。このコンピュータシステム70は、データ保管部61と、キャプション生成システム72と、学習装置120と、を含む。データ保管部61、キャプション生成システム72、及び学習装置120の各々は、電気通信回線90に接続され、互いにデータの受け渡しが可能である。電気通信回線90は、インターネットなどのワイドエリアネットワークであってよい。データ保管部61、キャプション生成システム72、及び学習装置120の各々は、電気通信回線90に接続するための図示しない通信部を備える。
【0162】
データ保管部61は、各ユーザのユーザ情報及び過去の投稿データなどが保管されている大容量ストレージを含む。
【0163】
キャプション生成システム72は、ユーザ認証を行う認証部74と、学習データを生成する学習データ生成部76と、学習データ保管部60と、キャプション生成装置110と、を含む。なお、認証部74は、キャプション生成システム72の外部に設けられていてもよい。
【0164】
ユーザは、情報端末装置80を用い、電気通信回線90を介してキャプション生成システム72にアクセスすることができる。情報端末装置80は、スマートフォンなどの携帯通信端末であってもよいし、パーソナルコンピュータなどであってもよい。情報端末装置80は、電気通信回線90に接続するための図示しない通信部を備える。
【0165】
情報端末装置80は、ユーザインターフェースとしての操作部84と表示部86とを含む。操作部84は、例えば、キーボード、マウス、タッチパネル、若しくはその他のポインティングデバイス、若しくは、音声入力装置、又はこれらの適宜の組み合わせによって構成される。表示部86は、例えば、液晶ディスプレイ、有機EL(organic electro-luminescence:OEL)ディスプレイ、若しくは、プロジェクタ、又はこれらの適宜の組み合わせによって構成される。
【0166】
情報端末装置80は、カメラ88を備えていてよい。カメラ88は図示しないレンズを含む撮影光学系と撮像デバイスとを含む。ユーザは、カメラ88によって撮影した画像及び/又は情報端末装置80の内部又は外部の図示しないメモリに記憶されている画像をキャプション生成システム72にアップロードすることができる。
【0167】
認証部74は、情報端末装置80から送信されたユーザ認証情報を受け取り、ユーザ認証の処理を行う。認証部74は、データ保管部61に登録されているユーザの登録情報と照合してアクセス要求を受けたユーザを特定する。認証部74は、特定したユーザに関するユーザ情報を学習データ生成部76及びキャプション生成装置110に送る。認証部74から学習データ生成部76及びキャプション生成装置110に送るユーザ情報には、データ保管部61から読み出したユーザのメタデータが含まれている。あるいは学習データ生成部76及びキャプション生成装置110は、ユーザを特定する情報を基に、データ保管部61からユーザのメタデータを取得してもよい。
【0168】
図20は、データ保管部61に保管されているデータの概念図である。データ保管部61には、ユーザごとにユーザ情報U(x)と過去の投稿データP(x)_jとが紐付けされて保管されている。xはユーザを識別するインデックスであり、jは投稿データを識別するインデックスである。投稿データP(x)_jは、画像I(x)_jとテキストT(x)_jとの組み合わせによって構成される。ユーザ情報U(x)には、ユーザのメタデータが含まれる。
図20に示すように、ユーザaによって投稿された過去の投稿データP(a)_jは、ユーザ情報U(a)と紐付けされて保管されている。同様に、ユーザbによって投稿された過去の投稿データP(b)_jは、ユーザ情報U(b)と紐付けされて保管されている。
【0169】
学習データ生成部76は、データ保管部61に保管されているデータから学習データLDiを生成する。学習データLDiは、
図10で説明したように、画像、メタデータ、及びテキストの組み合わせである。学習データ生成部76によって生成された学習データLDiのセットは学習データ保管部60に保管される。なお、学習データ保管部60は、データ保管部61の中に組み込まれていてもよい。
【0170】
学習装置120は、学習データ保管部60から学習データLDiを読み込み、学習を行う。学習装置20は、学習結果として得られる学習済みのパラメータをキャプション生成装置110に送り、キャプション生成装置110のテキスト生成部18を学習済みのパラメータによって更新する。これにより、キャプション生成装置110には、ユーザの意図に近いキャプション生成が可能な学習済みのモデル(テキスト生成部18)が実装される。
【0171】
キャプション生成装置110は、ユーザからアップロードされた画像に対して、ユーザの意図に近いキャプションを生成し、ユーザに提供する。キャプション生成装置110が生成したキャプションは電気通信回線90を介して情報端末装置80に送られ、表示部86に表示される。
【0172】
ユーザは、キャプション生成装置110によって自動生成されたキャプションを確認して、そのまま投稿に利用してもよいし、必要に応じて編集を加えることもできる。
【0173】
このようなシステムによれば、画像にキャプションを付加する際のユーザによるテキスト入力作業を軽減することができる。
【0174】
また、ある特定のユーザについて学習を実行して得られた学習済みのパラメータを、ユーザ情報と紐付けてデータ保管部61に保管しておくことにより、次回のアクセス時には学習済みパラメータをキャプション生成装置110に適用して学習の処理を省略することができる。あるいは、次回のアクセス時に、学習済みパラメータを学習装置120における学習時の初期パラメータに設定し、追加の学習を実施することにより、推定の精度を高めることができる。
【0175】
〈変形例〉
図19の学習装置120は、キャプション生成システム72の中に組み込まれていてもよい。学習データ生成部76は、学習データ生成装置として独立した装置構成であってもよい。キャプション生成装置10に組み込まれた学習済みのパラメータを情報端末装置80に提供し、情報端末装置80の中にキャプション生成装置110を構築してもよい。
【0176】
《応用例2》
本開示の技術は、例えば、メール自動返信機能のサービスとして適用できる。このメール自動返信機能は、次の手順で実現される。
【0177】
[手順2-1]メール自動返信システムは、ユーザのメールを画像として取得する。ここでいう「ユーザのメール」とは、本サービスを利用する対象ユーザ宛に届いたメールであり、対象ユーザが受信したメールである。ユーザは、受信したメールをメール自動返信システムに転送(アップロード)する。メール自動返信システムは、アップロードされたメールを画像情報に変換したメール画像を取得する。
【0178】
[手順2-2]メール自動返信システムは、このユーザによる過去の送信メールの内容などから、ユーザの過去の入力文字とメール画像とを分析する。なお、この分析の過程でユーザのメタデータを抽出してもよい。
【0179】
[手順2-3]手順2-2の分析(学習)によって得られた学習済みのテキスト生成部28を含むキャプション生成装置110に対象画像(ここでは、手順2-1で取得された画像)を入力してキャプション、すなわち返信候補の文章を生成する。そして、生成されたキャプションをユーザに提供する。
【0180】
この応用例2のシステム構成は、概ね応用例1の場合と同様であるため説明を省略する。応用例2によれば、ユーザの意図に近い文体の返信候補を自動生成できるため、返信メールの作成作業を軽減することができる。
【0181】
《他の応用例》
本開示の技術は、画像に対して文章を作成する様々な用途に応用できる。例えば、本開示の技術は、医療分野での読影レポート作成、あるいはインフラ点検での帳票作成などに適用できる。読影レポートを作成する場合のユーザは読影者であり、インフラ点検の帳票を作成する場合のユーザは点検作業を実施する作業者である。
【0182】
キャプションを付加する画像は、静止画に限らず、動画であってもよい。また、画像は、動画を構成している一部のフレーム画像であってよい。
【0183】
《蒸留モデル及び派生モデルについて》
本開示の学習方法を実施することによって得られた学習済みモデルを基に、派生モデル及び/又は蒸留モデルを生成することが可能である。派生モデルとは、学習済みモデルに対してさらなる追加学習を実施することによって得られる派生的な学習済みモデルであり「再利用モデル」ともいう。ここでの「追加学習」とは、既存の学習済みモデルに、異なる学習用データセットを適用して、更なる学習を行うことにより、新たに学習済みパラメータを生成することをいう。追加学習は、例えば、学習済みモデルの精度の維持又は向上を図ること、あるいは、当初に学習させた領域と異なる領域に適応させることなどを目的として行われる。
【0184】
一方、「蒸留」とは、既存の学習済みモデルへの入力及びその入力に対する出力結果を、新たなモデルの学習用データセットとして利用して機械学習を行い、新たな学習済みモデル及び/又は学習済みパラメータを生成することをいう。「蒸留モデル」とは、蒸留により新たに生成された学習済みパラメータが組み込まれた推論プログラム(推論モデル)を意味する。「推論プログラム」とは、組み込まれた学習済みパラメータを適用することで、入力に対して一定の結果を出力することを可能にするプログラムをいう。蒸留モデルは、元の学習済みモデルと異なるネットワーク構造であってよく、一般に、蒸留モデルは、元の学習済みモデルよりも小規模なネットワーク構造となり得る。
【0185】
本開示の学習方法を実施することによって得られた学習済みモデルを基に、派生モデル及び/又は蒸留モデルを生成することが可能である。したがって、これらの派生モデル及び/又は蒸留モデルを生成する方法、並びに、得られた派生モデル及び/又は蒸留モデルは、本開示の技術的範囲に属すると理解される。
【0186】
《コンピュータのハードウェア構成の例》
図21は、コンピュータのハードウェア構成の例を示すブロック図である。コンピュータ800は、パーソナルコンピュータであってもよいし、ワークステーションであってもよく、また、サーバコンピュータであってもよい。コンピュータ800は、既に説明したキャプション生成装置10、学習装置20、データ保管部61、キャプション生成システム72、及び情報端末装置80のいずれか、又はこれらの複数の機能を備えた装置として用いることができる。
【0187】
コンピュータ800は、CPU(Central Processing Unit)802、RAM(Random Access Memory)804、ROM(Read Only Memory)806、GPU(Graphics Processing Unit)808、ストレージ810、通信部812、入力装置814、表示装置816及びバス818を備える。なお、GPU(Graphics Processing Unit)808は、必要に応じて設ければよく、演算負担が大きくなければ省略されてよい。
【0188】
CPU802は、ROM806又はストレージ810等に記憶された各種のプログラムを読み出し、各種の処理を実行する。RAM804は、CPU802の作業領域として使用される。また、RAM804は、読み出されたプログラム及び各種のデータを一時的に記憶する記憶部として用いられる。
【0189】
ストレージ810は、例えば、ハードディスク装置、光ディスク、光磁気ディスク、若しくは半導体メモリ、又はこれらの適宜の組み合わせを用いて構成される記憶装置を含んで構成される。ストレージ810には、学習処理及び/又は画像生成処理等の画像処理に必要な各種プログラムやデータ等が記憶される。ストレージ810に記憶されているプログラムがRAM804にロードされ、これをCPU802が実行することにより、コンピュータは、プログラムで規定される各種の処理を行う手段として機能する。
【0190】
通信部812は、有線又は無線により外部装置との通信処理を行い、外部装置との間で情報のやり取りを行うインターフェースである。
【0191】
入力装置814は、コンピュータ800に対する各種の操作入力を受け付ける入力インターフェースである。入力装置814は、例えば、キーボード、マウス、タッチパネル、若しくはその他のポインティングデバイス、若しくは、音声入力装置、又はこれらの適宜の組み合わせであってよい。
【0192】
表示装置816は、各種の情報が表示される出力インターフェースである。表示装置816は、例えば、液晶ディスプレイ、有機EL(organic electro-luminescence:OEL)ディスプレイ、若しくは、プロジェクタ、又はこれらの適宜の組み合わせであってよい。
【0193】
《コンピュータを動作させるプログラムについて》
上述の各実施形態で説明した学習機能、キャプション生成機能、及び学習データ生成機能のうち少なくとも1つの処理機能の一部又は全部をコンピュータに実現させるプログラムを、光ディスク、磁気ディスク、若しくは、半導体メモリその他の有体物たる非一時的な情報記憶媒体であるコンピュータ可読媒体に記録し、この情報記憶媒体を通じてプログラムを提供することが可能である。
【0194】
またこのような有体物たる非一時的な情報記憶媒体にプログラムを記憶させて提供する態様に代えて、インターネットなどの電気通信回線を利用してプログラム信号をダウンロードサービスとして提供することも可能である。
【0195】
また、上述の各実施形態で説明した学習機能、キャプション生成機能、及び学習データ生成機能のうち少なくとも1つの処理機能の一部又は全部をアプリケーションサーバとして提供し、電気通信回線を通じて処理機能を提供するサービスを行うことも可能である。
【0196】
《各処理部のハードウェア構成について》
図1及び
図9の画像取得部12、メタデータ取得部14、特徴量抽出部16、テキスト生成部18、
図2及び
図10の学習データ保管部60、データ取得部22、特徴量抽出部26、テキスト生成部28、メタデータ推定部30、統計量推定部32、統計量計算部34、第1誤差計算部41、第2誤差計算部42、第3誤差計算部43、オプティマイザ46、
図19のデータ保管部61、認証部74、及び学習データ生成部76などの各種の処理を実行する処理部(processing unit)のハードウェア的な構造は、例えば、次に示すような各種のプロセッサ(processor)である。
【0197】
各種のプロセッサには、プログラムを実行して各種の処理部として機能する汎用的なプロセッサであるCPU、画像処理に特化したプロセッサであるGPU、FPGA(Field Programmable Gate Array)などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
【0198】
1つの処理部は、これら各種のプロセッサのうちの1つで構成されていてもよいし、同種又は異種の2つ以上のプロセッサで構成されてもよい。例えば、1つの処理部は、複数のFPGA、或いは、CPUとFPGAの組み合わせ、又はCPUとGPUの組み合わせによって構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。複数の処理部を1つのプロセッサで構成する例としては、第一に、クライアントやサーバなどのコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第二に、システムオンチップ(System On Chip:SoC)などに代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサを1つ以上用いて構成される。
【0199】
さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)である。
【0200】
《その他》
上述の実施形態で説明した構成や変形例で説明した事項は、適宜組み合わせて用いることができ、また、一部の事項を置き換えることもできる。
【0201】
本発明は上述した実施形態に限定されず、本発明の精神を逸脱しない範囲で種々の変形が可能であることは言うまでもない。
【符号の説明】
【0202】
10 キャプション生成装置
12 画像取得部
14 メタデータ取得部
16 特徴量抽出部
18 テキスト生成部
20 学習装置
22 データ取得部
26 特徴量抽出部
28 テキスト生成部
30 メタデータ推定部
32 統計量推定部
34 統計量計算部
41 第1誤差計算部
42 第2誤差計算部
43 第3誤差計算部
46 オプティマイザ
60 学習データ保管部
61 データ保管部
70 コンピュータシステム
72 キャプション生成システム
74 認証部
76 学習データ生成部
80 情報端末装置
84 操作部
86 表示部
88 カメラ
90 電気通信回線
110 キャプション生成装置
120 学習装置
800 コンピュータ
802 CPU
804 RAM
806 ROM
808 GPU
810 ストレージ
812 通信部
814 入力装置
816 表示装置
818 バス
Er1 第1誤差
Er2 第2誤差
Er3 第3誤差
Er4 第4誤差
Er5 第5誤差
I 画像
Ii 画像
Fi 画像特徴量
IMG 画像
ISi 画像統計量
IS^i 推定画像統計量
IS^^i 推定画像統計量
LDi 学習データ
MTD メタデータ
Mi メタデータ
M^i 推定メタデータ
M^^i 推定メタデータ
Ti テキスト
PTX 推定テキスト
T^i 推定テキスト
U(x) ユーザ情報
P(x)_j 投稿データ
S1~S9,S1A,S9A,S15~S20,S19A 学習方法のステップ