(57)【要約】【課題】適合ドメインにおけるニューラルネットワークの学習を効率的に行う。【解決手段】多層ニューラルネットワーク（多層ＮＮ）を学習する学習装置は、第１のデータ群を用いて第１の多層ＮＮを学習する第１の学習手段と、第１の多層ＮＮにおける第１の層と当該第１の層に後続する第２の層との間に所定の処理を行う変換部を追加した第２の多層ＮＮを生成する第１の生成手段と、第１のデータ群と特性が異なる第２のデータ群を用いて第２の多層ＮＮを学習する第２の学習手段と、を有する。【選択図】図６
2019185127.tif 000002
【特許請求の範囲】
【請求項１】
多層ニューラルネットワーク（多層ＮＮ）を学習する学習装置であって、
第１のデータ群を用いて第１の多層ＮＮを学習する第１の学習手段と、
前記第１の多層ＮＮにおける第１の層と該第１の層に後続する第２の層との間に所定の処理を行う変換部を挿入した第２の多層ＮＮを生成する第１の生成手段と、
前記第１のデータ群と特性が異なる第２のデータ群を用いて前記第２の多層ＮＮを学習する第２の学習手段と、
を有することを特徴とする学習装置。
【請求項２】
学習された前記第２の多層ＮＮと略同一の出力特性を有し該第２の多層ＮＮよりもネットワーク規模が小さい第３の多層ＮＮを生成する第２の生成手段を更に有する
ことを特徴とする請求項１に記載の学習装置。
【請求項３】
前記第２の生成手段は、前記第１のデータ群及び前記第２のデータ群の少なくとも一方を用いて前記第３の多層ＮＮを生成する
ことを特徴とする請求項２に記載の学習装置。
【請求項４】
前記第２の学習手段は、前記第２のデータ群を用いた学習における前記変換部の学習率を他の層の学習率よりも大きく設定する
ことを特徴とする請求項１乃至３の何れか１項に記載の学習装置。
【請求項５】
前記第２の学習手段は、前記変換部を除く層の学習率をゼロに設定する
ことを特徴とする請求項４に記載の学習装置。
【請求項６】
前記第１の生成手段は、前記第１の多層ＮＮに対して複数の変換部を挿入した前記第２の多層ＮＮを生成し、
前記第２の学習手段は、前記複数の変換部のうち、前記第２の多層ＮＮの入力層に近い変換部ほど学習率を低く設定する
ことを特徴とする請求項１乃至５の何れか１項に記載の学習装置。
【請求項７】
前記第１の生成手段は、前記第１の多層ＮＮに含まれる各層の出力結果の識別精度に基づいて前記変換部を挿入する
ことを特徴とする請求項１乃至６の何れか１項に記載の学習装置。
【請求項８】
前記第１の生成手段は、前記第２のデータ群の特徴に基づいて挿入する前記変換部を決定する
ことを特徴とする請求項１乃至７の何れか１項に記載の学習装置。
【請求項９】
多層ニューラルネットワーク（多層ＮＮ）を学習する学習装置の制御方法であって、
第１のデータ群を用いて第１の多層ＮＮを学習する第１の学習工程と、
前記第１の多層ＮＮにおける第１の層と該第１の層に後続する第２の層との間に所定の処理を行う変換部を追加した第２の多層ＮＮを生成する第１の生成工程と、
前記第１のデータ群と特性が異なる第２のデータ群を用いて前記第２の多層ＮＮを学習する第２の学習工程と、
を含むことを特徴とする学習装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか１項に記載の学習装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多層ニューラルネットワーク（ＮＮ）の学習に関するものである。
【背景技術】
【０００２】
画像・音声などのデータの内容を学習し認識を行う技術が存在する。たとえば、画像から人間の顔の領域を検出する顔認識タスク、画像中にある物体のカテゴリを判別する物体カテゴリ認識タスク、シーンの種別を判別するシーン種別認識タスク、など多様な認識タスクがある。このような認識タスクを学習・実行する技術として、ニューラルネットワーク（ＮＮ）の技術が知られている。ＮＮのうち特に深い（層の数が多い）ＮＮはＤＮＮ（Deep Neural Networks）と呼ばれている。特に、非特許文献１に開示されているように深い畳みこみ型のニューラルネットワークであるＤＣＮＮ（Deep Convolutional Neural Networks）は性能が高いことで近年注目されている。
【０００３】
また、ニューラルネットワークの学習精度を向上させるための手法が提案されている。特許文献１では、プレトレーニング時の中間層の出力結果を保持しておいて、利用者のもとで入力パターンに対する所望の出力および中間層の値を教師値としてシナプス結合（重み）を学習する技術が開示されている。また、特許文献２では、学習済みニューラルネットワークに追加データのみを与えて、対応する追加出力ニューロンを追加して追加出力ニューロンと中間層の結合係数のみを学習する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２７４４５５号公報
【特許文献２】特開平７−１６０６６０号公報
【非特許文献】
【０００５】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ＤＣＮＮは学習するパラメータが多いため大量のデータを用いた学習を行う必要がある。たとえば、ＩＬＳＶＲＣ（ImageNet Large Scale Visual Recognition Challenge）が提供している１０００クラス画像分類のデータ数は１００万個以上ある。そのため、ユーザがあるドメインのデータに対してニューラルネットワークを学習する場合には、まず、大量のデータで学習（プレトレーニング）を行う。その後、認識タスクの用途など、特定ドメインに特化した適合ドメインのデータでさらに学習（ファインチューニング）を行うことが多い。
【０００７】
ただし、適合ドメインのデータが少量しかない場合や適合ドメインのデータ特性がプレトレーニング時に使用したデータの特性と大きく異なる場合には、適合ドメインに対して識別精度の高いニューラルネットワークを学習することは困難である。上述の従来技術を用いた場合においても、学習されるニューラルネットワークの特定用途に特化した適合ドメインにおける識別精度が不十分な場合がある。また、特定用途に特化した適合ドメイン学習時にニューラルネットワークの規模が増加しないようにすることは容易ではない。そのため、ＤＣＮＮでは、適合ドメインの学習データが少ない場合に、効率よくニューラルネットワークのパラメータを学習することが必要になる。
【０００８】
本発明は、このような問題に鑑みてなされたものであり、適合ドメインにおけるニューラルネットワークの学習を効率的に行う技術を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上述の問題点を解決するため、本発明に係る多層ニューラルネットワーク（多層ＮＮ）を学習する学習装置は以下の構成を備える。すなわち、学習装置は、
第１のデータ群を用いて第１の多層ＮＮを学習する第１の学習手段と、
前記第１の多層ＮＮにおける第１の層と該第１の層に後続する第２の層との間に所定の処理を行う変換部を追加した第２の多層ＮＮを生成する第１の生成手段と、
前記第１のデータ群と特性が異なる第２のデータ群を用いて前記第２の多層ＮＮを学習する第２の学習手段と、
を有する。
【発明の効果】
【００１０】
本発明によれば、適合ドメインにおけるニューラルネットワークの学習を効率的に行うことのできる技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】システムの全体構成を例示的に示す図である。
【図２】識別対象の画像を例示的に示す図である。
【図３】各装置のハードウェア構成の一例を示す図である。
【図４】ＤＣＮＮの構造およびＤＣＮＮを用いた識別処理の例を示す図である。
【図５】情報処理装置の機能構成の例を示す図である。
【図６】第１〜第３実施形態におけるＮＮ学習装置の機能構成の例を示す図である。
【図７】第４〜第６実施形態におけるＮＮ学習装置の機能構成の例を示す図である。
【図８】情報処理装置による識別処理のフローチャートである。
【図９】ＮＮ学習装置による学習処理のフローチャートである。
【図１０】ＮＮ学習工程におけるＮＮの最終層の一例を示す図である。
【図１１】ＮＮ学習工程におけるＮＮの各層の処理内容と出力結果の一例を示す図である。
【図１２】ＮＮの各層および変換部の処理内容と出力結果の一例を示す図である。
【図１３】ＮＮの各層および変換部の処理内容と出力結果の他の例を示す図である。
【図１４】ＮＮ軽量化後のＮＮの各層の処理内容と出力結果の一例を示す図である。
【図１５】軽量化を行うＮＮの選択を受け付けるＧＵＩを例示的に示す図である。
【図１６】第２実施形態における変換部追加工程における処理内容の一例を示す図である。
【図１７】ＮＮの選択を受け付けるＧＵＩを例示的に示す図である。
【図１８】学習データの設定を受け付けるＧＵＩを例示的に示す図である。
【図１９】適合ドメインの選択を受け付けるＧＵＩを例示的に示す図である。
【発明を実施するための形態】
【００１２】
以下に、図面を参照して、この発明の実施の形態の一例を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１３】
（第１実施形態）
本発明に係る情報処理装置の第１実施形態として、情報処理装置２０とＮＮ学習装置５０を含むシステムを例に挙げて以下に説明する。
【００１４】
＜前提技術＞
ＤＣＮＮとは、各層において、前層からの出力結果に対して畳みこみ処理を行い次層に出力するようなネットワーク構造をもつものである。最終層は認識結果を表す出力層となる。各層には畳みこみ演算用のフィルタ（カーネル）が複数用意される。出力層に近い層では畳みこみによる結合ではなく通常のニューラルネットワーク（ＮＮ）のような全結合（fullconnect）の構造とするのが一般的である。もしくは、非特許文献２（「Jeff Donahue, Yangqing Jia, Judy Hoffman, Trevor Darrell, "DeCAF: A Deep Convolutional Activation Feature for Generic Visual Recognition", arxiv 2013」）に開示されているように全結合層のかわりに畳みこみ演算層（中間層）の出力結果を線形識別器に入力し識別を行う手法も注目されている。
【００１５】
ＤＣＮＮの学習フェーズにおいては、畳みこみフィルタの値や全結合層の結合重み（両者をあわせて学習パラメータと呼ぶ）を誤差逆伝搬法（バックプロパゲーション：ＢＰ）などの方法を用いて教師付きデータから学習する。
【００１６】
認識フェーズでは学習済ＤＣＮＮにデータを入力し、各層において学習済みの学習パラメータによってデータを順次処理し、出力層から認識結果を得るかもしくは中間層の出力結果を集計し、識別器に入力することで認識結果を得る。
【００１７】
＜システム構成＞
図１は、システムの全体構成を例示的に示す図である。システムは、ネットワーク１５を介して接続されたカメラ１０及び情報処理装置２０を含んでいる。なお、情報処理装置２０とカメラ１０を一体構成の装置としてもよい。また、情報処理装置２０とニューラルネットワーク（ＮＮ）学習装置５０がネットワーク１５を介して接続されている。なお、情報処理装置２０とＮＮ学習装置５０が一体に構成されていてもよい。
【００１８】
カメラ１０は、情報処理装置２０による情報処理の対象となる画像を取得する。図１では、所定の画角（撮影範囲）で撮影を行うカメラ１０により被写体となるシーン３０を撮影することにより画像を取得する。ここでは、シーン３０は、木（ｔｒｅｅ）３０ａ、自動車（ｃａｒ）３０ｂ、建物（ｂｕｉｌｄｉｎｇ）３０ｃ、空（ｓｋｙ）３０ｄ、道（ｒｏａｄ）３０ｅ、人体（ｂｏｄｙ）３０ｆ等を含む。
【００１９】
画像処理装置２０は、カメラ１０で撮影（撮像）されたシーン３０における各被写体が画像内に存在するかどうか（画像分類）を判定する。ここでは、画像分類（ｃｌａｓｓｉｆｉｃａｔｉｏｎ）タスクとして説明するが、被写体の位置を検出・被写体領域を抽出するタスクや他のタスクでもよい。他のタスクの場合の説明については後述する。
【００２０】
図２は、識別対象の画像を例示的に示す図である。図２（ａ）は「建物」、図２（ｂ）は「木（林・森）」、図２（ｃ）は「車」と画像分類される画像の例を示している。
【００２１】
図３は、情報処理装置２０およびＮＮ学習装置５０のハードウェア構成の一例を示す図である。ＣＰＵ４０１は、情報処理装置２０およびＮＮ学習装置５０全体を制御する。具体的には、ＣＰＵ４０１は、ＲＯＭ４０３やハードディスクドライブ（ＨＤＤ）４０４等に格納されたプログラムを実行することにより、図５及び図６を参照して後述する情報処理装置２０及びＮＮ学習装置５０の機能を実現する。
【００２２】
ＲＡＭ４０２は、ＣＰＵ４０１がプログラムを展開して実行するワークエリアとして機能する記憶領域である。ＲＯＭ４０３は、ＣＰＵ４０１が実行するプログラム等を格納する記憶領域である。ＨＤＤ４０４は、ＣＰＵ４０１が処理を実行する際に要する各種のプログラム、閾値に関するデータ等を含む各種のデータを格納する記憶領域である。操作部４０５は、ユーザによる入力操作を受け付ける。表示部４０６は、情報処理装置２０および必要に応じてＮＮ学習装置５０の情報を表示する。ネットワークインタフェース（Ｉ／Ｆ）４０７は、外部の機器と通信すべくネットワーク１５と接続するインタフェースである。
【００２３】
＜多層ニューラルネットワーク（ＮＮ）を用いた識別処理＞
まず、第１実施形態において学習されるニューラルネットワークを用いて画像を識別する際の処理について説明する。なお、ここではニューラルネットワークはＤＣＮＮとする。ＤＣＮＮでは、非特許文献１に開示されているように畳みこみ（ｃｏｎｖｏｌｕｔｉｏｎ）と非線形処理（ｒｅｌｕやｍａｘｐｏｏｌｉｎｇなど）の組み合わせで特徴層が実現される。各特徴層での処理の後、全結合層（ｆｕｌｌｃｏｎｅｃｔ）を経て画像分類結果（各クラスに対する尤度）が出力される。
【００２４】
図４は、ＤＣＮＮの構造およびＤＣＮＮを用いた識別処理の例を示す図である。図４では、畳みこみ（ｃｏｎｖｏｌｕｔｉｏｎ）を行う層を「ｃｏｎｖ」と表記し，ｍａｘｐｏｏｌｉｎｇを行う層を「ｐｏｏｌ」と表記し、全結合層（ｆｕｌｌｃｏｎｅｃｔ）を「ｆｃ」と表示している。ここで、ｍａｘｐｏｏｌｉｎｇとは非特許文献１に開示されているように所定カーネルサイズ内の最大値を次層に出力する処理である。また、「ｒｅｌｕ」とは非特許文献１に開示されているような非線形処理の一つであり、前層のｃｏｎｖ層の出力結果のうち、負の値を０（ゼロ）とする処理である。その他の非線形処理でもよい。更に、出力結果を「Ｏｕｔｐｕｔ」と表記している。なおここでの入力画像Ｉｍｇ１０００はＤＣＮＮに入力する際に、所定画像サイズで画像をクロップもしくはリサイズするのが一般的である。
【００２５】
図４（ａ）では、入力画像Ｉｍｇ１０００が入力され、ｃｏｎｖｏｌｕｔｉｏｎ１００１，ｒｅｌｕ１００２，ｃｏｎｖｏｌｕｔｉｏｎ１００３，ｒｅｌｕ１００４，ｐｏｏｌｉｎｇ１００５の処理を行う例を示している。この一連の処理を所定回数繰り返した後、全結合層１０１１、ｒｅｌｕ１０１２，全結合層１０１３、ｒｅｌｕ１０１４，全結合層１０１５の処理を行って、出力結果１０５０を出力している。なお、非特許文献２に開示されているように、ニューラルネットワークの中間層の出力結果を特徴ベクトルとして、識別器に入力することで識別を行うこともできる。
【００２６】
図４（ｂ）〜図４（ｄ）は、ＤＣＮＮの他の例を示している。例えば、図４（ｂ）のように中間層のｒｅｌｕ処理１００９の出力結果を特徴ベクトルｆｅａｔｕｒｅ１０１６としてＳＶＭ（Support-Vector-Machine）１０１７に入力することで識別を行う。なお、ここでは途中のｒｅｌｕ処理１００９の出力結果を利用したが、その前のｃｏｎｖｏｌｕｔｉｏｎ１００８や後のｐｏｏｌｉｎｇ処理１０１０の出力結果でもいいし、他の中間層の出力結果、またそれらの組み合わせでもよい。また、ここでは識別器としてＳＶＭを利用したが、他の識別器を用いてもよい。
【００２７】
また、図４（ｂ）の場合は入力画像に対して識別結果を一意に出力する構成である。一方、物体領域を識別する場合などで画素や小領域ごとに識別する必要がある場合には図４（ｃ）のような構成を用いる。その場合、所定の中間層の出力結果を１０１８にリサイズと示している処理を行う。リサイズ処理とは中間層の出力結果を入力画像サイズと同サイズにリサイズする処理である。リサイズ処理後に注目している画素もしくは小領域における所定の中間層の出力結果１０１９を特徴ベクトルとして、先と同様に、ＳＶＭ１０２１に入力することで識別を行う。一般的にＤＣＮＮを用いる場合、中間層の出力結果は入力画像サイズに比べて小さくなるため、中間層の出力結果を入力画像サイズにリサイズする必要がある。リサイズ方法は最近傍法（Nearest-Neighbor-Algorithm）などの補間手法であれば何でもよい。なお、ここではＳＶＭを用いたが、それ以外の識別器でもよい。
【００２８】
さらに、「Ross Girshick, "Fast R-CNN",International Conference on Computer Vision 2015」に開示されているニューラルネットワークを用いてもよい。すなわち、物体領域候補をＲＯＩ（Region-Of-Interest）として推定して対象物体領域のＢｏｕｎｄｉｎｇＢｏｘおよびスコアを出力するニューラルネットワークを用いてもよい。その場合は図４（ｄ）の１０２２で示すように途中の中間層の出力結果を所定の方法で推定したＲＯＩ領域内でｐｏｏｌｉｎｇ処理（ＲＯＩｐｏｏｌｉｎｇ）する。ＲＯＩｐｏｏｌｉｎｇした出力結果を複数の全結合層に接続して、ＢｏｕｎｄｉｎｇＢｏｘの位置・サイズおよびその対象物体のスコアなどを出力する。
【００２９】
＜情報処理装置の構成と動作＞
図５（ａ）は、第１実施形態に係る情報処理装置２０の機能構成の例を示す図である。ここでは、情報処理装置２０のＣＰＵ４０１が実行する処理を、それぞれ機能ブロックとして描いている。なお、図５（ａ）には、情報処理装置２０内の各機能ブロックの他に、カメラ１０に相当する撮影部２００も示している。撮影部２００は、カメラ１０に相当し、識別対象画像を取得する。情報処理装置２０は、入力部２０１、ＮＮ出力部２０２、ＮＮパラメータ保持部５３０を有している。なお、ＮＮパラメータ保持部５３０は、不揮発性の記憶装置として情報処理装置２０と接続された構成としてもよい。
【００３０】
図８（ａ）は、第１実施形態に係る情報処理装置２０による識別処理のフローチャートである。Ｔ１１０では、入力部２０１は、撮影部２００によって撮影された識別対象画像を入力データとして受信する。受信された識別対象画像はＮＮ出力部２０２に送信される。Ｔ１２０では、ＮＮ出力部２０２は、識別対象画像をＮＮパラメータ保持部５３０に保持されたニューラルネットワークを用いて識別処理を実行し識別結果を出力する。ここでは認識タスクは画像分類タスクであるため、画像のクラス名およびそのスコアが出力される。具体的なニューラルネットワークの構造などについては後述する。また、非特許文献２や「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」に開示される手法のようにニューラルネットワークの出力結果を特徴ベクトルとして用いる識別部を用いる場合もある。その際の情報処理装置の構成およびフローについては第２実施形態において説明する。
【００３１】
次に、図８（ａ）に示したフローチャートにおける具体的な処理内容について説明する。Ｔ１１０では、入力部２０１は、撮影部２００が撮影した画像を、識別対象画像１００として取得する。ここでは、図１で示したようなシーン３０の画像を取得する。なお、識別対象画像は、図示しない外部装置に格納されている画像であってもよい。その場合、入力部２０１は外部装置から読み出された画像を識別対象画像として取得する。外部装置に格納されている画像は、例えば撮影部２００等で予め撮影された画像であってもよいし、ネットワーク等を経由するなどの他の方法で取得され格納された画像であってもよい。入力部２０１で取得された識別対象画像１００はＮＮ出力部２０２に送信される。
【００３２】
Ｔ１２０では、ＮＮ出力部２０２は、Ｔ１１０で入力された識別対象画像１００をあらかじめ学習されたニューラルネットワークに入力する。そして、ニューラルネットワークの最終層の出力結果を識別結果として出力する。ここで用いるニューラルネットワークは例えば先の図４（ａ）に示したようなものを利用すればよい。ニューラルネットワークの構造およびパラメータはＮＮパラメータ保持部５３０に保持されている。
【００３３】
＜ＮＮ学習装置の構成と動作＞
図６（ａ）は、第１実施形態におけるＮＮ学習装置の機能構成の例を示す図である。ここでは、ＮＮ学習装置５０のＣＰＵ４０１が実行する処理を、それぞれ機能ブロックとして描いている。ＮＮ学習装置５０は、ＮＮ学習部５０１、変換部追加部５０２、適合ドメイン学習部５０３、ＮＮ軽量化部５０４、表示部５０８を有している。また、学習データ保持部５１０、適合ドメイン学習データ保持部５２０、ＮＮパラメータ保持部５３０を有している。学習データ保持部５１０、適合ドメイン学習データ保持部５２０、ＮＮパラメータ保持部５３０は、不揮発性の記憶装置として情報処理装置２０と接続された構成としてもよい。
【００３４】
第１実施形態では、ＮＮ学習装置５０において学習データ保持部５１０に保持されている大量データで多層ニューラルネットワーク（多層ＮＮ）を学習する。その後、適合ドメイン学習データ保持部５２０に保持されている適合ドメインデータ（少量データ）で学習することを想定する。ただし、あらかじめ大量データで学習されたニューラルネットワークの学習パラメータを保持しておき、適合ドメインデータについての学習処理のみを行うよう構成してもよい。
【００３５】
図９（ａ）は、第１実施形態に係るＮＮ学習装置５０による学習処理のフローチャートである。Ｓ１１０では、ＮＮ学習部５０１は、ニューラルネットワークのパラメータを設定し、学習データ保持部５１０に保持されている学習データを用いてニューラルネットワークを学習する。ここでは、先に説明したＤＣＮＮを用いる。設定するパラメータは、層の数、層の処理内容（構造）、フィルタサイズ、出力チャンネル数などである。学習されたニューラルネットワークは変換部追加部５０２に送信される。学習結果を表示する場合には表示部５０８に送信される。学習結果の表示に関しては後述する。
【００３６】
Ｓ１２０では、変換部追加部５０２は、Ｓ１１０で学習されたニューラルネットワークに変換部を追加する。追加される変換部は、ニューラルネットワークの所定の中間層の出力結果を入力として、変換結果を所定の中間層に入力する構成を有する。その処理や追加方法については詳しく後述する。また、変換部追加部５０２は適合ドメイン学習データ保持部５２０と接続されていて、変換部を追加する際に適合ドメインデータを用いる場合もある。以下の説明では適合ドメインデータを用いない例について説明する。変換部が追加されたニューラルネットワークの構成やパラメータは適合ドメイン学習部５０３および表示部５０８に送信される。
【００３７】
Ｓ１３０では、適合ドメイン学習部５０３は、Ｓ１２０において変換部が追加されたニューラルネットワークのパラメータを、適合ドメインデータを用いて学習する。学習方法については後述する。学習されたニューラルネットワークのパラメータはＮＮ軽量化部５０４および表示部５０８に送信される。
【００３８】
Ｓ１４０では、適合ドメイン学習部５０３は、学習が終了したか否かを判定する。学習終了と判定されればＳ１５０に進み、学習終了でなければＳ１２０の処理に進みさらに変換部を追加する。判定方法については後述する。
【００３９】
Ｓ１５０では、ＮＮ軽量化部５０４は、変換部が追加されたニューラルネットワークと出力特性が略同一もしくは近似の処理結果を出力するニューラルネットワークを生成する。生成されるニューラルネットワークは、よりネットワーク規模の小さいものに軽量化されている。軽量化の方法についてはあとで詳しく説明する。図９（ａ）では、学習データ保持部５１０および適合ドメイン学習データ保持部５２０のデータを用いて軽量化する形態を示しているが、軽量化のために用いるデータを別途用意してもよい。軽量化されたニューラルネットワークの構成およびパラメータはＮＮパラメータ保持部５３０および表示部５０８に送信される。ＮＮパラメータ保持部５３０に保持されたニューラルネットワークの構成およびパラメータは、情報処理装置２０による識別処理に利用される。
【００４０】
次に、図９（ａ）のフローチャートにおける具体的な処理内容について説明する。Ｓ１１０では、ＮＮ学習部５０１は、ニューラルネットワークのパラメータを設定し、学習データ保持部５１０に保持されている学習データ（第１のデータ群）を用いてニューラルネットワークを学習する。ここでは図４（ａ）に示すニューラルネットワークを学習する。
【００４１】
図１０は、ＮＮ学習工程におけるＮＮの最終層の一例を示す図である。例えば、よく画像分類タスクの学習に用いられるＩＬＳＶＲＣの１０００クラス画像分類データを学習する場合には、全結合層の最終層１０１５の出力ノード１０５０のノード数を１０００個にする。そして、それぞれの出力１０４３が各画像に割り振られている画像分類クラスにおける尤度となるようにすればよい。
【００４２】
学習時には、学習データ保持部５１０に保持されている学習データに対するそれぞれの出力結果１０４３と教師値との誤差をニューラルネットワークに対して逆伝播する。そして、各ｃｏｎｖｏｌｕｔｉｏｎ層のフィルタ値（重み）を確率的勾配降下法などで更新すればよい。確率的勾配降下法にはＳＧＤ（Stochastic Gradient Descent）法などがある。
【００４３】
図１１は、ＮＮ学習工程におけるＮＮの各層の処理内容と出力結果の一例を示す図である。図１１（ａ）は処理内容を示しており、入力された学習画像に対して処理１１０１〜１１１２を行った後、全結合層（ｆｃ）に入力される。全結合層の処理に関しては図１０で示したように三層で表現されている。図１１（ｂ）は図１１（ａ）で示した処理内容を行った際の各層での出力結果を表した図である。なお、図１１（ｂ）ではｒｅｌｕ処理は省略している。
【００４４】
ＤＣＮＮでは各層に入力されるＮｎ（ｎ＝１、２、・・・）チャンネルの入力が畳みこみによりＮｎ＋１チャンネルの出力に変換される。各Ｃｏｎｖｏｌｕｔｉｏｎ層で用いるフィルタ群（カーネル）は４次元のテンソル表現で表される。例えば、（フィルタサイズ）×（フィルタサイズ）×（（入力）チャネル数）×（フィルタ数＝出力チャンネル数）で表される。
【００４５】
図１１（ｂ）に示した例では、入力画像は２５６×２５６にリサイズされており、ＲＧＢの３チャンネルで定義されているとしている。ｃｏｎｖｏｌｕｔｉｏｎ１１０１で用いるフィルタ（カーネル）は「７×７×３×９６」で表現される。図１１（ｂ）で示しているように、ｓｔｒｉｄｅ４（４ピクセルおきに畳み込み演算を行う）で処理される。そのため、ｃｏｎｖｏｌｕｔｉｏｎ１１０１（およびｒｅｌｕ処理１１０２）による出力結果は１１１３に示すように「６４×６４×９６」でサイズが表される結果となる。次に、ｃｏｎｖｏｌｕｔｉｏｎ１１０３の処理におけるフィルタは「５×５×９６×１２８」で表される。そのためｃｏｎｖｏｌｕｔｉｏｎ１１０３の処理による出力結果は「６４×６４×１２８」となる。次に、ｐｏｏｌｉｎｇ処理１１０５は「２×２」の範囲の最大値をｓｔｒｉｄｅ２で取得する場合、出力結果は「３２×３２×１２８」となる。学習されたニューラルネットワークは変換部追加部５０２に送信される。学習結果を表示する処理に関しては後述する。
【００４６】
Ｓ１２０では、変換部追加部５０２は、Ｓ１１０で学習されたニューラルネットワークに変換部を追加する。上述したように、追加される変換部には、ニューラルネットワークの所定の中間層の出力結果が入力され、当該変換部の変換結果を当該所定の中間層に入力する構成を有する。ここでは図１１で説明したニューラルネットワークに変換部を追加する例について説明する。
【００４７】
図１２は、ＮＮの各層および変換部の処理内容と出力結果の一例を示す図である。図１２（ａ）は、ニューラルネットワークに変換部を挿入した状態を示している。具体的には、ｒｅｌｕ処理１１０２、１１０４、１１０７、１１１０、１１１２のあとに変換部１〜５を挿入している。ここでは、それぞれの変換部はｃｏｎｖｏｌｕｔｉｏｎおよびｒｅｌｕ処理で定義されることを想定する。ただし、他の所定の空間フィルタ（非線形変換）で構成してもよい。また、他の層の出力結果（Ｒｅｌａｙやバイパス）を入力してもよい。変換部１〜５を挿入することで、中間層の出力結果（図１２（ｂ）の出力結果１２１１、１２１２、１２１３、１２１４、１２１５）が出力される。変換部のパラメータの学習方法についてはＳ１３０において説明する。
【００４８】
ただし、図１２（ａ）で追加している変換部のｃｏｎｖｏｌｕｔｉｏｎのカーネルサイズには限定がある。たとえば、変換部１におけるｃｏｎｖｏｌｕｔｉｏｎ１２０１は入力チャンネルおよび出力チャンネルは９６でなければならないため、処理におけるフィルタは「１×１×９６×９６」で表される。ただし、変換部への入力チャンネルおよび出力チャンネルが９６であればよいので、変換部におけるｃｏｎｖｏｌｕｔｉｏｎ層を「１×１×９６×１２８」、「１×１×１２８×９６」でフィルタが定義される２層としてもよい。また、簡単のためフィルタサイズは１×１で説明したが、出力結果のサイズが変化しなければ３×３や５×５のフィルタを用いてもよい。ただし、出力結果のサイズが変化しないようにするために、末端処理を行う必要がある。具体的には末端の画素を処理する際に画面外を参照する場合には畳み込み演算時に０（ゼロ）を入力する。また、後続のＳ１３０において学習を行いやすくするためにパラメータの数は少ないほうがよいので、あまりフィルタサイズを大きくしないように設定するほうが望ましい。さらに、中間層から分岐して変換部で処理を行ってからニューラルネットワークに入力してもよい。
【００４９】
図１３は、ＮＮの各層および変換部の処理内容と出力結果の他の例を示す図である。図１３（ａ）は、ニューラルネットワークに変換部を挿入した状態を示している。具体的には、ｃｏｎｖｏｌｕｔｉｏｎ１１０１、ｒｅｌｕ処理１１０２を行ったあと、ｃｏｎｖｏｌｕｔｉｏｎ１１０３の処理、変換部６におけるｃｏｎｖｏｌｕｔｉｏｎ１２１６の処理の２つに分岐している。ここでは、中間層の出力結果１１１３を、フィルタサイズ「５×５×９６×１２８」で定義されるｃｏｎｖｏｌｕｔｉｏｎ１１０３およびｒｅｌｕ処理１１０４に入力している。それと並行に、フィルタサイズ「１×１×９６×９６」で定義される変換部６におけるｃｏｎｖｏｌｕｔｉｏｎ１２１６およびｒｅｌｕ処理１２１７を入力している。さらに、出力結果１１１４と出力結果１２２１とを結合（ｃｏｎｃａｔ処理）する。ここで、ｃｏｎｃａｔ処理とは出力チャンネル方向に結合することである。結合結果は図１３（ｂ）の結合結果１２２２に示してあり、その結合結果のサイズは「６４×６４×（１２８＋９６）」で表される。結合結果はさらに、フィルタサイズ「１×１×（１２８＋９６）×１２８」で定義されるｃｏｎｖｏｌｕｔｉｏｎ１２１９およびｒｅｌｕ処理１２２０（変換部７）に入力される。その後、元のニューラルネットワークにおける処理の１つであるｐｏｏｌｉｎｇ処理１１０５に接続している。なお、図１３（ａ）は一例であり、その他の分岐構造をもつ変換部を追加してもよい。また、分岐構造と中間層の層間に変換部を接続する構成を混合してもよい。ただし、変換部に入力される中間層の出力結果と変換部が出力する出力結果のサイズは同じなければならない。
【００５０】
なお、ここでは変換部の構成についてＤＣＮＮを用いて説明したが、その他の多層ニューラルネットワークでもよい。また、「Min Lin, "Network In Network",International Conference on Learning Representations 2014」のようにＤＣＮＮにＭＬＰ（Multilayer Perceptron）で定義された変換部を追加してもよい。ただし、その場合にＤＣＮＮよりパラメータの数が増える場合があるので、１層ずつ追加して適合ドメイン学習するなどの工夫が必要になる場合がある。このような学習の工夫については後述のＳ１３０において説明する。
【００５１】
また、先に説明したように変換部に入力される中間層の出力結果と変換部が出力する出力結果のサイズが同じであればよいので、そういった関数（フィルタ演算）が定義できればよい。たとえば、図１２（ａ）に示した変換部１は入力される中間層の出力結果のサイズが「６４×６４×９６」であるため、「６４×６４×９６」のサイズの変換結果を出力するフィルタ演算を定義すればよい。たとえば、「３×３」で定義されるフィルタ（平均値フィルタやガウシアンフィルタ）でもよい。そのフィルタのパラメータはＳ１３０において学習してもよいし、ニューラルネットワークのパラメータに乗算してもよい。その場合には変換処理がニューラルネットワークの一部をなすように構成され、変換処理が追加されたニューラルネットワークの構成およびパラメータは適合ドメイン学習部５０３に送信される。
【００５２】
図６（ｂ）は、変換処理を追加する場合のＮＮ学習装置５０のＣＰＵ４０１が実行する処理の機能ブロックを示している。また、図９（ｂ）は、ＮＮ学習装置５０の各機能ブロックで実行される処理の概要を示している。基本的には図６（ａ）、図９（ａ）で説明した処理内容と同様であるが、変換部追加部５０２のかわりに変換処理追加部５０９が追加されている点が異なる。また、学習処理のフローにおいてもＳ１２０のかわりにＳ１２１が追加されている。その他の処理に関しては同様であるため省略する。
【００５３】
Ｓ１３０では、適合ドメイン学習部５０３は、Ｓ１２０において変換部の追加されたニューラルネットワークのパラメータを、適合ドメインデータを用いて学習する。ここではＳ１２０において図１２の構成とする場合について学習方法を説明する。適合ドメイン学習部５０３は、適合ドメイン学習データ保持部５２０に保持されているデータ（第２のデータ群）を用いて、Ｓ１２０によって変換部が追加されたニューラルネットワークのパラメータ学習を行う。基本的にはＳ１１０と同様に適合ドメイン学習データ保持部５２０に保持されている学習データに対する各出力結果と教師値との誤差をニューラルネットワークに対して逆伝播する。そして各ｃｏｎｖｏｌｕｔｉｏｎ層のフィルタ値（重み）および識別層にあたる全結合層の結合重みを確率的勾配降下法などで更新すればよい。変換部における各ｃｏｎｖｏｌｕｔｉｏｎ層のフィルタ値（重み）の初期値はランダムな値をいれてもよいが、恒等写像（入力されるベクトルと出力されるベクトルが同じ出力になるような写像）で定義すればよい。たとえば、図１２（ａ）で説明した変換部１におけるｃｏｎｖｏｌｕｔｉｏｎ層１２０１の処理に用いるフィルタサイズは「１×１×９６×９６」で定義されている。そのため、フィルタの値をｆ（１、１、ｉ、ｊ）（ｉ＝１、２、・・・、９６、ｊ＝１、２、・・・、９６）で表すと、数式１のように表される。
【００５４】
ｆ（１、１、ｉ、ｊ）＝１（ｉ＝ｊ）
ｆ（１、１、ｉ、ｊ）＝０（ｉ≠ｊ）    ・・・（１）
恒等写像を初期値にして学習することで、適合ドメインデータ学習時に元のニューラルネットワークのパラメータを変化させる必要がなければ学習されない（フィルタ値が大きく更新されない）。逆に、適合ドメインデータ学習時に元のニューラルネットワークのパラメータを変化させる必要があればフィルタ値は大きく更新される。もし、Ｓ１２０の処理を繰り返す場合には、フィルタ値が大きく更新された変換部の前後に変換部を追加する、もしくは変換部の構成を変更するなどしてもよい。
【００５５】
しかしながら、学習されるパラメータの数は先のＳ１１０で定義されたニューラルネットワークに対して変換部が追加されているため、増えている。また、適合ドメインにおける学習データは多くの場合、Ｓ１１０で用いた学習データに比べて少ない場合が多い。そのため、すべての層のパラメータを一度に学習することは難しい場合がある。そこで、ここでは変換部以外のニューラルネットワーク、つまりＳ１１０において学習したニューラルネットワークにあたる各ｃｏｎｖｏｌｕｔｉｏｎ層の学習率を０（ゼロ）に設定する。つまり、Ｓ１１０において学習したニューラルネットワークにあたる各ｃｏｎｖｏｌｕｔｉｏｎ層のフィルタ値（重み）は更新されない。この処理により学習されるパラメータの数が少なくなるため、適合ドメインにおける学習データが少ない場合でも精度の高い学習が可能になる。また、変換部の学習率を０（ゼロ）とした学習を行ったあと、再度ニューラルネットワーク全体のパラメータを学習してもよい。ただし、その場合にも学習率を大きくすると過適合する可能性があるため小さい値に設定するのが望ましい。また、Ｓ１１０において学習したニューラルネットワークの各層の学習率を０（ゼロ）に設定すると説明したが、変換部における学習率に比べて小さい値に設定すればよい。また、変換部の学習率も入力層に近い変換部ほど小さい値に設定するなどしてもよい。これらの学習方法を行うことで変換部が大量画像と適合ドメインの特性の違いに合わせて学習される。また、変換部以外のニューラルネットワークのパラメータはＳ１１０において大量画像で学習したパラメータを継承しているため精度が高いニューラルネットワークを学習することが可能になる。
【００５６】
一般的に、ＤＣＮＮのような深層モデルでは、入力層に近い層ほどドメインに依存した活性が、出力層に近いほど認識タスクに特化した活性が起こりやすいことが知られている。図１２に示したような中間層間に変換部を接続した構成で適合ドメインの学習を行うとその適合ドメインの特性に特化した学習が行われる。
【００５７】
たとえば、適合ドメインの画像が劣化画像やボケ画像の場合には入力層に近い変換部が大きく活性する。また、撮影部で撮影した画像を識別する場合には、撮影部の特性に特化した学習も可能になる。たとえば、適合するシーンが固定カメラで撮影されるシーンである場合などに有効になる。さらに、出力層に近い層では認識タスクに特化した活性が起こりやすくなるため、その適合シーンによく現れる事象に特化した学習が行われる。例えば、同じ人体検出タスクであっても、大量画像で学習する場合にはさまざまな姿勢や服装・照明パターンの人体を検出するための学習が通常行われる。上述の方法を用いればその適合シーンによく現れる姿勢・服装・照明パターンをより良く検出するように学習が行われる。このように、通常ニューラルネットワークを学習する場合には大量画像が必要になるのでさまざまなシーンや状況で撮影された画像を利用する場合がおおい。しかし、本実施形態の方法を用いれば各変換部が適合するシーンに対して必要に応じて学習される。
【００５８】
なお上述の説明においてはＳ１２０において複数の変換部を一括して追加した例を説明したが、変換部を１つずつ追加してもよいし、変換部の一部の学習率を０（ゼロ）にして学習するなど行ってもよい。それによりＳ１３０におけるニューラルネットワークの学習時に一度に更新されるパラメータの数をさらに減らせるので効率のよい学習が可能になる。また、変換部を複数パターン追加して適合ドメインにおける学習を行った後、適合ドメインデータに対する識別精度を比較して選択してもよい。その場合の処理内容については第４実施形態において説明する。学習されたニューラルネットワークパラメータはＮＮ軽量化部５０４に送信される。
【００５９】
Ｓ１４０では、適合ドメイン学習部５０３は、学習が終了したか否かを判定する。学習終了と判定されればＳ１５０に進み、学習終了でなければＳ１２０の処理に進みさらに変換部を追加する。判定は、Ｓ１２０およびＳ１３０の処理の回数で行ってもよいし、Ｓ１３０によって学習されたニューラルネットワークの適合ドメインデータに対する識別精度を評価して判定してもよい。また、Ｓ１２０の処理を繰り返す場合にさらに変換部を追加してもよいし、別の変換部と置換してもよい。
【００６０】
Ｓ１５０では、ＮＮ軽量化部５０４は、Ｓ１３０において学習されたニューラルネットワークを軽量化する。ここでは学習データ保持部５１０および適合ドメイン学習データ保持部５２０に保持されている全データを用いて軽量化の処理を行う例について説明する。また、ここでは図１２で説明した変換部が追加されたニューラルネットワークを軽量化する方法について説明する。より具体的には、図１２で説明した変換部が追加されたニューラルネットワークに画像を入力し、変換部を除く中間層および最終層の出力結果を抽出する。そして、軽量化されたニューラルネットワークの中間層および最終層の教師値とすることで変換部を含むニューラルネットワークに対して変換部を除くことで軽量化されたニューラルネットワークを学習する。
【００６１】
図１４は、ＮＮ軽量化後のＮＮの各層の処理内容と出力結果の一例を示す図である。図１４（ａ）は、図１１（ａ）で示したＳ１１０で学習したニューラルネットワークと同様の処理を行う軽量化されたニューラルネットワークである。ただし、ｃｏｎｖｏｌｕｔｉｏｎ層１４０１、１４０２、１４０３、１４０４、１４０５のフィルタ値（重み）は更新されている。図１４（ｂ）は、軽量化されたニューラルネットワークの各中間層の出力結果１２１１、１２１２、１２１３、１２１４、１２１５、１１１５、１１１７を示している。なお、出力結果１２１１、１２１２、１２１３、１２１４、１２１５、１１１５、１１１７は、図１２（ｂ）で説明した中間層の出力結果１２１１、１２１２、１２１３、１２１４、１２１５、１１１５、１１１７と同様の結果である。
【００６２】
学習は、Ｓ１１０やＳ１３０と同様に確率的勾配降下法などで更新すればよい。また、ここでは、学習データ保持部５１０および適合ドメイン学習データ保持部５２０に保持されている全データを用いて軽量化することを想定した。しかし、適合ドメイン学習データのみを用いてもよいし、適合ドメインデータと適合ドメイン以外のデータとの間で重みづけしてもよい。また、各中間層および最終層に与える教師値に対しても重みづけしてもよい。例えば、入力層から最終層に向かって重みが大きくなるように設定する。重みづけすることで適合ドメイン学習時に大きくフィルタ値が更新される。また、教師値として用いる中間層を選択してもよい。
【００６３】
ただし、Ｓ１５０で行われる軽量化の方法はここで説明している方法に限定されない。例えば、低ランク近似などの行列分解の技術を使って各フィルタを圧縮するなどの方法で軽量化してもよい。あるいは、「Geoffrey Hinton, "Distilling the Knowledge in Neural Network",arxiv 2015」に開示されているように、最終層の出力結果が同様の結果になるように圧縮してもよい。
【００６４】
以上の処理により適合ドメインにおける識別精度の高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、上述の説明においては学習処理（Ｓ１２０とＳ１３０）を何回か繰り返してから、Ｓ１４０の処理でニューラルネットワークを軽量化している例を説明している。しかし、Ｓ１４０の処理を行った後にＳ１２０の処理を再度行ってもよい。この場合、ＮＮ軽量化を行いながら適合ドメインにおける学習を行うことになる。そのため、変換部を複数回追加しても適合ドメイン学習時のニューラルネットワークの規模が増大することなく学習を行うことができる。
【００６５】
＜表示処理＞
以下では、上述の各処理に対応する表示部５０８における情報表示の処理について説明する。ＮＮ学習部５０１、変換部追加部５０２、適合ドメイン学習部５０３、ＮＮ軽量化部５０４はそれぞれ表示部５０８と接続されており、各部の処理内容や結果を表示することができる。
【００６６】
図１５は、軽量化を行うＮＮの選択を受け付けるグラフィカルユーザインタフェース（ＧＵＩ）を例示的に示す図である。具体的には、複数回変換部を追加して適合ドメイン学習した結果を表示している。特に、ユーザ６０が、表示部５０８上でポインタ６４を用いて、複数のニューラルネットワークの中から１つのニューラルネットワークを選択している様子を示している。また、選択したニューラルネットワークに対して軽量化を行うか否かを受け付けるダイアログ６５を表示している。例えば、ユーザ６０は、規模の大きいニューラルネットワークを選択し、軽量化を行う指示を入力することにより、当該ニューラルネットワークの軽量化処理が実行されることになる。
【００６７】
以上説明したとおり第１実施形態によれば、ＮＮ学習装置５０は、大量画像でニューラルネットワークを学習したのち、適合ドメインを学習するための変換部をニューラルネットワークに追加する。ＮＮ学習装置５０は、変換部を追加したニューラルネットワークを適合ドメインデータで学習したのち、軽量化処理により、同様の出力結果を出力するニューラルネットワークを生成する。これらの処理により適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。
【００６８】
（第２実施形態）
第２実施形態では、第１実施形態の処理に加えて、適合ドメインにおけるニューラルネットワークを学習したあと、１つ以上の中間層の出力結果を特徴量とする識別器（たとえば、ＳＶＭなど）を学習する。そして、学習により得られたニューラルネットワークおよびこれに結合する識別器を、情報処理装置における識別処理に用いる形態について説明する。
【００６９】
＜情報処理装置の構成と動作＞
図５（ｂ）は、第２実施形態に係る情報処理装置２０の機能構成の例を示す図である。図５（ｂ）における情報処理装置２０では、第１実施形態における図５（ａ）の構成に対して、識別部２０３、識別器保持部５４０が追加されており、ＮＮ出力部２０２の処理内容が異なる。なお、識別器保持部５４０もＮＮパラメータ保持部５３０と同じように不揮発性の記憶装置として情報処理装置２０と接続された構成としてもよい。
【００７０】
図８（ｂ）は、第２実施形態に係る情報処理装置２０による識別処理のフローチャートである。Ｔ２１０の処理内容は先に示したＴ１１０と同様の処理であるため説明を省略する。Ｔ２２０では、ＮＮ出力部２０２は、識別対象画像１００をあらかじめ学習されたネットワークに入力し、図４（ｂ）、図４（ｃ）で示したように中間層の出力結果を出力する。出力された中間層の出力結果は識別部２０３に送信される。Ｔ２３０では、識別部２０３は、Ｔ２２０で取得された中間層の出力結果を識別器に入力して識別結果を出力する。なお、識別器はあらかじめ学習されており、識別器保持部５４０に保持されている。
【００７１】
＜ＮＮ学習装置の構成と動作＞
次に、Ｔ２３０で用いる識別器の学習方法について説明する。第１実施形態と同様に、ＮＮ学習装置５０において、適合ドメインにおけるニューラルネットワークを学習し、追加した変換部を除く中間層の出力結果および識別層の出力結果と同様の出力をするニューラルネットワークに軽量化する。軽量化されたニューラルネットワークに適合ドメイン学習データを入力した際に得られる中間層の出力結果を特徴ベクトルとして識別器を学習する。
【００７２】
図６（ｃ）は、第３実施形態におけるＮＮ学習装置の機能構成の例を示す図である。図６（ａ）で説明したＮＮ学習装置５０と共通部が多いが、第２実施形態のＮＮ学習装置５０では、識別器学習部５０５および識別器保持部５４０が追加されている。
【００７３】
図９（ｃ）は、第２実施形態に係るＮＮ学習装置５０による学習処理のフローチャートである。Ｓ２１０、Ｓ２２０、Ｓ２３０、Ｓ２４０、Ｓ２５０の処理は第１実施形態と同様であるため、説明を省略する。Ｓ２５０において軽量化されたニューラルネットワークはＮＮパラメータ保持部５３０だけでなく、識別器学習部５４０にも送信される。
【００７４】
Ｓ２６０では、識別器学習部５０５は、Ｓ２５０において軽量化されたニューラルネットワークおよび適合ドメイン学習データ保持部５２０に保持されている適合ドメイン学習データを用いて、識別器を学習する。学習された識別器のパラメータは識別器保持部５４０に保持される。なお、ここでは適合ドメイン学習部５０３に学習に用いる適合ドメインデータと識別器学習部５０５が学習に用いる適合ドメインデータは同じであるとしたが、同じものを用いなくてもよい。また、識別器学習時に学習する認識タスクおよびクラスカテゴリはＳ２１０やＳ２３０におけるニューラルネットワーク学習時と違っていてもよい。たとえば、ニューラルネットワークの学習は画像分類タスクで学習したのち、識別器の学習時には領域分割タスクで学習してもよい。
【００７５】
次に、Ｓ２６０のより具体的な処理内容について説明する。第２実施形態では図４（ｂ）や（ｃ）で示したように中間層の出力結果を特徴ベクトルとして用いる識別器を学習する。より識別精度の高い識別器を学習するために複数の中間層の出力結果を統合して用いる方がよい。識別器にはＳＶＭ（Support-Vector-Machine）などを用いればよい。また、複数の中間層の出力結果を統合して全結合層のみを学習してもよい。その場合には全結合層のパラメータを識別器のパラメータとする。Ｓ２６０において学習された識別器のパラメータは識別器パラメータ保持部５４０に保持され、識別時に利用される。
【００７６】
また、中間層の出力結果を特徴ベクトルとして識別器を用いる場合には、Ｓ２２０およびＳ２３０の処理が異なる場合がある。更に、Ｓ２１０において大量画像でニューラルネットワークを学習したあと、大量画像もしくは適合ドメインデータで識別器を学習し、その識別精度に基づいて変換部を追加してもよい。また、Ｓ２３０における各変換部の学習パラメータを設定してもよい。
【００７７】
評価方法としては、適合ドメインにおける評価データを用意し、Ｓ１１０において学習したニューラルネットワークに評価データを入力し各中間層の出力結果を取得する。
図１６は、第２実施形態における変換部追加工程における処理内容の一例を示す図である。図１６（ａ）は、各中間層の出力結果を全結合層１０２７、１０２９、１０３１、１０３３に入力する形態を示す図である。また、図１６（ｂ）は、各中間層の出力結果を識別器１０３５、１０３７、１０３９、１０４１に入力する形態を示す図である。識別結果は図１６において、それぞれ出力結果１０２８、１０３０、１０３２、１０３４、１０３６、１０３８、１０４０、１０４２である。この識別結果の識別精度をそれぞれ評価する。ここで用いる全結合層および識別器はあらかじめ学習しておく。例えば、識別精度が低いと判定された中間層の前に変換部を挿入するか、その位置に挿入した変換部のＳ２３０における学習率を大きくすることで識別精度を向上する。
【００７８】
なお、上述の説明においては、Ｓ２３０の処理のあとネットワークの規模を大きくしないようにＳ２４０の処理を行ったが、Ｓ２４０の処理を行わなくてもよい。例えば、Ｓ２６０において、変換部を追加したニューラルネットワークをそのまま利用し、変換部を除く中間層の出力結果を特徴ベクトルとして識別器を学習する。そうすれば、識別時に識別器を利用する際の特徴ベクトル用のメモリ使用量は変わらない。
【００７９】
以上説明したとおり第２実施形態によれば、第１実施形態に加え、ＮＮ学習装置５０は、軽量化されたニューラルネットワークの中間層の出力結果を特徴ベクトルとする識別器を更に学習する。これらの処理により適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。
【００８０】
（第３実施形態）
第３実施形態では、第１実施形態の処理に加えて、適合ドメインにおけるニューラルネットワークを学習する際に追加する変換部をあらかじめ用意してある変換部の中から選択して適合ドメインにおける学習を行う形態について説明する。情報処理装置２０による画像の識別処理は第１実施形態と同様であるため説明を省略する。以下ではＮＮ学習装置５０における学習時の処理について説明する。
【００８１】
＜ＮＮ学習装置の構成と動作＞
図６（ｄ）は、第３実施形態におけるＮＮ学習装置の機能構成の例を示す図である。図６（ａ）で説明したＮＮ学習装置５０と共通部が多いが、変換部保持部５５０が追加されている。なお、第３実施形態に係るＮＮ学習装置５０による学習処理は、第１実施形態と同様で図９（ａ）である。ただし、Ｓ１２０の処理内容が異なるため以下では、Ｓ１２０の処理内容について説明する。
【００８２】
Ｓ１２０では、変換部追加部５０２は、変換部保持部５５０に保持されている１以上の変換部の中から１つの変換部を選択することにより決定する。そして、決定された変換部をＳ１１０において学習されたニューラルネットワークに追加する。変換部を追加したニューラルネットワークの構成およびパラメータは適合ドメイン学習部５０３に送信される。
【００８３】
例えば、あらかじめさまざま適合ドメインに対して第１実施形態で説明したような方法で変換部を追加したニューラルネットワークを用いて適合ドメイン学習を行っておく。その際に学習した適合ドメイン学習データの一部または全部、もしくは適合ドメインの特性を表すような特徴量を保持しておく。たとえば、適合ドメイン学習データの一部もしくは代表的なデータをニューラルネットワークに入力した際の中間層の出力結果を保持しておく。その保持されていたデータと今回学習する適合ドメインデータとの類似度を算出し、類似度の高い適合ドメインデータを学習した際に追加した変換部を追加すればよい。その変換部の構成およびパラメータを初期値にして、後続のＳ１３０の処理を行えばよい。処理内容は第１実施形態と同様であるため説明を省略する。
【００８４】
この処理によりＳ１３０の学習処理を効率化することが出来、また、より適合ドメインデータが少ない状況でも識別精度の高い学習が可能になる。なお、第２実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置２０で利用する形態としてもよい。
【００８５】
（第４実施形態）
第４実施形態では、第１実施形態の処理に加えて、適合ドメインにおけるニューラルネットワークを複数学習したのちにもっとも識別精度の高いニューラルネットワークを選択する形態について説明する。情報処理装置２０における画像の識別処理は第１実施形態と同様であるため説明を省略する。以下ではＮＮ学習装置５０における学習時の処理について説明する。
【００８６】
＜ＮＮ学習装置の構成と動作＞
図７（ａ）は、第４実施形態におけるＮＮ学習装置の機能構成の例を示す図である。図６（ａ）で説明したＮＮ学習装置５０と共通部が多いが、適合ＮＮ選択部５０６が追加されている。
【００８７】
図９（ｄ）は、第４実施形態に係るＮＮ学習装置５０による学習処理のフローチャートである。Ｓ３１０は第１実施形態におけるＳ１１０と同様の処理内容であるため、説明を省略する。Ｓ３２０は第１実施形態におけるＳ１２０と同様の処理内容であるが、第４実施形態では複数の方法で変換部を追加した複数のニューラルネットワークを生成する点が異なる。Ｓ３３０は第１実施形態におけるＳ１３０と同様の処理内容であるが、第４実施形態では複数の方法で変換部を追加したニューラルネットワークをそれぞれ学習する。学習されたそれぞれのニューラルネットワークは適合ＮＮ選択部５０６および表示部５０８に送信される。
【００８８】
Ｓ３４０では、適合ＮＮ選択部５０６は、Ｓ３３０で学習された複数のニューラルネットワークの中から、適合ドメインデータに対する識別精度に基づいてニューラルネットワークを選択する。選択されたニューラルネットワークはＮＮ軽量化部５０４および表示部５０８に送信される。Ｓ３５０の処理内容は第１実施形態におけるＳ１５０と同様であるため、説明を省略する。
【００８９】
なお、それぞれ異なる変換部を追加した複数のニューラルネットワークは、他の実施形態と同様に複数回変換部を追加して適合ドメインの学習を行ってもよい。また、上述の説明においてはＳ３３０のあとに適合ドメインデータに対する識別精度に基づいてニューラルネットワークを選択している。しかし、Ｓ３５０のあとに適合ドメインデータに対する識別精度に基づいてニューラルネットワークを選択してもよい。また、選択したニューラルネットワークにさらに変換部を追加するなどしてさらに適合ドメインに対する学習を行ってもよい。また、表示部５０８上でユーザがユーザインタフェース（ＵＩ）などを用いて複数のニューラルネットワークの中から選択してもよい。
【００９０】
図１７は、ＮＮの選択を受け付けるＧＵＩを例示的に示す図である。具体的には、表示部５０８が適合ドメイン学習されたニューラルネットワークＡ、Ｂ、Ｃを表示し、ユーザ６０が、ポインタ６４を用いて、識別精度の高くネットワーク規模が小さい「ニューラルネットワークＢ」を選択している様子を示している。
【００９１】
上述の処理により、適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、第２実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置２０で利用する形態としてもよい。
【００９２】
（第５実施形態）
第５実施形態では、第１実施形態の処理に加えて、適合ドメインにおける学習データをユーザが設定する形態について説明する。情報処理装置２０における画像の識別処理は第１実施形態と同様であるため説明を省略する。以下ではＮＮ学習装置５０における学習時の処理について説明する。
【００９３】
＜ＮＮ学習装置の構成と動作＞
図７（ｂ）は、第５実施形態におけるＮＮ学習装置の機能構成の例を示す図である。図６（ａ）で説明したＮＮ学習装置５０と共通部が多いが、ユーザ学習データ設定部５０７が追加されている。
【００９４】
図９（ｅ）は、第５実施形態に係るＮＮ学習装置５０による学習処理のフローチャートである。Ｓ４１０、Ｓ４２０における処理内容は第１実施形態におけるＳ１１０、Ｓ１２０と同様の処理であるため、説明を省略する。
【００９５】
Ｓ４３０では、ユーザ学習データ設定部５０７は、適合ドメインにおける学習データを設定する。設定された学習データは適合ドメイン学習データ保持部５２０に送信される。Ｓ４３０において設定されるデータは以下のようなものがある。
【００９６】
・適合ドメインにおける学習データおよび教師値
・適合ドメインにおける学習データの教師値
・Ｓ４４０において学習する際に重視する学習データの選択
図１８は、学習データの設定を受け付けるＧＵＩを例示的に示す図である。ここでは、ユーザ６０が、適合ドメインにおける学習データ６１を選択し、適合ドメイン学習データ保持部５２０にポインタ６４を用いて追加している様子を示している。図１８では、更に、教師値を入力するダイアログ６２、学習データを重視するかどうかをユーザに問うダイアログ６３も表示している。設定された適合ドメインにおける学習データおよび教師値は適合ドメイン学習データ保持部５２０に送信され、後続のＳ４４０に利用される。
【００９７】
図１９は、適合ドメインの選択を受け付けるＧＵＩを例示的に示す図である。具体的には、ユーザ６０が、「適合ドメインを選択してください」というダイアログ６７に従って、適合ドメインを選択している。ここでは、複数のアイコン６６で示されたそれぞれの適合ドメイン（ポートレート、スポーツ、さくら）からポインタ６４を用いてスポーツを選択している。設定された適合ドメイン情報は、適合ドメイン学習データ保持部５２０に送信され、後続のＳ４４０において利用される。このように、Ｓ４３０において、適合したいシーン自体をユーザが選択するよう構成してもよい。
【００９８】
Ｓ４４０では、適合ドメイン学習部５０３は、設定された適合ドメイン情報に基づいて適合ドメイン学習データを選択して学習を行う。Ｓ４４０およびそれ以降の処理は第１実施形態におけるＳ１４０およびそれ以降の処理とほぼ同様であるため説明を省略する。重視する学習データが選択された場合には、Ｓ４４０およびＳ４６０の処理の際に、重みづけして学習することになる。
【００９９】
上述の処理により、適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、第２実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置２０で利用する形態としてもよい。
【０１００】
（第６実施形態）
第６実施形態では、第１実施形態の処理に加えて、画像生成部で大量画像を生成してニューラルネットワークをプレトレーニングしてから適合ドメインデータに対する学習する形態について説明する。ここでは、画像生成部によって生成した大量画像でニューラルネットワークをプレトレーニングして、適合ドメインデータで変換部を学習する。情報処理装置２０における画像の識別処理は第１実施形態と同様であるため説明を省略する。以下ではＮＮ学習装置５０における学習時の処理について説明する。
【０１０１】
＜ＮＮ学習装置の構成と動作＞
図７（ｃ）は、第６実施形態におけるＮＮ学習装置の機能構成の例を示す図である。図６（ａ）で説明したＮＮ学習装置５０と共通部が多いが、学習データ生成部５０９が追加されている。
【０１０２】
図９（ｆ）は、第６実施形態に係るＮＮ学習装置５０による学習処理のフローチャートである。Ｓ５１０では、学習データ生成部５０９は、Ｓ５２０で用いる学習データを大量に生成する。生成された学習データは学習データ保持部５１０に送信される。Ｓ５２０〜Ｓ５６０における処理内容は第１実施形態におけるＳ１１０〜Ｓ１５０の処理内容と同様であるため、説明を省略する。
【０１０３】
Ｓ５１０のより具体的な処理内容について説明する。ここではＣＧ技術を使って学習データを作成する例について説明する。たとえば、認識タスクが人体検出である場合で説明する。例えば、「Hironori Hattori, "Learning Scene-Specific Pedestrian Detectors without Real Data", Computer Vision and Pattern Recognition 2015」に開示されているようにさまざまなパターンで人物モデルを生成して、いろいろな姿勢・服装のパターンでシーン内のさまざまな位置に配置してＣＧ画像を生成する。当該文献では、適合するシーンに合わせて生成するＣＧ画像を調整しているが、シーンを限定しなくてもよい。なお、ニューラルネットワークの学習には大量画像が必要になるため、Ｓ５１０において数百万〜数千万のオーダーでＣＧ画像を生成する。生成された学習画像は学習データ保持部５１０に送信される。なお、ここでは、Ｓ５２０において用いる学習データを、ＣＧ技術を使って生成する例について説明したが実写データとＣＧデータを混合してもよい。
【０１０４】
これらの処理により適合ドメインにおいて識別精度が高いニューラルネットワークを、ネットワーク規模の増大を抑制しつつ学習することができる。なお、第２実施形態と同様にニューラルネットワークの中間層の出力結果を入力ベクトルとする識別器を学習し、情報処理装置２０で利用する形態としてもよい。
【０１０５】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０６】
１０  カメラ；  ２０  情報処理装置；  １５  ネットワーク；  ３０  シーン；  １００  識別対象画像；  ４０１  ＣＰＵ；  ４０２  ＲＡＭ；  ４０３  ＲＯＭ；  ４０４  ＨＤ；  ４０５  操作部；  ４０６  表示部；  ４０７  ネットワークＩ／Ｆ；  ５０  ＮＮ学習装置
【図１】
2019185127.tif 000003
【図２】
2019185127.tif 000004
【図３】
2019185127.tif 000005
【図４】
2019185127.tif 000006
【図５】
2019185127.tif 000007
【図６】
2019185127.tif 000008
【図７】
2019185127.tif 000009
【図８】
2019185127.tif 000010
【図９】
2019185127.tif 000011
【図１０】
2019185127.tif 000012
【図１１】
2019185127.tif 000013
【図１２】
2019185127.tif 000014
【図１３】
2019185127.tif 000015
【図１４】
2019185127.tif 000016
【図１５】
2019185127.tif 000017
【図１６】
2019185127.tif 000018
【図１７】
2019185127.tif 000019
【図１８】
2019185127.tif 000020
【図１９】
2019185127.tif 000021