(57)【要約】【課題】ＤＮＮがどのような特徴を学習しているかを確認する。【解決手段】本願に係る学習装置は、入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成部と、前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習部とを有することを特徴とする。【選択図】図１
2019095935.tif 000002
【特許請求の範囲】
【請求項１】
入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成部と、
前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習部と
を有することを特徴とする学習装置。
【請求項２】
前記学習部は、前記出力情報が前記入力情報に近づくように、前記モデルの学習を行う
ことを特徴とする請求項１に記載の学習装置。
【請求項３】
前記学習部は、前記入力情報をスパースなベクトルへと符号化するように、前記モデルの学習を行う
ことを特徴とする請求項１または２に記載の学習装置。
【請求項４】
前記学習部は、前記所定の行列に含まれるベクトルが相互に直交するように、前記モデルの学習を行う
ことを特徴とする請求項１〜３のうちいずれか１つに記載の学習装置。
【請求項５】
前記生成部は、前記所定の行列を前記符号化された前記情報に積算するベクトル生成部を有するモデルを生成し、
前記学習部は、前記所定の行列に含まれる列ベクトルが相互に直交するように、前記モデルの学習を行う
ことを特徴とする請求項４に記載の学習装置。
【請求項６】
前記学習部によって学習が行われたエンコーダを用いて所定の入力情報を符号化し、符号化結果を変化させながら、前記学習部により学習が行われたベクトル生成部およびデコーダを用いて、当該所定の入力情報に対応する複数の出力情報を取得する取得部と、
前記取得部により取得された複数の出力情報を提供する提供部と
を有することを特徴とする請求項１〜５のうちいずれか１つに記載の学習装置。
【請求項７】
前記取得部は、前記辞書行列に含まれる基底ベクトルのうち、係数が大きい方から順に所定の数の基底ベクトルを特定し、前記入力情報を符号化した符号化ベクトルに含まれる要素のうち、特定した基底ベクトルと対応するいずれかの要素の値を変化させながら、当該入力情報に対応する複数の出力情報を取得する
ことを特徴とする請求項６に記載の学習装置。
【請求項８】
前記生成部は、前記モデルとして、入力された画像を符号化するエンコーダ、符号化された前記画像に対して所定の行列を適用したベクトルを生成するベクトル生成部、および、当該ベクトルから前記画像と対応する画像を生成するデコーダとを有するモデルを生成する
ことを特徴とする請求項１〜７のうちいずれか１つに記載の学習装置。
【請求項９】
前記生成部は、前記モデルとして、前記ベクトルから前記エンコーダに入力された情報を復元するデコーダを有するモデルを生成する
ことを特徴とする請求項１〜８のうちいずれか１つに記載の学習装置。
【請求項１０】
前記生成部は、前記モデルとして、畳み込みニューラルネットワークを前記エンコーダとして有するモデルを生成する
ことを特徴とする請求項１〜９のうちいずれか１つに記載の学習装置。
【請求項１１】
学習装置が実行する学習方法であって、
入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成工程と、
前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習工程と
を含むことを特徴とする学習方法。
【請求項１２】
入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成手順と、
前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習手順と
をコンピュータに実行させるための学習プログラム。
【請求項１３】
入力された情報を符号化するエンコーダと、
前記エンコーダにより符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、
前記ベクトル生成部により生成されたベクトルから前記情報に対応する情報を生成するデコーダと、
を有し、
所定の入力情報を入力した際に、当該所定の入力情報と対応する出力情報を出力し、かつ、前記所定の行列が当該所定の入力情報の辞書行列となるように学習が行われたモデルであって、
所定の入力情報を入力した際に、符号化された入力情報を徐々に変更させながら当該所定の入力情報と対応する複数の出力情報を出力させる処理をコンピュータに実行させるためのモデル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法、学習プログラムおよびモデルに関する。
【背景技術】
【０００２】
近年、多段に接続されたニューロンを有するＤＮＮ（Deep  Neural  Network）を利用して言語認識や画像認識等といった各種分類処理を実現する技術が知られている。例えば、このような技術では、所定の入力情報をＤＮＮに入力した際に、その入力情報に対応する出力情報として利用者が所望する出力情報を出力するように、ＤＮＮが有するノード間の重み係数（接続係数）を修正することで、入力情報が有する特徴をＤＮＮに学習させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１６２０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した学習技術では、ＤＮＮがどのような特徴を学習しているかを確認することが難しい場合がある。
【０００５】
例えば、従来技術では、ある特徴を有する複数の入力情報を用いて、ＤＮＮの学習を行った場合、ＤＮＮがその特徴を学習したと推定されるものの、入力情報が有するどの特徴をどれくらい学習したかを確認することができない。このため、従来技術では、どのような入力情報を用いた場合に、どのような特徴をＤＮＮが学習するかといった予見性を有さず、学習の効率が必ずしも良いとは言えない。
【０００６】
本願は、上記に鑑みてなされたものであって、ＤＮＮがどのような特徴を学習しているかを確認することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る学習装置は、入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成部と、前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習部とを有することを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、ＤＮＮがどのような特徴を学習しているかを確認することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る情報提供装置が実行する処理の一例を示す図である。
【図２】図２は、実施形態に係る情報提供装置の構成例を示す図である。
【図３】図３は、実施形態に係る学習データデータベースに登録される情報の一例を示す図である。
【図４】図４は、実施形態に係る情報処理装置が生成する提供情報の一例を示す図である。
【図５】図５は、実施形態に係る情報提供装置が実行する処理の流れの一例を示すフローチャートである。
【図６】図６は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る学習装置、学習方法、学習プログラムおよびモデルを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法、学習プログラムおよびモデルが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
［実施形態］
【００１１】
〔１−１．情報提供装置の一例〕
まず、図１を用いて、学習装置の一例である情報提供装置が実行する学習処理および提供処理の一例について説明する。図１は、実施形態に係る情報提供装置が実行する処理の一例を示す図である。図１では、情報提供装置１０は、インターネット等の所定のネットワークＮ（例えば、図２参照）を介して、所定のクライアントが使用する情報処理装置１００と通信可能である。
【００１２】
情報提供装置１０は、後述する学習処理および提供処理を実行する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。また、情報処理装置１００は、情報提供装置１０に対して、複数のデータを含むデータセットを提供する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
【００１３】
例えば、情報処理装置１００は、情報提供装置１０に対してデータセットを提供する。このような場合、情報提供装置１０は、データセットを用いて学習処理および提供処理を実行することで、データセットに含まれる各データが有する特徴を示す情報（以下、「特徴示唆情報」と記載する。）を生成し、生成した特徴示唆情報を情報処理装置１００に提供する。
【００１４】
〔１−２．ＤＮＮの学習について〕
ここで、情報処理装置１００は、複数のノードを多段に接続したニューラルネットワークをモデルとして準備する。このようなモデルは、例えば、ＤＮＮ、オートエンコーダー、ＬＳＴＭ（Long  Short-Term  Memory）、リカレントニューラルネットワーク、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等であってもよい。また、モデルは、これら畳み込みニューラルネットワークや、再帰型ニューラルネットワークの機能を組み合わせたものであってもよい。
【００１５】
ここで、ＤＮＮには、目的に応じて様々な特徴を学習させることができる。例えば、情報処理装置１００は、ある入力情報をＤＮＮに入力した際に、入力情報の分類結果（例えば、ラベル等）を示す情報を出力するようにＤＮＮが有する接続係数を修正することで、入力情報の分類を行うＤＮＮを学習することができる。また、情報処理装置１００は、ある入力情報をＤＮＮに入力した際に、その入力情報が有する特徴を変換した他の出力情報を出力するように、ＤＮＮを学習することができる。例えば、情報処理装置１００は、馬が撮影された画像を入力した際に、入力された画像に撮影された馬をシマウマに入替えた画像を出力するといった情報変換を行うＤＮＮを学習することができる。
【００１６】
このようなＤＮＮの学習を行うには、目的に応じた特徴を有する複数の情報をデータセットとして準備し、データセットに含まれる複数の情報を用いて、ＤＮＮの学習を行うこととなる。例えば、入力情報の分類を行う場合は、分類を行う際に考慮する特徴を有する複数の情報をデータセットとして準備することとなる。また、情報変換を行う場合は、変換対象となる特徴を有する複数の情報と、変換後の特徴を有する複数の情報とを準備することとなる。
【００１７】
しかしながら、所定の特徴を有する複数の情報からなるデータセットを準備したとしても、ＤＮＮがその所定の特徴を学習したかどうかを確認するのは困難である。すなわち、従来の学習手法では、入力情報をモデルに入力した際にＤＮＮが出力した出力情報が、所望される出力情報に近づくように、ＤＮＮが有する接続係数を補正する。しかしながら、このような学習手法では、入力情報が有するどの特徴をどれくらい学習したかを特定することができない。このため、従来技術では、どのような入力情報を用いた場合に、どのような特徴をＤＮＮが学習するかといった予見性を有さず、学習の効率が必ずしも良いとは言えない。すなわち、従来技術では、学習された特徴を可視化して確認可能にしたり、予見させたりすることができない。
【００１８】
また、ＤＮＮの学習を行う場合は、学習させたい特徴を有する情報のデータセットをあらかじめ準備する必要がある。しかしながら、このようなデータセットの情報は、利用者の恣意的な基準により学習させたい特徴を有すると判断がなされた情報であるため、学習させたい特徴を有する情報であるとは言えない場合がある。
【００１９】
このため、データセットの各情報に、どのような特徴が含まれているかを事前に判断する技術が望まれている。換言すると、利用者の恣意的な基準を介さずに、データセットの各情報が共通して有する特徴がどのような特徴であるかを特定する技術が望まれる。
【００２０】
〔１−３．学習処理について〕
そこで、情報提供装置１０は、以下の学習処理を実行する。まず、情報提供装置１０は、入力された情報を符号化するエンコーダと、符号化された情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、ベクトルから情報に対応する情報を生成するデコーダとを有するモデルを生成する。そして、情報提供装置１０は、モデルに対して所定の入力情報を入力した際に、モデルが入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように、モデルの学習を行う。
【００２１】
ここで、情報提供装置１０は、出力情報が入力情報に近づくように、モデルの学習を行う。また、情報提供装置１０は、入力情報をスパースなベクトルへと符号化するように、エンコーダの学習を行う。また、情報提供装置１０は、所定の行列に含まれるベクトルが相互に直交するように、モデルの学習を行う。より具体的には、情報提供装置１０は、所定の行列を符号化された情報に積算するベクトル生成部を有するモデルを生成し、所定の行列に含まれる列ベクトルが相互に直交するように、モデルの学習を行う。
【００２２】
ここで、モデルが出力する出力情報の内容が、入力情報に応じた内容であって、所望する内容となるようにモデルの学習を行った場合、モデル全体としては、入力情報の特徴に応じた出力情報を出力するように学習が行われることとなる。より具体的には、モデルのエンコーダおよびベクトル生成部は、入力情報を、入力情報が有する特徴のうち所望される出力情報を得るために必要な特徴を示す特徴ベクトルを生成するよう学習が行われる。また、デコーダは、特徴ベクトルから、その特徴ベクトルが示す特徴と対応する出力情報を出力するように学習が行われる。
【００２３】
ここで、情報提供装置１０は、入力情報が有する特徴を示す特徴ベクトルが、エンコーダにより符号化された入力情報（以下、「符号化ベクトル」と記載する。）と辞書行列との積となるように、ベクトル生成部の学習を行う。すなわち、情報提供装置１０は、特徴ベクトルが、特徴の構成要素を示すベクトル（すなわち、特徴の基底ベクトル）の集合体である辞書行列と、辞書行列に含まれる各ベクトルのうちどのベクトルをどれくらい使うか（すなわち、入力情報が有する特徴のレシピ）を示す符号化ベクトルとの積となるように、モデルの学習を行うこととなる。ここで、特徴の構成要素とは、入力情報が全体的に有する特徴を構成する個々の特徴である。
【００２４】
このような学習を行った場合、情報提供装置１０は、学習時に用いたデータセットに含まれる情報が有する特徴の基底ベクトルの集合体である辞書行列を得ることができる。このような辞書行列には、利用者の恣意的な基準を介さずに、モデルによって学習されたデータセットの特徴の構成要素がベクトルとして含まれると言える。この結果、情報提供装置１０は、モデルがどのような特徴を学習するかを示す辞書行列を得ることができる。
【００２５】
ここで、上述した学習により学習が行われたモデルは、入力情報が有する特徴ベクトルを、辞書行列に含まれる基底ベクトルと、符号化ベクトルとの積で示す。しかしながら、このようなモデルは、辞書行列に含まれる基底ベクトルの精度が良くない場合であっても、符号化ベクトルを複雑化させることで、デコーダが適切な出力情報を出力可能な程度に入力情報の特徴を再現してしまう恐れがある。
【００２６】
そこで、情報提供装置１０は、出力情報が所望する出力情報に近づくようにモデルの学習を行うとともに、符号化ベクトルに含まれる要素のうち、値が「０」となる要素が多くなるようにモデルの学習を行う。すなわち、情報提供装置１０は、モデル全体の精度の低下が生じないように、かつ、符号化ベクトルがスパースなベクトルとなるように、モデルの学習を行う。このような処理を行った場合、モデルは、適切に特徴の構成要素を示す辞書行列と、単純な抽象化ベクトルとの積で特徴ベクトルを生成することとなる。この結果、情報提供装置１０は、辞書行列に含まれる各基底ベクトルを、学習に用いたデータセットに含まれる情報が有する特徴の構成要素へと近づけることができるので、辞書行列の精度を向上させることができる。
【００２７】
ここで、辞書行列は、データセットに含まれる情報が有する特徴の構成要素を示す複数の基底ベクトルにより構成されるが、学習によっては、複数の基底ベクトルが共通する構成要素を示してしまう恐れがある。ここで、モデルが学習した特徴を示す情報として、辞書行列を提供する場合、辞書行列に含まれる基底ベクトルは、それぞれ異なる構成要素を示す方が望ましい。そこで、情報提供装置１０は、辞書行列に含まれる各ベクトルが直交するように、モデルの学習を行う。このような処理の結果、情報提供装置１０は、それぞれ個別の構成要素を示すベクトルからなる辞書行列の学習を行うことができる。
【００２８】
〔１−４．提供処理について〕
なお、情報提供装置１０は、辞書行列を利用者へそのまま提供することで、モデルがどのような特徴を学習したかを利用者に示してもよい。例えば、情報提供装置１０は、データセットに含まれる情報を順次入力情報とし、入力情報の特徴を学習する度に辞書行列を利用者に提供することで、学習が進むにつれてどのようにモデルが特徴を学習したかを示すことができる。
【００２９】
一方で、辞書行列は、データセットが有する特徴をベクトルで示すため、どのような特徴が学習されたかを容易に示すことができない恐れがある。そこで、情報提供装置１０は、以下の提供処理を実行する。例えば、情報提供装置１０は、学習が行われたエンコーダを用いて所定の入力情報を符号化し、符号化結果を変化させながら、学習が行われたベクトル生成部およびデコーダを用いて、所定の入力情報に対応する複数の出力情報を取得する。そして、情報提供装置１０は、取得された複数の出力情報を提供する。
【００３０】
例えば、上述した学習処理によって学習が行われた場合、モデルは、入力情報を辞書行列に含まれるベクトルのうちどのベクトルをどれくらい使用するかを示す符号化ベクトルに変換し、符号化ベクトルと辞書行列との積である特徴ベクトルを生成し、生成した特徴ベクトルから出力情報を生成する。ここで、符号化ベクトルに含まれる要素のうち、値が「０」以外の要素は、辞書行列に含まれるベクトルのうち、対応するベクトルを使用する割合、すなわち、特徴の構成要素を利用する割合であると言える。
【００３１】
このような特徴の構成要素を利用する割合を徐々に変化させながら複数の出力情報を生成する場合、モデルは、その構成要素（すなわち、全体的な特徴を構成する複数の特徴のうちある特徴）の割合のみが変化した複数の出力情報を生成することとなる。例えば、出力情報が人物の顔の画像であり、変更対象となる構成要素が「人物の顔の向き」という構成要素である場合、モデルは、人物の顔の向きが徐々に変化した複数の出力情報を出力することとなる。この結果、情報提供装置１０は、辞書行列に含まれるベクトルが示す構成要素、すなわち、データセットが有する特徴の構成要素がどのようなものであるかを示唆する情報を提供することができる。
【００３２】
なお、辞書行列には、データセットに含まれる各情報の特徴を示すために大きく寄与する構成要素のみならず、あまり寄与していない構成要素のベクトルが含まれると考えられる。そこで、情報提供装置１０は、データセットに含まれる各情報の特徴を示すために大きく寄与する構成要素の割合を徐々に変化させた複数の出力情報を提供する。
【００３３】
例えば、情報提供装置１０は、辞書行列に含まれるベクトルのうち、係数が大きい方から順に所定の数のベクトルを特定する。例えば、情報提供装置１０は、各ベクトルのノルムの値が大きい方から所定の数のベクトルを選択する。そして、情報提供装置１０は、入力情報を符号化した符号化ベクトルに含まれる要素のうち、特定したベクトルと対応するいずれかの要素の値を変化させながら、入力情報に対応する複数の出力情報を出力する。
【００３４】
例えば、情報提供装置１０は、辞書行列に含まれるベクトルＶ１の係数が最も大きい場合、符号化ベクトルに含まれる要素のうちベクトルＶ１と積算される要素を特定する。そして、情報提供装置１０は、特定した要素の値を徐々に変化させながら、複数の特徴ベクトルを生成し、生成した特徴ベクトルごとに出力情報を生成する。この結果、情報提供装置１０は、データセットが有する特徴の構成要素がどのようなものであるかをより容易に理解可能な情報を提供することができる。
【００３５】
〔１−５．処理の一例について〕
以下、図１を用いて、情報提供装置１０が実行する生成処理および提供処理の一例を説明する。なお、以下の説明では、モデルとして、入力された画像（以下、「入力画像」と記載する。）を符号化するエンコーダ、符号化された入力画像に対して所定の行列を適用した画像ベクトルを生成するベクトル生成部、および、画像ベクトルから入力画像と対応する画像（以下、「出力画像」と記載する。）を生成するデコーダとを有するモデルを生成する処理の一例について説明する。また、以下の説明では、モデルとして、画像ベクトルからエンコーダに入力された入力画像を復元した出力画像を生成するデコーダを有するモデルを生成する例について説明する。
【００３６】
例えば、情報提供装置１０は、情報処理装置１００から複数の入力画像を含む入力画像のデータセットを取得する（ステップＳ１）。このような場合、情報提供装置１０は、以下の生成処理および提供処理を実行することで、取得したデータセットに含まれる各入力画像の特徴を示す情報を生成する。
【００３７】
まず、情報提供装置１０は、入力画像を符号化するエンコーダＥＮと、エンコーダＥＮが出力する符号化ベクトルに所定の辞書行列を積算した画像ベクトルを生成するベクトル生成部ＶＣＵと、画像ベクトルを復号化して出力画像を生成するデコーダＤＥとを有するモデルＭを生成する（ステップＳ２）。例えば、情報提供装置１０は、入力された入力画像の次元数を徐々に低下させることで、入力画像が有する特徴を符号化するエンコーダＥＮを生成する。このようなエンコーダＥＮは、例えば、畳み込みニューラルネットワークにより実現可能である。
【００３８】
また、情報提供装置１０は、エンコーダＥＮが出力する符号化ベクトルを受付ける符号化ベクトルレイヤＣＶＬと、符号化ベクトルレイヤの出力に対して辞書行列を適用した画像ベクトル（すなわち、入力画像の特徴ベクトル）を生成する画像ベクトルレイヤＰＶＬとを有するベクトル生成部ＶＣＵを生成する。また、情報提供装置１０は、ベクトル生成部ＶＣＵが出力する画像ベクトルから、入力画像と対応する出力画像を生成するデコーダＤＥを生成する。例えば、情報提供装置１０は、畳み込みニューラルネットワークにより構成されるオートエンコーダのうち、出力するベクトルの次元数が最も少ない中間層の次段にベクトル生成部ＶＣＵを挿入することで、モデルＭを生成してもよい。
【００３９】
このようなモデルＭを生成した場合、符号化ベクトル、辞書行列、および画像ベクトルは、以下に示す数式により表すことができる。例えば、入力画像をｘ、エンコーダＥＮによる符号化を符号化関数Φで示すと、エンコーダＥＮが出力するｎ次元の符号化ベクトルΦ（ｘ）は、以下の式（１）で示すことができる。
【００４０】
【数１】
2019095935.tif 000003
【００４１】
また、辞書行列をＤとおくと、ベクトル生成部ＶＣＵが出力する画像ベクトルｚは、以下の式（２）で示すことができる。
【００４２】
【数２】
2019095935.tif 000004
【００４３】
ここで、辞書行列Ｄを、以下の式（３）で示すように、複数の列ベクトルＶ１〜Ｖｎで表すと、入力画像の特徴ベクトルである画像ベクトルｚは、以下の式（４）で示すことができる。
【００４４】
【数３】
2019095935.tif 000005
【００４５】
【数４】
2019095935.tif 000006
【００４６】
式（４）に示すように、モデルＭ１において、抽象化ベクトルΦ（ｘ）は、辞書行列に含まれる各列ベクトルＶ１〜Ｖｎをそれぞれどれくらいの割合で用いるかといったパラメータと見做すことができ、辞書行列Ｄは、データセットに含まれる各入力画像の特徴の構成要素を示す各列ベクトルＶ１〜Ｖｎの集合であると見做すことができる。
【００４７】
そして、情報提供装置１０は、取得したデータセットを用いて、モデルＭ１の辞書学習を行う。より具体的には、情報提供装置１０は、入力画像と出力画像との二乗誤差を少なくする第１指標、ベクトル化関数をスパース化する第２指標、および、辞書行列を直交化する第３指標を満たすように、エンコーダおよびデコーダの接続係数と、辞書行列を修正することで、モデルの学習を行う（ステップＳ３）。
【００４８】
例えば、ｉ番目の入力画像をｘ（ｉ）、ｘ（ｉ）の画像ベクトルをｚ（ｉ）、デコーダＤＥがｚ（ｉ）から生成する出力画像をΨ（ｚ（ｉ））とすると、入力画像と出力画像との二乗誤差は、以下の式（５）で示すことができる。ここで、入力画像と出力画像とが近づくように、モデルＭの学習を行った場合、モデルＭ１は、入力画像の全体的な特徴を保持するように符号化等を行うこととなる。そこで、情報提供装置１０は、式（５）に示す入力画像と出力画像との二乗誤差を少なくする第１指標を設定する。
【００４９】
【数５】
2019095935.tif 000007
【００５０】
また、エンコーダＥＮが出力する符号化ベクトルΦ（ｘ）のＬ１ノルムは、以下の式（６）で示すことができる。情報提供装置１０は、符号化ベクトルΦ（ｘ）をスパース化するため、式（６）に示すＬ１ノルムの値を小さくする第２指標を設定する。すなわち、情報提供装置１０は、符号化ベクトルΦ（ｘ）のＬ１正則化を第２指標として設定する。
【００５１】
【数６】
2019095935.tif 000008
【００５２】
また、情報提供装置１０は、辞書行列Ｄが有する各列ベクトルの直交化を第３指標として設定する。例えば、辞書行列Ｄが有する２つの要素をｄｊおよびｄｋとおくと、辞書行列Ｄが有する列ベクトルの直交化は、クロネッカーのデルタδｊｋを用いて、式（７）を最小化することにより実現される。
【００５３】
【数７】
2019095935.tif 000009
【００５４】
上述した第１指標から第３指標を満たすため、例えば、情報提供装置１０は、式（８）に示すように、式（５）〜式（７）の和を算出し、算出した和が最小化するように、モデルＭの学習を行う。より具体的には、情報提供装置１０は、式（８）が最小化するように、エンコーダＥＮおよびデコーダＤＥが有する接続係数の修正、および辞書行列Ｄの修正を行う。なお、式（８）に示すλは、所定の係数であり、任意の設定が可能である。なお、情報提供装置１０は、式（８）に対し、例えば、入力画像のクラス分けを考慮した項を追加してもよい。また、式（８）では、出力画像をΨ（ｚ（ｉ））をｙ（ｉ）ｉｍｇと記載した。
【００５５】
【数８】
2019095935.tif 000010
【００５６】
データセットに含まれる各入力画像を用いて上述した学習が終了した場合、情報提供装置１０は、学習済のモデルＭを用いて、以下の提供処理を実行する。まず、情報提供装置１０は、辞書行列に含まれる列ベクトルを構成ベクトルとし、係数が大きい方から順に所定の数の構成ベクトルを特定する（ステップＳ４）。例えば、情報提供装置１０は、係数が大きい方から順に、列ベクトルＶ３、Ｖ５、Ｖ１を特定する。
【００５７】
そして、情報提供装置１０は、特定した構成ベクトルを使用する割合を徐々に変化させながら、各入力画像に対応する複数の出力画像を生成する（ステップＳ５）。例えば、情報提供装置１０は、列ベクトルＶ３を利用する入力画像ｘ（ａ）を特定する。より具体的には、情報提供装置１０は、符号化ベクトルΦ（ｘ）を構成する要素ｓ１〜ｓｎのうち、列ベクトルＶ３と積算される要素ｓ３の値が大きい入力画像ｘ（ａ）をデータセットから抽出する。そして、情報提供装置１０は、入力画像ｘ（ａ）の符号化ベクトルΦ（ｘ（ａ））のうち、要素ｓ３の値を徐々に変化させた複数の画像ベクトルｚを生成し、各画像ベクトルｚごとに出力画像を生成する。
【００５８】
同様に、情報提供装置１０は、符号化ベクトルΦ（ｘ）を構成する要素ｓ１〜ｓｎのうち、列ベクトルＶ５と積算される要素ｓ５の値が大きい入力画像ｘ（ｂ）をデータセットから抽出する。そして、情報提供装置１０は、符号化ベクトルΦ（ｘ（ｂ））のうち要素ｓ５の値を徐々に変化させた複数の画像ベクトルｚを生成し、各画像ベクトルｚごとに出力画像を生成する。
【００５９】
また、情報提供装置１０は、符号化ベクトルΦ（ｘ）を構成する要素ｓ１〜ｓｎのうち、列ベクトルＶ１と積算される要素ｓ１の値が大きい入力画像ｘ（ｃ）をデータセットから抽出する。そして、情報提供装置１０は、符号化ベクトルΦ（ｘ（ｃ））のうち要素ｓ１の値を徐々に変化させた複数の画像ベクトルｚを生成し、各画像ベクトルｚごとに出力画像を生成する。
【００６０】
そして、情報提供装置１０は、データセットの特徴を示す画像として、生成した画像を情報処理装置１００に提供する（ステップＳ６）。このような処理の結果、例えば、情報提供装置１０は、入力画像が有する特徴を構成する構成要素のうち、いずれかの構成要素を徐々に変化させた画像を提供することができる。
【００６１】
例えば、図１に示す例では、情報提供装置１０は、入力画像ｘ（ａ）に撮影された人物の顔の向きを徐々に変化させた複数の出力画像を提供していると考えられる。この結果、利用者は、入力画像が有する「顔の向き」といった特徴の構成要素を、モデルＭ１が列ベクトルＶ３として学習した旨を示すことができる。換言すると、利用者は、データセットに含まれる入力画像に、「顔の向き」といった特徴の構成要素が含まれる旨を見出すことができる。
【００６２】
また、図１に示す例では、情報提供装置１０は、入力画像ｘ（ｂ）に撮影された人物の紙の色を徐々に変化させた複数の出力画像を提供していると考えられる。この結果、利用者は、入力画像が有する「髪の色」といった特徴の構成要素を、モデルＭ１が列ベクトルＶ５として学習した旨を示すことができる。換言すると、利用者は、データセットに含まれる入力画像に、「髪の色」といった特徴の構成要素が含まれる旨を見出すことができる。
【００６３】
また、図１に示す例では、情報提供装置１０は、入力画像ｘ（ｃ）に撮影された人物の性別を徐々に変化させた複数の出力画像を提供していると考えられる。この結果、利用者は、入力画像が有する「性別」といった特徴の構成要素を、モデルＭ１が列ベクトルＶ１として学習した旨を示すことができる。換言すると、利用者は、データセットに含まれる入力画像に、「性別」といった特徴の構成要素が含まれる旨を見出すことができる。
【００６４】
なお、上述した「顔の向き」、「髪の色」、および「性別」といった特徴の構成要素は、あくまで一例であり、出力された画像から利用者がどのような構成要素を認識するかについては、限定されるものではない。すなわち、情報提供装置１０は、データセットに含まれる特徴の構成要素を利用者があらかじめ恣意的に特定せずとも、データセットに含まれる特徴の構成要素を特定し、特定した構成要素を示す情報を利用者に提供する。このため、情報提供装置１０は、データセットに含まれる特徴の構成要素を客観的に示す情報を提供することができる。
【００６５】
〔１−６．適用態様について〕
上述した例では、入力された入力画像と出力する出力画像とが類似する第１指標を設定した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置１０は、入力画像が属するクラスを示す情報（すなわち、ラベル）を出力するように、モデルＭが有するデコーダＤＥを学習してもよい。また、情報提供装置１０は、入力画像のうち所定の被写体の特徴を変更した出力画像を出力するように、デコーダＤＥを学習してもよい。
【００６６】
また、情報提供装置１０は、静止画像、動画像、音声、文字列等、任意のコンテンツを入力情報とした際に、入力情報が有する特徴に基づいて生成された出力情報であって、所望する形態の出力情報を出力するように、モデルＭ１を生成および学習してもよい。また、情報提供装置１０は、入力情報と出力情報とが異なる種別のコンテンツとなるように、モデルＭ１の生成および学習を行ってもよい。
【００６７】
また、情報提供装置１０は、コンテンツの種別に応じた態様で、モデルが学習した特徴の構成要素を示す提供情報を生成して提供してもよい。例えば、情報提供装置１０は、入力情報として音楽の音声データが採用される場合、上述した学習処理を実行することで、データセットに含まれる各音楽の特徴の構成要素（例えば、ジャズの雰囲気がある、バイオリンが使用されている、女性の声である等）を示す辞書行列を学習させる。そして、情報提供装置１０は、ある音楽の音声データから、抽象化ベクトルの要素を徐々に変更させた複数の音声データを生成することで、例えば、女性の声から徐々に男性の声へと変化していく複数の音声データや、ジャズの雰囲気がある音声データから徐々にエレクトロダンスミュージックの雰囲気がある音声データへと変化する音声データを生成し、生成した音声データを提供情報として提供してもよい。
【００６８】
このような提供情報を提供することで、情報提供装置１０は、例えば、データセットに含まれる情報の特徴の構成要素がどのような構成要素であるかを示すことができるのみならず、そのデータセットにおいて、ある特徴が有する意味の反対の意味を有する特徴がどのようなものであるかを示すことができる。例えば、情報提供装置１０は、あるデータセットにおいて、「男性の声」という意味を有する特徴の反対の意味の特徴が、「女性の声」という意味を有する特徴である旨を利用者に提供することができる。
【００６９】
また、情報提供装置１０は、エンコーダＥＮやデコーダＤＥとして、ＣＮＮ（Convolutional  Neural  Network）やＲＮＮ（Recurrent  Neural  Network）、ＬＳＴＭ等を採用してもよい。すなわち、情報提供装置１０は、シグモイド関数等の所定の活性関数を用いて、入力された値に対応する新たな値を出力する複数のノードを多層に接続し、各ノード間で伝達される値に対して所定の接続係数を設定したニューラルネットワークであれば、任意の機能および構成を有するニューラルネットワークを準備し、このようなニューラルネットワークのうち入力情報の特徴を示す中間出力（例えば、符号化ベクトル等）を出力する層の次段にベクトル生成部ＶＣＵを設定し、所謂辞書学習を実行すればよい。このような処理を実行することで、情報提供装置１０は、モデルが学習した特徴がどのようなものであるかを特定することができる。
【００７０】
なお、上述したモデルとは、ニューラルネットワークに含まれるノード間の接続関係や接続係数を示すデータセットであってもよく、このようなデータセットを用いてコンピュータをモデルとして実行させるためのソフトウェア（例えば、プログラムモジュール）であってもよい。
【００７１】
例えば、モデルは、入力情報を符号化するエンコーダＥＮと、エンコーダＥＮにより符号化された入力情報に対して所定の行列を適用したベクトルを生成するベクトル生成部ＶＣＵと、ベクトル生成部ＶＣＵにより生成されたベクトルから入力情報に対応する出力情報を生成するデコーダとを有するモデルであって、所定の入力情報を入力した際に、所定の入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように学習が行われたモデルであってもよい。このようなモデルは、コンピュータに対し、所定の入力情報をモデルに入力した際に、符号化された入力情報を徐々に変更させながら所定の入力情報と対応する複数の出力情報をモデルから出力させる処理を実行させるためのモデルとなる。
【００７２】
なお、モデルは、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、入力層に入力された情報と対応する情報を出力層から出力するようコンピュータを機能させる。なお、モデルは、人工知能ソフトウェアの一部であるプログラムモジュールとしての利用が想定されるものであってもよい。
【００７３】
例えば、モデルをＤＮＮ等、１つまたは複数の中間層を有するニューラルネットワークで実現される場合、各モデルが含む第１要素とは、入力層または中間層が有するいずれかのノードと見做すことができ、第２要素とは、第１要素と対応するノードから値が伝達されるノード、すなわち、次段のノードと対応し、第１要素の重みとは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重み、すなわち、接続係数である。
【００７４】
例えば、モデルは、入力層に入力画像等の入力情報が入力された場合に、出力層から、入力情報と対応する出力情報を出力するようにコンピュータを機能させる。例えば、モデルは、ＣＰＵ及びメモリを備えるコンピュータにて用いられる。具体的には、コンピュータのＣＰＵが、メモリに記憶されたモデルを読出し、読み出したモデルに基づいた指令に従って、モデルの入力層に入力された入力情報に対して、上述した学習処理により学習が行われたニューラルネットワークにおける重みづけ係数と活性関数等に基づく演算を行い、出力層から入力された出力情報を出力するよう動作する。ここで、モデルは、コンピュータに対し、エンコーダＥＮによって符号化された入力情報である符号化ベクトルのうち、値が「０」ではない要素の値を徐々に変化させながら、同一の入力情報に対応する複数の出力情報を生成させてもよい。
【００７５】
また、情報提供装置１０は、上述した学習処理によって学習が行われたモデルを用いたサービスの提供を実現してもよい。例えば、上述した学習により学習が行われたモデルＭは、抽象化ベクトルの値を変更することで、入力情報が有する特徴の構成要素のうち、いずれかの構成要素を変更した特徴と対応する出力情報を出力することとなる。そこで、情報提供装置１０は、例えば、ある利用者の属性（デモグラフィック属性やサイコグラフィック属性等）等といった利用者の情報をモデルＭに入力し、モデルＭが生成した抽象化ベクトルのうち、いずれかの構成要素と対応する要素を段階的に変更させながら、複数の出力情報を生成することで、その利用者のみならず、その利用者と類似する他の利用者に対する出力情報を生成してもよい。このような出力情報は、例えば、利用者に対して提供される情報や、各利用者がどのような嗜好を有するか、各利用者がどのような商品や役務、若しくはそれらの広告に対して興味を有するかを示す情報であってもよい。
【００７６】
〔１−７．学習について〕
また、情報提供装置１０は、必ずしも辞書行列に含まれる列ベクトルを直交化させる必要はない。辞書行列が有する列ベクトルに共通する構成要素が含まれているとしても、情報提供装置１０は、上述した提供処理を実行することで、データセットの入力情報が有する情報の構成要素をどのようにモデルが学習したかを示す情報を利用者に提供することができる。また、式（８）に示した係数λは、学習をどのように進めるかに応じて、任意の値が設定可能である。
【００７７】
また、情報提供装置１０は、ＧＡＮ（Generative  Adversarial  Networks）を用いてモデルＭの学習を行ってもよい。このような場合、モデルＭは、ＧＡＮの一部を構成するモデルであってもよい。
【００７８】
また、情報提供装置１０は、エンコーダＥＮやデコーダＤＥのプレトレーニングを行ってもよい。例えば、情報提供装置１０は、入力画像の次元数を削減することで符号化し、その後、符号化された情報から元の入力画像と類似する出力画像を復元するオートエンコーダを生成し、生成したオートエンコーダのプレトレーニングを行う。そして、情報提供装置１０は、オートエンコーダのうち、出力するベクトルの次元数が最も少ない中間層の次段に、ベクトル生成部ＶＣＵを挿入したモデルＭを生成し、上述した学習処理によるモデルＭの学習を行ってもよい。
【００７９】
〔２．情報提供装置の構成〕
以下、上記した学習処理を実現する情報提供装置１０が有する機能構成の一例について説明する。図２は、実施形態に係る情報提供装置の構成例を示す図である。図２に示すように、情報提供装置１０は、通信部２０、記憶部３０、および制御部４０を有する。
【００８０】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部２０は、ネットワークＮと有線または無線で接続され、情報処理装置１００との間で情報の送受信を行う。
【００８１】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、学習データデータベース３１、およびモデルデータベース３２を記憶する。
【００８２】
学習データデータベース３１には、学習データ、すなわち情報処理装置１００から取得したデータセットが登録される。例えば、図３は、実施形態に係る学習データデータベースに登録される情報の一例を示す図である。図３に示すように、学習データデータベース３１には、「画像ＩＤ（Identifier）」、および「画像データ」といった項目を有する情報が登録される。
【００８３】
ここで、「画像ＩＤ」とは、画像データを示す識別子である。また、「画像データ」とは、学習データに含まれる画像に関するデータである。例えば、図３に示す例では、学習データＩＤ「画像＃１」、および画像データ「データ＃１」が対応付けて登録されている。このような情報は、画像ＩＤ「画像＃１」が示す画像のデータが画像データ「データ＃１」である旨を示す。なお、図３に示す例では「データ＃１」といった概念的な値を記載したが、実際には、モデルに入力される情報、すなわち、入力画像となる画像のデータが登録されることとなる。また、学習データデータベース３１には、図３に示す情報以外にも、任意の情報が登録されていてよい。
【００８４】
図２に戻り、説明を続ける。モデルデータベース３２には、学習対象となるモデルＭのデータが登録される。例えば、モデルデータベース３２には、モデルＭが有するノードの接続関係や接続係数が登録される。
【００８５】
制御部４０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、情報提供装置１０内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部４０は、コントローラ（controller）であり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。
【００８６】
また、制御部４０は、記憶部３０に記憶されるモデルＭに従った情報処理により、入力情報に対応する複数の出力情報を出力する処理を実行する。例えば、制御部４０は、所定の入力情報をモデルに入力した際に、符号化された入力情報を徐々に変更させながら所定の入力情報と対応する複数の出力情報をモデルから出力させる処理を実行する。
【００８７】
図２に示すように、制御部４０は、受付部４１、生成部４２、学習部４３、取得部４４、および提供部４５を有する。受付部４１は、情報処理装置１００からデータセットを受付ける。このような場合、受付部４１は、受付けたデータセットを学習データとして学習データデータベース３１に登録する。
【００８８】
生成部４２は、入力された情報を符号化するエンコーダＥＮと、符号化された情報に対して所定の行列を適用したベクトルを生成するベクトル生成部ＶＣＵと、ベクトルから入力された情報に対応する情報を生成するデコーダＤＥとを有するモデルＭを生成する。より具体的には、生成部４２は、所定の行列を符号化された入力情報に積算するベクトル生成部ＶＣＵを有するモデルＭを生成する。
【００８９】
例えば、生成部４２は、入力画像を符号化するエンコーダＥＮ、符号化された画像に対して辞書行列を適用した画像ベクトルを生成するベクトル生成部ＶＣＵ、および、画像ベクトルから入力画像と対応する出力画像を生成するデコーダＤＥとを有するモデルＭを生成する。また、例えば、生成部４２は、モデルＭとして、画像ベクトルからエンコーダＥＮに入力された入力画像を復元するデコーダＤＥを有するモデルＭを生成する。また、例えば、生成部４２は、モデルＭとして、畳み込みニューラルネットワークをエンコーダＥＮとして有するモデルを生成する。
【００９０】
学習部４３は、生成部４２によって生成されたモデルＭに対して所定の入力情報を入力した際に、モデルＭが入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように、モデルＭの学習を行う。例えば、学習部４３は、生成部４２によって生成されたモデルＭを取得する。そして、学習部４３は、学習データデータベース３１に登録された各画像を入力画像とし、上述した式（８）を満たすように、モデルＭが有するエンコーダＥＮやデコーダＤＥの接続係数、および、辞書行列に含まれる各要素の値の修正を行う。
【００９１】
例えば、学習部４３は、モデルＭに所定の入力情報を入力した際に、モデルＭが出力する出力情報が入力情報に近づくように、モデルＭの学習を行う。また、学習部４３は、入力情報をスパースなベクトルへと符号化するように、モデルＭの学習を行う。また、学習部４３は、所定の行列に含まれるベクトルが相互に直交するように、モデルＭの学習を行う。より具体的には、学習部４３は、所定の行列に含まれる列ベクトルが相互に直交するように、モデルＭの学習を行う。
【００９２】
このような処理の結果、学習部４３は、データセットに含まれる各情報の特徴の構成要素を示す辞書行列と、特徴を再現するために辞書行列に含まれる構成要素のうちどの構成要素をどれくらい使用するかを示す符号化ベクトルへと入力情報を符号化するエンコーダＥＮと、符号化ベクトルと辞書行列との積から入力情報に近い出力情報を出力するデコーダＤＥとを有するモデルＭの学習を行うことができる。そして、学習部４３は、学習が行われたモデルＭをモデルデータベース３２に登録する。
【００９３】
取得部４４は、学習部４３によって学習が行われたエンコーダＥＮを用いて所定の入力情報を符号化し、符号化結果を変化させながら、学習部４３により学習が行われたベクトル生成部ＶＣＵおよびデコーダＤＥを用いて、所定の入力情報に対応する複数の出力情報を取得する。例えば、取得部４４は、辞書行列に含まれるベクトルのうち、係数が大きい方から順に所定の数のベクトルを特定し、符号化ベクトルに含まれる要素のうち、特定したベクトルと対応するいずれかの要素の値を変化させながら、入力情報に対応する複数の出力情報を取得する。
【００９４】
例えば、取得部４４は、モデルデータベース３２から辞書行列を読出し、辞書行列に含まれる列ベクトル（すなわち、構成要素を示す構成ベクトル）のうち、係数が大きい方から順に所定の数のベクトルを変更対象ベクトルとして特定する。続いて、取得部４４は、モデルデータベース３２からモデルＭを読出し、読み出したモデルＭのエンコーダＥＮを用いて、学習データデータベース３１に登録された各画像を符号化ベクトルに変換する。
【００９５】
続いて、取得部４４は、変更対象ベクトルごとに、以下の処理を実行する。まず、取得部４４は、変更対象ベクトルと対応する要素の値が「０」ではなく、かつ、絶対値が最も大きい符号化ベクトルを特定する。そして、取得部４４は、特定した符号化ベクトルのうち変更対象ベクトルと対応する要素の値を変化させながら、モデルＭを用いて、複数の出力情報を生成する。すなわち、取得部４４は、変更対象ベクトルと対応する要素の値を変化させた複数の符号化ベクトルを特定した符号化ベクトルから生成し、生成した複数の符号化ベクトルと辞書行列との積をそれぞれ算出することで、複数の画像ベクトルを生成する。そして、取得部４４は、静止した各画像ベクトルをデコーダＤＥに入力することで、構成要素を徐々に変化させた複数の出力画像を取得する。
【００９６】
また、取得部４４は、各変更対象ベクトルごとに上述した処理を実行することで、構成要素を徐々に変更させた複数の出力画像群を取得する。その後、取得部４４は、対応する変更対象ベクトルの係数が大きい方から順に取得した複数の出力画像を並べた提供情報を生成する。
【００９７】
例えば、図４は、実施形態に係る情報処理装置が生成する提供情報の一例を示す図である。図４に示す例では、符号化ベクトルの要素を徐々に変更することで、各入力画像から生成された複数の提供情報の一例について記載した。
【００９８】
例えば、情報提供装置１０は、画像Ｘａの抽象化ベクトルのうち、列ベクトルＶａと対応する要素を徐々に変更した複数の抽象化ベクトルを生成し、生成した抽象化ベクトルを用いて、出力画像を生成する。同様に、情報提供装置１０は、画像Ｘｂ〜画像Ｘｅの抽象ベクトルのうち、列ベクトルＶｂ〜Ｖｅと対応する要素を徐々に変更した複数の抽象化ベクトルを生成し、生成した抽象化ベクトルを用いて、提供情報を生成する。
【００９９】
そして、情報提供装置１０は、列ベクトルＶａ〜Ｖｅの順に係数が多い場合、画像Ｘａ〜画像Ｘｅの順に生成した複数の画像を並べた提供情報を生成する。このような提供画像を参照することで、利用者は、どのような特徴の構成要素をモデルＭが学習したかを容易に識別することができる。
【０１００】
例えば、利用者は、画像Ｘａと対応する複数の画像を参照することで、モデルＭが列ベクトルＶａとして「顔の向き」を学習した旨を特定することができる。また、利用者は、画像Ｘｂと対応する複数の画像を参照することで、モデルＭが列ベクトルＶｂとして「髪の色」を学習した旨を特定することができる。また、利用者は、画像Ｘｃと対応する複数の画像を参照することで、モデルＭが列ベクトルＶｃとして「性別」を学習した旨を特定することができる。また、利用者は、画像Ｘｄと対応する複数の画像を参照することで、モデルＭが列ベクトルＶｄとして「照明の強度」を学習した旨を特定することができる。また、利用者は、画像Ｘｅと対応する複数の画像を参照することで、モデルＭが列ベクトルＶｅとして「背景の色」を学習した旨を特定することができる。
【０１０１】
すなわち、情報提供装置１０は、モデルＭにより、所定の入力情報を入力した際に、符号化された入力情報を徐々に変更させながら所定の入力情報と対応する複数の出力情報を出力させる処理を実行することとなる。
【０１０２】
図２に戻り、説明を続ける。提供部４５は、取得された複数の出力情報を提供する。例えば、提供部４５は、取得部４４により生成された提供情報を情報処理装置１００へと送信する。
【０１０３】
〔３．情報提供装置の処理フロー〕
次に、図５を用いて、情報提供装置１０が実行する学習処理および提供処理の手順の一例について説明する。図５は、実施形態に係る情報提供装置が実行する処理の流れの一例を示すフローチャートである。
【０１０４】
まず、情報提供装置１０は、エンコーダＥＮと、エンコーダＥＮの出力に所定の辞書行列を積算した画像ベクトルを生成するベクトル生成部ＶＣＵと、画像ベクトルから出力画像を生成するデコーダＤＥとを有するモデルＭを生成する（ステップＳ１０１）。そして、情報提供装置１０は、データセットに含まれる入力画像を用いて、モデルＭ全体の学習を行うとともに、辞書行列の辞書学習を行う（ステップＳ１０２）。
【０１０５】
続いて、情報提供装置１０は、辞書行列に含まれる列ベクトルのうち、係数が多い順に所定の数の列ベクトルを特定する（ステップＳ１０３）。そして、情報提供装置１０は、特定した列ベクトルを使用する割合を順次変化させながら、入力画像から複数の出力画像を生成する（ステップＳ１０４）。その後、情報提供装置１０は、データセットが有する概念を示す情報として、複数の出力画像を提供し（ステップＳ１０５）、処理を終了する。
【０１０６】
〔４．変形例〕
上記では、情報提供装置１０による学習処理および提供処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置１０が実行する学習処理および提供処理のバリエーションについて説明する。
【０１０７】
〔４−１．装置構成〕
情報提供装置１０は、任意の数の情報処理装置１００と通信可能に接続されていてもよい。また、情報提供装置１０は、情報処理装置１００と情報のやり取りを行うフロントエンドサーバと、各種の処理を実行するバックエンドサーバとにより実現されてもよい。このような場合、フロントエンドサーバには、図２に示す受付部４１および提供部４５が配置され、バックエンドサーバには、図２に示す生成部４２、学習部４３および取得部４４が含まれることとなる。また、記憶部３０に登録された学習データデータベース３１およびモデルデータベース３２は、外部のストレージサーバによって管理されていてもよい。
【０１０８】
〔４−２．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１０９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１１０】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１１１】
〔５．プログラム〕
また、上述した実施形態に係る情報提供装置１０は、例えば図６に示すような構成のコンピュータ１０００によって実現される。図６は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【０１１２】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ（Hard  Disk  Drive）、フラッシュメモリ等により実現される。
【０１１３】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０１１４】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０１１５】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０１１６】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０１１７】
例えば、コンピュータ１０００が情報提供装置１０として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムまたはデータ（例えば、処理モデルＭ１）を実行することにより、制御部４０の機能を実現する。コンピュータ１０００の演算装置１０３０は、これらのプログラムまたはデータ（例えば、処理モデルＭ１）を一次記憶装置１０４０から読み取って実行するが、他の例として、他の装置からネットワークＮを介してこれらのプログラムを取得してもよい。
【０１１８】
〔６．効果〕
上述したように、情報提供装置１０は、入力された情報を符号化するエンコーダＥＮと、符号化された情報に対して所定の行列を適用したベクトルを生成するベクトル生成部ＶＣＵと、そのベクトルから情報に対応する情報を生成するデコーダＤＥとを有するモデルＭを生成する。そして、情報提供装置１０は、モデルＭに対して所定の入力情報を入力した際に、そのモデルがその入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように、モデルの学習を行う。このような処理の結果、情報提供装置１０は、利用者の恣意的な認識を介さずとも、学習に用いたデータセットに含まれる情報が有する特徴の辞書行列、すなわち、特徴の構成要素を得ることができるので、ＤＮＮがどのような特徴を学習しているかを可視化を可能とする情報を提供する結果、学習された特徴を確認することができる。
【０１１９】
また、情報提供装置１０は、出力情報が入力情報に近づくように、モデルＭの学習を行う。また、情報提供装置１０は、入力情報をスパースなベクトルへと符号化するように、モデルＭの学習を行う。また、情報提供装置１０は、所定の行列に含まれるベクトルが相互に直交するように、モデルＭの学習を行う。例えば、情報提供装置１０は、所定の行列を符号化された情報に積算するベクトル生成部ＶＣＵを有するモデルＭを生成し、所定の行列に含まれる列ベクトルが相互に直交するように、モデルＭの学習を行う。このような処理の結果、情報提供装置１０は、データセットが有する特徴の構成要素がどのようなものであるかを示す辞書行列を適切に学習することができる。
【０１２０】
また、情報提供装置１０は、学習が行われたエンコーダＥＮを用いて所定の入力情報を符号化し、符号化結果を変化させながら、学習部により学習が行われたベクトル生成部ＶＣＵおよびデコーダＤＥを用いて、その所定の入力情報に対応する複数の出力情報を取得する。そして、情報提供装置１０は、取得された複数の出力情報を提供する。このような処理の結果、情報提供装置１０は、どのような特徴の構成要素が学習されたかを容易に理解可能な情報を提供することができる。
【０１２１】
また、情報提供装置１０は、辞書行列に含まれる基底ベクトルのうち、係数が大きい方から順に所定の数の基底ベクトルを特定し、入力情報を符号化した符号化ベクトルに含まれる要素のうち、特定した基底ベクトルと対応するいずれかの要素の値を変化させながら、その入力情報に対応する複数の出力情報を取得する。このような処理の結果、情報提供装置１０は、データセットが有する特徴の構成要素のうち、データセットに含まれる各情報によってより重要な構成要素を示す情報を提供することができる。
【０１２２】
また、情報提供装置１０は、モデルＭとして、入力された画像を符号化するエンコーダＥＮ、符号化された画像に対して所定の行列を適用したベクトルを生成するベクトル生成部ＶＣＵ、および、そのベクトルから画像と対応する画像を生成するデコーダＤＥとを有するモデルＭを生成する。この結果、情報提供装置１０は、画像が有する特徴の構成要素をどのように学習したかを示す情報を得ることができる。
【０１２３】
また、情報提供装置１０は、モデルＭとして、ベクトルからエンコーダＥＮに入力された情報を復元するデコーダＤＥを有するモデルＭを生成する。また、情報提供装置１０は、モデルＭとして、畳み込みニューラルネットワークをエンコーダＥＮとして有するモデルＭを生成する。このため、情報提供装置１０は、目的に応じた各種の構造を有するモデルＭにおいて、どのような特徴の学習が行われたかを示す情報を提供できる。
【０１２４】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１２５】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、配信手段や配信回路に読み替えることができる。
【符号の説明】
【０１２６】
１０  情報提供装置
２０  通信部
３０  記憶部
３１  学習データデータベース
３２  モデルデータベース
４０  制御部
４１  受付部
４２  生成部
４３  学習部
４４  取得部
４５  提供部
１００  情報処理装置
【図１】
2019095935.tif 000011
【図２】
2019095935.tif 000012
【図３】
2019095935.tif 000013
【図４】
2019095935.tif 000014
【図５】
2019095935.tif 000015
【図６】
2019095935.tif 000016
【手続補正書】
【提出日】平成30年6月27日(2018.6.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成部と、
前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習部と
を有することを特徴とする学習装置。 
【請求項２】
前記学習部は、前記出力情報が前記入力情報に近づくように、前記モデルの学習を行う
ことを特徴とする請求項１に記載の学習装置。 
【請求項３】
前記学習部は、前記入力情報をスパースなベクトルへと符号化するように、前記モデルの学習を行う
ことを特徴とする請求項１または２に記載の学習装置。 
【請求項４】
前記学習部は、前記所定の行列に含まれるベクトルが相互に直交するように、前記モデルの学習を行う
ことを特徴とする請求項１〜３のうちいずれか１つに記載の学習装置。 
【請求項５】
前記生成部は、前記所定の行列を前記符号化された前記情報に積算するベクトル生成部を有するモデルを生成し、
前記学習部は、前記所定の行列に含まれる列ベクトルが相互に直交するように、前記モデルの学習を行う
ことを特徴とする請求項４に記載の学習装置。 
【請求項６】
前記学習部によって学習が行われたエンコーダを用いて所定の入力情報を符号化し、符号化結果を変化させながら、前記学習部により学習が行われたベクトル生成部およびデコーダを用いて、当該所定の入力情報に対応する複数の出力情報を取得する取得部と、
前記取得部により取得された複数の出力情報を提供する提供部と
を有することを特徴とする請求項１〜５のうちいずれか１つに記載の学習装置。 
【請求項７】
前記取得部は、前記辞書行列に含まれる基底ベクトルのうち、係数が大きい方から順に所定の数の基底ベクトルを特定し、前記入力情報を符号化した符号化ベクトルに含まれる要素のうち、特定した基底ベクトルと対応するいずれかの要素の値を変化させながら、当該入力情報に対応する複数の出力情報を取得する
ことを特徴とする請求項６に記載の学習装置。 
【請求項８】
前記生成部は、前記モデルとして、入力された画像を符号化するエンコーダ、符号化された前記画像に対して所定の行列を適用したベクトルを生成するベクトル生成部、および、当該ベクトルから前記画像と対応する画像を生成するデコーダとを有するモデルを生成する
ことを特徴とする請求項１〜７のうちいずれか１つに記載の学習装置。 
【請求項９】
前記生成部は、前記モデルとして、前記ベクトルから前記エンコーダに入力された情報を復元するデコーダを有するモデルを生成する
ことを特徴とする請求項１〜８のうちいずれか１つに記載の学習装置。 
【請求項１０】
前記生成部は、前記モデルとして、畳み込みニューラルネットワークを前記エンコーダとして有するモデルを生成する
ことを特徴とする請求項１〜９のうちいずれか１つに記載の学習装置。 
【請求項１１】
学習装置が実行する学習方法であって、
入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成工程と、
前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習工程と
を含むことを特徴とする学習方法。 
【請求項１２】
入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成手順と、
前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習手順と
をコンピュータに実行させるための学習プログラム。 
【請求項１３】
入力された情報を符号化するエンコーダと、
前記エンコーダにより符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、
前記ベクトル生成部により生成されたベクトルから前記情報に対応する情報を生成するデコーダと、
を含むモデルとしてコンピュータを動作させるための動作プログラムであって、
所定の入力情報を入力した際に、当該所定の入力情報と対応する出力情報を出力し、かつ、前記所定の行列が当該所定の入力情報の辞書行列となるように学習が行われ、所定の入力情報を入力した際に、符号化された入力情報を徐々に変更させながら当該所定の入力情報と対応する複数の出力情報を出力するモデルとして前記コンピュータを動作させるための動作プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、学習装置、学習方法、学習プログラムおよび動作プログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
以下に、本願に係る学習装置、学習方法、学習プログラムおよび動作プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法、学習プログラムおよび動作プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。