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

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

Info

Publication number
JP2021018477A
JP2021018477A JP2019132051A JP2019132051A JP2021018477A JP 2021018477 A JP2021018477 A JP 2021018477A JP 2019132051 A JP2019132051 A JP 2019132051A JP 2019132051 A JP2019132051 A JP 2019132051A JP 2021018477 A JP2021018477 A JP 2021018477A
Authority
JP
Japan
Prior art keywords
learning
learning data
neural network
data generation
parameters
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.)
Pending
Application number
JP2019132051A
Other languages
English (en)
Inventor
貴之 猿田
Takayuki Saruta
貴之 猿田
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
Priority to JP2019132051A priority Critical patent/JP2021018477A/ja
Publication of JP2021018477A publication Critical patent/JP2021018477A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】ロバスト性を高めて識別精度の高いニューラルネットワークを効率よく学習可能にすることを課題とする。【解決手段】情報処理装置は、学習データを生成する学習データ生成パラメータを設定するパラメータ設定手段(904)と、学習データ生成パラメータの範囲を設定する範囲設定手段(912)と、学習データ生成パラメータを基に生成された学習データと、学習データの教師値とに基づいて、ニューラルネットワークを学習する学習手段(901)と、学習データと教師値との誤差を評価する評価手段(902)と、評価の結果に基づいて、学習データと教師値との誤差が変動するように、設定された範囲内で学習データ生成パラメータを変換する変換手段(903)と、を有する。【選択図】図9

Description

