(57)【要約】【課題】抽象度の異なる複数の特徴を用いて、識別・認識を精度よく行うことができる情報処理装置を提供すること。【解決手段】入力層と出力層の間に複数の中間層を有するニューラルネットワークと、前記複数の中間層のうち特徴抽出層として機能する中間層の少なくとも１つの中間層に設けられるバイパス手段と、を備える情報処理装置であって、前記バイパス手段は、前記バイパス手段が設けられた中間層の出力を、当該中間層の次の中間層より後段の中間層に供給する。【選択図】  図２
2018026040.tif 000002
【特許請求の範囲】
【請求項１】
入力層と出力層の間に複数の中間層を有するニューラルネットワークと、
前記複数の中間層のうち特徴抽出層として機能する中間層の少なくとも１つの中間層に設けられるバイパス手段と、を備える情報処理装置であって、
前記バイパス手段は、前記バイパス手段が設けられた中間層の出力を、当該中間層の次の中間層より後段の中間層に供給することを特徴とする情報処理装置。
【請求項２】
前記バイパス手段は、少なくとも１つの特徴抽出層を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ニューラルネットワークは畳み込みニューラルネットワークであり、前記バイパス手段が設けられた中間層は畳み込み層であり、前記後段の中間層は全結合層であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記複数の中間層のうち、どの中間層に前記バイパス手段を設けるかを決定する決定手段をさらに有することを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記複数の中間層の出力に基づいて、中間層の類似度を判定する判定手段をさらに有し、
前記決定手段は、前記類似度に基づいて、どの中間層に前記バイパス手段を設けるかを決定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記決定手段は、前記複数の中間層のうち、前記バイパス手段を設けることができる最下位および最上位の中間層の少なくとも一方に、前記バイパス手段を設けると決定することを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記複数の中間層の数が所定数より多い場合、前記決定手段は、所定の基準に基づいて前記複数の中間層のから前記所定数に近い数の中間層を選び、当該選ばれた中間層から、前記バイパス手段を設けるべき中間層を前記類似度に基づいて決定することを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記判定手段によって類似度が所定値以上であると判定された中間層の出力を統合する統合手段をさらに有し、前記統合手段の出力は前記バイパス手段の畳み込み層に入力されることを特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記ニューラルネットワークを誤差逆伝搬法により学習する学習手段と、
誤差逆伝搬の経路ごとに各層の学習時設定を切り替える切替手段と、
をさらに有することを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記ニューラルネットワークは一つの入力データに対して複数のタスクの処理を並行して行うマルチタスクニューラルネットワークであり、
前記ニューラルネットワークを誤差逆伝搬法により学習する学習手段をさらに有し、
誤差逆伝搬法により学習パラメタを更新する場合、前記学習手段は、前記複数のタスクに共通する層の学習パラメタを、前記複数のタスクで生ずる誤差を用いて更新することを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１１】
前記ニューラルネットワークは、一つの入力データに対して複数のタスクの処理を並行して行うマルチタスクニューラルネットワークであり、
前記ニューラルネットワークを誤差逆伝搬法により学習する学習手段と、
前記バイパス手段が設けられた中間層の学習パラメタを誤差逆伝搬法により更新する場合、どのタスクからの誤差伝搬であるかによって前記学習手段の学習時設定を切り替える切替手段と、
をさらに有することを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１２】
前記複数のタスクは、画像の審美性を判定するタスクと画像中の物体の種別を認識するタスクとを含むことを特徴とする請求項１０または１１に記載の情報処理装置。
【請求項１３】
前記複数のタスクは、抽象度の低い低次特徴および抽象度の高い高次特徴を用いて識別を行うタスクと、抽象度の高い高次特徴を用いて識別を行うタスクとを含むことを特徴とする請求項１０または１１に記載の情報処理装置。
【請求項１４】
前記情報処理装置は、画像の審美性を判定する装置であることを特徴とする請求項１から１３のいずれか１項に記載の情報処理装置。
【請求項１５】
入力層と出力層の間に複数の中間層を有するニューラルネットワークにおいて、
前記複数の中間層のうち特徴抽出層として機能する中間層の少なくとも１つの中間層の出力を、当該中間層の次の中間層より後段の中間層に供給することを特徴とする情報処理方法。
【請求項１６】
コンピュータを、請求項１から１４のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多層ニューラルネットワークを用いた情報処理装置および情報処理方法に関する。  
【背景技術】
【０００２】
画像や音声などのデータの内容を学習し認識を行なう技術が知られている。本明細書では、認識処理の目的を認識タスクと称する。たとえば、画像中から人間の顔の領域を検出する顔認識タスク、画像中にある物体（被写体）の種別（猫、車、建物など）を判別する物体種別認識タスク、シーンの種別（都市、山間、海岸など）を判別するシーン種別認識タスクなどの認識タスクがある。
上記のような認識タスクを学習・実行する技術としては、ニューラルネットワーク（以上、「ＮＮ」と記す。）が知られている。ＮＮはＮｅｕｒａｌ  Ｎｅｔｗｏｒｋｓの略である。深い（層の数が多い）多層ＮＮは、ディープニューラルネットワーク（ＤＮＮ）と称される。ＤＮＮは、Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓの略である。特に、深い畳み込みＮＮは、ディープコンボリューショナルＮＮ（ＤＣＮＮ）と称される。ＤＣＮＮは、Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓの略である。ＤＣＮＮは物体種別認識タスクにおいて他の方式に比べて性能（識別精度、認識性能）が高いことが知られている。
ＤＣＮＮは、一般的には、畳み込み層とそれに続く全結合層とからなるＮＮである。通常のＮＮと同じく、ＤＣＮＮの１層目は入力データと同じ次元を持つ入力層であり、ＤＣＮＮの最終層は認識結果を表す出力層である。ＤＣＮＮは、畳み込み層と全結合層をそれぞれ複数有するのが一般的である。各層からの出力には、たとえばシグモイド関数などの非線形関数（活性化関数と呼ばれる）がかけられて、当該非線形関数をかけた後の値が次の層に送られる。
【０００３】
畳み込み層は、前層ユニットの一部分とだけ結合するネットワーク構造を有する。前層からの入力の一部分に対して、学習した結合重み係数とバイアス値による線形和を計算し、次層に出力する。その際、前層との局所的な結合の結合重み係数とバイアス値は、結合している場所によらず同じ値であるように制約する。これは前層からの入力に対する畳み込み演算と等価であり、畳み込み層で学習される重み係数は、畳み込み演算用のフィルタ（カーネル）とみなすことができる。フィルタのサイズが前層ユニットと結合する範囲を表している。畳み込み層にはこのようなフィルタが複数種類設定され、各フィルタが独自の重み係数とバイアス値を持つ。フィルタごとに畳み込み演算が行われ、その結果が次層に出力される。
【０００４】
畳み込み層の間にはプーリング層と呼ばれる層を設定するのが一般的である。プーリング層は前層（畳み込み層）からの入力をサブサンプリングするものである。たとえば最大値サンプリング（ｍａｘ  ｓａｍｐｌｉｎｇ）によって、行方向および列方向それぞれに半分のサイズになるようなサブサンプリングを行う。プーリングによって、畳み込み層の高層部では、畳み込み層の低層部で抽出した特徴に対する位置ずれに対してロバストになる。畳み込み層の高層部とは入力層から遠い畳み込み層のことであり、畳み込み層の低層部とは入力層に近い畳み込み層のことである。なお、本明細書では、高層部の畳み込み層を高位（高層）の畳み込み層と呼び、低層部の畳み込み層を低位（低層）の畳み込み層と呼ぶこともある。
【０００５】
全結合層は、前層の全ユニットと全結合（ｆｕｌｌ  ｃｏｎｎｅｃｔ）するネットワーク構造を有する。前層からの入力全てに対して、学習した結合重み係数とバイアス値による線形和を計算し、次層に出力する。通常のＤＣＮＮでは、畳み込み層の最終層の全ユニットが全結合層の１層目の全ユニットと結合するように設定する。
ＤＣＮＮの学習フェーズにおいては、教師データを使って、畳み込み層のフィルタの値や全結合層の結合重み係数を学習する。以下の記載において、学習されるパラメタを総称して学習パラメタと呼ぶ。学習には誤差逆伝搬法（バックプロパゲーション：ＢＰ）などの方法を用いる。ＢＰはＢａｃｋ  Ｐｒｏｐａｇａｔｉｏｎの略である。ＤＣＮＮの認識フェーズにおいては、学習済のＤＣＮＮの入力層に未知のデータを入力し、ネットワーク構造に従って各層で学習済みの学習パラメタを用いて当該未知のデータを順次処理し、出力層から当該未知のデータに対する認識の結果を得る。
【０００６】
入力データが画像である場合、畳み込み層で学習されるフィルタは検出対象であるパターン（画像パターン）が有する画像特徴を抽出するための特徴抽出器とみなすことができる。すなわち、検出対象であるパターンに含まれる画像特徴に対して強い信号を出力するようなフィルタが畳み込み層で学習される。たとえば検出対象であるパターンが顔であれば、顔の画像特徴に反応するフィルタが学習される。フィルタは複数設定されており、検出対象のパターンが有する複数の画像特徴のそれぞれに対してフィルタが学習される。したがって、畳み込み層は、識別に有効な特徴を学習する特徴抽出層とみなすことができる。
全結合層は、畳み込み層から出力された信号の全てを受け取り、入力データ全体が認識対象のパターンに合致するかどうかを判定するよう学習を行う。したがって、全結合層は、抽出された特徴に対して正しい識別を行うような識別器を学習する識別層とみなすことができる。
【０００７】
畳み込み層が複数階層ある場合、入力層に近い畳み込み層（低層部）ではエッジ、線、色のような抽象度の低い特徴に強く反応するようにフィルタが学習されることが知られている（非特許文献１参照）。出力層に近い畳み込み層（高層部）では、低い層で抽出された特徴を合成して得られる特徴に対して強い信号を出力するようにフィルタが学習される。すなわち、高い層では、検出対象の物体そのもの（たとえば顔）やその一部（たとえば目・鼻・口）のような抽象度の高い特徴に強く反応するようにフィルタが学習される。本明細書では、抽象度の低い特徴を低次特徴を呼び、抽象度の高い特徴を高次特徴と呼ぶ。非特許文献１では、低層部のフィルタがエッジや色に反応し、高層部のフィルタが識別対象の画像パターンに反応するように学習されたことが示されている。また、低層部と高層部のフィルタサイズが同じ設定であっても、プーリング層で行われる処理により、高層部で学習されるフィルタは、低層部で学習されるフィルタに比べてより大きなサイズの特徴に対して反応するよう学習される。
入力画像に写っている物体の種別を識別する物体種別認識タスクの場合、物体種別ごとに異なる反応を示すような高次特徴抽出フィルタが畳み込み層で学習される。識別層である全結合層へは、畳み込み層の最終層から出力される高次特徴の情報がすべて渡され、これを用いて全結合層では物体種別が識別できるように学習を行う。ＤＣＮＮはこのような物体種別認識タスクにおいて優れた性能を示す。
【０００８】
非特許文献２は、画像の審美性、すなわち、人間が見て美しいと感じるかどうかを判定する認識タスク（審美性判定タスク）にＤＣＮＮを用いた例を示している。このＤＣＮＮは、入力画像に対して「美しい」と「美しくない」のどちらかであるという判定するＤＣＮＮである。非特許文献２には、画像の一部を切り取った部分画像を入力データとする畳み込み層と、全体画像を入力データとするもう一つの畳み込み層の、２つの畳み込み層を１つの全結合層に結合して統合する方法が開示されている。この方法では、画像の美しさ（審美性）は、全体画像の印象（画像全体の印象）と、部分画像の印象（画像の一部分を注視した際の印象）との両方の要因に影響されると考え、当該考えをＤＣＮＮの構造に反映させている。この方法によると、識別層（全結合層）では、全体画像の特徴と部分画像の特徴とを同時に用いて画像の審美性を判定することになる。非特許文献２では、全体画像用の畳み込み層と部分画像用の畳み込み層は独立に学習されている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Zeiler, M. D., & Fergus, R. (2014). Visualizing and understanding convolutional networks. In Computer vision-ECCV 2014 (pp. 818-833). Springer International Publishing.
【非特許文献２】Lu, X., Lin, Z., Jin, H., Yang, J., & Wang, J. Z. (2014, November). Rapid: Rating pictorial aesthetics using deep learning. In Proceedings of the ACM International Conference on Multimedia (pp. 457-466). ACM.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ここで、審美性を判定する認識タスク（審美性判定タスク）の場合について考える。人間が画像を美しいと感じるかどうかに影響する画像要因は多種多様である。たとえば、当該画像要因として、主被写体の位置や領域（構図）、主被写体以外の領域のテクスチャ（テクスチャが乱雑で主被写体への注意の邪魔になっていないか）、色の印象などを挙げることができる。主被写体の位置や領域を把握（認識）するための特徴は、抽象度の高い高次特徴、すなわち物体や物体の一部を認識するための特徴である。また、テクスチャや色を認識する特徴は、抽象度の低い低次特徴、すなわちエッジや色を認識する特徴である。審美性判定タスクにおいては、抽象度の異なる２つの特徴、すなわち、低次特徴と高次特徴とを使って識別（判定）する方法が求められる。
【００１１】
しかしながら、非特許文献２の審美性判定タスク用のＤＣＮＮでは、識別層（全結合層）が畳み込み層の最上位層とだけ結合している。換言すると、非特許文献２の審美性判定タスク用のＤＣＮＮでは、畳み込み層の下層部で抽出されるような低次特徴を直接使って識別を行っていない。非特許文献２のＤＣＮＮは、全体画像の特徴と部分画像の特徴とを使用しているので、特徴領域サイズ（視野のサイズ）が異なる特徴を使用するものであり、抽象度の異なる特徴（高次特徴と低次特徴）を使用するものではない。
【００１２】
なお、従来の物体種別認識用のＤＣＮＮの構造は、低層の畳み込み層で抽出された低次特徴を高層の畳み込み層に進むに従って段階的に統合していき、最高層の畳み込み層で得られた高次特徴のみを使って識別層で物体種別認識を行っている。この構造では、識別層は低層の畳み込み層と直接結合していないため、低層の畳み込み層で抽出される低次特徴を直接用いて識別することはできない。そのため、低次特徴に関する要因を識別結果に反映することは難しく、審美性判定タスクのような低次特徴の要因も影響するような認識タスクには適していない。  
本発明は上記の課題を解決するものであり、抽象度の異なる複数の特徴を用いて、識別・認識を精度よく行うことができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の１つの態様による情報処理装置は、入力層と出力層の間に複数の中間層を有するニューラルネットワークと、前記複数の中間層のうち特徴抽出層として機能する中間層の少なくとも１つの中間層に設けられるバイパス手段と、を備える情報処理装置であって、前記バイパス手段は、前記バイパス手段が設けられた中間層の出力を、当該中間層の次の中間層より後段の中間層に供給する。
【発明の効果】
【００１４】
本発明によれば、情報処理装置は、精度よく識別・認識を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態１の情報処理装置の構成を示す図。
【図２】バイパス結合部を有する多層畳み込みＮＮの構造を示す図。
【図３】実施形態２の情報処理装置の構成を示す図。
【図４】バイパス結合部位置決定部の処理を説明するためのフローチャート。
【図５】実施形態３の情報処理装置の構成を示す図。
【図６】類似中間層統合設定部の処理を説明するためのフローチャート。
【図７】実施形態３の多層畳み込みＮＮの構造を示す図。
【図８】実施形態４のマルチタスクＮＮの構造を示す図。
【図９】実施形態５の情報処理装置の構成を示す図。
【図１０】経路別学習時設定部の処理を説明するためのフローチャート。
【発明を実施するための形態】
【００１６】
以下、本発明の情報処理装置の実施形態を、添付図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。実施形態の構成は、本発明が適用される装置の仕様や各種条件（使用条件、使用環境等）によって適宜修正または変更され得る。なお、以下の記載においては、同一の構成については、同じ符号を付して説明する。
【００１７】
実施形態１
（情報処理装置の構造）
図１は、本発明の実施形態１に係るＤＣＮＮを用いた情報処理装置１を示すブロック図である。情報処理装置１は、ＣＰＵ２、入力装置３、出力装置４、第１のメモリ５および第２のメモリ６を有する。情報処理装置１の各構成部はバス７により相互接続されている。本実施形態では認識対象のデータは画像データであるとして説明するが、音声データや文字列データなどが認識対象であってよい。
ＣＰＵ２は、入力装置３、出力装置４、第１のメモリ５および第２のメモリ６の動作を制御する。たとえば、ＣＰＵ２は、第２のメモリ６に格納されているデータや情報を用いて、第１のメモリ５の機能（第１のメモリ５に記憶されているプログラム）を実行することにより、所定の処理を行う。
【００１８】
入力装置３は、たとえばキーボード、ポインティングデバイス（マウスなど）、タッチパネルおよび各種スイッチにより構成することができる。情報処理装置１のユーザは、入力装置３を用いて、第１のメモリ５や第２のメモリ６に指示、データおよび情報を入力することができる。また、認識対象のデータが画像データである場合、入力装置３は、画像データを入力するカメラなどの装置を含む。
出力装置４は、たとえば液晶ディスプレイやプリンタである。出力装置４は、たとえば第１のメモリ５の機能を実行することにより得られた計算結果（識別結果）を表示する。なお、出力装置４は音声出力部を有してもよい。
第１のメモリ５は、プログラムを格納するメモリである。第１のメモリ５は、学習部１０と識別部１１とを有する。学習部１０と識別部１１は、機能ブロックで表されている。
【００１９】
第１のメモリ５に格納された学習部１０は、ＤＣＮＮ（ＤＣＮＮ情報２１）を学習するための学習手段である。学習部１０は、従来から知られている技術と同様のものを使用すればよいので、詳細な説明は省略する。学習部１０は、たとえば、誤差逆伝搬法などの手法によって学習データ２０からＤＣＮＮの学習パラメタを学習する。
第１のメモリ５に格納された識別部１１は、認識フェーズで使用されるものである。識別部１１は、学習済のＤＣＮＮに入力された未知の画像データ（未知画像）に対し、各畳み込み層（図２を用いて後述する）で学習済みの学習パラメタを用いて当該未知の画像データを順次処理し、当該未知のデータに対する認識の結果を出力する。
第１のメモリ５内に示されている学習部１０と識別部１１は、プログラムとして第１のメモリ５に記憶され、ＣＰＵ２により実行される。
【００２０】
第２のメモリ６は、データおよび情報を格納するメモリである。本実施形態では、第２のメモリ６には、学習データ２０が事前に格納されている。学習データ２０には、画像データと、それに対する正解データ（真値）との組が所定数格納されているとする。具体的には、画像データと正解データは、画像のファイル名と認識タスクの真値とを対応させて羅列した表のようなフォーマットで、テキストファイルで表せばよい（格納すればよい）。画像のファイル名が指し示す画像データ自体も第２のメモリ６に格納されているとする。真値の表現は、クラス判定の認識タスクであればクラスのＩＤを数字で記載すればよく、スコアなどの実数値を推定する認識タスクであればその実数値をそのまま記載すればよい。
第２のメモリ６には、多層の畳み込みＮＮであるＤＣＮＮの情報（ＤＣＮＮ情報）２１も格納されている。ＤＣＮＮ情報２１は、ＮＮのネットワーク構造や、学習済みもしくは学習中の学習パラメタなどを格納したものである。ここで学習パラメタとは、ＮＮが学習するパラメタのことで、ネットワーク間の結合重みやバイアス値などを指している。
なお、第１のメモリ５と第２のメモリは、便宜上区別して説明しているだけであり、一つのものであってもかまわない。
【００２１】
（ＤＣＮＮのネットワーク構造）
以下、本実施形態のＤＣＮＮについて説明する。図２は本実施形態で用いるＤＣＮＮ２００のネットワーク構造とデータの流れを示すブロック図である。
入力画像２０１は認識対象のデータであり、図２においてＩＭＧと記されている。入力画像２０１を受け入れる層がＤＣＮＮ２００の入力層である。ＤＣＮＮ２００を用いた処理は、学習部１０によって学習処理を行う学習フェーズと、識別部１１によって未知データに対する認識処理を行う認識フェーズに分かれる。学習フェーズにおいて、入力画像２０１は学習データ２０の中から指定される学習用画像であり、認識フェーズにおいて、入力画像２０１はたとえば入力装置３を介してユーザが指定（入力）した未知画像である。なお、図２において、任意の畳み込み層の間などにプーリング層を有する構成であってもよい。
【００２２】
本実施形態のＤＣＮＮ２００は、５つの畳み込み層と、３つの全結合層とを有する。５つの畳み込み層は、以下の記載において、第１の畳み込み層〜第５の畳み込み層と称する。また、３つの全結合層は、以下の記載において、第１の全結合層〜第３の全結合層と称する。なお、畳み込み層および全結合層の数は、それぞれ５および３に限定されない。また、畳み込み層におけるフィルタのサイズやフィルタの数、並びに、全結合層におけるユニットの数なども、以下に説明するものに限定されない。これらは学習データの数や認識タスクの複雑さなどに応じて決定されるハイパーパラメタである。
【００２３】
図２において、Ｃ１ＬＰ２１１は、第１の畳み込み層（以下、「Ｃ１」と記す。）で学習された学習パラメタ（畳み込みフィルタの値およびバイアス値）である。学習パラメタは図１中のＤＣＮＮ情報２１中に格納される。Ｃ１出力２０２は、入力画像（入力データ）２０１に対してＣ１ＬＰ２１１で畳み込み処理をしたのちに活性化関数をかけた（活性化関数処理をして得られた）出力結果である。Ｃ１出力２０２などの畳み込み層の出力は、２次元画像データに対して複数の畳み込みフィルタをかけた結果であるので、３次元的なデータ構造を有する。より詳しくは、Ｃ１出力２０２などの畳み込み層の出力は、縦方向、横方向およびフィルタ方向のデータからなる３次元データ構造を有する。Ｃ２出力２０３は、Ｃ１出力２０２に対して第２の畳み込み層（以下、「Ｃ２」と記す。）で学習された学習パラメタＣ２ＬＰ２１２で畳み込み処理および活性化関数処理をした出力結果である。Ｃ３出力２０４は、Ｃ２出力２０３に対して第３の畳み込み層（以下、「Ｃ３」と記す。）で学習された学習パラメタＣ３ＬＰ２１３で畳み込み処理および活性化関数処理をした出力結果である。Ｃ４出力２０５は、Ｃ３出力２０４に対して第４の畳み込み層（以下、「Ｃ４」と記す。）で学習された学習パラメタＣ４ＬＰ２１４で畳み込み処理および活性化関数処理をした出力結果である。Ｃ５出力２０６は、Ｃ４出力２０５に対して第５の畳み込み層（以下、「Ｃ５」と記す。）で学習された学習パラメタＣ５ＬＰ２１５で畳み込み処理および活性化関数処理をした出力結果である。
【００２４】
Ｃ５出力２０６が得られたならば、Ｃ５出力２０６は、出力結合部２０７の一部にコピーされる。Ｃ５出力２０６は、前述の通り３次元的な構造をしているが、これを一列のベクトルに変換して（ベクトル化して）、出力結合部２０７の一部にコピーする。出力結合部２０７のうち、Ｃ５出力２０６がコピーされた部分以外の部分に関しては後述する。
Ｆ１出力２０８は、第１の全結合層（以下、「Ｆ１」と記す。）の出力結果を表すブロックである。Ｆ２出力２０９は、第２の全結合層（以下、「Ｆ２」と記す。）の出力結果を表すブロックである。Ｆ３出力２１０は、第３の全結合層（以下、「Ｆ３」と記す。）の出力結果を表すブロックである。Ｆ３はＤＣＮＮ２００の出力層と呼ぶことができる。Ｆ１、Ｆ２およびＦ３は、それぞれ所定数のユニットをもち、各ユニット間の結合重みが学習される。
【００２５】
Ｆ１の全ユニットは、出力結合部２０７の全ユニットと結合している。出力結合部２０７のうち、Ｃ５出力２０６をコピーした以外の部分にも結合を有している。Ｆ１出力２０８は、出力結合部２０７に対してＦ１の学習パラメタＦ１ＬＰ２１６による線形和を算出し活性化関数をかけた結果である。Ｆ２出力２０９は、Ｆ１出力２０８に対してＦ２の学習パラメタＦ２ＬＰ２１７による線形和を算出し活性化関数をかけた結果である。Ｆ３出力２１０の算出の仕方は、Ｆ２出力２０９の算出の仕方とは少し異なる。まず、Ｆ２出力２０９に対してＦ３の学習パラメタＦ３ＬＰ２１８による線形和を算出する。本実施形態では認識タスクが多クラス問題であるとして、Ｆ３出力２１０の出力値には活性化関数をかける代わりにソフトマックス関数をかける。認識タスクがＮクラス問題であればＦ３層出力２１０の出力値はＮ値のベクトルであり、Ｎ値ベクトルの各次元は入力画像２０１が各クラスである確率を表す。すなわち、Ｆ３層出力２１０はＤＣＮＮ２００による入力画像２０１の識別結果を表す。
【００２６】
本実施形態のＤＣＮＮ２００は、上記した構造に加え、２つのバイパス結合部２２３および２２４を有する。バイパス結合部（２２３、２２４）とは、畳み込み層Ｃ１〜Ｃ４の出力２０２〜２０５のうち１つ以上について、次層以降の畳み込み層を介さずに（バイパスさせて）後段層に結合させる結合部である。本実施形態では、バイパス結合２２３および２２４をそれぞれ有する畳み込み層Ｃ１およびＣ３から、全結合層にバイパス結合する例を説明する。図２中、Ｃ１出力２０２からＢ１出力２１９を経由して出力結合部２０７に至る経路が、Ｃ１に対するバイパス結合部２２３である。図中、バイパス結合部２２３は破線で囲った部分である。また、Ｃ３出力２０４からＢ３出力２２０を経由して出力結合部２０７に至る経路がＣ３に対するバイパス結合部２２４である。図中、バイパス結合部２２４も破線で囲ってある。
【００２７】
Ｃ１出力２０２はバイパス結合部２２３により出力結合部２０７に供給される。また、Ｃ３出力２０３はバイパス結合部２２４により出力結合部２０７に供給される。
バイパス結合部は１つ以上の畳み込み層（特徴抽出層）を有する。バイパス結合部における畳み込み層を、Ｃ１〜Ｃ５と区別して、「バイパス部畳み込み層」と呼ぶことにする。バイパス部畳み込み層は、各バイパス結合部に複数あってもよい。バイパス部畳み込み層のフィルタのサイズや数について、特別な条件はない。以下の記載においては、説明を簡単にするために、バイパス部畳み込み層の数は１つのバイパス結合部に１つとして説明する。なお、本実施形態では、Ｃ１に第１のバイパス結合部２２３を設け、Ｃ３に第２のバイパス結合部２２４を設ける例を説明するが、バイパス結合部をどの畳み込み層に設けるかは、適宜変更され得る。たとえば、バイパス結合部をどの畳み込み層に設けるかは、情報処理装置１に期待される効果、ＤＣＮＮ２００に与えられる条件、認識タスク等によって変更され得る。
本実施形態では、バイパス結合部にバイパス部畳み込み層を設けることにより、階層ごとにさらなる特徴抽出層（畳み込み層）を学習することができる。たとえば、バイパス結合部にバイパス部畳み込み層を設けることにより、審美性判定に有効（有用）な特徴を抽象度ごとに抽出することができる。
【００２８】
第１のバイパス結合部２２３のＢ１ＬＰ２２１は、Ｃ１に対するバイパス部畳み込み層（以下、「Ｂ１」と称する。）の学習パラメタである。Ｂ１出力２１９はＣ１出力２０２に対してＢ１ＬＰ２２１で畳み込み処理をした出力結果を表すブロックである。Ｂ１出力２１９は、Ｃ５出力２０６に対する処理と同様に、１列のベクトルに変換され、出力結合部２０７のＣ５出力に連続する位置にコピーされる。
第２のバイパス結合部２２４のＢ３ＬＰ２２２は、Ｃ３に対するバイパス部畳み込み層（以下、「Ｂ３」と称する。）の学習パラメタである。Ｂ３出力２２０はＣ３出力２０４に対してＢ３ＬＰ２２２で畳み込み処理をした出力結果を表すブロックである。Ｂ３出力２２０は、Ｃ５出力２０６に対する処理と同様に、１列のベクトルに変換され、出力結合部２０７のＢ１出力に連続する位置にコピーされる。
【００２９】
（ＤＣＮＮの学習と認識）
以上説明したような構成のＤＣＮＮ２００（ＤＣＮＮ情報２１）に対し、学習フェーズにおいては図１の学習部１０を用いて学習データ２０によるＤＣＮＮ２００（ＤＣＮＮ情報２１）の学習が行われる。学習部１０は、学習データ２０中の画像データを入力した際のＦ３出力２１０と、学習データ２０中の真値２２５との誤差によってＤＣＮＮの学習パラメタを更新する。学習パラメタの更新は、誤差逆伝搬法などを用いて行う。誤差逆伝搬法では、図２中の学習パラメタＣ１ＬＰ２１１〜Ｃ５ＬＰ２１５、Ｆ１ＬＰ２１６〜Ｆ３ＬＰ２１８、Ｂ１ＬＰ２２１およびＢ３ＬＰ２２２が、図中矢印を逆にたどって更新される。学習部１０は、学習データ２０に格納される多数の学習サンプルに対して繰り返し学習処理を行う。学習パラメタの値が十分に収束するか十分な回数学習処理を繰り返したところで学習を完了する。
【００３０】
認識フェーズにおいては、図１の識別部１１を用いて、未知画像（入力画像２０１）に対する識別を行う。識別部１１は、たとえばユーザが入力装置３を用いて指定（入力）した未知画像を入力画像（入力データ）２０１として、学習済みのＤＣＮＮ２００（ＤＣＮＮ情報２１）を用いてＦ３出力２１０を算出し、当該Ｆ３出力２１０を識別結果２２６とする。識別部１１は、ＣＰＵ２の制御の下、識別結果２２６をたとえば出力装置４に送り、出力装置４において表示させる。
なお、図１の情報処理装置１は学習部１０を有しているが、本発明はこの構成に限定されない。つまり、情報処理装置１は学習部（学習手段）を有さずに、事前に学習済みであるＤＣＮＮの学習パラメタを用いて、認識フェーズのみを実施する構成でもよい。また、図１の情報処理装置１は識別部１１を有しているが、本発明はこの構成に限定されない。つまり、識別部（識別手段）を有さずに、学習フェーズのみを実施する構成でもよい。
【００３１】
図２の構成ではバイパス結合部を２つ設けた（バイパス結合部２２３および２２４）が、バイパス結合部の数は１つでもよいし３つ以上でもよい。また、図２の構成では、ＤＣＮＮ２００は３つの全結合層を有しているが、全結合層の数は３に限定されない。たとえば、全結合層の数は１でもよい。
上記の説明においてＣ１−Ｃ５が中間層であるとしたが、入力層と出力層の間にある層の全てを中間層と称することもできる。その場合、中間層のなかで特徴抽出層として機能する中間層にバイパス結合部を設けることになる。
情報処理装置１ａは、入力装置３と出力装置４を含むとしたが、入力装置３と出力装置４は情報処理装置の外部装置として設けてもよい。
【００３２】
（実施形態１の効果）
以上のような構成をとることにより、本実施形態では、識別層（出力結合部２０７、全結合層Ｆ１〜Ｆ３）には、Ｃ５出力２０６だけでなく、Ｃ１出力２０２とＣ３出力２０４も入力される。上記したように、Ｃ１などの低層部では線や色などの低次特徴が抽出されることが期待でき、Ｃ５などの高層部では物体を表す高次特徴が抽出されることが期待できる。よって、審美性判定タスクのような、低次特徴と高次特徴の両方の特徴に識別結果が影響される認識タスクにおいて、本実施形態の情報処理装置１は好適な識別処理を行うことができる。本実施形態では、Ｃ１〜Ｃ４で抽出される特徴を選択的に識別層（出力結合部２０７、全結合層Ｆ１〜Ｆ３）にバイパス結合させることにより、識別層において複数の種類の特徴を同時に扱えるようになる。
また、本実施形態の構成によれば、Ｃ１から後段層（識別層）にバイパスした特徴は他の畳み込み層（Ｃ２〜Ｃ４）の特徴と混ぜて特徴抽出されないので、Ｃ１で抽出された特徴が識別層に直接的に届く。
【００３３】
さらに、各バイパス結合部２２３、２２４には各畳み込み層Ｃ１、Ｃ３ごとにバイパス部畳み込み層Ｂ１、Ｂ３を設けているので、バイパス元のＣ１、Ｃ３から識別層に渡すことが好ましいと考えられる特徴を学習することができる。
なお、図２においてＣ１からＣ５に直線的に至るＤＣＮＮ２００のデータ経路（バイパス結合部を経由しない経路）は、物体など高次特徴を抽出する能力を期待するものであるから、物体種別認識タスクの学習データなどを用いて事前学習しておいてもよい。事前学習とは、本来の目的とする認識タスクとは異なるデータを使うなどしてＤＣＮＮの学習パラメタの初期値を決める処理を指す。物体種別認識タスクでＣ１からＣ５を事前学習しておけば、Ｃ５出力２０６からは物体らしい特徴が得られることが期待できる。審美性判定タスクを実行する場合には、事前学習したＤＣＮＮの学習パラメタを初期値として用い、その後、審美性判定タスクの学習データに切り替えて学習を継続すればよい。
【００３４】
実施形態２
（実施形態２の概要）
実施形態１において、バイパス結合部を設ける位置はＣ１−Ｃ４のいずれでもよいとしていた。本実施形態では、どの位置に（どの畳み込み層に）バイパス結合部を設けるかを自動決定する方法について説明する。以下の記載において、実施形態１と同様な部分には同じ符号を付けて、詳細な説明は省略する。
ＮＮの中間層が多数ある場合には、多くの中間層（畳み込み層）にバイパス結合部を設けるのは処理時間的にもメモリ使用量的にも負荷が大きい。バイパス結合部を過剰に設けると、学習パラメタの数が過大になるため、学習時に過学習しやすくなるおそれがある。また、中間層が多くなるほど、それぞれの中間層の出力には大きな差異がなくなり、全ての情報を後段層（識別層）にバイパスする効果も減る可能性がある。
【００３５】
そこで、最適な畳み込み層に対してのみバイパス結合部を設けることが望ましいということになる。しかし、バイパス結合位置の全ての組み合わせに対して実際に学習および評価を行って最適なバイパス位置（どの畳み込み層にバイパス結合部を設けるか）を決定するのは現実的ではない。バイパス結合位置の組み合わせは多数存在し、ひとつのネットワーク構成のＮＮを学習するのに多大な時間がかかるからである。実施形態２では、あらかじめ決めておいたバイパス結合部の数などの条件を満たすという制限下で、実際にＮＮの学習および評価処理を行うことなく、バイパス結合を設ける好適な位置を決定する方法を説明する。
【００３６】
（情報処理装置の構成）
図３は本発明の実施形態２の情報処理装置１ａの構成図である。情報処理装置１ａは、ＣＰＵ２と入力装置３と出力装置４と第１のメモリ５と第２のメモリ６とを有している。情報処理装置１ａの各部はバス７により相互接続されている。図３に示した構成を図１に示した構成と比較すると、第１のメモリ５および第２のメモリ６に格納しているプログラムやデータが異なっている。図３の構成では、第１のメモリ５に、バイパス結合部位置決定部１２と、中間層類似度算出部１３とが格納されている。第２のメモリ６にはバイパス結合のないＤＣＮＮ（の情報）が、バイパスなしＤＣＮＮ情報２２として格納されているとする。
【００３７】
（情報処理装置１ａの処理の流れ）
次に、実施形態２の情報処理装置１ａの処理の流れを説明する。図４は情報処理装置１ａのバイパス結合部位置決定部１２の処理の流れを説明するフローチャートである。
図４のＳ４１では、学習データ２０を用いて、バイパスなしＤＣＮＮ（バイパスなしＤＣＮＮ情報２２）を学習部１０によって学習する。なお、既に学習済みのバイパスなしＤＣＮＮが存在すればその学習パラメタをコピーしてもよい。また、本来の学習データ２０でなく、別の認識タスク用の学習データを用いてＳ４１の学習を行ってもよい。たとえば、物体種別認識タスクのデータを使ってＳ４１の学習を行ってもよい。
次にＳ４２で、バイパス結合部を作る数をユーザが設定する。設定した数を変数ｐに格納する。
次にＳ４３で、ｐがバイパスなしＤＣＮＮの畳み込み層の数以上かどうか判定する。ｐがバイパスなしＤＣＮＮ２２の畳み込み層の数以上の場合（Ｓ４３：Ｙｅｓ）、Ｓ４７に進み、すべての畳み込み層にバイパス結合部を設けるように選択する。つまり、全中間層を選択する。Ｓ４３で、ｐがバイパスなしＤＣＮＮの畳み込み層の数より少ない場合は、Ｓ４４に進む。
【００３８】
Ｓ４４で、バイパスなしＤＣＮＮ（バイパスなしＤＣＮＮ情報２２）の畳み込み層をｐ個のクラスタにクラスタリングする。クラスタリングを行うには、たとえばｋ−ｍｅａｎｓ（ｋ平均法）のようなクラスタリングアルゴリズムを使用する。Ｓ４４ではｋ−ｍｅａｎｓを使用したことを示すために、「ｋクラスタリング」と記してある。この場合、あるクラスタの要素が１要素であってもかまわない。クラスタリングを行うためには畳み込み層の間の類似度すなわち距離を定義（算出）する必要がある。類似度が所定値以上であれば１つのクラスタにまとめる、というクラスタリングを行う。本実施形態では、第１のメモリ５中の中間層類似度算出部１３によって、畳み込み層の間の距離を算出する。中間層類似度算出部１３は、たとえば、ｉ番目の畳み込み層とｊ番目の畳み込み層との間の距離ｄijを、以下の式１のように定義して算出すればよい。
【数１】
2018026040.tif 000003
【００３９】
ここで、ｋはｉ番目の畳み込み層の畳み込みフィルタの数、ｌはｊ番目の畳み込み層の畳み込みフィルタの数、Ｃikはｉ番目の畳み込み層におけるｋ番目の畳み込みフィルタ、Ｃjlはｊ番目の畳み込み層におけるｌ番目の畳み込みフィルタである。ｃｏｓθ（Ｃik,Ｃjl）は、畳み込みフィルタＣikとＣjlをベクトルとしたときのベクトルがなす角の余弦である。ｃｏｓθ（Ｃik,Ｃjl）は、ベクトルが一致するときに０となり、直交するときに１となる。
【００４０】
なお、式１のｃｏｓθ（Ｃik,Ｃjl）の代わりに、畳み込みフィルタＣik、Ｃjlのユークリッド距離Ｌ２（Ｃik,Ｃjl）を使用して、距離ｄijを以下の式２のように定義してもよい。
【数２】
2018026040.tif 000004
【００４１】
また、上記では畳み込みフィルタの値ＣikおよびＣjlから距離ｄijを計算したが、学習データ２０中の画像データに対して畳み込みフィルタＣik,Ｃjlをかけた結果を用いて、以下の式３のように距離ｄijを計算してもよい。
【数３】
2018026040.tif 000005
ここで、ｉｍｇは画像であり、Ｃik(img)は画像ｉｍｇに畳み込みフィルタＣikをかけた結果を示す。学習データ２０から任意の複数の画像データを選んで式３による類似度を算出し、画像数で平均してもよい。
【００４２】
Ｓ４５では、Ｓ４４で作られたクラスタからそれぞれ１つの畳み込み層（中間層）を選択する。たとえばクラスタ中心に最も近い畳み込み層を１つ選択する。
Ｓ４６では、Ｓ４５またはＳ４７で選択された畳み込み層と全結合層Ｆ１にバイパス結合部を設けたＤＣＮＮ構造を作る。つまり、選択した中間層にバイパス結合部を設定する。その結果得られたＤＣＮＮ構造を、第２のメモリ６中のＤＣＮＮ情報２１に格納する。
以上でバイパス結合部位置決定部１２の処理の説明を終える。これ以降は実施形態１と同様に学習、識別の処理を行えばよい。本実施形態で説明した方法によれば、バイパス構造の全組み合わせを実際に学習・評価して試すのに比べて非常に速い処理時間でバイパス結合部の位置を決定することができる。
【００４３】
（変形例）
Ｓ４４〜Ｓ４５でｐ個の中間層を選択したが、ｐ個の中間層の選択方法は上記したものに限定されない。たとえば、最下位の中間層と最上位から１つ前の中間層とは、必ず選択することにする（つまり、最下位の中間層と、最上位から１つ前の中間層には、必ずバイパス結合部を設けるとする）。そして、他の中間層（全中間層数−２個）についてクラスタリングを行い、ｐ−２個のクラスタを作り、各クラスタから中間層（ｐ−２個）を選択してもよい。このようにすると、合計でｐ個の中間層が選択されることになる。最上位の中間層を除いて考えると、抽出される特徴の性格（内容、抽象度）の差異は最下位中間層と最上位から１つ前の中間層との間で最も大きくなると考えられる。よって、最下位中間層と最上位から１つ前の中間層とに必ずバイパス結合部を設けることにより、好適な識別処理を行うことができると考えられる。
【００４４】
また、次のような方法でｐ個の中間層を選択することもできる。全ての中間層の数をＭ個とした場合、Ｍノードの全結合グラフを作る。そして、中間層類似度算出部１３によって全ノードの相互間の距離を算出し、ノード間のエッジに距離を与える。最後に、ノード間距離の総和が最も大きくなるｐ個のノードを選択する。より具体的には、たとえば、まずノード間距離最大の２ノードを選び、これに対してノード間距離総和最大となるノードを一つずつ加えていき、最終的にｐノードになるまで選んでｐ個の中間層の選択を完了とする。
さらに、次のような方法でｐ個の中間層を選択することもできる。組み合わせ数ＭＣｐの総当たり探索処理をすれば、ｐ個の最適解（ｐ個の中間層）を探索することができる。総当たり探索は計算負荷が大きいが、組み合わせごとに行う処理は計算済みであるノード間距離の総和を算出する処理だけであるので計算は高速で行うことができる。また、中間層数Ｍやバイパス結合設定数ｐも巨大な数値ではないので、現実的な時間で計算を終了することができる。
【００４５】
いずれにせよ、バイパス結合位置の全組み合わせに対して実際に学習・評価して決定する方法に比べれば、本実施形態で説明したような畳み込みフィルタの類似度によって性格の異なる中間層を選択する方法の方が高速に中間層を決定（選択）することができる。
本実施形態の利用の態様としては、次のようなものがある。まず本実施形態で説明した方法によってＤＣＮＮ構造の候補を複数（ただし多すぎない数だけ）作成する。そして、当該複数のＤＣＮＮ構造の候補について、実際に学習・評価処理を行って、１つの好適なＤＣＮＮ構造を決定することもできる。つまり、中間層の数が所定数より多い場合、所定の基準に基づいてｐに近い数の中間層を選び、当該選ばれた中間層から、バイパス結合部を設けるべき中間層を決定する。
【００４６】
バイパス結合部位置決定部１２のバイパス結合部位置の決定方法は、上記した方法に限定されない。たとえば、はじめにｐ+個（ｐ+はｐより多くＭ以下の数）のバイパス結合部を有するＤＣＮＮを学習する。バイパス結合部の位置は、たとえばランダムに決定するか等間隔で選ぶ。次に学習済みＤＣＮＮのｐ+個のバイパス結合部からｐ個のバイパス結合部を選び、残りのバイパス結合部は識別フェーズにおいて演算をしないように設定する。バイパス結合部が識別フェーズにおいて演算をしないように設定するには、たとえば、一時的にそれらの結合部の結合重みを全て０にすればよい。ｐ個のバイパス結合部を選んだならば、当該バイパス結合部をもつＤＣＮＮに対して所定のテストデータで性能評価を行う。ｐ＋個のバイパス結合部からｐ個を選ぶ全ての組み合わせで、上記の性能評価を行う。そして、最も性能が良いＤＣＮＮの構成、もしくは所定の性能を満たすＤＣＮＮの構成を採用し、選んだｐ個のバイパス結合部以外のバイパス結合部を削除したＤＣＮＮの構成を最終的なＤＣＮＮの構成とする。
Ｓ４２でのバイパス結合部の数ｐの設定の仕方も、上記したものに限定されない。図４の説明ではユーザがｐを設定するとしたが、適当な範囲から最適なｐを探索するようにしてもよい。この場合は異なるｐの値ごとに本実施形態のような方法でＤＣＮＮの構造を決定し、異なるｐのＤＣＮＮに対して実際に学習・評価処理を行って好適なＤＣＮＮの構造を決定すればよい。
【００４７】
（実施形態２の効果）
実施形態１と同じように、実施形態２においても、多層ＮＮの各層で抽出される多様な抽象度の特徴を識別層に送ることで従来技術の課題（多層ＮＮが抽象度の異なる特徴を利用できないという課題）を解決している。本実施形態２で説明したような構成を採用することで、なるべく性格の異なる中間層に対してバイパス結合部を設けるように、バイパス結合部の設定位置を自動的に決定することができる。性格の異なる中間層が選ばれることにより、良好な識別性能が期待できる。バイパス結合部の位置を自動的に決める（つまりバイパス結合部の位置をユーザが決める必要がない）ため、ユーザにとって煩雑な作業は不要である。この利点は、特に、ニューラルネットワークの中間層数が多くなるほど顕著になる。本実施形態によれば、バイパス構造の全組み合わせを実際に学習・評価して試してみるのに比べて、はるかに短時間で、好適なバイパス結合部位置を決定することができる。
【００４８】
実施形態３
（実施形態３の概要）
実施形態３では、実施形態２において説明したバイパス結合部位置決定部１２の変形例について説明する。本実施形態のＤＣＮＮ１ｂの構成図を図５に示す。以下の記載において、実施形態２と同様な部分には同じ符号を付けて、詳細な説明は省略する。実施形態２と比較した場合の相違点は、実施形態３では、第１のメモリ５が、類似中間層統合設定部１４を有していることである。
【００４９】
（情報処理装置の処理の流れ）
実施形態３のバイパス結合部位置決定部１２の処理は、図４に示した処理とほぼ同じであるが、Ｓ４５の処理内容が実施形態２で説明した処理内容と異なる。具体的には、実施形態３においては、類似中間層統合設定部１４により、Ｓ４４でクラスタリングされた各クラスタについて以下の処理を行う。類似中間層統合設定部１４は、類似度が所定値以上であると判定された中間層の出力を統合する。
図６は、類似中間層統合設定部１４の処理を説明するフローチャートである。また、図７は、本実施形態で決定されるＤＣＮＮ２００ａの構造を説明する図である。図７において、図２と共通する部分には同じ参照符号・番号を用いている。本実施形態では、２つの畳み込み層Ｃ１とＣ２が互いに類似する中間層であるとし、２つの畳み込み層Ｃ３とＣ４が互いに類似する中間層であるとする。図７では、Ｃ１とＣ２がＳ４４において類似中間層としてクラスタリングされたとする。クラスタリングされたことは、図７中、破線で囲って示している。また、Ｃ３とＣ４も類似中間層としてクラスタリングされているとする。Ｃ３とＣ４も破線で囲まれている。
【００５０】
はじめに、Ｓ５１で、クラスタ内の２つの中間層の出力を結合する出力結合部を設定する。図７の例では、Ｃ１とＣ２が同じクラスタに入っているので、Ｃ１出力２０２とＣ２出力２０３を結合するためのＢ１−Ｂ２出力結合部７０１を設定する。また、Ｃ３とＣ４が同じクラスタに入っているので、Ｃ３出力２０４とＣ４出力２０５を結合するためのＢ３−Ｂ４出力結合部７０４を設定する。ここで、畳み込み層出力の結合を、以下のように行う。畳み込み層出力はそれぞれ３次元（縦方向、横方向およびフィルタ方向）の構造をしている。結合する畳み込み層出力の縦サイズと横サイズが同じであれば、そのままフィルタ方向に重ねて結合する。結合する畳み込み層出力の縦サイズと横サイズが異なるときには、たとえば線形補完や間引きをするなどの方法で縦サイズと横サイズを合わせたのちに、フィルタ方向に重ねて結合する。
Ｓ５２では、Ｓ５１で設けた出力結合部７０１および７０４を、それぞれバイパス結合部の設定位置として選択する。
このようにして、図４におけるＳ４５の処理の代わりに、類似中間層統合設定部１４が上記した処理を行い、バイパス結合部の設定位置を決定する。
【００５１】
図６のＳ５２の後、図４のＳ４６に進む。Ｓ４６では、「選択した中間層にバイパス結合部を設定する」となっているが、本実施形態では、Ｓ４６は「Ｓ５２で選択した出力結合部にバイパス結合部を設定する」となる。すなわち、図７において、Ｂ１−Ｂ２出力結合部７０１に対して特徴抽出の学習を行う学習パラメタＢ１−Ｂ２統合ＬＰ７０２を設け、Ｂ３−Ｂ４出力結合部７０４に対して特徴抽出の学習を行う学習パラメタＢ３−Ｂ４統合ＬＰ７０５を設ける。そして、Ｂ１−Ｂ２出力結合部７０１の出力に対して学習パラメタＢ１−Ｂ２統合ＬＰ７０２で畳み込み処理をして得た出力がＢ１−Ｂ２出力７０３となる。また、Ｂ３−Ｂ４出力結合部７０４の出力に対して学習パラメタＢ３−Ｂ４統合ＬＰ７０５で畳み込み処理をして得た出力がＢ３−Ｂ４出力７０６となる。Ｂ１−Ｂ２出力７０３およびＢ３−Ｂ４出力７０６は、ベクトル化されて出力結合部２０７に接続される。
本実施形態では、以上で説明した処理によって決定されたネットワーク構成のＤＣＮＮ２００ａ（ＤＣＮＮ情報２１）を用いて学習および識別処理を行う。
【００５２】
（実施形態３の効果）
実施形態２のバイパス結合部位置決定部１２では、各クラスタ内にある複数の中間層から１つの中間層を選んでいた（図４のＳ４５）。本実施形態の構成では各クラスタ内にある複数の中間層が抽出する特徴（たとえば、Ｃ１出力とＣ２出力）からさらに有効な特徴抽出するよう学習し（たとえば、Ｂ１−Ｂ２出力）、当該学習結果を全結合層に渡すことができる。類似していない中間層の出力を結合して特徴抽出しようとすると、性格の異なる特徴の全てが識別層（全結合層）に伝わらなくなる可能性があるが、実施形態３ではＳ４４において性格が類似しているとされている中間層だけをまとめている。
もちろん、実施形態２と同じように、実施形態３においても、多層ＮＮの各層で抽出される多様な抽象度の特徴を識別層に送ることで従来技術の課題（抽象度の異なる特徴を利用できないという課題）を解決している。本実施形態３で説明したような構成を採用することで、なるべく性格の異なる中間層に対してバイパス結合部を設けるように、バイパス結合部の設定位置を自動的に決定することができる。
【００５３】
実施形態４
（実施形態４の概要）
実施形態１では１つの認識タスクを学習・識別するＤＣＮＮを説明したが、本発明は、複数の認識タスクを学習・識別するＤＣＮＮにも適用することができる。複数の認識タスクを学習・識別するＤＣＮＮを実施形態４として以下に説明する。本実施形態のＤＣＮＮは、複数の異なる認識タスクを一つのネットワークで同時に（並行して）学習・識別するマルチタスク識別器（マルチタスクニューラルネットワーク）であると言える。
図８は、２つの異なる認識タスクを同時に（並列的に）学習・識別するマルチタスク畳み込みＮＮ２００ｂの構造とデータの流れを説明するブロック図である。第１実施形態（図２）との相違点は、実施形態４では、図２で説明した認識タスクを第１の認識タスクとして、図２のＤＣＮＮの構造に第２の認識タスクの識別部を加えていることである。以下、実施形態１との相違点を説明し、実施形態１と同じ構成については説明を省略する。図８において、図２と共通する部分には同じ参照番号・符号を用いてある。
【００５４】
本実施形態では、第１の認識タスクは、画像の審美性を判定する審美性判定タスクであるとし、第２の認識タスクは、画像中の物体の種別を認識する物体種別認識タスクであるとする。審美性判定タスクは、抽象度の低い低次特徴と抽象度の高い高次特徴の両方を使って識別する認識タスクである。物体種別認識タスクは、高次特徴を使って識別する認識タスクである。
実施形態４ではＣ１からＣ５（中間層）が２つの認識タスク（第１の認識タスクと第２の認識タスク）に共通のものとして説明する。なお、Ｃ１からＣ５が２つの認識タスクに共通のものでなくてもよい。つまり、どの中間層を共通とするかは認識タスクの内容等により適宜変更してよい。たとえば畳み込み層部分やその一部が認識タスクごとに独立であって、認識タスクごとの畳み込み層の出力を共通の全結合層に結合するような構成としてもよい。
【００５５】
（ＤＣＮＮの構造）
図８においては、入力画像２０１がＣ５出力２０６となり、ベクトル化されて、出力結合部２０７に格納される処理は実施形態１と同じであるので、当該処理の説明は省略する。本実施形態では、認識フェーズにおいて、Ｃ５出力２０６は、ベクトル化されて出力結合部２０７に格納されると共に、Ｃ５出力ベクトル８０１にも格納される。以下の記載では、Ｃ５出力２０６がＣ５出力ベクトル８０１に格納された後の処理を説明する。
Ｃ５出力２０６がＣ５出力ベクトル８０１に格納されると、Ｃ５出力ベクトル８０１に対して第２の認識タスク用の第１の全結合層（Ｔ２Ｆ１）の学習パラメタＴ２Ｆ１ＬＰ８０５を用いて線形和演算を行い活性化関数を適用する（活性化関数をかける）。そして、得られた結果がＴ２Ｆ１出力８０２に出力される。続いて、Ｆ２Ｆ１出力８０２に対して第２の認識タスク用の第２の全結合層（Ｔ２Ｆ２）の学習パラメタＴ２Ｆ２ＬＰ８０６を用いて線形和演算を行い、活性化関数を適用する。そして、得られた結果がＴ２Ｆ２出力８０３に出力される。続いて、Ｆ２Ｆ２出力８０３に対して第２の認識タスク用の第３の全結合層（Ｔ２Ｆ３）の学習パラメタＴ２Ｆ３ＬＰ８０７を用いて線形和演算が行われ、ソフトマックス関数を適用する。得られた結果がＴ２Ｆ３出力８０４に出力される。
【００５６】
学習フェーズにおいては、Ｔ２Ｆ３出力８０４と第２の認識タスクの真値であるタスク２真値８０８とを比較し、その誤差に応じて学習パラメタを更新する。すなわち、タスク２真値８０８から入力画像２０１に至るまでの経路を逆にたどりながら学習パラメタの更新がなされる。図８に示したＤＣＮＮ２００ｂの構造では、Ｔ２Ｆ３ＬＰ８０７からＴ２Ｆ１ＬＰ８０５までの学習パラメタは、第２の認識タスクに対する誤差によってのみ更新がなされる。また、Ｃ５ＬＰ２１５からＣ１ＬＰ２１１までの学習パラメタは、第１の認識タスクと第２の認識タスクの両方の誤差によって更新される。
Ｆ１ＬＰ２１６からＦ３ＬＰ２１８までの全結合層の学習パラメタと、Ｂ１ＬＰ２２１およびＢ３ＬＰ２２２のバイパス結合部の学習パラメタとは、第１の認識タスクに対する誤差によってのみ更新がなされる。これは、バイパス結合部２２３および２２４は低次特徴と高次特徴を用いる第１の認識タスクのためのものであり、この部分の学習においては第２の認識タスクの影響を受けない構造となっているからである。
【００５７】
（実施形態４の効果）
ＤＣＮＮ２００ｂが上記したような構成をとることにより、以下のような効果を得ることができる。
第１の認識タスクは、抽象度の低い低次特徴と抽象度の高い高次特徴の両方を使って識別する審美性判定タスクであるが、Ｃ１からＣ５に直線的に至るデータ経路は、抽象度の低い低次特徴を階層的に統合して抽象度の高い高次特徴を抽出する経路である。
第２の認識タスクは、物体種別認識タスクであり、本実施形態で説明したＤＣＮＮ構造で学習すれば、Ｃ１からＣ５は物体種別を識別するために好適な高次特徴が抽出されるように学習される。このことによって、第１の認識タスクに対しても必要であるような、物体に対して反応する高次特徴を抽出する能力が補強される。第１の認識タスクである審美性判定用の学習データには、明示的に物体を検出するための教師情報は入っていないため、第２の認識タスクによってそれを補うことができる。よって、本実施形態の構成をとることにより、第１の認識タスクの性能が上がることが期待できる。
【００５８】
第１の認識タスクではバイパス結合部２２３および２２４によって低次特徴が識別部にバイパスされて識別されるという効果を奏する。この効果は実施形態１で説明した効果と同様である。バイパス結合部２２３および２２４では、第２の認識タスクに対しても有効である（使用できる）ように学習された特徴（出力２０２〜２０５）の中から、第１の認識タスクにおいて有効な特徴をさらに抽出するように学習されることになる。
なお、上記の説明において、第１の認識タスクは審美性判定タスクであり、第２の認識タスクは物体種別認識タスクであるとしたが、本実施形態で用いる複数の認識タスクは審美性判定タスクや物体種別認識タスクに限定されない。
【００５９】
実施形態５
（実施形態５の概要）
実施形態１では、バイパス結合部を有する中間層（Ｃ１およびＣ３）の学習パラメタを更新するための学習時設定は、バイパス結合部を有さない中間層の学習パラメタを更新するための学習時設定と同じであった。本発明は、このような実施形態に限定されない。実施形態５では、バイパス結合部を有する中間層の学習パラメタを更新するための学習時設定が、バイパス結合部を有さない中間層の学習パラメタを更新するための学習時設定と異なるようにした情報処理装置を説明する。学習時設定とは、たとえば学習率などの、学習パラメタ更新アルゴリズムの動作を設定するための各種設定パラメタである。
【００６０】
バイパス結合部を有する畳み込み層で抽出された特徴は、当該畳み込み層以降の階層の畳み込み層を介さずにバイパスされて識別層に送られると共に、次層の畳み込み層にも送られて、より高次の特徴を抽出するためにも使われる。下層部（下位層）で抽出される抽象度の低い低次特徴は、高層部（上位層）で抽出される抽象度の高い高次特徴を抽出するために必要な特徴である。学習時に（学習フェーズで）バイパス結合部からの誤差逆伝搬の影響を強く受けると、高次特徴を抽出するために必要な低次特徴を学習する能力に悪影響が出ることが考えられる。これは、バイパス結合部は次層の畳み込み層（および当該畳み込み層に続く上位層）と結合されていないので、高次特徴を構成するために必要な低次特徴を学習するように誘導する教師情報が当該バイパス結合部に伝わってこないからである。以上のことを考慮し、本実施形態では、バイパス結合部を経由した学習パラメタ更新と、バイパス結合部を経由しない学習パラメタ更新とを区別し、それぞれ異なる学習時設定（たとえば異なる学習率）を使用する。
【００６１】
（情報処理装置の構成）
図９は実施形態５の情報処理装置１ｃの構成図である。図９に示すように、第１実施形態（図１）との相違点は、実施形態５の情報処理装置１ｃは、第１のメモリ５に経路別学習時設定部１５を有することである。また、第１実施形態との他の相違点は、第２のメモリ６にバイパス経由学習時設定情報２３、非バイパス経由学習時設定情報２４および学習時設定情報２５を有することである。経路別学習時設定部１５は、バイパス結合部を有する中間層（畳み込み層）の学習パラメタを更新するための学習時設定を、バイパス結合部を有さない中間層の学習パラメタを更新するための学習時設定と異なる設定にする。
【００６２】
以下、実施形態１との相違点を説明し、実施形態１と同じ構成については説明を省略する。図９において、図１と共通する部分には同じ参照番号・符号を用いてある。ＤＣＮＮは図２に示したものを使用する。
まず、実施形態１との相違点である経路別学習時設定部１５について説明する。
図２において、Ｃ１における学習パラメタＣ１ＬＰ２１１を誤差逆伝搬法によって更新する場合について考える。なお、これは一例であり、以下の説明はバイパス結合部を有する他の中間層に対しても同様に用いることができる。
【００６３】
Ｃ１ＬＰ２１１は、Ｃ２から伝搬してくる誤差によっても更新され、また、バイパス部（Ｂ１）から伝搬してくる誤差によっても更新される。バイパス部から伝搬してくる誤差によってＣ１ＬＰ２１１を更新する際の学習時設定を、バイパス経由学習時設定と呼ぶことにする。また、Ｃ２から伝搬してくる誤差によってＣ１ＬＰ２１１を更新する際の学習時設定を、非バイパス経由学習時設定と呼ぶことにする。バイパス経由学習時設定および非バイパス経由学習時設定は事前にユーザによって設定され、それぞれ、第２のメモリ６のバイパス経由学習時設定情報２３および非バイパス経由学習時設定情報２４に格納されているとする。なお、図９ではバイパス経由学習時設定情報２３および非バイパス経由学習時設定情報２４はそれぞれ１つのブロックで示しているが、学習時設定情報２３および２４には、バイパス結合を有する中間層ごとの設定が格納されている。また、バイパス結合を持たない中間層については、従来通りの学習時設定情報２５が第２のメモリ６に格納されているものとする。学習設定情報２５には、各層ごとの学習時設定が格納されているものとする。本実施形態の経路別学習時設定部１５は、バイパス結合部を有する中間層の更新においてはバイパス経由であるかどうかで学習時設定を切り替えて設定する。
【００６４】
（経路別学習時設定部の処理の流れ）
図１０は経路別学習時設定部１５の処理の流れを説明するためのフローチャートである。経路別学習時設定部１５が行う処理は、学習部１０において学習パラメタを更新する際に行われる処理である。よって、図１０が示すフローチャートは、学習部１０の処理の一部を説明するものである。学習部１０は多数の学習データに対して繰り返し学習を行うものであるが、図１０は、１つの学習データの分に対する更新処理の概略を示している。
はじめに、Ｓ６１において、学習データ２０から学習画像を一つ取り出して学習中のＤＣＮＮに与え、ＤＣＮＮの出力を算出する（すなわち識別結果を算出する）。
そして、Ｓ６２以降のステップにおいて、各中間層に対して順次学習パラメタの更新を行う。
【００６５】
Ｓ６２では、これから更新する層を設定する。この設定は、出力層から入力層に向かって順次進んでいくものである。後述のように更新の計算は出力層から逆伝搬する経路ごとに行われるので、バイパス結合部を有する層に対しては、バイパス数の回数だけ更新対象として設定されることになる。
Ｓ６３では、これから更新する中間層がバイパス結合部を有するかどうかを判定する。中間層がバイパス結合部を有さない場合（Ｓ６３：Ｎｏ）は、従来のＤＣＮＮの学習処理と同様であり、従来通りの（通常の）学習時設定情報２５を学習時設定としてセットし、Ｓ６４に進む。中間層がバイパス結合部を有する場合（Ｓ６３：Ｙｅｓ）、Ｓ６５に進む。
Ｓ６５ではこれから算出するロス勾配（ロス関数の勾配）がバイパス経由の誤差伝搬によるものかどうかを判定する。Ｓ６５の判定がＹｅｓの場合はＳ６６に進む。Ｓ６６において、バイパス経由学習時設定情報２３を学習時設定としてセットする。Ｓ６６の後、Ｓ６８に進む。Ｓ６５の判定がＮｏの場合はＳ６７に進む。Ｓ６７において、非バイパス経由学習時設定情報２４を学習時設定としてセットする。Ｓ６７の後、Ｓ６８に進む。
【００６６】
Ｓ６８では、学習データ２０中の真値と、Ｓ６６またはＳ６７の学習時設定で求めた識別結果との誤差により、学習パラメタに対するロス勾配を算出する。これは従来の誤差伝搬法で行われているのと同様の処理である。ロス関数を学習パラメタで微分した式に、現在の学習パラメタと識別結果と真値の値を与えることで、現在の学習パラメタにおけるロス関数の勾配であるロス勾配を算出することができる。ある中間層におけるロス勾配は出力層と当該中間層との間の層の結合重みに応じて算出されるので、当該中間層と出力層の間にどのような層があるかによってロス勾配は変わってくる。たとえば学習パラメタＣ１ＬＰ２１１を更新しようとする際、Ｃ２から出力層までの学習パラメタに応じて算出されるロス勾配と、バイパス結合部のＢ１から出力層までの学習パラメタに応じて算出されるロス勾配は異なる。
Ｓ６９では、Ｓ６８で得られたロス勾配と設定済みの学習時設定とを用いて、学習パラメタを更新する。たとえばロス勾配に学習率をかけて学習パラメタを更新する。学習率は、学習時設定の一例である。
Ｓ７０では、全層に対して学習パラメタの更新が終わったかどうか判定する。全層に対して学習パラメタの更新が終わっていなければ（Ｓ７０：Ｎｏ）、Ｓ６２に戻って次の層を更新対象に設定する。完了していれば本処理を終えて次の学習データによる更新を行う。
【００６７】
（実施形態５の効果）
以上のような構成をとることにより、誤差逆伝搬の経路がバイパス結合部経由であるかどうかによって学習時設定を使い分けることができるようになる。学習時設定を使い分けることによって、低層部において高次特徴のために必要な低次特徴を学習する強さと、認識タスクの識別のために必要な低次特徴を学習する強さとを調節することができるようになる。
【００６８】
（変形例）
実施形態５では、誤差逆伝搬を受ける経路ごとに学習時設定を切り替える方法を説明した。ここで、実施形態４で説明したようなマルチタスク識別器の構成について考える。たとえば、図８において、Ｃ１からＣ５は２つの認識タスクからの誤差逆伝搬によって学習パラメタの更新を受けることになる。この際、誤差逆伝搬がバイパス経由かどうかによる切り替えだけでなく、どの認識タスクからの誤差伝搬であるかによっても学習時設定を切り替えてもよい。認識タスクによって学習時設定を切り替える処理の例としては、たとえば以下のようにすればよい。まず、図９の第２のメモリ６中のバイパス経由学習時設定情報２３、非バイパス経由学習時設定情報２４と同様に、タスク１学習設定およびタスク２学習設定を事前に第２のメモリ６に格納しておく。図１０のＳ６３では複数のタスクから誤差逆伝搬を受ける層であるかどうかを判定する。Ｓ６５では、どの認識タスクからの誤差逆伝搬であるかを判定する。たとえば、第１の認識タスクからの誤差逆伝搬である場合はＳ６６に進み、タスク１学習設定をセットする。そして、第２の認識タスクからの誤差逆伝搬である場合はＳ６７に進み、タスク２学習設定をセットする。このように、Ｓ６５の判定に従って、タスク１学習設定（第１の認識タスクの学習設定）とタスク２学習設定（第２の認識タスクの学習設定）を切り替えて学習する。
上記したような構成にすることによって、共通部分となる層において各認識タスクからどれくらいの割合で学習させるかを調整することができるようになる。たとえば、下層部については第２の認識タスクを重視して学習するようにし、高層部については第１の認識タスクを重視して学習するような設定が可能になる。
【００６９】
（ハードウェア構成）
図１、図３、図５および図９に示す学習部１０、識別部１１、バイパス結合部位置決定部１２、中間層類似度算出部１３、類似中間層統合設定部１４および経路別学習時設定部１５は機能ブロックで示されている。これら機能ブロックで示されているものの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、たとえば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。ＦＰＧＡは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウェアとして実現するようにしてもよい。さらに、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。
図１の第１のメモリ５と第２のメモリ６は、それぞれプログラムを格納するメモリとデータを格納するメモリとを区別しているだけであり、１つのメモリとしてもよい。
【００７０】
（他の実施形態）
本発明は、上述の実施形態の第１のメモリ５の１以上の機能を実現するプログラム（コンピュータプログラム）を、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（たとえば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７１】
１…情報処理装置、２…ＣＰＵ、１０…学習部、１１…識別部、２０…学習データ、２１…ＤＣＮＮ情報、２００…ＤＣＮＮ、２２３…第１畳み込み層のバイパス部、２２４…第２畳み込み層のバイパス部
【図１】
2018026040.tif 000006
【図２】
2018026040.tif 000007
【図３】
2018026040.tif 000008
【図４】
2018026040.tif 000009
【図５】
2018026040.tif 000010
【図６】
2018026040.tif 000011
【図７】
2018026040.tif 000012
【図８】
2018026040.tif 000013
【図９】
2018026040.tif 000014
【図１０】
2018026040.tif 000015