JP7228961B2 - ニューラルネットワークの学習装置およびその制御方法 - Google Patents

ニューラルネットワークの学習装置およびその制御方法 Download PDF

Info

Publication number
JP7228961B2
JP7228961B2 JP2018071041A JP2018071041A JP7228961B2 JP 7228961 B2 JP7228961 B2 JP 7228961B2 JP 2018071041 A JP2018071041 A JP 2018071041A JP 2018071041 A JP2018071041 A JP 2018071041A JP 7228961 B2 JP7228961 B2 JP 7228961B2
Authority
JP
Japan
Prior art keywords
learning
layer
neural network
data group
processing
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
JP2018071041A
Other languages
English (en)
Other versions
JP2019185127A5 (ja
JP2019185127A (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.)
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 JP2018071041A priority Critical patent/JP7228961B2/ja
Priority to US16/368,970 priority patent/US20190303746A1/en
Publication of JP2019185127A publication Critical patent/JP2019185127A/ja
Publication of JP2019185127A5 publication Critical patent/JP2019185127A5/ja
Application granted granted Critical
Publication of JP7228961B2 publication Critical patent/JP7228961B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/084Backpropagation, e.g. using gradient descent
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

本発明は、多層ニューラルネットワーク(NN)の学習に関するものである。
画像・音声などのデータの内容を学習し認識を行う技術が存在する。たとえば、画像から人間の顔の領域を検出する顔認識タスク、画像中にある物体のカテゴリを判別する物体カテゴリ認識タスク、シーンの種別を判別するシーン種別認識タスク、など多様な認識タスクがある。このような認識タスクを学習・実行する技術として、ニューラルネットワーク(NN)の技術が知られている。NNのうち特に深い(層の数が多い)NNはDNN(Deep Neural Networks)と呼ばれている。特に、非特許文献1に開示されているように深い畳みこみ型のニューラルネットワークであるDCNN(Deep Convolutional Neural Networks)は性能が高いことで近年注目されている。
また、ニューラルネットワークの学習精度を向上させるための手法が提案されている。特許文献1では、プレトレーニング時の中間層の出力結果を保持しておいて、利用者のもとで入力パターンに対する所望の出力および中間層の値を教師値としてシナプス結合(重み)を学習する技術が開示されている。また、特許文献2では、学習済みニューラルネットワークに追加データのみを与えて、対応する追加出力ニューロンを追加して追加出力ニューロンと中間層の結合係数のみを学習する技術が開示されている。
特開平5-274455号公報 特開平7-160660号公報
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は学習するパラメータが多いため大量のデータを用いた学習を行う必要がある。たとえば、ILSVRC(ImageNet Large Scale Visual Recognition Challenge)が提供している1000クラス画像分類のデータ数は100万個以上ある。そのため、ユーザがあるドメインのデータに対してニューラルネットワークを学習する場合には、まず、大量のデータで学習(プレトレーニング)を行う。その後、認識タスクの用途など、特定ドメインに特化した適合ドメインのデータでさらに学習(ファインチューニング)を行うことが多い。
ただし、適合ドメインのデータが少量しかない場合や適合ドメインのデータ特性がプレトレーニング時に使用したデータの特性と大きく異なる場合には、適合ドメインに対して識別精度の高いニューラルネットワークを学習することは困難である。上述の従来技術を用いた場合においても、学習されるニューラルネットワークの特定用途に特化した適合ドメインにおける識別精度が不十分な場合がある。また、特定用途に特化した適合ドメイン学習時にニューラルネットワークの規模が増加しないようにすることは容易ではない。そのため、DCNNでは、適合ドメインの学習データが少ない場合に、効率よくニューラルネットワークのパラメータを学習することが必要になる。
本発明は、このような問題に鑑みてなされたものであり、適合ドメインにおけるニューラルネットワークの学習を効率的に行う技術を提供することを目的としている。
上述の問題点を解決するため、本発明に係るニューラルネットワーク(NN)を学習する学習装置は以下の構成を備える。すなわち、学習装置は、
第1のデータ群を用いて第1のNNを学習する第1の学習手段と、
前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成手段と、
前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習手段と、
学習された前記第2のNNと略同一の出力特性を有し該第2のNNよりもネットワーク規模が小さい第3のNNを生成する第2の生成手段と、
を有する。
本発明によれば、適合ドメインにおけるニューラルネットワークの学習を効率的に行うことのできる技術を提供することができる。
システムの全体構成を例示的に示す図である。 識別対象の画像を例示的に示す図である。 各装置のハードウェア構成の一例を示す図である。 DCNNの構造およびDCNNを用いた識別処理の例を示す図である。 情報処理装置の機能構成の例を示す図である。 第1~第3実施形態におけるNN学習装置の機能構成の例を示す図である。 第4~第6実施形態におけるNN学習装置の機能構成の例を示す図である。 情報処理装置による識別処理のフローチャートである。 NN学習装置による学習処理のフローチャートである。 NN学習工程におけるNNの最終層の一例を示す図である。 NN学習工程におけるNNの各層の処理内容と出力結果の一例を示す図である。 NNの各層および変換部の処理内容と出力結果の一例を示す図である。 NNの各層および変換部の処理内容と出力結果の他の例を示す図である。 NN軽量化後のNNの各層の処理内容と出力結果の一例を示す図である。 軽量化を行うNNの選択を受け付けるGUIを例示的に示す図である。 第2実施形態における変換部追加工程における処理内容の一例を示す図である。 NNの選択を受け付けるGUIを例示的に示す図である。 学習データの設定を受け付けるGUIを例示的に示す図である。 適合ドメインの選択を受け付けるGUIを例示的に示す図である。
以下に、図面を参照して、この発明の実施の形態の一例を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
(第1実施形態)
本発明に係る情報処理装置の第1実施形態として、情報処理装置20とNN学習装置50を含むシステムを例に挙げて以下に説明する。
<前提技術>
DCNNとは、各層において、前層からの出力結果に対して畳みこみ処理を行い次層に出力するようなネットワーク構造をもつものである。最終層は認識結果を表す出力層となる。各層には畳みこみ演算用のフィルタ(カーネル)が複数用意される。出力層に近い層では畳みこみによる結合ではなく通常のニューラルネットワーク(NN)のような全結合(fullconnect)の構造とするのが一般的である。もしくは、非特許文献2(「Jeff Donahue, Yangqing Jia, Judy Hoffman, Trevor Darrell, "DeCAF: A Deep Convolutional Activation Feature for Generic Visual Recognition", arxiv 2013」)に開示されているように全結合層のかわりに畳みこみ演算層(中間層)の出力結果を線形識別器に入力し識別を行う手法も注目されている。
DCNNの学習フェーズにおいては、畳みこみフィルタの値や全結合層の結合重み(両者をあわせて学習パラメータと呼ぶ)を誤差逆伝搬法(バックプロパゲーション:BP)などの方法を用いて教師付きデータから学習する。
認識フェーズでは学習済DCNNにデータを入力し、各層において学習済みの学習パラメータによってデータを順次処理し、出力層から認識結果を得るかもしくは中間層の出力結果を集計し、識別器に入力することで認識結果を得る。
<システム構成>
図1は、システムの全体構成を例示的に示す図である。システムは、ネットワーク15を介して接続されたカメラ10及び情報処理装置20を含んでいる。なお、情報処理装置20とカメラ10を一体構成の装置としてもよい。また、情報処理装置20とニューラルネットワーク(NN)学習装置50がネットワーク15を介して接続されている。なお、情報処理装置20とNN学習装置50が一体に構成されていてもよい。
カメラ10は、情報処理装置20による情報処理の対象となる画像を取得する。図1では、所定の画角(撮影範囲)で撮影を行うカメラ10により被写体となるシーン30を撮影することにより画像を取得する。ここでは、シーン30は、木(tree)30a、自動車(car)30b、建物(building)30c、空(sky)30d、道(road)30e、人体(body)30f等を含む。
画像処理装置20は、カメラ10で撮影(撮像)されたシーン30における各被写体が画像内に存在するかどうか(画像分類)を判定する。ここでは、画像分類(classification)タスクとして説明するが、被写体の位置を検出・被写体領域を抽出するタスクや他のタスクでもよい。他のタスクの場合の説明については後述する。
図2は、識別対象の画像を例示的に示す図である。図2(a)は「建物」、図2(b)は「木(林・森)」、図2(c)は「車」と画像分類される画像の例を示している。
図3は、情報処理装置20およびNN学習装置50のハードウェア構成の一例を示す図である。CPU401は、情報処理装置20およびNN学習装置50全体を制御する。具体的には、CPU401は、ROM403やハードディスクドライブ(HDD)404等に格納されたプログラムを実行することにより、図5及び図6を参照して後述する情報処理装置20及びNN学習装置50の機能を実現する。
RAM402は、CPU401がプログラムを展開して実行するワークエリアとして機能する記憶領域である。ROM403は、CPU401が実行するプログラム等を格納する記憶領域である。HDD404は、CPU401が処理を実行する際に要する各種のプログラム、閾値に関するデータ等を含む各種のデータを格納する記憶領域である。操作部405は、ユーザによる入力操作を受け付ける。表示部406は、情報処理装置20および必要に応じてNN学習装置50の情報を表示する。ネットワークインタフェース(I/F)407は、外部の機器と通信すべくネットワーク15と接続するインタフェースである。
<多層ニューラルネットワーク(NN)を用いた識別処理>
まず、第1実施形態において学習されるニューラルネットワークを用いて画像を識別する際の処理について説明する。なお、ここではニューラルネットワークはDCNNとする。DCNNでは、非特許文献1に開示されているように畳みこみ(convolution)と非線形処理(reluやmaxpoolingなど)の組み合わせで特徴層が実現される。各特徴層での処理の後、全結合層(fullconect)を経て画像分類結果(各クラスに対する尤度)が出力される。
図4は、DCNNの構造およびDCNNを用いた識別処理の例を示す図である。図4では、畳みこみ(convolution)を行う層を「conv」と表記し,maxpoolingを行う層を「pool」と表記し、全結合層(fullconect)を「fc」と表示している。ここで、maxpoolingとは非特許文献1に開示されているように所定カーネルサイズ内の最大値を次層に出力する処理である。また、「relu」とは非特許文献1に開示されているような非線形処理の一つであり、前層のconv層の出力結果のうち、負の値を0(ゼロ)とする処理である。その他の非線形処理でもよい。更に、出力結果を「Output」と表記している。なおここでの入力画像Img1000はDCNNに入力する際に、所定画像サイズで画像をクロップもしくはリサイズするのが一般的である。
図4(a)では、入力画像Img1000が入力され、convolution1001,relu1002,convolution1003,relu1004,pooling1005の処理を行う例を示している。この一連の処理を所定回数繰り返した後、全結合層1011、relu1012,全結合層1013、relu1014,全結合層1015の処理を行って、出力結果1050を出力している。なお、非特許文献2に開示されているように、ニューラルネットワークの中間層の出力結果を特徴ベクトルとして、識別器に入力することで識別を行うこともできる。
図4(b)~図4(d)は、DCNNの他の例を示している。例えば、図4(b)のように中間層のrelu処理1009の出力結果を特徴ベクトルfeature1016としてSVM(Support-Vector-Machine)1017に入力することで識別を行う。なお、ここでは途中のrelu処理1009の出力結果を利用したが、その前のconvolution1008や後のpooling処理1010の出力結果でもいいし、他の中間層の出力結果、またそれらの組み合わせでもよい。また、ここでは識別器としてSVMを利用したが、他の識別器を用いてもよい。
また、図4(b)の場合は入力画像に対して識別結果を一意に出力する構成である。一方、物体領域を識別する場合などで画素や小領域ごとに識別する必要がある場合には図4(c)のような構成を用いる。その場合、所定の中間層の出力結果を1018にリサイズと示している処理を行う。リサイズ処理とは中間層の出力結果を入力画像サイズと同サイズにリサイズする処理である。リサイズ処理後に注目している画素もしくは小領域における所定の中間層の出力結果1019を特徴ベクトルとして、先と同様に、SVM1021に入力することで識別を行う。一般的にDCNNを用いる場合、中間層の出力結果は入力画像サイズに比べて小さくなるため、中間層の出力結果を入力画像サイズにリサイズする必要がある。リサイズ方法は最近傍法(Nearest-Neighbor-Algorithm)などの補間手法であれば何でもよい。なお、ここではSVMを用いたが、それ以外の識別器でもよい。
さらに、「Ross Girshick, "Fast R-CNN",International Conference on Computer Vision 2015」に開示されているニューラルネットワークを用いてもよい。すなわち、物体領域候補をROI(Region-Of-Interest)として推定して対象物体領域のBoundingBoxおよびスコアを出力するニューラルネットワークを用いてもよい。その場合は図4(d)の1022で示すように途中の中間層の出力結果を所定の方法で推定したROI領域内でpooling処理(ROIpooling)する。ROIpoolingした出力結果を複数の全結合層に接続して、BoundingBoxの位置・サイズおよびその対象物体のスコアなどを出力する。
<情報処理装置の構成と動作>
図5(a)は、第1実施形態に係る情報処理装置20の機能構成の例を示す図である。ここでは、情報処理装置20のCPU401が実行する処理を、それぞれ機能ブロックとして描いている。なお、図5(a)には、情報処理装置20内の各機能ブロックの他に、カメラ10に相当する撮影部200も示している。撮影部200は、カメラ10に相当し、識別対象画像を取得する。情報処理装置20は、入力部201、NN出力部202、NNパラメータ保持部530を有している。なお、NNパラメータ保持部530は、不揮発性の記憶装置として情報処理装置20と接続された構成としてもよい。
図8(a)は、第1実施形態に係る情報処理装置20による識別処理のフローチャートである。T110では、入力部201は、撮影部200によって撮影された識別対象画像を入力データとして受信する。受信された識別対象画像はNN出力部202に送信される。T120では、NN出力部202は、識別対象画像をNNパラメータ保持部530に保持されたニューラルネットワークを用いて識別処理を実行し識別結果を出力する。ここでは認識タスクは画像分類タスクであるため、画像のクラス名およびそのスコアが出力される。具体的なニューラルネットワークの構造などについては後述する。また、非特許文献2や「Bharath Hariharan, Pablo Arbelaez, Ross Girshick, Jitendra Malik, "Hypercolumns For Object Segmentation and Fine-grained Localization", IEEE Conference on Computer Vision and Pattern Recognition 2015」に開示される手法のようにニューラルネットワークの出力結果を特徴ベクトルとして用いる識別部を用いる場合もある。その際の情報処理装置の構成およびフローについては第2実施形態において説明する。
次に、図8(a)に示したフローチャートにおける具体的な処理内容について説明する。T110では、入力部201は、撮影部200が撮影した画像を、識別対象画像100として取得する。ここでは、図1で示したようなシーン30の画像を取得する。なお、識別対象画像は、図示しない外部装置に格納されている画像であってもよい。その場合、入力部201は外部装置から読み出された画像を識別対象画像として取得する。外部装置に格納されている画像は、例えば撮影部200等で予め撮影された画像であってもよいし、ネットワーク等を経由するなどの他の方法で取得され格納された画像であってもよい。入力部201で取得された識別対象画像100はNN出力部202に送信される。
T120では、NN出力部202は、T110で入力された識別対象画像100をあらかじめ学習されたニューラルネットワークに入力する。そして、ニューラルネットワークの最終層の出力結果を識別結果として出力する。ここで用いるニューラルネットワークは例えば先の図4(a)に示したようなものを利用すればよい。ニューラルネットワークの構造およびパラメータはNNパラメータ保持部530に保持されている。
<NN学習装置の構成と動作>
図6(a)は、第1実施形態におけるNN学習装置の機能構成の例を示す図である。ここでは、NN学習装置50のCPU401が実行する処理を、それぞれ機能ブロックとして描いている。NN学習装置50は、NN学習部501、変換部追加部502、適合ドメイン学習部503、NN軽量化部504、表示部508を有している。また、学習データ保持部510、適合ドメイン学習データ保持部520、NNパラメータ保持部530を有している。学習データ保持部510、適合ドメイン学習データ保持部520、NNパラメータ保持部530は、不揮発性の記憶装置として情報処理装置20と接続された構成としてもよい。
第1実施形態では、NN学習装置50において学習データ保持部510に保持されている大量データで多層ニューラルネットワーク(多層NN)を学習する。その後、適合ドメイン学習データ保持部520に保持されている適合ドメインデータ(少量データ)で学習することを想定する。ただし、あらかじめ大量データで学習されたニューラルネットワークの学習パラメータを保持しておき、適合ドメインデータについての学習処理のみを行うよう構成してもよい。
図9(a)は、第1実施形態に係るNN学習装置50による学習処理のフローチャートである。S110では、NN学習部501は、ニューラルネットワークのパラメータを設定し、学習データ保持部510に保持されている学習データを用いてニューラルネットワークを学習する。ここでは、先に説明したDCNNを用いる。設定するパラメータは、層の数、層の処理内容(構造)、フィルタサイズ、出力チャンネル数などである。学習されたニューラルネットワークは変換部追加部502に送信される。学習結果を表示する場合には表示部508に送信される。学習結果の表示に関しては後述する。
S120では、変換部追加部502は、S110で学習されたニューラルネットワークに変換部を追加する。追加される変換部は、ニューラルネットワークの所定の中間層の出力結果を入力として、変換結果を所定の中間層に入力する構成を有する。その処理や追加方法については詳しく後述する。また、変換部追加部502は適合ドメイン学習データ保持部520と接続されていて、変換部を追加する際に適合ドメインデータを用いる場合もある。以下の説明では適合ドメインデータを用いない例について説明する。変換部が追加されたニューラルネットワークの構成やパラメータは適合ドメイン学習部503および表示部508に送信される。
S130では、適合ドメイン学習部503は、S120において変換部が追加されたニューラルネットワークのパラメータを、適合ドメインデータを用いて学習する。学習方法については後述する。学習されたニューラルネットワークのパラメータはNN軽量化部504および表示部508に送信される。
S140では、適合ドメイン学習部503は、学習が終了したか否かを判定する。学習終了と判定されればS150に進み、学習終了でなければS120の処理に進みさらに変換部を追加する。判定方法については後述する。
S150では、NN軽量化部504は、変換部が追加されたニューラルネットワークと出力特性が略同一もしくは近似の処理結果を出力するニューラルネットワークを生成する。生成されるニューラルネットワークは、よりネットワーク規模の小さいものに軽量化されている。軽量化の方法についてはあとで詳しく説明する。図9(a)では、学習データ保持部510および適合ドメイン学習データ保持部520のデータを用いて軽量化する形態を示しているが、軽量化のために用いるデータを別途用意してもよい。軽量化されたニューラルネットワークの構成およびパラメータはNNパラメータ保持部530および表示部508に送信される。NNパラメータ保持部530に保持されたニューラルネットワークの構成およびパラメータは、情報処理装置20による識別処理に利用される。
次に、図9(a)のフローチャートにおける具体的な処理内容について説明する。S110では、NN学習部501は、ニューラルネットワークのパラメータを設定し、学習データ保持部510に保持されている学習データ(第1のデータ群)を用いてニューラルネットワークを学習する。ここでは図4(a)に示すニューラルネットワークを学習する。
図10は、NN学習工程におけるNNの最終層の一例を示す図である。例えば、よく画像分類タスクの学習に用いられるILSVRCの1000クラス画像分類データを学習する場合には、全結合層の最終層1015の出力ノード1050のノード数を1000個にする。そして、それぞれの出力1043が各画像に割り振られている画像分類クラスにおける尤度となるようにすればよい。
学習時には、学習データ保持部510に保持されている学習データに対するそれぞれの出力結果1043と教師値との誤差をニューラルネットワークに対して逆伝播する。そして、各convolution層のフィルタ値(重み)を確率的勾配降下法などで更新すればよい。確率的勾配降下法にはSGD(Stochastic Gradient Descent)法などがある。
図11は、NN学習工程におけるNNの各層の処理内容と出力結果の一例を示す図である。図11(a)は処理内容を示しており、入力された学習画像に対して処理1101~1112を行った後、全結合層(fc)に入力される。全結合層の処理に関しては図10で示したように三層で表現されている。図11(b)は図11(a)で示した処理内容を行った際の各層での出力結果を表した図である。なお、図11(b)ではrelu処理は省略している。
DCNNでは各層に入力されるNn(n=1、2、・・・)チャンネルの入力が畳みこみによりNn+1チャンネルの出力に変換される。各Convolution層で用いるフィルタ群(カーネル)は4次元のテンソル表現で表される。例えば、(フィルタサイズ)×(フィルタサイズ)×((入力)チャネル数)×(フィルタ数=出力チャンネル数)で表される。
図11(b)に示した例では、入力画像は256×256にリサイズされており、RGBの3チャンネルで定義されているとしている。convolution1101で用いるフィルタ(カーネル)は「7×7×3×96」で表現される。図11(b)で示しているように、stride4(4ピクセルおきに畳み込み演算を行う)で処理される。そのため、convolution1101(およびrelu処理1102)による出力結果は1113に示すように「64×64×96」でサイズが表される結果となる。次に、convolution1103の処理におけるフィルタは「5×5×96×128」で表される。そのためconvolution1103の処理による出力結果は「64×64×128」となる。次に、pooling処理1105は「2×2」の範囲の最大値をstride2で取得する場合、出力結果は「32×32×128」となる。学習されたニューラルネットワークは変換部追加部502に送信される。学習結果を表示する処理に関しては後述する。
S120では、変換部追加部502は、S110で学習されたニューラルネットワークに変換部を追加する。上述したように、追加される変換部には、ニューラルネットワークの所定の中間層の出力結果が入力され、当該変換部の変換結果を当該所定の中間層に入力する構成を有する。ここでは図11で説明したニューラルネットワークに変換部を追加する例について説明する。
図12は、NNの各層および変換部の処理内容と出力結果の一例を示す図である。図12(a)は、ニューラルネットワークに変換部を挿入した状態を示している。具体的には、relu処理1102、1104、1107、1110、1112のあとに変換部1~5を挿入している。ここでは、それぞれの変換部はconvolutionおよびrelu処理で定義されることを想定する。ただし、他の所定の空間フィルタ(非線形変換)で構成してもよい。また、他の層の出力結果(Relayやバイパス)を入力してもよい。変換部1~5を挿入することで、中間層の出力結果(図12(b)の出力結果1211、1212、1213、1214、1215)が出力される。変換部のパラメータの学習方法についてはS130において説明する。
ただし、図12(a)で追加している変換部のconvolutionのカーネルサイズには限定がある。たとえば、変換部1におけるconvolution1201は入力チャンネルおよび出力チャンネルは96でなければならないため、処理におけるフィルタは「1×1×96×96」で表される。ただし、変換部への入力チャンネルおよび出力チャンネルが96であればよいので、変換部におけるconvolution層を「1×1×96×128」、「1×1×128×96」でフィルタが定義される2層としてもよい。また、簡単のためフィルタサイズは1×1で説明したが、出力結果のサイズが変化しなければ3×3や5×5のフィルタを用いてもよい。ただし、出力結果のサイズが変化しないようにするために、末端処理を行う必要がある。具体的には末端の画素を処理する際に画面外を参照する場合には畳み込み演算時に0(ゼロ)を入力する。また、後続のS130において学習を行いやすくするためにパラメータの数は少ないほうがよいので、あまりフィルタサイズを大きくしないように設定するほうが望ましい。さらに、中間層から分岐して変換部で処理を行ってからニューラルネットワークに入力してもよい。
図13は、NNの各層および変換部の処理内容と出力結果の他の例を示す図である。図13(a)は、ニューラルネットワークに変換部を挿入した状態を示している。具体的には、convolution1101、relu処理1102を行ったあと、convolution1103の処理、変換部6におけるconvolution1216の処理の2つに分岐している。ここでは、中間層の出力結果1113を、フィルタサイズ「5×5×96×128」で定義されるconvolution1103およびrelu処理1104に入力している。それと並行に、フィルタサイズ「1×1×96×96」で定義される変換部6におけるconvolution1216およびrelu処理1217を入力している。さらに、出力結果1114と出力結果1221とを結合(concat処理)する。ここで、concat処理とは出力チャンネル方向に結合することである。結合結果は図13(b)の結合結果1222に示してあり、その結合結果のサイズは「64×64×(128+96)」で表される。結合結果はさらに、フィルタサイズ「1×1×(128+96)×128」で定義されるconvolution1219およびrelu処理1220(変換部7)に入力される。その後、元のニューラルネットワークにおける処理の1つであるpooling処理1105に接続している。なお、図13(a)は一例であり、その他の分岐構造をもつ変換部を追加してもよい。また、分岐構造と中間層の層間に変換部を接続する構成を混合してもよい。ただし、変換部に入力される中間層の出力結果と変換部が出力する出力結果のサイズは同じなければならない。
なお、ここでは変換部の構成についてDCNNを用いて説明したが、その他の多層ニューラルネットワークでもよい。また、「Min Lin, "Network In Network",International Conference on Learning Representations 2014」のようにDCNNにMLP(Multilayer Perceptron)で定義された変換部を追加してもよい。ただし、その場合にDCNNよりパラメータの数が増える場合があるので、1層ずつ追加して適合ドメイン学習するなどの工夫が必要になる場合がある。このような学習の工夫については後述のS130において説明する。
また、先に説明したように変換部に入力される中間層の出力結果と変換部が出力する出力結果のサイズが同じであればよいので、そういった関数(フィルタ演算)が定義できればよい。たとえば、図12(a)に示した変換部1は入力される中間層の出力結果のサイズが「64×64×96」であるため、「64×64×96」のサイズの変換結果を出力するフィルタ演算を定義すればよい。たとえば、「3×3」で定義されるフィルタ(平均値フィルタやガウシアンフィルタ)でもよい。そのフィルタのパラメータはS130において学習してもよいし、ニューラルネットワークのパラメータに乗算してもよい。その場合には変換処理がニューラルネットワークの一部をなすように構成され、変換処理が追加されたニューラルネットワークの構成およびパラメータは適合ドメイン学習部503に送信される。
図6(b)は、変換処理を追加する場合のNN学習装置50のCPU401が実行する処理の機能ブロックを示している。また、図9(b)は、NN学習装置50の各機能ブロックで実行される処理の概要を示している。基本的には図6(a)、図9(a)で説明した処理内容と同様であるが、変換部追加部502のかわりに変換処理追加部509が追加されている点が異なる。また、学習処理のフローにおいてもS120のかわりにS121が追加されている。その他の処理に関しては同様であるため省略する。
S130では、適合ドメイン学習部503は、S120において変換部の追加されたニューラルネットワークのパラメータを、適合ドメインデータを用いて学習する。ここではS120において図12の構成とする場合について学習方法を説明する。適合ドメイン学習部503は、適合ドメイン学習データ保持部520に保持されているデータ(第2のデータ群)を用いて、S120によって変換部が追加されたニューラルネットワークのパラメータ学習を行う。基本的にはS110と同様に適合ドメイン学習データ保持部520に保持されている学習データに対する各出力結果と教師値との誤差をニューラルネットワークに対して逆伝播する。そして各convolution層のフィルタ値(重み)および識別層にあたる全結合層の結合重みを確率的勾配降下法などで更新すればよい。変換部における各convolution層のフィルタ値(重み)の初期値はランダムな値をいれてもよいが、恒等写像(入力されるベクトルと出力されるベクトルが同じ出力になるような写像)で定義すればよい。たとえば、図12(a)で説明した変換部1におけるconvolution層1201の処理に用いるフィルタサイズは「1×1×96×96」で定義されている。そのため、フィルタの値をf(1、1、i、j)(i=1、2、・・・、96、j=1、2、・・・、96)で表すと、数式1のように表される。
f(1、1、i、j)=1(i=j)
f(1、1、i、j)=0(i≠j) ・・・(1)
恒等写像を初期値にして学習することで、適合ドメインデータ学習時に元のニューラルネットワークのパラメータを変化させる必要がなければ学習されない(フィルタ値が大きく更新されない)。逆に、適合ドメインデータ学習時に元のニューラルネットワークのパラメータを変化させる必要があればフィルタ値は大きく更新される。もし、S120の処理を繰り返す場合には、フィルタ値が大きく更新された変換部の前後に変換部を追加する、もしくは変換部の構成を変更するなどしてもよい。
しかしながら、学習されるパラメータの数は先のS110で定義されたニューラルネットワークに対して変換部が追加されているため、増えている。また、適合ドメインにおける学習データは多くの場合、S110で用いた学習データに比べて少ない場合が多い。そのため、すべての層のパラメータを一度に学習することは難しい場合がある。そこで、ここでは変換部以外のニューラルネットワーク、つまりS110において学習したニューラルネットワークにあたる各convolution層の学習率を0(ゼロ)に設定する。つまり、S110において学習したニューラルネットワークにあたる各convolution層のフィルタ値(重み)は更新されない。この処理により学習されるパラメータの数が少なくなるため、適合ドメインにおける学習データが少ない場合でも精度の高い学習が可能になる。また、変換部の学習率を0(ゼロ)とした学習を行ったあと、再度ニューラルネットワーク全体のパラメータを学習してもよい。ただし、その場合にも学習率を大きくすると過適合する可能性があるため小さい値に設定するのが望ましい。また、S110において学習したニューラルネットワークの各層の学習率を0(ゼロ)に設定すると説明したが、変換部における学習率に比べて小さい値に設定すればよい。また、変換部の学習率も入力層に近い変換部ほど小さい値に設定するなどしてもよい。これらの学習方法を行うことで変換部が大量画像と適合ドメインの特性の違いに合わせて学習される。また、変換部以外のニューラルネットワークのパラメータはS110において大量画像で学習したパラメータを継承しているため精度が高いニューラルネットワークを学習することが可能になる。
一般的に、DCNNのような深層モデルでは、入力層に近い層ほどドメインに依存した活性が、出力層に近いほど認識タスクに特化した活性が起こりやすいことが知られている。図12に示したような中間層間に変換部を接続した構成で適合ドメインの学習を行うとその適合ドメインの特性に特化した学習が行われる。
たとえば、適合ドメインの画像が劣化画像やボケ画像の場合には入力層に近い変換部が大きく活性する。また、撮影部で撮影した画像を識別する場合には、撮影部の特性に特化した学習も可能になる。たとえば、適合するシーンが固定カメラで撮影されるシーンである場合などに有効になる。さらに、出力層に近い層では認識タスクに特化した活性が起こりやすくなるため、その適合シーンによく現れる事象に特化した学習が行われる。例えば、同じ人体検出タスクであっても、大量画像で学習する場合にはさまざまな姿勢や服装・照明パターンの人体を検出するための学習が通常行われる。上述の方法を用いればその適合シーンによく現れる姿勢・服装・照明パターンをより良く検出するように学習が行われる。このように、通常ニューラルネットワークを学習する場合には大量画像が必要になるのでさまざまなシーンや状況で撮影された画像を利用する場合がおおい。しかし、本実施形態の方法を用いれば各変換部が適合するシーンに対して必要に応じて学習される。
なお上述の説明においてはS120において複数の変換部を一括して追加した例を説明したが、変換部を1つずつ追加してもよいし、変換部の一部の学習率を0(ゼロ)にして学習するなど行ってもよい。それによりS130におけるニューラルネットワークの学習時に一度に更新されるパラメータの数をさらに減らせるので効率のよい学習が可能になる。また、変換部を複数パターン追加して適合ドメインにおける学習を行った後、適合ドメインデータに対する識別精度を比較して選択してもよい。その場合の処理内容については第4実施形態において説明する。学習されたニューラルネットワークパラメータはNN軽量化部504に送信される。
S140では、適合ドメイン学習部503は、学習が終了したか否かを判定する。学習終了と判定されればS150に進み、学習終了でなければS120の処理に進みさらに変換部を追加する。判定は、S120およびS130の処理の回数で行ってもよいし、S130によって学習されたニューラルネットワークの適合ドメインデータに対する識別精度を評価して判定してもよい。また、S120の処理を繰り返す場合にさらに変換部を追加してもよいし、別の変換部と置換してもよい。
S150では、NN軽量化部504は、S130において学習されたニューラルネットワークを軽量化する。ここでは学習データ保持部510および適合ドメイン学習データ保持部520に保持されている全データを用いて軽量化の処理を行う例について説明する。また、ここでは図12で説明した変換部が追加されたニューラルネットワークを軽量化する方法について説明する。より具体的には、図12で説明した変換部が追加されたニューラルネットワークに画像を入力し、変換部を除く中間層および最終層の出力結果を抽出する。そして、軽量化されたニューラルネットワークの中間層および最終層の教師値とすることで変換部を含むニューラルネットワークに対して変換部を除くことで軽量化されたニューラルネットワークを学習する。
図14は、NN軽量化後のNNの各層の処理内容と出力結果の一例を示す図である。図14(a)は、図11(a)で示したS110で学習したニューラルネットワークと同様の処理を行う軽量化されたニューラルネットワークである。ただし、convolution層1401、1402、1403、1404、1405のフィルタ値(重み)は更新されている。図14(b)は、軽量化されたニューラルネットワークの各中間層の出力結果1211、1212、1213、1214、1215、1115、1117を示している。なお、出力結果1211、1212、1213、1214、1215、1115、1117は、図12(b)で説明した中間層の出力結果1211、1212、1213、1214、1215、1115、1117と同様の結果である。
学習は、S110やS130と同様に確率的勾配降下法などで更新すればよい。また、ここでは、学習データ保持部510および適合ドメイン学習データ保持部520に保持されている全データを用いて軽量化することを想定した。しかし、適合ドメイン学習データのみを用いてもよいし、適合ドメインデータと適合ドメイン以外のデータとの間で重みづけしてもよい。また、各中間層および最終層に与える教師値に対しても重みづけしてもよい。例えば、入力層から最終層に向かって重みが大きくなるように設定する。重みづけすることで適合ドメイン学習時に大きくフィルタ値が更新される。また、教師値として用いる中間層を選択してもよい。
ただし、S150で行われる軽量化の方法はここで説明している方法に限定されない。例えば、低ランク近似などの行列分解の技術を使って各フィルタを圧縮するなどの方法で軽量化してもよい。あるいは、「Geoffrey Hinton, "Distilling the Knowledge in Neural Network",arxiv 2015」に開示されているように、最終層の出力結果が同様の結果になるように圧縮してもよい。
以上の処理により適合ドメインにおける識別精度の高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、上述の説明においては学習処理(S120とS130)を何回か繰り返してから、S140の処理でニューラルネットワークを軽量化している例を説明している。しかし、S140の処理を行った後にS120の処理を再度行ってもよい。この場合、NN軽量化を行いながら適合ドメインにおける学習を行うことになる。そのため、変換部を複数回追加しても適合ドメイン学習時のニューラルネットワークの規模が増大することなく学習を行うことができる。
<表示処理>
以下では、上述の各処理に対応する表示部508における情報表示の処理について説明する。NN学習部501、変換部追加部502、適合ドメイン学習部503、NN軽量化部504はそれぞれ表示部508と接続されており、各部の処理内容や結果を表示することができる。
図15は、軽量化を行うNNの選択を受け付けるグラフィカルユーザインタフェース(GUI)を例示的に示す図である。具体的には、複数回変換部を追加して適合ドメイン学習した結果を表示している。特に、ユーザ60が、表示部508上でポインタ64を用いて、複数のニューラルネットワークの中から1つのニューラルネットワークを選択している様子を示している。また、選択したニューラルネットワークに対して軽量化を行うか否かを受け付けるダイアログ65を表示している。例えば、ユーザ60は、規模の大きいニューラルネットワークを選択し、軽量化を行う指示を入力することにより、当該ニューラルネットワークの軽量化処理が実行されることになる。
以上説明したとおり第1実施形態によれば、NN学習装置50は、大量画像でニューラルネットワークを学習したのち、適合ドメインを学習するための変換部をニューラルネットワークに追加する。NN学習装置50は、変換部を追加したニューラルネットワークを適合ドメインデータで学習したのち、軽量化処理により、同様の出力結果を出力するニューラルネットワークを生成する。これらの処理により適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。
(第2実施形態)
第2実施形態では、第1実施形態の処理に加えて、適合ドメインにおけるニューラルネットワークを学習したあと、1つ以上の中間層の出力結果を特徴量とする識別器(たとえば、SVMなど)を学習する。そして、学習により得られたニューラルネットワークおよびこれに結合する識別器を、情報処理装置における識別処理に用いる形態について説明する。
<情報処理装置の構成と動作>
図5(b)は、第2実施形態に係る情報処理装置20の機能構成の例を示す図である。図5(b)における情報処理装置20では、第1実施形態における図5(a)の構成に対して、識別部203、識別器保持部540が追加されており、NN出力部202の処理内容が異なる。なお、識別器保持部540もNNパラメータ保持部530と同じように不揮発性の記憶装置として情報処理装置20と接続された構成としてもよい。
図8(b)は、第2実施形態に係る情報処理装置20による識別処理のフローチャートである。T210の処理内容は先に示したT110と同様の処理であるため説明を省略する。T220では、NN出力部202は、識別対象画像100をあらかじめ学習されたネットワークに入力し、図4(b)、図4(c)で示したように中間層の出力結果を出力する。出力された中間層の出力結果は識別部203に送信される。T230では、識別部203は、T220で取得された中間層の出力結果を識別器に入力して識別結果を出力する。なお、識別器はあらかじめ学習されており、識別器保持部540に保持されている。
<NN学習装置の構成と動作>
次に、T230で用いる識別器の学習方法について説明する。第1実施形態と同様に、NN学習装置50において、適合ドメインにおけるニューラルネットワークを学習し、追加した変換部を除く中間層の出力結果および識別層の出力結果と同様の出力をするニューラルネットワークに軽量化する。軽量化されたニューラルネットワークに適合ドメイン学習データを入力した際に得られる中間層の出力結果を特徴ベクトルとして識別器を学習する。
図6(c)は、第3実施形態におけるNN学習装置の機能構成の例を示す図である。図6(a)で説明したNN学習装置50と共通部が多いが、第2実施形態のNN学習装置50では、識別器学習部505および識別器保持部540が追加されている。
図9(c)は、第2実施形態に係るNN学習装置50による学習処理のフローチャートである。S210、S220、S230、S240、S250の処理は第1実施形態と同様であるため、説明を省略する。S250において軽量化されたニューラルネットワークはNNパラメータ保持部530だけでなく、識別器学習部540にも送信される。
S260では、識別器学習部505は、S250において軽量化されたニューラルネットワークおよび適合ドメイン学習データ保持部520に保持されている適合ドメイン学習データを用いて、識別器を学習する。学習された識別器のパラメータは識別器保持部540に保持される。なお、ここでは適合ドメイン学習部503に学習に用いる適合ドメインデータと識別器学習部505が学習に用いる適合ドメインデータは同じであるとしたが、同じものを用いなくてもよい。また、識別器学習時に学習する認識タスクおよびクラスカテゴリはS210やS230におけるニューラルネットワーク学習時と違っていてもよい。たとえば、ニューラルネットワークの学習は画像分類タスクで学習したのち、識別器の学習時には領域分割タスクで学習してもよい。
次に、S260のより具体的な処理内容について説明する。第2実施形態では図4(b)や(c)で示したように中間層の出力結果を特徴ベクトルとして用いる識別器を学習する。より識別精度の高い識別器を学習するために複数の中間層の出力結果を統合して用いる方がよい。識別器にはSVM(Support-Vector-Machine)などを用いればよい。また、複数の中間層の出力結果を統合して全結合層のみを学習してもよい。その場合には全結合層のパラメータを識別器のパラメータとする。S260において学習された識別器のパラメータは識別器パラメータ保持部540に保持され、識別時に利用される。
また、中間層の出力結果を特徴ベクトルとして識別器を用いる場合には、S220およびS230の処理が異なる場合がある。更に、S210において大量画像でニューラルネットワークを学習したあと、大量画像もしくは適合ドメインデータで識別器を学習し、その識別精度に基づいて変換部を追加してもよい。また、S230における各変換部の学習パラメータを設定してもよい。
評価方法としては、適合ドメインにおける評価データを用意し、S110において学習したニューラルネットワークに評価データを入力し各中間層の出力結果を取得する。

図16は、第2実施形態における変換部追加工程における処理内容の一例を示す図である。図16(a)は、各中間層の出力結果を全結合層1027、1029、1031、1033に入力する形態を示す図である。また、図16(b)は、各中間層の出力結果を識別器1035、1037、1039、1041に入力する形態を示す図である。識別結果は図16において、それぞれ出力結果1028、1030、1032、1034、1036、1038、1040、1042である。この識別結果の識別精度をそれぞれ評価する。ここで用いる全結合層および識別器はあらかじめ学習しておく。例えば、識別精度が低いと判定された中間層の前に変換部を挿入するか、その位置に挿入した変換部のS230における学習率を大きくすることで識別精度を向上する。
なお、上述の説明においては、S230の処理のあとネットワークの規模を大きくしないようにS240の処理を行ったが、S240の処理を行わなくてもよい。例えば、S260において、変換部を追加したニューラルネットワークをそのまま利用し、変換部を除く中間層の出力結果を特徴ベクトルとして識別器を学習する。そうすれば、識別時に識別器を利用する際の特徴ベクトル用のメモリ使用量は変わらない。
以上説明したとおり第2実施形態によれば、第1実施形態に加え、NN学習装置50は、軽量化されたニューラルネットワークの中間層の出力結果を特徴ベクトルとする識別器を更に学習する。これらの処理により適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。
(第3実施形態)
第3実施形態では、第1実施形態の処理に加えて、適合ドメインにおけるニューラルネットワークを学習する際に追加する変換部をあらかじめ用意してある変換部の中から選択して適合ドメインにおける学習を行う形態について説明する。情報処理装置20による画像の識別処理は第1実施形態と同様であるため説明を省略する。以下ではNN学習装置50における学習時の処理について説明する。
<NN学習装置の構成と動作>
図6(d)は、第3実施形態におけるNN学習装置の機能構成の例を示す図である。図6(a)で説明したNN学習装置50と共通部が多いが、変換部保持部550が追加されている。なお、第3実施形態に係るNN学習装置50による学習処理は、第1実施形態と同様で図9(a)である。ただし、S120の処理内容が異なるため以下では、S120の処理内容について説明する。
S120では、変換部追加部502は、変換部保持部550に保持されている1以上の変換部の中から1つの変換部を選択することにより決定する。そして、決定された変換部をS110において学習されたニューラルネットワークに追加する。変換部を追加したニューラルネットワークの構成およびパラメータは適合ドメイン学習部503に送信される。
例えば、あらかじめさまざま適合ドメインに対して第1実施形態で説明したような方法で変換部を追加したニューラルネットワークを用いて適合ドメイン学習を行っておく。その際に学習した適合ドメイン学習データの一部または全部、もしくは適合ドメインの特性を表すような特徴量を保持しておく。たとえば、適合ドメイン学習データの一部もしくは代表的なデータをニューラルネットワークに入力した際の中間層の出力結果を保持しておく。その保持されていたデータと今回学習する適合ドメインデータとの類似度を算出し、類似度の高い適合ドメインデータを学習した際に追加した変換部を追加すればよい。その変換部の構成およびパラメータを初期値にして、後続のS130の処理を行えばよい。処理内容は第1実施形態と同様であるため説明を省略する。
この処理によりS130の学習処理を効率化することが出来、また、より適合ドメインデータが少ない状況でも識別精度の高い学習が可能になる。なお、第2実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置20で利用する形態としてもよい。
(第4実施形態)
第4実施形態では、第1実施形態の処理に加えて、適合ドメインにおけるニューラルネットワークを複数学習したのちにもっとも識別精度の高いニューラルネットワークを選択する形態について説明する。情報処理装置20における画像の識別処理は第1実施形態と同様であるため説明を省略する。以下ではNN学習装置50における学習時の処理について説明する。
<NN学習装置の構成と動作>
図7(a)は、第4実施形態におけるNN学習装置の機能構成の例を示す図である。図6(a)で説明したNN学習装置50と共通部が多いが、適合NN選択部506が追加されている。
図9(d)は、第4実施形態に係るNN学習装置50による学習処理のフローチャートである。S310は第1実施形態におけるS110と同様の処理内容であるため、説明を省略する。S320は第1実施形態におけるS120と同様の処理内容であるが、第4実施形態では複数の方法で変換部を追加した複数のニューラルネットワークを生成する点が異なる。S330は第1実施形態におけるS130と同様の処理内容であるが、第4実施形態では複数の方法で変換部を追加したニューラルネットワークをそれぞれ学習する。学習されたそれぞれのニューラルネットワークは適合NN選択部506および表示部508に送信される。
S340では、適合NN選択部506は、S330で学習された複数のニューラルネットワークの中から、適合ドメインデータに対する識別精度に基づいてニューラルネットワークを選択する。選択されたニューラルネットワークはNN軽量化部504および表示部508に送信される。S350の処理内容は第1実施形態におけるS150と同様であるため、説明を省略する。
なお、それぞれ異なる変換部を追加した複数のニューラルネットワークは、他の実施形態と同様に複数回変換部を追加して適合ドメインの学習を行ってもよい。また、上述の説明においてはS330のあとに適合ドメインデータに対する識別精度に基づいてニューラルネットワークを選択している。しかし、S350のあとに適合ドメインデータに対する識別精度に基づいてニューラルネットワークを選択してもよい。また、選択したニューラルネットワークにさらに変換部を追加するなどしてさらに適合ドメインに対する学習を行ってもよい。また、表示部508上でユーザがユーザインタフェース(UI)などを用いて複数のニューラルネットワークの中から選択してもよい。
図17は、NNの選択を受け付けるGUIを例示的に示す図である。具体的には、表示部508が適合ドメイン学習されたニューラルネットワークA、B、Cを表示し、ユーザ60が、ポインタ64を用いて、識別精度の高くネットワーク規模が小さい「ニューラルネットワークB」を選択している様子を示している。
上述の処理により、適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、第2実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置20で利用する形態としてもよい。
(第5実施形態)
第5実施形態では、第1実施形態の処理に加えて、適合ドメインにおける学習データをユーザが設定する形態について説明する。情報処理装置20における画像の識別処理は第1実施形態と同様であるため説明を省略する。以下ではNN学習装置50における学習時の処理について説明する。
<NN学習装置の構成と動作>
図7(b)は、第5実施形態におけるNN学習装置の機能構成の例を示す図である。図6(a)で説明したNN学習装置50と共通部が多いが、ユーザ学習データ設定部507が追加されている。
図9(e)は、第5実施形態に係るNN学習装置50による学習処理のフローチャートである。S410、S420における処理内容は第1実施形態におけるS110、S120と同様の処理であるため、説明を省略する。
S430では、ユーザ学習データ設定部507は、適合ドメインにおける学習データを設定する。設定された学習データは適合ドメイン学習データ保持部520に送信される。S430において設定されるデータは以下のようなものがある。
・適合ドメインにおける学習データおよび教師値
・適合ドメインにおける学習データの教師値
・S440において学習する際に重視する学習データの選択
図18は、学習データの設定を受け付けるGUIを例示的に示す図である。ここでは、ユーザ60が、適合ドメインにおける学習データ61を選択し、適合ドメイン学習データ保持部520にポインタ64を用いて追加している様子を示している。図18では、更に、教師値を入力するダイアログ62、学習データを重視するかどうかをユーザに問うダイアログ63も表示している。設定された適合ドメインにおける学習データおよび教師値は適合ドメイン学習データ保持部520に送信され、後続のS440に利用される。
図19は、適合ドメインの選択を受け付けるGUIを例示的に示す図である。具体的には、ユーザ60が、「適合ドメインを選択してください」というダイアログ67に従って、適合ドメインを選択している。ここでは、複数のアイコン66で示されたそれぞれの適合ドメイン(ポートレート、スポーツ、さくら)からポインタ64を用いてスポーツを選択している。設定された適合ドメイン情報は、適合ドメイン学習データ保持部520に送信され、後続のS440において利用される。このように、S430において、適合したいシーン自体をユーザが選択するよう構成してもよい。
S440では、適合ドメイン学習部503は、設定された適合ドメイン情報に基づいて適合ドメイン学習データを選択して学習を行う。S440およびそれ以降の処理は第1実施形態におけるS140およびそれ以降の処理とほぼ同様であるため説明を省略する。重視する学習データが選択された場合には、S440およびS460の処理の際に、重みづけして学習することになる。
上述の処理により、適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、第2実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置20で利用する形態としてもよい。
(第6実施形態)
第6実施形態では、第1実施形態の処理に加えて、画像生成部で大量画像を生成してニューラルネットワークをプレトレーニングしてから適合ドメインデータに対する学習する形態について説明する。ここでは、画像生成部によって生成した大量画像でニューラルネットワークをプレトレーニングして、適合ドメインデータで変換部を学習する。情報処理装置20における画像の識別処理は第1実施形態と同様であるため説明を省略する。以下ではNN学習装置50における学習時の処理について説明する。
<NN学習装置の構成と動作>
図7(c)は、第6実施形態におけるNN学習装置の機能構成の例を示す図である。図6(a)で説明したNN学習装置50と共通部が多いが、学習データ生成部509が追加されている。
図9(f)は、第6実施形態に係るNN学習装置50による学習処理のフローチャートである。S510では、学習データ生成部509は、S520で用いる学習データを大量に生成する。生成された学習データは学習データ保持部510に送信される。S520~S560における処理内容は第1実施形態におけるS110~S150の処理内容と同様であるため、説明を省略する。
S510のより具体的な処理内容について説明する。ここではCG技術を使って学習データを作成する例について説明する。たとえば、認識タスクが人体検出である場合で説明する。例えば、「Hironori Hattori, "Learning Scene-Specific Pedestrian Detectors without Real Data", Computer Vision and Pattern Recognition 2015」に開示されているようにさまざまなパターンで人物モデルを生成して、いろいろな姿勢・服装のパターンでシーン内のさまざまな位置に配置してCG画像を生成する。当該文献では、適合するシーンに合わせて生成するCG画像を調整しているが、シーンを限定しなくてもよい。なお、ニューラルネットワークの学習には大量画像が必要になるため、S510において数百万~数千万のオーダーでCG画像を生成する。生成された学習画像は学習データ保持部510に送信される。なお、ここでは、S520において用いる学習データを、CG技術を使って生成する例について説明したが実写データとCGデータを混合してもよい。
これらの処理により適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、第2実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置20で利用する形態としてもよい。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
10 カメラ; 20 情報処理装置; 15 ネットワーク; 30 シーン; 100 識別対象画像; 401 CPU; 402 RAM; 403 ROM; 404 HD; 405 操作部; 406 表示部; 407 ネットワークI/F; 50 NN学習装置

Claims (13)

  1. ニューラルネットワーク(NN)を学習する学習装置であって、
    第1のデータ群を用いて第1のNNを学習する第1の学習手段と、
    前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成手段と、
    前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習手段と、
    学習された前記第2のNNと略同一の出力特性を有し該第2のNNよりもネットワーク規模が小さい第3のNNを生成する第2の生成手段と、
    を有することを特徴とする学習装置。
  2. 前記第2の生成手段は、前記第1のデータ群及び前記第2のデータ群の少なくとも一方を用いて前記第3のNNを生成する
    ことを特徴とする請求項1に記載の学習装置。
  3. ニューラルネットワーク(NN)を学習する学習装置であって、
    第1のデータ群を用いて第1のNNを学習する第1の学習手段と、
    前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成手段と、
    前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習手段と、
    を有し、
    前記第2の学習手段は、前記第2のデータ群を用いた学習における前記処理部の学習率を他の層の学習率よりも大きく設定する
    ことを特徴とする学習装置。
  4. 前記第2の学習手段は、前記処理部を除く層の学習率をゼロに設定する
    ことを特徴とする請求項3に記載の学習装置。
  5. ニューラルネットワーク(NN)を学習する学習装置であって、
    第1のデータ群を用いて第1のNNを学習する第1の学習手段と、
    前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成手段と、
    前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習手段と、
    を有し、
    前記第1の生成手段は、前記第1のNNに対して複数の処理部を挿入した前記第2のNNを生成し、
    前記第2の学習手段は、前記複数の処理部のうち、前記第2のNNの入力層に近い処理部ほど学習率を低く設定する
    ことを特徴とする学習装置。
  6. ニューラルネットワーク(NN)を学習する学習装置であって、
    第1のデータ群を用いて第1のNNを学習する第1の学習手段と、
    前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成手段と、
    前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習手段と、
    を有し、
    前記第1の生成手段は、前記第1のNNに含まれる各層の出力結果の識別精度に基づいて前記処理部を挿入する
    ことを特徴とする学習装置。
  7. ニューラルネットワーク(NN)を学習する学習装置であって、
    第1のデータ群を用いて第1のNNを学習する第1の学習手段と、
    前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成手段と、
    前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習手段と、
    を有し、
    前記第1の生成手段は、前記第2のデータ群の特徴に基づいて挿入する前記処理部を決定する
    ことを特徴とする学習装置。
  8. ニューラルネットワーク(NN)を学習する学習装置であって、
    第1のデータ群を用いて第1のNNを学習する第1の学習手段と、
    前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成手段と、
    前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習手段と、
    を有し、
    前記処理部は、前記所定の処理として、畳み込み処理及びrelu処理または所定の空間フィルタ処理を行う
    ことを特徴とする学習装置。
  9. 前記処理部は、前記第1の層からの出力に対して前記所定の処理を行った結果を前記第2の層に入力する
    ことを特徴とする請求項1乃至8の何れか1項に記載の学習装置。
  10. 前記第1のデータ群は、前記第2のNNの推論対象に適合しないドメインのデータを含む
    ことを特徴とする請求項1乃至9の何れか1項に記載の学習装置。
  11. 前記第2のデータ群は、前記第2のNNの推論対象に適合するドメインのデータを含む
    ことを特徴とする請求項1乃至10の何れか1項に記載の学習装置。
  12. ニューラルネットワーク(NN)を学習する学習装置の制御方法であって、
    第1のデータ群を用いて第1のNNを学習する第1の学習工程と、
    前記第1のNNにおける第1の層と該第1の層に後続する第2の層との間に所定の処理を行う処理部を挿入した第2のNNを生成する第1の生成工程と、
    前記第1のデータ群と異なる第2のデータ群を用いて前記第2のNNを学習する第2の学習工程と、
    学習された前記第2のNNと略同一の出力特性を有し該第2のNNよりもネットワーク規模が小さい第3のNNを生成する第2の生成工程と、
    を含むことを特徴とする学習装置の制御方法。
  13. コンピュータを、請求項1乃至11の何れか1項に記載の学習装置の各手段として機能させるためのプログラム。
JP2018071041A 2018-04-02 2018-04-02 ニューラルネットワークの学習装置およびその制御方法 Active JP7228961B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018071041A JP7228961B2 (ja) 2018-04-02 2018-04-02 ニューラルネットワークの学習装置およびその制御方法
US16/368,970 US20190303746A1 (en) 2018-04-02 2019-03-29 Multilayer neural network learning apparatus and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018071041A JP7228961B2 (ja) 2018-04-02 2018-04-02 ニューラルネットワークの学習装置およびその制御方法

Publications (3)

Publication Number Publication Date
JP2019185127A JP2019185127A (ja) 2019-10-24
JP2019185127A5 JP2019185127A5 (ja) 2021-05-13
JP7228961B2 true JP7228961B2 (ja) 2023-02-27

Family

ID=68054478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018071041A Active JP7228961B2 (ja) 2018-04-02 2018-04-02 ニューラルネットワークの学習装置およびその制御方法

Country Status (2)

Country Link
US (1) US20190303746A1 (ja)
JP (1) JP7228961B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055854B2 (en) * 2018-08-23 2021-07-06 Seoul National University R&Db Foundation Method and system for real-time target tracking based on deep learning
JP7045410B2 (ja) * 2020-03-25 2022-03-31 日東電工株式会社 画像分類プログラムの組換方法
CN113076815B (zh) * 2021-03-16 2022-09-27 西南交通大学 一种基于轻量级神经网络的自动驾驶方向预测方法
CN112799658B (zh) * 2021-04-12 2022-03-01 北京百度网讯科技有限公司 模型训练方法、模型训练平台、电子设备和存储介质
KR20240019055A (ko) * 2022-08-02 2024-02-14 미쓰비시덴키 가부시키가이샤 추론 장치, 추론 방법 및 기록 매체
CN116368534A (zh) 2022-08-02 2023-06-30 三菱电机株式会社 推理装置、推理方法以及推理程序

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170068888A1 (en) 2015-09-09 2017-03-09 Intel Corporation Cost-sensitive classification with deep learning using cost-aware pre-training
JP2017130196A (ja) 2016-01-14 2017-07-27 キヤノン株式会社 認識学習装置、認識学習方法及びプログラム
JP2017174298A (ja) 2016-03-25 2017-09-28 株式会社デンソーアイティーラボラトリ ニューラルネットワークシステム、端末装置、管理装置およびニューラルネットワークにおける重みパラメータの学習方法
JP2017199149A (ja) 2016-04-26 2017-11-02 ヤフー株式会社 学習装置、学習方法および学習プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223635B2 (en) * 2015-01-22 2019-03-05 Qualcomm Incorporated Model compression and fine-tuning
US10068171B2 (en) * 2015-11-12 2018-09-04 Conduent Business Services, Llc Multi-layer fusion in a convolutional neural network for image classification
DE112018006885B4 (de) * 2018-02-20 2021-11-04 Mitsubishi Electric Corporation Trainingsvorrichtung,sprachaktivitätsdetektor und verfahren zur erfassung einer sprachaktivität

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170068888A1 (en) 2015-09-09 2017-03-09 Intel Corporation Cost-sensitive classification with deep learning using cost-aware pre-training
JP2017130196A (ja) 2016-01-14 2017-07-27 キヤノン株式会社 認識学習装置、認識学習方法及びプログラム
JP2017174298A (ja) 2016-03-25 2017-09-28 株式会社デンソーアイティーラボラトリ ニューラルネットワークシステム、端末装置、管理装置およびニューラルネットワークにおける重みパラメータの学習方法
JP2017199149A (ja) 2016-04-26 2017-11-02 ヤフー株式会社 学習装置、学習方法および学習プログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
J.Park ほか,Improved neural network based language modelling and adaptation,[online],2010年09月26日,pp.1041-1044,https://www.isca-speech.org/archive_v0/archive_papers/interspeech_2010/i10_1041.pdf
中村 伊吹ほか,一人称視点行動認識のためのニューラルネットワークの小型化,情報処理学会研究報告コンピュータビジョンとイメージメディア(CVIM),2017-CVIM-207巻,第9号,日本,情報処理学会,2017年05月03日,pp.1-6,ISSN: 2188-8701
森岡 幹 ほか,ドメイン依存・非依存の内部表現を有する再帰型ニューラルネットワーク言語モデル,日本音響学会 2017年 秋季研究発表会講演論文集[CD-ROM],日本,一般社団法人日本音響学会,2017年09月25日,pp.27-30(1-10-10)
田村 悠 ほか,ファッションECサイトの顧客行動分析,オペレーションズ・リサーチ 経営の科学,第63巻,第2号,日本,公益社団法人日本オペレーションズ・リサーチ学会,2018年02月01日,pp.91-98,ISSN: 0030-3674

Also Published As

Publication number Publication date
US20190303746A1 (en) 2019-10-03
JP2019185127A (ja) 2019-10-24

Similar Documents

Publication Publication Date Title
JP7228961B2 (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
US10002313B2 (en) Deeply learned convolutional neural networks (CNNS) for object localization and classification
CN112446270B (zh) 行人再识别网络的训练方法、行人再识别方法和装置
WO2020125623A1 (zh) 活体检测方法、装置、存储介质及电子设备
KR102224253B1 (ko) 심층 네트워크와 랜덤 포레스트가 결합된 앙상블 분류기의 경량화를 위한 교사-학생 프레임워크 및 이를 기반으로 하는 분류 방법
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
JP2018055259A (ja) 情報処理装置、情報処理方法及びプログラム
CN112446476A (zh) 神经网络模型压缩的方法、装置、存储介质和芯片
US20180157892A1 (en) Eye detection method and apparatus
CN112561027A (zh) 神经网络架构搜索方法、图像处理方法、装置和存储介质
JP7166784B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP7405198B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
CN111291809A (zh) 一种处理装置、方法及存储介质
CN112036260B (zh) 一种自然环境下多尺度子块聚合的表情识别方法及系统
US11385526B2 (en) Method of processing image based on artificial intelligence and image processing device performing the same
CN111797882A (zh) 图像分类方法及装置
CN112464930A (zh) 目标检测网络构建方法、目标检测方法、装置和存储介质
CN114694089A (zh) 一种新型的多模态融合的行人重识别算法
CN110705564B (zh) 图像识别的方法和装置
Wu et al. Facial emotion recognition using deep learning
KR20210114257A (ko) 인공 신경망 기반의 비정제 동영상에서의 행동 인식 방법 및 장치
CN114492634A (zh) 一种细粒度装备图片分类识别方法及系统
US20230351203A1 (en) Method for knowledge distillation and model genertation
JP2021018477A (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210329

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221025

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230214

R151 Written notification of patent or utility model registration

Ref document number: 7228961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151