本発明は、ニューラルネットワークを学習等する情報処理技術に関する。
画像・音声などのデータの内容を学習し識別を行う技術が存在する。識別処理の目的をここでは識別タスクと呼ぶ。例えば、画像中から人間の顔の領域を検出する顔識別タスクや、画像中にある物体(被写体)カテゴリを判別する物体カテゴリ識別タスク、シーン(撮影状況)のカテゴリを判別するシーン種別識別タスク、など多様な識別タスクがある。なお画像中の物体カテゴリは例えば人物、猫、車、および建物などのカテゴリが挙げられる。シーンのカテゴリは例えば都市、山間、および海岸などのカテゴリが挙げられる。
前述のような識別タスクを学習および実行する技術としては、ニューラルネットワーク(Neural Network:NN)の技術が知られている。また深い(つまり層の数が多い)多層ニューラルネットワークは、DNN(Deep Neural Networks)と呼ばれている。特に、非特許文献1に開示されているような深い畳み込みニューラルネットワークは、DCNN(Deep Convolutional Neural Networks)と呼ばれている。DCNNは、性能が高いことで近年注目されている。なお、DCNNとは、各層において、前層からの出力結果に対して畳み込み処理を行って次層に出力するようなネットワーク構造をもつものである。最終層は、識別結果を表す出力層となる。各層には畳み込み演算用のフィルタ(カーネル)が複数用意される。
DCNNの学習フェーズでは、畳み込みフィルタの値や全結合層の結合重み(両者を合わせて学習パラメータと呼ぶ)を、誤差逆伝搬法(バックプロパゲーション:BP)などの方法を用いて教師付きデータから学習する。識別フェーズでは、学習済DCNNにデータが入力され、各層において学習済みの学習パラメータによってデータを順次処理し、出力層から識別結果を得るかもしくは中間層の出力結果を集計して、識別器に入力することで識別結果が得られる。
またDCNNの学習には大量の学習データが必要であることが知られている。ただし大量の教師付きデータを用意することは難しいため、学習データの教師値に影響がないように学習データを変換することで擬似的に学習データを増やすことがある。特許文献1には、学習画像に対して主成分分析を行って取得された固有値および固有ベクトルの組から、ランダムに所定数選択して学習画像を生成することで、色変換された学習画像を擬似的に増やす技術が開示されている。特許文献2には、学習画像に対して所定の加工処理を施した第2の画像を生成して学習画像として用いる技術が開示されている。
米国特許出願公開第2004/0177947号明細書 特開2011−221840号公報
Krizhevsky,A.,Sutskever,I.,&Hinton,G.E.,"Imagenet classification with deep convolutional neural networks.",In Advances in neural information processing systems(pp.1097−1105),2012.
上述した従来のニューラルネットワーク、特にDCNNでは、効率よくニューラルネットワークのパラメータを学習することが必要になる。そして、学習されたDCNNの精度を評価する基準の一つとしてロバスト性がある。ロバスト性とは、DCNNに入力される評価画像の画像変動に対する識別精度の頑健性である。例えば、カメラAで撮影された学習画像でDCNNを学習し、カメラBで同じ対象を撮影した評価画像をDCNNに入力した場合に識別精度が大きく劣化する場合、学習されたDCNNのロバスト性は低いことになる。また、同じカメラAで撮影した評価画像の場合でも、撮影時のパラメータ(絞り値、シャッタースピード、絞り値やISO感度など)を変更した場合に識別精度が大きく劣化する場合、ロバスト性は低くなる。
しかしながら、前述の開示されている技術では学習されたニューラルネットワークのロバスト性が十分でない場合があり、識別精度の高いニューラルネットワークを効率よく学習することが難しい。
そこで、本発明は、ロバスト性を高めて識別精度の高いニューラルネットワークを効率よく学習可能にすることを目的とする。
本発明の情報処理装置は、学習データを生成する学習データ生成パラメータを設定するパラメータ設定手段と、前記学習データ生成パラメータの範囲を設定する範囲設定手段と、前記学習データ生成パラメータを基に生成された学習データと、前記学習データの教師値とに基づいて、ニューラルネットワークを学習する学習手段と、前記学習データと前記教師値との誤差を評価する評価手段と、前記評価の結果に基づいて、前記学習データと前記教師値との誤差が変動するように、前記設定された範囲内で前記学習データ生成パラメータを変換する変換手段と、を有することを特徴とする。
本発明によれば、ロバスト性が高く、識別精度の高いニューラルネットワークを効率よく学習可能となる。
実施形態の情報処理装置が適用されるシステム構成の一例を示す図である。 画像分類が行われる識別対象画像の一例を示す図である。 識別対象物体の一例を示す図である。 識別対象画像の領域分割例を示す図である。 情報処理装置のハードウェア構成例を示す図である。 DCNNの構造およびDCNNを用いた識別処理の一例を示す図である。 識別を行う情報処理装置の機能構成例を示す図である。 識別時における情報処理の流れを示すフローチャートである。 学習装置の機能構成例を示す図である。 学習時の情報処理の流れを示すフローチャートである。 学習データ生成パラメータに対する評価データの精度例を示す図である。 ニューラルネットワークの最終層の一例を示す図である。 ニューラルネットの各層の処理内容と出力結果の一例を示す図である。 NN評価処理における評価結果の一例を示す図である。 NN学習処理におけるバッチ処理の流れを示すフローチャートである。
以下、添付の図面を参照して、本発明に係る実施形態について詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<第1の実施形態>
図1は、第1の実施形態の情報処理装置を備えたシステム100の概略的な構成例を示す図である。図1のシステム100は、カメラ10と識別装置20とが、ネットワーク15を介して接続されて構成されている。識別装置20は、本実施形態に係る情報処理の一例である画像識別処理等を実行可能な情報処理装置である。識別装置20とカメラ10とは一体に構成されていてもよい。また図1のシステム100は、識別装置20と学習装置50とがネットワーク15を介して接続されている。学習装置50は、本実施形態に係る情報処理の一例として多層ニューラルネットワークを学習する情報処理装置である。識別装置20と学習装置50は一体に構成されていてもよい。
カメラ10は、識別装置20による情報処理の対象となる画像(識別対象画像)を撮影する。図1は、被写体として木30a、自動車30b、建物30c、空30d、道30e、および人体30f等が画角(撮影範囲)内に存在するシーン(撮影状況)30を、カメラ10が撮影する例を示している。
識別装置20は、画像識別処理として識別タスクを行う。本実施形態では、画像分類(classification)タスク、物体検出(detection)タスク、および領域分割(segmentation)タスク等を例に挙げる。画像分類タスクは、カメラ10で撮影(撮像)されたシーン30の画像内に写っている各被写体を分類するタスクである。物体検出タスクは、各被写体のそれぞれの位置を検出するタスクである。領域分割タスクは、各被写体の領域を抽出するタスクである。本実施形態で挙げたタスクは、一例であり、これらの他に、例えば人物の顔の識別するタスクや、シーン(撮影状況)の種別を分類するタスク、など他のタスクが行われてもよい。
図2(a)から図2(c)は、画像分類が行われる識別対象画像の一例を示した図である。図2(a)は建物に画像分類される画像の例を、図2(b)は木(林・森)に画像分類される画像の例を、図2(c)は車に画像分類される画像の例を示している。図3は、識別対象画像からの物体検出の一例を示しており、図中の車31が識別対象物体である場合に物体検出が行われた例を示している。物体検出の結果は矩形の被写体領域32として抽出される。図4(a)と図4(b)は、領域分割の一例を説明する図である。図4(a)に示されるような撮影された識別対象画像400は、画素ごとにクラスの識別が行われる。ここでいうクラスとは、図4(b)に示されるような各画素に対応して振られる「sky」、「tree」、「car」、「building」、および「road」等といった被写体の分類に関するクラスカテゴリー名である。
図5は、識別装置20と学習装置50のいずれにも適用可能な情報処理装置のハードウェア構成の一例を示す図であり、例えばパーソナルコンピュータが挙げられる。図5に示す情報処理装置は、CPU501、RAM502、ROM503、HD504、操作部505、表示部506、およびネットワークI/F507を有する。
ROM503は、リードオンリーメモリであり、本実施形態に係る情報処理プログラムを含む各種プログラム等を格納している。HD504はハードディスクであり、本実施形態に係るプログラムを含む各種プロブラム、閾値に関するデータ等を含む各種のデータ、後述する学習データや教師値、およびカメラ10で撮影された画像データ等を格納可能な記領域置である。RAM502は、ランダムアクセスメモリであり、ROM503あるいはHD504から読み出されたプログラムが展開されるワークエリアとして機能し、また画像データ等を一時的に格納する記憶領域である。
CPU501は、中央処理ユニットであり、本実施形態の識別装置20または学習装置50の全体の動作および処理を制御する。CPU501は、ROM503またはHD504等から読み出されてRAM502に展開されたプログラムを実行することにより、識別装置20または学習装置50の後述する機能構成やフローチャートの処理を実現する。
操作部505は、ユーザによる入力操作を受け付けて、その入力操作情報をCPU501に出力する。表示部506は、識別装置20が扱う画像等や学習装置50の情報等を必要に応じて表示する。ネットワークI/F507は、識別装置20または学習装置50と、外部の機器とを接続する。
まずニューラルネットワーク(NN)を用いて画像の識別が行われる際の処理について説明する。
本実施形態で説明するニューラルネットワークは、例えばDCNN(Deep Convolutional Neural Networks)であるとする。DCNNは、畳み込み(convolution)演算を多く行うニューラルネットワークである。例えば、非特許文献1には、畳み込み処理と非線形処理との組み合わせで特徴層が実現され、その後、全結合層(fullconect)を経て画像分類結果(各クラスに対する尤度)を出力する技術が開示されている。非線形処理には、relu処理やmaxpooling処理などがある。relu処理は、rectified linear unit rectifier(正規化線形関数)処理の略称である。maxpooling処理は、pooling層において所定の範囲内で最大値を取得して出力する処理である。
図6(a)から図6(c)は、DCNNの構造およびDCNNを用いた識別処理の一例の説明に用いる図である。ここでは入力層の入力画像が「img」、畳み込み層の処理が「conv」、relu層の処理が「lelu」、pooling層の処理が「pool」、全結合層の結合処理が「fc」、および最終層の出力結果が「Output」と表されている。
図6(a)に示すように、DCNNを用いた画像の識別処理では、入力画像のimg600に対し、conv601、relu602、conv603、relu604、pool605、・・・の順に各層の処理が行われる。同様に、conv606、relu607、conv608、relu609、pool610、・・・の順に各層の処理が行われ、このような各層の処理が所定回数繰り返される。その後、fc611、relu612、fc613、relu614、およびfc615の順に各層の処理が行われて、最終層の出力結果であるOutput650が得られる。
ここで、非線形処理の一つであるrelu処理は、式(1)のように、前層のconv層の出力結果のうち、負の値を0とする処理である。
x=max(0,x) 式(1)
前述の例では、非線形処理としてrelu処理を用いたが、シグモイド関数などの他の非線形処理が用いられてもよい。また入力画像のImg600は、DCNNに入力する際に、所定画像サイズで画像がクロップもしくはリサイズされた画像であってもよい。
他の例として、識別処理は、参考文献1に開示されているような、ニューラルネットワークの中間層の処理結果を特徴ベクトルとして識別器に入力することによって識別を行う処理であってもよい。
参考文献1:Jeff Donahue, Yangqing Jia, Judy Hoffman, Trevor Darrell,“DeCAF:A Deep Convolutional Activation Feature for Generic Visual Recognition”,arxiv
図6(b)は、中間層の処理結果を特徴ベクトルとして識別器に入力する場合の例を示した図である。図6(b)では、特徴ベクトルが「feature」として表されている。識別器は、例えばSupport−Vector−Machine(SVM)であるとする。図6(b)の例では、中間層のrelu609の処理結果を、特徴ベクトルのfeature616としてSVM617に入力することによって識別が行われている。
図6(b)ではrelu609の出力結果を特徴ベクトルとして利用する例を挙げたが、例えば、前層のconv608の出力結果、後層のpool610の出力結果、他の中間層の出力結果、またはそれら出力結果の組み合わせが利用されてもよい。また、識別器はSVMとしたが、他の識別器が用いられてもよい。
図6(b)の場合、入力画像に対して識別結果が一意に出力されるが、図4に示したような領域分割された識別対象領域を識別する場合などで、画素や小領域ごとに識別を行う場合には、図6(c)のような構成が用いられてもよい。図6(c)の構成例の場合、リサイズ618として表しているように、所定の中間層の出力結果に対してリサイズ処理が行われる。リサイズ処理は、中間層の出力結果を入力画像サイズと同サイズにリサイズする処理である。すなわちDCNNを用いる場合、中間層の出力結果は入力画像サイズに比べて小さくなるため、中間層の出力結果を入力画像サイズにリサイズする必要がある。リサイズの方法は、最近傍法(Nearest−Neighbor−Algorithm)などの補間手法であれば何でもよい。リサイズ処理後の各中間層の各出力結果651は、それぞれ同サイズになる。リサイズ処理後は、各出力結果651内の注目画素もしくは小領域における所定の中間層の出力結果619を、特徴ベクトルとして前述同様にSVM621に入力することで識別が行われる。この例の場合も識別器は、SVM以外の識別器でもよい。
図7(a)は、第1の実施形態の識別装置20が実行する処理を、それぞれ機能ブロックとして示した図である。
本実施形態の場合、図7(a)に示した各機能部は、例えば図5のCPU501がプログラムを実行することによって実現されるが、各機能部の一部もしくは全部がハードウェア回路によって実現されていてもよい。なお図7(a)には、識別装置20内の各機能部の他に、図1のカメラ10に相当する撮影装置700も描かれている。
第1の実施形態の撮影装置700は、識別対象画像を取得する。本実施形態の識別装置20は、入力部701、出力部702、パラメータ保持部706を有している。なお、パラメータ保持部706は、例えば図5のHD504に相当するが、不揮発性の記憶装置として識別装置20に外部接続等された構成であってもよい。第1の実施形態の識別装置20が有するこれらの各機能部の詳細は後述する。
図8(a)は、図7(a)に示した識別装置20の各機能部において実行される処理の概要を示したフローチャートである。
まずステップS800のNN入力処理として、入力部701は、撮影装置700によって撮像された識別対象画像を入力データとして取得する。ステップS800で取得された識別対象画像は、出力部702に送られる。
次にステップS801のNN出力処理として、出力部702は、入力部701から送られてきた識別対象画像に対する識別処理を、パラメータ保持部706に保持されたニューラルネットワークを用いて行い、その識別結果を出力する。
以下、図8(a)に示したフローチャートを参照しつつ、図7(a)に示した識別装置20の各機能部が実行する各処理、つまり図5のCPU501が実行する各処理の、より詳細な内容を説明する。
ステップS800のNN入力処理として、入力部701は、図1に示したようなシーン30を撮影装置700が撮影した画像データを、図4(a)に示したような識別対象画像400のデータとして取得する。なお、取得される識別対象画像は、不図示の外部装置に格納されている画像であってもよい。その場合、入力部701は、外部装置から読み出された画像を識別対象画像として取得する。外部装置に格納されている画像は、例えば撮影装置700が予め撮影した画像であってもよいし、ネットワーク等を経由するなどの他の方法で取得されてから格納された画像であってもよい。入力部701で取得された識別対象画像400のデータは、出力部702に送られる。
次にステップS801のNN出力処理として、出力部702は、NN入力処理で取得された識別対象画像400のデータを、予め学習されたニューラルネットワークに入力する。そして、出力部702は、そのニューラルネットワークの最終層からの出力結果の情報を、識別結果として出力する。出力部702は、先に説明した画像分類タスク、物体検出タスク、およびは領域分割タスクなどのような、複数のタスクに対してそれぞれ識別結果を出力してもよい。また本実施形態において利用するニューラルネットワークは、例えば前述の図6(a)に示したような多層ニューラルネットワークであるとする。本実施形態における多層ニューラルネットワークは、後述する学習装置50によって学習されたものであり、当該多層ニューラルネットワークの構造およびパラメータは予めパラメータ保持部706に保持されている。
次に本実施形態において用いられるニューラルネットワークを学習する際の処理について説明する。
図9(a)は、第1の実施形態における学習装置50が実行する処理を、それぞれ機能ブロックとして示した図である。本実施形態の場合、図9(a)に示した各機能部は、例えば図5のCPU501がプログラムの実行により実現されるが、各機能部の一部もしくは全部がハードウェア回路によって実現されていてもよい。
第1の実施形態の学習装置50は、学習部901、評価部902、変換部903、パラメータ設定部904、表示部905、範囲設定部912、パラメータ保持部906、学習データ保持部907、および評価データ保持部908を有している。パラメータ保持部906、学習データ保持部907、および評価データ保持部908は、例えば図5のHD504に相当するが、不揮発性の記憶装置として学習装置50に外部接続等された構成であってもよい。第1の実施形態の学習装置50が有するこれらの各機能部の詳細は後述する。
本実施形態の学習装置50は、学習データ保持部907が保持しているデータで学習を行った後に、ニューラルネットワークを評価し、その評価結果に基づいて学習データ生成パラメータを変換して新たな学習画像を生成する機能を有する。なお学習装置50は、予め学習されたニューラルネットワークを保持しておいて、そのニューラルネットワークを評価してもよい。本実施形態の学習装置50は、評価画像データおよびパラメータを評価データとして評価データ保持部908に保持している。本実施形態の学習装置50は、ニューラルネットワークの精度を評価する基準の一つとしてロバスト性を挙げる。なお、ロバスト性とは、ニューラルネットワークに入力される評価画像の画像変動に対する識別精度の頑健性である。本実施形態の学習装置50は、学習データ保持部907が保持しているデータで学習を行った後、その学習結果と評価データとの比較によってニューラルネットワークを評価し、その評価結果に基づいて学習データ生成パラメータを変換して学習画像を生成する。
以下、本実施形態の学習装置50において行われる学習処理、ニューラルネットワークの評価処理、評価結果に基づく学習データ生成パラメータの変換処理と学習画像の生成について説明する。
図10(a)は、図9(a)に示した学習装置50の各機能部において実行される処理の概要を示したフローチャートである。
まずステップS1001の学習データ生成パラメータ設定処理として、パラメータ設定部904は、ニューラルネットワークの学習に利用される学習データ生成パラメータを設定する。学習データ生成パラメータおよびその具体的な設定方法に関しては後述する。設定された学習データ生成パラメータの情報は、変換部903および範囲設定部912に送られる。
次にステップS1002の学習データ生成パラメータ範囲設定処理として、範囲設定部912は、ステップS1001で設定された学習データ生成パラメータの範囲を設定する。そして、設定された範囲の情報は、変換部903に送られる。詳細は後述するが、本実施形態の学習装置50は、設定した学習データ生成パラメータの範囲内で学習画像を生成して、ニューラルネットワークを学習することでロバスト性の向上を実現している。同じく詳細は後述するが、本実施形態の学習装置50は、ニューラルネットワークの学習時の学習データと教師値との誤差を利用することで、効率よく学習データ生成パラメータを決定して学習データを生成する。
次にステップS1003のNN学習処理として、学習部901は、前述のように設定された学習データ生成パラメータを利用し、学習データ保持部907に保持されている学習データを用いることで、ニューラルネットワークを学習する。また学習部901は、必要に応じて、設定された学習データ生成パラメータを利用して学習データを生成し、その学習データを用いてニューラルネットワークを学習する。ニューラルネットワークの学習処理の詳細に関しては後述する。そして、学習されたニューラルネットワークのデータは、評価部902に送られる。また学習結果の情報は、表示部905に送られ、これによりユーザは学習結果を確認することができる。なお、本実施形態において、学習結果とは、学習時において学習データと教師値とから計算される誤差の値、および、学習されたニューラルネットワークのパラメータなどである。
次にステップS1004のNN評価処理として、評価部902は、評価データ保持部908に保持されている評価データを用いて、NN学習処理で学習されたニューラルネットワークの評価を行う。ニューラルネットワークの評価方法に関しては後述する。ニューラルネットワークの評価結果の情報は、変換部903および表示部905に送られる。この時の表示部905は評価結果を表示し、これによりユーザは、表示部905上で評価結果の内容を確認することができる。なお表示部905は、評価結果とともに、前述したニューラルネットワークの学習結果を表示してもよく、この場合のユーザは、評価結果と学習結果の両方を確認することができる。
次にステップS1005において、学習部901は、評価部902による評価結果に基づいて、ニューラルネットワークの学習を終了するかあるいは継続するかを決定する。学習を終了するか継続するかの決定方法については後述する。そして、学習装置50は、ステップS1005において学習を終了すると決定した場合には図10のフローチャートの処理を終了し、一方、学習を継続すると決定した場合には次のステップS1006に処理を進める。
ステップS1006の学習データ生成パラメータ変換処理に進むと、変換部903は、NN評価処理による評価結果に基づいて、ニューラルネットワークの学習データ生成パラメータを変換して学習画像を生成する。本実施形態の場合、変換部903は、NN評価処理による評価結果に基づいて、学習データと当該学習データの教師値との誤差が変動するように、範囲設定部912で設定されたパラメータの範囲内で学習データ生成パラメータを変換する。そして、その変換後の学習データ生成パラメータを利用して学習画像を生成する。学習データ生成パラメータ変換および学習画像生成の詳細な処理に関しては後述する。変換された学習データ生成パラメータおよび学習画像のデータは、学習部901に送られ、さらに学習部901を介して表示部905にも送られる。この時の表示部905は、変換後の学習データ生成パラメータの内容および学習画像を表示し、これによりユーザは、表示部905上で、変換後の学習データ生成パラメータの内容および学習画像と評価結果の内容とを確認することができる。なお、表示部905は、変換後の学習データ生成パラメータの内容等とともに、前述したニューラルネットワークの学習結果を表示してもよく、この場合のユーザは、変換後の学習データ生成パラメータの内容と学習結果の両方を確認することができる。
ステップS1006の後、学習装置50は、ステップS1002に処理を戻し、ステップS1002以降の処理が行われる。これにより、ステップS1003において、学習部901は、変換された学習データ生成パラメータによって生成された学習データ(学習画像)を用いて、再度ニューラルネットワークを学習する。これ以降の処理は前述同様である。なお多層ニューラルネットワークを学習する場合には、通常、ミニバッチ学習が行われる。その場合には、後述する図15に示すようなNN学習処理の中で、ステップS1004のNN評価処理やステップS1006の学習データ生成パラメータ変換処理を行うこともできる。その場合の処理については後述する。
以下、図10(a)のフローチャートにおける学習時の各ステップの処理について、より詳細な内容を説明する。本実施形態において、ニューラルネットワークは、先に説明したDCNNであるとする。
ステップS1001の学習データ生成パラメータ設定処理において、パラメータ設定部904は、ニューラルネットワークが学習する学習データ生成パラメータを設定する。
ここで、設定される学習データ生成パラメータは、層の数、層の処理内容(構造)、フィルタサイズ、および出力チャンネル数などを含む。また本実施形態のように画像の識別のための学習が行われる場合、学習データ生成パラメータは、画像補正パラメータ、画像現像パラメータ、CG画像の生成ツールが用いるパラメータなどをも含む。画像補正パラメータは、例えばノイズ付加やガンマ補正による画像劣化、および、ぶれやボケに起因する画像劣化などを補正する際に用いられるパラメータである。画像補正パラメータには、ローパスフィルタの設定パラメータが含まれていてもよい。画像現像パラメータは、RAW画像を現像する際に使用されるパラメータであり、ガンマ値、色調補正、ホワイトバランス、およびコントラストなどの各設定パラメータが含まれる。ニューラルネットワークの学習には、大量の画像が必要とされるため、学習画像には現像された画像を用いることが多いが、学習画像の一部にRAW画像が含まれる場合には、画像現像パラメータが学習データ生成パラメータに含められる。CG画像の生成ツールが用いるパラメータは、学習画像にCG画像が含まれる場合に設定されるパラメータである。学習画像にCG画像が用いられる例については後述する第2の実施形態で説明する。それぞれのパラメータ定義に関しては、ステップS1006の処理内容のところで説明する。
第1の実施形態のパラメータ設定部904は、学習されたニューラルネットワークで識別処理を行う際に起き得る画像劣化をシミュレーションする。パラメータ設定部904は、そのシミュレーション結果に基づいて、画像補正パラメータや画像現像パラメータなどを画像データ生成パラメータに設定する。そして、パラメータ設定部904で設定された学習データ生成パラメータは、変換部903と範囲設定部912に送られる。
次にステップS1002の学習データ生成パラメータ範囲設定処理において、範囲設定部912は、ステップS1001で設定された学習データ生成パラメータの範囲を設定する。学習データ生成パラメータに画像補正パラメータが設定された場合、範囲設定部912は、画像劣化におけるノイズ量、ぶれやぼけ量に応じた範囲を設定する。また学習データ生成パラメータに画像現像パラメータが設定された場合、範囲設定部912は、ガンマ値、色調補正量、ホワイトバランス係数、およびコントラスト等のパラメータの範囲を設定する。またRAW画像やRAW画像を現像した画像データが評価データとして評価データ保持部908に保持されている場合、範囲設定部912は、それらの評価データを取得して各学習データ生成パラメータの範囲を決定してもよい。なお評価データは、評価データ保持部908が保持している場合の他、ネットワークなどを介して別途取得されてもよい。また学習データ生成パラメータの範囲は、例えば図11に示すように、評価データに対する評価結果に基づいてユーザが設定してもよい。
図11は、学習データ生成パラメータに対する評価データの精度を示した図である。本実施形態の学習装置50は、例えば表示部905の表示画面1102上に図11に示すような画面を表示する。そしてユーザ1100が操作部505を介してポインタ1101を操作して、学習データ生成パラメータの範囲θ1およびθ2を指示すると、学習装置50は、それら学習データ生成パラメータの範囲θ1およびθ2をユーザにより設定された範囲として取得する。なお範囲設定部912は、学習データ生成パラメータに対する精度に関する情報として、学習する際に実際に起き得る確率のデータを保持していてもよい。また範囲設定部912は、各パラメータに対してマージンをつけた広い範囲のデータを保持していてもよい。
次にステップS1003のNN学習処理において、学習部901は、設定された学習データ生成パラメータを利用してニューラルネットワークを学習する。本実施形態の場合、学習部901は、図4(a)に示したような画像入力からconv処理とrelu処理およびpooling処理までが数回行われた後の出力結果に、全結合層(fc)を三層接続して結果を出力するネットワークを学習する。例えば、画像分類タスクの学習で用いられるILSVRCの1000クラス画像分類データを学習する場合には、図12に示すような処理を行う。
図12の例では、三層接続された全結合層1201、1202、および1203の最終層(1203)の出力ノード1205のノード数が1000個となされ、それぞれの出力結果1204が、各画像に割り振られている画像分類クラスにおける尤度となされる。学習部901は、学習データ保持部907に保持されている学習データに対する各出力結果1204と教師値との誤差をニューラルネットワークに対して逆伝播して各畳み込み層のフィルタ値(重み)を確率的勾配降下法などで更新する。確率的勾配降下法は、SGD(Stochastic Gradient Descent)法などを用いればよい。これはニューラルネットワークの出力結果と教師値との誤差をニューラルネットワークの出力側から入力側に順々に伝播していく方法である。学習部901は、ニューラルネットワークの各パラメータで誤差を偏微分して求められる勾配方向にニューラルネットワークの各パラメータを更新することで、誤差を小さくするようなニューラルネットワークのパラメータを学習する。
図13(a)は、第1の実施形態に係る学習部901によって学習されるニューラルネットワークの一例を示した図であり、ニューラルネットワークの各層での処理内容および各層での出力結果を示した図である。図13(a)中のimg、conv、relu、pool、fc、output等は前述の図6(a)で説明したものと同様である。図13(a)の場合、入力画像のimg1300は、変換処理1301の後、conv1302からrelu1313の処理を経てfc1314に入力される。fcの全結合層の処理に関しては図13(a)に示したように三層で表現されている。
図13(a)には、各層への入力や各層の処理結果も示されている。図13(a)では、入力画像がI、変換処理1301での学習データ生成パラメータの変換処理後の学習画像がI’、conv処理、relu処理、pooling処理の各出力結果がa1〜a16、最終出力結果がyで示されている。変換処理1301は変換部903において行われる。変換処理1301の処理内容は予め設定されていてもよいし、I=I’になるような恒等写像への変換処理でもよい。
また確率的勾配降下法による学習の場合、各畳み込み処理に用いるカーネルKの学習は、出力結果yとその教師値tとの誤差Eを用いて、∂E/∂Kで算出される勾配方向にカーネルKのパラメータを更新することで実現する。カーネルとは、各畳み込み処理に用いられるフィルタ群であり、本実施形態では(フィルタサイズX)×(フィルタサイズY)×(入力データの次元数)×(出力結果の次元数)のパラメータ数を有するものとする。∂E/∂Kは、連鎖率を用いて式(2)で表される。
∂E/∂K=(∂E/∂y)×(∂y/∂a16)×(∂a16/∂a15)×(∂a15/∂a14)×…×(∂ak/∂K) 式(2)
なお式(2)中のkは更新したカーネル層のインデックスを示している。式(2)の∂E/∂yは、例えば誤差Eが出力結果yに対して式(3)で表されるとすると、式(4)のように表される。
E=(1/2)×(y−t)2 式(3)
∂E/∂y=y−t 式(4)
ここでは、簡単のため誤差を2乗誤差で説明したが、先に説明した識別タスクでは別の誤差が用いられる。例えば、画像分類タスクの場合にはソフトマックス誤差、物体検出タスクの場合には対象スコアに対してはユークリッド誤差、位置などを推定する場合には回帰誤差などが用いられる。
また各層の入力と出力結果で算出される∂ai/∂a(i-1)は、その層での処理内容によって異なる。畳み込み層はカーネルKとなるが、relu層やpooling層はその入力結果によって異なる。relu層では式(5)のようになる。またpooling層では式(6)のようになる。なお、式中のp、qは各pooling処理範囲における各点を示している。
Figure 2021018477
Figure 2021018477
relu層では入力結果が0より大きい場合のみ誤差が逆伝播される。pooling層ではpooling処理される範囲内で最大値を有するときのみ誤差が逆伝播される。そして、式(2)で表される∂E/∂Kを用いて、カーネルKは式(7)で更新される。
K=K−μ(∂E/∂K) 式(7)
ここで式(7)のμは学習率である。学習部901は、式(7)で表される更新式に従って、所定回数カーネルKの更新を繰り返し、ステップS1003のNN学習処理を完了する。そして、学習されたニューラルネットワークのパラメータは、評価部902、表示部905、およびパラメータ保持部906に送られる。表示部905には学習時の誤差Eの推移やカーネルKの値が表示されることで、ユーザはそれらを確認することができる。
次にステップS1004のNN評価処理において、評価部902は、ステップS1003のNN学習処理で学習されたニューラルネットワークを評価する。評価部902は、評価データ保持部908に保持されている評価データを用いて、ニューラルネットワークの評価を行う。本実施形態ではニューラルネットワークの評価に評価データを用いる例を挙げているが、評価部902は、学習データの一部を用いてニューラルネットワークの評価を行ってもよい。また、本実施形態の評価部902は、学習したニューラルネットワークによる評価データの識別精度だけでなく、ニューラルネットワークに入力される評価画像の画像変動に対する識別精度の安定性を示すロバスト性をも評価する。具体的には、評価部902は、ステップS1001で設定されたパラメータを基に、評価データに画像変動分を加えて評価を行うことでロバスト性を評価する。本実施形態において、識別精度は、評価データに対する誤差を用いており、誤差の算出方法は学習時に学習データに対して算出している方法と同様でよい。
ステップS1004のNN評価処理における評価結果は、変換部903、表示部905に送られる。この時の表示部905では、評価結果である評価データに対する識別精度およびロバスト性をユーザが確認できる。ユーザによるロバスト性の確認は、例えば各画像データ生成パラメータの識別精度を表示することにより実現可能である。
図14(a)〜図14(c)は、学習データ生成パラメータをθとしたときに、各学習データ生成パラメータθの評価データに対する誤差を表した図である。
図14(a)では、各学習データ生成パラメータθでの評価データに対する誤差が、曲線1401で表されている。図14(a)に示されているように、評価データに対する誤差は、学習データ生成パラメータの範囲の境界部(θ1,θ2)に近づくにつれて大きくなる。
図14(b)は、ステップS1006の学習データ生成パラメータ変換処理により学習パラメータを変換し、該変換した学習パラメータを利用した学習処理を繰り返すことで、学習データ生成パラメータに対してロバスト性が向上している例を示した図である。すなわち図14(b)の場合、曲線1402に示すように、学習データ生成パラメータθに対して誤差が小さい範囲が、図14(a)の曲線1401の場合よりも広がっており、これはロバスト性が向上していることを意味している。そして、本実施形態の場合、学習部901は、設定された学習データ生成パラメータの範囲内で、評価データに対する誤差が所定の閾値より小さい場合には、ロバスト性が向上していると判定する。
したがって学習部901は、ステップS1005で学習処理を終了するかどうか決定する際、ステップS1001で設定された学習データ生成パラメータの範囲内で、評価データに対する誤差が所定の閾値未満か否かを判定する。そして学習部901は、ステップS1005において、学習データ生成パラメータの範囲内で、評価データに対する誤差が所定の閾値未満である場合に、学習処理を終了と決定する。一方、学習部901は評価データに対する誤差が所定の閾値以上である場合には学習処理を終了しないと決定し、学習装置50の処理は次のステップS1006に進む。
ステップS1006の学習データ生成パラメータ変換処理に進むと、変換部903は、ステップS1003のNN学習処理で学習されたニューラルネットワークに対して設定されている学習データ生成パラメータを、必要に応じて変換する。また、ステップS1001において複数の学習データ生成パラメータが設定されている場合、変換部903は、ロバスト性の低い学習データ生成パラメータを特定して変換処理を行ってもよい。また学習処理を継続する(繰り返す)と、例えば図14(c)の曲線1403に示すようにロバスト性は高いが、原点(画像変換していない評価データ)の誤差が大きくなる場合がある。逆に、図14(c)の曲線1404に示すように、原点の誤差は小さいが、ロバスト性は低くなる場合もある。このように学習処理が継続されることでロバスト性と原点の誤差が変化していく場合を想定し、本実施形態の変換部903は、学習データ生成パラメータ変換処理の選択基準を設けている。本実施形態の場合、変換部903は、例えば図14(c)に示されたパラメータθ1からパラメータθ2までの範囲の誤差の総和が小さくなる方の変換処理を選択する。その他、本実施形態の学習装置50は、学習データ生成パラメータの変換処理をユーザが選択することも可能となされている。
ここで、本実施形態の場合、変換部903は、図13(a)に示した変換処理1301においてパラメータを変換して学習画像を生成する。本実施形態では、画像をIとし、変換処理をgとし、変換処理gがなされる学習データ生成パラメータをθとした場合、変換部903による変換処理はg(I,θ)のように表される。
本実施形態では、変換部903が、学習データ生成パラメータθを、∂E/∂θで算出される勾配方向に変換し、さらに、その変換した学習データ生成パラメータθを用いて新たな学習データ(学習画像)を生成して、ニューラルネットワークを学習する。∂E/∂θは、連鎖率を用いて式(8)のように表される。またパラメータθは、∂E/∂θを用いて式(9)のように変換処理(つまり更新)される。
∂E/∂θ=(∂E/∂y)×(∂y/∂a16)×(∂a16/∂a15)×(∂a15/∂a14)×…×(∂a1/∂I')×(∂I'/∂θ) 式(8)
θ=θ+μ(∂E/∂θ) 式(9)
式(9)のようにパラメータθを変換(更新)することで誤差Eは大きくなる。このため、その変換処理後のパラメータθを用いて生成される学習データは、ニューラルネットワークにとって難しい学習データになる。さらに、変換部903は、式(9)のμの値を、所定数ごとに小さくする。これにより、学習部901では、学習が徐々に難しくなる画像がニューラルネットワークに対して与えられて学習が行われることになる。
すなわち本実施形態では、誤差が大きくなる方向に学習データ生成パラメータを変換することで、ニューラルネットワークにとって難しい学習データを生成してニューラルネットワークを学習することでロバスト性を高めることが可能となる。本実施形態では、誤差が所定の閾値未満の学習データを選択し、誤差が大きくなる方向に学習データ生成パラメータを変換する。本実施形態では、誤差が所定の閾値以上である場合には処理を終了したが、誤差が所定の閾値以上の学習データについては、誤差が小さくなる方向に学習データ生成パラメータを変換してもよい。これにより、ニューラルネットワークのロバスト性と識別精度がさらに高められることになる。なお、パラメータθは学習データごとに保持してもよい。パラメータθを更新する変換処理は、ステップS1004のNN評価処理の評価結果に応じて選択されてもよい。例えばガンマ補正のパラメータに対する変換処理の場合、変換処理g(I,θ)は式(10)のように表される。よって、式(8)における∂I’/∂θは、式(11)のようになる。
Figure 2021018477
Figure 2021018477
他の例として、ホワイトバランス調整に失敗した場合などに起きる色かぶり(例えばRGBの緑(G)や青(B)の最大値が小さく色がつぶれてしまう)場合を再現する例について説明する。この場合の変換処理g(I,θ)は、式(12)のように表される。なお、式(12)におけるθrは赤(R)のチャンネル、θgは緑(G)のチャンネル、およびθbは青(B)のチャンネルのパラメータであることを表している。またIr、はRチャンネルの画像、IgはGチャンネルの画像、IbはBチャンネルの画像を表している。∂E/∂θについては、式(13)に示すようにIr、Ig、Ibそれぞれについて算出される。
g(I,θ)=g(I,θr,θg,θb)=θr×Ir+θg×Ig+θb×Ib
式(12)
∂I'r/∂θ=g'(Ir,θ)=Ir,(∂I'g/∂θ)=g'(Ig,θ)=Ig,(∂I'b/∂θ)=g'(Ib,θ)=Ib 式(13)
前述の式(9)によって変換された学習データ生成パラメータθは、学習部901と表示部905に送信される。表示部905では変換された学習データ生成パラメータθおよびその生成パラメータθを利用して生成された学習データ(学習画像)が表示され、したがってユーザはそれらを確認することができる。なお、ここではガンマ補正と色調整についてのパラメータ例を説明したが、微小に変動させることができるパラメータであって当該パラメータ変動に対して画像変動が定義できるものであればパラメータは限定されない。例えばノイズもパラメータに含まれる。また、ここでは現像済みの画像に対する変動をパラメータの変換によって与える例を挙げたが、RAW画像に対する現像パラメータを変動させてもよい。
ステップS1006の後は、ステップS1002の処理を経てステップS1003の処理に戻り、学習部901は、ステップS1006で新たに生成された学習データを用いて、再度ニューラルネットワークの学習を行う。先のステップS1003の学習処理では、図13(a)で説明したように、変換処理1301は恒等写像かもしくは予め設定した変換処理を行うが、この場合の変換処理では先のステップS1006で変換した後のパラメータが用いられる。ステップS1003で再度学習されたニューラルネットワークのパラメータは、評価部902に送られて評価される。以下、ステップS1004、ステップS1006、ステップS1003の処理を繰り返す。
前述の説明では、ステップS1003のNN学習処理においてニューラルネットワークの学習が完了した後に、その学習されたニューラルネットワークを評価し、その評価結果に基づいて学習データ生成パラメータを変換する例を説明した。
ただし、多層ニューラルネットワークの学習では通常、ミニバッチ学習が行われる。ミニバッチ学習では、全学習データがN個あるときに、n(n≦N)個のデータを用いた学習が行われる。nはランダムな値である。ミニバッチ学習時の学習データに対する教師値との損失関数Eは、式(14)のように表される。なお式(14)では、各学習データをxi、その教師値をti、ニューラルネットワークによる出力関数をf、およびそのニューラルネットワークの重みをw、画像データ生成パラメータをθとする。
Figure 2021018477
多層ニューラルネットワークの学習では全学習データのN個をシャッフルして、各n個のミニバッチを作成し、すべてのミニバッチを学習することをd回繰り返す。ここで、dは学習のエポック数を示している。つまり、ニューラルネットワークの重みの更新(学習)数は、式(15)で表されるインタレーション数itrだけ行われる。
itr=(N/n)×d 式(15)
ミニバッチ学習時のNN学習処理、NN評価処理、および学習データ生成パラメータ変換処理の詳細な流れは図15のフローチャートのようになる。図15のフローチャートにおけるNN評価処理はステップS1503〜S1505の各処理を含み、学習データ生成パラメータ変換処理はステップS1506およびS1507の処理を含む。そして、図15のフローチャートにおけるNN学習処理は、それらNN評価処理と学習データ生成パラメータ変換処理、およびステップS1508〜S1510の各処理からなる。つまり、図15のフローチャートの場合、NN評価処理および学習データ生成パラメータ変換処理は、学習部901におけるNN学習処理の中で行われる。なお本実施形態において、予め所定のエポック数Dおよび各ミニバッチサイズ(n)は定められているとする。図15のフローチャートのNN学習処理に含まれる各処理はミニバッチごとに行われる。図15のステップS1501の学習データ生成パラメータ設定処理と、ステップS1502の学習データ生成パラメータ範囲設定処理は前述同様であるためその説明は省略する。
図15のステップ1503において、学習部901は、ミニバッチ内の各学習データを多層ニューラルネットワークに入力して各出力結果を出力する。以下、この処理のことをforwardパス処理という。
次にステップS1504において、学習部901は、ステップS1503で得られた各出力結果と各教師値との誤差eを算出する。例えば、画像分類タスクの場合には各クラスに対する尤度が出力されて、それに対する教師値は該当クラスのみが1、その他のクラスが0になっているとする。その場合の誤差eは、出力結果と教師値から算出されるものであればよい。例えば、誤差をユーグリッド距離で定義した場合、ミニバッチ内の各学習データxiに対する誤差eは式(16)のように表される。
e(ti,xi;w,θi)=|ti−f(xi;w,θi)|2 式(16)
次にステップS1505において、学習部901は、ステップS1504で算出された誤差eに基づいて、学習データ生成パラメータを変換する学習データを選択する。例えば、学習部901は、誤差eが所定値未満の学習データを選択し、その学習データの学習データ生成パラメータを変換して、前述同様の学習を行うことで、ロバスト性の高いニューラルネットワークの学習が可能になる。
次にステップS1506において、学習部901は、ステップS1505で選択された学習データ生成パラメータにおける誤差eに対する勾配方向を算出する。算出方法は、式(8)で示した通りであるが、この場合、学習データ生成パラメータをミニバッチ内の各学習データに対してもつ。学習データ生成パラメータをθiとした場合、勾配方向は式(17)のように表される。
∂E/∂θi=(∂E/∂y)×(∂y/∂a16)×(∂a16/∂a15)×(∂a15/∂a14)×…×(∂a1/∂I')×(∂I'/∂θi) 式(17)
次にステップS1507において、学習部901は、ステップS1506で求めた勾配方向に基づいて選択されたデータに対する学習データ生成パラメータを変換する。変換方法は式(9)で示した通りであるが、各学習データ生成パラメータθiに対して式(18)に従い更新される。
θi=θi+μ(∂E/∂θi) 式(18)
なおステップS1505において選択されなかった学習データに関しては学習データ生成パラメータθiの更新は行われない。
次にステップS1508において、学習部901は、選択されたデータに対して再度forwardパス処理を行う。
さらにステップS1509において、学習部901は、式(16)に従いニューラルネットワークの出力結果と教師値との誤差を算出する。
その後ステップS1510において、学習部901は、式(7)に従いニューラルネットワークの各カーネルKを更新する。以上でミニバッチ処理を完了し、所定回数ミニバッチ処理を繰り返してNN学習処理が完了する。
以上説明したように、第1の実施形態の学習装置50は、NN評価処理の評価結果に基づいてニューラルネットワークの学習データ生成パラメータを変換することで、ニューラルネットワークを実際に利用する場面で入力されるデータを学習することができる。また本実施形態の学習装置50は、学習データ生成パラメータを学習結果に基づいて変換することで、ニューラルネットワークの学習に効率的な学習データを得ることができる。本実施形態の場合、学習装置50は、学習データ生成パラメータおよびそのパラメータの範囲を設定し、その設定したパラメータ範囲内で学習画像を生成して、ニューラルネットワークを学習することで、ロバスト性の向上を実現している。また本実施形態の学習装置50は、ニューラルネットワークの学習時の学習データと教師値との誤差を利用することにより、効率よく学習データ生成パラメータを決定して学習データを生成している。
すなわち第1の本実施形態によれば、学習装置50は、学習データに対するニューラルネットワークの出力結果とその教師値との誤差に基づいて、学習データ生成パラメータを変換する。そして学習装置50は、その変換された学習データ生成パラメータにより生成された学習データを用いて、再度ニューラルネットワークを学習する。本実施形態によれば、これらの処理により、識別精度が高くロバスト性の高いニューラルネットワークを効率よく学習することができる。
<第2の実施形態>
第2の実施形態では、学習データ生成パラメータのうち一部のパラメータを、学習データに対するニューラルネットワークの出力結果と教師値との誤差に基づいて変換した後に、他の学習データ生成パラメータを変更して学習データを生成する例を説明する。
例えばCG画像(コンピュータグラフィック画像)などを用いてニューラルネットワークの学習データを作成する場合、学習データの生成処理は、モデリングとレンダリングの処理に分解される。モデリングはCG空間でCGモデルを作成する作業である。その際にCGモデルが持つモデリングパラメータが設定される。例えば、人体モデルの場合、モデリングパラメータは、人体の各パーツの位置や姿勢パラメータである。レンダリングは、学習データである2次元画像を生成するためにモデルおよびカメラの条件(パラメータ)を設定して、2次元画像を生成する処理である。モデルにおけるレンダリングパラメータ(以下、モデルパラメータとする)とは、光源、影、物体色、テクスチャ、反射率、屈折率、および透過率などである。カメラにおけるレンダリングパラメータとは、カメラのパラメータ、レンズのパラメータなどである。以下、これらを合わせてカメラパラメータとする。カメラのパラメータには、CGモデルの位置に対するカメラの三次元位置・姿勢などの外部パラメータとカメラの焦点距離などの内部パラメータがある。
第2の実施形態では、モデリングパラメータおよびレンダリングパラメータを学習データ生成パラメータとする。第2の実施形態では、モデリングパラメータおよびレンダリングパラメータのうち、まずレンダリングパラメータがニューラルネットワークの出力結果と教師値に基づいて最適化される。その後、最適化されたレンダリングパレメータを固定して、学習データ生成パラメータの残りのモデリングパラメータのみを変動させて学習画像(学習データ)が生成されて、ニューラルネットワークの学習が行われる。これにより、例えばCGモデルが人体モデルの場合、さまざまな姿勢や服装などのバリエーションに対して学習を行うことができる。
第2の実施形態における識別対象画像を識別する際の処理は、第2の実施形態と同様であるためその説明を省略し、以下、学習時の処理についてのみ説明する。
図9(b)は、第2の実施形態における学習装置50のCPU501が実行する処理をそれぞれ機能ブロックとして示した図である。第2の実施形態の学習装置50は、第1の実施形態とほぼ同様であるが、学習データ生成部911が追加されている。本実施形態において用いられる学習時の処理は、図10(b)に示されるフローチャートに従って行われる。
図10(b)のステップS1011において、パラメータ設定部904は、第1の実施形態と同様にして学習データ生成パラメータを設定する。CGデータなどを用いる場合、パラメータ設定部904は、CGデータ生成に必要なモデリングパラメータも設定する。そして、設定された学習データ生成パラメータは、学習データ生成部911と変換部903に送られる。
次にステップS1012において、範囲設定部912は、第1の実施形態と同様にして、学習データ生成パラメータの範囲を設定する。
次にステップS1013において、学習データ生成部911は、ステップS1011で設定され、さらにステップS1012で範囲が設定された学習データ生成パラメータを基に学習データを生成する。その生成された学習データは、学習データ保持部907に送られて保持され、ニューラルネットワークの学習時にロードされる。また、学習データは表示部905に送られ、これによりユーザは学習データを確認することができる。
次のステップS1014は、第1の実施形態におけるステップS1003と同様であるためその説明は省略する。
ここで用いるニューラルネットワークの構造やパラメータは第1の実施形態と同様に設定すればよいが、ニューラルネットワークのパラメータは予め何等かの方法で既に学習されている方が望ましい。なぜなら、学習データ生成部911が生成した学習データによっては、学習がうまく進まない場合があるからである。また本実施形態では、ステップS1014のNN学習処理を行ってから、ステップS1015のNN評価処理を行うように説明しているが、学習済みのニューラルネットワークのパラメータをロードし、ステップS1015のNN評価処理から行ってもよい。
ステップS1015において、評価部902は、ステップS1014のNN学習処理で学習されたニューラルネットワークを評価する。第1の実施形態ではニューラルネットワークの評価時に評価データに対し識別精度と共にロバスト性も評価したが、第2の実施形態の評価部902はまず識別精度を評価する。評価データは、評価データ保持部908からロードするが、評価データは予め用意しておく。評価データは、学習データ生成部911が生成したものではなく、ユーザが学習されたニューラルネットワークを利用する場面で識別するデータに近いものである方がよい。
次のステップS1016において、学習部901は、第1の実施形態と同様に識別精度が所定値以上か否かにより、学習を継続するか終了するかを判定する。そして、ステップS1016において、学習装置50は、識別精度が所定値以上である場合には学習を終了すると判定して処理を終了する。一方、学習装置50は、識別精度が所定値未満であるため学習を継続すると判定した場合には、ステップS1017のレンダリングパラメータ学習処理に移動する。
ステップS1017に進むと、変換部903は、レンダリングパラメータのみを変換するレンダリングパラメータ変換処理を行う。
ここで、図13(b)に示すように、学習データ生成処理の中のレンダリング処理に入力されるCGモデルをM、レンダリングで出力される画像データをIとし、レンダリングパラメータをψとする。ニューラルネットワークの各層の出力結果は、前述の図13(a)と同様に各出力結果をa1〜a16とし、最終出力結果をyとする。学習部901は、式(19)のように、∂E/∂ψで算出される勾配方向にレンダリングパラメータψのパラメータを更新(変換)することにより学習を実現する。
∂E/∂ψ=(∂E/∂y)×(∂y/∂a16)×(∂a16/∂a15)×(∂a15/∂a14)×…×(∂a1/∂I)×(∂I/∂ψ) 式(19)
式(19)の∂E/∂ψは、レンダリングパラメータを更新した際に生成データがどのように変化するのかを表している。例えば、レンダリングパラメータが、選択式で連続的に変化するパラメータではなく微分できない場合には、複数のレンダリングパラメータでニューラルネットワークの出力結果と教師値との誤差が小さくなるようなレンダリングパラメータが選択される。
次にステップS1018のモデルパラメータ変換処理において、変換部903は、CGモデルのモデリングパラメータを変換する。変換部903は、例えば人体モデルの場合には、各関節位置・角度や服装などといった属性情報を変換する。この処理によってバリエーションのある学習データの生成が可能となり、識別精度の高いニューラルネットワークを学習することができる。モデルパラメータ変換処理後の学習データは、学習データ生成部911および表示部905に送信される。ユーザは、表示部905の表示を見ることで、モデルパラメータ変換処理後の学習データを確認することができる。なお、ここではNN学習処理、NN評価処理、レンダリングパラメータ変換処理、モデルパラメータ変換処理の順に処理を行ったが、NN学習処理とレンダリングパラメータ変換処理が繰り返されてもよい。
以上のように第2の実施形態の学習装置50は、学習データ生成パラメータのうち一部のパラメータを学習データに対するニューラルネットワークの出力結果と教師値との誤差を基に変換した後に、他の生成パラメータを変更して学習データを生成する。そして、学習装置50は、その生成された学習データを用いて再度ニューラルネットワークを学習する。これらの処理により、第2の実施形態によれば、識別精度の高いニューラルネットワークを学習することができる。
<第3の実施形態>
第3の実施形態では、第1および第2の実施形態の例のニューラルネットワークとは異なる識別器を学習する。識別器は、例えばSupport−Vector−Machine(SVM)や線形判別器などを利用する。詳細は後述するが、SVMなどの識別器は、一般的に学習時にはバッチ処理と呼ばれる学習データのすべてを用いて学習を行う。一方、ニューラルネットワークの学習は、通常、ミニバッチ処理と呼ばれる学習データの一部のデータを用いて学習(パラメータの更新)を随時行う。SVMなどの識別器は、例えば参考文献2に開示されているような技術を用いてオンライン学習することもできるが、本実施形態ではニューラルネットワークを学習後、ニューラルネットワークの出力結果を用いて識別器を学習する例について説明する。
参考文献2:Shai shalev−Shwartz,“Pegasos:Primal Estimated sub−GrAdient SOlver for SVM”,International Conference on Machine Learning 2007.
まず、識別対象画像を識別する際の処理について説明する。
図7(b)は第3の実施形態における識別装置20のCPU501が実行する処理を、それぞれ機能ブロックとして示した図である。なお、第1および第2の実施形態と同様に、図7(b)には識別装置20の各機能部の他に、カメラ10に相当する撮影装置700も示している。撮影装置700は識別対象画像を取得する。第3の実施形態の識別装置20は、入力部701、出力部702、結果出力部703、パラメータ保持部706、および識別器保持部707を有している。なお、パラメータ保持部706と識別器保持部707は、不揮発性の記憶装置として識別装置20と接続された構成としてもよい。識別装置20が有するこれらの各機能部の詳細については後述する。
図8(b)は、第3の実施形態における識別装置20の各機能部で実行される処理の概要を示すフローチャートである。
図8(b)のステップS810のNN入力処理において、入力部701は、撮影装置700によって撮影された識別対象画像を入力データとして取得する。この取得された識別対象画像は、出力部702に送られる。
次にステップ811のNN出力処理において、出力部702は、入力部701から送られてきた識別対象画像をパラメータ保持部706に保持されたニューラルネットワークを用いて処理し、その結果を出力結果とする。出力結果は、ニューラルネットワークの最終層の出力結果だけでもよいし、その他の中間層からの出力結果が含まれていてもよい。ニューラルネットワークの出力結果は、結果出力部703に送られる。
次にステップS812の識別結果出力処理において、結果出力部703は、ステップS811の処理後のニューラルネットワークの出力結果を識別器に入力し、その識別結果を出力する。識別器は、識別器保持部707に保持されており、その学習方法に関しては後述する。
次に、第3の実施形態において用いられる識別器を学習する際の学習処理について説明する。
図9(c)は、第3の実施形態における学習装置50のCPU501が実行する処理を、それぞれ機能ブロックとして示した図である。
第3の実施形態の学習装置50は、学習部901、評価部902、変換部903、パラメータ設定部904、表示部905、識別器学習部909、および範囲設定部912を有している。さらに、学習装置50は、パラメータ保持部906、学習データ保持部907、評価データ保持部908、および識別器保持部910をも有している。
パラメータ保持部906、学習データ保持部907、評価データ保持部908、および識別器保持部910は不揮発性の記憶装置として識別装置20と接続された構成であってもよい。学習装置50が有するこれらの各機能の詳細については後述する。
第3の実施形態の場合、学習装置50は、学習データ保持部907に保持されているデータでニューラルネットワークを学習した後に、ニューラルネットワークを評価して学習データ生成パラメータを変換する。なお、学習装置50は、予め学習されたニューラルネットワークを保持しておいて、そのニューラルネットワークを評価してもよいし、そのニューラルネットワークの出力結果から識別器学習のみを行ってよい。
図10(c)は、第3の実施形態の学習装置50の各機能部で実行される処理の概要を示すフローチャートである。この図10(c)のフローチャートにおいて、ステップ1021〜ステップS1026の処理は、第1の実施形態におけるステップS1001〜ステップS1006の処理と同様であるため、それら各処理の説明は省略する。
第3の実施形態の場合、ステップS1023のNN学習処理において学習部901が学習したニューラルネットワークのパラメータは、識別器学習部909にも送られる。また、ステップS1023で学習するタスクは、ステップS1027の識別器学習処理と同様でもよいし、別のタスクでもよい。例えば、ステップS1023のNN学習処理では画像分類タスクで学習が行われ、ステップS1027の識別器学習処理では領域分割タスクで学習が行われてもよい。
次に、ステップS1027の識別器学習処理に関して説明する。
ステップS1027において、識別器学習部909は、ステップS1023で学習されたニューラルネットワークの出力結果を特徴量とする識別器を学習する。識別器学習部909は、識別器の学習の際には学習データ保持部907に保持されているデータを用いるが、別途用意してもよい。また識別器学習部909は、学習データに対して、先のステップS1026の学習データ生成パラメータ変換処理によって変換された生成パラメータで学習データを生成して利用してもよい。学習された識別器は、識別器保持部910に送られて保持される。
本実施形態では、学習されたニューラルネットワークを評価して、識別精度の高いニューラルネットワークの出力結果を用いて識別器を学習する例を挙げた。他の例として、識別器まで学習を行い、識別精度およびロバスト性を評価してから、その結果に基づいてニューラルネットワークおよび識別器の学習が行われてもよい。
また参考文献2に開示されている方法を用いて識別器をオンライン学習する場合には、ニューラルネットワークを学習する際と同様に徐々に学習データ生成パラメータを変化させながら識別器の学習が行われてもよい。
第3の実施形態によれば、学習装置50は、学習データに対するニューラルネットワークの出力結果とその教師値との誤差に基づいて、学習データ生成パラメータを変換する。そして、学習装置50は、その変換された学習データ生成パラメータにより生成された学習データを用いて再度ニューラルネットワークを学習する。また、学習装置50は、学習されたニューラルネットワークの出力結果を特徴量とする識別器を学習する。第3の実施形態に識別装置20によれば、これらの処理により識別精度の高いニューラルネットワークおよび識別器を学習することができる。
本発明は、各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
前述の各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
10:カメラ、20:識別装置、15:ネットワーク、501:CPU、502:RAM、503:ROM、504:HD、505:操作部、506:表示部、507:ネットワークI/F、50:学習装置

Claims (12)

  1. 学習データを生成する学習データ生成パラメータを設定するパラメータ設定手段と、
    前記学習データ生成パラメータの範囲を設定する範囲設定手段と、
    前記学習データ生成パラメータを基に生成された学習データと、前記学習データの教師値とに基づいて、ニューラルネットワークを学習する学習手段と、
    前記学習データと前記教師値との誤差を評価する評価手段と、
    前記評価の結果に基づいて、前記学習データと前記教師値との誤差が変動するように、前記設定された範囲内で前記学習データ生成パラメータを変換する変換手段と、
    を有することを特徴とする情報処理装置。
  2. 前記変換手段は、前記変換した学習データ生成パラメータを基に学習データを生成し、
    前記学習手段は、前記変換した学習データ生成パラメータを基に生成された学習データを用いて、再度ニューラルネットワークを学習することを特徴とする請求項1に記載の情報処理装置。
  3. 前記変換手段は、前記学習データと前記教師値との誤差が大きくなる方向に、前記学習データ生成パラメータを変換することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記変換手段は、前記学習データのうち、前記学習データと前記教師値との誤差が所定値未満の学習データを選択し、前記選択した学習データと前記教師値との誤差が大きくなる方向に、前記選択した学習データの学習データ生成パラメータを変換することを特徴とする請求項1または2に記載の情報処理装置。
  5. 前記変換手段は、前記学習データのうち、
    前記学習データと前記教師値との誤差が所定値未満の学習データについては、前記学習データと前記教師値との誤差が大きくなる方向に、前記学習データの学習データ生成パラメータを変換し、
    前記学習データと前記教師値との誤差が所定値以上の学習データについては、前記学習データと前記教師値との誤差が小さくなる方向に、前記学習データの学習データ生成パラメータを変換することを特徴とする請求項1または2に記載の情報処理装置。
  6. 前記変換手段は、前記学習データ生成パラメータのうち、一部のパラメータを前記学習データと前記教師値の誤差が小さくなる方向に変換した後、さらに他のパラメータに対して前記変換を行うことを特徴とする請求項1または2に記載の情報処理装置。
  7. 前記一部のパラメータはコンピュータグラフィック画像を生成する際のレンダリングパラメータであり、前記他のパラメータは前記コンピュータグラフィック画像を生成する際のモデリングパラメータであることを特徴とする請求項6に記載の情報処理装置。
  8. 表示手段をさらに有し、
    前記表示手段は、前記変換された学習データ生成パラメータを用いて生成された学習データを表示することを特徴とする請求項1から7のいずれか1項に記載の情報処理装置。
  9. 請求項1から8のいずれか1項に記載の情報処理装置を用いて学習されたニューラルネットワークに、識別対象画像を入力する入力手段と、
    前記学習された前記ニューラルネットワークを用いて前記識別対象画像の識別を行った結果を出力する出力手段と、
    を有することを特徴とする情報処理装置。
  10. 情報処理装置が実行する情報処理方法であって、
    学習データを生成する学習データ生成パラメータを設定するパラメータ設定ステップと、
    前記学習データ生成パラメータの範囲を設定する範囲設定ステップと、
    前記学習データ生成パラメータを基に生成された学習データと、前記学習データの教師値とに基づいて、ニューラルネットワークを学習する学習ステップと、
    前記学習データと前記教師値との誤差を評価する評価ステップと、
    前記評価の結果に基づいて、前記学習データと前記教師値との誤差が変動するように、前記設定された範囲内で前記学習データ生成パラメータを変換する変換ステップと、
    を有することを特徴とする情報処理方法。
  11. 請求項1から8のいずれか1項に記載の情報処理装置を用いて学習されたニューラルネットワークに、識別対象画像を入力する入力ステップと、
    前記学習された前記ニューラルネットワークを用いて前記識別対象画像の識別を行った結果を出力する出力ステップと、
    を有することを特徴とする情報処理方法。
  12. コンピュータを、請求項1から9のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
JP2019132051A 2019-07-17 2019-07-17 情報処理装置、情報処理方法、及びプログラム Pending JP2021018477A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019132051A JP2021018477A (ja) 2019-07-17 2019-07-17 情報処理装置、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019132051A JP2021018477A (ja) 2019-07-17 2019-07-17 情報処理装置、情報処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2021018477A true JP2021018477A (ja) 2021-02-15

Family

ID=74564259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019132051A Pending JP2021018477A (ja) 2019-07-17 2019-07-17 情報処理装置、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2021018477A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022230639A1 (ja) * 2021-04-30 2022-11-03 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、及び、プログラム
WO2023053420A1 (ja) * 2021-09-30 2023-04-06 日本電信電話株式会社 処理装置及び処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022230639A1 (ja) * 2021-04-30 2022-11-03 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、及び、プログラム
WO2023053420A1 (ja) * 2021-09-30 2023-04-06 日本電信電話株式会社 処理装置及び処理方法

Similar Documents

Publication Publication Date Title
JP2018055259A (ja) 情報処理装置、情報処理方法及びプログラム
US11093805B2 (en) Image recognition method and apparatus, image verification method and apparatus, learning method and apparatus to recognize image, and learning method and apparatus to verify image
CN107529650B (zh) 闭环检测方法、装置及计算机设备
JP7228961B2 (ja) ニューラルネットワークの学習装置およびその制御方法
JP4767595B2 (ja) 対象物検出装置及びその学習装置
US10346726B2 (en) Image recognition method and apparatus, image verification method and apparatus, learning method and apparatus to recognize image, and learning method and apparatus to verify image
US9400919B2 (en) Learning deep face representation
US11106903B1 (en) Object detection in image data
EP3023911B1 (en) Method and apparatus for recognizing object, and method and apparatus for training recognizer
JP6798183B2 (ja) 画像解析装置、画像解析方法およびプログラム
JP4708909B2 (ja) デジタル画像の対象物検出方法および装置並びにプログラム
JP4517633B2 (ja) 対象物検出装置及び方法
JP7166784B2 (ja) 情報処理装置、情報処理方法及びプログラム
US8331631B2 (en) Method, apparatus, and program for discriminating the states of subjects
JP6943291B2 (ja) 学習装置、学習方法、及び、プログラム
JP2008217589A (ja) 学習装置及びパターン認識装置
JP6867054B2 (ja) マルチカメラシステム内のダブルエンベディング構成を利用して、道路利用者イベントを検出するために用いられるセグメンテーション性能向上のための学習方法及び学習装置、そしてこれを利用したテスティング方法及びテスティング装置。{learning method and learning device for improving segmentation performance to be used for detecting road user events using double embedding configuration in multi−camera system and testing method and testing device using the same}
US8774519B2 (en) Landmark detection in digital images
JP4553044B2 (ja) 集団学習装置及び方法
CN112036260B (zh) 一种自然环境下多尺度子块聚合的表情识别方法及系统
JP5241606B2 (ja) オブジェクト識別装置及びオブジェクト識別方法
JP2021018477A (ja) 情報処理装置、情報処理方法、及びプログラム
CN111368731A (zh) 静默活体检测方法、装置、设备及存储介质
JPWO2021095211A5 (ja)
JP2018205858A (ja) 学習装置、認識装置、学習方法及びプログラム