(57)【要約】【課題】ニューラルネットワークに２つ以上の認識タスクを学習させる場合に、認識タスクの識別精度が向上するように学習パラメータを設定できるようにする。【解決手段】多層ニューラルネットワークに学習させる複数の認識タスクを設定するマルチタスク設定部と、設定された複数の認識タスクを多層ニューラルネットワークに学習させるＮＮ学習部と、多層ニューラルネットワークの学習結果を評価するＮＮ評価部と、ＮＮ評価部での評価結果に基づいて、多層ニューラルネットワークに複数の認識タスクを学習させる際の学習パラメータを設定する学習パラメータ設定部とを有し、学習パラメータを適切に設定して複数の認識タスクに係る学習を行えるようにする。【選択図】図１０
2019192009.tif 000002
【特許請求の範囲】
【請求項１】
多層ニューラルネットワークに学習させる複数の認識タスクを設定するタスク設定手段と、
前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記多層ニューラルネットワークに学習させる学習手段と、
前記学習手段による前記多層ニューラルネットワークの学習結果を評価する評価手段と、
前記評価手段での評価結果に基づいて、前記多層ニューラルネットワークに前記複数の認識タスクを学習させる際の学習パラメータを設定するパラメータ設定手段とを有することを特徴とする情報処理装置。
【請求項２】
前記評価手段は、前記多層ニューラルネットワークでの前記認識タスクの学習精度を評価することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記評価手段は、前記多層ニューラルネットワークでの前記認識タスクの学習精度の所定間隔での変位量を評価することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記パラメータ設定手段が設定する前記学習パラメータは、前記多層ニューラルネットワークに学習させる際の各認識タスクに対する重要度を含むことを特徴とする請求項１〜３の何れか１項に記載の情報処理装置。
【請求項５】
前記タスク設定手段は、前記複数の認識タスクとして、前記ニューラルネットワークに学習させる第１の認識タスク、及び前記第１の認識タスクから生成した第２の認識タスクを設定することを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
前記第２の認識タスクの教師値を、前記第１の認識タスクの学習データ及び教師値に基づいて設定する教師値設定手段を有することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記評価手段は、前記認識タスクの学習データとは異なる評価データを用いて、前記多層ニューラルネットワークの学習結果の評価を行うことを特徴とする請求項１〜６の何れか１項に記載の情報処理装置。
【請求項８】
前記評価手段は、前記認識タスクの学習データを用いて、前記多層ニューラルネットワークの学習結果の評価を行うことを特徴とする請求項１〜６の何れか１項に記載の情報処理装置。
【請求項９】
前記タスク設定手段が設定する前記複数の認識タスクは、被写体が画像内に存在するか否かを識別する画像分類タスク、被写体の位置を検出する物体検出タスク、及び被写体領域を抽出する領域分割タスクのうちの少なくとも１つのタスクを含むことを特徴とする請求項１〜８の何れか１項に記載の情報処理装置。
【請求項１０】
前記パラメータ設定手段は、前記多層ニューラルネットワークに学習させる前記複数の認識タスクのうち、選択した前記認識タスクの学習精度に基づいて前記学習パラメータを設定することを特徴とする請求項１〜９の何れか１項に記載の情報処理装置。
【請求項１１】
前記タスク設定手段により設定された前記認識タスク及び前記評価手段での評価結果の少なくとも一方を表示する表示手段を有することを特徴とする請求項１〜１０の何れか１項に記載の情報処理装置。
【請求項１２】
請求項１〜１１の何れか１項に記載の情報処理装置により学習された前記多層ニューラルネットワークの構造及び学習パラメータの情報を保持する保持手段と、
前記保持手段に保持されている情報に応じた前記多層ニューラルネットワークに識別対象画像を入力する入力手段と、
前記多層ニューラルネットワークによる前記識別対象画像の識別結果を出力する出力手段とを有することを特徴とする情報処理装置。
【請求項１３】
識別器に学習させる複数の認識タスクを設定するタスク設定手段と、
前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記識別器に学習させる学習手段と、
前記学習手段による前記識別器の学習結果を評価する評価手段と、
前記評価手段での評価結果に基づいて、前記識別器に前記複数の認識タスクを学習させる際の学習パラメータを設定するパラメータ設定手段とを有することを特徴とする情報処理装置。
【請求項１４】
多層ニューラルネットワークに学習させる複数の認識タスクを設定するタスク設定工程と、
前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記多層ニューラルネットワークに学習させる学習工程と、
前記学習工程による前記多層ニューラルネットワークの学習結果を評価する評価工程と、
前記評価工程での評価結果に基づいて、前記多層ニューラルネットワークに前記複数の認識タスクを学習させる際の学習パラメータを設定するパラメータ設定工程とを有することを特徴とする情報処理方法。
【請求項１５】
識別器に学習させる複数の認識タスクを設定するタスク設定工程と、
前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記識別器に学習させる学習工程と、
前記学習工程による前記識別器の学習結果を評価する評価工程と、
前記評価工程での評価結果に基づいて、前記識別器に前記複数の認識タスクを学習させる際の学習パラメータを設定するパラメータ設定工程とを有することを特徴とする情報処理方法。
【請求項１６】
多層ニューラルネットワークに学習させる複数の認識タスクを設定するタスク設定ステップと、
前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記多層ニューラルネットワークに学習させる学習ステップと、
前記学習ステップによる前記多層ニューラルネットワークの学習結果を評価する評価ステップと、
前記評価ステップでの評価結果に基づいて、前記多層ニューラルネットワークに前記複数の認識タスクを学習させる際の学習パラメータを設定するパラメータ設定ステップとをコンピュータに実行させるためのプログラム。
【請求項１７】
識別器に学習させる複数の認識タスクを設定するタスク設定ステップと、
前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記識別器に学習させる学習ステップと、
前記学習ステップによる前記識別器の学習結果を評価する評価ステップと、
前記評価ステップでの評価結果に基づいて、前記識別器に前記複数の認識タスクを学習させる際の学習パラメータを設定するパラメータ設定ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータ等の機械が画像や音声などのデータの内容を学習して認識を行う技術が存在する。認識処理の目的を、ここでは認識タスクと呼ぶ。認識タスクには、例えば、画像中から人間の顔の領域を検出する顔認識タスクがある。その他にも、画像中にある物体（被写体）のカテゴリ（猫、車、建物など）を判別する物体カテゴリ認識タスクや、シーンのカテゴリ（都市、山間、海岸など）を判別するシーン種別認識タスク等の多様な認識タスクがある。
【０００３】
このような認識タスクを学習・実行する技術として、ニューラルネットワーク（ＮＮ：Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）の技術が知られている。深い（層の数が多い）多層ニューラルネットワークは、深層ニューラルネットワーク（ＤＮＮ：Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）と呼ばれる。特に、非特許文献１に開示されているように深い畳み込みニューラルネットワークは、Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＤＣＮＮ）と呼ばれる。ＤＣＮＮは、性能が高いことで近年注目されている。
【０００４】
ＤＣＮＮとは、各層において、前の層からの出力結果に対して畳み込み処理を行い次の層に出力するようなネットワーク構造をもつニューラルネットワークである。各層には畳み込み演算用のフィルタ（カーネル）が複数用意される。最終層は認識結果を出力する出力層となる。ＤＣＮＮにおいて、出力層に近い層は、畳み込みによる結合ではなく通常のニューラルネットワークのような全結合層（ｆｕｌｌｃｏｎｎｅｃｔ）の構造とするのが一般的である。または、非特許文献２に開示されているように、全結合層のかわりに畳み込み演算層（中間層）の出力結果を線形識別器に入力して識別を行う手法もある。
【０００５】
ＤＣＮＮの学習フェーズでは、畳み込みフィルタの値や全結合層の結合重み（両者をあわせて学習パラメータと呼ぶ）を誤差逆伝搬法（バックプロパゲーション：ＢＰ）などの方法を用いて教師付きデータから学習する。認識フェーズでは、学習済みのＤＣＮＮにデータを入力し、各層において学習済みの学習パラメータによってデータを順次処理し、出力層から認識結果を得るか、又は中間層の出力結果を集計して識別器に入力することで認識結果を得る。
【０００６】
通常のＤＣＮＮでは、最終層に認識結果を出力する出力層が接続され、そのＤＣＮＮが学習及び認識を実行する認識タスクは１つである。例えば、非特許文献１に開示されているＤＣＮＮは、１０００クラスの画像分類タスクを学習して、認識時には識別対象画像に対して各クラスの尤度を出力する。一方、ＤＣＮＮに対して２つ以上の認識結果を出力させるように出力層を複数接続することもできる。例えば、非特許文献３には、髪領域、目領域、鼻領域、口領域、及びあご領域をそれぞれ出力する出力層を接続して、それらの結果を統合して顔領域を検出する技術が開示されている。
【０００７】
また、特許文献１には、入力画像に人が存在する否かの識別問題と、入力画像における人の位置の回帰問題とを同時に学習することで、人の一部が隠れている場合でも精度よく人の位置を検知できる技術が開示されている。また、特許文献２や非特許文献４には、詳細クラスのいくつかを包含した粗クラスを定義し、粗クラス定義したクラスを識別するタスクと詳細クラス定義したクラスを識別するタスクによって学習及び認識を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１６−６６２６号公報
【特許文献２】特開２０１７−８４３２０号公報
【非特許文献】
【０００９】
【非特許文献１】Ｋｒｉｚｈｅｖｓｋｙ，Ａ．，Ｓｕｔｓｋｅｖｅｒ，Ｉ．，＆Ｈｉｎｔｏｎ，Ｇ．Ｅ．，“Ｉｍａｇｅｎｅｔ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｗｉｔｈ  ｄｅｅｐ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ．”，Ｉｎ  Ａｄｖａｎｃｅｓ  ｉｎ  ｎｅｕｒａｌ  ｉｎｆｏｒｍａｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍｓ（ｐｐ．１０９７−１１０５），２０１２．
【非特許文献２】Ｊｅｆｆ  Ｄｏｎａｈｕｅ，Ｙａｎｇｑｉｎｇ  Ｊｉａ，Ｊｕｄｙ  Ｈｏｆｆｍａｎ，Ｔｒｅｖｏｒ  Ｄａｒｒｅｌｌ，“ＤｅＣＡＦ：Ａ  Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ａｃｔｉｖａｔｉｏｎ  Ｆｅａｔｕｒｅ  ｆｏｒ  Ｇｅｎｅｒｉｃ  Ｖｉｓｕａｌ  Ｒｅｃｏｇｎｉｔｉｏｎ”，ａｒｘｉｖ  ２０１３．
【非特許文献３】Ｓｈｕｏ  Ｙａｎｇ，Ｐｉｎｇ  Ｌｕｏ，Ｃｈｅｎ  Ｃｈａｎｇｅ  Ｌｏｙ，Ｘｉａｏｏｕ  Ｔａｎｇ，“Ｆｒｏｍ  Ｆａｃｉａｌ  Ｐａｒｔｓ  Ｒｅｓｐｏｎｓｅｓ  Ｔｏ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ：Ａ  Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  Ａｐｐｒｏａｃｈ”，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ２０１５．
【非特許文献４】Ｚｈｉｃｈｅｎｇ  Ｙａｎ，Ｒｏｂｉｎｓｏｎ  Ｐｉｒａｍｕｔｈｕ，ｅｔ  ａｌ，“ＨＤ−ＣＮＮ：Ｈｉｅｒａｒｃｈｉｃａｌ  Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ  ｆｏｒ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｖｉｓｕａｌ  Ｒｅｃｏｇｎｉｔｉｏｎ”，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ２０１５．
【非特許文献５】Ｒｏｓｓ  Ｇｉｒｓｈｉｃｋ，“Ｆａｓｔ  Ｒ−ＣＮＮ”，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ２０１５．
【非特許文献６】Ｊ．Ｒ．Ｒ．Ｕｉｊｌｉｎｇｓ，ｅｔ  ａｌ，“Ｓｅｌｅｃｔｉｖｅ  Ｓｅａｒｃｈ  ｆｏｒ  Ｏｂｊｅｃｔ  Ｒｅｃｏｇｎｉｔｉｏｎ”，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  １０４．２（２０１３）
【非特許文献７】Ｓｈａｉ  ｓｈａｌｅｖ−Ｓｈｗａｒｔｚ，“Ｐｅｇａｓｏｓ：Ｐｒｉｍａｌ  Ｅｓｔｉｍａｔｅｄ  ｓｕｂ−ＧｒＡｄｉｅｎｔ  ＳＯｌｖｅｒ  ｆｏｒ  ＳＶＭ”，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  ２００７．
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ニューラルネットワークを用いて２つ以上の認識タスクを同時に学習する場合において効率よくパラメータを学習することが必要になる。つまり、ニューラルネットワークを用いて２つ以上の認識タスクを同時に学習する際に、学習パラメータを学習精度が向上するように調整する必要がある。学習パラメータとは、例えば認識結果と学習データの教師値との誤差に対する学習率や、複数の認識タスク間の重要度である。タスク間の重要度とは、学習が進んでいく過程で学習を加速させたいタスクを決めるための重みである。
【００１１】
しかし、ニューラルネットワークを用いて２つ以上の認識タスクを同時に学習する場合に、学習パラメータを適切に設定する技術がなかった。本発明は、ニューラルネットワークに２つ以上の認識タスクを学習させる場合に、認識タスクの識別精度が向上するように学習パラメータを設定できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る情報処理装置は、多層ニューラルネットワークに学習させる複数の認識タスクを設定するタスク設定手段と、前記複数の認識タスクの学習データ及び教師値に基づいて、前記複数の認識タスクを前記多層ニューラルネットワークに学習させる学習手段と、前記学習手段による前記多層ニューラルネットワークの学習結果を評価する評価手段と、前記評価手段での評価結果に基づいて、前記多層ニューラルネットワークに前記複数の認識タスクを学習させる際の学習パラメータを設定するパラメータ設定手段とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、２つ以上の認識タスクに係る識別精度の高いニューラルネットワークを効率よく学習することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態における情報処理システムの構成例を示す図である。
【図２】画像分類を行う識別対象画像の例を示す図である。
【図３】識別対象物体の検出例を示す図である。
【図４】識別対象画像の領域分割例を示す図である。
【図５】本実施形態における情報処理装置のハードウェア構成例を示す図である。
【図６】ＤＣＮＮの構造及びＤＣＮＮを用いた識別処理の例を説明する図である。
【図７】ＤＣＮＮを用いた複数の認識タスクに係る識別処理の例を説明する図である。
【図８】本実施形態における識別処理を行う情報処理装置の機能構成例を示す図である。
【図９】本実施形態における識別処理の例を示すフローチャートである。
【図１０】本実施形態における学習処理を行う情報処理装置の機能構成例を示す図である。
【図１１】本実施形態における学習処理の例を示すフローチャートである。
【図１２】領域分割タスク及び物体検出タスクを設定した例を説明する図である。
【図１３】本実施形態におけるニューラルネットワークの一例を示す図である。
【図１４】第１の実施形態における評価データに対する誤差の一例を示す図である。
【図１５】第１の実施形態における評価データに対する誤差及びその変位量を説明する図である。
【図１６】第１の実施形態における評価データに対する誤差の一例を示す図である。
【図１７】第２の実施形態における学習パラメータの設定例を説明する図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面に基づいて説明する。
【００１６】
（第１の実施形態）
本発明の第１の実施形態について説明する。図１は、本発明の一実施形態における情報処理システムの概略的な構成例を示す図である。本実施形態における情報処理システムは、カメラ１１０と、認識タスクに係る認識フェーズでの処理（識別処理）を行う情報処理装置１２０とが、ネットワーク１１５を介して接続されている。なお、情報処理装置１２０とカメラ１１０は、一体に構成されていてもよい。また、情報処理装置１２０と、認識タスクに係る学習フェーズでの処理（学習処理）を行う情報処理装置１３０とが、ネットワーク１１５を介して接続されている。なお、情報処理装置１２０と情報処理装置１３０が、一体に構成されていてもよい。
【００１７】
カメラ１１０は、情報処理装置１２０による情報処理の対象となる画像を撮影する。図１には、被写体として木１４１、自動車１４２、建物１４３、空１４４、道１４５、人体１４６等が画角（撮影範囲）内に存在するシーン（撮影状況）１４０を、カメラ１１０が撮影する例を示している。情報処理装置１２０は、カメラ１１０により撮影（撮像）されたシーン１４０において、各被写体が画像内に存在するか否かを識別する画像分類タスクや、被写体の位置を検出する物体検出タスクや、被写体領域を抽出する領域分割タスクを行う。なお、本実施形態においては、画像分類（ｃｌａｓｓｉｆｉｃａｔｉｏｎ）タスク、物体検出（ｄｅｔｅｃｔｉｏｎ）タスク、及び被写体領域を抽出する領域分割（ｓｅｇｍｅｎｔａｔｉｏｎ）タスクを例に説明するが、他のタスクの場合でもよい。
【００１８】
図２は、画像分類の例を示す図である。図２（ａ）には建物、図２（ｂ）には木（林・森）、図２（ｃ）には車と画像分類される例を示している。図３は、物体検出の例を示す図である。図３には、車３０１を識別対象物体として物体検出し、検出結果をバウンディングボックス（ＢｏｕｎｄｉｎｇＢｏｘ）３０２で示した例を示している。図４は、領域分割の例を示す図である。図４（ａ）に示されるように撮影された識別対象画像４０１の各画素のクラスを識別する例を示している。ここでいうクラスとは、図４（ｂ）に示すような各画素に対応して振られるｓｋｙ（空）、ｔｒｅｅ（木）、ｃａｒ（自動車）等といった被写体の分類に関するクラスカテゴリー名である。
【００１９】
図５は、情報処理装置１２０、１３０のハードウェア構成の一例を示す図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０１は、情報処理装置全体を制御する。ＣＰＵ５０１が、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０３や記憶部５０４等に格納されたプログラムを実行することにより、後述する情報処理装置が有する各機能構成及び情報処理装置に係るフローチャートの処理が実現される。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０２は、ＣＰＵ５０１がプログラムを展開して実行するワークエリア等として機能する記憶領域である。ＲＯＭ５０３は、ＣＰＵ５０１が実行するプログラム等を格納する記憶領域である。記憶部５０４は、例えばハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）等であり、ＣＰＵ５０１が処理を実行する際に要する各種のプログラム、閾値に関するデータ等を含む各種のデータを格納する記憶領域である。操作部５０５は、ユーザによる入力操作を受け付ける。表示部５０６は、各種情報を表示する。ネットワークインターフェース（Ｉ／Ｆ）５０７は、情報処理装置と外部の機器とを接続する。
【００２０】
ニューラルネットワークを用いて画像を識別する際の処理（識別処理）について説明する。なお、以下ではＤｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＤＣＮＮ）を一例として説明するが、ニューラルネットワークはこれに限定されるものではない。ＤＣＮＮは、畳み込み演算を多く行うニューラルネットワークである。ＤＣＮＮは、非特許文献１に開示されているように畳み込み処理（ｃｏｎｖｏｌｕｔｉｏｎ）と、ｒｅｌｕ処理やプーリング処理（ｐｏｏｌｉｎｇ）等の非線形処理との組み合わせで特徴層が実現される。ＤＣＮＮは、例えば、この特徴層のあとに全結合層（ｆｕｌｌｃｏｎｅｃｔ）を経て画像分類結果（各クラスに対する尤度）を出力する。
【００２１】
図６は、ＤＣＮＮの構造及びＤＣＮＮを用いた識別処理の一例を説明する図である。図６（ａ）には、入力（Ｉｎｐｕｔ）６００として入力画像を入力すると、畳み込み処理６０１、ｒｅｌｕ処理６０２、畳み込み処理６０３、ｒｅｌｕ処理６０４、及びプーリング処理６０５を行う例を示している。これらの処理６０１〜６０５を、例えば処理６０６〜６１０として示すように所定回数繰り返して、全結合層６１１、ｒｅｌｕ処理６１２、全結合層６１３、ｒｅｌｕ処理６１４、全結合層６１５を行って、最終層の出力結果（Ｏｕｔｐｕｔ）６５０を出力する。図６（ａ）においては、畳み込み処理を行う層を“ｃｏｎｖ”、ｒｅｌｕ処理を行う層を“ｒｅｌｕ”、プーリング処理を行う層を“ｐｏｏｌ”、全結合層を“ｆｃ”と示している（図６（ｂ）〜図６（ｄ）においても同様）。
【００２２】
ここで、ｒｅｌｕ処理とは、非線形処理の１つであり、下記（式１）に示すように入力ｘ又は０のうちの最大値を出力ｙとする処理、すなわち前層の出力結果のうち、負の値を０とする処理である。なお、ｒｅｌｕ処理に限らず、その他の非線形処理でもよい。
ｙ＝ｍａｘ（０，ｘ）  …（式１）
また、本例でのプーリング処理は、所定範囲内の最大値を取得して出力するマックスプーリング処理（ｍａｘｐｏｏｌｉｎｇ）とする。プーリング処理は、マックスプーリング処理に限定されるものではなく、所定範囲内における何らかの統計値等を取得して出力するような処理でもよい。なお、入力画像は、所定の画像サイズで画像をクロップもしくはリサイズしてＤＣＮＮに入力するのが一般的である。
【００２３】
また、図６（ａ）に示した例に限らず、例えば非特許文献２に開示されているように、ニューラルネットワークの中間層の出力結果を特徴ベクトルとして識別器に入力することで識別を行うことも可能である。例えば、図６（ｂ）に示すように中間層であるｒｅｌｕ処理６０９を行う層の出力結果を特徴ベクトル（ｆｅａｔｕｒｅ）６１６としてサポートベクタマシン（ＳＶＭ：Ｓｕｐｐｏｒｔ−Ｖｅｃｔｏｒ−Ｍａｃｈｉｎｅ）６１７に入力することで識別を行う。なお、図６（ｂ）に示した例では、途中のｒｅｌｕ処理６０９を行う層の出力結果を利用したが、その前段の畳み込み処理６０８を行う層や後段のプーリング処理６１０を行う層の出力結果でもよいし、他の中間層の出力結果や、それらの組み合わせでもよい。また、ここでは識別器としてサポートベクタマシンを用いた例を示したが、他の識別器を用いてもよい。
【００２４】
また、図６（ｂ）に示した例では入力画像に対して識別結果を一意に出力するが、図４に示したように識別対象領域を識別する場合などで画素や小領域毎に識別する必要がある場合には、図６（ｃ）に示すような構成を用いる。その場合、所定の中間層の出力結果を、入力画像サイズと同じサイズにリサイズするリサイズ処理６１８を行う。リサイズ処理を行った後に、注目している画素もしくは小領域における所定の中間層の出力結果６１９を特徴ベクトル（ｆｅａｔｕｒｅ）６２０として、サポートベクタマシン（ＳＶＭ）６２１に入力することで識別を行う。一般的にＤＣＮＮを用いる場合、中間層の出力結果は入力画像サイズに比べて小さくなるため、中間層の出力結果を入力画像サイズにリサイズする必要がある。リサイズ方法は、補間点に最も近い位置での値で補間する最近傍法（Ｎｅａｒｅｓｔ−Ｎｅｉｇｈｂｏｒ−Ａｌｇｏｒｉｔｈｍ）などの補間手法であれば何でもよい。なお、識別器としてサポートベクタマシンを用いた例を示したが、それ以外の識別器を用いてもよい。
【００２５】
また、図３に示したように識別対象物体を検出する場合には、非特許文献５に開示されているように物体領域候補を関心領域として推定して対象物体領域のバウンディングボックスの位置・サイズ及びスコアを出力するニューラルネットワークを用いてもよい。関心領域（ＲＯＩ：Ｒｅｇｉｏｎ−Ｏｆ−Ｉｎｔｅｒｅｓｔ）は、例えば非特許文献６に開示されている物体らしさ（Ｏｂｊｅｃｔｎｅｓｓ）を見つけるＳｅｌｅｃｔｉｖｅ  Ｓｅａｒｃｈと呼ばれる手法などを用いて物体候補領域を算出する。通常は２０００個程度の物体候補領域を算出するが、ここでは１つである場合で説明する。図６（ｄ）に示すように、途中の中間層の出力結果を先の方法で推定した関心領域（ＲＯＩ）内でプーリング処理（ＲＯＩｐｏｏｌｉｎｇ）６２２する。関心領域（ＲＯＩ）内でプーリング処理した出力結果を複数の全結合層に接続して、バウンディングボックスの位置・サイズ及びその対象物体のスコア等を出力する。
【００２６】
次に、ニューラルネットワークを用いて複数の認識タスクに係る識別を行う場合の処理について説明する。ここでは、認識タスクが２つである場合を例に説明するが、認識タスクの数は３つ以上でもよい。図７は、ＤＣＮＮを用いた複数の認識タスクに係る識別処理の一例を説明する図である。図７には、ニューラルネットワークに識別対象画像を入力した場合に２つの認識タスクに対してそれぞれ識別結果が出力される例を示している。図７においては、処理に関して図示しており各処理に関する出力結果は図示していないが、最終的な識別結果のみ点線で図示している。
【００２７】
図７（ａ）には、入力される識別対象画像（Ｉｎｐｕｔ）７００に関し、演算処理層７０１を経て、それぞれの認識タスクに対して識別層７０２、７０４によって識別結果７０３、７０５をそれぞれ出力する例を示している。演算処理層７０１は、先に説明した畳み込み処理と、ｒｅｌｕ処理やプーリング処理などの非線形処理とを適宜組み合わせて構成されている（図７（ｂ）〜図７（ｄ）に示す他の演算処理層７１１、７１４、７１７についても同様）。演算処理層の構成についてはニューラルネットワークの学習時に設定する。ニューラルネットワークによって識別結果が出力される認識タスクは、図２〜図４に示したような画像分類タスクや物体検出タスクや領域分割タスクなどなんでもよい。
【００２８】
認識タスクの１つが物体検出タスクである場合、図７（ｂ）に一例を示すように演算処理層７０１の出力結果に対して、所定の方法で推定した関心領域（ＲＯＩ）内でのプーリング処理（ＲＯＩｐｏｏｌｉｎｇ）７０６を行う。そして、物体検出タスクに対応する識別層７０９によって、関心領域（ＲＯＩ）内でプーリング処理した出力結果を用いてバウンディングボックスの位置・サイズを識別し、識別結果７１０を出力する。また、図７（ｂ）に示す例では、演算処理層７０１の出力結果を用いて識別層７０７で処理を行うことにより、別の認識タスクの識別結果７０８を出力する。例えば、識別結果７０８が画像分類結果であり、識別結果７１０が対象物体の位置やサイズである。
【００２９】
また、識別結果の出力方法には様々な方法があり、その例を図７（ｃ）や図７（ｄ）に示す。図７（ｃ）に示す例では、入力される識別対象画像（Ｉｎｐｕｔ）７００に対して、演算処理層７１１及び識別層７１２で処理を行うことで、ある認識タスクに対する識別結果７１３を出力する。さらに、ある認識タスクに対する識別結果７１３を演算処理層７１４及び識別層７１５で処理することで、別の認識タスクに対する識別結果７１６を出力する。また、図７（ｄ）に示す例では、途中の演算処理層７１７の出力結果を識別層７２０で処理することで、ある認識タスクに対する識別結果７２１を出力する。その識別結果７２１と演算処理層７１７の出力結果とを入力として、識別層７１８で処理を行うことにより、別の認識タスクに対する識別結果７１９が出力される。
【００３０】
図８（ａ）は、第１の実施形態における情報処理装置１２０の機能構成例を示す図である。図８（ａ）には、情報処理装置１２０における識別処理に係る機能構成を示している。また、図８（ａ）には、情報処理装置１２０が有する機能ブロックの他に、カメラ１０に相当し、識別対象画像を取得する撮影部８００も合わせて図示している。第１の実施形態における情報処理装置１２０は、ニューラルネットワーク（ＮＮ）入力部８０１、ニューラルネットワーク（ＮＮ）出力部８０２、及びパラメータ保持部８０３を有する。ＮＮ入力部８０１及びＮＮ出力部８０２は、情報処理装置１２０のＣＰＵ５０１がＲＯＭ５０３や記憶部５０４に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部８０３は、不揮発性の記憶装置として情報処理装置１２０と接続された構成としてもよい。
【００３１】
図９（ａ）は、第１の実施形態における情報処理装置１２０で実行される識別処理の一例を示すフローチャートである。識別処理を開始すると、ニューラルネットワーク（ＮＮ）入力工程Ｔ９０１にて、ＮＮ入力部８０１が、シーン３０として図１に例示したような撮影部８００によって撮影された画像を識別対象画像として取得する。なお、識別対象画像は、図示しない外部装置に格納されている画像であってもよく、その場合にはＮＮ入力部８０１は、外部装置から読み出された画像を識別対象画像として取得する。外部装置に格納されている画像は、例えば撮影部８００等で予め撮影された画像であってもよいし、ネットワーク等を経由するなどの他の方法で取得されてから格納された画像であってもよい。ＮＮ入力部８０１で取得された識別対象画像は、ＮＮ出力部８０２に送信される。
【００３２】
次に、ニューラルネットワーク（ＮＮ）出力工程Ｔ９０２にて、ＮＮ出力部８０２が、ＮＮ入力工程Ｔ９０１において入力された識別対象画像を、ニューラルネットワークを用いて識別し、出力層の出力結果を識別結果として出力する。識別に用いるニューラルネットワークの構造は、パラメータ保持部８０３に保持されている。また、識別に用いるニューラルネットワークにおける各認識タスクについての畳み込みフィルタの値や全結合層の結合重み等の学習パラメータは、学習処理によって予め学習を行うことにより取得されてパラメータ保持部８０３に保持されている。なお、識別結果は、後述する学習処理内のマルチタスク設定工程Ｓ１１０１において設定された複数の認識タスクに対してそれぞれ出力してもよいし、その複数の認識タスクのうち設定した所定の認識タスクのみの出力結果を出力してもよい。
【００３３】
次に、本実施形態において用いられるニューラルネットワークを学習する際の処理（学習処理）について説明する。図１０（ａ）は、第１の実施形態における情報処理装置１３０の機能構成例を示す図である。図１０（ａ）には、情報処理装置１３０における学習処理に係る機能構成を示している。第１の実施形態における情報処理装置１３０は、マルチタスク設定部１００１、ニューラルネットワーク（ＮＮ）学習部１００２、ニューラルネットワーク（ＮＮ）評価部１００３、学習パラメータ設定部１００４、及び表示部１００５を有する。また、第１の実施形態における情報処理装置１３０は、パラメータ保持部１００６、学習データ保持部１００７、及び評価データ保持部１００８を有する。
【００３４】
マルチタスク設定部１００１、ＮＮ学習部１００２、ＮＮ評価部１００３、及び学習パラメータ設定部１００４は、情報処理装置１３０のＣＰＵ５０１がＲＯＭ５０３や記憶部５０４に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部１００６、学習データ保持部１００７、及び評価データ保持部１００８の一部又は全部は、不揮発性の記憶装置として情報処理装置１３０と接続された構成としてもよい。本実施形態では、情報処理装置１３０において学習データ保持部１００７に保持されているデータにより複数の認識タスクに対して学習を行った後に、ニューラルネットワークの学習精度を評価して学習パラメータを設定する。しかし、これに限定されず、予め学習されたニューラルネットワークを保持しておいて、ニューラルネットワークを評価してもよい。
【００３５】
図１１（ａ）は、第１の実施形態における情報処理装置１３０で実行される学習処理の一例を示すフローチャートである。学習処理を開始すると、まずマルチタスク設定工程Ｓ１１０１にて、マルチタスク設定部１００１が、ニューラルネットワークに学習させる少なくとも２つ以上の認識タスクを設定する。設定された複数の認識タスクに関する情報はＮＮ学習部１００２に送信される。なお、マルチタスク設定部１００１は、表示部１００５に接続されており、設定された認識タスクを表示部１００５上で表示することによりユーザが確認することが可能となっている。
【００３６】
本実施形態では、設定する認識タスクの数が２つである場合を例に説明する。設定する認識タスクは、例えば、前述した画像分類タスク、物体検出タスク、及び領域分割タスク等の内から異なる２つのタスクを選択してもよいし、同じタスクを２回選択してもよい。本実施形態では、領域分割タスクと物体検出タスクとの２つの認識タスクを設定した例について説明する。領域分割タスクでは道路領域とそれ以外の抽出を行い、物体検出タスクでは車の検出を行うタスクについて説明する。その例を図１２に示す。識別対象画像１２００に対して、領域分割タスクの識別結果を１２０１、物体検出タスクの識別結果を１２０４に示している。道路領域を１２０２、非道路領域を１２０３、車の位置及びサイズを表すバウンディングボックスを１２０４で示している。
【００３７】
次に、ニューラルネットワーク（ＮＮ）学習工程Ｓ１１０２にて、ＮＮ学習部１００２が、設定されたニューラルネットワークの学習パラメータで、学習データ保持部１００７に保持されている学習データを用いてニューラルネットワークに学習させる。ＮＮ学習工程Ｓ１１０２では、マルチタスク設定工程Ｓ１１０１においてマルチタスク設定部１００１が設定した複数の認識タスクに関して学習を行う。本実施形態では、ニューラルネットワークとしてＤＣＮＮを用いるとする。設定されるパラメータとは、ニューラルネットワークにおける層の数や層の処理内容（構造）及びフィルタサイズや出力チャンネル数などである。学習されたニューラルネットワークはＮＮ評価部１００３に送信される。
【００３８】
ここで、学習されるニューラルネットワークの例を、図１３を参照して説明する。図１３（ａ）には、入力される各学習画像に対するニューラルネットワークの各層での処理内容を示している。図１３（ａ）において、物体検出タスクの結果である、対象物体であるか否かの尤度がＯｕｔｐｕｔ１３１４、対象物体の位置及びサイズに関する出力結果がＯｕｔｐｕｔ１３２７、領域分割タスクの識別結果がＯｕｔｐｕｔ１３２０で表されている。それぞれのタスクに対するニューラルネットワークの構造及び処理内容を説明する。
【００３９】
物体検出タスクの場合、入力された学習画像（Ｉｎｐｕｔ）１３００に対して畳み込み処理１３０１、ｒｅｌｕ処理１３０２、畳み込み処理１３０３、ｒｅｌｕ処理１３０４、及びプーリング処理１３０５が、この順で行われる。さらに畳み込み処理１３０６、ｒｅｌｕ処理１３０７、及びＲＯＩ内でのプーリング処理１３０８が行われた後、全結合層１３０９に入力される。そして、全結合層１３０９、ｒｅｌｕ処理１３１０、全結合層１３１１、ｒｅｌｕ処理１３１２、及び全結合層１３１３を経て、物体検出タスクの結果（Ｏｕｔｐｕｔ）１３１４を出力する。また、ｒｅｌｕ処理１３１２の出力結果を全結合層１３２６に入力することで、対象物体の位置及びサイズに関する出力結果（Ｏｕｔｐｕｔ）１３２７が得られる。一方、領域分割タスクでは、中間層の出力結果を入力画像サイズにリサイズをして識別を行う。具体的には、ｒｅｌｕ処理１３０２の出力結果、ｒｅｌｕ処理１３０４の出力結果、及びｒｅｌｕ処理１３０７の出力結果を、それぞれ入力画像サイズにリサイズ処理１３１５〜１３１７した後に結合処理（ｃｏｎｃａｔ）１３１８する。結合処理した結果を識別層１３１９によって識別し識別結果（Ｏｕｔｐｕｔ）１３２０が出力される。
【００４０】
図１３（ｂ）には、図１３（ａ）に示した処理内容を行った際のニューラルネットワークの各層での出力結果を示している。図１３（ｂ）において、ｒｅｌｕ処理は省略している。ＤＣＮＮでは各層に入力されるＮ（ｎ）（ｎ＝１、２、…）チャンネルの入力が畳み込みによりＮ（ｎ＋１）チャンネルの出力に変換される。畳み込み処理を行う各層で用いるフィルタ群（カーネル）は４次元のテンソル表現で表される。例えば、（フィルタサイズ）×（フィルタサイズ）×（（入力）チャネル数）×（フィルタ数＝出力チャンネル数）で表される。図１３（ｂ）に示した例では、入力画像１３００は、２５６×２５６のサイズにリサイズされており、ＲＧＢの３チャンネルで定義されているとする。畳み込み処理１３０１で用いるフィルタ（カーネル）は、７×７×３×９６で表現される。図１３（ｂ）に示しているようにｓｔｒｉｄｅ４（４ピクセルおきに畳み込み演算を行う）で処理を行うため、畳み込み処理１３０１（及びｒｅｌｕ処理１３０２）による出力結果１３３１は、６４×６４×９６でサイズが表される結果となる。次に、畳み込み処理１３０３で用いるフィルタは、５×５×９６×１２８で表される。そのため、畳み込み処理１３０３による出力結果１３３２は、６４×６４×１２８となる。次に、プーリング処理１３０５は、２×２の範囲の最大値をｓｔｒｉｄｅ２で取得するとすれば、プーリング処理１３０５による出力結果１３３３は、３２×３２×１２８となる。次に、畳み込み処理１３０６で用いるフィルタは、３×３×１２８×２５６で表される。そのため、畳み込み処理１３０６による出力結果１３３４は、３２×３２×２５６となる。次に、畳み込み処理１３０６による出力結果１３３４に対してＲＯＩ内でプーリング処理１３０８を行う。ここでは１６×１６で表される領域をＲＯＩプーリング処理して、出力結果１３３５を次の全結合層１３０９に入力する。その後、全結合層で処理を行い、ＲＯＩ内の物体尤度、及び位置及びサイズを出力する。
【００４１】
例えば、図１２に示した例においては、ＲＯＩ内に車が存在するか否かについての尤度及び車領域の位置及びサイズが出力される。ＲＯＩ内の物体尤度は全結合層１３１３で処理を行い、対象の物体であるか否かの尤度を出力結果（Ｏｕｔｐｕｔ）１３１４として出力する。学習時には、学習データに対するソフトマックス（ｓｏｆｔｍａｘ）誤差を算出することで学習される。また、ＲＯＩ内の物体の位置及びサイズは全結合層１３２６で処理を行い、ＲＯＩ内での位置及びサイズについて、対象物体領域とのずれ量を出力結果（Ｏｕｔｐｕｔ）１３２７として出力する。学習時には、ＲＯＩ内の位置及びサイズと、学習データの対象物体の位置及びサイズに関する回帰誤差を算出することで学習する。なお、学習データ内に車が存在しない場合には対象物体であるか否かの尤度に関する誤差のみ算出する。
【００４２】
一方、領域分割タスクでは、各層の出力結果を入力画像のサイズにリサイズして結合する。具体的には、畳み込み処理１３０１による６４×６４×９６のサイズの出力結果１３３１を入力画像サイズである２５６×２５６のサイズにリサイズする。リサイズされた結果は２５６×２５６×９６となる。リサイズ処理方法は最近傍処理などでよい。また、畳み込み処理１３０３による６４×６４×１２８のサイズの出力結果１３３２、及び畳み込み処理１３０６による３２×３２×２５６のサイズの出力結果１３３４も、同様の方法でリサイズされる。リサイズされた出力結果はチャンネル方向に結合することにより２５６×２５６×４８０の出力結果１３３６となる。その出力結果１３３６を入力として、識別層１３１９で処理を行い識別結果１３２０が２５６×２５６のサイズで出力される。そのため、識別層１３１９で用いるフィルタ（カーネル）のサイズは、例えば、１×１×４８０×１で表される。この処理により２５６×２５６の各点に対して識別結果が出力されるので、学習時には入力画像サイズと同じサイズの教師値を用意して、各画素に対してソフトマックス（ｓｏｆｔｍａｘ）誤差を算出することで学習される。
【００４３】
図１１（ａ）に戻り、次にニューラルネットワーク（ＮＮ）評価工程Ｓ１１０３にて、ＮＮ評価部１００３が、評価データ保持部１００８に保持されている評価データを用いて、ＮＮ学習工程Ｓ１１０２において学習されたニューラルネットワークの評価を行う。本実施形態では、学習データの他に評価データを保持しているものとするが、学習データの一部を用いて評価してもよい。ＮＮ評価部１００３によるニューラルネットワークの評価結果は、学習パラメータ設定部１００４及び表示部１００５に送信される。表示部１００５上では、ニューラルネットワークの学習結果及びその評価結果をユーザが確認することができる。次に、ステップＳ１１０４にて、その評価結果に基づいてニューラルネットワークの学習を継続するか否かを決定する。
【００４４】
ここで、本実施形態におけるＮＮ評価部１００３によるニューラルネットワークの評価では、複数の認識タスクの学習精度及びある所定間隔での学習精度の変位量を評価する。各認識タスクに対する学習精度は、評価データに対する誤差を用いることにする。誤差の算出方法は、学習時に学習データに対して算出している方法と同様でよい。各認識タスクに対する評価データに対する学習精度は、例えば図１４に示すように得られる。図１４は、ＮＮ学習工程Ｓ１１０２において学習されたニューラルネットワークで評価データを評価した際の誤差をプロットしたものであり、各学習時間ｔで得られるニューラルネットワークによる評価データに対する誤差をＬｏｓｓ（ｔ）で示している。図１４において、１４０１及び１４０２は、各認識タスクにおける評価データに対する誤差を示している。各認識タスクにおける評価データに対する誤差が、いずれも所定のしきい値より小さい場合には、ステップＳ１１０４において学習を終了すると判断する。一方、評価データに対する誤差が所定のしきい値よりも大きい場合には、ステップＳ１１０４において学習を継続すると判断する。そして、次のニューラルネットワーク（ＮＮ）学習パラメータ設定工程Ｓ１１０５で、評価データに対する誤差を用いてニューラルネットワークの学習パラメータを設定する。
【００４５】
ＮＮ学習パラメータ設定工程Ｓ１１０５では、学習パラメータ設定部１００４が、ＮＮ評価工程Ｓ１１０３において評価された結果（評価データに対する誤差）に基づいて、ニューラルネットワークの学習パラメータを設定する。設定された学習パラメータは、ＮＮ学習部１００２に送信される。その後、設定された学習パラメータで再度ＮＮ学習工程Ｓ１１０２及びＮＮ評価工程Ｓ１１０３の処理を行い、学習終了か否かの判定を行って終了すると判定した場合には学習処理を終了する。
【００４６】
ここで学習パラメータとは、各認識タスクに対する重要度や学習率、各認識タスクに関連するニューラルネットワークの層の学習率などがあげられる。各認識タスクに対する重要度とは、学習時に各認識タスクに対する誤差に重みつけされる値であり、重要度が大きいとその認識タスクに対してより学習される。本実施形態では、例えば図１５に示すように学習時間ｔで得られる誤差Ｌｏｓｓ（ｔ）と、学習時間ｔよりある所定時間前の学習時間ｔ’で得られる誤差Ｌｏｓｓ（ｔ’）とを用いて重要度Ｗを算出する。ニューラルネットワークの場合には、学習時間として、ミニバッチ学習回数（ｉｔｅｒａｔｉｏｎ）を用いてもよいし、すべての学習データに対して何回学習が行われたかを表すエポック（ｅｐｏｃｈ）数を用いてもよい。重要度Ｗは、下記（式２）によって各認識タスクについて算出する。
Ｗ＝α・Ｌｏｓｓ（ｔ）＋β／（ΔＬｏｓｓ＋γ）  …（式２）
なお、（式２）において、α、β、γは、０〜１の実数で表される定数である。また、ΔＬｏｓｓは、下記（式３）のように表され、単位時間あたりの誤差の変位量を表している。
ΔＬｏｓｓ＝｜Ｌｏｓｓ（ｔ）−Ｌｏｓｓ（ｔ’）｜／（ｔ−ｔ’）  …（式３）
【００４７】
また、下記（式４）に示すように重要度Ｗを所定時間の間での総和を基に取得してもよい。
Ｗ＝Σ（α・Ｌｏｓｓ（ｔ）＋β／（ΔＬｏｓｓ＋γ））  …（式４）
これは、例えば図１６に示すように認識タスクに対する誤差が、ある範囲を振動していて学習が進まない場合に、重要度Ｗを大きい値にすることによりニューラルネットワークの学習を促進する。
【００４８】
前述した例では、物体検出タスクである場合には、ＲＯＩ領域の位置及びサイズと、学習データの対象物体の位置及びサイズに関する回帰誤差に対して重要度Ｗを積算する。領域分割タスクである場合には、出力結果の各画素に対して算出されるソフトマックス（ｓｏｆｔｍａｘ）誤差に重要度Ｗを積算する。物体検出タスクに関する回帰誤差をＥｒ、領域分割タスクに関するソフトマックス（ｓｏｆｔｍａｘ）誤差をＥｓとし、それぞれのタスクに関する重要度をＷｒ、Ｗｓとすれば、誤差の総和であるＥは下記（式５）のように表される。
Ｅ＝Ｗｒ・Ｅｒ＋Ｗｓ・Ｅｓ  …（式５）
（Ｗｒ＋Ｗｓ＝１）
このようにして算出された重要度Ｗで重みづけした誤差によって誤差逆伝播法によりニューラルネットワークを学習すればよい。
【００４９】
なお、ここでは算出された重要度Ｗを誤差に対して積算したが、下記（式６）に示すように重要度Ｗ、学習時間ｔを入力とする関数を定義して、学習時間毎に重要度を変化させてもよい。
Ｗ＝ｆ（Ｗ、ｔ）  …（式６）
その際も各認識タスクの重要度の総和が１になるように正規化しておく。この重要度Ｗを用いてＮＮ学習工程Ｓ１１０２においてニューラルネットワークの学習を再度行う。なお、本実施形態では評価データに対する各学習時間の誤差を用いたが、他の評価値を用いてもよい。例えば、評価データの正解率を用いる場合でも、評価データに対する正解率と再現率から算出されるＦ値や、所定の誤検出率のときの再現率などを算出してもよい。もしくは各認識タスクの評価データのサンプルに対する識別結果から統計量を算出してもよい。
【００５０】
また、各認識タスクの評価データに対する各学習時間の誤差を表示部１００５に表示して、その誤差を見てユーザが重要度を設定してもよい。また、本実施形態では学習したニューラルネットワークの評価データに対する誤差を用いて、次のニューラルネットワークの学習時のパラメータを一つ設定している。評価データに対する誤差に基づいて複数の学習パラメータを設定し、それぞれの学習パラメータにおいて所定時間のニューラルネットワークの学習後に最も識別精度の高いニューラルネットワークを選択してもよい。また、ニューラルネットワークに学習させる複数の認識タスクのうち、選択した認識タスクの識別精度に基づいて学習パラメータを設定するようにしてもよい。
【００５１】
第１の実施形態によれば、情報処理装置１３０がニューラルネットワークに学習させる２つ以上の認識タスクを設定して、その認識タスクの学習結果を評価してニューラルネットワークの学習パラメータを設定する。これらの処理により、ニューラルネットワークに２つ以上の認識タスクを学習させる場合に、学習パラメータを適切に設定して複数の認識タスクに係る学習を行うことができ、識別精度の高いニューラルネットワークを効率よく学習することができる。
【００５２】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第２の実施形態においては、第１の実施形態の処理に加えて、複数の認識タスクのうち、いくつかのタスクを他のタスクから生成する。以下では、生成する側の認識タスクをメインタスクと呼び、生成される側の認識タスクをサブタスクと呼ぶこととする。例えば、メインタスクが物体検出タスクであった場合に、サブタスクを対象の物体が画像上に存在するか否かを識別するタスク（画像分類タスク）に設定する。メインタスクの教師値は学習データ内の対象物体の位置を表すデータが入力されているため、その画像内に対象の物体が存在するか否かについてのサブタスクにおける教師値は自動的に生成することができる。メインタスクである物体検出タスクの精度が向上するように、メインタスク及びサブタスクの学習パラメータを設定する。
【００５３】
ここで、多層ニューラルネットワークを学習する場合、学習するパラメータが多いために学習データや学習する認識タスクによっては学習が発散することや、局所最適解（ｌｏｃａｌ  ｍｉｎｉｍｕｍ）に収束してしまうことがある。本実施形態では、学習したい認識タスク（メインタスク）の他にサブタスクを設定し、そのメインタスクとサブタスクを学習する学習パラメータを調整することでメインタスクの学習精度を向上させる。サブタスクの教師値はメインタスクの教師値を基に生成するため、サブタスクのクラス定義はメインタスクのクラス定義を包含したものになる。したがって、メインタスクとサブタスクを比較した場合、サブタスクのほうが認識タスクとしては易しい問題となる。そのため、学習初期の段階ではサブタスクの重要度を高く設定し、メインタスクの重要度を低く設定することでニューラルネットワークの学習が促進される。また、学習が進むにつれてサブタスクの重要度を下げて、メインタスクの重要度を上げることでメインタスクの学習を促進する。
【００５４】
第２の実施形態において、画像を識別する際の処理は、第１の実施形態と同様であるので、以下では学習時の処理について説明する。ただし、第２の実施形態におけるＮＮ出力工程Ｔ９０２では、メインタスクを基に生成されたサブタスクの識別結果を出力せずに、学習時に設定したメインタスクの識別結果のみを出力するようにしてもよい。
【００５５】
図１０（ｂ）は、第２の実施形態における情報処理装置１３０の機能構成例を示す図である。図１０（ｂ）には、情報処理装置１３０における学習処理に係る機能構成を示している。図１０（ｂ）において、図１０（ａ）に示したブロックと同一の機能を有するブロックには同一の符号を付し、重複する説明は省略する。
【００５６】
第２の実施形態における情報処理装置１３０は、マルチタスク設定部１００１、ＮＮ学習部１００２、ＮＮ評価部１００３、学習パラメータ設定部１００４、及び表示部１００５を有する。また、第２の実施形態における情報処理装置１３０は、パラメータ保持部１００６、学習データ保持部１００７、及び評価データ保持部１００８に加え、サブタスク教師値設定部１００９を有する。マルチタスク設定部１００１、ＮＮ学習部１００２、ＮＮ評価部１００３、学習パラメータ設定部１００４、及びサブタスク教師値設定部１００９は、情報処理装置１３０のＣＰＵ５０１がＲＯＭ５０３等に格納されたプログラムを実行することで実現される。
【００５７】
図１１（ｂ）は、第２の本実施形態における情報処理装置１３０で実行される学習処理の一例を示すフローチャートである。学習処理を開始すると、まずマルチタスク設定工程Ｓ１１１１にて、マルチタスク設定部１００１が、第１の実施形態と同様にニューラルネットワークに学習させる２つ以上の認識タスクを設定する。本実施形態では、複数の認識タスクのうち、１つ以上の認識タスクの定義及び教師値（サブタスク）を他のタスクの定義及び教師値から生成する。そのため、マルチタスク設定工程Ｓ１１１１では、マルチタスク設定部１００１は、メインタスクとなる認識タスクから定義及び教師値を生成することができるサブタスクを設定する必要がある。本実施形態では、メインタスクを物体検出タスクに設定して、サブタスクを対象の物体が画像上に存在するか否かを判別する画像分類タスクに設定して、これら複数の認識タスクを学習する例について説明する。
【００５８】
なお、マルチタスク設定工程Ｓ１１１１において設定するサブタスクは、メインタスクの学習データから生成できるものであれば任意である。例えば、メインタスクを物体検出タスクに設定して、サブタスクを所定の範囲の位置もしくはサイズである対象の物体が画像上に存在するか否かの画像分類タスクに設定してもよい。もしくはメインタスクと同様にサブタスクを物体検出タスクとするが、位置の定義を量子化してもよい。他にもメインタスクが１０００クラスの画像分類タスクである場合に、そのクラス定義をいくつか包含したクラスを定義し、例えば２０クラスの画像分類タスクをサブタスクとしてもよい。包含したクラス定義はユーザが設定してもよいし、画像特徴などを用いて学習データをクラスタリングして定義してもよい。
【００５９】
次に、サブタスク教師値設定工程Ｓ１１１２にて、サブタスク教師値設定部１００９が、マルチタスク設定工程Ｓ１１１１において設定された認識タスクのうちのサブタスクの学習データの教師値を設定する。本実施形態では、メインタスクは物体検出タスクであり、サブタスクは対象の物体に係る画像分類タスクであるため、サブタスクの教師値は、学習データ保持部１００７に保持されている学習データから自動生成することができる。対象の物体の位置及びサイズが１つ以上付与されている学習データは、対象の物体が画像上に存在する画像となる。
【００６０】
次に、設定された学習データの教師値を用いて、ＮＮ学習工程Ｓ１１１３にてニューラルネットワークの学習を行う。なお、ＮＮ学習工程Ｓ１１１３、ＮＮ評価工程Ｓ１１１４、及びステップＳ１１１５での処理は、第１の実施形態におけるＮＮ学習工程Ｓ１１０２、ＮＮ評価工程Ｓ１１０３、及びステップＳ１１０４での処理と同様であるので、その説明は省略する。
【００６１】
次に、ＮＮ学習パラメータ設定工程Ｓ１１１６の処理について説明する。ＮＮ学習パラメータ設定工程Ｓ１１１６での処理は、第１の実施形態におけるＮＮ学習パラメータ設定工程Ｓ１１０５での処理とほぼ同様であるが、メインタスクの学習精度を向上させるようにニューラルネットワークの学習パラメータを設定する。
【００６２】
図１７に、メインタスク及びサブタスクの各学習時間で得られる評価データに対する誤差とそれに基づいて設定した重要度の一例を示す。図１７（ａ）には、メインタスクの評価データに対する誤差１７０１、及びサブタスクの評価データに対する誤差１７０２を示している。また、図１７（ｂ）には、メインタスクの重要度１７０３、及びサブタスクの重要度１７０４を示している。例えば、第１の実施形態と同様にして、学習時間ｔにおいて、メインタスク、サブタスクの評価データに対する誤差により重要度を算出して、メインタスク及びサブタスクの誤差に積算してニューラルネットワークでの学習を行う。サブタスクに対する重要度をＷｓｕｂ、メインタスクに対する重要度をＷｍａｉｎとして、それぞれのタスクに関する誤差をＥｓｕｂ、Ｅｍａｉｎとすれば、誤差の総和Ｅは下記（式７）のように表される。
Ｅ＝Ｗｓｕｂ・Ｅｓｕｂ＋Ｗｍａｉｎ・Ｅｍａｉｎ  …（式７）
【００６３】
メインタスクに対する重要度を大きく設定すれば、メインタスクに対しての学習が促進されるので、図１７（ｂ）に示すように徐々にサブタスクに対する重要度をさげ、メインタスクの重要度をあげることでメインタスクの学習精度を向上させることができる。この重要度を用いてＮＮ学習工程Ｓ１１１３においてニューラルネットワークの学習を再度行った後、ＮＮ評価工程Ｓ１１１４においてニューラルネットワークの評価を再度行う。このＮＮ学習パラメータ設定工程Ｓ１１１６、ＮＮ学習工程Ｓ１１１３、ＮＮ評価工程Ｓ１１１４での処理を学習終了と判定するまで繰り返し行う。
【００６４】
なお、認識タスクの評価データに対する各学習時間の誤差を表示部１００５に表示して、その誤差を見てユーザが重要度を設定してもよい。また、学習時の誤差を用いて各認識タスクの重要度を設定したが、学習初期の段階ではサブタスクの重要度を大きくしたほうがニューラルネットワークの学習が促進されやすい。そこで、所定の学習時間まではサブタスクの重要度を大きく、メインタスクの重要度を小さく設定して、所定時間からタスクの評価データに対する誤差を用いて調整するようにしてもよい。
【００６５】
第２の実施形態によれば、情報処理装置１３０がニューラルネットワークに学習させるメインタスク及びそのメインタスクから生成できるサブタスクを設定する。その設定されたメインタスク及びサブタスクに係る学習を行い、そのメインタスクの学習結果を評価してニューラルネットワークの学習パラメータを設定する。これらの処理により、メインタスクに対して識別精度の高いニューラルネットワークを効率よく学習することができる。
【００６６】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。第３の実施形態においては、前述した第１及び第２の実施形態とは異なり、ニューラルネットワークとは異なる識別器を学習する。識別器は、例えば、サポートベクタマシン（ＳＶＭ）や線形判別器等である。ＳＶＭ等の識別器は、一般的に学習時にはバッチ処理と呼ばれる学習データのすべてを用いて学習を行う。一方、ニューラルネットワークの学習はミニバッチ処理と呼ばれる学習データの一部のデータを用いて学習（パラメータの更新）を随時行う。ＳＶＭ等の識別器も非特許文献７に開示されているような技術を用いてオンライン学習する場合には、第１の実施形態や第２の実施形態において説明したように学習精度を評価して学習パラメータを決定することができる。また、通常のバッチ処理による学習の場合でも、学習結果を評価して再度学習する際の学習パラメータを決定することができる。その方法については後述する。
【００６７】
まず、識別対象画像を識別する際の処理について説明する。
図８（ｂ）は、第３の実施形態における情報処理装置１２０の機能構成例を示す図である。図８（ｂ）には、情報処理装置１２０における識別処理に係る機能構成を示している。また、図８（ｂ）には、情報処理装置１２０が有する機能ブロックの他に、カメラ１０に相当し、識別対象画像を取得する撮影部８１０も合わせて図示している。第３の実施形態における情報処理装置１２０は、識別器入力部８１１、識別器出力部８１２、及びパラメータ保持部８１３を有する。識別器入力部８１１及び識別器出力部８１２は、情報処理装置１２０のＣＰＵ５０１がＲＯＭ５０３や記憶部５０４に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部８１３は、不揮発性の記憶装置として情報処理装置１２０と接続された構成としてもよい。
【００６８】
図９（ｂ）は、第３の実施形態における情報処理装置１２０で実行される識別処理の一例を示すフローチャートである。識別処理を開始すると、識別器入力工程Ｔ９１１にて、識別器入力部８１１が、撮影部８１０によって撮影された画像を識別対象画像として取得する。なお、識別対象画像は、図示しない外部装置に格納されている画像であってもよく、その場合には識別器入力部８１１は、外部装置から読み出された画像を識別対象画像として取得する。外部装置に格納されている画像は、例えば撮影部８１０等で予め撮影された画像であってもよいし、ネットワーク等を経由するなどの他の方法で取得されてから格納された画像であってもよい。識別器入力部８１１で取得された識別対象画像は、識別器出力部８１２に送信される。
【００６９】
次に、識別器出力工程Ｔ９１２にて、識別器出力部８１２が、識別器入力工程Ｔ９１１において入力された識別対象画像を、識別器を用いて識別し識別結果を出力する。なお、識別結果は、後述する学習処理内のマルチタスク設定工程Ｓ１１２１において設定された複数の認識タスクに対してそれぞれ出力してもよいし、その複数の認識タスクのうち設定した所定の認識タスクのみの出力結果を出力してもよい。
【００７０】
次に、本実施形態において用いられる識別器を学習する際の処理（学習処理）について説明する。図１０（ｃ）は、第３の実施形態における情報処理装置１３０の機能構成例を示す図である。図１０（ｃ）には、情報処理装置１３０における学習処理に係る機能構成を示している。第３の実施形態における情報処理装置１３０は、マルチタスク設定部１０１１、識別器学習部１０１２、識別器評価部１０１３、学習パラメータ設定部１０１４、及び表示部１０１５を有する。また、第３の実施形態における情報処理装置１３０は、パラメータ保持部１００６、学習データ保持部１００７、及び評価データ保持部１００８を有する。
【００７１】
マルチタスク設定部１０１１、識別器学習部１０１２、識別器評価部１０１３、及び学習パラメータ設定部１０１４は、情報処理装置１３０のＣＰＵ５０１がＲＯＭ５０３や記憶部５０４に格納されたプログラムを読み出して実行することで実現される。なお、パラメータ保持部１００６、学習データ保持部１００７、及び評価データ保持部１００８の一部又は全部は、不揮発性の記憶装置として情報処理装置１３０と接続された構成としてもよい。本実施形態では、情報処理装置１３０において学習データ保持部１００７に保持されているデータにより複数の認識タスクに対して学習を行った後に、識別器を評価して学習パラメータを設定する。しかし、これに限定されず、予め学習された識別器を保持しておいて、識別器を評価してもよい。
【００７２】
図１１（ｃ）は、第３の実施形態における情報処理装置１３０で実行される学習処理の一例を示すフローチャートである。学習処理を開始すると、まずマルチタスク設定工程Ｓ１１２１にて、マルチタスク設定部１０１１が、識別器に学習させる少なくとも２つ以上の認識タスクを設定する。設定された複数の認識タスクに関する情報は識別器学習部１０１２に送信される。なお、マルチタスク設定部１０１１は、表示部１０１５に接続されており、設定された認識タスクを表示部１０１５上で表示することによりユーザが確認することが可能となっている。
【００７３】
次に、識別器学習工程Ｓ１１２２にて、識別器学習部１０１２が、設定された識別器の学習パラメータで、学習データ保持部１００７に保持されている学習データを用いて識別器に学習させる。識別器学習工程Ｓ１１２２では、マルチタスク設定工程Ｓ１１２１においてマルチタスク設定部１０１１が設定した複数の認識タスクに関して学習を行う。本実施形態では、簡単のため、識別器として線形判別器を用いるとする。学習された識別器は識別器評価部１０１３に送信される。
【００７４】
線形判別器は、識別器に入力される特徴量から直接クラスを推定する。その際に、フィッシャーの線形判別に基づいて射影することでクラス分離がしやすくなる。フィッシャーの線形判別ではＫクラス認識問題において、同じクラスに属するデータ内での変動（クラス内分散）を最小化し、各クラスの平均データ間の変動（クラス間分散）を最大化する（Ｋ−１）個の判別ベクトルＶ＝｛Ｖ１、…、Ｖ（ｋ−１）｝を求める。これには、Ｎ個のデータに対して、クラス間分散行列Ｓbとクラス内分散行列Ｓwを求め、下記（式８）に示すクラス分離度Ｊ（Ｖ）を最大化するＶを求めることになる。
Ｊ（Ｖ）＝ｔｒ｛（ＶTＳwＶ）-1（（ＶTＳbＶ）｝  …（式８）
ここで、ｔｒ｛・｝は行列のトレースを表す。
【００７５】
（式８）に示したクラス分離度Ｊ（Ｖ）を最大にするＶは、一般化固有値問題を解くことにより求められる。２つの認識タスクがある場合、各認識タスクに対してクラス間分散を大きくし、クラス内分散を小さくすればよい。それぞれの認識タスクに対するクラス間分散行列をＳ1b、Ｓ2bとし、クラス内分散行列をＳ1w、Ｓ2wとすれば、下記（式９）のように表される。
Ｊ（Ｖ）＝ｔｒ｛（ＶTＳ1wＶ）-1（（ＶTＳ1bＶ）＋（ＶTＳ2wＶ）-1（（ＶTＳ2bＶ）｝  …（式９）
【００７６】
識別時には、求められた判別ベクトルＶを用いて、入力ｘに対して下記（式１０）に示すようにクラス分類結果ｙを求める。
ｙ（ｘ）＝ＶTｘ＋Ｖ0  …（式１０）
さらに、一般的に事後確率を予測するために、下記（式１１）に示すように非線形関数ｆ（・）によって一般化する。ｆ（・）を活性化関数（ａｃｔｉｖａｔｉｏｎ  ｆｕｎｃｔｉｏｎ）とよぶ。
ｙ（ｘ）＝ｆ（ＶTｘ＋Ｖ0）  …（式１１）
【００７７】
次に、識別器評価工程Ｓ１１１３にて、識別器評価部１０１３が、評価データ保持部１００８に保持されている評価データを用いて、識別器学習工程Ｓ１１２２において学習された識別器の評価を行う。本実施形態では、学習データの他に評価データを保持しているものとするが、学習データの一部を用いて評価してもよい。識別器評価部１０１３による識別器の評価結果は、学習パラメータ設定部１０１４及び表示部１０１５に送信される。表示部１０１５上では、識別器の学習結果及びその評価結果をユーザが確認することができる。
【００７８】
次に、ステップＳ１１１４にて、識別器評価工程Ｓ１１１３における識別器評価部１０１３による評価結果に基づいて識別器の学習を継続するか否かを判定する。識別器の学習を継続すると判定した場合には、次の識別器学習パラメータ設定工程Ｓ１１１５に進み、識別器の学習を継続しない、すなわち学習を終了すると判定した場合には、学習処理を終了する。
【００７９】
識別器学習パラメータ設定工程Ｓ１１１５では、学習パラメータ設定部１０１４が、識別器評価工程Ｓ１１１３において評価された結果に基づいて、識別器の学習パラメータを設定する。設定された学習パラメータは、識別器学習部１０１２に送信される。その後、設定された学習パラメータで再度識別器学習工程Ｓ１１１２及び識別器評価工程Ｓ１１１３の処理を行い、学習終了か否かの判定を行って終了すると判定した場合には学習処理を終了する。
【００８０】
ここで、バッチ学習した場合の識別器評価工程Ｓ１１１３及び識別器学習パラメータ設定工程Ｓ１１１５での処理について説明する。本実施形態では、識別器学習工程Ｓ１１１３において、識別器評価部１０１３は、学習された識別器の評価データに対する正解率を評価する。識別器学習パラメータ設定工程Ｓ１１１５では、学習パラメータ設定部１０１４は、識別器評価工程Ｓ１１１３において評価された各認識タスクの正解率に基づいて重要度Ｗを下記（式１２）に示すように算出する。
Ｗ＝α・（１−正解率（ｔ））＋β  …（式１２）
なお、（式１２）において、α、βは定数である。ここで、ｔは学習時間ではなく、学習回数を示している。この（式１２）により算出された重要度Ｗを用いて再度識別器を学習する。具体的には、下記（式１３）のように判別ベクトルＶを求める際に各認識タスクの重要度Ｗ1、Ｗ2を用いる。
Ｊ（Ｖ）＝ｔｒ｛Ｗ1（ＶTＳ1wＶ）-1（ＶTＳ1bＶ）＋Ｗ2（ＶTＳ2wＶ）-1（ＶTＳ2bＶ）｝  …（式１３）
その他の処理は、第１の実施形態や第２の実施形態と同様である。
【００８１】
第３の実施形態によれば、情報処理装置１３０が識別器に学習させる２つ以上の認識タスクを設定して、その認識タスクの学習結果を評価して識別器の学習パラメータを設定する。これらの処理により、２つ以上の認識タスクを学習させる場合に、学習パラメータを適切に設定して複数の認識タスクに係る学習を行うことができ、識別精度の高い識別器を効率よく学習することができる。
【００８２】
（本発明の他の実施形態）
本発明は、前述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８３】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８４】
１１０：カメラ  １１５：ネットワーク  １２０、１３０：情報処理装置  ５０１：ＣＰＵ  ５０２：ＲＡＭ  ５０３：ＲＯＭ  ５０４：記憶部  １００１、１０１１：マルチタスク設定部  １００２：ニューラルネットワーク学習部  １００３：ニューラルネットワーク評価部  １００４、１０１４：学習パラメータ設定部  １００５、１０１５：表示部  １００６：パラメータ保持部  １００７：学習データ保持部  １００８：評価データ保持部  １００９：サブタスク教師値設定部  １０１２：識別器学習部  １０１３：識別器評価部
【図１】
2019192009.tif 000003
【図２】
2019192009.tif 000004
【図３】
2019192009.tif 000005
【図４】
2019192009.tif 000006
【図５】
2019192009.tif 000007
【図６】
2019192009.tif 000008
【図７】
2019192009.tif 000009
【図８】
2019192009.tif 000010
【図９】
2019192009.tif 000011
【図１０】
2019192009.tif 000012
【図１１】
2019192009.tif 000013
【図１２】
2019192009.tif 000014
【図１３】
2019192009.tif 000015
【図１４】
2019192009.tif 000016
【図１５】
2019192009.tif 000017
【図１６】
2019192009.tif 000018
【図１７】
2019192009.tif 000019