JP7475192B2 - 識別器学習装置及び識別器学習方法 - Google Patents

識別器学習装置及び識別器学習方法 Download PDF

Info

Publication number
JP7475192B2
JP7475192B2 JP2020080736A JP2020080736A JP7475192B2 JP 7475192 B2 JP7475192 B2 JP 7475192B2 JP 2020080736 A JP2020080736 A JP 2020080736A JP 2020080736 A JP2020080736 A JP 2020080736A JP 7475192 B2 JP7475192 B2 JP 7475192B2
Authority
JP
Japan
Prior art keywords
classifier
data
learning
feature
training
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
JP2020080736A
Other languages
English (en)
Other versions
JP2021174471A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020080736A priority Critical patent/JP7475192B2/ja
Publication of JP2021174471A publication Critical patent/JP2021174471A/ja
Application granted granted Critical
Publication of JP7475192B2 publication Critical patent/JP7475192B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Description

本発明は、識別器学習装置及び識別器学習に関する。
データを分類する識別器は、様々な用途に活用されている。例えば、顔画像が誰の顔かを識別器は、顔画像に基づき本人を認証することができ、近年急速に普及している。また、カメラ映像から歩行者、車、道路、標識などを識別器が識別して認識することで、AIが自動的に運転動作を行うことができる。このような画像認識技術は、予め大量の画像を用意して識別器を学習することで、未知の画像に対する識別が可能である。
しかしながら、識別器が高精度な識別を行うためには、識別器に入力され得る網羅的なパターンの画像が、学習画像に含まれている必要があった。例えば、顔認証を行う識別器に対しては、横を向いている顔、影ができている顔、加齢でしわが増えている顔、メガネやマスクを着用している顔、といった様々な画像が入力されることが予想されるため、そのような画像を予め大量に識別器が学習しておかないと、高い精度で認証することはできない。また、このような大量の画像を収集するためには膨大なコストがかかる。
非特許文献1に記載の技術は、Deep neural networkによって画像を特徴ベクトルへ変換し、当該特徴ベクトルに対して誤差を付与し、当該誤差を学習する。特徴ベクトル上の誤差の方向は、顔が横を向く、影ができる、加齢するなどの意味に対応しているため、非特許文献1に記載の技術は、一枚の画像に誤差を付与して当該画像から複数のパターンの画像を生成する。
特許文献1に記載の技術は、画像をニューラルネットへ入力して特徴を抽出し、その特徴からニューラルネットを用いて識別しにくい敵対的特徴を生成し、前記敵対的特徴を用いてニューラルネットワークを学習する。これにより、特許文献1に記載の技術は、特徴に対して一定範囲の摂動を加えて生成できる特徴の中で、最も識別しにくい特徴を自動的に生成し、効率的な学習が行う。
国際公開第2018/167900号
Yulin Wang,Xuran Pan,Shiji Song Hong Zhang,Gao Huang,Cheng Wu,"Implicit Semantic Data Augmentation for Deep Networks",Thirty-third Conference on Neural Information Processing Systems,2019
非特許文献1に記載の技術は、一枚の画像から複数のパターンの画像を生成することができるが、そのパターンは無数に存在し、網羅的に識別器の学習を行うためには膨大な計算量が必要となる。従って、非特許文献1に記載の技術は、現実的な計算時間の範囲内で学習を行う場合、考慮できるパターンが限定されて大きな精度向上は見込まれない。
また、特許文献1に記載の技術は、特徴空間上の一定範囲の摂動を設ける。この特徴空間は、識別対象の全てのクラスで共通の空間であるため、特許文献1に記載の技術において、あるデータから得られた特徴に対して摂動を大きくすると別のクラスに近い特徴が出現し、識別器の精度劣化の原因になる。つまり、特許文献1に記載の技術においては、特徴に対する摂動の範囲は十分に小さい必要がある。
例えば、特許文献1に記載の技術が、顔認証をする識別器を学習する場合、ある人間の顔画像から得られた特徴に対して摂動を大きくとると他人の顔を示す特徴まで範囲が拡大してしまうため、摂動を限定して顔の微細な変化に対するロバスト性の向上を行うことになる。しかしながら、顔画像はその個人性を保ったまま、横を向いたり、顔に影ができたり、加齢でしわが増えたり、メガネやマスクを掛けたりというように、大きく変動することがあるが、特許文献1に記載の技術は、これらのような大きな変動に対応する学習を行うことは困難である。
そこで本発明の一態様は、現実的な計算時間で高精度な識別器を学習することを目的とする。
上記課題を解決するために本発明の一態様は以下の構成を採用する。識別器を学習する識別器学習装置は、プロセッサとメモリとを有し、前記メモリは、前記識別器と、学習対象データと、前記学習対象データのラベルと、を保持し、前記プロセッサは、前記学習対象データを、前記識別器による識別対象の属性を示す第1特徴ベクトルと、前記識別器による識別対象の属性とは異なる属性を示す第2特徴ベクトルと、を含む複数の特徴ベクトルへ変換し、前記学習対象データを前記識別器に入力して前記識別器からの出力を算出し、前記出力と前記ラベルとに基づいて、前記第2特徴ベクトルに摂動を加え、前記摂動を加えた第2特徴ベクトルを用いて前記識別器を学習する。
本発明の一態様によれば、現実的な計算時間で高精度な識別器を学習することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
実施例1における学習端末及び識別端末の構成例を示すブロック図である。 実施例1における特徴分解器学習処理と識別器学習処理の一例を示すフローチャートである。 実施例1における学習端末による特徴分解器学習処理の詳細を示すフローチャートである。 実施例1における特徴分解器学習データ格納部及び識別器学習データ格納部に格納されている学習データのデータ構造の一例である。 実施例1における識別端末による識別処理の一例を示すフローチャートである。 実施例1における学習端末及び識別端末それぞれを構成する計算機のハードウェア構成例を示すブロック図である。 実施例2における特徴分解器学習処理と識別器学習処理の一例を示すフローチャートである。
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
本実施例の学習端末は、特徴分解器学習データを用いて特徴分解器としてエンコーダとデコーダを学習し、その後識別器学習データ中のデータをエンコーダで特徴ベクトルに分解し、当該特徴ベクトルに対する摂動を求めて付与し、当該特徴ベクトルをデコーダでデータに再構成し、当該再構成データを用いて識別器を学習し、当該識別器を用いてデータを識別する。
学習データのうち識別平面に近いデータは識別平面の決定に大きく寄与するため学習において重要なデータであり、逆に識別平面から遠い画像は識別平面の決定に寄与しないため、学習において重要性が低い。このため、本実施例の学習端末は、1つのデータから生成可能な複数のデータのうち、識別平面に近く識別器の学習にとって重要なデータを効率的に生成して、現実的な計算時間の範囲で識別器の精度を大きく向上させることができる。
図1は、学習端末及び識別端末の構成例を示すブロック図である。学習端末1000及び識別端末1100は、例えば、インターネット等のネットワークを介して接続されていることが望ましい。また、学習端末1000と識別端末1100とが一体化されていてもよい。学習端末1000は、例えば、それぞれ機能部である、エンコード部1010、デコード部1020、ロス算出部1030、パラメータ更新部1040及び学習判定部1050を含む。
また、学習端末1000は、例えば、それぞれデータを格納する格納部である、特徴分解器学習データ格納部1090、識別器学習データ格納部1091、特徴分解器パラメータ格納部1092、及び識別器パラメータ格納部1093、を含む。以降では、画像データに対する学習及び識別が行われる例を述べるが、画像データに限定されず、音声データ、センサデータ、及び動画像データなどのあらゆるデータに、本実施例の学習及び識別が適用可能である。
エンコード部1010は、画像が入力されるとけ、入力された画像を単一又は複数の特徴ベクトルへ変換する。エンコード部1010は特徴分解器の構成要素であると捉えることもできる。デコード部1020は、単一又は複数の特徴ベクトルを入力されると、入力された特徴ベクトルから画像を再構成する。デコード部1020は特徴分解器の構成要素であると捉えることもできる。
ロス算出部1030は、特徴分解器及び識別器に対するロスを算出する。パラメータ更新部1040は、特徴分解器パラメータ格納部1092、識別器パラメータ格納部1093に格納されたパラメータ、並びに特徴分解器が分解した特徴ベクトルをロスに基づき更新する。学習判定部1050は、特徴分解器及び識別器の学習が完了したかを判定する。
特徴分解器学習データ格納部1090は、特徴分解器の学習に用いられる画像データを格納する。識別器学習データ格納部1091は、識別器の学習に用いられる画像データを格納する。なお、識別器の学習に用いられるデータは、特徴分解器の学習に用いられるデータと同じでもあってもよいし、異なっていてもよい。
特徴分解器パラメータ格納部1092は、学習した特徴分解器(エンコーダとデコーダ)のパラメータを格納する。識別器パラメータ格納部1093は、学習した識別器のパラメータを格納する。
識別端末1100は、例えば、それぞれ機能部である、データ取得部1110、データ生成部1120、データ照合部1130、及び結果出力部1140を含み、さらにデータを格納する格納部である登録データ格納部1190を含む。
データ取得部1110は、識別対象の画像を、例えばカメラやネットワークから取得する。データ生成部1120は、画像を識別器へ入力することで特徴ベクトルを生成する。データ照合部1130は、データ生成部1120が生成した複数の画像の特徴ベクトルから、画像間の類似度または距離を算出する。
結果出力部1140は、データ照合部1130が算出した類似度又は距離に基づく識別結果を出力する。登録データ格納部1190は、データ生成部1120が生成した特徴ベクトルを登録データとして格納する。
図6は、学習端末1000及び識別端末1100それぞれを構成する計算機のハードウェア構成例を示すブロック図である。計算機6000は、CPU(Central Processing Unit)6010、メモリ6020、補助記憶装置6030、入力装置6040、出力装置6050、及び通信装置6060を含む。
CPU6010は、プロセッサを含み、メモリ6020に格納されたプログラムを実行する。メモリ6020は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU6010が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置6030は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU6010が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置6030から読み出されて、メモリ6020にロードされて、CPU6010によって実行される。
入力装置6040は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。また、入力装置6040は、画像を撮像するためのカメラ、音声を取得するためのマイク等の各種センサを含んでもよい。出力装置6050は、プリンタなどの表示装置が接続され、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。通信装置6060は、所定のプロトコルに従って、他の装置との通信を制御する装置である。また、通信装置6060は、例えば、USB等のシリアルインターフェースを含んでもよい。
CPU6010が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して計算機6000に提供され、非一時的記憶媒体である不揮発性の補助記憶装置6030に格納される。このため、計算機6000は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
学習端末1000及び識別端末1100はいずれも、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
学習端末1000が有する機能部は、学習端末1000を構成する計算機6000のCPU6010に含まれ、識別端末1100が有する機能部は、識別端末1100を構成する計算機6000のCPU6010に含まれる。
例えば、学習端末1000を構成する計算機6000のCPU6010は、当該計算機6000のメモリ6020にロードされたエンコードプログラムに従って動作することで、エンコード部1010として機能し、当該計算機6000のメモリ6020にロードされたデコードプログラムに従って動作することで、デコード部1020として機能する。学習端末1000を構成する計算機6000のCPU6010に含まれる他の機能部についても、プログラムと機能部の関係は同様である。識別端末1100を構成する計算機6000のCPU6010に含まれる後述する機能部についても、プログラムと機能部の関係は同様である。
なお、学習端末1000を構成する計算機6000のCPU6010に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。識別端末1100を構成する計算機6000のCPU6010に含まれる機能部についても同様である。
学習端末1000が有する格納部は、学習端末1000を構成する計算機6000の補助記憶装置6030が提供する記憶領域によって実現され、識別端末1100が有する格納部は、識別端末1100を構成する計算機6000の補助記憶装置6030が提供する記憶領域によって実現される。
なお、補助記憶装置6030に格納されている一部又は全部の情報は、メモリ6020に格納されていてもよいし、計算機6000に接続されているデータベースに格納されていてもよい。
なお、本実施形態において、学習端末1000及び識別端末1100が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。本実施形態ではテーブル形式で情報が表現されているが、例えば、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
以下、本実施例における処理手順を、図2~図5を参照して説明する。図2は、特徴分解器学習処理と識別器学習処理の一例を示すフローチャートである。図2の処理は学習端末1000による処理であり、後述するステップS2010が特徴分解器学習処理であり、ステップS2020~S2300が識別器学習処理である。
まず、学習端末1000は、予め収集され、特徴分解器学習データ格納部1090に格納されている特徴分解器学習データ200を読み込み、当該特徴分解器学習データ200に基づき画像を単一又は複数の特徴ベクトルへ分解するエンコーダ210と、特徴ベクトルから画像を再構成するデコーダ220と、を学習する(S2010)。特徴分解器学習データ200の仕様は、図4を参照して後述する。ステップS2010の詳細は、図3を参照して後述する。
エンコーダ210が画像を複数の特徴ベクトルへ分解する場合は、Disentanglementと呼ばれる技術を適用できる。Disentanglementは、入力データを意味の異なる複数の特徴ベクトルへ分解することができる方式である。
例えば、エンコーダ210に顔画像を入力してDisentanglementが適用された場合は、顔画像を、個人性を示す特徴ベクトルと個人性以外の属性を示す特徴ベクトルに分解することができる。
個人性を示す特徴ベクトルは、特定の個人と紐づいているため、特定の人物が写っている複数の画像がエンコーダ210に入力されると類似する特徴ベクトルが得られる。これに対して属性を示す特徴ベクトルは、顔が横を向いていたり、顔に影が映っていたり、髪型が変わったり、サングラスや眼鏡をかけていたり、といった、個人性以外の属性を示す特徴ベクトルである。
このとき、パラメータ更新部1040が属性を示す特徴ベクトルに摂動を加えて、個人性を示す特徴ベクトルは不変(特徴ベクトルに加える摂動よりも微小な摂動を加えてもよい)とすると、個人性を保ったまま様々なパターンの画像を生成することができる。また、個人性と属性とで特徴空間を分離しているため、パラメータ更新部1040が属性を示す特徴ベクトルに大きな摂動を加えたとしても、個人性は変わらないため、大きな摂動を加えることが可能となる。
なお、摂動の加え方はこれに限定されるものではなく、パラメータ更新部1040は、単一の特徴ベクトルに対して摂動を加えてもよいし、Disentanglementにより特徴ベクトルを分解した上で、個人性を示す特徴ベクトルにも摂動を加えてもよい(但し、特徴ベクトルに加える摂動よりも微小な摂動を加えることが望ましい)。また、エンコード部1010が入力データを分解する際に、属性を示す特徴ベクトルを複数定義してもよく(つまり属性を示す複数の特徴ベクトルが生成される)、複数の特徴ベクトルそれぞれに対して摂動を加えてもよい。
なお、本実施形態では人間が誰であるかを識別する識別器について主に説明しているため「個人性」という単語を用いているが、人間以外の生物や物体の識別に対しても本実施形態がそのまま適用できることは明らかである。この場合、入力データは、「個体性」を示す特徴ベクトルと、個体性以外の属性を示す特徴ベクトルと、に分解される。
さらに、本実施形態は、生物や物体に対する識別だけでなく、属性の識別(例えば、入力データとして人間の顔画像が入力されたときに、当該顔画像の表情(例えば、笑っているのか、怒っているのか、又は悲しんでいるのか等)や、当該人間の性別や年齢等を識別する等)に対してもそのまま適用可能であることは明らかである。この場合、入力データは、識別対象の属性を示す特徴ベクトルと、識別対象以外の属性を示す特徴ベクトルと、に分解される。
次に、識別器学習処理について説明する。パラメータ更新部1040は、識別器280のパラメータを初期化する(S2210)。識別器280は、画像が入力されると、画像に対する識別結果を出力し、例えば、Deep Neural Network、サポートベクターマシン、又は線形識別関数など、一般に機械学習に用いられる識別器が適用可能である。
エンコード部1010は、識別器学習データ格納部1091に格納された識別器学習データ250から、画像情報を取得する(S2220)。識別器学習データ250のデータ構成例については、図4を参照して後述する。ここでは、エンコード部1010は、識別器学習データ250に含まれる画像のうち、1枚又は複数枚の画像を学習対象として抽出して、その後の処理を行う例(Deep learningによって学習が行われる場合においては、mini-batchと呼ばれる学習データのサブセットに対応する)を説明する。
エンコード部1010は、ステップS2220で取得した画像に対して、エンコーダ210を適用して、単一又は複数の特徴ベクトルを生成する(S2230)。デコード部1020は、ステップS2230で得られた特徴ベクトルに対してデコーダ220を適用して、特徴ベクトルから画像を再構成する(S2240)。
ロス算出部1030は、ステップS2240でデコードされた画像を識別器280へ入力して、ロスを算出する(S2250)。ロス算出部1030は、例えば、ロスとして、Deep Neural Networkを最適化する際のロス関数を出力する。例えば、画像分類に対するロスとして一般的に用いられるSoftmax関数とCross Entropy関数の組み合わせの出力はロス関数の出力の一例である。ただし、ロスはこの組み合わせに限定されるものではなく、サポートベクターマシンにおけるマージンの値や、線形識別関数の二乗誤差など、様々な識別器に対応する誤差の値が適用できる。
また、ステップS2250でロス算出部1030が求めるロスは、一般に識別器の学習で用いられるロスとは異なっていてもよい。例えば、ステップS2010の特徴分解器学習処理でロス算出部1030は特徴ベクトルの分布関数を求めておき、当該分布関数を考慮した識別精度の期待値を求めて、当該期待値をロスとしてもよい。
さらに、ロス算出部1030は、1枚の画像に対して複数のロスを求めることもできる。例えば、ロス算出部1030は、識別器にある人物の画像を入力したと仮定した場合に、本人を誤って他人と判定してしまう確率と、他人を誤って本人と判定してしまう確率をそれぞれ求めて、これらの確率それぞれをロスとすることもできる。
また、ロス算出部1030は、予め特徴ベクトルに与える摂動の方向を複数定義しておき、当該複数の方向それぞれに対してロスを求めてもよい。特徴空間上の方向は画像の意味に対応するため、例えば第一のベクトルは加齢、第二のベクトルはメガネの着脱、等というように方向ごとに意味が異なる特徴ベクトルを生成して学習に用いてもよい。
続いて、パラメータ更新部1040は、ステップS2250で算出したロスの値に基づき、特徴ベクトルに対する勾配を求める(S2260)。パラメータ更新部1040は、例えば、Deep Neural Networkで一般的に用いられるバックプロパゲーションを使って勾配を求めることができるが、これに限定されない。
一般にはDeep Neural Networkではロスの値が小さくなるような勾配を求めて最適化が行われるが、ここでは逆に、パラメータ更新部1040はロスの値を大きくする勾配を求める。これにより、識別器280にとって識別しにくい、すなわち識別平面に近い画像を生成することができる。
パラメータ更新部1040は、ステップS2260で得られた勾配の値に基づき、特徴ベクトルに対して摂動を加える(S2270)。パラメータ更新部1040は、勾配の値に学習率を考慮した方向へ、特徴ベクトルを更新することで摂動を加える。
なお、前述したようにステップS2250のロス算出処理、ステップS2260の勾配算出処理、及びステップS2270の摂動付与処理は、属性を示す特徴ベクトル(識別対象以外の属性を示す特徴ベクトル)にのみ行われ、個人性を示す特徴ベクトル(識別対象の属性を示す特徴ベクトル)には行われないようにしてもよい。また、これらの処理が、個人性を示す特徴ベクトル(識別対象の属性を示す特徴ベクトル)には行われるようにしてもよいが、属性を示す特徴ベクトル(識別対象以外の属性を示す特徴ベクトル)と比較して、識別器280のロスが大きくならないように(付与される摂動が大きくならないように)することが望ましい。
学習判定部1050は、ステップS2270で更新された特徴ベクトルに対する摂動が十分収束したかどうかを判定する(S2280)。学習判定部1050は、勾配や摂動の量に応じて適応的に判定を行ってもよいし(例えば勾配や摂動の変化量が所定の関数が示す増加量を下回る、又は所定値を下回る等)、予め定められた回数のステップS2270の処理が行われたかを判定してもよいし。
学習判定部1050は、摂動が収束していないと判定した場合には(S2280:継続)、ステップS2240に戻る。学習判定部1050が、摂動が収束したと判定した場合には(S2280:収束)、パラメータ更新部1040は、ステップS2240で再構成された画像、又はステップS2280の後改めて再構成された画像を入力データとして、識別器の学習を行う(S2290)。パラメータ更新部1040は、識別器の種類に応じて適切な最適化を行うことで識別器の学習を行う。
例えば、Deep Neural Networkが用いられている場合、パラメータ更新部1040は、ロスの値を算出してそれを最小化するようなバックプロパゲーションを行うことで学習を行う。また、SVM(Support Vector Machine)が用いられている場合、パラメータ更新部1040は、識別平面と、その周囲のサポートベクターと呼ばれるデータと、のマージンを最大化するパラメータを探索することで学習を行う。線形識別関数が用いられている場合、パラメータ更新部1040は、識別関数とデータとで定義される二乗誤差を最小化することで学習を行う。
なお、図2の例ではステップS2280において摂動が収束した後にステップS2290へ進んでいるが、ステップS2270の処理の後にステップS2290の処理を実施して、摂動を与えつつ識別器の学習を同時に行うこともできる。
続いて、学習判定部1050は、識別器の学習が終了したかを判定する(S2300)。学習判定部1050は、例えばステップS2290の処理を行った回数が所定以上であるか否か、ステップS2290における識別器のパラメータの更新量が所定値以下であるか等によって、識別器の学習が収束したかを判定する。
学習判定部1050は、識別器の学習が終了していないと判定した場合には(S2300:継続)、ステップS2220に戻る。学習判定部1050は、識別器の学習が終了したと判定した場合には(S2300:終了)、識別器学習処理を終了して、図2の処理が終了する。なお、ステップS2280における更新終了判定とステップS2300の学習終了判定と、の実施順序が入れ替わってもよい。
以上により、識別器の学習が完了する。本実施例では、学習端末1000は、特徴分解器学習処理において画像を特徴ベクトルへ分解するエンコーダ210を学習し、識別器学習処理において、特徴ベクトルに対して摂動を加えることで学習に寄与する画像を効率的に生成し、それを使って識別器280を学習する。これにより、非特許文献1に記載の技術のようにランダムに画像を生成して識別器を学習するよりも、効率的に識別器を学習し、現実的な計算量で高い精度を達成することができる。
なお、図2の処理で生成されたエンコーダ210、デコーダ220、及び識別器280は、学習端末1000を構成する計算機6000及び識別端末1100を構成する計算機6000それぞれのメモリ6020及び/又は補助記憶装置6030に格納されるとよい。
図3は、学習端末1000による特徴分解器学習処理の詳細を示すフローチャートである。まず、エンコード部1010は特徴分解器の構成要素であるエンコーダ210を初期化し、デコード部1020は特徴分解器の構成要素であるデコーダ220のパラメータを初期化する(S3010)。エンコーダ210とデコーダ220がDeep Neural Networkで構成される場合は、エンコード部1010及びデコード部1020は各層のパラメータに乱数を代入することでエンコーダ210及びデコーダ220を初期化することができる。また、予め別のデータで学習したパラメータが初期値として用いられることもできる。
エンコード部1010は、特徴分解器学習データ格納部1090に格納されている特徴分解器学習データ200から学習データを抽出する(S3020)。Deep learningが用いられる場合、エンコード部1010はmini-batchと呼ばれる学習データのサブセットを抽出する。
エンコード部1010は、エンコーダ210を用いて、学習データに含まれる画像を単一又は複数の特徴ベクトルに変換する(S3030)。デコード部1020は、デコーダ220を用いて、ステップS3030で変換された特徴ベクトルから画像を再構成する(S3040)。
ロス算出部1030は、ステップS3040で再構成された画像及びステップS3030で得られた特徴ベクトルに基づき、ロスを算出する(S3050)。ロス算出部1030は、例えば、エンコード前とデコード後の画像の誤差や、特徴ベクトルを使った画像分類の誤差や、特徴ベクトル間の相関などを用いて、ロスを算出する。
具体的には、例えば、ロス算出部1030は、第一の特徴ベクトルの画像分類誤差と第二の特徴ベクトルの画像分類誤差をロスに含めて、第一の特徴ベクトルの画像分類誤差を最小化して、第二の特徴ベクトルの画像分類誤差を最大化する場合は、第一の特徴ベクトルのみに個人性が含まれ、第二の特徴ベクトルに属性が含まれるようになる。
続いて、パラメータ更新部1040は、ロスが小さくなるようなパラメータの勾配を求めて、当該勾配に基づきパラメータを更新する(S3060)。学習判定部1050は、ステップS3050で算出されたロスやステップS3060におけるパラメータの更新量などに基づき、特徴分解器の学習が収束したかを判定する(S3070)。
学習判定部1050は、特徴分解器の学習が収束していないと判定した場合は(S3070:継続)、ステップS3020に戻る。学習判定部1050は、特徴分解器の学習が収束した場合は、特徴分解器学習処理を完了する。以上により、画像を特徴ベクトルに分解するエンコーダ210と、特徴ベクトルから画像を再構成するデコーダ220と、が得られる。
図4は、特徴分解器学習データ格納部1090及び識別器学習データ格納部1091に格納されている学習データのデータ構造の一例である。学習データ400は、学習画像410、ラベル420を含む。
学習画像410は、識別器280が識別する画像と同じ種類の画像を含んでおり、例えば識別器280に顔画像が入力されて、当該顔画像が誰の顔かを識別器280が識別するのであれば、様々な人の顔写真を含むとよい。また、例えば、識別器280に一般画像認識を行わせたいのであれば、学習画像410は、犬や猫、道路、標識等の識別対象の様々な画像を含むとよい。
ラベル420は、学習画像410に対する正解値であり、例えば識別器280が顔認証を行う場合には顔画像に対応する人を識別するIDである。また、例えば、識別器280が一般画像認識を行う場合には、ラベル420は、画像それぞれのクラスに割り当てられたIDである。
図5は、識別端末1100による識別処理の一例を示すフローチャートである。識別端末1100は、学習済みの識別器280を用いて登録処理(S5110~S5130)と識別処理(S5140~S5170)を行う。
図5では、例えば顔認証のように、識別端末1100が事前に登録処理を行った後に、識別処理において入力画像が登録データのどれに該当するかを識別する手順を示すが、例えば道路標識の認識のように、予め決められたクラスのどれに該当するかを識別する問題を識別端末1100が解決する場合であれば、登録処理(S5110~S5130)及び認証データ生成処理(S5150)は不要となり、識別端末1100は、ステップS5160において画像を識別器280へ直接入力すれば識別を行うことができる。
識別端末1100は、まず登録処理を行う。データ取得部1110は登録対象の画像を取得し(S5110)、データ生成部1120は取得した画像を識別器280へ入力することで、登録データを生成する(S5120)。識別器280が、登録対象の画像を特徴ベクトルへ変換することにより、登録データ510が生成される。データ生成部1120は、ステップS5120で生成した登録データ510を、登録データ格納部1190へ格納する(S5130)。
以上により、登録処理が完了する。学習端末1000及び識別端末1100が例えば顔認証システムに適用される場合、登録処理は識別端末1100が登録者から顔画像を取得して、取得した顔画像を特徴ベクトルへ変換して登録する処理に相当する。
次に、識別端末1100は識別処理を行う。データ取得部1110は、識別対象の画像を取得し(S5140)、データ生成部1120は識別対象の画像を識別器280に入力することで、認証データを生成する(S5150)。
データ照合部1130は、ステップS5150で生成された認証データと、ステップS5130で生成された登録データ510と、を照合することで、識別結果を得る(S5160)。データ照合部1130は、例えば、登録データ510と認証データの特徴ベクトル間の距離又は類似度を算出することでステップS5130の照合処理を実施することできるが、それに限定されず、登録データ510と認証データの間の類似性を評価するあらゆる手法が適用可能である。
また、識別端末1100は、予め定められたクラスの識別を行う場合には、識別器280から直接識別結果としてクラスを出力することができるため、登録データ510を使って照合をせずに識別器280の出力を直接識別結果とすることもできる。
結果出力部1140は、ステップS5160で得られた識別結果を出力する(S5170)。例えば、学習端末1000及び識別端末1100が顔認証システムに適用される場合であれば、結果出力部1140は、認証されたユーザを示すID及び氏名などの情報を出力する。また、例えば、学習端末1000及び識別端末1100が道路標識のような画像認識システムに適用される場合であれば、結果出力部1140は、画像が示す標識の種別を出力する。以上により、識別端末1100による登録処理と識別処理が完了する。
本実施例の学習端末1000は、実施例1における特徴分解器学習処理と識別器学習処理とを分けて行わず、同時に行うものである。実施例1の学習端末1000は、まず特徴分解器学習処理でエンコーダ210とデコーダ220を生成して、エンコーダ210及びデコーダ220を用いて識別器学習処理を行うことにより、識別精度の高い識別器280を生成することができる。
一方、学習端末1000が、特徴分解器学習データ200と識別器学習データ250として同じデータを用いる場合は、分解器学習処理と識別器学習処理とに重複する処理があるため、これらの処理における学習を同時に行うことで、処理を効率化することができる(計算量を低下させることができる)。以下、実施例1との相違点(図2との相違点)を説明し、実施例1と同様の構成及び処理については説明を省略する。
図7は、本実施例における特徴分解器学習処理と識別器学習処理の一例を示すフローチャートである。図7の手順では、図2の特徴分解器学習処理(S2010)は事前に行わない。まず、パラメータ更新部1040は、識別器280のパラメータだけではなく、エンコーダ210、及びデコーダ220のパラメータも初期化して、学習の準備をする(S7210)。
学習判定部1050が、摂動が収束したと判定した場合には(S2280:収束)、パラメータ更新部1040は、ステップS2290と同様に識別器280の最適化を行うが、識別器280に加えてエンコーダ210及びデコーダ220についても最適化を行う(S7290)。
これにより、学習端末1000は、識別器280と特徴分解器を同時に学習し、効率的に高精度な識別器280を生成することができる。ただし、図7の処理では、学習の序盤は、エンコーダ210及びデコーダ220が初期パラメータであり、入力画像がエンコーダ210に入力された出力された特徴ベクトルをデコーダ220に入力しても当該入力画像に近い画像が出力されないため、識別器280の学習を行っても意味のある学習が行えないおそれもある。
このため、学習端末1000は、学習の序盤(例えば、ロスがある程度収束するまで(例えば、ステップS3070における収束判定条件よりも緩い収束判定条件を用いて判定するとよい))は、実施例1ように特徴分解器のみを学習して識別器280に対するフィードバックを行わずに、デコーダ220で意味のある画像が出力されるようになってきてから、識別器280に対する学習に用いることで、さらに無駄な処理を省略することができる。
また、識別器280が特徴ベクトルを出力してその距離に応じて識別を行うタイプの識別器である場合は、エンコーダ210と識別器280は同じ挙動をするため共通化することができる。この場合、ステップS2230でエンコード部1010がエンコードする際に識別器280を使って特徴ベクトルを生成する。なお、この場合、ステップS2240のデコード部1020によるデコーダ220を用いた画像を再構成処理、ロス算出部1030はエンコーダ210から出力された特徴ベクトルを識別器280の出力とみなしてステップS2250におけるロス算出処理を実行することができる。
以上により、本実施例の学習端末1000は、特徴分解器と識別器280とを同時に学習することで、少ない計算量で学習を行うことができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
200 特徴分解器学習データ、210 エンコーダ、220 デコーダ、250 識別器学習データ、260 特徴ベクトル、280 識別器、1000 学習端末、1010 エンコード部、1020 デコード部、1030 ロス算出部、1040 パラメータ更新部、1050 学習判定部、1090 特徴分解器学習データ格納部、1091 識別器学習データ格納部、1092 特徴分解器パラメータ格納部、1093 識別器パラメータ格納部、1100 識別端末、1110 データ取得部、1120 データ生成部、1130 データ照合部、1140 結果出力部1140、1190 登録データ格納部、6000 計算機、6010 CPU(Central Processing Unit)、6020 メモリ、6030 補助記憶装置、6040 入力装置、6050 出力装置、6060 通信装置

