JP6381768B1 - 学習装置、学習方法、学習プログラムおよび動作プログラム - Google Patents

学習装置、学習方法、学習プログラムおよび動作プログラム Download PDF

Info

Publication number
JP6381768B1
JP6381768B1 JP2017223074A JP2017223074A JP6381768B1 JP 6381768 B1 JP6381768 B1 JP 6381768B1 JP 2017223074 A JP2017223074 A JP 2017223074A JP 2017223074 A JP2017223074 A JP 2017223074A JP 6381768 B1 JP6381768 B1 JP 6381768B1
Authority
JP
Japan
Prior art keywords
information
model
learning
vector
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017223074A
Other languages
English (en)
Other versions
JP2019095935A (ja
Inventor
陸 富樫
陸 富樫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2017223074A priority Critical patent/JP6381768B1/ja
Application granted granted Critical
Publication of JP6381768B1 publication Critical patent/JP6381768B1/ja
Priority to US16/117,349 priority patent/US11521110B2/en
Publication of JP2019095935A publication Critical patent/JP2019095935A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)

Abstract

【課題】DNNがどのような特徴を学習しているかを確認する。
【解決手段】本願に係る学習装置は、入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成部と、前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習部とを有することを特徴とする。
【選択図】図1

Description

本発明は、学習装置、学習方法、学習プログラムおよび動作プログラムに関する。
近年、多段に接続されたニューロンを有するDNN(Deep Neural Network)を利用して言語認識や画像認識等といった各種分類処理を実現する技術が知られている。例えば、このような技術では、所定の入力情報をDNNに入力した際に、その入力情報に対応する出力情報として利用者が所望する出力情報を出力するように、DNNが有するノード間の重み係数(接続係数)を修正することで、入力情報が有する特徴をDNNに学習させる。
特開2017−162074号公報
しかしながら、上述した学習技術では、DNNがどのような特徴を学習しているかを確認することが難しい場合がある。
例えば、従来技術では、ある特徴を有する複数の入力情報を用いて、DNNの学習を行った場合、DNNがその特徴を学習したと推定されるものの、入力情報が有するどの特徴をどれくらい学習したかを確認することができない。このため、従来技術では、どのような入力情報を用いた場合に、どのような特徴をDNNが学習するかといった予見性を有さず、学習の効率が必ずしも良いとは言えない。
本願は、上記に鑑みてなされたものであって、DNNがどのような特徴を学習しているかを確認することを目的とする。
本願に係る学習装置は、入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成部と、前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習部とを有することを特徴とする。
実施形態の一態様によれば、DNNがどのような特徴を学習しているかを確認することができる。
図1は、実施形態に係る情報提供装置が実行する処理の一例を示す図である。 図2は、実施形態に係る情報提供装置の構成例を示す図である。 図3は、実施形態に係る学習データデータベースに登録される情報の一例を示す図である。 図4は、実施形態に係る情報処理装置が生成する提供情報の一例を示す図である。 図5は、実施形態に係る情報提供装置が実行する処理の流れの一例を示すフローチャートである。 図6は、ハードウェア構成の一例を示す図である。
以下に、本願に係る学習装置、学習方法、学習プログラムおよび動作プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法、学習プログラムおよび動作プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1−1.情報提供装置の一例〕
まず、図1を用いて、学習装置の一例である情報提供装置が実行する学習処理および提供処理の一例について説明する。図1は、実施形態に係る情報提供装置が実行する処理の一例を示す図である。図1では、情報提供装置10は、インターネット等の所定のネットワークN(例えば、図2参照)を介して、所定のクライアントが使用する情報処理装置100と通信可能である。
情報提供装置10は、後述する学習処理および提供処理を実行する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。また、情報処理装置100は、情報提供装置10に対して、複数のデータを含むデータセットを提供する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
例えば、情報処理装置100は、情報提供装置10に対してデータセットを提供する。このような場合、情報提供装置10は、データセットを用いて学習処理および提供処理を実行することで、データセットに含まれる各データが有する特徴を示す情報(以下、「特徴示唆情報」と記載する。)を生成し、生成した特徴示唆情報を情報処理装置100に提供する。
〔1−2.DNNの学習について〕
ここで、情報処理装置100は、複数のノードを多段に接続したニューラルネットワークをモデルとして準備する。このようなモデルは、例えば、DNN、オートエンコーダー、LSTM(Long Short-Term Memory)、リカレントニューラルネットワーク、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等であってもよい。また、モデルは、これら畳み込みニューラルネットワークや、再帰型ニューラルネットワークの機能を組み合わせたものであってもよい。
ここで、DNNには、目的に応じて様々な特徴を学習させることができる。例えば、情報処理装置100は、ある入力情報をDNNに入力した際に、入力情報の分類結果(例えば、ラベル等)を示す情報を出力するようにDNNが有する接続係数を修正することで、入力情報の分類を行うDNNを学習することができる。また、情報処理装置100は、ある入力情報をDNNに入力した際に、その入力情報が有する特徴を変換した他の出力情報を出力するように、DNNを学習することができる。例えば、情報処理装置100は、馬が撮影された画像を入力した際に、入力された画像に撮影された馬をシマウマに入替えた画像を出力するといった情報変換を行うDNNを学習することができる。
このようなDNNの学習を行うには、目的に応じた特徴を有する複数の情報をデータセットとして準備し、データセットに含まれる複数の情報を用いて、DNNの学習を行うこととなる。例えば、入力情報の分類を行う場合は、分類を行う際に考慮する特徴を有する複数の情報をデータセットとして準備することとなる。また、情報変換を行う場合は、変換対象となる特徴を有する複数の情報と、変換後の特徴を有する複数の情報とを準備することとなる。
しかしながら、所定の特徴を有する複数の情報からなるデータセットを準備したとしても、DNNがその所定の特徴を学習したかどうかを確認するのは困難である。すなわち、従来の学習手法では、入力情報をモデルに入力した際にDNNが出力した出力情報が、所望される出力情報に近づくように、DNNが有する接続係数を補正する。しかしながら、このような学習手法では、入力情報が有するどの特徴をどれくらい学習したかを特定することができない。このため、従来技術では、どのような入力情報を用いた場合に、どのような特徴をDNNが学習するかといった予見性を有さず、学習の効率が必ずしも良いとは言えない。すなわち、従来技術では、学習された特徴を可視化して確認可能にしたり、予見させたりすることができない。
また、DNNの学習を行う場合は、学習させたい特徴を有する情報のデータセットをあらかじめ準備する必要がある。しかしながら、このようなデータセットの情報は、利用者の恣意的な基準により学習させたい特徴を有すると判断がなされた情報であるため、学習させたい特徴を有する情報であるとは言えない場合がある。
このため、データセットの各情報に、どのような特徴が含まれているかを事前に判断する技術が望まれている。換言すると、利用者の恣意的な基準を介さずに、データセットの各情報が共通して有する特徴がどのような特徴であるかを特定する技術が望まれる。
〔1−3.学習処理について〕
そこで、情報提供装置10は、以下の学習処理を実行する。まず、情報提供装置10は、入力された情報を符号化するエンコーダと、符号化された情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、ベクトルから情報に対応する情報を生成するデコーダとを有するモデルを生成する。そして、情報提供装置10は、モデルに対して所定の入力情報を入力した際に、モデルが入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように、モデルの学習を行う。
ここで、情報提供装置10は、出力情報が入力情報に近づくように、モデルの学習を行う。また、情報提供装置10は、入力情報をスパースなベクトルへと符号化するように、エンコーダの学習を行う。また、情報提供装置10は、所定の行列に含まれるベクトルが相互に直交するように、モデルの学習を行う。より具体的には、情報提供装置10は、所定の行列を符号化された情報に積算するベクトル生成部を有するモデルを生成し、所定の行列に含まれる列ベクトルが相互に直交するように、モデルの学習を行う。
ここで、モデルが出力する出力情報の内容が、入力情報に応じた内容であって、所望する内容となるようにモデルの学習を行った場合、モデル全体としては、入力情報の特徴に応じた出力情報を出力するように学習が行われることとなる。より具体的には、モデルのエンコーダおよびベクトル生成部は、入力情報を、入力情報が有する特徴のうち所望される出力情報を得るために必要な特徴を示す特徴ベクトルを生成するよう学習が行われる。また、デコーダは、特徴ベクトルから、その特徴ベクトルが示す特徴と対応する出力情報を出力するように学習が行われる。
ここで、情報提供装置10は、入力情報が有する特徴を示す特徴ベクトルが、エンコーダにより符号化された入力情報(以下、「符号化ベクトル」と記載する。)と辞書行列との積となるように、ベクトル生成部の学習を行う。すなわち、情報提供装置10は、特徴ベクトルが、特徴の構成要素を示すベクトル(すなわち、特徴の基底ベクトル)の集合体である辞書行列と、辞書行列に含まれる各ベクトルのうちどのベクトルをどれくらい使うか(すなわち、入力情報が有する特徴のレシピ)を示す符号化ベクトルとの積となるように、モデルの学習を行うこととなる。ここで、特徴の構成要素とは、入力情報が全体的に有する特徴を構成する個々の特徴である。
このような学習を行った場合、情報提供装置10は、学習時に用いたデータセットに含まれる情報が有する特徴の基底ベクトルの集合体である辞書行列を得ることができる。このような辞書行列には、利用者の恣意的な基準を介さずに、モデルによって学習されたデータセットの特徴の構成要素がベクトルとして含まれると言える。この結果、情報提供装置10は、モデルがどのような特徴を学習するかを示す辞書行列を得ることができる。
ここで、上述した学習により学習が行われたモデルは、入力情報が有する特徴ベクトルを、辞書行列に含まれる基底ベクトルと、符号化ベクトルとの積で示す。しかしながら、このようなモデルは、辞書行列に含まれる基底ベクトルの精度が良くない場合であっても、符号化ベクトルを複雑化させることで、デコーダが適切な出力情報を出力可能な程度に入力情報の特徴を再現してしまう恐れがある。
そこで、情報提供装置10は、出力情報が所望する出力情報に近づくようにモデルの学習を行うとともに、符号化ベクトルに含まれる要素のうち、値が「0」となる要素が多くなるようにモデルの学習を行う。すなわち、情報提供装置10は、モデル全体の精度の低下が生じないように、かつ、符号化ベクトルがスパースなベクトルとなるように、モデルの学習を行う。このような処理を行った場合、モデルは、適切に特徴の構成要素を示す辞書行列と、単純な抽象化ベクトルとの積で特徴ベクトルを生成することとなる。この結果、情報提供装置10は、辞書行列に含まれる各基底ベクトルを、学習に用いたデータセットに含まれる情報が有する特徴の構成要素へと近づけることができるので、辞書行列の精度を向上させることができる。
ここで、辞書行列は、データセットに含まれる情報が有する特徴の構成要素を示す複数の基底ベクトルにより構成されるが、学習によっては、複数の基底ベクトルが共通する構成要素を示してしまう恐れがある。ここで、モデルが学習した特徴を示す情報として、辞書行列を提供する場合、辞書行列に含まれる基底ベクトルは、それぞれ異なる構成要素を示す方が望ましい。そこで、情報提供装置10は、辞書行列に含まれる各ベクトルが直交するように、モデルの学習を行う。このような処理の結果、情報提供装置10は、それぞれ個別の構成要素を示すベクトルからなる辞書行列の学習を行うことができる。
〔1−4.提供処理について〕
なお、情報提供装置10は、辞書行列を利用者へそのまま提供することで、モデルがどのような特徴を学習したかを利用者に示してもよい。例えば、情報提供装置10は、データセットに含まれる情報を順次入力情報とし、入力情報の特徴を学習する度に辞書行列を利用者に提供することで、学習が進むにつれてどのようにモデルが特徴を学習したかを示すことができる。
一方で、辞書行列は、データセットが有する特徴をベクトルで示すため、どのような特徴が学習されたかを容易に示すことができない恐れがある。そこで、情報提供装置10は、以下の提供処理を実行する。例えば、情報提供装置10は、学習が行われたエンコーダを用いて所定の入力情報を符号化し、符号化結果を変化させながら、学習が行われたベクトル生成部およびデコーダを用いて、所定の入力情報に対応する複数の出力情報を取得する。そして、情報提供装置10は、取得された複数の出力情報を提供する。
例えば、上述した学習処理によって学習が行われた場合、モデルは、入力情報を辞書行列に含まれるベクトルのうちどのベクトルをどれくらい使用するかを示す符号化ベクトルに変換し、符号化ベクトルと辞書行列との積である特徴ベクトルを生成し、生成した特徴ベクトルから出力情報を生成する。ここで、符号化ベクトルに含まれる要素のうち、値が「0」以外の要素は、辞書行列に含まれるベクトルのうち、対応するベクトルを使用する割合、すなわち、特徴の構成要素を利用する割合であると言える。
このような特徴の構成要素を利用する割合を徐々に変化させながら複数の出力情報を生成する場合、モデルは、その構成要素(すなわち、全体的な特徴を構成する複数の特徴のうちある特徴)の割合のみが変化した複数の出力情報を生成することとなる。例えば、出力情報が人物の顔の画像であり、変更対象となる構成要素が「人物の顔の向き」という構成要素である場合、モデルは、人物の顔の向きが徐々に変化した複数の出力情報を出力することとなる。この結果、情報提供装置10は、辞書行列に含まれるベクトルが示す構成要素、すなわち、データセットが有する特徴の構成要素がどのようなものであるかを示唆する情報を提供することができる。
なお、辞書行列には、データセットに含まれる各情報の特徴を示すために大きく寄与する構成要素のみならず、あまり寄与していない構成要素のベクトルが含まれると考えられる。そこで、情報提供装置10は、データセットに含まれる各情報の特徴を示すために大きく寄与する構成要素の割合を徐々に変化させた複数の出力情報を提供する。
例えば、情報提供装置10は、辞書行列に含まれるベクトルのうち、係数が大きい方から順に所定の数のベクトルを特定する。例えば、情報提供装置10は、各ベクトルのノルムの値が大きい方から所定の数のベクトルを選択する。そして、情報提供装置10は、入力情報を符号化した符号化ベクトルに含まれる要素のうち、特定したベクトルと対応するいずれかの要素の値を変化させながら、入力情報に対応する複数の出力情報を出力する。
例えば、情報提供装置10は、辞書行列に含まれるベクトルVの係数が最も大きい場合、符号化ベクトルに含まれる要素のうちベクトルVと積算される要素を特定する。そして、情報提供装置10は、特定した要素の値を徐々に変化させながら、複数の特徴ベクトルを生成し、生成した特徴ベクトルごとに出力情報を生成する。この結果、情報提供装置10は、データセットが有する特徴の構成要素がどのようなものであるかをより容易に理解可能な情報を提供することができる。
〔1−5.処理の一例について〕
以下、図1を用いて、情報提供装置10が実行する生成処理および提供処理の一例を説明する。なお、以下の説明では、モデルとして、入力された画像(以下、「入力画像」と記載する。)を符号化するエンコーダ、符号化された入力画像に対して所定の行列を適用した画像ベクトルを生成するベクトル生成部、および、画像ベクトルから入力画像と対応する画像(以下、「出力画像」と記載する。)を生成するデコーダとを有するモデルを生成する処理の一例について説明する。また、以下の説明では、モデルとして、画像ベクトルからエンコーダに入力された入力画像を復元した出力画像を生成するデコーダを有するモデルを生成する例について説明する。
例えば、情報提供装置10は、情報処理装置100から複数の入力画像を含む入力画像のデータセットを取得する(ステップS1)。このような場合、情報提供装置10は、以下の生成処理および提供処理を実行することで、取得したデータセットに含まれる各入力画像の特徴を示す情報を生成する。
まず、情報提供装置10は、入力画像を符号化するエンコーダENと、エンコーダENが出力する符号化ベクトルに所定の辞書行列を積算した画像ベクトルを生成するベクトル生成部VCUと、画像ベクトルを復号化して出力画像を生成するデコーダDEとを有するモデルMを生成する(ステップS2)。例えば、情報提供装置10は、入力された入力画像の次元数を徐々に低下させることで、入力画像が有する特徴を符号化するエンコーダENを生成する。このようなエンコーダENは、例えば、畳み込みニューラルネットワークにより実現可能である。
また、情報提供装置10は、エンコーダENが出力する符号化ベクトルを受付ける符号化ベクトルレイヤCVLと、符号化ベクトルレイヤの出力に対して辞書行列を適用した画像ベクトル(すなわち、入力画像の特徴ベクトル)を生成する画像ベクトルレイヤPVLとを有するベクトル生成部VCUを生成する。また、情報提供装置10は、ベクトル生成部VCUが出力する画像ベクトルから、入力画像と対応する出力画像を生成するデコーダDEを生成する。例えば、情報提供装置10は、畳み込みニューラルネットワークにより構成されるオートエンコーダのうち、出力するベクトルの次元数が最も少ない中間層の次段にベクトル生成部VCUを挿入することで、モデルMを生成してもよい。
このようなモデルMを生成した場合、符号化ベクトル、辞書行列、および画像ベクトルは、以下に示す数式により表すことができる。例えば、入力画像をx、エンコーダENによる符号化を符号化関数Φで示すと、エンコーダENが出力するn次元の符号化ベクトルΦ(x)は、以下の式(1)で示すことができる。
また、辞書行列をDとおくと、ベクトル生成部VCUが出力する画像ベクトルzは、以下の式(2)で示すことができる。
ここで、辞書行列Dを、以下の式(3)で示すように、複数の列ベクトルV〜Vで表すと、入力画像の特徴ベクトルである画像ベクトルzは、以下の式(4)で示すことができる。
式(4)に示すように、モデルM1において、抽象化ベクトルΦ(x)は、辞書行列に含まれる各列ベクトルV〜Vをそれぞれどれくらいの割合で用いるかといったパラメータと見做すことができ、辞書行列Dは、データセットに含まれる各入力画像の特徴の構成要素を示す各列ベクトルV〜Vの集合であると見做すことができる。
そして、情報提供装置10は、取得したデータセットを用いて、モデルM1の辞書学習を行う。より具体的には、情報提供装置10は、入力画像と出力画像との二乗誤差を少なくする第1指標、ベクトル化関数をスパース化する第2指標、および、辞書行列を直交化する第3指標を満たすように、エンコーダおよびデコーダの接続係数と、辞書行列を修正することで、モデルの学習を行う(ステップS3)。
例えば、i番目の入力画像をx(i)、x(i)の画像ベクトルをz(i)、デコーダDEがz(i)から生成する出力画像をΨ(z(i))とすると、入力画像と出力画像との二乗誤差は、以下の式(5)で示すことができる。ここで、入力画像と出力画像とが近づくように、モデルMの学習を行った場合、モデルM1は、入力画像の全体的な特徴を保持するように符号化等を行うこととなる。そこで、情報提供装置10は、式(5)に示す入力画像と出力画像との二乗誤差を少なくする第1指標を設定する。
また、エンコーダENが出力する符号化ベクトルΦ(x)のL1ノルムは、以下の式(6)で示すことができる。情報提供装置10は、符号化ベクトルΦ(x)をスパース化するため、式(6)に示すL1ノルムの値を小さくする第2指標を設定する。すなわち、情報提供装置10は、符号化ベクトルΦ(x)のL1正則化を第2指標として設定する。
また、情報提供装置10は、辞書行列Dが有する各列ベクトルの直交化を第3指標として設定する。例えば、辞書行列Dが有する2つの要素をdおよびdとおくと、辞書行列Dが有する列ベクトルの直交化は、クロネッカーのデルタδjkを用いて、式(7)を最小化することにより実現される。
上述した第1指標から第3指標を満たすため、例えば、情報提供装置10は、式(8)に示すように、式(5)〜式(7)の和を算出し、算出した和が最小化するように、モデルMの学習を行う。より具体的には、情報提供装置10は、式(8)が最小化するように、エンコーダENおよびデコーダDEが有する接続係数の修正、および辞書行列Dの修正を行う。なお、式(8)に示すλは、所定の係数であり、任意の設定が可能である。なお、情報提供装置10は、式(8)に対し、例えば、入力画像のクラス分けを考慮した項を追加してもよい。また、式(8)では、出力画像をΨ(z(i))をy(i) imgと記載した。
データセットに含まれる各入力画像を用いて上述した学習が終了した場合、情報提供装置10は、学習済のモデルMを用いて、以下の提供処理を実行する。まず、情報提供装置10は、辞書行列に含まれる列ベクトルを構成ベクトルとし、係数が大きい方から順に所定の数の構成ベクトルを特定する(ステップS4)。例えば、情報提供装置10は、係数が大きい方から順に、列ベクトルV、V、Vを特定する。
そして、情報提供装置10は、特定した構成ベクトルを使用する割合を徐々に変化させながら、各入力画像に対応する複数の出力画像を生成する(ステップS5)。例えば、情報提供装置10は、列ベクトルVを利用する入力画像x(a)を特定する。より具体的には、情報提供装置10は、符号化ベクトルΦ(x)を構成する要素s〜sのうち、列ベクトルVと積算される要素sの値が大きい入力画像x(a)をデータセットから抽出する。そして、情報提供装置10は、入力画像x(a)の符号化ベクトルΦ(x(a))のうち、要素sの値を徐々に変化させた複数の画像ベクトルzを生成し、各画像ベクトルzごとに出力画像を生成する。
同様に、情報提供装置10は、符号化ベクトルΦ(x)を構成する要素s〜sのうち、列ベクトルVと積算される要素sの値が大きい入力画像x(b)をデータセットから抽出する。そして、情報提供装置10は、符号化ベクトルΦ(x(b))のうち要素sの値を徐々に変化させた複数の画像ベクトルzを生成し、各画像ベクトルzごとに出力画像を生成する。
また、情報提供装置10は、符号化ベクトルΦ(x)を構成する要素s〜sのうち、列ベクトルVと積算される要素sの値が大きい入力画像x(c)をデータセットから抽出する。そして、情報提供装置10は、符号化ベクトルΦ(x(c))のうち要素sの値を徐々に変化させた複数の画像ベクトルzを生成し、各画像ベクトルzごとに出力画像を生成する。
そして、情報提供装置10は、データセットの特徴を示す画像として、生成した画像を情報処理装置100に提供する(ステップS6)。このような処理の結果、例えば、情報提供装置10は、入力画像が有する特徴を構成する構成要素のうち、いずれかの構成要素を徐々に変化させた画像を提供することができる。
例えば、図1に示す例では、情報提供装置10は、入力画像x(a)に撮影された人物の顔の向きを徐々に変化させた複数の出力画像を提供していると考えられる。この結果、利用者は、入力画像が有する「顔の向き」といった特徴の構成要素を、モデルM1が列ベクトルVとして学習した旨を示すことができる。換言すると、利用者は、データセットに含まれる入力画像に、「顔の向き」といった特徴の構成要素が含まれる旨を見出すことができる。
また、図1に示す例では、情報提供装置10は、入力画像x(b)に撮影された人物の紙の色を徐々に変化させた複数の出力画像を提供していると考えられる。この結果、利用者は、入力画像が有する「髪の色」といった特徴の構成要素を、モデルM1が列ベクトルVとして学習した旨を示すことができる。換言すると、利用者は、データセットに含まれる入力画像に、「髪の色」といった特徴の構成要素が含まれる旨を見出すことができる。
また、図1に示す例では、情報提供装置10は、入力画像x(c)に撮影された人物の性別を徐々に変化させた複数の出力画像を提供していると考えられる。この結果、利用者は、入力画像が有する「性別」といった特徴の構成要素を、モデルM1が列ベクトルVとして学習した旨を示すことができる。換言すると、利用者は、データセットに含まれる入力画像に、「性別」といった特徴の構成要素が含まれる旨を見出すことができる。
なお、上述した「顔の向き」、「髪の色」、および「性別」といった特徴の構成要素は、あくまで一例であり、出力された画像から利用者がどのような構成要素を認識するかについては、限定されるものではない。すなわち、情報提供装置10は、データセットに含まれる特徴の構成要素を利用者があらかじめ恣意的に特定せずとも、データセットに含まれる特徴の構成要素を特定し、特定した構成要素を示す情報を利用者に提供する。このため、情報提供装置10は、データセットに含まれる特徴の構成要素を客観的に示す情報を提供することができる。
〔1−6.適用態様について〕
上述した例では、入力された入力画像と出力する出力画像とが類似する第1指標を設定した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、入力画像が属するクラスを示す情報(すなわち、ラベル)を出力するように、モデルMが有するデコーダDEを学習してもよい。また、情報提供装置10は、入力画像のうち所定の被写体の特徴を変更した出力画像を出力するように、デコーダDEを学習してもよい。
また、情報提供装置10は、静止画像、動画像、音声、文字列等、任意のコンテンツを入力情報とした際に、入力情報が有する特徴に基づいて生成された出力情報であって、所望する形態の出力情報を出力するように、モデルM1を生成および学習してもよい。また、情報提供装置10は、入力情報と出力情報とが異なる種別のコンテンツとなるように、モデルM1の生成および学習を行ってもよい。
また、情報提供装置10は、コンテンツの種別に応じた態様で、モデルが学習した特徴の構成要素を示す提供情報を生成して提供してもよい。例えば、情報提供装置10は、入力情報として音楽の音声データが採用される場合、上述した学習処理を実行することで、データセットに含まれる各音楽の特徴の構成要素(例えば、ジャズの雰囲気がある、バイオリンが使用されている、女性の声である等)を示す辞書行列を学習させる。そして、情報提供装置10は、ある音楽の音声データから、抽象化ベクトルの要素を徐々に変更させた複数の音声データを生成することで、例えば、女性の声から徐々に男性の声へと変化していく複数の音声データや、ジャズの雰囲気がある音声データから徐々にエレクトロダンスミュージックの雰囲気がある音声データへと変化する音声データを生成し、生成した音声データを提供情報として提供してもよい。
このような提供情報を提供することで、情報提供装置10は、例えば、データセットに含まれる情報の特徴の構成要素がどのような構成要素であるかを示すことができるのみならず、そのデータセットにおいて、ある特徴が有する意味の反対の意味を有する特徴がどのようなものであるかを示すことができる。例えば、情報提供装置10は、あるデータセットにおいて、「男性の声」という意味を有する特徴の反対の意味の特徴が、「女性の声」という意味を有する特徴である旨を利用者に提供することができる。
また、情報提供装置10は、エンコーダENやデコーダDEとして、CNN(Convolutional Neural Network)やRNN(Recurrent Neural Network)、LSTM等を採用してもよい。すなわち、情報提供装置10は、シグモイド関数等の所定の活性関数を用いて、入力された値に対応する新たな値を出力する複数のノードを多層に接続し、各ノード間で伝達される値に対して所定の接続係数を設定したニューラルネットワークであれば、任意の機能および構成を有するニューラルネットワークを準備し、このようなニューラルネットワークのうち入力情報の特徴を示す中間出力(例えば、符号化ベクトル等)を出力する層の次段にベクトル生成部VCUを設定し、所謂辞書学習を実行すればよい。このような処理を実行することで、情報提供装置10は、モデルが学習した特徴がどのようなものであるかを特定することができる。
なお、上述したモデルとは、ニューラルネットワークに含まれるノード間の接続関係や接続係数を示すデータセットであってもよく、このようなデータセットを用いてコンピュータをモデルとして実行させるためのソフトウェア(例えば、プログラムモジュール)であってもよい。
例えば、モデルは、入力情報を符号化するエンコーダENと、エンコーダENにより符号化された入力情報に対して所定の行列を適用したベクトルを生成するベクトル生成部VCUと、ベクトル生成部VCUにより生成されたベクトルから入力情報に対応する出力情報を生成するデコーダとを有するモデルであって、所定の入力情報を入力した際に、所定の入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように学習が行われたモデルであってもよい。このようなモデルは、コンピュータに対し、所定の入力情報をモデルに入力した際に、符号化された入力情報を徐々に変更させながら所定の入力情報と対応する複数の出力情報をモデルから出力させる処理を実行させるためのモデルとなる。
なお、モデルは、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力された情報と対応する情報を出力層から出力するようコンピュータを機能させる。なお、モデルは、人工知能ソフトウェアの一部であるプログラムモジュールとしての利用が想定されるものであってもよい。
例えば、モデルをDNN等、1つまたは複数の中間層を有するニューラルネットワークで実現される場合、各モデルが含む第1要素とは、入力層または中間層が有するいずれかのノードと見做すことができ、第2要素とは、第1要素と対応するノードから値が伝達されるノード、すなわち、次段のノードと対応し、第1要素の重みとは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重み、すなわち、接続係数である。
例えば、モデルは、入力層に入力画像等の入力情報が入力された場合に、出力層から、入力情報と対応する出力情報を出力するようにコンピュータを機能させる。例えば、モデルは、CPU及びメモリを備えるコンピュータにて用いられる。具体的には、コンピュータのCPUが、メモリに記憶されたモデルを読出し、読み出したモデルに基づいた指令に従って、モデルの入力層に入力された入力情報に対して、上述した学習処理により学習が行われたニューラルネットワークにおける重みづけ係数と活性関数等に基づく演算を行い、出力層から入力された出力情報を出力するよう動作する。ここで、モデルは、コンピュータに対し、エンコーダENによって符号化された入力情報である符号化ベクトルのうち、値が「0」ではない要素の値を徐々に変化させながら、同一の入力情報に対応する複数の出力情報を生成させてもよい。
また、情報提供装置10は、上述した学習処理によって学習が行われたモデルを用いたサービスの提供を実現してもよい。例えば、上述した学習により学習が行われたモデルMは、抽象化ベクトルの値を変更することで、入力情報が有する特徴の構成要素のうち、いずれかの構成要素を変更した特徴と対応する出力情報を出力することとなる。そこで、情報提供装置10は、例えば、ある利用者の属性(デモグラフィック属性やサイコグラフィック属性等)等といった利用者の情報をモデルMに入力し、モデルMが生成した抽象化ベクトルのうち、いずれかの構成要素と対応する要素を段階的に変更させながら、複数の出力情報を生成することで、その利用者のみならず、その利用者と類似する他の利用者に対する出力情報を生成してもよい。このような出力情報は、例えば、利用者に対して提供される情報や、各利用者がどのような嗜好を有するか、各利用者がどのような商品や役務、若しくはそれらの広告に対して興味を有するかを示す情報であってもよい。
〔1−7.学習について〕
また、情報提供装置10は、必ずしも辞書行列に含まれる列ベクトルを直交化させる必要はない。辞書行列が有する列ベクトルに共通する構成要素が含まれているとしても、情報提供装置10は、上述した提供処理を実行することで、データセットの入力情報が有する情報の構成要素をどのようにモデルが学習したかを示す情報を利用者に提供することができる。また、式(8)に示した係数λは、学習をどのように進めるかに応じて、任意の値が設定可能である。
また、情報提供装置10は、GAN(Generative Adversarial Networks)を用いてモデルMの学習を行ってもよい。このような場合、モデルMは、GANの一部を構成するモデルであってもよい。
また、情報提供装置10は、エンコーダENやデコーダDEのプレトレーニングを行ってもよい。例えば、情報提供装置10は、入力画像の次元数を削減することで符号化し、その後、符号化された情報から元の入力画像と類似する出力画像を復元するオートエンコーダを生成し、生成したオートエンコーダのプレトレーニングを行う。そして、情報提供装置10は、オートエンコーダのうち、出力するベクトルの次元数が最も少ない中間層の次段に、ベクトル生成部VCUを挿入したモデルMを生成し、上述した学習処理によるモデルMの学習を行ってもよい。
〔2.情報提供装置の構成〕
以下、上記した学習処理を実現する情報提供装置10が有する機能構成の一例について説明する。図2は、実施形態に係る情報提供装置の構成例を示す図である。図2に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、情報処理装置100との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、学習データデータベース31、およびモデルデータベース32を記憶する。
学習データデータベース31には、学習データ、すなわち情報処理装置100から取得したデータセットが登録される。例えば、図3は、実施形態に係る学習データデータベースに登録される情報の一例を示す図である。図3に示すように、学習データデータベース31には、「画像ID(Identifier)」、および「画像データ」といった項目を有する情報が登録される。
ここで、「画像ID」とは、画像データを示す識別子である。また、「画像データ」とは、学習データに含まれる画像に関するデータである。例えば、図3に示す例では、学習データID「画像#1」、および画像データ「データ#1」が対応付けて登録されている。このような情報は、画像ID「画像#1」が示す画像のデータが画像データ「データ#1」である旨を示す。なお、図3に示す例では「データ#1」といった概念的な値を記載したが、実際には、モデルに入力される情報、すなわち、入力画像となる画像のデータが登録されることとなる。また、学習データデータベース31には、図3に示す情報以外にも、任意の情報が登録されていてよい。
図2に戻り、説明を続ける。モデルデータベース32には、学習対象となるモデルMのデータが登録される。例えば、モデルデータベース32には、モデルMが有するノードの接続関係や接続係数が登録される。
制御部40は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報提供装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部40は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
また、制御部40は、記憶部30に記憶されるモデルMに従った情報処理により、入力情報に対応する複数の出力情報を出力する処理を実行する。例えば、制御部40は、所定の入力情報をモデルに入力した際に、符号化された入力情報を徐々に変更させながら所定の入力情報と対応する複数の出力情報をモデルから出力させる処理を実行する。
図2に示すように、制御部40は、受付部41、生成部42、学習部43、取得部44、および提供部45を有する。受付部41は、情報処理装置100からデータセットを受付ける。このような場合、受付部41は、受付けたデータセットを学習データとして学習データデータベース31に登録する。
生成部42は、入力された情報を符号化するエンコーダENと、符号化された情報に対して所定の行列を適用したベクトルを生成するベクトル生成部VCUと、ベクトルから入力された情報に対応する情報を生成するデコーダDEとを有するモデルMを生成する。より具体的には、生成部42は、所定の行列を符号化された入力情報に積算するベクトル生成部VCUを有するモデルMを生成する。
例えば、生成部42は、入力画像を符号化するエンコーダEN、符号化された画像に対して辞書行列を適用した画像ベクトルを生成するベクトル生成部VCU、および、画像ベクトルから入力画像と対応する出力画像を生成するデコーダDEとを有するモデルMを生成する。また、例えば、生成部42は、モデルMとして、画像ベクトルからエンコーダENに入力された入力画像を復元するデコーダDEを有するモデルMを生成する。また、例えば、生成部42は、モデルMとして、畳み込みニューラルネットワークをエンコーダENとして有するモデルを生成する。
学習部43は、生成部42によって生成されたモデルMに対して所定の入力情報を入力した際に、モデルMが入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように、モデルMの学習を行う。例えば、学習部43は、生成部42によって生成されたモデルMを取得する。そして、学習部43は、学習データデータベース31に登録された各画像を入力画像とし、上述した式(8)を満たすように、モデルMが有するエンコーダENやデコーダDEの接続係数、および、辞書行列に含まれる各要素の値の修正を行う。
例えば、学習部43は、モデルMに所定の入力情報を入力した際に、モデルMが出力する出力情報が入力情報に近づくように、モデルMの学習を行う。また、学習部43は、入力情報をスパースなベクトルへと符号化するように、モデルMの学習を行う。また、学習部43は、所定の行列に含まれるベクトルが相互に直交するように、モデルMの学習を行う。より具体的には、学習部43は、所定の行列に含まれる列ベクトルが相互に直交するように、モデルMの学習を行う。
このような処理の結果、学習部43は、データセットに含まれる各情報の特徴の構成要素を示す辞書行列と、特徴を再現するために辞書行列に含まれる構成要素のうちどの構成要素をどれくらい使用するかを示す符号化ベクトルへと入力情報を符号化するエンコーダENと、符号化ベクトルと辞書行列との積から入力情報に近い出力情報を出力するデコーダDEとを有するモデルMの学習を行うことができる。そして、学習部43は、学習が行われたモデルMをモデルデータベース32に登録する。
取得部44は、学習部43によって学習が行われたエンコーダENを用いて所定の入力情報を符号化し、符号化結果を変化させながら、学習部43により学習が行われたベクトル生成部VCUおよびデコーダDEを用いて、所定の入力情報に対応する複数の出力情報を取得する。例えば、取得部44は、辞書行列に含まれるベクトルのうち、係数が大きい方から順に所定の数のベクトルを特定し、符号化ベクトルに含まれる要素のうち、特定したベクトルと対応するいずれかの要素の値を変化させながら、入力情報に対応する複数の出力情報を取得する。
例えば、取得部44は、モデルデータベース32から辞書行列を読出し、辞書行列に含まれる列ベクトル(すなわち、構成要素を示す構成ベクトル)のうち、係数が大きい方から順に所定の数のベクトルを変更対象ベクトルとして特定する。続いて、取得部44は、モデルデータベース32からモデルMを読出し、読み出したモデルMのエンコーダENを用いて、学習データデータベース31に登録された各画像を符号化ベクトルに変換する。
続いて、取得部44は、変更対象ベクトルごとに、以下の処理を実行する。まず、取得部44は、変更対象ベクトルと対応する要素の値が「0」ではなく、かつ、絶対値が最も大きい符号化ベクトルを特定する。そして、取得部44は、特定した符号化ベクトルのうち変更対象ベクトルと対応する要素の値を変化させながら、モデルMを用いて、複数の出力情報を生成する。すなわち、取得部44は、変更対象ベクトルと対応する要素の値を変化させた複数の符号化ベクトルを特定した符号化ベクトルから生成し、生成した複数の符号化ベクトルと辞書行列との積をそれぞれ算出することで、複数の画像ベクトルを生成する。そして、取得部44は、静止した各画像ベクトルをデコーダDEに入力することで、構成要素を徐々に変化させた複数の出力画像を取得する。
また、取得部44は、各変更対象ベクトルごとに上述した処理を実行することで、構成要素を徐々に変更させた複数の出力画像群を取得する。その後、取得部44は、対応する変更対象ベクトルの係数が大きい方から順に取得した複数の出力画像を並べた提供情報を生成する。
例えば、図4は、実施形態に係る情報処理装置が生成する提供情報の一例を示す図である。図4に示す例では、符号化ベクトルの要素を徐々に変更することで、各入力画像から生成された複数の提供情報の一例について記載した。
例えば、情報提供装置10は、画像Xの抽象化ベクトルのうち、列ベクトルVと対応する要素を徐々に変更した複数の抽象化ベクトルを生成し、生成した抽象化ベクトルを用いて、出力画像を生成する。同様に、情報提供装置10は、画像X〜画像Xの抽象ベクトルのうち、列ベクトルV〜Vと対応する要素を徐々に変更した複数の抽象化ベクトルを生成し、生成した抽象化ベクトルを用いて、提供情報を生成する。
そして、情報提供装置10は、列ベクトルV〜Vの順に係数が多い場合、画像X〜画像Xの順に生成した複数の画像を並べた提供情報を生成する。このような提供画像を参照することで、利用者は、どのような特徴の構成要素をモデルMが学習したかを容易に識別することができる。
例えば、利用者は、画像Xと対応する複数の画像を参照することで、モデルMが列ベクトルVとして「顔の向き」を学習した旨を特定することができる。また、利用者は、画像Xと対応する複数の画像を参照することで、モデルMが列ベクトルVとして「髪の色」を学習した旨を特定することができる。また、利用者は、画像Xと対応する複数の画像を参照することで、モデルMが列ベクトルVとして「性別」を学習した旨を特定することができる。また、利用者は、画像Xと対応する複数の画像を参照することで、モデルMが列ベクトルVとして「照明の強度」を学習した旨を特定することができる。また、利用者は、画像Xと対応する複数の画像を参照することで、モデルMが列ベクトルVとして「背景の色」を学習した旨を特定することができる。
すなわち、情報提供装置10は、モデルMにより、所定の入力情報を入力した際に、符号化された入力情報を徐々に変更させながら所定の入力情報と対応する複数の出力情報を出力させる処理を実行することとなる。
図2に戻り、説明を続ける。提供部45は、取得された複数の出力情報を提供する。例えば、提供部45は、取得部44により生成された提供情報を情報処理装置100へと送信する。
〔3.情報提供装置の処理フロー〕
次に、図5を用いて、情報提供装置10が実行する学習処理および提供処理の手順の一例について説明する。図5は、実施形態に係る情報提供装置が実行する処理の流れの一例を示すフローチャートである。
まず、情報提供装置10は、エンコーダENと、エンコーダENの出力に所定の辞書行列を積算した画像ベクトルを生成するベクトル生成部VCUと、画像ベクトルから出力画像を生成するデコーダDEとを有するモデルMを生成する(ステップS101)。そして、情報提供装置10は、データセットに含まれる入力画像を用いて、モデルM全体の学習を行うとともに、辞書行列の辞書学習を行う(ステップS102)。
続いて、情報提供装置10は、辞書行列に含まれる列ベクトルのうち、係数が多い順に所定の数の列ベクトルを特定する(ステップS103)。そして、情報提供装置10は、特定した列ベクトルを使用する割合を順次変化させながら、入力画像から複数の出力画像を生成する(ステップS104)。その後、情報提供装置10は、データセットが有する概念を示す情報として、複数の出力画像を提供し(ステップS105)、処理を終了する。
〔4.変形例〕
上記では、情報提供装置10による学習処理および提供処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10が実行する学習処理および提供処理のバリエーションについて説明する。
〔4−1.装置構成〕
情報提供装置10は、任意の数の情報処理装置100と通信可能に接続されていてもよい。また、情報提供装置10は、情報処理装置100と情報のやり取りを行うフロントエンドサーバと、各種の処理を実行するバックエンドサーバとにより実現されてもよい。このような場合、フロントエンドサーバには、図2に示す受付部41および提供部45が配置され、バックエンドサーバには、図2に示す生成部42、学習部43および取得部44が含まれることとなる。また、記憶部30に登録された学習データデータベース31およびモデルデータベース32は、外部のストレージサーバによって管理されていてもよい。
〔4−2.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔5.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば図6に示すような構成のコンピュータ1000によって実現される。図6は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムまたはデータ(例えば、処理モデルM1)を実行することにより、制御部40の機能を実現する。コンピュータ1000の演算装置1030は、これらのプログラムまたはデータ(例えば、処理モデルM1)を一次記憶装置1040から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
〔6.効果〕
上述したように、情報提供装置10は、入力された情報を符号化するエンコーダENと、符号化された情報に対して所定の行列を適用したベクトルを生成するベクトル生成部VCUと、そのベクトルから情報に対応する情報を生成するデコーダDEとを有するモデルMを生成する。そして、情報提供装置10は、モデルMに対して所定の入力情報を入力した際に、そのモデルがその入力情報と対応する出力情報を出力し、かつ、所定の行列が入力情報の辞書行列となるように、モデルの学習を行う。このような処理の結果、情報提供装置10は、利用者の恣意的な認識を介さずとも、学習に用いたデータセットに含まれる情報が有する特徴の辞書行列、すなわち、特徴の構成要素を得ることができるので、DNNがどのような特徴を学習しているかを可視化を可能とする情報を提供する結果、学習された特徴を確認することができる。
また、情報提供装置10は、出力情報が入力情報に近づくように、モデルMの学習を行う。また、情報提供装置10は、入力情報をスパースなベクトルへと符号化するように、モデルMの学習を行う。また、情報提供装置10は、所定の行列に含まれるベクトルが相互に直交するように、モデルMの学習を行う。例えば、情報提供装置10は、所定の行列を符号化された情報に積算するベクトル生成部VCUを有するモデルMを生成し、所定の行列に含まれる列ベクトルが相互に直交するように、モデルMの学習を行う。このような処理の結果、情報提供装置10は、データセットが有する特徴の構成要素がどのようなものであるかを示す辞書行列を適切に学習することができる。
また、情報提供装置10は、学習が行われたエンコーダENを用いて所定の入力情報を符号化し、符号化結果を変化させながら、学習部により学習が行われたベクトル生成部VCUおよびデコーダDEを用いて、その所定の入力情報に対応する複数の出力情報を取得する。そして、情報提供装置10は、取得された複数の出力情報を提供する。このような処理の結果、情報提供装置10は、どのような特徴の構成要素が学習されたかを容易に理解可能な情報を提供することができる。
また、情報提供装置10は、辞書行列に含まれる基底ベクトルのうち、係数が大きい方から順に所定の数の基底ベクトルを特定し、入力情報を符号化した符号化ベクトルに含まれる要素のうち、特定した基底ベクトルと対応するいずれかの要素の値を変化させながら、その入力情報に対応する複数の出力情報を取得する。このような処理の結果、情報提供装置10は、データセットが有する特徴の構成要素のうち、データセットに含まれる各情報によってより重要な構成要素を示す情報を提供することができる。
また、情報提供装置10は、モデルMとして、入力された画像を符号化するエンコーダEN、符号化された画像に対して所定の行列を適用したベクトルを生成するベクトル生成部VCU、および、そのベクトルから画像と対応する画像を生成するデコーダDEとを有するモデルMを生成する。この結果、情報提供装置10は、画像が有する特徴の構成要素をどのように学習したかを示す情報を得ることができる。
また、情報提供装置10は、モデルMとして、ベクトルからエンコーダENに入力された情報を復元するデコーダDEを有するモデルMを生成する。また、情報提供装置10は、モデルMとして、畳み込みニューラルネットワークをエンコーダENとして有するモデルMを生成する。このため、情報提供装置10は、目的に応じた各種の構造を有するモデルMにおいて、どのような特徴の学習が行われたかを示す情報を提供できる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、配信手段や配信回路に読み替えることができる。
10 情報提供装置
20 通信部
30 記憶部
31 学習データデータベース
32 モデルデータベース
40 制御部
41 受付部
42 生成部
43 学習部
44 取得部
45 提供部
100 情報処理装置

