JP2018026122A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2018026122A
JP2018026122A JP2017146800A JP2017146800A JP2018026122A JP 2018026122 A JP2018026122 A JP 2018026122A JP 2017146800 A JP2017146800 A JP 2017146800A JP 2017146800 A JP2017146800 A JP 2017146800A JP 2018026122 A JP2018026122 A JP 2018026122A
Authority
JP
Japan
Prior art keywords
learning
data
recognizer
information processing
error
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.)
Granted
Application number
JP2017146800A
Other languages
English (en)
Other versions
JP7007829B2 (ja
JP2018026122A5 (ja
Inventor
侑輝 斎藤
Yuki Saito
侑輝 斎藤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of JP2018026122A publication Critical patent/JP2018026122A/ja
Publication of JP2018026122A5 publication Critical patent/JP2018026122A5/ja
Application granted granted Critical
Publication of JP7007829B2 publication Critical patent/JP7007829B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • 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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19147Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/1916Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques

Landscapes

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

Abstract

【課題】認識システムのデータ認識精度を向上させる。【解決手段】ハッシュ関数更新部133は、まず学習データをNNに入力して得られた出力データを第1の識別器セットに入力することにより得られる識別結果の誤差を判定する。そして、NN更新部126は、この識別結果の誤差をNNに逆伝播することにより、NNのパラメータを更新する。さらに、ハッシュ関数更新部133は、学習データをパラメータ更新後のNNに入力して得られた出力データを第2の識別器セットに入力することにより得られる識別結果の誤差を判定する。そして、NN更新部126は、この識別結果の誤差をNNに逆伝播することにより、NNのパラメータを再度更新する。ハッシュ関数選択部132は、複数の識別器から第1の識別器セットと第2の識別器セットとを選択する。【選択図】図6

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
映像画像等のデータから、例えば物体及びその状態を認識するために、学習データを用いて認識システムの学習を行い、学習後の認識システムを用いて入力データを判定する装置や方法が知られている。このような方法の一つとして、Neural Network(NN)を用いる方法が知られている。例えば、非特許文献1は、NNを用いて画像中に含まれる物体の種類を自動的に認識する方法を開示している。非特許文献1では、NNとしてConvolutional Neural Network(CNN)が用いられている。CNNは、局所的な畳み込み処理を行うConvolutional Layerを持つという特徴がある。また、非特許文献1、特許文献1及び特許文献2は、NNを構成するニューロンを確率的にOFFにする処理を行うことで、過学習が抑制され、NNの汎化能力が向上することを示している。
また、近年、NNの出力を他の識別器や確率モデル等への入力として用いる技術が盛んに研究・開発されている。例えば、非特許文献2は、CNNと、CNNの出力を受け取るLinear Support Vector Machine(Linear SVM)と、の学習を同時に行う方法を開示している。非特許文献2では、SVMの学習誤差をCNNの学習に利用するという特徴がある。非特許文献3は、CNNと、CNNの出力を受け取るStructured SVMと、の学習を同時に行う方法を開示している。非特許文献4は、CNNと、CNNの出力に基づいてクラスタリングを行う分類器と、の学習を同時に行う方法を開示している。
米国特許出願公開第2014/0180986号明細書 国際公開第2014/105866号
A. Krizhevsky et al. "ImageNet Classification with Deep Convolutional Neural Networks", Advances in Neural Information Processing Systems 25 (NIPS), 2012. Y. Tang. "Deep Learning using Linear Support Vector Machines", ICML 2013 Challenges in Representation Learning, 2013. S. Zhang et al. "Deep neural support vector machines for speech recognition", 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2015. J. Xie et al. "Unsupervised deep embedding for clustering analysis", arXiv:1511.06335, 2015, http://lib-arxiv-008.serverfarm.cornell.edu/abs/1511.06335
より高精度で入力データの認識を行うために、認識能力がさらに向上した認識システムが望まれる。
本発明は、認識システムのデータ認識精度を向上させることを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。すなわち、
学習データを認識器に入力して出力データを得る処理手段と、
前記出力データを複数の識別器に入力することにより得られる前記学習データの識別結果の誤差を判定する判定手段と、
前記識別結果の誤差に基づいて前記認識器の学習処理を行う第1の学習手段と、
を備えることを特徴とする。
認識システムのデータ認識精度を向上させる。
実施形態1に係る異常検知システムの構成例を示す図。 実施形態1に係る異常検知システムの動作例を示す図。 実施形態1に係る学習装置10の動作例を示す図。 実施形態1に係る認識装置20の動作例を示す図。 実施形態1に係るNN学習部12の構成例を示す図。 実施形態1に係る識別器学習部13の構成例を示す図。 実施形態2に係るハッシュ関数の超平面を説明する図。 各実施形態で用いられる映像の例を示す図。 実施形態1に係るNNとハッシュ関数の組み合わせを示す図。 ハッシュ関数のdropout動作を説明する図。 実施形態1に係るNN認識部22の構成例を示す図。 実施形態1に係る識別器23の構成例を示す図。 実施形態3に係る識別器学習部13の構成例を示す図。
以下、本発明の実施形態について図面に基づいて説明する。なお、以下に説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。
以下の実施形態によれば、検出対象データに対して識別処理を行うことにより、認識対象を認識することができる。例えば、画像データを検出対象データとする場合、画像中の物体認識や、画像の異常認識等を行うことができる。以下の実施形態においては、映像中の物体に異常があるか否かを検出する応用例について主に説明するが、本発明はこのような構成に限定されない。また、検出対象データが1枚の画像である必要はなく、複数の連続する画像がニューラルネットワーク(NN)に入力されてもよい。また、検出対象データは画像には限定されず、例えば音声等であってもよい。
いくつかの実施形態では、認識精度を向上させるために、NNと組み合わせて複数の識別器が用いられる。そして、このような構成を実現するために、複数の識別器及びNNの学習を行う方法が示される。とりわけ、いくつかの実施形態においては、複数の識別器の誤差に基づいてNNの学習が行われる。また、いくつかの実施形態においては、複数の識別器の誤差に基づいて識別器の学習が行われる。また、いくつかの実施形態においては、複数の識別器の類似性を考慮して識別器の学習を行う方法が示される。さらに、いくつかの実施形態では、認識精度を向上させるために、dropoutと称する学習方法が用いられる。しかしながら、これらの構成の全てを採用することは必須ではないことに注意されたい。
なお、以下の実施形態で説明する異常検知システム1が備える各部は、専用のハードウェアにより実現することもできるし、コンピュータにより実現することもできる。例えば、データ読込部11、NN学習部12、識別器学習部13、データ読込部21、NN認識部22、及び識別部23のうち少なくとも1つをコンピュータにより実現することができる。これらの機能を実現するには、各機能構成をプログラムにより表現し、コンピュータに読み込ませればよい。すなわち、メモリ及びプロセッサを備えるコンピュータにおいて、メモリに格納されたプログラムに従ってプロセッサが処理を行うことにより、これらの機能を実現することができる。また、以下では学習装置10、認識装置20、及び端末装置30は別個の装置であるものとして説明するが、これらの装置が1又は2の装置に統合されていてもよい。さらに、図1では辞書記憶部M1,M2及びデータ記憶部D1,D2が学習装置10及び認識装置20の外部に存在するが、これらは学習装置10又は認識装置20に含まれてもよい。
[実施形態1]
本発明の1つの実施形態である実施形態1では、検出対象データを入力データとしてニューラルネットワーク(NN)に入力して出力データを得て、この出力データを識別器に入力することにより入力データの識別結果を得ることができる。そして、このような識別を行うために、学習データを用いて、NNと、NNの出力を受け取る識別器と、について同時に学習処理が行われる。本実施形態では、識別のために複数の識別器が用いられ、より具体的には複数のハッシュ関数が用いられる。
本実施形態では、具体例としては、本発明に係る情報処理装置を異常検知システムに適用する場合の構成例を示す。特に本実施形態では、異常検知システムとして、監視カメラによって撮像された映像中の異常を検出する機能を備えたシステムが用いられる。以降では本実施形態について、図面を参照して説明する。
本実施形態に係る異常検知システムは、監視対象をカメラ等の撮像装置で撮影して得られた映像データに基づいて、監視対象に異常があるか否かを判定する。そして、異常があると判定された場合には警告が行われる。例えば、警備室等の監視センタに常駐する監視者に対して警告を行うことができる。この監視対象には、例えば、一般家庭の屋内及び屋外、又は病院及び駅等の公共施設、等が含まれる。
[全体構成]
図1は、実施形態1に係る異常検知システムの構成の一例を示す概略ブロック図である。まず、図1に示す異常検知システム1の構成に関する説明を行う。図1の異常検知システム1は、学習装置10と、認識装置20と、端末装置30と、を備える。これらの装置内の各部、及びこれらの装置間は、電子回路を介して接続されていても、外部記憶装置を介して接続されていても、またネットワークを介して接続されていてもよい。このネットワークとしては、例えば携帯電話回線網又はインターネット等を利用することができる。
本実施形態において、異常検知システム1の動作は2つのフェーズに分けることができる。1つ目は学習フェーズであり、2つ目は認識フェーズである。
学習フェーズは、図2のステップS201に相当する。ステップS201で、学習装置10は、学習データを入力データとしてNN及び識別器の学習を行う。
認識フェーズは、図2のステップS202及びS203に相当する。ステップS202で、認識装置20は、監視対象が写っている映像データ(以下、検出対象データと呼ぶ)を入力データとして、NN及び識別器を用いた認識・識別を行い、監視対象に異常があるか否かを判定する。ステップS203で、端末装置30は、異常の判定結果に基づいて警告処理を行う。
以降では、異常検知システム1の動作の概略について、学習フェーズの動作と認識フェーズの動作とに分けて説明を行う。各処理部の詳細な構成及び動作に関しては後述する。
学習フェーズの動作は、学習装置10により行われる。学習装置10は、データ読込部11と、NN学習部12と、識別器学習部13と、を備える。学習装置10の動作の概要に関して、図3に基づいて説明を行う。
ステップS700で、データ読込部11は、NN及び識別器を学習するための学習対象データをデータ記憶部D1から読み込み、NN学習部12に送る。ステップS701〜S717で、NN学習部12及び識別器学習部13は、読み込んだ学習対象データを用いて学習を行う。このとき、NN学習部12は、学習対象データに基づいて生成された学習データを入力データとしてNNを用いた認識を行い、識別器学習部13は、NNによる認識結果(NNの出力データ)を入力データとして学習を行う。また、このときの識別器学習部13による学習誤差は、NN学習部12に入力され、NN学習部12の学習処理に用いられる。ステップS718で、NN学習部12は、学習済みのNNの辞書を辞書記憶部M1に保存する。また、識別器学習部13は、学習済みの識別器の辞書を辞書記憶部M2に保存する。
認識フェーズの動作は、認識装置20により行われる。認識装置20は、データ読込部21と、NN認識部22と、識別部23と、を備える。このうち、NN認識部22は検出対象データをNNに入力して出力データを得る。また、識別部23はNNからの出力データを識別器に入力することにより検出対象データの識別結果を得る。認識装置20の動作の概要に関して、図4に基づいて簡単な説明を行う。
ステップS1300で、データ読込部21は、記憶部D2から検出対象データの読み込みを行い、NN認識部22に送る。ステップS1301〜S1306で、NN認識部22は、検出対象データに対する認識処理を行い、その認識結果(NNの出力データ)を識別部23に送る。ステップS1307〜S1309で、識別部23は、NNによる認識結果を入力データとして、識別処理及び異常判定処理を行い、異常判定結果を端末装置30に送る。
次に端末装置30の動作の概要に関して説明を行う。端末装置30は、表示部31を備える。端末装置30としては、例えばPC(Personal Computer)のディスプレイ、タブレットPC、スマートフォン、又はフィーチャーフォン等を利用することができる。
表示部31は、ステップS403で、検出対象が異常であることを示す異常判定結果が送られた場合、それを受け取り、警告処理を行う。このとき、端末装置30の備える機能に応じて、どのような警告処理を行ってもよい。例えば、表示部31は、表示又は音声等を用いた警告を行うことができる。一例として、端末装置30がサイレンを備える場合は、表示部31は、端末装置30に警告音を発させることができる。また、表示部31は、端末装置30が備えるディスプレイに点滅表示を行わせることもできる。さらに、端末装置30が映像確認用のディスプレイを備える場合、監視映像上で異常が検出された箇所を強調表示してもよい。このように異常が検出された箇所を強調表示するには、監視映像上における異常箇所を特定する必要がある。そのためには、例えばNNに入力される入力データに映像中の位置を示す画面座標情報を付与しておき、異常判定結果に応じて、この画面座標情報を利用して警告表示を行ってもよい。
[学習フェーズ]
以降では、各装置が備える処理部の構成及び動作について、詳細な説明を行う。まずは、NN学習部12及び識別器学習部13の詳細な説明を行う。
NN学習部12の構成に関して、図5に基づいて説明を行う。NN学習部12は、小領域抽出部121と、前処理部122と、NN初期化部123と、学習データ選択部124と、NN認識実行部125と、NN更新部126と、NN辞書保存部127と、を備える。
また、識別器学習部13の構成に関して、図6に基づいて説明を行う。識別器学習部13は、ハッシュ関数生成部131と、ハッシュ関数選択部132と、ハッシュ関数更新部133と、を備える。なお本実施形態の冒頭で述べたように、本実施形態では識別器の具体例としてハッシュ関数を用いた識別器を用いる。ハッシュ関数の詳細は後述する。
次に、NN学習部12および識別器学習部13の動作に関して、図3に基づいて詳細な説明を行う。ステップS701で、小領域抽出部121は、データ読込部11からデータを受け取る。本実施例において、このデータは、カメラ等の撮像装置で撮影して得られた映像データを含むものとする。このデータには、監視対象を撮影して得られた映像データを含めることができる。
小領域抽出部121は、映像データの各フレームに写っているオブジェクトを含む小領域画像を抽出する。ここで、ある映像データに含まれる1フレームの画像の例を図8に示す。図8は、フレーム画像の例として、ある交差点において撮像された画像801を示す。画像801には、撮像されたオブジェクト802〜805と、信号810とが写っている。バウンディングボックス(Bounding Box)806〜809は、オブジェクト802〜805のそれぞれを囲む矩形である。小領域抽出部121は、バウンディングボックス806〜809により囲まれた部分画像をそれぞれ小領域画像として抽出する。
なお、バウンディングボックスに基づいて小領域画像を抽出する方法は一例にすぎず、小領域抽出部121が用いる方法は限定されない。このような小領域画像を抽出するための方法は複数存在し、例えば背景差分法、物体検出・追尾法、又は領域分割法等を用いることができる。例えば、小領域抽出部121は、後述する背景差分法を用いることにより、オブジェクト802〜805の輪郭を抽出し、輪郭によって囲まれる部分画像を小領域画像として抽出することもできる。また、監視対象のオブジェクトがあらかじめ既知である場合は、物体検出・追尾法を用いることができる。物体検出・追尾法によれば、監視対象となっているオブジェクトを検出・追尾することができる。物体検出・追尾法としては、例えばH. Grabner, M. Grabner and H. Bischof, "Real-Time Tracking via On-line Boosting", Proceedings of the British Machine Conference, pages 6.1-6.10. BMVA Press, September 2006.に記載の方法を用いることができる。
さらに小領域抽出部121は、映像データにあらかじめ付与された教師情報を利用して、小領域画像に対して教師情報を付与する。教師情報は、対象(すなわちオブジェクト)をどのように分類すべきかを示すラベルである。本実施形態においては、異常検知システム1を使用又は導入するユーザが、ラベルの種類、及び学習データに付与する教師データを予め決定しておく。一般に、どのような対象にどのようなラベルを付与するかは、問題(例えば異常検知システムの用途等)に依存する。
より具体的には、ユーザは、映像データを構成する画像上で指定した領域に対して、ラベルを付与する。例えば、ユーザは、フレーム画像上で歩行者803を含む領域を指定し、この領域に対して歩行者を示すラベルを付与することができる。そして、小領域抽出部121は、歩行者を示すラベルが付与された領域から小領域画像を抽出した場合、この小領域画像に対しては歩行者を示す教師情報を付与することができる。小領域画像が、互いに異なるラベルが付与された複数の領域が抽出された場合、小領域画像に占める割合が最も大きい領域に付与されているラベルを、教師情報として小領域画像に付与することができる。
もっとも、上記の方法で小領域画像に教師情報を付与することは必要ではない。例えば、あらかじめフレーム画像から小領域画像を抽出しておき、それぞれの小領域画像に対してユーザが教師情報を付与してもよい。また、小領域抽出部121が抽出した小領域画像のそれぞれに対して、ユーザが教師情報を付与してもよい。以上の処理により、小領域抽出部121は、映像データを構成するフレーム画像から、教師情報が付された小領域画像を抽出する。最後に、小領域抽出部121は、抽出した小領域画像を学習画像として教師情報とともに前処理部122に送る。
なお、説明を簡略化するために、ステップS701で小領域抽出部121は、使用するすべてのデータを一度に読み込み、それぞれのフレーム画像から小領域画像を抽出し、すべての小領域画像を前処理部122に送るものとする。しかしながら、学習データのデータ量が非常に大きい場合、すべてのデータを一度に通信することは難しいため、一部ずつ学習データを通信してもよい。以降の説明では、特に注意書きを記載する場合を除いては、すべての学習データについて一度に処理及び通信を行うものとする。
ステップS702で、前処理部122は、入力データの水増しを行う。データの水増し処理はNNの学習の前処理として一般的に行われており、学習データの見掛け上のバリエーションを増大させる効果がある。ここで、どのような水増し処理を行うかは、問題に依存して決定することができる。例えば、画像データに対して一般的に行われている水増し処理として、入力画像を水平方向に左右反転させる画像処理が挙げられる。この方法は、入力画像が水平方向に反転しても、教師情報が不変であるときに用いることができる。一方、図8のように交差点の映像から車の逆走を検知したい場合には、車の左右の向きが重要であることから、別の水増し処理を採用しなければならない。本実施形態では、異常検知の対象は映像中の人体であり、それぞれの人体を示す小領域画像に対して付される教師情報は、画像を左右反転させても不変であるものとする。したがって、ステップS702で、前処理部122は、入力された学習画像のそれぞれに対して左右反転処理を行い、処理前の画像と、処理後の画像との双方を、以降で学習データ(学習画像)として扱う。
一般に、前処理部122は、小領域画像を表す画像データ及びこの画像の種類を示す教師情報を取得し、画像処理により1つの画像から複数の画像を生成することができる。この際、前処理部122は、画像処理により画像の種類が変化しない画像を選択し、選択された画像に対して画像処理を行う。そして、前処理部122は、画像処理前の選択された画像と、画像処理後の選択された画像と、を学習データとして出力する。
ステップS703で、前処理部122は、学習画像全体の平均画像を算出し、すべての学習画像から平均画像を減算する処理を行う。なお、平均画像とは、各画素が画素値として、各学習画像の対応する画素の平均画素値を有している画像のことを指す。また、学習画像から平均画像を減算する処理とは、学習画像の各画素の画素値から、平均画像の対応する画素の画素値を減算する処理のことを指す。このように学習画像から平均画像を引くことは、学習データに対して一種のセンタリング処理を行うことに対応する。このような処理によれば、学習画像ごとに画素値が大きく異なる場合であっても、NNの学習処理を収束させやすくすることができる。このようにセンタリング処理済みの学習画像を用いる本実施形態においては、後述するNNの初期化処理において、結合重みの初期値として平均0のガウス分布を用いることができる。
なお、本実施形態においては、平均画像を算出するために、前処理部122は、学習画像の解像度(縦と横のサイズ)を一致させる前処理をさらに行う。具体的には、後述するNNの初期化を行う際に用いるNNのネットワーク構造を参照して、その入力層のサイズに合わせる形で、前処理部122は、それぞれの学習画像に対して拡大又は縮小処理を行うことができる(ネットワーク構造については後述する)。
以上の前処理部122による処理により、学習画像と付与された教師データとのセットが複数用意され、これらは学習データ選択部124へと入力される。そして、学習画像と付与された教師データとのセットを用いて、NNの学習が行われる。もっとも、目標とする検出精度に応じて、前処理部122による水増し処理及び平均画像を減算する処理の一方又は双方を省略することも可能である。
ステップS704で、NN初期化部123は、NNのパラメータ(結合重みおよびバイアス項)を初期化する。本実施形態では、NNのネットワーク構造は予め決定されており、NNのネットワーク構造を参照して初期化が行われる。本実施形態において用いられるネットワーク構造及び初期パラメータは特に限定されない。例えば非特許文献1と同じ手法を用いてよいし、独自に定義したネットワーク構造及び初期パラメータを用いてもよい。
図9は、本実施形態で用いられるNN920と、識別器921と、の一例を模式的に示す。なお、識別器921に関しては、その詳細を後述する。NN920は、本実施形態で用いられるNNのネットワーク構造の一例を示す。図9には、ネットワークが、入力層901、convolution1層902、pooling1層903、convolution2層904、pooling2層905、Innerproduct層906、及び出力層907を含むことが示されている。また、2つの階層間の処理方法として、convolution処理910、pooling処理911、及びInnerProduct処理912が設定されていることが示されている。それぞれの処理の具体的な内容は非特許文献1と同様であるため、ここでは省略する。簡単に説明すると、convolution処理910では畳み込みフィルタを用いたデータ処理が行われ、pooling処理911では、例えばmax poolingであれば局所的な最大値を出力する処理が行われる。また、InnerProduct処理912では、内積処理が行われる。
また、図9からは、convolution層及びpooling層には複数の特徴マップが存在し、入力層における画像上のピクセルに対応する位置には、複数のニューロンが存在することがわかる。例えば、学習画像がRGB形式である場合、RGBチャンネルのそれぞれに対応する3つのニューロンが存在しうる。また、学習画像が、撮像映像における動き情報を持つOpticalFlow画像である場合、画像の横軸方向の動きと縦軸方向の動きとをそれぞれ表現する2つのニューロンが存在しうる。また、複数の画像を入力として用いる場合は、入力される画像の数に従って入力層のニューロンを増やすことができる。本実施形態では、標準的なRGB画像を学習画像として用いる例について説明する。
NN初期化部123がNNのパラメータを初期化する方法は特に限定されない。初期化方法としては様々な方法が知られており、例えば、用意されたデータを用いて初期化する場合と、データを用いないで初期化する場合と、がある。本実施形態では、一例として、データを用いないでNNのパラメータを初期化する方法について説明する。具体的には、本実施形態では、NN初期化部123は、平均0、分散1の正規分布からランダムにサンプリングした値を用いて重みパラメータを初期化し、バイアス項パラメータをすべて0で初期化するものとする。なお、パラメータに関する詳細は非特許文献1を参照のこと。なお、データを用いて初期化する場合の一例についても後述する。最後にNN初期化部123は、初期化により得られた辞書を、NN認識実行部125に送る。
ステップS705で、ハッシュ関数生成部131は、識別器の初期化を行う。具体的には、ハッシュ関数生成部131は、ハッシュ関数を生成する。本実施形態においては、一個一個のハッシュ関数を、それぞれ線形識別器として扱う。生成されるハッシュ関数の数は特に限定されないが、ハッシュ関数の数を増やすことにより、近似近傍探索の精度を向上させることができる。本実施形態では、例として、ハッシュ関数生成部131は100個のハッシュ関数を生成するものとする。最後にハッシュ関数生成部131は、生成したハッシュ関数をハッシュ関数更新部133に送る。
本実施形態において、識別器921は、入力データをNNに入力して得られる出力データに基づいて、NNがある分類に属するか属さないかを判定するOne−class識別器である。具体例として、識別器921は、図9に示すように、NNの出力(ここでは出力層からの出力値)に基づいて、ハッシュ関数生成部131により生成されたハッシュ関数を用いたHashing処理913によりハッシュ値908を求める。ハッシュ値908は、それぞれのハッシュ関数を用いて得られた識別結果を表すバイナリ値で構成されるベクトルであり、詳細は後述する。
Hashing処理913で用いられるハッシュ関数は特に限定されない。本実施形態では、一例として、Hachiya, H., Masakazu M., "NSH: Normality Sensitive Hashing for Anomaly Detection", 2013 IEEE International Conference on Computer Vision Workshops (ICCVW)(以下、Hachiyaと呼ぶ)及び特開2014−203289号公報に示されるハッシュ関数を用いることとする。これらの文献に示されるハッシュ関数は、Normality Sensitive Hashing(NSH)と呼ばれ、正常学習ベース異常検知技術の構成の一例において用いられる。正常学習ベース異常検知技術は、正常データを含むが異常データを含まない学習データを用いて異常を検知するための検出器を学習するという特徴を有している。本実施形態では、説明を具体的にするため、NSHを用いて正常学習を行う例について説明する。なお、正常データと異常データとを用いてハッシュ関数を学習する場合は、特開2014−203289号公報に示されるような異常データに対応したハッシュ関数の目的関数を用いればよいため、ここでは詳細な説明は行わない。なお、正常学習は、一般にはOne−class学習の一種として知られている。
ハッシュ関数の具体的な説明はHachiyaに示されているため、ここでは詳細を省くが、本実施形態においては以下の超平面の式(1)によりハッシュ関数が定義されるものとする。このハッシュ関数を用いると、特徴ベクトルが、超平面の式(1)を境界として、法線ベクトルの方向側にあるか、その反対側にあるかを表すバイナリ値が得られる。本実施形態においては、超平面の式(1)を境界として、法線ベクトルの方向側にある特徴ベクトル(入力データ)のハッシュ値を「0」、その反対側にある特徴ベクトル(入力データ)のハッシュ値を「1」というバイナリ値で表すものとする。本実施形態においては、入力データが正常である場合にハッシュ関数がバイナリ値「0」を返し、入力データが異常である場合にハッシュ関数がバイナリ値「1」を返すように、複数のハッシュ関数それぞれの学習が行われる。
式(1)において、Tはベクトルの転置、xは入力データ、wは超平面の法線ベクトル又は重みベクトル、bはバイアス項、mはハッシュ関数に関するインデックスを表す。上記の通り、本実施形態においては100個のハッシュ関数が用いられ、mは1〜100のいずれかの値をとる。また、入力データxは、NNの出力(すなわち出力層907の出力値)である。
ここで、式(1)の左辺を以下の式(2)のようにzで表す。
ある入力データxが法線ベクトルwの方向側にある場合、zは正の値をとり、反対側にある場合は、zは負の値を取る。この性質を利用することにより、本実施形態では、Hachiyaに示すように、次の評価式(3)を用いてそれぞれのハッシュ関数を評価する。
式(3)において、Nは正常データの数(後述するMinibatchのサイズ)、λはバイアス項の重みパラメータである。また、L(w−b)は、入力されたある正常データxを異常と判定した場合における誤差を出力する関数であり、例えば次の式(4)を用いて定義することができる。
すなわちL(w−b)はハッシュ関数による学習データに対する識別結果の誤差を表しており、式(3)は、入力された複数の正常データに対する、あるハッシュ関数のロスを示している。そして、式(3)は、値が小さいほどよいと考えることができる。なお、上記の例において、w及びbはハッシュ関数のパラメータであり、λはハイパーパラメータである。本実施形態において、λはあらかじめ手で与えるものとし(例えばHachiyaと同じ値を用いてもよい)、w及びbはそれぞれランダムに初期化するものとする。
ステップS706で、学習データ選択部124は、変数Iterationを0に初期化する。Iterationは、最適化処理の繰り返し回数を示し、その詳細は後述する。ステップS707で、学習データ選択部124は、学習データの部分集合群(Minibatch)を作成する。Minibatchは、NNのパラメータをStochastic Gradient Descent(SGD、確率的勾配降下法)によって繰り返し最適化する際に用いる、学習データの集合である。詳細は後述するが、本実施形態では、NNのパラメータを最適化する方法の例として、SGDを用いる。なお、Minibatchのサイズは限定されないが、本実施形態では、同じラベルを示す教師情報を持つ50個の学習画像をひとまとめにしたものをMinibatchとして用いる。Minibatchは、例えば、全ての学習画像が複数のMinibatchのいずれかに含まれるように、かつ1つの学習画像が2以上のMinibatchに含まれないように、作成することができる。
説明を簡略化するために、本実施形態で用いる学習データは、その教師情報が示すラベルの種類に関して均一にバランスがとれているものとする。すなわち、ステップS707で学習データ選択部124は、複数のラベルのそれぞれについて、同数のMinibatchを生成するものとする。学習データがラベルの種類に関して均一でない場合は、例えば、均一になるように学習データをサンプリングすることができる。
以上の処理が、NNと識別器とを学習する(すなわち、パラメータを最適化する)ための準備に相当する。すなわち、以上の処理により、学習対象データから学習データ(学習画像)が得られ、また初期状態のNN及びハッシュ関数が得られる。ステップS708以降では、学習データを用いて実際にNNと識別器の学習が行われ、以下ではこの動作について説明する。本実施形態では、NNの学習を行うための方法として、誤差逆伝播法とSGDとを組み合わせた方法を用いる。この方法は非特許文献1において詳細に説明されているため、ここでは詳しく説明することはしない。簡単に説明すると、確率的にMinibatchを選択し、その勾配を計算して、勾配方向にパラメータを更新する手順を繰り返すことで、学習が行われる。
ステップS708で、学習データ選択部124は、Minibatch集合からランダムに1つのMinibatchを選択する。このとき、学習データ選択部124は、Iterationの値が同じである間にまだ選択されていないMinibatchを選択する。本実施形態では、ステップS707で学習データ選択部124はあらかじめすべてのMinibatchが作成した。しかしながら、ステップS716においてIteration値がインクリメントされる度に、学習データ選択部124は新たなMinibatch群を作成することによりMinibatchを初期化してもよい。このような構成によれば、それぞれのMinibatchが含む学習データの組み合わせが繰り返しごとに変化するため、過学習のリスクが低減することができる。
ステップS709で、NN認識実行部125は、学習データをNNに入力して出力データを得る。具体的には、NN認識実行部125は、Minibatchを入力データとしてNNの出力を得る。例えば、図9に示すNNを用いる場合、入力層901から出力層907まで階層的に順伝播するようにNNを用いたデータ処理が行われる。ステップS710で、NN認識実行部125は、識別器学習部13にNNの出力(出力層907の値)を送る。
ステップS711で、ハッシュ関数選択部132は、複数の識別器から一部の識別器を選択する。本実施形態において、ハッシュ関数選択部132は、ハッシュ関数生成部131が予め生成したハッシュ関数のうち、更新するハッシュ関数をMinibatchごとに選択する。そして、ハッシュ関数選択部132により選択されたハッシュ関数に対してのみ、ハッシュ関数更新部133によるパラメータ更新処理と、NNに対して逆伝播される識別器誤差の計算と、が行われる。このように使用するハッシュ関数を選択する処理を以下ではハッシュ関数のdropout処理と呼ぶ。この処理は、非特許文献1で示されるNNに対するdropout処理とは異なるものの、複雑な目的関数(3)に対するハッシュ関数の過学習を抑制する効果を有する。また、異なるハッシュ関数のセットについての識別器誤差が順次NNに逆伝播されることも、最終的な認識結果の精度の向上につながると考えられる。式(2)は全てのハッシュ関数に関する表現であるが、ステップS711で選択されたハッシュ関数に対しては、式(2)を以下の式(5)として表すことができる。
式(5)において、Dは選択されたハッシュ関数の集合であり、dはインデックスであり、d∈DはdがDの要素であることを示す。
ハッシュ関数選択部132は、すべてのハッシュ関数の集合から、選択されたハッシュ関数の集合Dを、確率的に選択することができる。例えば、ハッシュ関数選択部132は、各々のハッシュ関数に関して、50%の確率で選択するか否かを決定してもよい。このとき、選択しなかったハッシュ関数は、dropoutした(OFFになった)と捉えることができる。すなわち、この処理は、ハッシュ関数に関するdropout処理であると考えることができる。
ステップS711の処理を分かりやすく説明するために、図10に、上記で説明したハッシュ関数の構成及び動作の一例を示す。図10においてニューロン1001は、NNのニューロンを示す。また、NNの出力空間1002は、NNの出力空間の模式図(ここでは出力層907の値がなす空間)を示す。ハッシュ関数の超平面1003は、複数のハッシュ関数が超平面としてNNの出力空間1002を分離する様子を示す。Hash dropout1004は、一部のハッシュ関数を選択する(選択されなかったハッシュ関数はdropoutされる)処理を示す。dropoutされたハッシュ値1005は、ハッシュ関数がdropoutされることで、識別結果を表すベクトルからバイナリ値が欠落する様子を示す。dropoutされたハッシュ関数の超平面1006は、ハッシュ関数がdropoutされることで分離超平面が一時的に無くなることを示している。
このようなハッシュ関数のdropout処理を、ハッシュ関数選択部132は、ステップS711が実行されるたびに行う。以降では、ハッシュ関数更新部133が、選択されたハッシュ関数の集合Dに対して、勾配の計算及び誤差の計算を行う。すなわち、ハッシュ関数更新部133は、まず学習データをNNに入力して得られた出力データを第1の識別器セットに入力することにより得られる識別結果の誤差を判定する。そして、NN更新部126は、この識別結果の誤差をNNに逆伝播することにより、NNのパラメータを更新する。さらに、ハッシュ関数更新部133は、学習データをパラメータ更新後のNNに入力して得られた出力データを第2の識別器セットに入力することにより得られる識別結果の誤差を判定する。そして、NN更新部126は、この識別結果の誤差をNNに逆伝播することにより、NNのパラメータを再度更新する。ハッシュ関数選択部132は、複数の識別器から第1の識別器セットと第2の識別器セットとを選択する。ここで、第1の識別器セットに含まれる識別器の少なくとも1つは、第2の識別器セットには含まれなくてもよい。
ステップS712で、ハッシュ関数更新部133は、NN認識実行部125からの出力データを複数の識別器に入力することにより得られる学習データの識別結果の誤差を判定する。本実施形態ではdropout処理が行われる。このため、ハッシュ関数更新部133は、学習データをNNに入力して得られた出力データを、ハッシュ関数選択部132により選択された一部の識別器に入力することにより得られる識別結果の誤差を判定する。この際、ハッシュ関数選択部132により選択されなかった識別器は、識別結果の誤差の判定のためには用いられない。本実施形態ではNNの学習処理が行われるため、こうして得られた識別結果の誤差は、ステップS714でNNに逆伝播される。
また、本実施形態では複数の識別器の学習処理を行うため、ハッシュ関数更新部133はさらに学習データの識別結果の誤差に基づいて複数の識別器の学習処理を行う。具体的には、ハッシュ関数更新部133は、ハッシュ関数選択部132により選択されたハッシュ関数を、NN認識実行部125から受け取ったNNの出力に基づいて更新する。ハッシュ関数の更新方法としては任意の方法を採用することができるが、本実施形態においては勾配法に基づいてハッシュ関数が更新される。例えば、ハッシュ関数のパラメータwの更新式としては式(6)を用いることができ、ハッシュ関数のパラメータbの更新式としては式(7)を用いることができる。
式(6)において、wnewは更新後のパラメータwを、woldは更新前のパラメータwを、αはwに関する学習率を、Δはパラメータwの勾配を表す。また、式(7)において、bnewは更新後のパラメータbを、boldは更新前のパラメータbを、βはbに関する学習率を、Δはパラメータbの勾配を表す。
Δは式(3)を偏微分することで求めることができ、具体的には式(8)を用いて求めることができる。
Δも式(3)を偏微分することで求めることができ、具体的には式(9)を用いて求めることができる。
式(8)(9)において、L(w−b)は、既に式(3)について説明したように識別器(ハッシュ関数)による学習データの識別誤差を表す。そして、このL(w−b)に基づいて、式(8)(9)を用いて識別器(ハッシュ関数)の学習処理が行われる。関数Lの勾配を計算する方法は特に限定されない。また、学習率α及びβは任意に決めることができ、例えば実験的に調整を行うことにより決定することができる。
識別器の学習処理を行うための方法として、ハッシュ関数を勾配法により更新する代わりに、Hachiyaのようにハッシュ関数を新たに生成する方法を採用してもよい。なお、上記ではハッシュ関数の更新を行う場合の例を示したが、実際には、NNの更新だけが必要で、ハッシュ関数の更新は必要がない場合があると考えられる。当然ながら、その際はハッシュ関数を更新しなくてもよい。なお、その際には、ハッシュ関数の勾配を計算せず、式(3)の値を誤差としてNNに逆伝播してもよい。
ステップS713で、ハッシュ関数更新部133は、NN更新部126にハッシュ関数の誤差を送る。本実施形態においては、ハッシュ関数更新部133は、式(10)に従ってハッシュ関数全体の誤差を求め、NN更新部126に送る。
式(10)において、Nはハッシュ関数選択部132により選択されたハッシュ関数の数である。式(10)の関数Lの勾配を計算する方法は特に限定されない。式(10)において、L(w −b)はそれぞれの識別器(ハッシュ関数)による学習データの識別誤差を表し、目的関数Eは、選択されたハッシュ関数全体(d∈D)の誤差を表している。このように、ハッシュ関数更新部133は、複数のハッシュ関数全体についての識別結果の誤差を判定している。また、この誤差は、複数のハッシュ関数のそれぞれにNNからの出力データを入力することにより得られる、複数のハッシュ関数のそれぞれによる学習データの識別結果の誤差に基づいて判定されている。特に、本実施形態においては、複数のハッシュ関数のそれぞれによる学習データの識別結果の誤差の線形結合として、複数のハッシュ関数全体についての識別結果の誤差が判定される。
ステップS714で、NN更新部126は、判定された複数の識別器全体についての識別結果の誤差をNNに逆伝播する。具体的には、NN更新部126は、ハッシュ関数による識別結果の誤差をNNに逆伝播することによりNNの学習処理を行う。具体的には、NN更新部126は、受け取ったハッシュ関数の誤差を用いて、誤差逆伝播法によってNNのパラメータを更新する。式(10)に従って目的関数の勾配を求めてNNのパラメータを更新することは、選択されたハッシュ関数全体の誤差を逆伝播することに相当する。NNのパラメータを更新する方法としては、NN技術における公知の方法を用いることができる。本実施形態でNN更新部126は、非特許文献1と同様の方法を用いてNNのパラメータを更新する。
ステップS715で、学習データ選択部124は、Iterationの値が同じである間に、全てのMinibatchが学習に利用されたか否かを判定する。全てのMinibatchが利用されていない場合、処理はステップS708に戻り、まだ学習に用いられていないMinibatchを入力データとして学習が行われる。全てのMinibatchが学習に利用されている場合、処理はステップS716に移り、学習データ選択部124はIterationをインクリメントする。
ステップS717で、学習データ選択部124は、NN及び識別器の学習が完了しているか否かを判定する。具体的には、学習データ選択部124は、所定の学習停止条件が満たされている場合に、NN及び識別器の学習が完了したと判定する。学習停止条件の設定方法は特に限定されず、例えばユーザが設定することもできるし、学習データ選択部124が自動的に設定することもできる。ユーザが学習停止条件を設定する場合の具体例としては、ユーザが経験的に学習停止条件を設定する方法、例えばIteration回数が所定回数に達することを学習停止条件として設定する方法が挙げられる。また、自動的に学習停止条件を設定する場合の具体例としては、学習曲線の勾配を参照する方法が挙げられる。具体例としては、全てのハッシュ関数について式(3)に従って求められる誤差の総和の、Iteration回数に対する勾配が所定値未満となった際に、NN及び識別器の学習が完了していると判定することができる。
本実施形態においては、Iteration回数が所定回数に達した時に、学習停止条件が満たされるものとする。所定回数はユーザが経験的に設定することができ、その値は特に限定されず、例えば所定回数を20000回とすることができる。なお、具体的なNNの学習方法としては、例えば非特許文献1に記載されているように、Iteration回数が増えるほどNNの学習率を低下させる方法等が知られている。本実施形態においては、このような方法をさらに採用することもできる。ステップS717で学習停止条件を満たしていないと判定された場合、処理はステップS708に戻る。条件を満たしていると判定された場合、処理はステップS718に進む。
最後に、ステップS718で、NN辞書保存部127は、辞書記憶部M1に学習済みのNNのパラメータ(NNの辞書)を保存する。また、ハッシュ関数更新部133は、辞書記憶部M2に学習済みのハッシュ関数のパラメータ(識別器の辞書)を保存する。ハッシュ関数更新部133は、さらに、学習済みのハッシュ関数に基づいて分離される正常データの情報(正常情報)を保存することができる。ここで、正常データの情報とは、各々のハッシュ関数によって識別される正常データ(学習データ)の数を示す。例えば、あるハッシュ関数についての正常データの情報は、ハッシュ値が「0」となる学習データの数でありうる。この正常データの情報は、正常な度合を示す指標となる。例えば、この正常データの情報は、それぞれのハッシュ関数により得られる入力データのハッシュ値が「0」である場合に、入力データが正常である確からしさを示す。なお、正常データの情報を作成する具体的な方法としては、例えば特開2014−203289号公報に記載されている方法を採用することができる。
[認識フェーズ]
次に、NN認識部22及び識別部23の詳細な説明を行う。まず、NN認識部22の構成を、図11を参照して説明する。NN認識部22は、小領域抽出部121と、前処理部122と、辞書読込部221と、NN認識実行部125と、を備える。小領域抽出部121、前処理部122、及びNN認識実行部125は、NN学習部12が備える処理部と同様の機能を持つ。すなわち、小領域抽出部121は検出対象の映像データ(画像データ)から小領域画像を抽出し、前処理部122は抽出された小領域画像に対して前処理を行う。そして、NN認識実行部125は前処理された小領域画像データを入力データとしてNNに入力して出力を得る。また、辞書読込部221は、辞書記憶部M1からNNの辞書を読み込み、パラメータをNN認識実行部125が用いるNNに設定する。
次に、識別部23の構成を、図12を参照して説明する。識別部23は、辞書読込部231と、識別実行部232と、異常判定部233と、を備える。辞書読込部231は、辞書記憶部M2から識別器の辞書を読み込み、ハッシュ関数のパラメータを識別実行部232に送る。識別実行部232は、画像データを学習処理後のNNに入力して得られた出力データをNN認識実行部125から受け取り、この出力データを複数の識別器に入力することにより識別結果を得る。例えば、識別実行部232は、複数のハッシュ関数のそれぞれを用いてNN認識実行部125の出力結果に対する処理を行うことにより、バイナリ値のセットを得る。異常判定部233は、識別実行部232の出力に基づいて、画像データ中の異常を検知する。検出対象の映像に異常があるか否かを判定する。
本実施形態においては、先に説明した学習フェーズにより得られたNN及びハッシュ関数が、検出対象データの識別のために用いられる。しかしながら、NNと複数の識別器とを組み合わせて検出対象データの識別を行う構成において、NN及び複数の識別器の学習を先に説明した方法で行うことは必須ではなく、別の方法を用いてもよいことに注意されたい。一実施形態においては、複数の識別器は、複数の識別器の類似度が低いほど評価が高くなるように学習により最適化されている。また、一実施形態において、NNは、学習データをNNに入力して得られた出力データを複数の識別器に入力することにより得られる識別結果の誤差を、NNに逆伝播する学習処理によって得られている。
次に、NN認識部22及び識別部23の動作に関して、図4を参照して詳細な説明を行う。ステップS1301で、辞書読込部221は、NNの辞書を辞書記憶部M1から読み込み、NN認識実行部125に送る。ステップS1302で、辞書読込部231は、識別器の辞書を辞書記憶部M2から読み込み、識別実行部232に送る。本実施形態において辞書読込部231は、さらに正常データの情報を辞書記憶部M2から読み込む。
ステップS1303で、小領域抽出部121は検出対象データを受け取り、検出対象の映像から小領域を抽出する。ステップS1304で、前処理部122は、小領域画像から平均画像を減算する処理を行い、得られたデータをNN認識実行部125に入力データとして送る。ステップS1305で、NN認識実行部125は、前処理部122から得たデータをNNに入力することにより認識処理を実行し、出力を得る。
ステップS1306で、識別実行部232は、NN認識実行部125の出力を受け取る。ステップS1307で、識別実行部232は、学習済みのハッシュ関数を用いてNN認識実行部125の出力(すなわちNNの認識結果)に対して識別処理を行う。ここで、識別実行部232は、式(1)に関して上述した方法に従い、ハッシュ関数に基づいて、NNの認識結果に対するバイナリ値を得る。識別実行部232は、複数のハッシュ関数のそれぞれを用いてNNの認識結果を処理するため、ステップS1307ではバイナリ値のセットが得られる。
ステップS1308で、異常判定部233は、ステップS1307で得られたバイナリ値のセットに従って、小領域画像が異常か否か、すなわち検出対象の映像に異常が含まれるか否かを判定する。ステップS1308の処理は、例えば特許文献3に記載されている方法を用いることができる。簡単に説明すれば、正常データに対して認識処理を行った際に得られるバイナリ値と、ステップS1307で得られたバイナリ値と、が一致するような正常データの数に基づいて、入力データが異常か否かを判定することができる。本実施形態において、辞書読込部231は、このような正常データの数を正常情報として読み込んでいる。もっとも、ステップS1308の判定において正常情報を参照することは必須ではない。例えば、ステップS1307で得られた複数のバイナリ値が、全て、小領域画像が正常であることを示す(すなわちバイナリ値が「0」である)場合に、小領域画像が正常であると判断することができる。また、ステップS1307で得られた複数のバイナリ値のうち、小領域画像が正常であることを示すバイナリ値が一定割合以上である場合に、小領域画像が正常であると判断することもできる。ステップS1309で、識別実行部232は、検出対象の映像に異常が含まれる場合に、このことを示す情報を端末装置30に送る。
本実施形態では、NNのパラメータをランダムに初期化してからNNの学習を行った。一方で、学習済みのNNを再利用し、所望のデータを用いて追加学習してもよい(Fine-tuning)。例えば、非特許文献1で得られたNNのパラメータを初期値として、さらに学習を行ってもよい。この際、非特許文献1で用いられたデータセットの教師情報と、本実施形態における学習データの教師情報とが異なる場合は、再利用するNNの出力層のパラメータのみを新たに定義又は初期化してから、追加学習を行うことができる。また、Fine-tuning以外の方法として、例えばAuto encoderを用いて教師なし学習を行い、学習により得られたパラメータを初期値として利用してもよい。その場合の具体的な方法としては、例えば非特許文献4に記載されている方法を用いることができる。
本実施形態では、一例として、図9のようにNNとハッシュ関数とを組み合わせる例について説明した。しかしながら、図9に示す構成を採用することは必須ではなく、異なる構成を用いてもよい。例えば、図9は出力層907の出力値をハッシュ関数の入力データとして用いる例を示すが、さらにConvolution2層904の出力をハッシュ関数の入力データとして用いてもよい。この場合、ステップS710及びS1306では、Convolution2層904の出力と、出力層907の出力と、の双方がハッシュ関数に入力される。また、この場合、ステップS713で、ハッシュ関数の誤差を、Convolution2層904と、出力層907と、の双方に対して逆伝播させることができる。なお、複数の誤差が伝播されるNNの学習動作は、Christian Szegedy et al. "Going Deeper with Convolutions" Conference on Computer Vision and Pattern Recognition, 2015に示されており、このような方法を用いて学習を行うことができる。
本実施形態では一例として、図9のようなNNのネットワーク構造を示したが、ネットワーク構造は図示されたものに限定されない。例えば、InnerProduct1層906及びInnerProduct2層907を用いなくてもよい。また、これら2つの層の代わりにハッシュ関数を導入することにより、階層的なハッシュ関数処理を行ってもよい。
本実施形態では一例として、検出対象の映像から切り出された小領域画像のデータをNNの入力データとして用いる場合について説明したが、入力データはこれに限定されない。例えば、Optical Flow画像を映像から抽出してNNへの入力データとして用いてもよい。さらに、Optical Flow画像とRGB画像とをそれぞれ異なるNNに入力し、それぞれのNNの出力をハッシュ関数に対して入力してもよい。
本実施形態では、データ中の物体やその状態を認識するNNとハッシュ関数とを用い、NNの出力をハッシュ関数に対する入力データとする構成において,ハッシュ関数の学習誤差がNNに伝播するように動作して学習を行う。とりわけ、本実施形態では、複数のハッシュ関数を識別器として用い、選択された一部のハッシュ関数だけを用いて学習を行うことを繰り返すこと、すなわち学習を行う際にハッシュ関数の一部をdropoutすることについて説明した。しかしながら、dropout処理を行うことは複数の識別器を用いる上で必須ではない。一方で、dropout処理を行うことにより、NNの出力を受け取る識別器の過学習を抑制し、最終的な認識結果の精度を向上させることができる。dropout処理の具体的な方法については特に限定されない。すなわち、識別器の識別能力を低下させ、学習データをNNに入力して得られた出力データを識別能力が低下した識別器に入力することにより得られる識別結果の誤差をNNに逆伝播すればよい。複数の識別器の一部をdropoutすることは、複数の識別器による識別能力を低下させることに対応する。
また、dropout処理の適用例は、ハッシュ関数を用いる場合に限定されないし、複数の識別器を利用する場合にも限られない。例えば、サポートベクタマシン等の他の識別器を用いる場合に同様のdropout処理を行うこともできる。サポートベクタマシンを用いる場合、dropout処理は以下のように行うことができる。すなわち、サポートベクタマシンを用いて識別を行う場合、サポートベクタマシンのパラメータと、NNの出力との内積計算が行われる。この際に、サポートベクタマシンのパラメータの一部を脱落させることにより、識別器の識別能力を低下させ、dropoutの効果を得ることができる。このような場合、脱落させたパラメータの分だけ得られる内積の値が増減するため、dropout後に得られる内積の値を補正してもよい。具体例としては、脱落させたパラメータの数と、全てのパラメータの数とに基づいて、内積を重み付けすることができる。このような構成により、dropout後に得られる内積を、全てのパラメータを用いた場合に得られると想定される大きさにすることができる。
[変形例]
実施形態1では、一例として、ハッシュ関数の学習に用いる目的関数として式(3)を用いたが、異なる目的関数を用いてもよい。例えば、複数の識別器間の直交性が高いほど評価値が高くなる目的関数を用いて学習を行うことができる。一例として、目的関数として式(11)を用いることができる。
式(11)は、ハッシュ関数全体の目的関数を示している.subject_toは、式(11)の制約を示している。zの定義は式(5)と同様であり、すなわち式(11)のsubject_toは、全てのハッシュ関数が、すべての学習データに対してZ≧0を満たすという意味を持つ。Mはハッシュ関数の数を表す。
式(11)において、目的関数Eはハッシュ関数のパラメータwに関する内積により表される。すなわち、複数のハッシュ関数間の直交性が高いほど、目的関数Eは小さくなり、すなわち評価値は高くなる。このため、式(11)のEを最小化することで、制約を満たしながら、ハッシュ関数同士ができるだけ直交に近くなる。また、ハッシュ関数自身のノルムが小さくなる。このように、式(11)を用いて学習及び最適化を行うことにより、ハッシュ関数同士が直交に近くなり、ハッシュ関数同士が似る程度が低減される。
このように式(11)を用いる場合には、それぞれのハッシュ関数がgreedyに最適化される可能性が低くなる。このため、式(3)を用いる場合と比較して、学習の結果得られた複数のハッシュ関数に、互いに類似したハッシュ関数が含まれる可能性が低減される。したがって、式(11)を用いることにより、識別器におけるハッシュ関数全体の表現能力が向上することが期待される。なお、上記の例では、類似度の表現に直交性という基準を用いて、式(12)を設計した。当然ながら、直交性以外の類似度を用いてもよい。例えば、ハッシュ関数同士の距離を定義し、その距離を用いて式(12)を変更してもよい。式(12)は値が小さいほどよいとすると、距離のマイナス倍を式(12)に利用することが考えられる。ここで、ハッシュ関数同士の距離はどのように定義してもよいが、例えば、異なるハッシュ関数間のパラメータ(例えば、重みベクトルおよび切片)の差の二乗を用いてもよい。また、直交性をとらえるその他の尺度として、コサイン類似度を用いてもよい。コサイン類似度は、ハッシュ関数間の角度をとらえることが可能であり、ノルムの大きさに依存しないという性質がある。
式(11)では、全てのハッシュ関数に関してzが0以上になるという制約を用いたが、このような構成には限定されない。例えば、zに関して一定の誤差を許容してもよい。このための方法としては、例えばサポートベクタマシンで一般に使われるように、zに関するソフトマージンを導入してもよい。このような制約が緩められた構成を用いることにより、学習データにノイズが含まれる場合であっても識別能力を維持できることが期待される。
別の方法として、zに関する制約を用いる代わりに、zを含む項を目的関数に加えてもよい。例えば、zを含む項が目的関数Eの計算式に追加された式(12)を用いて、ハッシュ関数の最適化を行うことができる。
式(12)において、pはp−normである。例えば、二乗ノルムを用いることができ、この場合p=2である。式(12)の第2項は、式(11)のzに関する制約に似た役割を果たす。
なお、本実施例では異常検知システムを用いて映像中の異常を検知する例を示したが、当然ながら本実施例で示した構成の一部又は全部を利用して、その他の応用に用いてもよい。例えば、工場のライン上の製品を外観検査する場合に、本実施例で例示した方法を用いて、異常検知を行ってもよい。その場合、例えば良品の画像データを正常データとして認識部(NN及びハッシュ関数)を学習してもよい。これにより、製品の画像データが入力された際に、認識器の出力結果に基づいて、当該製品が異常か否かを検知することができる。なお、異常か否かを判定するための処理の詳細は、特許文献3に記載されている方法を用いてもよく、詳細は省略する。
なお、本実施例では識別器として線形識別器を用いる例を示したが、データをカーネル空間に写像する(カーネル法に基づく非線形写像)ことで、非線形識別器の特性を利用できるように拡張してもよい。カーネルを利用する方法として、例えば、"Learning with kernels: support vector machines, regularization, optimization, and beyond", B Scholkopf, AJ Smola, MIT press, 2001や、"Random Features for Large-Scale Kernel Machines", Ali R., et al, Advances in Neural Information Processing Systems 20 (NIPS 2007)に記載の方法を用いてもよい。
以上では、ハッシュ関数を最適化する際に用いる目的関数の例を示した。特に、式(11)(12)を用いることにより、複数のハッシュ関数同士が類似しないように学習を行うことができる。しかしながら、目的関数がこれらのものに限定されるわけではない。例えば、式(11)(12)では、ハッシュ関数同士が直交に近くなるように目的関数を定義した。しかしながら、ハッシュ関数同士の類似度をその他の方法で定義し、複数の識別器間の類似度が低いほど評価値が高くなる目的関数を用いて、類似度が最小化されるように、ハッシュ関数の学習を行ってもよい。例えば、類似度の一種として、ハッシュ関数同士の、パラメータの平均に関する差等を用いてもよい。
[実施形態2]
実施形態1では、NNと組み合わせるハッシュ関数としてNSHを用いる例を示した。実施形態2では、NNと組み合わせるハッシュ関数として、p-stable hashを用いる例について説明する。p-stable hashは、例えばM. Datar et al. "Locality-Sensitive Hashing Scheme Based on p-Stable Distributions", SoCG, 2004.(以下、Datarと呼ぶ)に記載されている。
本実施形態における異常検知システムの構成及び動作は実施形態1と大部分が同一であり、以下では異なる点について説明する。本実施形態と実施形態1との大きな違いは、ハッシュ関数の生成方法と、その学習方法にある。
本実施形態において、ハッシュ関数生成部131は、Datarに記載の方法に従って動作する。本実施形態で用いるハッシュ関数は、式(13)で定義される。
式(13)において、rは定数であり任意の値をとることができる。cは例えば[0,r]の範囲の値をとる実数である。式(13)にはfloor関数が用いられており、式(13)により得られる値は、((wx+c)/r)の小数点以下を切り捨てた値である。このとき、cの増減に応じて、式(13)の分子は傾きが同じで切片だけが移動する線形関数の集合として定義される。
このように定義されたハッシュ関数を用いるとき、cの値として、任意の定数に従って[0,r]の区間を等分する値を用いることができる。例えば、r=9、刻み幅1の場合、c={0,1,2,3,4,5,6,7,8,9}となり、計10個の等間隔に並ぶ平行なハッシュ関数が得られる。さらに、式(13)のパラメータxが異なるハッシュ関数を複数用意することにより、互いに平行なハッシュ関数の集合を複数含むハッシュ関数群を得ることができる。
このように得られたハッシュ関数群を用いる場合、ハッシュ関数選択部132が行うdropout処理の方法としては様々なバリエーションが存在する。第1の方法として、実施形態1と同様に、全てのハッシュ関数を平等に扱い、すべてのハッシュ関数に対して確率的にdropoutするか否かの判定を行うことができる。
第2の方法として、cの値を変えることで得られた互いに平行なハッシュ関数の集合のそれぞれについて、集合に含まれる互いに平行なハッシュ関数を丸ごとdropoutするか否かを判定することができる。この方法では、複数の集合のそれぞれについて、dropoutするか否かを確率的に判定する処理を行うことができる。
また、ハッシュ関数更新部133が行うパラメータ更新処理の方法にも様々なバリエーションが存在する。全てのハッシュ関数について独立にパラメータを更新することができる。一方で、互いに平行なハッシュ関数の集合について、各ハッシュ関数が平行かつ等間隔に並ぶ状態を維持するように、集合に含まれる互いに平行なハッシュ関数のパラメータを同様に更新することもできる。
例えば、互いに平行なハッシュ関数の集合のうち1つのハッシュ関数のパラメータを更新する際は、この集合に含まれる他のハッシュ関数に関しても同様にパラメータを更新することができる。すなわち、あるハッシュ関数のパラメータに対しての変更は、このハッシュ関数が属するハッシュ関数の集合に対して同じように反映する、という処理を行うことができる。
ここで、パラメータの更新量をどのハッシュ関数に基づいて算出するかという点において、パラメータの更新方法には様々なバリエーションがある。以下では、その一例について説明する。図7は、共通のパラメータwを持つハッシュ関数の集合と、学習データとの関係を例示する模式図である。図7には、共通したパラメータwを持つハッシュ関数が表す超平面1401〜1405と、学習データ1406と、が示されている。学習データ1406は、NNの出力を、ハッシュ関数に対する入力データとして可視化したものである。
ここで、学習データ1406を用いてパラメータの更新量を求める場合、ハッシュ関数1401〜1405のそれぞれについて異なる更新量が算出される。この際、全てのハッシュ関数1401〜1405についてパラメータの更新量を求め、それぞれの更新量に基づいてハッシュ関数の集合に共通に適用する更新量を決定してもよい。一方で、ハッシュ関数1401〜1405のうち一部だけについてパラメータの更新量を求めてもよい。
例えば、1つのハッシュ関数についてパラメータの更新量を求め、得られた更新量をハッシュ関数の集合に共通に適用することができる。この場合、パラメータの更新量を求めるために用いるハッシュ関数の選択方法として、学習データをよりよく表現しているハッシュ関数を選択する方法が挙げられる。具体的な選択方法は特に限定されないが、例えば、それぞれのハッシュ関数について超平面から学習データまでの距離(法線の距離)を算出し、距離が最も小さいハッシュ関数を選択することができる。図7の例であれば、学習データ1406に最も距離が近いのは、ハッシュ関数の超平面1401である。実施形態1で説明したようにMinibatchに含まれる複数の学習データを用いてパラメータの更新量を求める場合も、同様にそれぞれの学習データまでの距離に基づいてハッシュ関数を選択することができる。
なお、例えばすべてのハッシュ関数に対して確率的にdropout処理を行っている場合等、dropoutしているハッシュ関数がハッシュ関数の集合に含まれている場合、dropoutしていないものからハッシュ関数を選択することができる。例えば、図7の例において超平面1401に対応するハッシュ関数がdropoutしている場合、これを除いたハッシュ関数の中から、学習データ1406に最も距離が近い超平面に対応するハッシュ関数を選択することができる。
[実施形態3]
実施形態1,2では、NNの出力を用いて識別を行う識別器としてハッシュ関数を用いる場合について説明した。実施形態3では、アダブーストを用いて識別器を構成する場合の例を示す。ここで、アダブーストとは、複数の弱識別器を用いて1つの強識別器を構成する方法であり、ブースティング手法の一種であるとされる。アダブーストの一例は、P. Viola et al. "Rapid Object Detection using a Boosted Cascade of Simple Features", CVPR 2001.(以降、Viola)に示されている。しかしながら、アダブーストを行うための具体的な手法には様々なバリエーションが存在している。上記の文献に示される手法、及び本実施形態で説明する方法は、様々なアダブーストの方法のうち1つを用いた場合の具体例にすぎず、使用するブースティング方法に特に制限はないことに注意すべきである。
特に、本実施例において重要なのは、実施形態1,2における複数のハッシュ関数のアナロジーとして例示されるアダブーストの構成と動作である。より具体的には、本実施形態においては、NNの出力を入力データとして受け取る複数の弱識別器の集合が存在し、これらの識別器の誤差がNNに逆伝播される。なお、本実施形態でも弱識別器の一部が確率的にdropoutされるが、既に説明したように、dropout処理は必須ではない。
本実施形態における異常検知システムの構成及び動作は実施形態1,2と大部分が同一であり、以下では異なる点について説明する。本実施形態と実施形態1との大きな違いは、本実施形態では複数の弱識別器を識別器として用いる点、及び識別器の学習方法にある。すなわち、本実施形態に係る異常検知システムの構成は、識別器学習部13及び識別部23においてハッシュ関数の代わりに弱識別器を用いることを除き、図1に示す実施形態1の構成と同様である。
図13は、本実施形態における識別器学習部13の構成例を示す。識別器学習部13は、弱識別器生成部131aと、弱識別器選択部132aと、弱識別器更新部133aと、を備える。
次に、識別器学習部13の動作について説明する。アダブースト自体は公知であり、例えばViolaに記載の構成を用いることができるため、以下では動作の概要及び本実施形態における特徴的な処理について説明する。
まず、弱識別器生成部131aは、複数の弱識別器の生成を行う。このとき、生成する弱識別器の種類は特に限定されないが、具体例として線形識別器を生成するものとする。また、生成する弱識別器の数も特に限定されないが、具体例として100個の弱識別器を生成するものとする。なお、アダブーストのバリエーションの1つには、1個の弱識別器を最初に生成し、順次弱識別器を追加していく方法もあり、このような方法を採用することもできる。弱識別器を追加する方法としては、例えばViolaに記載の方法が挙げられる。
こうして生成された弱識別器を用いて、弱識別器生成部131aは、それぞれの弱識別器の信頼度を計算する。信頼度の計算方法は特に限定されず、例えばViolaに記載の方法を用いることができる。なお、最初に弱識別器を生成した際に、弱識別器生成部131aは、各学習データに正規化された重みを設定する。その具体的な方法としては、例えばViolaに記載の方法を用いることができる。
次に、弱識別器更新部133aは、NN認識実行部125から、それぞれの学習データをNNに入力して得られるNNの認識結果(出力データ)を受け取る。例えば、弱識別器更新部133aは、実施形態1と同様に出力層907の出力を受け取ることができる。もっとも、受け取るNNの認識結果は特に限定されず、例えば他の層の出力を受け取ってもよい。
次に、弱識別器選択部132aは、生成された弱識別器のうち一部を、学習に用いる弱識別器として選択する。この処理は、実施形態1,2と同様に、学習のIterationごとに行うものとする。この際に、弱識別器を選択する基準は特に限定されない。例えば、実施形態1と同様に、弱識別器選択部132aは、各弱識別器を確率的に選択することができる。
次に、弱識別器更新部133aは、弱識別器選択部132aが選択した弱識別器の集合から、NNからの出力データを用いた識別処理について、最も正解率の高い弱識別器を選択する。そして、弱識別器更新部133aは、選択された弱識別器について信頼度を再計算し、各学習データを再度重み付けする。信頼度の計算及び重み付け方法は特に限定されないが、例えばViolaに記載の方法を用いることができる。具体例としては、正解率が高いほど選択された弱識別器の信頼度を上げることができ、また選択された弱識別器が学習データの識別に失敗している場合にこの学習データの重みを上げることができる。Violaの方法によれば、選択された複数の弱識別器全体についての識別結果の誤差として、最も正解率の高い弱識別器について識別誤差が得られるが、この誤差をNNに逆伝播することができる。別の方法として、信頼度に従って弱識別器を組み合わせて得られる強識別器についての識別誤差をNNに逆伝播してもよい。
その後、弱識別器更新部133aは、再び、NN認識実行部125から、それぞれの学習データを更新後のNNに入力して得られるNNの認識結果(出力データ)を受け取ることができる。以後は実施形態1と同様であり、弱識別器更新部133aは、学習に用いる弱識別器の選択、識別誤差の算出、及び誤差のNNへの逆伝播を繰り返すことができる。
一方、弱識別器更新部133aは、以上の処理によって弱識別器のそれぞれに信頼度を設定することができる。そして、この信頼度に従って弱識別器を組み合わせることにより、強識別器を構成することができる。こうして得られた強識別器のパラメータは、辞書記憶部M2に格納される。認識装置20の動作において、弱識別器を用いた認識処理を行う際に用いる方法は特に限定されず、例えばViolaに記載の方法を用いることができる。その際には、異常と正常とを判別する識別器として弱識別器の学習処理が行われる。
本実施形態では、データ中の物体やその状態を認識するNNと弱識別器とがあり、NNの出力を弱識別器に対する入力データとする構成において、弱識別器の誤差がNNに伝播するように動作して学習を行う。このとき、選択された一部の弱識別器だけを用いて学習を行うことを繰り返すことで、弱識別器の過学習が抑制され、最終的な認識結果(異常検知結果)の精度を向上させることができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
10:学習装置、11:データ読込部、12:NN学習部、13:識別器学習部、20:認識装置、21:データ読込部、22:NN認識部、23:識別部、30:端末装置、31:表示部

Claims (23)

  1. 学習データを認識器に入力して出力データを得る処理手段と、
    前記出力データを複数の識別器に入力することにより得られる前記学習データの識別結果の誤差を判定する判定手段と、
    前記識別結果の誤差に基づいて前記認識器の学習処理を行う第1の学習手段と、
    前記識別結果の誤差に基づいて前記複数の識別器のOne−class学習処理を行う第2の学習手段と、
    を備え、
    前記第1の学習手段は、前記識別結果の誤差を認識器に逆伝播することにより前記認識器の学習処理を行うことを特徴とする、情報処理装置。
  2. 学習データを認識器に入力して出力データを得る処理手段と、
    前記出力データを複数の識別器に入力することにより得られる前記学習データの識別結果の誤差を判定する判定手段と、
    前記識別結果の誤差に基づいて前記認識器の学習処理を行う第1の学習手段と、
    を備えることを特徴とする情報処理装置。
  3. 前記第1の学習手段は、前記識別結果の誤差を認識器に逆伝播することにより前記認識器の学習処理を行うことを特徴とする、請求項2に記載の情報処理装置。
  4. 前記判定手段は、前記複数の識別器のそれぞれに前記出力データを入力することにより得られる、前記複数の識別器のそれぞれによる前記学習データの識別結果の誤差に基づいて、前記複数の識別器全体についての識別結果の誤差を判定し、
    前記第1の学習手段は、前記判定された前記複数の識別器全体についての識別結果の誤差を認識器に逆伝播する
    ことを特徴とする、請求項1乃至3の何れか一項に記載の情報処理装置。
  5. 前記第1の学習手段は、前記複数の識別器による識別能力を低下させ、前記識別能力が低下した状態で得られる前記識別結果の誤差を認識器に逆伝播することにより、前記認識器の学習処理を行うことを特徴とする、請求項1乃至4の何れか一項に記載の情報処理装置。
  6. 前記複数の識別器から一部の識別器を選択する選択手段をさらに備え、
    前記第1の学習手段は、前記学習データを前記認識器に入力して得られた出力データを前記一部の識別器に入力することにより得られる前記識別結果の誤差を、前記認識器に逆伝播することにより、前記認識器の学習処理を行う
    ことを特徴とする、請求項1乃至5の何れか1項に記載の情報処理装置。
  7. 前記選択手段は、前記複数の識別器から第1の識別器セットと第2の識別器セットとを選択し、
    前記第1の学習手段は、
    学習データを前記認識器に入力して得られた出力データを前記第1の識別器セットに入力することにより得られる識別結果の誤差を、前記認識器に逆伝播することにより、前記認識器のパラメータを更新し、
    学習データをパラメータ更新後の前記認識器に入力して得られた出力データを前記第2の識別器セットに入力することにより得られる識別結果の誤差を、前記認識器に逆伝播することにより、前記認識器のパラメータを再度更新する
    ことを特徴とする、請求項6に記載の情報処理装置。
  8. 前記識別結果の誤差に基づいて前記複数の識別器の学習処理を行う第2の学習手段をさらに備えることを特徴とする、請求項2乃至7の何れか1項に記載の情報処理装置。
  9. 学習データを認識器に入力して出力データを得る処理手段と、
    前記出力データを複数の識別器に入力することにより得られる前記学習データの識別結果の誤差を判定する判定手段と、
    前記識別結果の誤差に基づいて前記複数の識別器の学習処理を行う第2の学習手段と、
    を備えることを特徴とする情報処理装置。
  10. 前記第2の学習手段は、前記複数の識別器間の類似度が低いほど評価値が高くなる目的関数を用いて学習を行うことを特徴とする、請求項1、8、及び9の何れか1項に記載の情報処理装置。
  11. 前記第2の学習手段は、前記複数の識別器間の直交性が高いほど評価値が高くなる目的関数を用いて学習を行うことを特徴とする、請求項1及び8乃至10の何れか1項に記載の情報処理装置。
  12. 画像を表す画像データ及び当該画像の種類を示す教師情報を取得し、画像処理により1つの前記画像から複数の前記学習データを生成する前処理手段をさらに備え、
    前記前処理手段は、前記画像処理により前記画像の種類が変化しない画像を選択し、前記選択された画像に対して前記画像処理を行い、前記画像処理前の前記選択された画像と、前記画像処理後の前記選択された画像と、を前記学習データとして出力することを特徴とする、請求項1乃至11の何れか1項に記載の情報処理装置。
  13. 画像データを前記学習処理後の認識器に入力して得られた出力データを前記複数の識別器に入力することにより得られた識別結果に基づいて、前記画像データ中の異常を検知する検知手段をさらに備えることを特徴とする、請求項1乃至12の何れか1項に記載の情報処理装置。
  14. 入力データを認識器に入力して出力データを得る処理手段と、
    前記出力データを複数の識別器に入力することにより前記入力データの識別結果を得る識別手段と、
    を備えることを特徴とする情報処理装置。
  15. 前記複数の識別器は、前記複数の識別器の類似度が低いほど評価が高くなるように学習により最適化されていることを特徴とする、請求項14に記載の情報処理装置。
  16. 前記認識器は、学習データを認識器に入力して得られた出力データを前記複数の識別器に入力することにより得られる識別結果の誤差を、前記認識器に逆伝播する学習処理によって得られていることを特徴とする、請求項14又は15に記載の情報処理装置。
  17. 前記複数の識別器はOne−class識別器、弱識別器、線形識別器、又はハッシュ関数を含むことを特徴とする、請求項1乃至16の何れか1項に記載の情報処理装置。
  18. 入力データを認識器に入力して得られた出力データを識別器に入力することにより前記入力データの識別結果を得るシステムが有する前記認識器の学習処理を行う情報処理装置であって、
    前記識別器の識別能力を低下させ、学習データを認識器に入力して得られた出力データを前記識別能力が低下した識別器に入力することにより得られる識別結果の誤差を前記認識器に逆伝播することにより、前記認識器の学習処理を行う手段を備えることを特徴とする、情報処理装置。
  19. 前記認識器はニューラルネットワークであることを特徴とする、請求項1乃至18の何れか1項に記載の情報処理装置。
  20. 前記情報処理装置は、入力された製品の画像に基づいて異常を検知することを特徴とする、請求項1乃至19の何れか1項に記載の情報処理装置。
  21. 前記識別器は、カーネル法に基づいて非線形にデータを写像することを特徴とする、請求項1乃至20の何れか1項に記載の情報処理装置。
  22. 情報処理装置が行う情報処理方法であって、
    学習データを認識器に入力して出力データを得る処理工程と、
    前記出力データを複数の識別器に入力することにより得られる前記学習データの識別結果の誤差を判定する判定工程と、
    前記識別結果の誤差を前記認識器に逆伝播することにより前記認識器の学習処理を行う第1の学習工程と、
    を備えることを特徴とする情報処理方法。
  23. コンピュータを、請求項1乃至21の何れか1項に記載の情報処理装置が備える各手段として機能させるためのプログラム。
JP2017146800A 2016-08-03 2017-07-28 情報処理装置、情報処理方法及びプログラム Active JP7007829B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016153212 2016-08-03
JP2016153212 2016-08-03

Publications (3)

Publication Number Publication Date
JP2018026122A true JP2018026122A (ja) 2018-02-15
JP2018026122A5 JP2018026122A5 (ja) 2020-09-03
JP7007829B2 JP7007829B2 (ja) 2022-01-25

Family

ID=61069309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017146800A Active JP7007829B2 (ja) 2016-08-03 2017-07-28 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US10706327B2 (ja)
JP (1) JP7007829B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019212073A (ja) * 2018-06-06 2019-12-12 アズビル株式会社 画像判別装置および方法
CN110619047A (zh) * 2019-09-16 2019-12-27 出门问问信息科技有限公司 一种自然语言模型的构建方法、装置以及可读存储介质
CN111488979A (zh) * 2019-01-28 2020-08-04 斯特拉德视觉公司 设备上持续学习用于分析输入数据的神经网络的方法及装置
WO2020209191A1 (ja) * 2019-04-09 2020-10-15 日本電気株式会社 学習装置、学習方法、及び非一時的なコンピュータ可読媒体
WO2021039797A1 (ja) * 2019-08-30 2021-03-04 株式会社Nttドコモ クリック率予測モデル構築装置
JPWO2021064856A1 (ja) * 2019-10-01 2021-04-08

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6766839B2 (ja) * 2018-03-14 2020-10-14 オムロン株式会社 検査システム、画像識別システム、識別システム、識別器生成システム、及び学習データ生成装置
CN110581834A (zh) * 2018-06-11 2019-12-17 中国移动通信集团浙江有限公司 一种通信能力开放异常检测方法和装置
CN110399897B (zh) * 2019-04-10 2021-11-02 北京百卓网络技术有限公司 图像识别方法和装置
US11068752B2 (en) 2019-10-31 2021-07-20 General Electric Company Inspection systems and methods including image classification module

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04364564A (ja) * 1991-06-12 1992-12-16 Matsushita Graphic Commun Syst Inc ニューラルネットワーク装置
JP2005258801A (ja) * 2004-03-11 2005-09-22 Matsushita Electric Ind Co Ltd 個人認証システム
JP2013182621A (ja) * 2012-02-29 2013-09-12 Canon Inc 分類器の学習方法及び装置、並びに処理装置
JP2016004550A (ja) * 2014-06-19 2016-01-12 ヤフー株式会社 生成装置、生成方法及び生成プログラム
JP2017520864A (ja) * 2014-04-09 2017-07-27 エントルピー インコーポレーテッドEntrupy Inc. 微視的差異からの機械学習を使用する物体の真贋鑑定

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683792A (ja) * 1991-06-12 1994-03-25 Hitachi Ltd ニューラルネットワークの学習装置およびニューラルネットワークの学習パターン呈示方法
US5428710A (en) * 1992-06-29 1995-06-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Fast temporal neural learning using teacher forcing
JP2005242640A (ja) * 2004-02-26 2005-09-08 Fuji Photo Film Co Ltd 対象物検出方法および装置並びにプログラム
JP4573036B2 (ja) * 2005-03-16 2010-11-04 オムロン株式会社 検査装置および検査方法
JP4787322B2 (ja) * 2006-06-16 2011-10-05 ビ−エイイ− システムズ パブリック リミテッド カンパニ− 目標追跡に関する改善策
JP5335536B2 (ja) * 2009-04-23 2013-11-06 キヤノン株式会社 情報処理装置及び情報処理方法
US9235799B2 (en) * 2011-11-26 2016-01-12 Microsoft Technology Licensing, Llc Discriminative pretraining of deep neural networks
US9406017B2 (en) 2012-12-24 2016-08-02 Google Inc. System and method for addressing overfitting in a neural network
JP6164899B2 (ja) 2013-04-05 2017-07-19 キヤノン株式会社 ハッシュ値生成装置、システム、判定方法、プログラム、記憶媒体
US9665823B2 (en) * 2013-12-06 2017-05-30 International Business Machines Corporation Method and system for joint training of hybrid neural networks for acoustic modeling in automatic speech recognition
CN105900116A (zh) * 2014-02-10 2016-08-24 三菱电机株式会社 分层型神经网络装置、判别器学习方法以及判别方法
US10043261B2 (en) * 2016-01-11 2018-08-07 Kla-Tencor Corp. Generating simulated output for a specimen
KR101899101B1 (ko) * 2016-06-01 2018-09-14 서울대학교 산학협력단 인공 신경망 기반 예측 모델 생성 장치 및 방법
US10783639B2 (en) * 2016-10-19 2020-09-22 University Of Iowa Research Foundation System and method for N-dimensional image segmentation using convolutional neural networks
US11106974B2 (en) * 2017-07-05 2021-08-31 International Business Machines Corporation Pre-training of neural network by parameter decomposition
US11120337B2 (en) * 2017-10-20 2021-09-14 Huawei Technologies Co., Ltd. Self-training method and system for semi-supervised learning with generative adversarial networks
JP7040104B2 (ja) * 2018-02-19 2022-03-23 富士通株式会社 学習プログラム、学習方法および学習装置
US20190378017A1 (en) * 2018-06-12 2019-12-12 Sun-Yuan Kung System and method for implementing a neural network
US11797864B2 (en) * 2018-06-18 2023-10-24 Fotonation Limited Systems and methods for conditional generative models
US10540798B1 (en) * 2019-01-10 2020-01-21 Capital One Services, Llc Methods and arrangements to create images

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04364564A (ja) * 1991-06-12 1992-12-16 Matsushita Graphic Commun Syst Inc ニューラルネットワーク装置
JP2005258801A (ja) * 2004-03-11 2005-09-22 Matsushita Electric Ind Co Ltd 個人認証システム
JP2013182621A (ja) * 2012-02-29 2013-09-12 Canon Inc 分類器の学習方法及び装置、並びに処理装置
JP2017520864A (ja) * 2014-04-09 2017-07-27 エントルピー インコーポレーテッドEntrupy Inc. 微視的差異からの機械学習を使用する物体の真贋鑑定
JP2016004550A (ja) * 2014-06-19 2016-01-12 ヤフー株式会社 生成装置、生成方法及び生成プログラム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019212073A (ja) * 2018-06-06 2019-12-12 アズビル株式会社 画像判別装置および方法
CN111488979A (zh) * 2019-01-28 2020-08-04 斯特拉德视觉公司 设备上持续学习用于分析输入数据的神经网络的方法及装置
JP2020119567A (ja) * 2019-01-28 2020-08-06 株式会社ストラドビジョンStradvision,Inc. スマートフォン、ドローン、船舶もしくは軍事的目的に利用するための、入力データを分析するニューラルネットワークをオンデバイス連続学習する方法及び装置、並びにこれによって学習されたニューラルネットワークをテストする方法及び装置
US11315021B2 (en) 2019-01-28 2022-04-26 StradVision, Inc. Method and device for on-device continual learning of a neural network which analyzes input data, and method and device for testing the neural network to be used for smartphones, drones, vessels, or military purpose
CN111488979B (zh) * 2019-01-28 2023-11-07 斯特拉德视觉公司 设备上持续学习用于分析输入数据的神经网络的方法及装置
WO2020209191A1 (ja) * 2019-04-09 2020-10-15 日本電気株式会社 学習装置、学習方法、及び非一時的なコンピュータ可読媒体
WO2021039797A1 (ja) * 2019-08-30 2021-03-04 株式会社Nttドコモ クリック率予測モデル構築装置
CN110619047A (zh) * 2019-09-16 2019-12-27 出门问问信息科技有限公司 一种自然语言模型的构建方法、装置以及可读存储介质
CN110619047B (zh) * 2019-09-16 2022-09-02 出门问问信息科技有限公司 一种自然语言模型的构建方法、装置以及可读存储介质
JPWO2021064856A1 (ja) * 2019-10-01 2021-04-08
WO2021064856A1 (ja) * 2019-10-01 2021-04-08 日本電気株式会社 ロバスト学習装置、ロバスト学習方法、プログラム及び記憶装置
JP7331937B2 (ja) 2019-10-01 2023-08-23 日本電気株式会社 ロバスト学習装置、ロバスト学習方法、プログラム及び記憶装置

Also Published As

Publication number Publication date
JP7007829B2 (ja) 2022-01-25
US20180039861A1 (en) 2018-02-08
US10706327B2 (en) 2020-07-07

Similar Documents

Publication Publication Date Title
JP7007829B2 (ja) 情報処理装置、情報処理方法及びプログラム
Ruff et al. Deep one-class classification
US11721131B2 (en) Liveness test method and apparatus
Basly et al. CNN-SVM learning approach based human activity recognition
JP6708385B2 (ja) 識別器作成装置、識別器作成方法、およびプログラム
US8340439B2 (en) Image conversion method and apparatus, and pattern identification method and apparatus
US20180157892A1 (en) Eye detection method and apparatus
KR20160096460A (ko) 복수의 분류기를 포함하는 딥 러닝 기반 인식 시스템 및 그 제어 방법
Charalampous et al. On-line deep learning method for action recognition
Kumar et al. Automatic live facial expression detection using genetic algorithm with haar wavelet features and SVM
JP5591178B2 (ja) テスト画像内のオブジェクトを分類するための方法
KR102592551B1 (ko) Ar장치를 위한 객체 인식 처리 장치 및 방법
Haque et al. Two-handed bangla sign language recognition using principal component analysis (PCA) and KNN algorithm
US11334759B2 (en) Information processing apparatus, information processing method, and medium
Parashar et al. Deep learning pipelines for recognition of gait biometrics with covariates: a comprehensive review
KR20170108339A (ko) 영상에서 다수의 객체를 인식하는 방법
CN113269010B (zh) 一种人脸活体检测模型的训练方法和相关装置
Jemilda et al. Moving object detection and tracking using genetic algorithm enabled extreme learning machine
US11423262B2 (en) Automatically filtering out objects based on user preferences
Khedher et al. Fusion of appearance and motion-based sparse representations for multi-shot person re-identification
CN112529025A (zh) 一种数据处理方法及装置
Ramachandra et al. Perceptual metric learning for video anomaly detection
CN111753583A (zh) 一种识别方法及装置
Bhattacharya HybridFaceMaskNet: A novel face-mask detection framework using hybrid approach
Pryor et al. Deepfake Detection Analyzing Hybrid Dataset Utilizing CNN and SVM

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200722

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200722

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220107