Claims (9)

  1. 識別器を学習する識別器学習装置であって、
    プロセッサとメモリとを有し、
    前記メモリは、前記識別器と、学習対象データと、前記学習対象データのラベルと、を保持し、
    前記プロセッサは、
    前記学習対象データを、前記識別器による識別対象の属性を示す第1特徴ベクトルと、前記識別器による識別対象の属性とは異なる属性を示す第2特徴ベクトルと、を含む複数の特徴ベクトルへ変換し、
    前記学習対象データを前記識別器に入力して前記識別器からの出力を算出し、
    前記第1特徴ベクトル、又は前記出力と前記ラベルとに基づいて第1摂動を加えた前記第1特徴ベクトル、のいずれかと、
    前記出力と前記ラベルとに基づいて第2摂動を加えた前記第2特徴ベクトルと、を用いて前記識別器を学習し、
    前記第1摂動は前記第2摂動より小さい、識別器学習装置。
  2. 請求項1に記載の識別器学習装置であって、
    前記プロセッサは、
    前記出力と前記ラベルとに基づいて、前記識別器の誤差を算出し、
    前記第2特徴ベクトルに加える前記第2摂動を前記誤差が大きくなるように決定する、識別器学習装置。
  3. 請求項1に記載の識別器学習装置であって、
    前記プロセッサは、
    前記出力と前記ラベルとに基づいて、前記複数の特徴ベクトルそれぞれに異なる摂動を加え、
    前記摂動を加えた前記複数の特徴ベクトルを用いて前記識別器を学習する、識別器学習装置。
  4. 請求項1に記載の識別器学習装置であって、
    前記プロセッサは、
    前記識別器を用いて、前記複数の特徴ベクトルからデータを再構成し、
    前記再構成したデータを前記識別器に入力して得られる出力に基づいて、前記第2特徴ベクトルに加える前記第2摂動を決定する、識別器学習装置。
  5. 請求項1に記載の識別器学習装置であって、
    前記メモリは、前記学習対象データを前記複数の特徴ベクトルに変換するエンコーダを保持し、
    前記プロセッサは、
    前記学習対象データを、前記エンコーダに入力して前記複数の特徴ベクトルを生成し、
    前記複数の特徴ベクトルからデータを再構成し、
    前記再構成したデータと、前記ラベルと、に基づいて、前記エンコーダを学習する、識別器学習装置。
  6. 請求項1に記載の識別器学習装置であって、
    前記プロセッサは、前記学習対象データを、前記識別器に入力して前記複数の特徴ベクトルを生成する、識別器学習装置。
  7. 請求項1に記載の識別器学習装置であって、
    前記メモリは、前記学習対象データを前記複数の特徴ベクトルに変換するエンコーダを保持し、
    前記プロセッサは、前記出力と前記ラベルと、に基づいて、前記エンコーダを学習する、識別器学習装置。
  8. 請求項1に記載の識別器学習装置であって、
    前記識別器は、個体を示すデータが入力されると、個体の識別結果を出力し、
    前記第1特徴ベクトルは、個体を識別するための個体性を示し、
    前記第2特徴ベクトルは、前記個体性とは異なる属性を示す、識別器学習装置。
  9. 識別器を学習する識別器学習装置による識別器学習方法であって、
    前記識別器学習装置は、プロセッサとメモリとを有し、
    前記メモリは、前記識別器と、学習対象データと、前記学習対象データのラベルと、を保持し、
    前記識別器学習方法は、
    前記プロセッサが、前記学習対象データを、前記識別器による識別対象の属性を示す第1特徴ベクトルと、前記識別器による識別対象の属性とは異なる属性を示す第2特徴ベクトルと、を含む複数の特徴ベクトルへ変換し、
    前記プロセッサが、前記学習対象データを前記識別器に入力して前記識別器からの出力を算出し、
    前記プロセッサが、
    前記第1特徴ベクトル、又は前記出力と前記ラベルとに基づいて第1摂動を加えた前記第1特徴ベクトル、のいずれかと、
    前記出力と前記ラベルとに基づいて第2摂動を加えた前記第2特徴ベクトルと、を用いて前記識別器を学習し、
    前記第1摂動は前記第2摂動より小さい、識別器学習方法。