Claims (13)

  1. 入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成部と、
    前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習部と
    を有することを特徴とする学習装置。
  2. 前記学習部は、前記出力情報が前記入力情報に近づくように、前記モデルの学習を行う
    ことを特徴とする請求項1に記載の学習装置。
  3. 前記学習部は、前記入力情報をスパースなベクトルへと符号化するように、前記モデルの学習を行う
    ことを特徴とする請求項1または2に記載の学習装置。
  4. 前記学習部は、前記所定の行列に含まれるベクトルが相互に直交するように、前記モデルの学習を行う
    ことを特徴とする請求項1〜3のうちいずれか1つに記載の学習装置。
  5. 前記生成部は、前記所定の行列を前記符号化された前記情報に積算するベクトル生成部を有するモデルを生成し、
    前記学習部は、前記所定の行列に含まれる列ベクトルが相互に直交するように、前記モデルの学習を行う
    ことを特徴とする請求項4に記載の学習装置。
  6. 前記学習部によって学習が行われたエンコーダを用いて所定の入力情報を符号化し、符号化結果を変化させながら、前記学習部により学習が行われたベクトル生成部およびデコーダを用いて、当該所定の入力情報に対応する複数の出力情報を取得する取得部と、
    前記取得部により取得された複数の出力情報を提供する提供部と
    を有することを特徴とする請求項1〜5のうちいずれか1つに記載の学習装置。
  7. 前記取得部は、前記辞書行列に含まれる基底ベクトルのうち、係数が大きい方から順に所定の数の基底ベクトルを特定し、前記入力情報を符号化した符号化ベクトルに含まれる要素のうち、特定した基底ベクトルと対応するいずれかの要素の値を変化させながら、当該入力情報に対応する複数の出力情報を取得する
    ことを特徴とする請求項6に記載の学習装置。
  8. 前記生成部は、前記モデルとして、入力された画像を符号化するエンコーダ、符号化された前記画像に対して所定の行列を適用したベクトルを生成するベクトル生成部、および、当該ベクトルから前記画像と対応する画像を生成するデコーダとを有するモデルを生成する
    ことを特徴とする請求項1〜7のうちいずれか1つに記載の学習装置。
  9. 前記生成部は、前記モデルとして、前記ベクトルから前記エンコーダに入力された情報を復元するデコーダを有するモデルを生成する
    ことを特徴とする請求項1〜8のうちいずれか1つに記載の学習装置。
  10. 前記生成部は、前記モデルとして、畳み込みニューラルネットワークを前記エンコーダとして有するモデルを生成する
    ことを特徴とする請求項1〜9のうちいずれか1つに記載の学習装置。
  11. 学習装置が実行する学習方法であって、
    入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成工程と、
    前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習工程と
    を含むことを特徴とする学習方法。
  12. 入力された情報を符号化するエンコーダと、符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、当該ベクトルから前記情報に対応する情報を生成するデコーダとを有するモデルを生成する生成手順と、
    前記モデルに対して所定の入力情報を入力した際に、当該モデルが当該入力情報と対応する出力情報を出力し、かつ、前記所定の行列が前記入力情報の辞書行列となるように、前記モデルの学習を行う学習手順と
    をコンピュータに実行させるための学習プログラム。
  13. 入力された情報を符号化するエンコーダと、
    前記エンコーダにより符号化された前記情報に対して所定の行列を適用したベクトルを生成するベクトル生成部と、
    前記ベクトル生成部により生成されたベクトルから前記情報に対応する情報を生成するデコーダと、
    を含むモデルとしてコンピュータを動作させるための動作プログラムであって、
    所定の入力情報を入力した際に、当該所定の入力情報と対応する出力情報を出力し、かつ、前記所定の行列が当該所定の入力情報の辞書行列となるように学習が行われ所定の入力情報を入力した際に、符号化された入力情報を徐々に変更させながら当該所定の入力情報と対応する複数の出力情報を出力するモデルとして前記コンピュータを動作させるための動作プログラム
