【文献】
芦原佑太,佐藤聡,栗原聡,DeepLearningにおける中間層の情報表現を利用した,物体の外観変化を予測する転移学習モデル,情報処理学会研究報告,日本,情報処理学会,2016年02月24日,Vol.2016-ICS-182 No.1,1-8,URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=157634&file_id=1&file_no=1
(58)【調査した分野】(Int.Cl.,DB名)
前記変換手段は、前記第1のデータにおける前記対象の態様と、前記第2のデータにおける前記対象の態様と、の差異に応じて異なる関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
請求項1に記載の学習装置。
前記第1のデータはSAR(Synthetic Aperture Radar)によるセンシングデータから生成される画像であり、前記態様の差異はSARによるセンシング時の条件に起因する差異である、
請求項1から3のいずれかに記載の学習装置。
前記第1のデータにおける前記対象の態様と、前記第2のデータにおける前記対象の態様と、の差異に応じて異なる関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
請求項7に記載の学習方法。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。
【0017】
<<第1の実施形態>>
まず、本発明の第1の実施形態について説明する。
【0018】
<構成>
図2は、第1の実施形態に係る学習装置11の構成を示すブロック図である。
【0019】
学習装置11は、データ取得部111と、エンコーダ112と、変換部113と、デコーダ114と、パラメータ更新部115と、出力部116と、パラメータ記憶部119と、を備える。
【0020】
データ取得部111と、エンコーダ112と、変換部113と、デコーダ114と、パラメータ更新部115と、出力部116と、は、例えば、プログラムを実行する1つまたは複数のCPU(Central Processing Unit)により実現される。
【0021】
パラメータ記憶部119は、例えば、メモリである。パラメータ記憶部119は、ハードディスク等の補助記憶装置でもよい。別の実施形態では、パラメータ記憶部119は学習装置11の外部にあり、有線または無線により学習装置11と通信可能であるように構成されていてもよい。パラメータ記憶部119は、エンコーダ112が行う変換において用いられるパラメータと、デコーダ114が行う変換において用いられるパラメータと、を記憶する。
【0022】
なお、学習装置11は、パラメータ記憶部119とは別に、データを一時的又は非一時的に記憶する記憶装置を備えていてもよい。
【0023】
===データ取得部111===
データ取得部111は、学習装置11が使用するデータを取得する。学習装置11が使用するデータは、入力データ、正解データ、および、入力データと正解データとの関係を示す差異情報である。
【0024】
入力データは、学習装置11による学習の対象が記録されたデータである。理解を容易にするため、本実施形態の説明では、入力データの一例として、光学画像を想定する。光学画像以外の入力データの例は、「補足」の項目で説明する。
【0025】
入力データが光学画像である場合、入力データは、対象(例えば、物体および人物等)が写った画像である。入力データは、例えば、画像の各画素の画素値を成分とするベクトルである。縦28画素、横28画素のグレースケールの画像を入力データとする場合、入力データの成分の数は、28×28=784である。
【0026】
画像のサイズはどのようなサイズでもよい。画素値は、0から255の整数値でも、0か1かのバイナリの値でも、浮動小数点数でもよい。色の種類は1つでも、2つ以上でもよい。色の種類が複数種類である場合は、その種類の数に比例して、入力データの成分数は増加する。入力データの例として、RGB画像、マルチスペクトルの画像、ハイパースペクトルの画像等が挙げられる。
【0027】
データ取得部111は、入力データを、例えば、学習装置11の内部または外部にある記憶装置から受け取ることにより、取得する。学習装置11が、カメラ等、入力データを取得可能なデバイスを含み、データ取得部111はそのデバイスから入力データを受け取ってもよい。
【0028】
正解データは、学習装置11による学習、具体的には、後述するパラメータ更新部115によるパラメータの値の更新において、使用されるデータである。
【0029】
正解データは、入力データにより示される対象が記録されたデータである。少なくとも一つの正解データは、入力データにより示される対象が、入力データにおける態様とは異なる態様で記録された、データである。入力データおよび正解データが画像である場合、態様は「写り方」または「見え方」と言い換えられてもよい。画像における態様の例としては、向き、アングル、姿勢、大きさ、歪み方、色合い、鮮明さ、等が挙げられる。入力データと正解データとの間で異なり得る態様は、予め定義される。つまり、学習装置11は、少なくとも1つの特定の態様が異なる、入力データと正解データとのセットを扱う。なお、学習装置11は、入力データを、正解データの一つとして扱ってもよい。
【0030】
データ取得部111は、正解データを、例えば、学習装置11の内部または外部にある記憶装置から受け取ることにより、取得する。学習装置11が、カメラ等、正解データを取得可能なデバイスを含み、データ取得部111はそのデバイスから正解データを受け取ってもよい。
【0031】
あるいは、データ取得部111は、入力データを加工することにより、正解データを生成してもよい。例えば、対象の回転角度を変化される加工や、色合いまたは鮮明さを変化させる既知の技術を用いれば、データ取得部111は、入力データの加工により正解データを生成可能である。
【0032】
差異情報は、入力データと正解データとの関係を示す情報である。具体的には、差異情報は、入力データにより示される対象の態様と、正解データにより示される対象の態様と、の間の差異を示す。差異情報は、例えば、差異があるかないか、または差異がどの程度あるか、を示す、パラメータで表されてもよい。
【0033】
簡単な例として、入力データが、椅子が写る画像であり、正解データが、その椅子が入力データにおける向きとは異なる向きで撮影された画像であるとする。入力データおよび正解データのセットの例は、
図1Aの画像と
図1Bの画像とのセット、または
図1Aの画像と
図1Cの画像とのセット等である。
図1Aの画像と
図1Bの画像との関係を示す差異情報の例は、回転の角度を示す値(「+60(度)」等)である。
図1Aの画像と
図1Cの画像との関係を示す差異情報の例は、方位角の変化を示す値(「−20(度)」等)である。
【0034】
入力データが光学画像である場合は、差異情報が示す差異の例には、例えば、入力データと比較しての、画像の表示面に垂直な方向を軸とした回転の角度、アングル(撮像を行うデバイスに対する対象の向き)の違い、明度の上がり具合(または下がり具合)、コントラストの違い、ノイズ(雨および霧等の存在、もしくは解像度の低さに由来するノイズ)の多さの違い、および、障害物または付属物または装飾物の有無の違い、等が含まれる。対象が髪および旗等、風になびく物である場合は、風の強さを示す情報が差異情報であってもよい。また、以上に挙げた例と強い関係のあるパラメータが、差異情報として採用されてもよい。入力データと正解データとが別々に取得される場合は、採用される差異情報が示す対象となる態様は、入力データの加工によって変化を表現できる態様である必要はない。
【0035】
差異情報は、定量的なパラメータであってもよいし、複数の段階を持つパラメータでもよい。一例として、差異情報が雨の強さを示すパラメータである場合、「降っていない」、「弱い」、「やや強い」、「強い」の4種類の値で表されてもよい。差異情報は、二つの値(たとえば「有」と「無」)のみをとるパラメータでもよい。
【0036】
データ取得部111は、差異情報を、例えば、学習装置11の内部または外部にある記憶装置から受け取ることにより、取得する。データ取得部111は、入力データと正解データの関係を把握している、人、または装置から、差異情報の入力を受け付け、入力された差異情報を取得してもよい。データ取得部111は、差異情報を、入力データと正解データとの比較により差異を特定することで、取得してもよい。
【0037】
===エンコーダ112===
エンコーダ112は、入力データから、潜在変数の値の組を導出する。エンコーダ112は、例えば、ニューラルネットワークを使用して、入力データをニューラルネットワークの入力層に入力し、出力としてn個の値を導出する。nは、ニューラルネットワークの出力層のユニット数である。このn個の値の組を、本開示では潜在変数の値の組、または潜在変数ベクトルと呼ぶ。本実施形態では「ベクトル」という語を用いるが、潜在変数ベクトルは、複数の値の1次元的な配列に限られない。出力する値の数は1個であってもよい。あるいは、潜在変数ベクトルは2次元以上の配列であってもよい。潜在変数ベクトルは、配列の形式以外の形式で学習装置11において保持されてもよい。なお、ニューラルネットワークにより潜在変数ベクトルを導出することは、符号化(エンコード)とも呼ばれる。
【0038】
エンコーダ112が使用するニューラルネットワークの構造は自由に設計され得る。例えば、層の数、各層の成分数、成分間の接続の仕方に、制限はない。一例として、エンコーダ112は、成分数が784である入力層と、成分数が512である中間層と、成分数が144である出力層と、から成る、畳み込みニューラルネットワークを使用してもよい。エンコーダ112が出力する値の個数(すなわち、潜在変数ベクトルの成分の数)は、典型的には、入力データにおける成分の数よりも少なくなるように構成される。ただし、エンコーダ112が出力する値の個数は、入力データにおける成分の数と同じか多くなるように構成されてもよい。
【0039】
また、エンコーダ112が使用するニューラルネットワークで使われる活性化関数はどのような活性化関数でもよい。活性化関数の例としては、恒等関数、シグモイド関数、ReLU(Rectified Linear Unit)関数、双曲線正接関数、等が挙げられる。
【0040】
エンコーダ112は、使用するニューラルネットワークにおけるパラメータ(典型的には、重みおよびバイアス)の値を、パラメータ記憶部119から読み出して、入力データの符号化を行う。
【0041】
===変換部113===
変換部113は、エンコーダ112により出力された潜在変数ベクトルを、別の潜在変数ベクトルへと変換する。変換部113が潜在変数ベクトルを変換することを、本開示では変数変換と称す。
【0042】
変換部113は、変換関数を用いて、潜在変数ベクトルを変換する。変換部113は、上述の差異情報に応じて異なる変換関数を用いる。
【0043】
例えば、変換部113は、差異情報に応じて異なり得る値をとる変換パラメータを用いた変換関数を用いる。変換部113は、差異情報に応じて変換パラメータを決定した後、決定した変換パラメータを用いた変換関数を用いて、潜在変数ベクトルを変換すればよい。
【0044】
変換関数の例として、潜在変数ベクトルの成分の配置を変更する関数が挙げられる。例えば、変換関数は、潜在変数ベクトルの成分の配置をシフトする関数である。シフトする量が、変換パラメータによって決められてもよい。なお、成分数がnであるベクトルの成分の配置をk個シフトする操作とは、ベクトルの1番目からn−k番目の成分をk+1番目からn番目に移動させ、n−k番目からn番目にあった成分を1番目からk番目までに移動させる操作である。
【0045】
具体的な例として、変換関数は、成分数が144である潜在変数ベクトルの成分の配置を、変換パラメータpの値に基づいてシフトする、関数であるとする。データ取得部111により取得される差異情報は、回転角度θであり、θは0以上360未満の整数のうち5の倍数の値をとるとする。このような場合、変換パラメータpとして、θを5で除した値が定義されてもよい。そうすると、pは0から71の範囲の整数値を取りうるパラメータである。そして、pの2倍の値が、潜在変数ベクトルの成分の配置をシフトさせる量に相当するよう、変換関数が定義されてよい。例えば、40度の回転に相当する変換パラメータpの値は8であり、潜在変数ベクトルの成分の配置を16個シフトすることに対応する。
【0046】
潜在変数ベクトルの成分の配置をシフトする変換関数は、例えば、シフトを表す変換行列の乗算として表現できる。潜在変数ベクトルをZ
0、潜在変数ベクトルの成分数をn、変換パラメータの値をk、シフトを表す変換行列をS
kとすると、S
kはn×nの行列であり、上記変換関数は次の式で表される。
F(k,Z
0)=S
k・Z
0
行列S
kは、
図3に示される行列である。すなわち、行列S
kは、1≦i≦n−krであるiについて、第i行、第kr+i列の数値が1であり、1≦j≦krであるjについて、第(n−kr+j)行、第j列の数値が1であり、それ以外の数値が0である行列である。ただし、krは、kがとりうる値の個数をN(k)としたとき、k×n/N(k)で求められる値である。
【0047】
変換部113による変換により、成分数がnである、新たな潜在変数ベクトルが生成される。
【0048】
変数変換のための関数や行列の作り方は、上記に限られない。例えば、変換部113は、上記の行列S
kの代わりに、行列S
kにガウシアンフィルタを適用することで生成される行列を用いてもよい。
【0049】
変数変換の種類は、上記に説明されたシフト操作に制限されない。例えば、変数変換は、差異情報が示す差異の大きさに応じて減算量が大きくなる、成分値の減算処理でもよい。差異情報が示す差異の大きさに応じた回数実行される、平滑化処理でもよい。変数変換は、所定の成分に対する演算であり、演算の内容または演算を受ける成分の数が、差異情報が示す差異の大きさに依存してもよい。
【0050】
変換部113が行う変数変換には、恒等変換が含まれていてもよい。特に、差異情報が差異が無いことを示す場合の変数変換は、恒等変換であってもよい。
【0051】
なお、入力データと正解データとの間で異なり得る態様の種類が2種類以上である場合、変換部113は、それぞれの態様に係る差異情報に基づき、それぞれ変数変換を行えばよい。一例として、差異情報が、三次元的な向きの変化を示す2つのパラメータ(α、β)で表される場合、変換部113は、潜在変数ベクトルに、αに依存する変換関数を適用した後、βに依存する変換関数を適用し、新たな潜在変数ベクトルを生成してもよい。また、αに依存する変換関数とβに依存する変換関数を並列で適用してもよい。あるいは、変換部113は、2種類以上の態様の差異のそれぞれの差異情報に基づき、1つの変換関数を決定し、その変換関数を用いて変数変換を実行してもよい。
【0052】
===デコーダ114===
デコーダ114は、変換部113による変換後の潜在変数ベクトルから、出力データを生成する。デコーダ114は、例えば、ニューラルネットワーク(エンコーダ112が使用するニューラルネットワークとは異なる)を使用して、潜在変数ベクトルをニューラルネットワークの入力層に入力し、出力としてm個の成分からなる出力データを生成する。mは、デコーダ114が使用するニューラルネットワークの出力層のユニット数である。このmは、正解データの成分数と同じ値に設定される。入力データと正解データとが同じ形式で表現されるデータである場合、mは、入力データの成分数、すなわちエンコーダ112の入力層のユニット数に、一致する。ニューラルネットワークにより潜在変数ベクトルから出力データを生成することは、復号(デコード)とも呼ばれる。
【0053】
デコーダ114が使用するニューラルネットワークの構造は自由に設計され得る。たとえば、層の数、(多層ニューラルネットワークである場合は)中間層の成分数、成分間の接続の仕方に、制限はない。一例として、デコーダ114は、成分数が144である入力層と、成分数が512である中間層と、成分数が784である出力層と、から成る、ニューラルネットワークを使用してもよい。
【0054】
また、デコーダ114が使用するニューラルネットワークで使われる活性化関数はどのような活性化関数でもよい。活性化関数の例としては、恒等関数、シグモイド関数、ReLU関数、双曲線正接関数、等が挙げられる。
【0055】
デコーダ114は、使用するニューラルネットワークにおけるパラメータ(典型的には、重みおよびバイアス)の値を、パラメータ記憶部119から読み出して、潜在変数ベクトルの復号を行う。
【0056】
===パラメータ更新部115===
パラメータ更新部115は、デコーダ114により生成された出力データと、データ取得部111により取得された正解データと、の比較に基づき、エンコーダ112およびデコーダ114に用いられるニューラルネットワークのパラメータの値を更新する。
【0057】
パラメータの値の更新の手順の具体例を示す。まず、パラメータ更新部115は、1組以上の、正解データと出力データとのセットについて、正解データに対する出力データの誤差を算出する。パラメータ更新部115は、誤差を求めるための誤差関数として、たとえば平均二乗誤差を用いてもよい。そして、パラメータ更新部115は、算出された誤差がより小さくなるように、新たなパラメータの値を決定する。新たなパラメータの値を決定するための手法は、一般的なオートエンコーダにおいて採用される、パラメータの値の最適化の方法として既知である方法が、用いられればよい。一例として、パラメータ更新部115は、誤差逆伝搬法を用いて勾配を計算し、Stochastic Gradient Decent(SGD)を用いてパラメータの値を決定してもよい。他に採用され得る手法として、「RMSprop」、「Adagrad」、「Adadelta」、「Adam」等が挙げられる。
【0058】
そして、パラメータ更新部115は、決定した新たなパラメータの値を、パラメータ記憶部119に記録する。以降、エンコーダ112およびデコーダ114は新たなパラメータの値を使用する。以上が更新の具体的手順である。
【0059】
なお、パラメータ更新部115が更新する対象のパラメータは、エンコーダ112が使用するニューラルネットワークの重みおよびバイアス、ならびにデコーダ114が使用するニューラルネットワークの重みおよびバイアスである。変数変換に使用される変換パラメータは、パラメータ更新部115が更新する対象のパラメータに含まれない。
【0060】
なお、パラメータ更新部115は、所定の回数だけ、パラメータの値の更新を繰り返し行ってもよい。所定の回数は、例えば、学習装置11のユーザから入力インタフェースを介して所定の回数を示す数値の入力を受け取った値に決定されてもよい。
【0061】
パラメータ更新部115が誤差を求めるために使用する誤差関数は、自由に設計され得る。パラメータ更新部115は、VAE(Variational AutoEncoder)で使用される誤差関数のように、潜在変数ベクトルの平均と分散の値を考慮した誤差関数を使用してもよい。
【0062】
===出力部116===
出力部116は、更新されたパラメータの値の情報を、出力する。例えば、出力部116は、パラメータ更新部115が繰り返しパラメータの値を更新することにより最適化されたパラメータの値を、出力する。出力部116による出力の出力先の例には、表示装置、記憶装置、および通信ネットワークが含まれる。出力部116が情報を表示装置に出力する場合、出力部116は、表示装置が該情報を表示できるよう、情報を変換してもよい。なお、上記した表示装置および記憶装置は、学習装置11の外部のデバイスであってもよいし、学習装置11に含まれる構成要素であってもよい。
【0063】
<処理の概要>
学習装置11による処理の概要を説明する。
図4は、学習装置11による、出力データの生成の過程を説明する概念図である。
【0064】
まず、m個のデータ値(x
1、x
2、・・・、x
m)を成分として持つ入力データから、エンコーダ112のニューラルネットワークにより、n個の成分(z
1、z
2、・・・、z
n)を持つ潜在変数ベクトルが導出される。この潜在変数ベクトルは、変換部113による変数変換により、n個の成分(z’
1、z’
2、・・・、z’n)を持つ別の潜在変数ベクトルに変換される。この別の潜在変数ベクトルから、デコーダ114のニューラルネットワークにより、m個の成分(y’
1、y’
2、・・・、y’
m)を持つ出力データが生成される。
【0065】
こうして生成される出力データと、入力データに対して対象の態様が異なる関係である、m個の成分(y
1、y
2、・・・、y
m)を持つ正解データと、のセットが、訓練用データセットとして、学習に用いられる。
【0066】
<動作の具体例>
学習装置11の動作の具体例について説明する。
図5は、学習装置11の動作の流れを示すフローチャートである。なお、各処理は、各処理がプログラムを実行するデバイスによって実行される場合においては、プログラムの中の命令の順序に従って実行されればよい。各処理が別個のデバイスによって実行される場合においては、処理を完了したデバイスが次の処理を実行するデバイスに通知を行うことで、次の処理が実行されればよい。なお、処理を行う各部は、例えば、めいめいの処理によって生成したデータを、学習装置11に含まれる記憶領域または外部の記憶装置に記録する。また、処理を行う各部は、めいめいの処理に必要なデータを、そのデータを生成した部から受け取るか、上記の学習装置11に含まれる記憶領域または外部の記憶装置から読み出せばよい。
【0067】
まず、データ取得部111が、入力データと、正解データと、差異情報とを取得する(ステップS11)。ただし、各種のデータが取得されるタイミングは同時でなくてもよい。データが取得されるタイミングは、そのデータが使用されるステップの処理が行われる前であればいつでもよい。
【0068】
次に、エンコーダ112が、入力データを潜在変数ベクトルに変換する(ステップS12)。
【0069】
次に、変換部113が、差異情報が示す差異に応じた変換パラメータの値を用いて、潜在変数ベクトルを変換する(ステップS13)。
【0070】
次に、デコーダ114が、変換後の潜在変数ベクトルを出力データに変換する(ステップS14)。
【0071】
次に、パラメータ更新部115が、エンコーダ112およびデコーダ114に用いられるパラメータの値の更新を終了するかを判定する。
【0072】
更新を終了する場合とは、例えば、パラメータ更新部115がパラメータの値の更新を行った回数が、所定の回数に達した場合である。
【0073】
別の例として、更新を終了する場合とは、正解データに対する出力データの誤差が十分に小さい場合でもよい。パラメータ更新部115は、例えば、次のような場合に、誤差が十分に小さいと判定し、更新を終了すると判定してもよい。
・誤差を示す値が所定の基準値を下回った場合
・誤差をこれ以上小さくすることができない場合、または、
・誤差の減少量(すなわち、最後に行った更新の直前における誤差と更新後の誤差との差)もしくは減少率(すなわち、現在の誤差に対する減少量の比)が所定の基準値を下回った場合。
【0074】
あるいは、パラメータ更新部115は、各パラメータの値の絶対変化量(すなわち、更新する場合のパラメータの値の変化量の絶対値)の平均値もしくは最大値、または変化率(すなわち、現在の値に対する絶対変化量の比)の平均値もしくは最大値が、所定の基準値を下回った場合に、更新を終了すると判定してもよい。
【0075】
更新を終了しない場合は(ステップS16においてNO)、パラメータ更新部115はパラメータの値を更新し(ステップS17)、学習装置11は再びステップS12からステップS14の処理を行う。2回目以降のステップS12およびステップS14の処理では、エンコーダ112およびデコーダ114は、更新されたパラメータの値を用いて、処理を行う。パラメータ更新部115は、ステップS14の処理により新たに生成された出力データを、再び正解データと比較し(ステップS15)、パラメータの値の更新を終了するかを判定する。このように、学習装置11は、パラメータの更新を終了すると判定されるまで、パラメータの値の更新と、更新されたパラメータの値を用いた出力データの生成と、を繰り返す。このような繰り返しを通してパラメータの値を更新する処理が、学習である。パラメータ更新部115は、いわば、出力データと正解データとの組を訓練用データセットとした学習により、パラメータの値を更新する。更新を繰り返し行うことでパラメータの値をより好適な値にすることを、最適化とも呼ぶ。
【0076】
パラメータの値の更新を終了すると判定されたら(ステップS16においてYES)、出力部116はそのパラメータの値を出力する(ステップS18)。
【0077】
<効果>
第1の実施形態に係る学習装置11によれば、同一の対象について、異なる態様の該対象の特徴をそれぞれ表現し、かつ互いに関連性を持つ潜在変数ベクトルを、導出できる。
【0078】
上述した具体例に基づくと、学習装置11が奏する効果の例は次の通りである。
【0079】
学習が完了した後の学習装置11のエンコーダ112、変換部113およびデコーダ114は、変換パラメータに応じて、異なる態様の対象を示す、複数の画像を生成することができる。したがって、エンコーダ112が出力する潜在変数ベクトルは、画像における対象の態様が変化した場合でも、変換によってその変化を表現できる。つまり、エンコーダ112と変換部113との組み合わせによれば、異なる態様の対象の特徴をそれぞれ表現し、かつ互いに関連性を持つ潜在変数ベクトルを、生成できる。
【0080】
態様の差異が定量的に表され得る差異である場合、変換部113およびデコーダ114の組は、正解データにない態様が記録されたデータを生成できる可能性がある。例えば、変数導出の学習において、ある態様(「態様SA」とする)の対象が記録されたデータおよび別の態様(「態様SC」とする)の対象が記録されたデータが、それぞれ正解データとして用いられたとする。変換部113は、態様SAから態様SCへの変化に相当する変換パラメータの値の半値を用いた変数変換により、態様SAの対象を表現する潜在変数ベクトルから、態様SAと態様SCの間の態様に相当する態様(「態様SB」とする)の対象を表現する潜在変数ベクトルを生成可能である。デコーダ114がこの潜在変数ベクトルから出力データを生成することにより、態様SBの対象が記録された出力データが生成される可能性がある。
【0081】
態様の差異が定量的に表されない差異である場合であっても、変換部113およびデコーダ114の組は、正解データにない態様が記録されたデータを生成できる場合がある。例えば、変数導出の学習において、態様SAのある対象(「対象TA」とする)が記録されたデータ、態様SBの対象TAが記録されたデータ、および態様SAの別の対象(「対象TB」とする)が記録されたデータが、それぞれ正解データとして用いられたとする。この学習により、変換部113およびデコーダ114の組は、潜在変数ベクトルから、態様SAの対象TAが記録されたデータおよび態様SBの対象TAが記録されたデータを生成できる。したがって、変換部113は、態様SAの対象TBが表現された潜在変数ベクトルを変換することにより、態様SBの対象TBを表現する潜在変数ベクトルを導出することができると考えられる。そして、この変換後の潜在変数ベクトルは、デコードにより態様SBの対象TBが記録されたデータを生成することも可能であると期待される。
【0082】
態様の差異が定量的に表され得る差異である場合、エンコーダ112は、入力データにない態様の対象を表現する潜在変数ベクトルを導出できる可能性がある。例えば、変数導出の学習において、態様SAの対象が記録されたデータおよび態様SCの対象が記録されたデータがそれぞれ入力データとして用いられたとする。パラメータの値が最適化された後のエンコーダ112に、態様SAと態様SCの間の態様に相当する態様SBの対象が記録されたデータを入力すると、導出される潜在変数ベクトルは、態様SAの対象を表現する潜在変数ベクトルから変数変換を行うことにより生成可能な潜在変数ベクトルに類似する(または一致する)可能性がある。すなわち、エンコーダ112は、学習に使用されていない態様の対象から、その態様とは別の態様を表現する潜在変数ベクトルに変換することが可能な潜在変数ベクトルを導出できる可能性がある。
【0083】
態様の差異が定量的に表されない差異である場合であっても、エンコーダ112は、入力データにない態様の対象を表現する潜在変数ベクトルを導出できる場合がある。例えば、変数導出の学習において、態様SAの対象TAが記録されたデータ、態様SBの対象TAが記録されたデータ、および態様SAの対象TBが記録されたデータが、それぞれ入力データとして用いられたとする。この学習により、エンコーダ112は、態様SBの対象TAを表現する潜在変数ベクトルを導出可能になる。したがって、エンコーダ112は、態様SBの対象TBが記録されたデータから、態様SBの対象TBを表現する潜在変数ベクトルを導出することもできると考えられる。そして、この導出される潜在変数ベクトルから、変数変換により態様SAの対象TBを表現する潜在変数ベクトルへと変換することも可能であると期待される。
【0084】
以上に述べた通り、変数導出の学習により、エンコーダ112は、異なる態様の同一の対象に対して、変換パラメータを用いた変換により互いに変換可能な潜在変数ベクトルを導出できる可能性がある。
【0085】
上記のような性質の潜在変数ベクトルがエンコーダ112によって導出可能となることにより、例えば次のような効果が奏される。
【0086】
例えば、エンコーダ112のニューラルネットワークを用いて対象を識別するための分類器を構築した場合、学習用データになかった態様をとる対象を、正しく識別できる可能性が、通常のニューラルネットワークを用いた分類器に比べて高い。
【0087】
また、例えば、変換パラメータの値を任意の値に設定して、エンコーダ112、変換部113、およびデコーダ114を用いて入力データから出力データを生成することにより、入力データにおける態様と異なる態様で写る対象の画像が取得できる。変換パラメータの値を様々に設定して入力データから出力データを生成することにより、様々な態様の対象が写る画像を生成することができる。変換パラメータの値は、差異情報に関連づけられているので、任意の態様の対象の画像を生成することも可能である。例えば、回転角度と潜在変数ベクトルのシフトとを関連づけるように定義された例では、学習の結果、潜在変数ベクトルをシフトする量を適切に設定することにより、対象が望みの角度で写る画像を生成することができる。
【0088】
そして、デコーダ114によって生成された様々な画像は、潜在変数ベクトルを入力としてクラス分類を行う分類器の学習における、学習用データとして使用できる。このような学習の結果、分類器は、学習装置10による学習において使用された学習用データにはなかった態様をとる対象を正しく分類できる可能性がある。
【0089】
[補足]
学習装置11は、対象の態様が異なる2つ以上のデータとそれらのデータの間の差異を示す情報(差異情報)を取得可能であれば、どのようなデータ、対象、および態様の差異を扱ってもよい。
【0090】
入力データは光学画像に限られない。入力データは、態様が変化し得る対象を記録し、ニューラルネットワークによって変換され得る変数で表すことが可能なデータであれば、何でもよい。
【0091】
入力データの一例は、SARデータである。SARデータは、SAR(Synthetic Aperture Radar;合成開口レーダ)によって取得されるセンシングデータである。SARデータにより記録される対象の例は、地形、構造物、車両、航空機、および船舶である。変化し得る態様の例は、SARデータの取得時の方位角、および俯角である。つまり、SARによるセンシング時の条件に起因する差異が、学習装置11が扱う差異に採用されてもよい。
【0092】
例えば、入力データは、センシングデバイスによって取得されるセンシングデータの、時系列データでもよい。
【0093】
例えば、入力データは、音データでもよい。音データは、音が記録されたデータである。入力データが音データである場合は、入力データは、具体的には、時間ごとの振幅、または時間窓ごとのスペクトログラムの強度等により表されればよい。
【0094】
入力データが音データである場合、対象の例は、人の声、発話内容、音響イベント、および音楽、等である。音響イベントとは、悲鳴やガラスの破砕音等、何らかのイベントの発生を示す音のことである。入力データが音データである場合、異なり得る態様の例は、周波数(音の高さ)、録音場所、エコーの程度、音色、データの再生速度(テンポ)、ノイズの程度、音を発生した物の種類、音を発生した人物、またはその人物の感情の状態、等である。
【0095】
<<第2の実施形態>>
本発明の一実施形態に係る学習装置10について説明する。
図6は、学習装置10の構成を示すブロック図である。学習装置10は、データ取得部101と、エンコーダ102と、変換部103と、デコーダ104と、パラメータ更新部105と、を備える。
【0096】
データ取得部101は、対象がそれぞれ相異なる態様で記録された、第1のデータと第2のデータと、を取得する。
【0097】
エンコーダ102は、第1のデータから特徴量を導出する。特徴量は、言い換えれば、データに含まれる対象の特徴を示す値の組である。さらに別の言葉では、特徴量は、対象を表す情報、データの表現、等と呼ばれてもよい。特徴量を導出することは、「特徴量を抽出する」と呼ばれることもある。上記各実施形態における、「潜在変数ベクトル」は、本実施形態の「特徴量」に相当する。特徴量が学習装置10において保持される態様は問わない。例えば、特徴量は、配列の形式で保持されていてもよいし、名前が付与された変数の値としてそれぞれ保持されていてもよい。
【0098】
以下、エンコーダ102が第1のデータから導出した特徴量を「第1の特徴量」と呼ぶ。
【0099】
変換部103は、エンコーダ102により導出された第1の特徴量を、第2の特徴量に変換する。変換部103は、第1のデータにおける前記対象の態様と、前記第2のデータにおける前記対象の態様と、の差異に応じて異なる関数を用いて、第1の特徴量を変換してもよい。なお、第2の特徴量の成分の数は、第1の特徴量の成分の数と、同じでもよいし、異なっていてもよい。
【0100】
デコーダ104は、第2の特徴量から第3のデータを生成する。第3のデータは、第2のデータと同じ形式で表現されるデータである。
【0101】
パラメータ更新部105は、第2のデータと第3のデータとの比較に基づき、エンコーダ102による特徴量の導出(第1の特徴量の導出を含む)に使用されるパラメータの値と、デコーダ104による第3のデータの生成に使用されるパラメータの値と、を更新する。具体的には、パラメータ更新部105は、第3のデータが第2のデータになるべく類似するように生成されるように、パラメータの値を更新する。パラメータの値を更新するとは、例えば、パラメータを記憶する記憶部に、パラメータの新たな値を記録することである。パラメータ更新部105は、パラメータの新たな値を、学習装置10の外部の装置(例えば、記憶装置、表示装置またはニューラルネットワークを使用する情報処理装置)に、出力してもよい。
【0102】
なお、パラメータ更新部105は、変換部103が行う変換に使用されるパラメータを、更新の対象としない。
【0103】
図7のフローチャートを参照しながら、学習装置10による処理の流れの例を説明する。まず、データ取得部101が、対象がそれぞれ相異なる態様で記録された、第1のデータと第2のデータと、を取得する(ステップS101)。次に、エンコーダ102が、第1のデータから第1の特徴量を導出する(ステップS102)。次に、変換部103が、エンコーダ102により導出された第1の特徴量を、第2の特徴量に変換する(ステップS103)。次に、デコーダ104が、第2の特徴量から第3のデータを生成する(ステップS104)。そして、パラメータ更新部105は、第2のデータと第3のデータとの比較に基づき、エンコーダ102による特徴量の導出に使用されるパラメータの値と、デコーダ104による第3のデータの生成に使用されるパラメータの値と、を更新する(ステップS105)。
【0104】
学習装置10は、ステップS102からステップS105の処理を、デコーダ104が第3のデータにより類似する第2のデータを生成できるように繰り返し行うことで、第1のデータからエンコーダ102により導出される第1の特徴量からでも、第2のデータに類似するデータを生成できるようになる。したがって、エンコーダ102が導出する第1の特徴量が第1のデータにおいて第1の態様をとる対象の特徴を表現する一方、変換部103により第1の特徴量を変換した結果生成される第2の特徴量は、第2のデータにおいて第2の態様をとる対象の特徴を表現する。
【0105】
つまり、本実施形態の学習装置10により更新されたパラメータの値を用いたエンコーダ102と、変換部103とによって、同一の対象について、異なる態様の該対象の特徴をそれぞれ表現し、かつ互いに関連性を持つ特徴量を、導出可能である。上記エンコーダ102と変換部103とを組み合わせることで、上記のような性質を持つ特徴量を導出可能な特徴導出器を生成できる。
【0106】
<実施形態の各部を実現するハードウェアの構成>
以上で説明された本発明の各実施形態において、各装置の各構成要素を示すブロックは、機能単位で示されている。しかし、構成要素を示すブロックは、各構成要素が別個のモジュールにより構成されることを必ずしも意味していない。
【0107】
各構成要素の処理は、たとえば、コンピュータシステムが、コンピュータ読み取り可能な記憶媒体により記憶された、その処理をコンピュータシステムに実行させるプログラムを、読み出し、実行することによって、実現されてもよい。「コンピュータ読み取り可能な記憶媒体」は、たとえば、光ディスク、磁気ディスク、光磁気ディスク、および不揮発性半導体メモリ等の可搬媒体、ならびに、コンピュータシステムに内蔵されるROM(Read Only Memory)およびハードディスク等の記憶装置である。「コンピュータ読み取り可能な記憶媒体」は、コンピュータシステム内部の揮発性メモリのようにプログラムを一時的に保持可能なもの、および、ネットワークや電話回線等の通信回線のように、プログラムを伝送するものも含む。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、更に前述した機能をコンピュータシステムにすでに記憶されているプログラムとの組み合わせで実現できるものであってもよい。
【0108】
「コンピュータシステム」とは、一例として、
図8に示されるようなコンピュータ900を含むシステムである。コンピュータ900は、以下のような構成を含む。
・1つまたは複数のCPU901
・ROM902
・RAM(Random Access Memory)903
・RAM903へロードされるプログラム904Aおよび記憶情報904B
・プログラム904Aおよび記憶情報904Bを格納する記憶装置905
・記憶媒体906の読み書きを行うドライブ装置907
・通信ネットワーク909と接続する通信インタフェース908
・データの入出力を行う入出力インタフェース910
・各構成要素を接続するバス911
【0109】
たとえば、各実施形態における各装置の各構成要素は、その構成要素の機能を実現するプログラム904AをCPU901がRAM903にロードして実行することで実現される。各装置の各構成要素の機能を実現するプログラム904Aは、例えば、予め、記憶装置905やROM902に格納される。そして、必要に応じてCPU901がプログラム904Aを読み出す。記憶装置905は、たとえば、ハードディスクである。プログラム904Aは、通信ネットワーク909を介してCPU901に供給されてもよいし、予め記憶媒体906に格納されており、ドライブ装置907に読み出され、CPU901に供給されてもよい。なお、記憶媒体906は、たとえば、光ディスク、磁気ディスク、光磁気ディスク、および不揮発性半導体メモリ等の、可搬媒体である。
【0110】
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個のコンピュータ900とプログラムとの可能な組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータ900とプログラムとの可能な組み合わせにより実現されてもよい。
【0111】
また、各装置の各構成要素の一部または全部は、その他の汎用または専用の回路、コンピュータ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【0112】
各装置の各構成要素の一部または全部が複数のコンピュータや回路等により実現される場合には、複数のコンピュータや回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、コンピュータや回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0113】
上記実施形態の一部または全部は以下の付記のようにも記載され得るが、以下には限られない。
【0114】
<<付記>>
[付記1]
対象がそれぞれ相異なる態様で記録された、第1のデータと第2のデータと、を取得する取得手段と、
前記第1のデータから第1の特徴量を導出するエンコード手段と、
前記第1の特徴量を第2の特徴量に変換する変換手段と、
前記第2の特徴量から第3のデータを生成するデコード手段と、
前記第2のデータと前記第3のデータとの比較に基づき、前記第1の特徴量の導出に使用されるパラメータの値と、前記第3のデータの生成に使用されるパラメータの値と、を更新するパラメータ更新手段と、
を備える学習装置。
[付記2]
前記変換手段は、前記第1のデータにおける前記対象の態様と、前記第2のデータにおける前記対象の態様と、の差異に応じて異なる関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
付記1に記載の学習装置。
[付記3]
前記変換手段は、前記差異を定量的に示すパラメータを含む前記関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
付記2に記載の学習装置。
[付記4]
前記第1のデータは画像であり、前記対象は物体または人物である、
付記1から3のいずれかに記載の学習装置。
[付記5]
前記第1のデータはSAR(Synthetic Aperture Radar)によるセンシングデータから生成される画像であり、前記態様の差異はSARによるセンシング時の条件に起因する差異である、
付記1から3のいずれかに記載の学習装置。
[付記6]
前記エンコード手段は、前記パラメータ更新手段によって更新された前記パラメータの値を使用して、前記第1のデータから特徴量を新たに導出し、
前記変換手段は、前記新たに導出された特徴量を、前記第1の特徴量を変換したときとは異なる関数により第3の特徴量を新たに生成し、
前記デコード手段は、前記第3の特徴量から新たなデータを生成する、
付記2または3に記載の学習装置。
[付記7]
対象がそれぞれ相異なる態様で記録された、第1のデータと第2のデータと、を取得し、
前記第1のデータから第1の特徴量を導出し、
前記第1の特徴量を第2の特徴量に変換し、
前記第2の特徴量から第3のデータを生成し、
前記第2のデータと前記第3のデータとの比較に基づき、前記第1の特徴量の導出に使用されるパラメータの値と、前記第3のデータの生成に使用されるパラメータの値と、を更新する、
学習方法。
[付記8]
前記第1のデータにおける前記対象の態様と、前記第2のデータにおける前記対象の態様と、の差異に応じて異なる関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
付記7に記載の学習方法。
[付記9]
前記差異を定量的に示すパラメータを含む前記関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
付記8に記載の学習方法。
[付記10]
前記第1のデータは画像であり、前記対象は物体または人物である、
付記7から9のいずれかに記載の学習方法。
[付記11]
前記第1のデータはSAR(Synthetic Aperture Radar)によるセンシングデータから生成される画像であり、前記態様の差異はSARによるセンシング時の条件に起因する差異である、
付記7から9のいずれかに記載の学習方法。
[付記12]
更新された前記パラメータの値を使用して、前記第1のデータから特徴量を新たに導出し、
前記新たに導出された特徴量を、前記第1の特徴量を変換したときとは異なる関数により第3の特徴量を新たに生成し、
前記第3の特徴量から新たなデータを生成する、
付記8または9に記載の学習方法。
[付記13]
対象がそれぞれ相異なる態様で記録された、第1のデータと第2のデータと、を取得する取得処理と、
前記第1のデータから第1の特徴量を導出するエンコード処理と、
前記第1の特徴量を第2の特徴量に変換する変換処理と、
前記第2の特徴量から第3のデータを生成するデコード処理と、
前記第2のデータと前記第3のデータとの比較に基づき、前記第1の特徴量の導出に使用されるパラメータの値と、前記第3のデータの生成に使用されるパラメータの値と、を更新するパラメータ更新処理と、
をコンピュータに実行させるプログラムを記録した、コンピュータ読み取り可能な記憶媒体。
[付記14]
前記変換処理は、前記第1のデータにおける前記対象の態様と、前記第2のデータにおける前記対象の態様と、の差異に応じて異なる関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
付記13に記載の記憶媒体。
[付記15]
前記変換処理は、前記差異を定量的に示すパラメータを含む前記関数を用いて、前記第1の特徴量を前記第2の特徴量に変換する、
付記14に記載の記憶媒体。
[付記16]
前記第1のデータは画像であり、前記対象は物体または人物である、
付記13から15のいずれかに記載の記憶媒体。
[付記17]
前記第1のデータはSAR(Synthetic Aperture Radar)によるセンシングデータから生成される画像であり、前記態様の差異はSARによるセンシング時の条件に起因する差異である、
付記13から15のいずれかに記載の記憶媒体。
[付記18]
前記エンコード処理は、前記パラメータ更新処理によって更新された前記パラメータの値を使用して、前記第1のデータから特徴量を新たに導出し、
前記変換処理は、前記新たに導出された特徴量を、前記第1の特徴量を変換したときとは異なる関数により第3の特徴量を新たに生成し、
前記デコード処理は、前記第3の特徴量から新たなデータを生成する、
付記14または15に記載の記憶媒体。
【0115】
本願発明は以上に説明した実施形態に限定されるものではない。以上に説明した実施形態の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。