JP2020080736A 2020-04-30 2020-04-30 識別器学習装置及び識別器学習方法 Active JP7475192B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020080736A JP7475192B2 (ja) 2020-04-30 2020-04-30 識別器学習装置及び識別器学習方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020080736A JP7475192B2 (ja) 2020-04-30 2020-04-30 識別器学習装置及び識別器学習方法

Publications (2)

Publication Number Publication Date
JP2021174471A JP2021174471A (ja) 2021-11-01
JP7475192B2 true JP7475192B2 (ja) 2024-04-26

Family

ID=78279756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020080736A Active JP7475192B2 (ja) 2020-04-30 2020-04-30 識別器学習装置及び識別器学習方法

Country Status (1)

Country Link
JP (1) JP7475192B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023176256A (ja) * 2022-05-31 2023-12-13 楽天グループ株式会社 画像からデータを予測する方法、コンピュータシステム、及びコンピュータ可読媒体

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018167900A1 (ja) 2017-03-16 2018-09-20 日本電気株式会社 ニューラルネットワーク学習装置、方法、およびプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018167900A1 (ja) 2017-03-16 2018-09-20 日本電気株式会社 ニューラルネットワーク学習装置、方法、およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吉岡 拓也、他3名,DNN音響モデルにおける特徴量抽出の諸相,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2015年07月09日,第115巻、第146号,第61-65頁