JP2017223074A 2017-11-20 2017-11-20 学習装置、学習方法、学習プログラムおよび動作プログラム Active JP6381768B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017223074A JP6381768B1 (ja) 2017-11-20 2017-11-20 学習装置、学習方法、学習プログラムおよび動作プログラム
US16/117,349 US11521110B2 (en) 2017-11-20 2018-08-30 Learning apparatus, learning method, and non-transitory computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017223074A JP6381768B1 (ja) 2017-11-20 2017-11-20 学習装置、学習方法、学習プログラムおよび動作プログラム

Publications (2)

Publication Number Publication Date
JP6381768B1 true JP6381768B1 (ja) 2018-08-29
JP2019095935A JP2019095935A (ja) 2019-06-20

Family

ID=63354756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017223074A Active JP6381768B1 (ja) 2017-11-20 2017-11-20 学習装置、学習方法、学習プログラムおよび動作プログラム

Country Status (2)

Country Link
US (1) US11521110B2 (ja)
JP (1) JP6381768B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101988028B1 (ko) * 2018-09-04 2019-06-11 넷마블 주식회사 서버 및 이의 동작 방법
JP2020173701A (ja) * 2019-04-12 2020-10-22 株式会社Ihi 形状生成装置および形状生成方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6523498B1 (ja) * 2018-01-19 2019-06-05 ヤフー株式会社 学習装置、学習方法および学習プログラム
US11610435B2 (en) * 2018-11-14 2023-03-21 Nvidia Corporation Generative adversarial neural network assisted video compression and broadcast
US11580395B2 (en) * 2018-11-14 2023-02-14 Nvidia Corporation Generative adversarial neural network assisted video reconstruction
US11455790B2 (en) 2018-11-14 2022-09-27 Nvidia Corporation Style-based architecture for generative neural networks
KR102411173B1 (ko) * 2019-11-01 2022-06-21 국방과학연구소 태스크 할당 방법 및 장치
CN113542759B (zh) * 2020-04-15 2024-05-10 辉达公司 生成对抗神经网络辅助的视频重建
CN113542758A (zh) * 2020-04-15 2021-10-22 辉达公司 生成对抗神经网络辅助的视频压缩和广播
US11823490B2 (en) * 2021-06-08 2023-11-21 Adobe, Inc. Non-linear latent to latent model for multi-attribute face editing
US20240114162A1 (en) * 2022-09-29 2024-04-04 Nvidia Corporation Frame selection for streaming applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3166020A1 (en) * 2015-11-06 2017-05-10 Thomson Licensing Method and apparatus for image classification based on dictionary learning

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8457409B2 (en) * 2008-05-22 2013-06-04 James Ting-Ho Lo Cortex-like learning machine for temporal and hierarchical pattern recognition
WO2014144306A1 (en) * 2013-03-15 2014-09-18 Arizona Board Of Regents On Behalf Of Arizona State University Ensemble sparse models for image analysis and restoration
JP6292911B2 (ja) * 2014-02-07 2018-03-14 キヤノン株式会社 画像処理方法、画像処理プログラムおよび画像処理装置
US9684951B2 (en) * 2014-03-31 2017-06-20 Los Alamos National Security, Llc Efficient convolutional sparse coding
US9430697B1 (en) * 2015-07-03 2016-08-30 TCL Research America Inc. Method and system for face recognition using deep collaborative representation-based classification
WO2017176356A2 (en) * 2016-02-11 2017-10-12 William Marsh Rice University Partitioned machine learning architecture
JP6470209B2 (ja) 2016-03-08 2019-02-13 株式会社東芝 サーバ、システム及び探索方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3166020A1 (en) * 2015-11-06 2017-05-10 Thomson Licensing Method and apparatus for image classification based on dictionary learning

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
岡谷 貴之 外1名: "「ディープラーニング」", 情報処理学会研究報告 2013 FEBRUARY [CD−ROM], JPN6018014848, 15 February 2013 (2013-02-15), pages pp.1−17 *
日野 英逸 外1名: "「スパース表現の数理とその応用」", 情報処理学会研究報告 2012 OCTOBER[CD−ROM], JPN6018014849, 15 October 2012 (2012-10-15), pages pp.1−10 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101988028B1 (ko) * 2018-09-04 2019-06-11 넷마블 주식회사 서버 및 이의 동작 방법
JP2020173701A (ja) * 2019-04-12 2020-10-22 株式会社Ihi 形状生成装置および形状生成方法
JP7346885B2 (ja) 2019-04-12 2023-09-20 株式会社Ihi 形状生成装置および形状生成方法

