(57)【要約】【課題】柔軟なフォント検索を支援できる情報処理装置、機械学習モデルの製造方法、及びプログラムを提供する。【解決手段】フォントの種類ごとに、当該フォントで記述されたテキストの画像を取得し、当該フォントの種類を表す情報に関連付けて、人為的に付与されたキーワード情報を取得する。そしてテキストの画像から複数の互いに異なる領域の部分画像を抽出し、抽出した部分画像に基づいて得られるベクトル情報とキーワード情報との少なくとも一方を入力として、当該入力に基づくマルチモーダルの機械学習を実行する情報処理装置である。【選択図】図１
2020177465.tif 000002
【特許請求の範囲】
【請求項１】
フォントの種類ごとに、当該フォントで記述されたテキストの画像を取得する手段と、
当該フォントの種類を表す情報に関連付けて人為的に付与されたキーワード情報を取得する手段と、
前記テキストの画像から複数の互いに異なる領域の部分画像を抽出する抽出手段と、
前記抽出した部分画像に基づいて得られるベクトル情報と、前記フォントの種類を表す情報と、前記キーワード情報との相関を機械学習する機械学習手段と、
を含み、
前記機械学習の結果を、フォントの検索の処理に供する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記機械学習手段が、前記抽出した部分画像に基づいて得られるベクトル情報とキーワード情報との少なくとも一方を入力として、当該入力に基づくマルチモーダルの機械学習を実行する情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記機械学習手段は、
前記キーワード情報を機械学習する第１の双方向ニューラルネットワークと、前記部分画像に基づくベクトル情報を機械学習する第２の双方向ニューラルネットワークと、前記第１の双方向ニューラルネットワークの出力層の出力と第２の双方向ニューラルネットワークの出力層の出力とを統合する統合学習層とを有するマルチモーダル機械学習器を用い、
（１）前記取得したキーワード情報を用いて、前記第１の双方向ニューラルネットワークを機械学習する機械学習処理、
（２）前記抽出手段が抽出した部分画像に基づくベクトル情報を入力して、前記第２の双方向ニューラルネットワークを機械学習する機械学習処理、
（３）前記取得したキーワード情報を入力して、前記第１の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第２の双方向ニューラルネットワークの出力層に入力したときの、前記第２の双方向ニューラルネットワークの入力の推定結果を用いて、前記マルチモーダル機械学習器の機械学習を行う機械学習処理、
（４）前記抽出手段が抽出した部分画像に基づくベクトル情報を入力して、前記第２の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第１の双方向ニューラルネットワークの出力層に入力したときの、前記第１の双方向ニューラルネットワークの入力の推定結果を用いて、前記マルチモーダル機械学習器の機械学習を行う機械学習処理、
（５）前記取得したキーワード情報を入力して、前記第１の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第２の双方向ニューラルネットワークの出力層に入力したときの、前記第２の双方向ニューラルネットワークの入力の推定結果と、前記抽出手段が抽出した部分画像に基づくベクトル情報を入力して、前記第２の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第１の双方向ニューラルネットワークの出力層に入力したときの、前記第１の双方向ニューラルネットワークの入力の推定結果とを用いて、前記マルチモーダル機械学習器の機械学習を行う機械学習処理、
の（１）から（５）の機械学習処理の少なくとも一つを実行する情報処理装置。
【請求項４】
請求項１に記載の情報処理装置であって、
前記機械学習手段は、
前記部分画像の入力を受けて、当該入力された部分画像に基づくベクトル情報を生成する特徴抽出器を備え、
第１のニューラルネットワークを用いて、キーワード情報と前記フォントの種類を表す情報との関係を機械学習し、前記第１のニューラルネットワークとは異なる第２のニューラルネットワークを用いて、前記特徴抽出器が生成した部分画像に基づくベクトル情報と前記フォントの種類を表す情報との関係を機械学習する情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記特徴抽出器が、ニューラルネットワークで構成され、フォントの種類ごとの前記部分画像を入力としたときの前記第２のニューラルネットワークの出力と、入力した部分画像に対応するフォントの種類を表す情報との相違に基づき、前記第２のニューラルネットワークとともに機械学習される情報処理装置。
【請求項６】
請求項４または５に記載の情報処理装置であって、
キーワード情報の入力を受けて、前記第１のニューラルネットワークを用い、フォントの種類を表す情報を推定する手段と、
前記推定されたフォントの種類を表す情報に対応する部分画像を取得する手段と、
検索対象となる、複数の、互いに異なる種類のフォントごとに、各フォントで記述されたテキストの画像を取得して、前記抽出手段に入力し、前記抽出手段により当該取得したテキストの画像から複数の互いに異なる領域を抽出して得た画像を検索対象部分画像とし、当該検索対象部分画像を、前記特徴抽出器に入力して得られるベクトル情報を、検索対象ベクトル情報として取得する手段と、
当該取得した部分画像を、前記特徴抽出器に入力してベクトル情報を取得するとともに、当該取得したベクトル情報と、前記検索対象となる、互いに異なる種類のフォントごとに得られた検索対象ベクトル情報との類似度を比較する手段と、
前記類似度の比較により、前記取得したベクトル情報に類似する、検索対象ベクトル情報に対応する、フォントの種類を表す情報を取得して、検索の結果として出力する手段と、
をさらに含む情報処理装置。
【請求項７】
コンピュータを用い、
フォントの種類ごとに、当該フォントで記述されたテキストの画像を取得する工程と、
当該フォントの種類を表す情報に関連付けて、人為的に付与されたキーワード情報を取得する工程と、
抽出手段が、前記テキストの画像から複数の互いに異なる領域の部分画像を抽出する抽出工程と、
前記キーワード情報を機械学習する第１の双方向ニューラルネットワークと、前記部分画像に基づくベクトル情報を機械学習する第２の双方向ニューラルネットワークと、前記第１の双方向ニューラルネットワークの出力層の出力と第２の双方向ニューラルネットワークの出力層の出力とを統合する統合学習層とを有するマルチモーダル機械学習モデルを機械学習する手段が、
（１）前記取得したキーワード情報を用いて、前記第１の双方向ニューラルネットワークを機械学習する機械学習処理、
（２）前記抽出手段が抽出した部分画像に基づくベクトル情報を入力して、前記第２の双方向ニューラルネットワークを機械学習する機械学習処理、
（３）前記取得したキーワード情報を入力して、前記第１の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第２の双方向ニューラルネットワークの出力層に入力したときの、前記第２の双方向ニューラルネットワークの入力の推定結果を用いて、マルチモーダル機械学習器の機械学習を行う機械学習処理、
（４）前記抽出手段が抽出した部分画像に基づくベクトル情報を入力して、前記第２の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第１の双方向ニューラルネットワークの出力層に入力したときの、前記第１の双方向ニューラルネットワークの入力の推定結果を用いて、前記マルチモーダル機械学習器の機械学習を行う機械学習処理、
（５）前記取得したキーワード情報を入力して、前記第１の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第２の双方向ニューラルネットワークの出力層に入力したときの、前記第２の双方向ニューラルネットワークの入力の推定結果と、前記抽出手段が抽出した部分画像に基づくベクトル情報を入力して、前記第２の双方向ニューラルネットワークが出力する情報に基づく統合学習層の出力を、前記第１の双方向ニューラルネットワークの出力層に入力したときの、前記第１の双方向ニューラルネットワークの入力の推定結果とを用いて、前記マルチモーダル機械学習器の機械学習を行う機械学習処理、
の（１）から（５）の機械学習処理の少なくとも一つを実行する機械学習モデルの製造方法。
【請求項８】
コンピュータを、
フォントの種類ごとに、当該フォントで記述されたテキストの画像を取得する手段と、
当該フォントの種類を表す情報に関連付けて、人為的に付与されたキーワード情報を取得する手段と、
前記テキストの画像から複数の互いに異なる領域の部分画像を抽出する抽出手段と、
前記抽出した部分画像に基づいて得られるベクトル情報と、前記フォントの種類を表す情報と、前記キーワード情報との相関を機械学習する機械学習手段と、
を含み、
前記機械学習の結果を用いて、フォントの検索を行う手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、機械学習モデルの製造方法、及びプログラムに関する。
【背景技術】
【０００２】
近年では、種々のデザインのフォントがネットワークを介して入手可能となっている。フォントを配布するサイトでは、フォントの見本となるテキストの画像のほか、フォントのデザインをキーワードで表現した情報が付加情報（キーワード情報）としてフォントに関連付けられて記録され、フォント選択の用に供されている。
【０００３】
なお、機械学習によりフォントの検索支援を行う技術が、非特許文献１等に開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】G. Chen, et.al., “Large-scale visual font recognition”, In CVPR, pp.3598-3605, 2014
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のフォント選択の方法では、付加情報に基づいて、実際に当該付加情報が関連付けられたフォントを検索するか、実際に使用されているフォントの画像自体から検索することはできても、デザイナーの創作的な作業において必要となる、柔軟なフォントの検索を行うことができていないという問題点があった。
【０００６】
例えば従来の技術では、フォントの画像から適切と考えられる付加情報を見出したり、付加情報に基づいて（当該付加情報が実際に関連付けられているか否かに関わらず）、当該付加情報に関連付けられる可能性の高いフォントの画像を得たりといった検索はできていない。
【０００７】
本発明は上記実情に鑑みて為されたもので、柔軟なフォント検索を支援できる情報処理装置、機械学習モデルの製造方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００８】
上記従来例の問題点を解決する本発明の一態様は、情報処理装置であって、フォントの種類ごとに、当該フォントで記述されたテキストの画像を取得する手段と、当該フォントの種類を表す情報に関連付けて、人為的に付与されたキーワード情報を取得する手段と、前記テキストの画像から複数の互いに異なる領域の部分画像を抽出する抽出手段と、前記抽出した部分画像に基づいて得られるベクトル情報と、前記フォントの種類を表す情報と、前記キーワード情報との相関を機械学習する機械学習手段と、を含み、前記機械学習の結果を、フォントの検索の処理に供することとしたものである。
【発明の効果】
【０００９】
本発明によると、柔軟なフォント検索を支援できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の機械学習を行う制御部の例を表す機能ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置による抽出処理の例を表す説明図である。
【図４】本発明の実施の形態に係る情報処理装置が用いるマルチモーダル機械学習器の例を表す概略構成図である。
【図５】本発明の実施の形態に係る情報処理装置の検索処理を行う制御部の例を表す機能ブロック図である。
【図６】本発明の実施の形態に係る情報処理装置によるマルチモーダル機械学習器の利用態様の例を表す説明図である。
【図７】本発明の実施の形態に係る情報処理装置が用いるマルチモーダル機械学習器のもう一つの例を表す概略構成図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置１は、図１に例示するように、制御部１１と、記憶部１２と、操作部１３と、表示部１４と、通信部１５とを含んで構成される。
【００１２】
ここで制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、本実施の形態では、フォントの種類ごとに、一つの種類のフォントで（他の種類のフォントを含まずに）記述されたテキストの画像を取得し、当該フォントの種類を表す情報に関連付けて、人為的に付与されたキーワード情報を取得する処理を実行する。また、この制御部１１は、テキストの画像から複数の互いに異なる領域の部分画像を抽出し、当該抽出した部分画像に基づいて得られるベクトル情報とキーワード情報と、フォントの種類を表す情報との相関を機械学習する。
【００１３】
さらに本実施の形態の一例では、この制御部１１は、ユーザからフォントの画像やキーワード情報など、検索のキーとなる情報の入力を受けて、フォントの検索処理を実行し、その検索処理の結果をユーザに提供する処理を行う。この制御部１１の詳しい動作については後に述べる。
【００１４】
記憶部１２は、ディスクデバイスやメモリデバイス等であり、制御部１１によって実行されるプログラムを保持している。この記憶部１２は、また、制御部１１のワークメモリとしても動作する。操作部１３は、キーボードやマウス等であり、ユーザの操作を受け入れて、当該操作の内容を制御部１１に出力する。表示部１４は、ディスプレイ等であり、制御部１１から入力される指示に従って情報を表示出力する。
【００１５】
通信部１５は、ネットワークインタフェース等であり、ネットワーク等の通信手段を介して受信した情報を制御部１１に出力する。またこの通信部１５は、制御部１１から入力される指示に従って、指示された宛先へ、指示された情報を送出する。
【００１６】
本実施の形態の制御部１１は、フォントの情報に関する機械学習処理を行うプログラムと、当該機械学習の結果を用いてフォントの検索を支援するプログラムとを実行する。このうち、機械学習処理を行うプログラムを実行するとき、制御部１１は、図２に例示するように、機能的に、画像取得部２１と、キーワード取得部２２と、抽出処理部２３と、画像前処理部２４と、キーワード前処理部２５と、機械学習処理部２６とを含む構成を実現する。
【００１７】
本実施の形態のこの例に係る情報処理装置１は、複数の種類のフォントについての情報を提供することを目的として、複数種類のフォントに関する画像データや、キーワード情報を取得して次のように動作する。
【００１８】
具体的に画像取得部２１は、処理の対象とするフォントの種類ごとに、当該フォント（のみ）で記述されたテキストの画像データを取得する。この画像データは、具体的には図３（ａ）に例示するように、単独のフォントで記述されたテキストであり、記述されるテキストの内容は問わないものとする。画像取得部２１は、例えばフォントの配布を行っているウェブサイトから、各フォントのサンプルの画像を、当該フォントの種類を特定する情報とともに取得する。そして画像取得部２１は、当該取得した画像データを、それとともに取得したフォントの種類を特定する情報に関連付けて一時的に記憶部１２に保持する。
【００１９】
キーワード取得部２２は、処理の対象とするフォントの種類ごとに、当該フォントに関連して人為的に付与されたキーワード情報を取得する。一例としてこのキーワード取得部２２は、上記の画像取得部２１が画像データを取得したウェブサイトと同じ、フォントの配布を行っているウェブサイトから、各フォントの検索用に付与された付加情報としてのキーワード情報を、フォントの種類を特定する情報とともに取得し、取得したキーワード情報をそれとともに取得したフォントの種類を特定する情報に関連付けて一時的に記憶部１２に保持する。これにより本実施の形態の情報処理装置１では、取得した画像データに含まれるフォントの種類に対応したキーワード情報を取得している。
【００２０】
抽出処理部２３は、画像取得部２１により記憶部１２に保持されたフォントの種類ごとの画像データのそれぞれから、複数の画像部分を抽出する。一例としてこの抽出処理部２３は、予め定めたサイズの画像部分を、画像データのランダムな範囲から抽出する。例えば抽出処理部２３は、高さＨ×幅Ｗピクセルの画像データから、予め定めた高さｈ×幅ｗの画像部分を抽出することとして、０以上Ｈ−ｈ以下のランダムな整数値Ｒｈと、０以上Ｗ−ｗ以下のランダムな整数値Ｒｗとを生成する。そして抽出処理部２３は、画像データのうち（Ｒｈ，Ｒｗ）を左上隅の座標とする高さｈ×幅ｗの領域を、画像部分として抽出し（図３（ｂ））、当該抽出した画像部分を、元の画像データに関連付けて記憶部１２に保持する。抽出処理部２３は、画像データごとに、この処理を所定の回数だけ繰り返して実行し、複数の画像部分を取り出す。
【００２１】
画像前処理部２４は、抽出処理部２３が生成した部分画像のそれぞれに基づいて、各部分画像に対応する、機械学習のためのベクトルデータを生成する。一例としてこの画像前処理部２４は、所定のサイズの画像データの入力を受けて、例えばその分類を出力するニューラルネットワークを用いる。このニューラルネットワークは例えば、残差ネットワーク（ResNet）等、広く知られたものでよく、予め適当な画像データのセット（具体的にはImageNet（http://www.image-net.org/）等でよい）により機械学習を行っておくものとする。
【００２２】
画像前処理部２４は、記憶部１２に保持されている部分画像を、順次、このニューラルネットワークに入力し、このニューラルネットワークの出力層の一つ手前の中間層（ベクトル情報が得られる層）の各ノードの値を、当該入力された部分画像と、当該部分画像を抽出した画像データに係るフォントの種類を表す情報に関連付けて、当該部分画像に対応するベクトル情報（以下区別のため、画像ベクトル情報と呼ぶ）として記録して部分画像データベースを生成する。
【００２３】
キーワード前処理部２５は、キーワード取得部２２が取得した互いに異なるキーワード情報（Ｎ個あるものとする）のそれぞれに固有の識別番号ｉ（ｉ＝１，２，…Ｎといった連番でよい）を関連付けて語彙リストを生成する。そしてキーワード前処理部２５は、この語彙リストを参照しつつ、Ｎ次元のベクトルのうち、あるフォントの種類について、当該種類のフォントに関連してキーワード取得部２２が取得したキーワード情報（複数あってよい）の識別番号に対応する要素を「１」、それ以外の要素を「０」としたベクトル情報（以下区別のため、キーワードベクトル情報と呼ぶ）を生成して、キーワードデータベースとして記録する。
【００２４】
機械学習処理部２６は、抽出処理部２３が抽出した部分画像に基づいて得られる画像ベクトル情報と、キーワードベクトル情報と、フォントの種類を表す情報との間の相関を機械学習する。本実施の形態の例では、抽出した部分画像に基づいて得られるベクトル情報と、キーワードベクトル情報との少なくとも一方を入力として、当該入力に基づくマルチモーダルの機械学習を実行する。
【００２５】
ここで機械学習処理部２６が行う機械学習の処理には、例えば、マルチモーダル機械学習器として、ディープボルツマンマシンを利用する方法や、複数の分類器を用いる方法等、種々の方法があるので、以下、それぞれについて説明する。
【００２６】
［ディープボルツマンマシンを利用するケース］
本実施の形態の一例では、この機械学習処理部２６は、図４に例示するように、キーワード情報（具体的にはキーワード情報に基づくキーワードベクトル情報）を機械学習する第１の双方向ニューラルネットワーク３１と、部分画像に基づく画像ベクトル情報を機械学習する第２の双方向ニューラルネットワーク３２と、第１の双方向ニューラルネットワーク３１の出力層の出力と第２の双方向ニューラルネットワーク３２の出力層の出力とを統合する統合学習層３３とを有するマルチモーダル機械学習器３０を用いる。
【００２７】
このマルチモーダル機械学習器３０としては、例えば、Nitish Srivastava, et. al., “Multimodal Learning with Deep Boltzmann Machines”, Journal of Machine Learning Research 15 (2014) 2949-2980 に開示された、ディープボルツマンマシン（ＤＢＭ）を採用できる。
【００２８】
具体的に、このディープボルツマンマシンを実現するマルチモーダル機械学習器３０において第１の双方向ニューラルネットワーク３１は、具体的には図４に例示するように入力層３１ｐと、第１の中間層３１ｑと、第２の中間層３１ｒとを含む。ここで機械学習処理部２６は、入力層３１ｐと、第１の中間層３１ｑとの間については、トピックモデルに拡張された制限付きボルツマンマシン（ＲＢＭ）であるレプリケーテッド・ソフトマックス（Replicated Softmax（ＲＳＭ））として機械学習処理（結合重みやバイアスが更新）し、第１の中間層３１ｑと、第２の中間層３１ｒとの間の結合重みやバイアスは、一般的な制限付きボルツマンマシンとして機械学習処理する。
【００２９】
また、第２の双方向ニューラルネットワーク３２は、図４に例示するように、入力層３２ｐと、第１の中間層３２ｑと、第２の中間層３２ｒとを備える。機械学習処理部２６は、この第２の双方向ニューラルネットワーク３２の入力層３２ｐと、第１の中間層３２ｑとの間の結合重みやバイアスについては、ガウシアンＲＢＭとして機械学習処理し、第１の中間層３２ｑと第２の中間層３２ｒとの間の結合重みやバイアスは、一般的な制限付きボルツマンマシンとして機械学習処理する。
【００３０】
また機械学習処理部２６は、統合学習層３３と、第１の双方向ニューラルネットワーク３１の第２の中間層３１ｒ及び、第２の双方向ニューラルネットワーク３２の第２の中間層３２ｒとの間の結合重みやバイアスについては、制限付きボルツマンマシンとして機械学習処理する。
【００３１】
本実施の形態において、機械学習処理部２６は、
（１）キーワードベクトル情報を用いて第１の双方向ニューラルネットワーク３１を機械学習する処理と、
（２）画像ベクトル情報を用いて第２の双方向ニューラルネットワーク３２を機械学習する処理と、
（３）キーワードベクトル情報を入力したときの、第２の双方向ニューラルネットワーク３２の入力層３２ｐの入力データの推定結果により、マルチモーダル機械学習器３０全体を機械学習する処理と、
（４）画像ベクトル情報を入力したときの、第１の双方向ニューラルネットワーク３１の入力層３１ｐの入力データの推定結果により、マルチモーダル機械学習器３０全体を機械学習する処理と、
（５）第１の双方向ニューラルネットワーク３１にキーワードベクトル情報を入力するとともに、第２の双方向ニューラルネットワーク３２に画像ベクトル情報を入力したときの、第１の双方向ニューラルネットワーク３１の入力層３１ｐの入力データの推定結果と、第２の双方向ニューラルネットワーク３２の入力層３２ｐの入力データの推定結果とを用いてマルチモーダル機械学習器３０全体を機械学習する処理と、
の少なくともいずれかの機械学習処理を実行する。
【００３２】
具体的に、機械学習処理部２６は、予め第１の双方向ニューラルネットワーク３１と、第２の双方向ニューラルネットワーク３２と、統合学習層３３との各層間の結合重みとバイアスとをランダムに初期化する。なお、この初期化方法はランダムなものに限られず、機械学習のための種々の初期化の方法を採用できる。
【００３３】
そして機械学習処理部２６は、上述の（１）乃至（５）のステップの少なくとも一つを含む機械学習処理を実行して、マルチモーダル機械学習器３０を機械学習したモデルとする。なお、この処理は、マルチモーダル機械学習器３０全体を機械学習する、（３），（４），（５）のいずれか一つを含むこととするのが好適である。
【００３４】
また、本実施の形態の機械学習処理部２６は、上記処理の後、モデルパラメータを調整する処理として、推定結果の分散を最小化する処理を行ってもよい。この処理は、K.Sohn, et.al., Improved multimodal deep learning with variation of information, In NIPS. pp.2141-2149, 2014にその詳細が開示されているので、ここでの詳しい説明を省略する。
【００３５】
ここで具体的に、（１）乃至（５）のそれぞれの処理について説明する。まず、（１）キーワードベクトル情報を用いて第１の双方向ニューラルネットワーク３１を機械学習する処理では、機械学習処理部２６は、第１の双方向ニューラルネットワーク３１の各層のみを機械学習の対象として、この第１の双方向ニューラルネットワーク３１が機械学習するべき情報として、キーワード前処理部２５で得たキーワードベクトル情報を入力として用いて、一般的なＲＢＭの機械学習を行う。
【００３６】
すなわち機械学習処理部２６は、第１の双方向ニューラルネットワーク３１の入力層３１ｐに、キーワード前処理部２５で得たキーワードベクトル情報を逐次的に入力し、第１の中間層３１ｑと、第２の中間層３１ｒとの各ノードの値を、各層間の結合重みの情報とバイアスの値とを用いて推定し、第２の中間層３１ｒの各ノードの推定値を記憶しておく。つまり、順伝播により第２の中間層３１ｒの推定値を得る。
【００３７】
機械学習処理部２６は、次に、第２の中間層３１ｒの各ノードの推定値から第１の中間層３１ｑ及び入力層３１ｐの各ノードの推定値を推定する。この推定の演算は、ニューラルネットワークの逆方向の演算を行うこと（逆伝播すること）に相当する。そして機械学習処理部２６は、推定により得られた第１の中間層３１ｑ及び入力層３１ｐの各ノードの推定値を、先に記憶した第２の中間層３１ｒの各ノードの値に関連付けて、サンプルとして保持する。
【００３８】
機械学習処理部２６は、複数のキーワードベクトル情報をそれぞれ入力層３１ｐに入力したときのサンプルを得たのち、各ノードの期待値を近似的に演算し、次いで、入力したキーワードベクトル情報の期待値と、演算した各ノードの期待値とに基づいて、各層間の結合重み及びバイアスの更新量の値（勾配、すなわち微分に相当する値）を求める。そして機械学習処理部２６は、対応する更新量の値を、対応する結合重みとバイアスとにそれぞれ加算して各層間の結合重みとバイアスを更新する。
【００３９】
この処理の詳細な内容は、制限付きボルツマンマシンの機械学習を行う方法の一つとして広く知られたＣＤ法（Contrastive Divergence法）等を用いて実現できるものであるので、ここでの説明を省略する。
【００４０】
また（２）画像ベクトル情報を用いて第２の双方向ニューラルネットワーク３２を機械学習する処理を行う機械学習処理部２６は、第２の双方向ニューラルネットワーク３２の各層のみを機械学習の対象として、この第２の双方向ニューラルネットワーク３２が機械学習するべき情報として、画像前処理部２４で得た画像ベクトル情報を入力として用いて、一般的なＲＢＭの機械学習を行う。
【００４１】
すなわち機械学習処理部２６は、第２の双方向ニューラルネットワーク３２の入力層３２ｐに、画像前処理部２４で得た画像ベクトル情報を逐次的に入力し、第１の中間層３２ｑと、第２の中間層３２ｒとの各ノードの推定値を、各層間の結合重みの情報とバイアスの値とを用いて演算し、順伝播により第２の中間層３２ｒの各ノードの推定値を記憶しておく。機械学習処理部２６は、次に、第２の中間層３２ｒの推定値から逆伝播して第１の中間層３２ｑ及び入力層３２ｐの各ノードの値を推定する。そして機械学習処理部２６は、推定して得た第１の中間層３２ｑ及び入力層３２ｐの各ノードの推定値を、先に記憶した第２の中間層３２ｒの各ノードの推定値に関連付けて、サンプルとして保持する。
【００４２】
機械学習処理部２６は、複数の画像ベクトル情報をそれぞれ入力層３２ｐに入力したときのサンプルを得たのち、各ノードの期待値を近似的に演算し、次いで、入力した画像ベクトル情報の期待値と、演算した各ノードの期待値とに基づいて、各層間の結合重み及びバイアスの更新量の値（勾配、すなわち微分に相当する値）を求める。そして機械学習処理部２６は、対応する更新量の値を、対応する結合重みとバイアスとにそれぞれ加算して各層間の結合重みとバイアスを更新する。
【００４３】
（３）キーワードベクトル情報を入力したときの、第２の双方向ニューラルネットワーク３２の入力層３２ｐの入力データの推定結果により、マルチモーダル機械学習器３０全体を機械学習する処理を行う際には、機械学習処理部２６は次のように動作する。すなわち機械学習処理部２６は、第１の双方向ニューラルネットワーク３１の入力層３１ｐに、キーワード前処理部２５で得たキーワードベクトル情報を逐次的に入力し、第１の中間層３１ｑと、第２の中間層３１ｒとの各ノードの値、並びに、第２の中間層３１ｒのノードの値と、第２の中間層３１ｒとの間の結合重み及びバイアスの情報とに基づいて得られる統合学習層３３の各ノードの値と、統合学習層３３の各ノードの値とを順伝播により推定する。
【００４４】
そして機械学習処理部２６は、統合学習層３３の各ノードの値から、第２の双方向ニューラルネットワーク３２の第２の中間層３２ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第２の双方向ニューラルネットワーク３２の各層の各ノードの値（第２の中間層３２ｒの各ノードの値、並びに第１の中間層３２ｑ，入力層３２ｐの各ノードの値）とをそれぞれ逆伝播により推定し、これらマルチモーダル機械学習器３０の各層の各ノードの推定値をサンプルとして記憶しておく。
【００４５】
また機械学習処理部２６は、入力したキーワードベクトル情報の元となったキーワード情報に関連付けられた、フォントの種類を特定する情報を取得する。そして機械学習処理部２６は、当該取得した、フォントの種類を特定する情報に関連付けられた画像データから得られた部分画像に対応する、画像ベクトル情報をさらに取得する。
【００４６】
機械学習処理部２６は、ここで取得した画像ベクトル情報（入力したキーワードベクトル情報に関わるフォントと同じ種類のフォントに関連した画像ベクトル情報）を、サンプル教師情報として記憶する。
【００４７】
機械学習処理部２６は、複数のキーワードベクトル情報をそれぞれ入力層３１ｐに入力したときのサンプル、及びサンプル教師情報を得たのち、当該サンプルに基づいてマルチモーダル機械学習器３０が備えるニューラルネットワークの各層の各ノードの期待値を近似的に演算し、次いで、サンプル教師情報に基づいて第２の双方向ニューラルネットワーク３２の入力層３２ｐの各ノードの期待値（教師期待値）を求めて、これらの期待値と教師期待値とに基づいて、マルチモーダル機械学習器３０が備えるニューラルネットワークの各層間の結合重み及びバイアスの更新量の値（勾配、すなわち微分に相当する値）を求める。そして機械学習処理部２６は、対応する更新量の値を、対応する結合重みとバイアスとにそれぞれ加算して各層間の結合重みとバイアスを更新する。
【００４８】
（４）画像ベクトル情報を入力したときの、第１の双方向ニューラルネットワーク３１の入力層３１ｐの入力データの推定結果により、マルチモーダル機械学習器３０全体を機械学習する処理は、この（３）の処理の逆順を行うものであり、この場合の機械学習処理部２６は、第２の双方向ニューラルネットワーク３２の入力層３２ｐに、画像前処理部２４で得た画像ベクトル情報を逐次的に入力し、第１の中間層３２ｑと、第２の中間層３２ｒとの各ノードの値、並びに、この第２の中間層３２ｒのノードの値と、第２の中間層３２ｒとの間の結合重み及びバイアスの情報とに基づいて得られる統合学習層３３の各ノードの値を順伝播により得る。そして機械学習処理部２６は、ここで得られた統合学習層３３の各ノードの値と、第１の双方向ニューラルネットワーク３１の第２の中間層３１ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第１の双方向ニューラルネットワーク３１の各層の各ノードの値（第２の中間層３１ｒの各ノードの値、並びに第１の中間層３１ｑ，入力層３１ｐの各ノードの値）とをそれぞれ逆伝播により推定し、これらマルチモーダル機械学習器３０の各層の各ノードの推定値をサンプルとして記憶しておく。
【００４９】
また機械学習処理部２６は、入力した画像ベクトル情報の元となった画像データに関連付けられた、フォントの種類を特定する情報を取得する。そして機械学習処理部２６は、当該取得した、フォントの種類を特定する情報に関連付けられたキーワード情報に基づいて得られるキーワードベクトル情報をさらに取得する。
【００５０】
機械学習処理部２６は、ここで取得したキーワードベクトル情報（入力した画像ベクトル情報に関わるフォントと同じ種類のフォントに関連したキーワードベクトル情報）を、サンプル教師情報として記憶する。
【００５１】
機械学習処理部２６は、複数の画像ベクトル情報をそれぞれ入力層３２ｐに入力したときのサンプル、及びサンプル教師情報を得たのち、当該サンプルに基づいてマルチモーダル機械学習器３０が備えるニューラルネットワークの各層の各ノードの期待値を近似的に演算し、次いで、サンプル教師情報に基づいて第１の双方向ニューラルネットワーク３１の入力層３１ｐの各ノードの期待値（教師期待値）を求めて、これらの期待値と教師期待値とに基づいて、マルチモーダル機械学習器３０が備えるニューラルネットワークの各層間の結合重み及びバイアスの更新量の値（勾配、すなわち微分に相当する値）を求める。そして機械学習処理部２６は、対応する更新量の値を、対応する結合重みとバイアスとにそれぞれ加算して各層間の結合重みとバイアスを更新する。
【００５２】
さらに、（５）第１の双方向ニューラルネットワーク３１にキーワードベクトル情報を入力するとともに、第２の双方向ニューラルネットワーク３２に画像ベクトル情報を入力したときの、第１の双方向ニューラルネットワーク３１の入力層３１ｐの入力データの推定結果と、第２の双方向ニューラルネットワーク３２の入力層３２ｐの入力データの推定結果とを用いてマルチモーダル機械学習器３０全体を機械学習する処理は、次のようにして行われる。
【００５３】
この例では、機械学習処理部２６は、処理の対象とするフォントの種類のそれぞれを順次選択し、当該選択した、互いに同じフォントの種類を特定する情報に関連付けられたキーワード情報と画像データとのそれぞれに基づく、キーワードベクトル情報と画像ベクトル情報とを取得する。
【００５４】
機械学習処理部２６は、第１の双方向ニューラルネットワーク３１の入力層３１ｐに、取得したキーワード情報に基づいてキーワード前処理部２５で得たキーワードベクトル情報を逐次的に入力し、第１の中間層３１ｑと、第２の中間層３１ｒとの各ノードの値を推定する。またこの機械学習処理部２６は、第２の双方向ニューラルネットワーク３２の入力層３２ｐに、取得した画像データに関連して画像前処理部２４で得た画像ベクトル情報を逐次的に入力し、第１の中間層３２ｑと、第２の中間層３２ｒとの各ノードの値を推定する。
【００５５】
機械学習処理部２６は、さらに、ここで推定した第１の双方向ニューラルネットワーク３１の第２の中間層３１ｒの各ノードの値と、第２の双方向ニューラルネットワーク３２の第２の中間層３２ｒの各ノードの値と、これら第２の中間層３１ｒ及び第２の中間層３２ｒとの間の結合重み及びバイアスの情報とに基づいて得られる統合学習層３３の各ノードの値を推定する。
【００５６】
機械学習処理部２６は、この推定された統合学習層３３の各ノードの値と、第１の双方向ニューラルネットワーク３１の第２の中間層３１ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第１の双方向ニューラルネットワーク３１の各層の各ノードの値（第２の中間層３１ｒの各ノードの値、並びに第１の中間層３１ｑ，入力層３１ｐの各ノードの値）とをそれぞれ推定し、さらに、この推定された統合学習層３３の各ノードの値と、第２の双方向ニューラルネットワーク３２の第２の中間層３２ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第２の双方向ニューラルネットワーク３２の各層の各ノードの値（第２の中間層３２ｒの各ノードの値、並びに第１の中間層３２ｑ，入力層３２ｐの各ノードの値）とをそれぞれ推定する。
【００５７】
機械学習処理部２６は、推定された統合学習層３３の各ノードの値と、当該統合学習層３３の各ノードの推定された値を用いて得られた、第１の双方向ニューラルネットワーク３１及び第２の双方向ニューラルネットワーク３２の各層の各ノードの推定値を、サンプルとして記憶しておく。
【００５８】
また機械学習処理部２６は、複数の画像ベクトル情報及びキーワードベクトル情報をそれぞれ入力層３１ｐ，３２ｐに入力したときのサンプルを得たのち、当該サンプルに基づいてマルチモーダル機械学習器３０が備えるニューラルネットワークの各層の各ノードの期待値を近似的に演算し、次いで、入力した画像ベクトル情報の期待値とサンプルに基づいて演算した入力層３２ｐの期待値との差、及び、入力したキーワードベクトル情報の期待値とサンプルに基づいて演算した入力層３１ｐの期待値との差、並びに、演算した各ノードの期待値とに基づいて、各層間の結合重み及びバイアスの更新量の値（勾配、すなわち微分に相当する値）を求める。そして機械学習処理部２６は、対応する更新量の値を、対応する結合重みとバイアスとにそれぞれ加算して各層間の結合重みとバイアスを更新する。
【００５９】
機械学習処理部２６は、これらの処理により、マルチモーダル機械学習器３０が備えるニューラルネットワークの各層間の結合重みやバイアス等のモデルパラメータを機械学習する。これは、画像ベクトル情報とキーワードベクトル情報との同時分布をモデル化する処理に対応する。
【００６０】
本実施の形態の情報処理装置１では、機械学習処理部２６が以上の処理を行うことにより、フォントの種類ごとのキーワード情報、画像データ、及びそれらの関係を機械学習したマルチモーダル機械学習器３０（モデル）を得る。
【００６１】
また、機械学習の結果を用いてフォントの検索を支援するプログラムを実行するとき、制御部１１は、ユーザからキーワード情報、または所望の形状に近い（あるいは所望の種類の）フォントで記述されているテキストの画像データの入力を受け入れて、次のように動作する。
【００６２】
すなわちこの処理を行う制御部１１は、機能的には、図５に例示するように、画像受入部４１と、キーワード受入部４２と、抽出処理部４３と、画像前処理部４４と、キーワード前処理部４５と、検索処理部４６とを含む。
【００６３】
ここで画像受入部４１は、ユーザが画像データを入力したときに、当該画像データを受け入れて、抽出処理部４３に出力する。また、キーワード受入部４２は、ユーザがキーワード情報を入力したときに、当該キーワード情報を受け入れる。
【００６４】
抽出処理部４３は、画像受入部４１が画像データを受け入れたときに、当該画像データから、複数の画像部分を抽出する。一例としてこの抽出処理部４３は、抽出処理部２３と同様に、予め定めたサイズの画像部分を、ユーザが入力した画像データのランダムな範囲から抽出する。具体的にこの抽出処理部４３は、ユーザが入力した高さＨ×幅Ｗピクセルの画像データから、予め定めた高さｈ×幅ｗの画像部分を抽出することとして、０以上Ｈ−ｈ以下のランダムな整数値Ｒｈと、０以上Ｗ−ｗ以下のランダムな整数値Ｒｗとを生成する。そして抽出処理部４３は、画像データのうち（Ｒｈ，Ｒｗ）を左上隅の座標とする高さｈ×幅ｗの領域を、画像部分として抽出し、当該抽出した画像部分を、記憶部１２に保持する。抽出処理部４３は、この処理を所定の回数だけ繰り返して実行し、受け入れた画像データから複数の画像部分を取り出す。
【００６５】
画像前処理部４４は、抽出処理部４３が生成した部分画像のそれぞれに基づいて、各部分画像の特徴抽出を行い、当該抽出した特徴を表す特徴量である、機械学習のためのベクトルデータを生成する。一例としてこの画像前処理部４４は、所定のサイズの画像データの入力を受けて、例えばこの特徴抽出を行う特徴抽出器として、上記所定サイズの画像データの分類を行って、その分類結果を出力するニューラルネットワークを用いる。このニューラルネットワークは例えば、残差ネットワーク（ResNet）等、広く知られたものでよく、予め適当な画像データのセット（具体的にはImageNet（http://www.image-net.org/）等でよい）により機械学習を行っておくものとすればよい。本実施の形態において、この画像前処理部４４が用いるニューラルネットワークは、制御部１１が機械学習処理を行う場合は、機械学習処理時に画像前処理部２４が用いるニューラルネットワークをそのまま利用してよい。
【００６６】
画像前処理部４４は、記憶部１２に保持されている部分画像を、順次、このニューラルネットワークに入力し、このニューラルネットワークの出力層の一つ手前の中間層（ベクトル情報が得られる層）の各ノードの値を、当該部分画像に対応するベクトル情報（画像ベクトル情報）として記憶する。
【００６７】
キーワード前処理部４５は、ユーザが入力したキーワード情報のうち、機械学習処理の過程で生成された語彙リストを参照し、予め固有の識別番号ｉ（例えばｉ＝１，２，…Ｎといった連番）が付与されたキーワード情報を取り出して、Ｎ次元のベクトルのうち、上記取り出したキーワード情報（複数あってよい）の識別番号に対応する要素を「１」、それ以外の要素を「０」としたベクトル情報（キーワードベクトル情報）を生成して記憶する。
【００６８】
検索処理部４６は、（１）記憶しているキーワードベクトル情報を用いて第１の双方向ニューラルネットワーク３１により他のキーワードベクトル情報を推定する処理と、
（２）記憶している画像ベクトル情報を用いて第２の双方向ニューラルネットワーク３２により他の画像ベクトル情報を推定する処理と、
（３）記憶しているキーワードベクトル情報を入力して画像ベクトル情報を推定する処理と、
（４）記憶している画像ベクトル情報を入力してキーワードベクトル情報を推定する処理と、
（５）第１の双方向ニューラルネットワーク３１に、記憶しているキーワードベクトル情報を入力するとともに、第２の双方向ニューラルネットワーク３２に、記憶している画像ベクトル情報を入力して、キーワードベクトル情報と画像ベクトル情報の双方を推定する処理と、
の少なくとも一つの処理を実行して、キーワードベクトル情報または画像ベクトル情報の少なくとも一方の推定を行う。
【００６９】
具体的に、（１）キーワードベクトル情報を用いて第１の双方向ニューラルネットワーク３１により他のキーワードベクトル情報を推定する処理では、検索処理部４６は、第１の双方向ニューラルネットワーク３１の入力層３１ｐに、キーワード前処理部４５で得たキーワードベクトル情報を入力し、第１の中間層３１ｑと、第２の中間層３１ｒとの各ノードの値を、各層間の結合重みの情報とバイアスの値とを用いて推定する。そして検索処理部４６は、第２の中間層３１ｒの各ノードの推定値から第１の中間層３１ｑ及び入力層３１ｐの各ノードの推定値を推定する。この推定の演算は、ニューラルネットワークの逆方向の演算を行うことに相当する。そして検索処理部４６は、この推定により得られた入力層３１ｐの各ノードの値（キーワードベクトル情報の推定値）を得る。
【００７０】
また（２）画像ベクトル情報を用いて第２の双方向ニューラルネットワーク３２により他の画像ベクトル情報を推定する処理を行う場合、検索処理部４６は、第２の双方向ニューラルネットワーク３２の入力層３２ｐに、画像前処理部４４で得た画像ベクトル情報を入力し、第１の中間層３２ｑと、第２の中間層３２ｒとの各ノードの推定値を、各層間の結合重みの情報とバイアスの値とを用いて演算する。そして検索処理部４６は、ここで得られた第２の中間層３２ｒの推定値から第１の中間層３２ｑ及び入力層３２ｐの各ノードの値を推定する。この推定は、ニューラルネットワークの逆方向の演算を行うことに相当する。こうして検索処理部４６は、推定により得た入力層３２ｐの各ノードの値（画像ベクトル情報の推定値）を得る。
【００７１】
次に、（３）キーワードベクトル情報を入力して画像ベクトル情報を推定する場合、検索処理部４６は、第１の双方向ニューラルネットワーク３１の入力層３１ｐに、キーワード前処理部４５で得たキーワードベクトル情報を入力し、第１の中間層３１ｑと、第２の中間層３１ｒとの各ノードの値、並びに、第２の中間層３１ｒのノードの値と、第２の中間層３１ｒとの間の結合重み及びバイアスの情報とに基づいて得られる統合学習層３３の各ノードの値と、この統合学習層３３の各ノードの値と、第２の双方向ニューラルネットワーク３２の第２の中間層３２ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第２の双方向ニューラルネットワーク３２の各層の各ノードの値（第２の中間層３２ｒの各ノードの値、並びに第１の中間層３２ｑ，入力層３２ｐの各ノードの値）とをそれぞれ推定する。そして検索処理部４６は、推定により得た入力層３２ｐの各ノードの値（画像ベクトル情報の推定値）を得る。
【００７２】
さらに、（４）画像ベクトル情報を入力してキーワードベクトル情報を推定する処理を行う場合、検索処理部４６は、第２の双方向ニューラルネットワーク３２の入力層３２ｐに、画像前処理部４４で得た画像ベクトル情報を入力し、第１の中間層３２ｑと、第２の中間層３２ｒとの各ノードの値、並びに、この第２の中間層３２ｒのノードの値と、第２の中間層３２ｒとの間の結合重み及びバイアスの情報とに基づいて得られる統合学習層３３の各ノードの値と、この統合学習層３３の各ノードの値と、第１の双方向ニューラルネットワーク３１の第２の中間層３１ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第１の双方向ニューラルネットワーク３１の各層の各ノードの値（第２の中間層３１ｒの各ノードの値、並びに第１の中間層３１ｑ，入力層３１ｐの各ノードの値）とをそれぞれ推定する。そして、検索処理部４６は、推定により得た入力層３１ｐの各ノードの値（キーワードベクトル情報の推定値）を得る。
【００７３】
そして（５）第１の双方向ニューラルネットワーク３１にキーワードベクトル情報を入力するとともに、第２の双方向ニューラルネットワーク３２に画像ベクトル情報を入力して、キーワードベクトル情報と画像ベクトル情報の双方を推定する場合、検索処理部４６は、第１の双方向ニューラルネットワーク３１の入力層３１ｐに、キーワード前処理部４５で得たキーワードベクトル情報を入力し、また第２の双方向ニューラルネットワーク３２の入力層３２ｐに、画像前処理部４４で得た画像ベクトル情報を入力する。
【００７４】
そして検索処理部４６は、第１の双方向ニューラルネットワーク３１の第１の中間層３１ｑと、第２の中間層３１ｒとの各ノードの値を推定し、また第２の双方向ニューラルネットワーク３２の第１の中間層３２ｑと、第２の中間層３２ｒとの各ノードの値を推定する。さらに検索処理部４６は、ここで推定した第１の双方向ニューラルネットワーク３１の第２の中間層３１ｒの各ノードの値と、第２の双方向ニューラルネットワーク３２の第２の中間層３２ｒの各ノードの値と、これら第２の中間層３１ｒ及び第２の中間層３２ｒとの間の結合重み及びバイアスの情報とに基づいて得られる統合学習層３３の各ノードの値を推定する。
【００７５】
検索処理部４６は、この推定された統合学習層３３の各ノードの値と、第１の双方向ニューラルネットワーク３１の第２の中間層３１ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第１の双方向ニューラルネットワーク３１の各層の各ノードの値（第２の中間層３１ｒの各ノードの値、並びに第１の中間層３１ｑ，入力層３１ｐの各ノードの値）とをそれぞれ推定し、さらに、この推定された統合学習層３３の各ノードの値と、第２の双方向ニューラルネットワーク３２の第２の中間層３２ｒとの間の結合重み及びバイアスの情報とを用いて得られる、当該第２の双方向ニューラルネットワーク３２の各層の各ノードの値（第２の中間層３２ｒの各ノードの値、並びに第１の中間層３２ｑ，入力層３２ｐの各ノードの値）とをそれぞれ推定する。
【００７６】
そして検索処理部４６は、第１の双方向ニューラルネットワーク３１及び第２の双方向ニューラルネットワーク３２の各入力層３１ｐ，３２ｐの各ノードの推定値を、それぞれキーワードベクトル情報の推定値及び画像ベクトル情報の推定値として得る。
【００７７】
検索処理部４６は、次に、推定値として得たキーワードベクトル情報や画像ベクトル情報に基づいて、キーワード情報や画像データ、あるいはフォントの種類を特定する情報を得る。具体的に、検索処理部４６は、推定値としてキーワードベクトル情報を得たときには、当該ベクトル情報に含まれる要素のうち、値が「１」であると判断される（例えば小数点以下を四捨五入したときの値が「１」である）要素に対応する識別番号の一覧を生成し、語彙リストを参照して、当該識別番号に対応するキーワード情報の一覧をユーザに提示する。ユーザは、ここで提示された一覧に含まれるキーワード情報（当初入力したキーワード情報を豊富化したもの）から、キーワード情報を選択して、当該キーワード情報が関連付けられた種類のフォントを検索することとすればよい。
【００７８】
また検索処理部４６は、推定値として画像ベクトル情報を得たときには、部分画像データベースに記録されている画像ベクトル情報との距離（例えばユークリッド距離）または類似度（例えばコサイン類似度）を演算する。そして検索処理部４６は、部分画像データベースに記録されている画像ベクトル情報のうち、推定値として得た画像ベクトル情報との距離が短い順に所定の数だけ、あるいは推定値との類似度の高い順に所定の数だけの画像ベクトル情報を抽出する。検索処理部４６は、当該抽出した画像ベクトル情報に関連付けられたフォントの種類を表す情報を取り出す。
【００７９】
そして検索処理部４６は、取り出したフォントの種類を表す情報の一覧、あるいはそれとともに、当該一覧に含まれる種類のフォントの見本（画像取得部２１が取得した画像データであって、当該種類のフォントで記述されたテキストの画像でよい）をユーザに提示する。
【００８０】
［動作］
本実施の形態は以上の構成を備えており、マルチモーダル機械学習器３０を機械学習する過程では、情報処理装置１は、複数の種類のフォントの画像と、各種類のフォントについて、フォントを表現する単語、あるいは複数の単語を含む短文であるキーワード情報とを取得する。具体的にキーワード情報は「エレガント」など外見上の印象を表す語や、「サンセリフ」などフォントの特徴を表す語などを含む。
【００８１】
またフォントの画像は、図３（ａ）に例示したように、ある種類のフォントのみで記述されたテキストの画像である。これらは、例えばフォントの配布を行っているウェブサイトから取得できる。
【００８２】
情報処理装置１は、取得した各種類のフォントの画像データから、それぞれ複数の画像部分を抽出する。ここでは情報処理装置１は、予め定めたサイズの画像部分を、各種類のフォントの画像データのランダムな範囲から抽出するものとする（図３（ｂ））。情報処理装置１は、当該抽出した画像部分のそれぞれを、元の画像データ（及びフォントの種類を特定する情報）に関連付けて保持する。
【００８３】
また情報処理装置１は、当該保持した部分画像のそれぞれに基づいて、各部分画像に対応する、機械学習のためのベクトルデータを生成する。ここでは上記所定のサイズの部分画像の入力を受けてその分類を出力するよう機械学習されたニューラルネットワークを用いるものとする。既に述べたようにこのようなニューラルネットワークは例えば、残差ネットワーク（ResNet）を、ImageNet（http://www.image-net.org/）等、広く知られた画像分類のためのデータセットにより機械学習をさせたものを用いればよい。
【００８４】
情報処理装置１は、保持した部分画像を順次、このニューラルネットワークに入力し、このニューラルネットワークの出力層の一つ手前の中間層（ベクトル情報が得られる層）の各ノードの値を、当該入力された部分画像と、対応するフォントの種類を表す情報に関連付けて、当該部分画像に対応する画像ベクトル情報として記録して部分画像データベースを生成する。
【００８５】
一方、情報処理装置１は、キーワード情報については、互いに異なるキーワード情報ごとに固有の識別番号ｉを付して語彙リストを生成するとともに、フォントの種類ごとに、当該種類のフォントするキーワード情報（一般に複数ある）の識別番号に対応する要素を「１」、それ以外の要素を「０」としたキーワードベクトルを生成して、対応するフォントの種類の情報に関連付けてキーワードデータベースとして記録する。
【００８６】
情報処理装置１は、こうして得られた部分画像データベースとキーワードデータベースとの内容を用いてマルチモーダル機械学習器３０の機械学習処理を行う。本実施の形態では、図４に例示したように、このマルチモーダル機械学習器３０は、入力層を含む三層のニューラルネットワークである第１の双方向ニューラルネットワーク３１と、これと同様に入力層を含む三層のニューラルネットワークである第２の双方向ニューラルネットワーク３２と、第１の双方向ニューラルネットワーク３１と第２の双方向ニューラルネットワーク３２のそれぞれの出力層に結合された統合学習層３３とを含むディープボルツマンマシン（ＤＢＭ）である。
【００８７】
情報処理装置１は、このニューラルネットワークの各層間の結合重みやバイアスを初期化した後、図６（ａ）に示すように、キーワードベクトル情報を用いて第１の双方向ニューラルネットワーク３１を制限付きボルツマンマシンとして機械学習するルートと、図６（ｂ）に示すように、画像ベクトル情報を用いて第２の双方向ニューラルネットワーク３２を制限付きボルツマンマシンとして機械学習するルートと、図６（ｃ）に示すように、キーワードベクトル情報を入力したときの、第２の双方向ニューラルネットワーク３２の入力層の入力データの推定結果により、マルチモーダル機械学習器３０全体を機械学習するルートと、図６（ｄ）に示すように、画像ベクトル情報を入力したときの、第１の双方向ニューラルネットワーク３１の入力層の入力データの推定結果により、マルチモーダル機械学習器３０全体を機械学習するルートと、図６（ｅ）に示すように、第１の双方向ニューラルネットワーク３１にキーワードベクトル情報を入力するとともに、第２の双方向ニューラルネットワーク３２に画像ベクトル情報を入力したときの、第１の双方向ニューラルネットワーク３１の入力層の入力データの推定結果と、第２の双方向ニューラルネットワーク３２の入力層の入力データの推定結果とを用いてマルチモーダル機械学習器３０全体を機械学習するルートと、の各ルートで機械学習を行う。
【００８８】
情報処理装置１は、これにより、キーワード情報とフォントの画像とのマルチモーダルな関係を機械学習したモデル（機械学習済みのマルチモーダル機械学習器３０）を生成する。
【００８９】
このように機械学習したモデル（及び、その製造過程で得られた語彙リストと部分画像データベースと、）を用いてフォントを検索しようとするデザイナ等のユーザは、例えば所望のフォントのイメージを単語で表現したキーワード情報を入力する。ここでは例えば「エレガント」等のキーワード情報を入力したものとする。
【００９０】
情報処理装置１は、ここでユーザが入力したキーワード情報のうち、機械学習処理の過程で生成された語彙リストを参照し、予め固有の識別番号ｉ（例えばｉ＝１，２，…Ｎといった連番）が付与されたキーワード情報を取り出して、Ｎ次元のベクトルのうち、上記取り出したキーワード情報（複数あってよい）の識別番号に対応する要素を「１」、それ以外の要素を「０」としたベクトル情報（キーワードベクトル情報）を生成して記憶する。
【００９１】
この例では、情報処理装置１は、（１）生成したキーワードベクトル情報を用いて第１の双方向ニューラルネットワーク３１により他のキーワードベクトル情報を推定する処理と、（３）生成したキーワードベクトル情報を入力して画像ベクトル情報を推定する処理との少なくとも一方を実行する。
【００９２】
具体的に、生成したキーワードベクトル情報を用いて第１の双方向ニューラルネットワーク３１により他のキーワードベクトル情報を推定する処理では、情報処理装置１は、機械学習したマルチモーダル機械学習器３０の第１の双方向ニューラルネットワーク３１の入力層に、生成したキーワードベクトル情報を入力して、順伝播により第１の双方向ニューラルネットワーク３１の各中間層の各ノードの値を推定し、さらに逆伝播して入力層の各ノードの推定値を得る。情報処理装置１は、この各ノードの推定値を要素とするベクトル情報を得る。そして当該ベクトル情報に含まれる要素のうち、値が「１」であると判断される（例えば小数点以下を四捨五入したときの値が「１」である）要素に対応する識別番号の一覧を生成し、語彙リストを参照して、当該識別番号に対応するキーワード情報の一覧をユーザに提示する。
【００９３】
また情報処理装置１は、キーワードベクトル情報を入力して画像ベクトル情報を推定する場合、機械学習したマルチモーダル機械学習器３０の第１の双方向ニューラルネットワーク３１の入力層に、キーワードベクトル情報を入力し、第１の双方向ニューラルネットワーク３１の各層の各ノードの値、並びに統合学習層３３の各ノードの値を演算する。情報処理装置１はさらに、当該演算した統合学習層３３の各ノードの値を用いて、第２の双方向ニューラルネットワーク３２の各層の各ノードの値をそれぞれ推定する。そして情報処理装置１は、推定により得た第２の双方向ニューラルネットワーク３２の入力層の各ノードの値（推定された画像ベクトル情報）を用い、部分画像データベースに記録されている各画像ベクトル情報と、当該推定された画像ベクトル情報との距離（例えばユークリッド距離）または類似度（例えばコサイン類似度）を演算する。そして情報処理装置１は、部分画像データベースに記録されている画像ベクトル情報のうち、推定された画像ベクトル情報との距離が短い順（類似度が大きい順）に所定の数だけの画像ベクトル情報を抽出する。情報処理装置１は、そして、当該抽出した画像ベクトル情報に関連付けられたフォントの種類を表す情報、または当該抽出した画像ベクトル情報の元となった画像データを取得して、ユーザに提示する。
【００９４】
なお、ユーザが検索のキーとして画像データを用いる場合は、情報処理装置１は、機械学習処理の際と同様に当該ユーザが検索のキーとした画像データから部分画像を抽出し、当該部分画像に基づいて画像ベクトル情報を生成する。そして情報処理装置１は、当該画像ベクトル情報を、マルチモーダル機械学習器３０の第２の双方向ニューラルネットワークに入力して、類似する画像ベクトル情報（及びそれに関連する画像データやフォントの種類の情報）を取得し、あるいは、キーワード情報を推定して、当該推定されたキーワード情報を表示出力する。
【００９５】
［複数の分類器を利用する例］
また本実施の形態において、機械学習処理部２６は、図７に例示するように、複数の分類器を利用して実現されてもよい。この例では、キーワード情報（具体的にはキーワード情報に基づくキーワードベクトル情報）を機械学習する第１のニューラルネットワーク５１と、画像前処理部２４が生成した画像ベクトル情報を機械学習する第２のニューラルネットワーク５２と、第１のニューラルネットワーク５１の出力と第２のニューラルネットワーク５２の出力とを統合する統合部５３とを有するマルチモーダル機械学習器３０′を用いる。
【００９６】
具体的に、この例に係るマルチモーダル機械学習器３０′において第１のニューラルネットワーク５１は、具体的には図７に例示するように入力層５１ｐと、第１の中間層５１ｑと、第２の中間層５１ｒとを含む。ここで、入力層５１ｐと、第１の中間層５１ｑとは全結合ネットワークとし、第１の中間層５１ｑと第２の中間層５１ｒとの間も全結合ネットワークとしておく。
【００９７】
また、第２のニューラルネットワーク５２は、図７に例示するように、入力層５２ｐと、中間層５２ｑとを備える。この入力層５２ｐと中間層５２ｑとの間は全結合ネットワークでよい。なお、本実施の形態のこの例では、第１のニューラルネットワーク５１の第２の中間層５１ｒ（最終層）と、第２のネットワーク５２の中間層５２ｑ（最終層）との次元は同一の次元Ｄとしておく。
【００９８】
統合部５３は、第１のニューラルネットワーク５１の第２の中間層５１ｒ（最終層）と、第２のネットワーク５２の中間層５２ｑ（最終層）との次元と同じ次元を有する結合出力層５３ｐを備える。本実施の形態では、第１のニューラルネットワーク５１の第２の中間層５１ｒ（最終層）と、第２のネットワーク５２の中間層５２ｑ（最終層）との対応するノードの和を、結合部５３の結合出力層５３ｐの対応するノードの値とする。つまり、この結合部５３は、第１のニューラルネットワーク５１の第２の中間層５１ｒ（最終層）が出力するベクトルと、第２のネットワーク５２の中間層５２ｑ（最終層）が出力するベクトルとの和を演算するものである。
【００９９】
本実施の形態のこの例に係るマルチモーダル機械学習器３０′を機械学習する機械学習処理部２６の処理は、次のようなものとなる。
【０１００】
本実施の形態のこの例では、機械学習処理部２６は、第１のニューラルネットワーク５１と、第２のニューラルネットワーク５２とをそれぞれ個別に機械学習する。また、本実施の形態のこの例においては、キーワード前処理部２５は、上述の例とは異なり、キーワード取得部２２が取得した互いに異なるキーワード情報（Ｎ個あるものとする）のそれぞれに互いに異なるベクトル値であって、互いに類似する一対の語にそれぞれ対応するベクトル値間のコサイン類似度が比較的高い値となるよう設定されたベクトル値に変換する。このようなベクトル値は、例えばword2vec（Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, ”Efficient estimation of word representations in vector space”, 2013, ICLR(arXiv:1301.3781v3)）によって得ることができる。なお、word2vec等で用いるモデルは、予め、所定のテキストのセット（例えばwikipediaなどに現れるテキストのセット）によって機械学習しておくものとする。このような分散表現ベクトルの取得方法は、広く知られた方法を採用できるので、ここでの詳しい説明は省略する。
【０１０１】
キーワード前処理部２５は、取得したキーワード情報に対応するword2vecの出力を、キーワードベクトル情報として出力する。
【０１０２】
機械学習処理部２６は、取得したキーワード情報に対応するキーワードベクトル情報として、キーワード前処理部２５が出力するキーワードベクトル情報を一つ一つ逐次的に選択し、選択したキーワードベクトル情報に対応する、フォントの種類を表す情報を、教師情報としておく。また機械学習処理部２６は、選択したキーワードベクトル情報を、第１のニューラルネットワーク５１の入力層５１ｐに入力し、第１の中間層５１ｑと、第２の中間層５１ｒとの各ノードの値を推定する。そして、機械学習処理部２６は、この第２の中間層５１ｒの各ノードの値を成分とするベクトル（第２の中間層５１ｒが出力するベクトル）と、第２のニューラルネットワーク５２の出力（この場合はどの成分も０であるゼロベクトルとなる）との和を求めて、結合部５３の結合出力層５３ｐの各ノードの値を決定する。
【０１０３】
機械学習処理部２６は、また、入力したキーワードベクトル情報に対応する、教師情報であるフォントの種類を表す情報を、結合出力層５３ｐの次元Ｄと同じ次元のベクトル値に変換する。このベクトル値は、フォントの種類を、当該ベクトル値の各成分に対応付け、フォントの種類を表す情報により表されるフォントの種類に対応する成分の値を「１」、それ以外の値を「０」としたワンホットベクトルとして表したものとする。
【０１０４】
機械学習処理部２６は、このワンホットベクトルと、上記決定した結合出力層５３ｐの各ノードの値との差を用いて、バックプロパゲーションにより、第１のニューラルネットワーク５１の入力層５１ｐと、第１の中間層５１ｑとの間の全結合ネットワーク、及び、第１の中間層５１ｑと第２の中間層５１ｒとの間の全結合ネットワークの結合重みを補正する。
【０１０５】
機械学習処理部２６は、以上の処理を選択したキーワードベクトル情報ごとに行って、上記結合重みを逐次的に補正することによって機械学習を行う。
【０１０６】
つまり、この処理では、機械学習処理部２６は、キーワードベクトル情報と、対応するフォントの種類を表す情報とにより、第１のニューラルネットワーク５１を、キーワードベクトル情報に基づいてフォントの種類を表すベクトル情報を推定する、分類問題を解くためのニューラルネットワークとして機械学習する。
【０１０７】
また、機械学習処理部２６は、取得した画像データに関連して画像前処理部２４で得た画像ベクトル情報を一つ一つ逐次的に選択し、選択した画像ベクトル情報に対応する、フォントの種類を表す情報を、教師情報としておく。また機械学習処理部２６は、選択した画像ベクトル情報を、第２のニューラルネットワーク５２の入力層５２ｐに入力し、中間層５２ｑの各ノードの値を推定する。そして、機械学習処理部２６は、この中間層５２ｑの各ノードの値を成分とするベクトル（中間層５２ｑが出力するベクトル）と、第１のニューラルネットワーク５１の出力（この場合はどの成分も０であるゼロベクトルとなる）との和を求めて、結合部５３の結合出力層５３ｐの各ノードの値を決定する。
【０１０８】
機械学習処理部２６は、また、入力したキーワードベクトル情報に対応する、教師情報であるフォントの種類を表す情報を、結合出力層５３ｐの次元Ｄと同じ次元のベクトル値に変換する。このベクトル値は、上述と同様、フォントの種類を、当該ベクトル値の各成分に対応付け、フォントの種類を表す情報により表されるフォントの種類に対応する成分の値を「１」、それ以外の値を「０」としたワンホットベクトルとして表したものとする。
【０１０９】
機械学習処理部２６は、このワンホットベクトルと、上記決定した結合出力層５３ｐの各ノードの値との差を用いて、バックプロパゲーションにより、第２のニューラルネットワーク５２の入力層５２ｐと、中間層５２ｑとの間の全結合ネットワークの結合重みを補正する。
【０１１０】
機械学習処理部２６は、以上の処理を選択した画像ベクトル情報ごとに行って、上記結合重みを逐次的に補正することによって機械学習を行う。
【０１１１】
つまり、この処理では、機械学習処理部２６は、画像ベクトル情報と、対応するフォントの種類を表す情報とにより、第２のニューラルネットワーク５２を、画像ベクトル情報に基づいてフォントの種類を表すベクトル情報を推定する、分類問題を解くためのニューラルネットワークとして機械学習する。
【０１１２】
本実施の形態の、この例に係る情報処理装置１では、機械学習処理部２６が以上の処理を行うことにより、フォントの種類ごとのキーワード情報、画像データ、及びそれらの関係を機械学習したマルチモーダル機械学習器３０′（モデル）を得る。そして情報処理装置１は、このマルチモーダル機械学習器３０′と、その結合部５３の結合出力層５３ｐの各ノードを特定する情報と、当該情報で特定されるノードに対応するフォントの種類を表す情報との組を記憶しておく。
【０１１３】
また本実施の形態の情報処理装置１は、このように機械学習を行ったマルチモーダル機械学習器３０′を用いて、次のようにフォントの検索を支援する処理を実行する。
【０１１４】
具体的に、この処理を行う情報処理装置１の制御部１１は、ユーザからキーワード情報、または所望の形状に近い（あるいは所望の種類の）フォントで記述されているテキストの画像データの入力を、検索のキーとして受け入れる。そしてこの制御部１１は、機能的には、図５に例示したように、画像受入部４１と、キーワード受入部４２と、抽出処理部４３と、画像前処理部４４と、キーワード前処理部４５と、検索処理部４６と、を含むものとして動作する。これらの各部の動作は、基本的には既に述べた動作と同様であるが、マルチモーダル機械学習器３０′を利用する場合は、キーワード前処理部４５の動作と、検索処理部４６との動作が異なるので、以下、これらの動作について説明する。
【０１１５】
すなわち本実施の形態のマルチモーダル機械学習器３０′を用いる例では、キーワード前処理部４５は、ユーザから検索のキーとしてキーワード情報が入力されると、当該入力されたキーワードに対応するword2vecの出力を、キーワードベクトル情報として出力する。
【０１１６】
またこのキーワード前処理部４５は、複数のキーワード情報が入力されたときには、入力された各キーワード情報に対応するword2vecの出力であるキーワードベクトル情報の平均のベクトル情報を、検索のキーとなるキーワードベクトル情報として出力する。
【０１１７】
そして検索処理部４６は、第１のニューラルネットワーク５１の入力層５１ｐに、キーワード前処理部４５が出力する検索のキーとなるキーワードベクトル情報を入力する。そして検索処理部４６は、第１のニューラルネットワーク５１の第１の中間層５１ｑと、第２の中間層５１ｒとの各ノードの値を推定し、さらに、この第２の中間層５１ｒの各ノードの値を成分とするベクトル（第２の中間層５１ｒが出力するベクトル）と、第２のニューラルネットワーク５２の出力（この場合はどの成分も０であるゼロベクトルとなる）との和を求めて、結合部５３の結合出力層５３ｐの各ノードの値を演算する。
【０１１８】
この結合出力層５３ｐの各ノードは、既に述べたように、それぞれがフォントの種類に対応するよう機械学習されているので、本実施の形態の検索処理部４６は、ここで演算した結合出力層５３ｐの各ノードの値のうち、最大値となっているノードに対応するフォントの種類を表す情報を、検索の結果として出力する。あるいは、上記各ノードの値の上位所定数個分のノードに対応するフォントの種類を表す情報を（例えば値の大きい順に並べて）出力してもよい。
【０１１９】
また、画像ベクトル情報を入力して、フォントの種類を表す情報を推定する処理を行う場合、制御部１１は、所望の形状に近い（あるいは所望の種類の）フォントで記述されているテキストの画像データの入力を受け入れて、抽出処理部４３にて部分画像を生成し、画像前処理部４４にて当該生成した部分画像に対応する画像ベクトル情報を生成する。
【０１２０】
そして検索処理部４６が、第２のニューラルネットワーク５２の入力層５２ｐに、画像前処理部４４で得た画像ベクトル情報を入力し、中間層５２ｑの各ノードの値、並びに、この中間層５２ｑのノードの値と、第１のニューラルネットワーク５１の第２の中間層５１ｒのノードの値（この場合はどの成分も０であるゼロベクトルとなる）とを加算して結合部５３の結合出力層５３ｐの各ノードの値とをそれぞれ演算する。そして検索処理部４６は、演算した結合出力層５３ｐの各ノードの値のうち、最大値となっているノードに対応するフォントの種類を表す情報を、検索の結果として出力する。あるいは、上記各ノードの値の上位所定数個分のノードに対応するフォントの種類を表す情報を（例えば値の大きい順に並べて）出力してもよい。
【０１２１】
さらに、ユーザからキーワード情報と、所望の形状に近い（あるいは所望の種類の）フォントで記述されているテキストの画像データとの双方が入力されたときには、本実施の形態のマルチモーダル機械学習器３０′を用いる例では、キーワード前処理部４５が、ユーザから検索のキーとして入力されたキーワードに対応するword2vecの出力を、キーワードベクトル情報として出力する。
【０１２２】
なお、このキーワード前処理部４５は、複数のキーワード情報が入力されたときには、入力された各キーワード情報に対応するword2vecの出力であるキーワードベクトル情報の平均のベクトル情報を、検索のキーとなるキーワードベクトル情報として出力する。
【０１２３】
一方、ユーザから入力された画像データに基づいて、抽出処理部４３が部分画像を生成し、画像前処理部４４にて当該生成した部分画像に対応する画像ベクトル情報を生成する。
【０１２４】
そして検索処理部４６が、第１のニューラルネットワーク５１の入力層５１ｐに、キーワード前処理部４５が出力する検索のキーとなるキーワードベクトル情報を入力する。そして検索処理部４６は、第１のニューラルネットワーク５１の第１の中間層５１ｑと、第２の中間層５１ｒとの各ノードの値を推定する。
【０１２５】
また検索処理部４６は、第２のニューラルネットワーク５２の入力層５２ｐに、画像前処理部４４で得た画像ベクトル情報を入力し、中間層５２ｑの各ノードの値を推定する。さらに検索処理部４６は、この中間層５２ｑのノードの値と、第１のニューラルネットワーク５１の第２の中間層５１ｒのノードの値（この場合はキーワードベクトル情報に基づいて推定された値となる）とを加算して結合部５３の結合出力層５３ｐの各ノードの値とをそれぞれ演算する。そして検索処理部４６は、演算した結合出力層５３ｐの各ノードの値のうち、最大値となっているノードに対応するフォントの種類を表す情報を、検索の結果として出力する。あるいは、上記各ノードの値の上位所定数個分のノードに対応するフォントの種類を表す情報を（例えば値の大きい順に並べて）出力してもよい。
【０１２６】
このように本実施の形態によると、キーワード情報と、画像データとの少なくとも一方から、ユーザの所望のフォントの種類を表す情報を提示でき、フォントの選択を支援できる。
【０１２７】
［特徴抽出器の学習］
また、本実施の形態のここまでの説明において、画像前処理部４４が用いる、特徴抽出器として残差ネットワーク等のニューラルネットワークを用いる場合、当該ニューラルネットワークは、予め適当な画像データのセットによって機械学習を行うものとしたが、本実施の形態はこれに限られない。
【０１２８】
具体的に、本実施の形態のある例では、制御部１１が、機械学習処理部２６としての動作において、画像前処理部２４で得た画像ベクトル情報を一つ一つ逐次的に選択し、選択した画像ベクトル情報に対応する、フォントの種類を表す情報を教師情報として、第２のニューラルネットワーク５２を機械学習するときに、併せて、この画像前処理部４４が用いる特徴抽出器としてのニューラルネットワークを機械学習してもよい。
【０１２９】
すなわち、本実施の形態のここでの例では、画像前処理部２４の特徴抽出器と、第２のニューラルネットワーク５２に含まれる入力層５２ｐ及び中間層５２ｑを一体のニューラルネットワークとして機械学習を行うこととする。
【０１３０】
つまり、機械学習処理部２６は、選択した画像ベクトル情報を、第２のニューラルネットワーク５２の入力層５２ｐに入力し、中間層５２ｑの各ノードの値を推定する。そして、機械学習処理部２６は、この中間層５２ｑの各ノードの値を成分とするベクトル（中間層５２ｑが出力するベクトル）と、第１のニューラルネットワーク５１の出力（この場合はどの成分も０であるゼロベクトルとなる）との和を求めて、結合部５３の結合出力層５３ｐの各ノードの値を決定する。
【０１３１】
機械学習処理部２６は、また、入力したキーワードベクトル情報に対応する、教師情報であるフォントの種類を表す情報を、結合出力層５３ｐの次元Ｄと同じ次元のベクトル値に変換する。このベクトル値は、上述と同様、フォントの種類を、当該ベクトル値の各成分に対応付け、フォントの種類を表す情報により表されるフォントの種類に対応する成分の値を「１」、それ以外の値を「０」としたワンホットベクトルとして表したものとする。
【０１３２】
そして機械学習処理部２６は、このワンホットベクトルと、上記決定した結合出力層５３ｐの各ノードの値との差を用いて、バックプロパゲーションにより、第２のニューラルネットワーク５２の入力層５２ｐと、中間層５２ｑとの間の全結合ネットワークの結合重みを補正し、さらに入力層５２ｐの各ノードの値が画像前処理部４４の特徴抽出器の出力層の各ノードの値となるので、このままバックプロパゲーションの処理により、特徴抽出器に含まれる各層間の結合重みを補正する。
【０１３３】
本実施の形態のこの例によると、フォントの画像に適合した機械学習を行った特徴抽出器を得ることができる。
【０１３４】
［学習させていないフォントへの対応］
本実施の形態のここまでの例では、機械学習の際に入力したフォントとは異なる種類のフォントについては検索の結果に表れない。しかしながら全ての種類のフォントを機械学習させることは困難である。そこで、本実施の形態の一例では、次のようにして、機械学習の際に入力していないフォントへの対応を実現してもよい。
【０１３５】
本実施の形態のこの例では、マルチモーダル機械学習器３０または３０′の機械学習の際に入力していないフォントであって、検索の対象とするべきフォント（便宜的に、学習外フォントと呼ぶ）について、当該フォント（のみ）で記述されているテキストの画像データを用意する。
【０１３６】
そして制御部１１は、当該画像データを処理の対象として、既に述べた機械学習時の例と同様、抽出処理部４３にて当該処理の対象とした画像データの部分画像を生成し、画像前処理部４４にて当該生成した部分画像に対応する画像ベクトル情報を生成して、学習外フォントのフォントの種類を表す情報に関連付けて、当該画像ベクトル情報を、学習外フォントデータベースとして記憶しておく。
【０１３７】
また本実施の形態のここでの例では、マルチモーダル機械学習器３０または３０′の機械学習の際に用いた、フォントの種類ごとの、当該フォント（のみ）で記述されたテキストの画像データに基づく画像ベクトル情報を、フォントの種類を表す情報に関連付けて、フォントデータベースとして保持しておく。
【０１３８】
制御部１１は、ユーザから検索のキーとしてのキーワード情報、または画像データの少なくとも一方が入力されたときには、既に述べた方法で、当該キーワード情報または画像データから推定されるフォントの種類を表す情報を取得する。
【０１３９】
そして制御部１１は、当該取得した情報に対応する画像ベクトル情報を、フォントデータベースから読み出す（以下、ここで読み出した画像ベクトル情報をターゲット情報と呼ぶ）。制御部１１は、学習外フォントデータベースに記録されている画像ベクトル情報ごとに、上記フォントデータベースから読み出したターゲット情報である画像ベクトル情報との類似度を評価する。ここでの類似度は、例えばコサイン類似度を用いることとすればよい。
【０１４０】
制御部１１は、この処理により、学習外フォントデータベースに記録されている画像ベクトル情報ごとに得た、ターゲット情報との類似度を参照し、ターゲット情報に類似する（類似度が高い）順に所定数個分との検索条件により（あるいは類似度が予め定めたしきい値より高いことを検索の条件として）画像ベクトル情報を、学習外フォントデータベースに記録されている画像ベクトル情報のうちから検索する。
【０１４１】
そして制御部１１は、当該検索により、検索の条件に合致する画像ベクトル情報が見出されると、当該画像ベクトル情報に関連付けて、学習外フォントデータベースに記録されている、フォントの種類を表す情報（学習外フォントの種類を表す情報）をユーザに提示する。なお、類似度が予め定めたしきい値より高い画像ベクトル情報を検索する場合、制御部１１は、学習外フォントデータベースに記録されている画像ベクトル情報のうちから当該検索の条件に合致する画像ベクトル情報が見出せなかったときには、対応するフォントが見出せない旨の情報を表示してもよいし、類似度が高い順に所定数個分の画像ベクトル情報を検索することとしてもよい。
【０１４２】
この例によると、機械学習時に用いていない種類のフォントについても案内することが可能となり、例えば英語のフォントのみを機械学習に用いて、機械学習に用いていない英語外のフォント（日本語や中国語、韓国語などのフォント）を検索結果として提示することも可能となる。
【０１４３】
［一般的な画像に基づくフォントの種類の推定］
また本実施の形態においては、キーワード情報が得られるならば、当該キーワード情報に基づいてフォントの種類を表す情報を推定できるので、例えば一般的な画像（フォントで記述されたテキストでない、一般的な写真等の画像など）に基づいて、当該写真を表現するキーワード情報を取得し、当該取得したキーワード情報を入力データとして、上記機械学習したマルチモーダル機械学習器３０または３０′を用いてフォントの種類を表す情報を推定してもよい。
【０１４４】
このような画像からキーワード情報を取得する処理を行う例としては、画像データに基づいて、機械学習により、対応する名詞と形容詞との対を出力する方法（Delia Frnandz, et.al., "More catn than cute? Interpretable Prediction of Adjective-Noun Pairs", arXiv:1708.06039v1[cs.CV] 21 Aug, 2017）等を採用できる。
【０１４５】
［他の学習の例］
また、ここまでの説明では、機械学習の対象とする画像データとして、対応するフォントで記述されたテキストの画像を用いていたが、本実施の形態における機械学習の対象となる画像データはこれに限られない。例えばある種類のフォントに関連する画像データとして、当該種類のフォントで記述されたテキストを含めるにふさわしいと考えられるフレームや看板、店舗の外観、商品等の画像データを用いてもよい。
【０１４６】
この例では、マルチモーダル機械学習器３０，３０′は、フォントの画像そのものではなく、フォントの種類ごとのキーワード情報と、各種類のフォントが用いられるにふさわしいと考えられるフレーム等の画像データとの関係を機械学習することとなる。
【０１４７】
そしてユーザがフレームの画像データを検索のキーとして入力すると、類似する画像データに関連付けられたフォントの種類の情報や、当該フレームに用いるにふさわしいと考えられる種類のフォントに付与される可能性が高いと推定されるキーワード情報が得られることとなる。
【０１４８】
［実施形態の効果］
本実施の形態によると、キーワード情報からフォントの種類を表す情報を得たり、フォントの種類を表す情報からキーワード情報を得たり、キーワード情報から他のキーワード情報を得たり、フォントの種類を表す情報に基づいて、別の種類のフォントに係る、フォントの種類を表す情報を得る、などの処理が可能となる。
【０１４９】
また、画像データからキーワード情報を得て、フォントの検索の処理に供することも可能となる。
【０１５０】
さらに入力されたキーワード情報を、word2vec等の分散表現に変換することで、入力されたキーワード情報そのものではなく、入力されたキーワード情報に類似すると判断されるキーワード情報を得て、当該得られたキーワード情報（あるいは、得られたキーワード情報と入力されたキーワード情報と）を、マルチモーダル機械学習器３０，３０′に入力して、フォントの種類を表す情報や、他のキーワード情報等を得る処理を実行してもよい。
【０１５１】
［フォント以外への応用］
さらに本実施の形態の例は、フォントに用いる以外にも、デザイン性のある対象物、例えば服飾のボタンやファスナー部品などにも利用できる。
【０１５２】
［機械学習処理と検索処理とを別々の情報処理装置にて行う例］
また、本実施の形態のここまでの説明では一つの情報処理装置１が、機械学習処理と検索の処理とを実行することとしていたが、本実施の形態はこの例に限られず、機械学習処理を行う情報処理装置１と、その結果を用いた検索処理を行う情報処理装置１とは別体の装置であってもよい。
【０１５３】
この例では、機械学習処理を行う情報処理装置１が、機械学習の結果として、機械学習済みのマルチモーダル機械学習器３０（学習済みモデルのパラメータ）と、画像データベースと、語彙リストとを出力する。そして検索処理を行う情報処理装置１は、これら機械学習済みのマルチモーダル機械学習器３０（学習済みモデルのパラメータ）と、画像データベースと、語彙リストとを受けて、これらを利用した検索処理を実行すればよい。
【符号の説明】
【０１５４】
１  情報処理装置、１１  制御部、１２  記憶部、１３  操作部、１４  表示部、１５  通信部、２１  画像取得部、２２  キーワード取得部、２３  抽出処理部、２４  画像前処理部、２５  キーワード前処理部、２６  機械学習処理部、３０  マルチモーダル機械学習器、３１  第１の双方向ニューラルネットワーク、３２  第２の双方向ニューラルネットワーク、３３  統合学習層、４１  画像受入部、４２  キーワード受入部、４３  抽出処理部、４４  画像前処理部、４５  キーワード前処理部、４６  検索処理部、５１  第１のニューラルネットワーク、５２  第２のニューラルネットワーク、５３  結合部。
【図１】
2020177465.tif 000003
【図２】
2020177465.tif 000004
【図３】
2020177465.tif 000005
【図４】
2020177465.tif 000006
【図５】
2020177465.tif 000007
【図６】
2020177465.tif 000008
【図７】
2020177465.tif 000009