Also Published As

Publication number Publication date
JP2021174471A (ja) 2021-11-01

Similar Documents

Publication Publication Date Title
Christlein et al. Writer identification using GMM supervectors and exemplar-SVMs
Mathieu et al. Disentangling factors of variation in deep representation using adversarial training
Wang et al. MoFAP: A multi-level representation for action recognition
Ghifary et al. Scatter component analysis: A unified framework for domain adaptation and domain generalization
Duan et al. Context-aware local binary feature learning for face recognition
Dash et al. A review of generative adversarial networks (GANs) and its applications in a wide variety of disciplines: from medical to remote sensing
Shojaeilangari et al. Robust representation and recognition of facial emotions using extreme sparse learning
Sikka et al. Multiple kernel learning for emotion recognition in the wild
Pontes et al. A flexible hierarchical approach for facial age estimation based on multiple features
Majumdar et al. Face verification via class sparsity based supervised encoding
Liu et al. Feature-level frankenstein: Eliminating variations for discriminative recognition
Nalla et al. Iris classification based on sparse representations using on-line dictionary learning for large-scale de-duplication applications
CN108898181B (zh) 一种图像分类模型的处理方法、装置及存储介质
Amer et al. Deep multimodal fusion: A hybrid approach
Huang et al. Hybrid Euclidean-and-Riemannian metric learning for image set classification
Hu et al. Bin ratio-based histogram distances and their application to image classification
Kotani et al. Generating handwriting via decoupled style descriptors
Kohút et al. TS-Net: OCR trained to switch between text transcription styles
Yousaf et al. A robust and efficient convolutional deep learning framework for age‐invariant face recognition
JP7475192B2 (ja) 識別器学習装置及び識別器学習方法
Okokpujie et al. Development of an adaptive trait-aging invariant face recognition system using convolutional neural networks
Chew et al. Facial expression recognition via enhanced stress convolution neural network for stress detection
Zhao et al. Multi-view dimensionality reduction via subspace structure agreement
Abdallah et al. Facial-expression recognition based on a low-dimensional temporal feature space
Dong et al. A supervised dictionary learning and discriminative weighting model for action recognition

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240209

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: 20240402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240416

R150 Certificate of patent or registration of utility model

Ref document number: 7475192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150