Also Published As

Publication number Publication date
US11521110B2 (en) 2022-12-06
US20190156248A1 (en) 2019-05-23
JP2019095935A (ja) 2019-06-20

Similar Documents

Publication Publication Date Title
JP6381768B1 (ja) 学習装置、学習方法、学習プログラムおよび動作プログラム
US11699095B2 (en) Cross-domain recommender systems using domain separation networks and autoencoders
JP2019008742A (ja) 学習装置、生成装置、学習方法、生成方法、学習プログラム、および生成プログラム
CN110751188B (zh) 基于多标记学习的用户标签预测方法、系统及存储介质
CN117836765A (zh) 基于多模态超图的点击预测
JP6975610B2 (ja) 学習装置および学習方法
JP7058556B2 (ja) 判定装置、判定方法、および判定プログラム
JP6568175B2 (ja) 学習装置、生成装置、分類装置、学習方法、学習プログラム、および動作プログラム
KR102371487B1 (ko) 명목형 데이터를 포함하는 데이터를 기반으로 하는 학습 방법 및 장치
Jenny Li et al. Evaluating deep learning biases based on grey-box testing results
CN110851580B (zh) 一种基于结构化用户属性描述的个性化任务型对话系统
JP6964481B2 (ja) 学習装置、プログラムおよび学習方法
KR20220018633A (ko) 이미지 검색 방법 및 장치
US20240037335A1 (en) Methods, systems, and media for bi-modal generation of natural languages and neural architectures
JP6910873B2 (ja) 特定装置および特定方法
JP6680655B2 (ja) 学習装置および学習方法
JP2019021218A (ja) 学習装置、プログラムパラメータ、学習方法およびモデル
JP6979899B2 (ja) 生成装置、学習装置、生成方法、学習方法、生成プログラム、及び学習プログラム
JP6963988B2 (ja) 提供装置、提供方法および提供プログラム
JP7268069B2 (ja) 学習装置、学習方法、学習プログラム、評価装置、評価方法、および評価プログラム
JP7054645B2 (ja) 生成装置、生成方法、生成プログラムおよびプログラムパラメータ
JP2020004054A (ja) 出力装置、出力方法および出力プログラム
JP2019211977A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
WO2024034196A1 (ja) 学習済モデル選択方法、学習済モデル選択装置および学習済モデル選択プログラム
CN117520665B (zh) 一种基于生成对抗网络的社交推荐方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180118

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180118

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180627

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180731

R150 Certificate of patent or registration of utility model

Ref document number: 6381768

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250