(57)【要約】【課題】  ニューラルネットワークを用いてパターンの認識処理を行う場合に、この処理に必要なメモリ使用量を軽減させること。【解決手段】  処理対象層内のニューロンの出力値を計算する。計算した検出層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する。検出層の前段の層内のニューロンの出力値のデータを、メモリから読み出す場合、メモリに格納されなかったニューロンの出力値のデータの代わりに、所定の値を有するデータを読み出す。【選択図】    図１
2005346472.tif 000002
【特許請求の範囲】
【請求項１】
前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークを用いた計算処理によって、入力画像中の所定のパターンを検出する情報処理装置であって、
処理対象層の前段の層内のニューロンの出力値と、当該処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を、それぞれの層について順次行う出力値計算手段と、
前記出力値計算手段が計算した検出層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する第１の格納制御手段と、
前記出力値計算手段が計算した統合層内の各ニューロンの出力値のデータを前記メモリに格納する第２の格納制御手段と、
前記出力値計算手段が、処理対象層内の各ニューロンの出力値を計算する為に参照する、当該処理対象層の前段の層内のニューロンの出力値のデータを、前記メモリから読み出して前記出力値計算手段に供給する供給手段とを備え、
前記供給手段は、検出層内のニューロンの出力値のデータを前記出力値計算手段に供給する場合、前記第１の格納制御手段によって前記メモリに格納されなかったニューロンの出力値のデータの代わりに、所定の値を有するデータを供給することを特徴とする情報処理装置。
【請求項２】
前記出力値計算手段は、前記検出層内のニューロンの出力値を計算する為に参照すべき全てのデータが前記供給手段によって供給されなかった場合、当該ニューロンの出力値の計算を省略することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークにおいて、所望の出力を得るために層間の重み係数を修正する処理を行う情報処理装置であって、
処理対象層の前段の層内のニューロンの出力値と、前記処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を行う出力値計算手段と、
前記出力値計算手段が計算した処理対象層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する格納制御手段と、
前記メモリに格納された出力値のデータ、及び前記メモリに格納されなかったニューロンの出力値のデータの代わりとなる所定の値を有するデータ、とからなる前記処理対象層の出力値データと、前記所望の出力のデータとの誤差に基づいて、前記処理対象層とその前段の層との間の重み係数を修正する修正手段と、
前記出力値計算手段が、前記処理対象層内の各ニューロンの出力値を計算する為に参照する、前記格納制御手段が前記メモリに格納したデータを、前記メモリから読み出して前記出力値計算手段に供給する供給手段と
を備えることを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置を搭載することを特徴とする撮像装置。
【請求項５】
前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークを用いた計算処理によって、入力画像中の所定のパターンを検出する情報処理方法であって、
処理対象層の前段の層内のニューロンの出力値と、当該処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を、それぞれの層について順次行う出力値計算工程と、
前記出力値計算工程で計算した検出層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する第１の格納制御工程と、
前記出力値計算工程で計算した統合層内の各ニューロンの出力値のデータを前記メモリに格納する第２の格納制御工程と、
前記出力値計算工程で、処理対象層内の各ニューロンの出力値を計算する為に参照する、当該処理対象層の前段の層内のニューロンの出力値のデータを、前記メモリから読み出して前記出力値計算工程に供給する供給工程とを備え、
前記供給工程では、検出層内のニューロンの出力値のデータを前記出力値計算工程に供給する場合、前記第１の格納制御工程で前記メモリに格納されなかったニューロンの出力値のデータの代わりに、所定の値を有するデータを供給することを特徴とする情報処理方法。
【請求項６】
前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークにおいて、所望の出力を得るために層間の重み係数を修正する処理を行う情報処理方法であって、
処理対象層の前段の層内のニューロンの出力値と、前記処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を行う出力値計算工程と、
前記出力値計算工程で計算した処理対象層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する格納制御工程と、
前記メモリに格納された出力値のデータ、及び前記メモリに格納されなかったニューロンの出力値のデータの代わりとなる所定の値を有するデータ、とからなる前記処理対象層の出力値データと、前記所望の出力のデータとの誤差に基づいて、前記処理対象層とその前段の層との間の重み係数を修正する修正工程と、
前記出力値計算工程で、前記処理対象層内の各ニューロンの出力値を計算する為に参照する、前記格納制御工程で前記メモリに格納したデータを、前記メモリから読み出して前記出力値計算工程に供給する供給工程と
を備えることを特徴とする情報処理方法。
【請求項７】
コンピュータに請求項５又は６に記載の情報処理方法を実行させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを格納することを特徴とする、コンピュータ読みとり可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層型ニューラルネットワークの演算処理を行うための技術に関するものである。
【背景技術】
【０００２】
従来、画像認識や音声認識の分野においては、特定の認識対象に特化した認識処理アルゴリズムをコンピュータソフトとして逐次演算して実行するタイプ、或いは専用並列画像処理プロセッサ（ＳＩＭＤ、ＭＩＭＤマシン等）により実行するタイプに大別される。
【０００３】
例えば、専用並列処理プロセッサに関しては、例えば従来の物体識別装置は、画像処理プロセッサユニットを複数用意し、それらのプロセッサユニットに搭載されているＤＳＰで演算処理を行い、それらの複数の結果を別のユニットに転送して物体識別を行っている（例えば特許文献１を参照）。例えば、画像を複数の領域に分け、各プロセッサで各領域の処理を並列に行い、別のプロセッサユニットで物体の識別の推論をニューラルネットワークやファジイ制御を用いて行うものである。
【０００４】
また、ニューラルネットによる階層並列処理を行うハードウェアとして、例えば従来の階層構造ニューラルネットは、単層のハードウェアを時分割多重化使用して多層化することを可能とする階層構造ニューラルネットのアーキテクチャである。即ち、複数のニューロンモデルを相互に接続することにより形成されるニューラルネットにおいて、時分割多重化アナログ信号を外部からのデジタル重みデータとの積を生成し、かつその積を時分割的にコンデンサを介して加えることにより積分し、非線形出力関数を通した電圧を時分割的に出力することを可能とするニューロンモデルユニットを複数設置して単層のユニット集合を形成する単層ユニット集合手段と、単層ユニット集合手段の出力を同じ単層ユニット集合の入力部に帰還する帰還手段と、単層ユニット集合手段から出力される各ユニットからのアナログ信号を時分割多重化し、さらに帰還手段を介して単層ユニット集合手段を時分割多重使用するための制御を実行する制御手段とを有し、単層構造のユニット集合手段を時分割多重使用することにより等価的に階層構造のニューラルネットを形成するように構成されている（例えば特許文献２を参照）。
【０００５】
一方、ニューラルネットワークは、脳の情報処理方式を基に形成された数理ネットワークであり、階層型ニューラルネットワークを用いて画像中のパターンを認識・分類する方法が近年数多く提案されている。例えば、一般的に幅広く知られているものに、誤差逆伝播法により学習する多層パーセプトロン型のニューラルネットワークがある。この多層パーセプトロン型のニューラルネットワークは、入力層として入力ベクトルの次数、出力層として識別するカテゴリの数だけのユニットを用意し、さらに中間層の層数及びユニット数を十分な数だけ用意し、そのユニット間を全結線したものである。
【０００６】
例えば従来のニューラルネットワーク回路は、与えられた画像等の特徴データをネットワークの演算の実行によって認識処理する多層のニューラルネットワーク回路において、小規模のハードウェアにより構成可能で、対象とする認識物を高速に認識することを目的としている（例えば特許文献３を参照）。その手段としては、結合係数が有効なネットに対してのみ演算を実行することで、演算の高速化を図っている。
【０００７】
また、従来の信号処理装置は、複数の信号を入力とし、１つの信号を出力する複数個の学習機能つき神経細胞模倣素子を結合させた回路網からなり、回路網の入力側及び出力側にそれぞれ入力（または出力）の冗長な情報または不必要な情報を削除する信号情報削除手段を設けている（例えば特許文献４を参照）。
【特許文献１】特開平６−６７９３号公報
【特許文献２】特許２６７９７３０号公報
【特許文献３】特許０３１７２２７８号公報
【特許文献４】特開平６−８３７９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のように、膨大な計算を必要とする画像処理において、専用機による並列化処理によって高速演算が実現されつつある。しかし、識別する対象が複雑になるにつれて計算量は増大していく。
【０００９】
ニューラルネットワークのハードウェア化を考えた場合でも、生体の脳細胞の数を考えれば、より複雑な処理を行うためには規模が大きくなることが予想される。従来のような方法でハードウェア化を実現しようとする場合、ニューロンの結合数は膨大になり、並列化処理を行うにしても演算速度に限界がある。また、製品に搭載されるようなチップを作るとすれば回路の大きさ、消費電力は小さいものが望まれる。
【００１０】
上記特許文献３で開示されているニューラルネットワーク回路では、結合係数が有効なネット、すなわち０でないネットに対してのみ演算を実行することで、演算処理速度の向上を図っているが、結合係数の値にノイズ成分が含まれている場合には対応しておらず、結局演算を行うことになる。また、重み係数の更新に関して、結合係数が０以外のニューロンに対してのみ行っているため、結合係数が０の場合の重み係数の学習が行えない。すなわち、汎化性に欠けると予想される。
【００１１】
また、特許文献４に開示される信号処理装置は、入力または出力の冗長な情報または不必要な情報を削除して回路網に入力させる信号情報削除手段を設けることで学習を容易なものにしようとしているが、特許文献３と同様に、削除した部分に対して重み係数の学習が行えない。
【００１２】
本発明は以上の問題に鑑みてなされたものであり、ニューラルネットワークを用いてパターンの認識処理を行う場合に、この処理に必要なメモリ使用量を軽減させることを第１の目的とする。
【００１３】
また本発明の第２の目的は、このニューラルネットワークの演算に係る計算量を軽減させることにある。
【００１４】
また、本発明の第３の目的は、第１、２の目的で述べたような演算処理量、及び使用メモリ量の軽減を行うと共に、重み係数の高速学習、パターン認識に関して優れた汎化性を実現することにある。
【課題を解決するための手段】
【００１５】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【００１６】
すなわち、前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークを用いた計算処理によって、入力画像中の所定のパターンを検出する情報処理装置であって、
処理対象層の前段の層内のニューロンの出力値と、当該処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を、それぞれの層について順次行う出力値計算手段と、
前記出力値計算手段が計算した検出層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する第１の格納制御手段と、
前記出力値計算手段が計算した統合層内の各ニューロンの出力値のデータを前記メモリに格納する第２の格納制御手段と、
前記出力値計算手段が、処理対象層内の各ニューロンの出力値を計算する為に参照する、当該処理対象層の前段の層内のニューロンの出力値のデータを、前記メモリから読み出して前記出力値計算手段に供給する供給手段とを備え、
前記供給手段は、検出層内のニューロンの出力値のデータを前記出力値計算手段に供給する場合、前記第１の格納制御手段によって前記メモリに格納されなかったニューロンの出力値のデータの代わりに、所定の値を有するデータを供給することを特徴とする。
【００１７】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【００１８】
すなわち、前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークにおいて、所望の出力を得るために層間の重み係数を修正する処理を行う情報処理装置であって、
処理対象層の前段の層内のニューロンの出力値と、前記処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を行う出力値計算手段と、
前記出力値計算手段が計算した処理対象層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する格納制御手段と、
前記メモリに格納された出力値のデータ、及び前記メモリに格納されなかったニューロンの出力値のデータの代わりとなる所定の値を有するデータ、とからなる前記処理対象層の出力値データと、前記所望の出力のデータとの誤差に基づいて、前記処理対象層とその前段の層との間の重み係数を修正する修正手段と、
前記出力値計算手段が、前記処理対象層内の各ニューロンの出力値を計算する為に参照する、前記格納制御手段が前記メモリに格納したデータを、前記メモリから読み出して前記出力値計算手段に供給する供給手段と
を備えることを特徴とする。
【００１９】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【００２０】
すなわち、前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークを用いた計算処理によって、入力画像中の所定のパターンを検出する情報処理方法であって、
処理対象層の前段の層内のニューロンの出力値と、当該処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を、それぞれの層について順次行う出力値計算工程と、
前記出力値計算工程で計算した検出層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する第１の格納制御工程と、
前記出力値計算工程で計算した統合層内の各ニューロンの出力値のデータを前記メモリに格納する第２の格納制御工程と、
前記出力値計算工程で、処理対象層内の各ニューロンの出力値を計算する為に参照する、当該処理対象層の前段の層内のニューロンの出力値のデータを、前記メモリから読み出して前記出力値計算工程に供給する供給工程とを備え、
前記供給工程では、検出層内のニューロンの出力値のデータを前記出力値計算工程に供給する場合、前記第１の格納制御工程で前記メモリに格納されなかったニューロンの出力値のデータの代わりに、所定の値を有するデータを供給することを特徴とする。
【００２１】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【００２２】
すなわち、前段の層からの出力から１つ以上の特徴量を検出して出力する検出層、当該検出層からの出力を統合して出力する統合層、の各層を交互に配置することにより構成される階層型ニューラルネットワークにおいて、所望の出力を得るために層間の重み係数を修正する処理を行う情報処理方法であって、
処理対象層の前段の層内のニューロンの出力値と、前記処理対象層とその前段の層との間の重み係数を用いて、前記処理対象層内のニューロンの出力値を計算する処理を行う出力値計算工程と、
前記出力値計算工程で計算した処理対象層内の各ニューロンの出力値を参照し、出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納する格納制御工程と、
前記メモリに格納された出力値のデータ、及び前記メモリに格納されなかったニューロンの出力値のデータの代わりとなる所定の値を有するデータ、とからなる前記処理対象層の出力値データと、前記所望の出力のデータとの誤差に基づいて、前記処理対象層とその前段の層との間の重み係数を修正する修正工程と、
前記出力値計算工程で、前記処理対象層内の各ニューロンの出力値を計算する為に参照する、前記格納制御工程で前記メモリに格納したデータを、前記メモリから読み出して前記出力値計算工程に供給する供給工程と
を備えることを特徴とする。
【発明の効果】
【００２３】
本発明の構成により、ニューラルネットワークを用いてパターンの認識処理を行う場合に、この処理に必要なメモリ使用量を軽減させることができる。また、このニューラルネットワークの演算に係る計算量を軽減させることができる。また、演算処理量、及び使用メモリ量の軽減を行うと共に、重み係数の高速学習、パターン認識に関して優れた汎化性を実現することができる。
【発明を実施するための最良の形態】
【００２４】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２５】
［第１の実施形態］
図１は、本実施形態で用いる、階層型ニューラルネットワークの構成を示す図である。これは、並列階層処理により画像認識を行う神経回路網を形成したものである。この神経回路網は、入力データ中の局所領域において、対象または幾何学的特徴などの認識に関与する情報を階層的に扱うものであり、その基本構造はいわゆるConvolutionalネットワーク構造（Lecun,Y.and Bengio,Y.,１９９５,”Convolutional Network for Images Speech, and Time Series” in Handbook of Brain Theory and Neural Networks（M. Arbib,Ed.）,MIT Press,p.２５５−２５８）を有している。最終層（最上位層、同図では層１０３（２，Ｎ）に相当）からの出力は認識結果としての認識された対象のカテゴリとその入力データ上の位置情報である。
【００２６】
データ入力層１０１は、ＣＭＯＳセンサ、或いはＣＣＤ素子等の光電変換素子からの局所領域データを入力する層である。最初の特徴検出層１０２（１，０）は、データ入力層１０１より入力された入力画像（画像パターン）の局所的な低次の特徴（特定方向成分、特定空間周波数成分などの幾何学的特徴のほか色成分特徴を含んでもよい）を入力画像中の各位置を中心として局所領域（或いは、全画面にわたる所定のサンプリング点の各点を中心とする局所領域）において同一箇所で複数のスケールレベルまたは解像度で複数の特徴カテゴリの数だけ検出する。
【００２７】
特徴統合層１０３（２，０）は、所定の受容野構造（以下、受容野とは直前の層の出力素子との結合範囲を、受容野構造とはその結合荷重の分布を意味する）を有し、特徴検出層１０２（１，０）からの同一受容野内にある複数のニューロン出力素子の統合（局所平均化、最大出力検出等によるサブサンプリングなどの演算）を行う。この統合処理は、特徴検出層１０２（１，０）からの出力を空間的にぼかすことで、位置ずれや変形などを許容する役割を有する。また、特徴統合層内のニューロンの各受容野は同一層内のニューロン間で共通の構造を有している。
【００２８】
後続の層である各特徴検出層１０２（（１，１）、（１，２）、・・・、（１，Ｍ））及び各特徴統合層１０３（（２，１）、（２，２）、・・・、（２，Ｍ））は、上述した各層と同様に前者（（１，１）、・・・）は、各特徴検出モジュールにおいて複数の異なる特徴の検出を行い、後者（（２，１）、・・・）は、前段の特徴検出層からの各特徴に関する検出結果の統合を行う。但し、前者の特徴検出層は前段の特徴統合層の細胞素子出力を受けるように結合（配線）されている。特徴統合層で行う処理であるサブサンプリングは、同一特徴カテゴリの特徴検出細胞集団からの局所的な領域（当該特徴統合層ニューロンの局所受容野）からの出力についての平均化などを行うものである。
【００２９】
以上のように、本実施形態で用いる階層型ニューラルネットワークは、検出層、統合層が交互に配置された構成を備える。尚、以下の説明ではＮ＝２、すなわち、特徴検出層、特徴統合層のセットが３セット備わっている階層型ニューラルネットワークを用いるものとする。
【００３０】
次に、入力画像から検知する対象として、目を用いた場合について説明する。すなわち、図１のデータ入力層１０１に目の画像を含む入力画像を入力した場合に、同図の階層型ニューラルネットワークを用いて、この「目」を認識する場合の一連の処理について説明する。
【００３１】
図２は、入力画像から目を検知する為の処理のフローチャートである。先ずステップＳ２０１において、データ入力層１０１に入力画像を入力する。続いてステップＳ２０２において、特徴検出層１０２（１，０）は、この入力画像から１次特徴量を検出する。
【００３２】
目の検出における１次特徴量は例えば図３に示如く、縦（３−１−１）・横（３−１−２）・右上がり斜め（３−１−３）・右下がり斜め（３−１−４）といった特定方向の特徴である。従って特徴検出層１０２（１，０）では、入力画像からこのような特徴を検出する処理を行う。従ってデータ入力層１０１と特徴検出層１０２との間の結合定数は、特徴検出層１０２（１，０）が、データ入力層１０１からの入力画像から、このような１次特徴量を検出できるように構成されている。このような結合定数の構成は周知のものであるので、ここでの説明は省略する。
【００３３】
ちなみに、２次特徴量は例えば、右空きＶ字（３−２−１）・左空きＶ字（３−２−２）であり、３次特徴量が目（３−３−１）である。図３は、目の１次特徴量、２次特徴量、３次特徴量の例を示す図である。
【００３４】
ここで、１つの層内の各ニューロンの演算は以下の式（特徴の種別を示すインデックスは省略）に従って処理を行う。
【００３５】
【数１】
2005346472.tif 000003
【００３６】
【数２】
2005346472.tif 000004
【００３７】
ここでｕ（ｋ）（ｒ）は、階層ｋの位置ベクトルｒに対応するニューロンの入力和であり、ｗ（ｋ）（ｒ’−ｒ）は、階層ｋ内の位置ｒ’に対応するニューロンと階層（ｋ−１）の位置ｒに対応するニューロン出力との結合の強さを示す重み係数、ｙ（ｋ−１）（ｒ）は階層（ｋ−１）の位置ｒにあるニューロンの出力である。
式１に従って計算される入力和は非線形な関数ｆによって変換されて出力される。出力関数にはいろいろな種類があるが、ここでは次式に示すロジスティック関数
【００３８】
【数３】
2005346472.tif 000005
【００３９】
を用いる。
ここで、ａは正の定数である。ロジスティック関数は図４に示すような形状の関数であり、入力和を０から１の間の実数値に正規化するものである。すなわち、ニューロンの出力値は０〜１の範囲に限定される。
【００４０】
以下に、より詳細に特徴検出処理について説明する。
【００４１】
まず、画像のある位置を中心とする局所データを読み出し（この局所領域が受容野１０５に対応し、式中のｙ（ｋ−１）（ｒ）となる）、この読み出されたデータと重み係数との積和演算を式（１）に従って行い、入力和を求める。
【００４２】
そして、入力和から式（２）に従ってニューロンの出力を算出する。このようにして求まったニューロン出力は局所領域の中心点の出力となる。なお、この処理は局所領域を移動させて入力画像の各点において行う。このように、局所領域を移動させて入力画像全体に渡って処理を行うことは以降の統合処理や２次、３次の特徴量検出処理においても同様である。
【００４３】
続いてステップＳ２０３で、特徴統合層１０３（２，０）により１次特徴量を統合する処理を行う。ここで用いる重み係数の分布は例えばガウシアンがあり、統合処理を行うことにより、特徴検出層１０２（１，０）からの出力を空間的にぼかし、位置ずれや変形などを許容する役割を持つ。
【００４４】
ステップＳ２０４では、特徴検出層１０２（１，１）により２次特徴量検出を行う。ここでの２次特徴量とは、図３に示すようにＶ字パターン（３−２−１，３−２−２）であり、受容野内における１次特徴量の、主に２つの斜め方向パターン（３−１−３，３−１−４）の検出とその位置関係から検出可能である。つまり、複数種類の１次特徴量を組み合わせて２次特徴量を検出することができる。
【００４５】
よって特徴検出層１０２（１，１）は、特徴統合層１０３（２，０）で統合された１次特徴量の局所データを用いて、ステップＳ２０２での処理と同様に、Ｖ字を検出するための重み係数を適用した式（１）に従った積和演算により入力和を求める。ここで、Ｖ字を検出するための重み係数とは、特徴検出層１０２（１，１）と特徴統合層１０３（２，０）との間の結合定数であって、その構成は周知のものであるので、ここでの説明は省略する。そして、入力和から式（２）によりニューロンの出力を算出し、２次特徴量を検出する。
【００４６】
続いてステップＳ２０５で、特徴統合層１０３（２，１）によって２次特徴量を統合する。ここで用いる重み係数の分布は、例えばガウシアンがある。統合処理を行うことにより、特徴検出層１０２（１，１）からの出力を空間的にぼかし、位置ずれや変形などを許容する役割を持つ。
そして、ステップＳ２０６では、特徴統合層１０３（２，１）の次の層である特徴検出層１０２（１，２）によって、３次特徴量検出を行う。ここでの３次特徴量とは、図３に示すように目（３−３−１）であり、受容野内における２次特徴量の、２つのＶ字（３−２−１，３−２−２）の検出とその位置関係から検出可能である。つまり、複数種類の２次特徴量を組み合わせて３次特徴量を検出することができる。
【００４７】
よって特徴検出層１０２（１，２）は、特徴統合層１０３（２，１）で統合された２次特徴量の局所データを用いて、ステップＳ２０２での処理と同様に、目を検出するための重み係数を適用した式（１）に従った積和演算により入力和を求める。ここで、目を検出するための重み係数とは、特徴検出層１０２（１，２）と特徴統合層１０３（２，１）との間の結合定数であって、その構成は周知のものであるので、ここでの説明は省略する。そして、入力和から式（２）によりニューロンの出力を算出し、３次特徴量を検出する。
【００４８】
続いてステップＳ２０７で、特徴検出層１０２（１，２）の次の層である特徴統合層１０３（２，２）により、３次特徴量を統合する。ここで用いる重み係数の分布は、例えばガウシアンがある。統合処理を行うことにより、特徴検出層１０２（１，２）からの出力を空間的にぼかし、位置ずれや変形などを許容する役割を持つ。
【００４９】
そして、この３次特徴量を統合した結果が目の検出の最終結果となる。なお、上記ステップＳ２０７を行わずに、ステップＳ２０６において検出された結果を目の検出結果としてもよい。ただし、以上の説明において、１次特徴から３次特徴は図３に示すような局所特徴に限定される必要はない。
【００５０】
以上説明したように、入力画像から低次特徴を検出し、それをもとに中次特徴を検出、さらに高次特徴検出、というように階層的に処理を行い、パターン認識を行うことができる。これらの処理は複数の特徴で行う際、容易に並列して行うことも可能である。上記の処理をハードウェアでもって実装する場合、１つの層における処理結果（各検出結果や統合結果）を一旦メモリに保持し、次の層に係る処理を行う場合にはこのメモリからデータを読み出して用いるという工程を繰り返し行うことになる。
【００５１】
図５は上記処理をハードウェアでもって実行する場合のハードウェアの機能構成を示す図である。なお、メモリ５０３には、予め１次特徴量検出用の重み係数データ、２次特徴量検出用の重み係数データ、３次特徴量検出用の重み係数データが保持されており、必要に応じて読み出して用いられるものとする。
【００５２】
入力画像のデータはデータ入力部５０１を介して演算処理部５０２に入力する。演算処理部５０２は先ず、特徴検出層処理（特徴検出層１０２（１，０）における処理）を行うために特徴検出層処理部５０４を制御して、上記ステップＳ２０２における処理を実行させ、１次特徴検出処理を行う。この１次特徴検出処理は、すなわち、図１では特徴検出層１０２（１，０）を構成する各ニューロンの出力値を計算する処理に相当する。また、この１次特徴量検出処理の際、メモリ５０３から、上記１次特徴量検出用の重み係数のデータを読み出して用いるものとする。そしてこのようにして求めた各ニューロンの出力値のデータを一旦メモリ５０３に格納する。
【００５３】
続いて、演算処理部５０２は、特徴統合層処理（特徴統合層１０３（２，０）における処理）を行うために統合層処理部５０５を制御して、上記ステップＳ２０３における処理を実行させ、１次特徴統合処理を行う。詳しくは、先ず、メモリ５０３より、先に格納した１次特徴量の局所データ（各ニューロンの出力値のデータ）を読み出し、読み出したデータに基づいて、上記ステップＳ２０３における統合処理を行うべく、統合層処理部５０５を制御する。そして、このようにして得られる統合処理結果（図１における特徴統合層１０３（２，０）を構成する各ニューロンの出力値に相当）をメモリ５０３に格納する。  以降、同様にして、メモリ５０３から前段の層を構成する各ニューロンの出力値のデータを読み出して、特徴量検出処理、統合処理を交互に行う。その際、特徴検出層処理部５０４、統合層処理部５０５の何れかを制御して行う。また、ニューロンの出力値を計算する際には、メモリ５０３から２次特徴量検出用の重み係数のデータ、３次特徴量検出用の重み係数のデータを読み出して用いるものとする。
【００５４】
以上のようにして、ハードウェアでもって図２に示したフローチャートに従った処理を行うことができる。
【００５５】
なお、上記の処理は、入力画像が大きくなったり、検出したい特徴が複雑になったりして必要とされる階層数が増えたりすることによって、計算量及び保持するメモリ量が増大する。そこで、特徴検出を行って得られたニューロンの出力値がある閾値（例えば０．４）以下であった場合には、そのニューロンの出力値または内部状態値（積和演算結果）はメモリに格納しないという処理を行う（内部状態値を格納した際には、これを読み出す場合に、上記関数ｆでもって変換した値として読み出す）。このような処理方法を以下、ニューロンのプルーニングと呼び、このプルーミングは図１に示した１０７のプルーニングモジュールによって行われる。
【００５６】
そして、ある階層で特徴検出を行う際に前階層のニューロンの出力値をメモリから読み出す時に、その階層のニューロンが結合を受ける前階層の局所領域（以下これを受容野とする）全てのニューロンの出力値がメモリには格納されていない場合には、その中心点の特徴検出結果は計算は行わず、またその処理結果は当然メモリに格納しないようにする。また、受容野のいくつかのニューロンの出力値がメモリに保持されていない場合には、保持されていないニューロン出力値の代わりにある定数（例えば０．１）を用いて重み係数との積和演算し、検出処理を行う。
【００５７】
以下では、図２に示した処理において、このようなプルーミングを行った場合の一連の処理について説明する。
【００５８】
図６は、図２に示した処理において、上記プルーミングを行う場合の処理のフローチャートである。尚、同図では、２次特徴検出時にプルーニングを行うものとする。よって、１次特徴検出処理であるステップＳ６０１〜ステップＳ６０４の各ステップにおける処理は、前述したステップＳ２０１〜ステップＳ２０４の各ステップと同じであるので、これらのステップに関する説明は省略する。
【００５９】
ステップＳ６０１〜ステップＳ６０４における処理により、特徴検出層１０２（１，１）を構成する各ニューロンの出力値が求まったので、これを後段の層における処理のためにメモリに格納するのであるが、ステップＳ６０５では、これらのニューロンの出力値に対するプルーニングを行う。すなわち、ステップＳ６０４により特徴検出を行って得られたニューロンの出力値がある閾値（例えば０．４）以下であった場合には、そのニューロンの出力値または内部状態値（積和演算結果）は省略し、メモリには格納しないといった格納制御処理を行う。
【００６０】
続いてステップＳ６０６では、ステップＳ２０５と同様にして２次特徴量を統合する処理を行うのであるが、その際には、前段の層（特徴検出層１０２（１，１））を構成する各ニューロンの出力値を用いるので、ステップＳ６０５でメモリに格納されたデータを読み出すのであるが、ステップＳ６０５でメモリに格納されなかったニューロンの出力値の代わりとしては０を読み出す。また、２次特徴量統合結果はニューロンの出力値が０の場合はメモリに格納しなくて良い。
【００６１】
そしてステップＳ６０７では、ステップＳ２０６と同様にして３次特徴量検出処理を行うのであるが、その際には、前段の層（特徴統合層１０３（２，１））を構成する各ニューロンの出力値を用いるので、ステップＳ６０５でメモリに格納されたデータを読み出すのであるが、ステップＳ６０５で受容野全てのニューロンの出力値がメモリに格納されていなかった場合には、特徴検出層１０２（１，２）を構成する各ニューロンの出力値の計算は行わず、次のステップＳ６０８での３次特徴量検出結果のプルーニングにより省略される対象のニューロンとなる。
【００６２】
また、ステップＳ６０７において、受容野のいくつかのニューロンの出力値がメモリに保持されていない場合には、保持されていないニューロン出力値の代わりにある定数（例えば０．１）を用いて重み係数との積和演算し、検出処理を行う。
【００６３】
そしてステップＳ６０８では、これらのニューロンの出力値に対するプルーニングを行う。すなわち、ステップＳ６０７により特徴検出を行って得られたニューロンの出力値がある閾値（例えば０．４）以下であった場合には、そのニューロンの出力値または内部状態値（積和演算結果）は省略し、メモリには格納しないといった格納制御処理を行う。
【００６４】
続いて、ステップＳ６０９で、ステップＳ２０７と同様にして３次特徴量を統合する処理を行うのであるが、その際には、前段の層（特徴検出層１０２（１，２））を構成する各ニューロンの出力値を用いるので、ステップＳ６０８でメモリに格納されたデータを読み出すのであるが、ステップＳ６０８でメモリに格納されなかったニューロンの出力値の代わりとしては０を読み出す。また、３次特徴量統合結果はニューロンの出力値が０の場合はメモリに格納しなくて良い。
【００６５】
そして、この３次特徴量を統合した結果を目の検出の最終結果として出力する。なお、上記ステップＳ６０９を行わずに、ステップＳ６０８においてメモリに保持された結果を目の検出結果としてもよい。ただし、以上の説明において、１次特徴から３次特徴は図３に示すような局所特徴に限定される必要はない。
【００６６】
次に、ニューロンのプルーニング処理を行った後の特徴検出層の処理について、図７のフローチャートを用いて詳細に説明する。
【００６７】
先ずステップＳ７０１において、出力値を算出するニューロンを決定する。続いてステップＳ７０２において、ステップＳ７０１で決定したニューロンに結合する前階層の受容野のニューロンの出力値をメモリから読み出す。
【００６８】
そして、ステップＳ７０３で、読み出した受容野内のニューロンの出力値が全てプルーニングされているかの判定を行う。もし、全てのニューロンがプルーニングされていたならば、ステップＳ７０１で指定したニューロンの出力値を計算する処理は行わず、当然、この出力値のデータはないのでメモリに保持しない。そして処理をステップＳ７０１に戻し、まだ出力値を算出していないニューロンを決定し、以下同様の処理を行う。
【００６９】
一方、ステップＳ７０３において、全てのニューロンがプルーニングされていなかった場合は、ステップＳ７０４に進み、プルーニングされたニューロンに対してその出力に０でない所定の値を代入する。そして、ステップＳ７０５で特徴検出用重み係数データを読み出し、ステップＳ７０６で、式（１）、（２）に基づいてステップＳ７０１で決定したニューロンの出力値を算出する。
【００７０】
そしてステップＳ７０７において、ステップＳ７０６で算出したニューロンの出力値に対して、プルーニング処理を行う。すなわち上述の通り、このニューロンの出力値が所定の閾値以上である場合には、メモリにこのニューロンのアドレスと共にニューロン出力値をメモリに格納し、このニューロンの出力値が所定の閾値以上ではない場合には、メモリへの格納処理は何も行わずに処理をステップＳ７０１に進める。そしてまだ出力値を算出していないニューロンを決定し、以下、同様の処理を行う。
【００７１】
図８は上記処理をハードウェアでもって実行した場合のハードウェアの機能構成を示す図である。なお、メモリ８０３には、予め１次特徴量検出用の重み係数データ、２次特徴量検出用の重み係数データ、３次特徴量検出用の重み係数データが保持されており、必要に応じて読み出して用いられるものとする。
【００７２】
入力画像のデータはデータ入力部８０１を介して演算処理部８０２に入力する。演算処理部８０２は先ず、特徴検出層処理（特徴検出層１０２（１，０）における処理）を行うために特徴検出層処理部８０４を制御して、上記ステップＳ６０２における処理を実行させ、１次特徴検出処理を行う。この１次特徴検出処理は、すなわち、図１では特徴検出層１０２（１，０）を構成する各ニューロンの出力値を計算する処理に相当する。また、この１次特徴量検出処理の際、メモリ８０３から、上記１次特徴量検出用の重み係数のデータを読み出して用いるものとする。そしてこのようにして求めた各ニューロンの出力値のデータを一旦メモリ８０３に格納する。
【００７３】
続いて、演算処理部８０２は、特徴統合層処理（特徴統合層１０３（２，０）における処理）を行うために統合層処理部８０５を制御して、上記ステップＳ６０３における処理を実行させ、１次特徴統合処理を行う。詳しくは、先ず、メモリ８０３より、先に格納した１次特徴量の局所データ（各ニューロンの出力値のデータ）を読み出し、読み出したデータに基づいて、上記ステップＳ６０３における統合処理を行うべく、統合層処理部８０５を制御する。そして、このようにして得られる統合処理結果（図１における特徴統合層１０３（２，０）を構成する各ニューロンの出力値に相当）をメモリ８０３に格納する。なお、格納の際にはプルーミング処理部８０６は、上記ステップＳ６０５におけるプルーミングを行う。
【００７４】
すなわちプルーミング処理部８０６は、ステップＳ６０４により特徴検出を行って得られたニューロンの出力値と、ある閾値（例えば０．４）との大小比較を行い、出力値が閾値以下である場合には、そのニューロンの出力値または内部状態値（積和演算結果）は省略し、メモリ８０３には格納しないといった格納制御処理を行う。
【００７５】
以降、同様にして、メモリ８０３から前段の層を構成する各ニューロンの出力値のデータを読み出して、特徴量検出処理、統合処理を交互に行う。その際、特徴検出層処理部８０４、統合層処理部８０５の何れかを制御して行う。また、ニューロンの出力値を計算する際には、メモリ５０３から２次特徴量検出用の重み係数のデータ、３次特徴量検出用の重み係数のデータを読み出して用いるものとする。
【００７６】
また、メモリ８０３にデータを格納する際には、出力値と閾値との大小比較を行い、出力値が閾値以下である場合、この出力値、もしくはこの出力値を有するニューロンの内部状態値はメモリ８０３には格納しないようにする。
【００７７】
以上のようにして、ハードウェアでもって図６に示したフローチャートに従った処理を行うことができる。
【００７８】
以上のようにニューロンのプルーニング処理を行うことにより、大幅な演算処理量の軽減、及びメモリの使用量を軽減させることができる。例えば、図１１に示すように、人物像の背景に複雑な背景（Ｖ字パターンがたくさん検出されそうな背景）が含まれる画像を上記入力画像として用いる場合においても、Ｖ字パターン検出結果の出力値の分布を見ると約７０％のニューロン出力が値０．４以下である。つまり、メモリの使用量を約７０％軽減させることができる。
【００７９】
更に、例えば０．４以下のニューロン出力値を以降の処理では用いないため、検出レベルが低く顕著でない特徴やノイズの影響がなくなるため、次階層での特徴検出処理が容易になるという利点もある。例えば、検出のための重み係数の学習が、少ない教師点で高速に収束するという利点がある。なお、本実施形態では、基準の値を０．４としたが、この値は認識対象に応じて最適な値を決定すればよい。
【００８０】
また、教師点を選ぶ際にも、プルーニングを行っている方が学習に効率的な教師点を選びやすい利点もある。またこうして求まった重み係数は汎化性能も優れている。
【００８１】
同じ教師点を与えて、プルーニングを行わずに学習させた場合（a）とプルーニングを行ってから学習を行った場合（b）について比較してみると、（b）の方が学習収束が４倍以上速く、また学習した重み係数を用いて検出した結果は誤検出が少なかった。
【００８２】
更にその汎化性を見ると、（a）では検出されるべき特徴が正しく検出されていても、誤検出の検出レベルが高い場合があるのに対し、（b）では検出されるべき特徴が正しく検出され、また誤検出があっても正しい検出に比べて低いレベルに抑えられており、汎化性能も（b）の方が優れている。
【００８３】
以上説明したように、本実施形態によれば、階層型ニューラルネットワークを用いたパターン認識において、ニューロンの出力値がある閾値以下の場合、このニューロンの出力値は破棄してメモリに格納しないことにより、ニューラルネットワークの演算において、メモリの使用量を軽減させることができる。
【００８４】
また、特徴検出層中のあるニューロンの出力値を計算する場合に、参照するデータがメモリに保持されていない場合には、この出力値を計算する処理を省略するので、より高速にニューラルネットワークの演算を行うことができる。また当然このニューロンの出力値は計算されず、且つメモリに保持されないので、上記プルーミング対象となり、メモリの使用量軽減を実現することになる。
【００８５】
更に、ある閾値以下のニューロン出力値の省略を行うことにより、重み係数の高速学習、パターン認識に関して優れた汎化性を実現するという効果がある。
【００８６】
［第２の実施形態］
第１の実施形態で説明したニューラルネットワークによる認識（検出）処理は、専用ハードウェアでもって実現したが、プログラムの形態でもって一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等のコンピュータにインストールし、このコンピュータのＣＰＵに実行させることで実現させても良い。
【００８７】
図１２は、このようなコンピュータの基本構成を示す図である。
【００８８】
１２０１はＣＰＵで、ＲＡＭ１２０２やＲＯＭ１２０３に格納されているプログラムやデータを用いてコンピュータ全体の制御を行うと共に、第１の実施形態で説明した処理を行う。
【００８９】
１２０２はＲＡＭで、外部記憶装置１２０６や記憶媒体ドライブ装置１２０７からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、ＣＰＵ１２０１が各処理を行うために使用するアークエリアも備える。
【００９０】
１２０３はＲＯＭで、ブートプログラムやコンピュータの各種の設定データなどを格納する。
【００９１】
１２０４は操作部で、キーボードやマウスなどにより構成されており、ＣＰＵ１２０１に対して各種の指示を入力することができる。
【００９２】
１２０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１２０１の処理結果を画像や文字などでもって表示することができる。
【００９３】
１２０６は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置により構成されており、ここにＯＳ（オペレーティングシステム）や上記１次特徴量検出用の重み係数のデータ、２次特徴量検出用の重み係数のデータ、３次特徴量検出用の重み係数のデータ、上記入力画像のデータ、ＣＰＵ１２０１に上記ニューラルネットワークの演算を実行させるためのプログラム（図６，７のフローチャートに従った処理をＣＰＵ１２０１に実行させるためのプログラム）等が保存されており、これらの一部、もしくは全部はＣＰＵ１２０１の制御により、ＲＡＭ１２０１にロードされるものである。
【００９４】
１２０７は記憶媒体ドライブ装置であって、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されているプログラムやデータを読み出して、ＲＡＭ１２０２や外部記憶装置１２０６に出力する。なお、外部記憶装置１２０６に保存されているものとして説明したプログラムやデータの一部、もしくは全部をこの記憶媒体に記録しておき、記憶媒体ドライブ装置１２０７が必要に応じてこの記憶媒体からこれらプログラムやデータを読み出してＲＡＭ１２０２にロードするようにしても良い。
【００９５】
１２０８は上述の各部を繋ぐバスである。
【００９６】
このようなコンピュータでもって第１の実施形態で説明したように、入力画像中の所定のパターンを検出する場合の処理について説明する。
【００９７】
コンピュータの操作者が操作部１２０４に含まれるキーボードやマウスでもって、ニューラルネットワークプログラム（図６，７のフローチャートに従った処理をＣＰＵ１２０１に実行させるためのプログラム）をＲＡＭ１２０２にロードさせるための指示を入力すると、ＣＰＵ１２０１はこれを検知し、外部記憶装置１２０６もしくは記憶媒体ドライブ装置１２０７を制御し、これらプログラムやデータをＲＡＭ１２０２にロードさせる。
【００９８】
次に、ＣＰＵ１２０１は上記入力画像の候補のデータを外部記憶装置１２０６もしくは記憶媒体から読み出して表示部１２０５に一覧表示し、操作者に選択させる。
【００９９】
操作者が操作部１２０４に含まれるキーボードやマウスを用いて１つを指示すると、ＣＰＵ１２０１はこれを検知して指示された画像を上記入力画像としてニューラルネットワークプログラムの処理対象として、ニューラルネットワークプログラムを実行する。
【０１００】
そして認識結果（検出結果）を表示部１２０５に表示する。
【０１０１】
このように、コンピュータを用いて第１の実施形態で説明した一連の処理を行うことができる。なお、コンピュータでもって第１の実施形態で説明した一連の処理を実現する方法はこれに限定されるものではなく、様々なものが考えられる。
【０１０２】
［第３の実施形態］
本実施形態では、ニューロンのプルーニングを行った結果を用いて重み係数の学習を行う学習方法について説明する。ここでは、重み係数の学習はモジュールごと、すなわち階層ごとに行い、一般化デルタ法を用いて行う場合に関して述べる。
【０１０３】
図９は本実施形態の重み係数の学習処理の流れを示したフローチャートである。なお、同図に示すフローチャートに従った処理は、専用のハードウェアでもって行わせるようにしても良いが、本実施形態では、同図のフローチャートに従った処理をＣＰＵ１２０１に実行させるためのプログラムを外部記憶装置１２０６、もしくは記憶媒体に保存させておき、ＲＡＭ１２０２にロードしてＣＰＵ１２０１がこれを実行するようにする。なお、以下の処理に必要なデータは全て外部記憶装置１２０６、もしくは記憶媒体に保存されており、ＣＰＵ１２０１の制御によりＲＡＭ１２０２にロードされているものとする。
【０１０４】
まずステップＳ９０１では、学習させたい階層を決め、初期化した重み係数を設定する。ただし、この初期化処理は既存の重み係数に更に学習を加える場合には不要である。また、学習させたい層の決定は、コンピュータの操作者が操作部１２０４を用いて指示するようにしても良いし、ＣＰＵ１２０１が決めるようにしても良い。
【０１０５】
続いてステップＳ９０２で、学習させたい教師点を選び、理想値を設定する（複数選択可）。理想値には例えば正解の教師点の場合は１、不正解の教師点の場合には０が入力される。ステップＳ９０３で、ステップＳ９０２で設定した教師点に対応するニューロンの出力値と、そのニューロンに結合した前階層の受容野のニューロンの出力値をメモリ（ＲＡＭ１２０２）から読み込む。
【０１０６】
続いてステップＳ９０４で、初期化した重み係数（もしくは学習させたい重み係数）を用いて、式（１）〜式（３）に従って、ステップＳ９０２で設定した教師点に対応する局所領域に関して、ステップＳ９０３で読み込んだデータを用いてニューロンの出力値を求める。なお、ステップＳ９０４では入力側のニューロンの値はプルーニングを行ったものを用い、省略したニューロンの出力値に関しては０でないある定数（例えば０．１）を代入する。
【０１０７】
そしてステップＳ９０５において、求めたニューロンの出力値に関してプルーニング処理を行う。つまり、ニューロンの出力値が閾値、例えば０．４以下のものは０としてメモリ（ＲＡＭ１２０２）に格納する。当然、第１の実施形態のとおり、ニューロンの出力値が閾値が例えば０．４以上のものはそのままの値がメモリに格納される。
【０１０８】
まず、重み係数の修正処理に入る前に、ステップＳ９０６で評価関数を調べる。評価関数が以下の式
【０１０９】
【数４】
2005346472.tif 000006
【０１１０】
【数５】
2005346472.tif 000007
【０１１１】
を満たせば学習は終了とする。ここで、ｊは教師点の通し番号、ｒｊは理想出力値、ｙｊは現在の重み係数を用いて算出したニューロンの出力値である。ｄは学習終了判定用の閾値であり、例えば｛０.０１×（教師点数）｝と設定する。もし、式（５）を満たしていれば、ステップＳ９０７に進み、満たしていないときは、重み係数の修正を以下のステップに従って行う。
ステップＳ９０８で、教師点におけるニューロンの出力値と理想値との誤差δｊを次式に従って計算する。
【０１１２】
【数６】
2005346472.tif 000008
【０１１３】
そしてステップＳ９０９で次式に従い、重み係数の修正を行う。
【０１１４】
【数７】
2005346472.tif 000009
【０１１５】
【数８】
2005346472.tif 000010
【０１１６】
ここで、ηは学習レート、αは慣性項を示す。ηとαは学習の収束スピードを左右するパラメータであり、あまり高い値に設定すると誤差値の振動が起こってしまい、学習として好ましくない。η、α共に０．１〜１．０の範囲内の設定ならばうまく学習できている。また、重み係数の修正値Δｗの値の大きさにより、ηを可変にすると学習が更に速くなる。
重み係数の修正後、ステップＳ９０４に戻り、教師点に関してニューロンの出力値を再度計算し、評価関数を調べる、というステップを繰り返し、学習を進める。
【０１１７】
以上のような処理を行うことにより、重み係数の学習を行う。その結果、第１の実施形態で説明したようにプルーニングを行っていないときに比べて、少ない教師点で高速に収束する。また、こうして求まった重み係数は汎化性能も優れている。
【０１１８】
なお、プルーニングを行ったニューロンに関して０．１といった０でない値を代入することは重み係数の学習にとって利点がある。重み係数の修正は式（８）に従って行われるが、ｙｉ＝０であると重み係数が修正されず、学習が進まない。そこで０．１のような０でないが０に近い値（正解の出力値１に比べて）を代入する。すると式（８）の右辺第１項は０でない値を持つようになり、重み係数の修正が行われるようになる。これはつまり、所定の特徴がない、ということを学習できるようになることを意味する。その結果、学習プロセスが効率的になる。
【０１１９】
［第４の実施形態］
本実施形態は、第１の実施形態で説明したパターン認識（検出）を行うハードウェアを搭載した撮像装置に係るものである。
【０１２０】
図１０は、本実施形態に係る撮像装置の基本構成を示す図である。
【０１２１】
同図の撮像装置は、特定被写体へのフォーカシングや特定被写体の色補正、露出制御を行うことができる。同図の撮像装置１００１は、撮影レンズおよびズーム撮影用駆動制御機構を含む結像光学系１００２、ＣＣＤ又はＣＭＯＳイメージセンサー１００３、撮像パラメータの計測部１００４、映像信号処理回路１００５、記憶部１００６、撮像動作の制御、撮像条件の制御などの制御用信号を発生する制御信号発生部１００７、ＥＶＦなどファインダーを兼ねた表示ディスプレイ１００８、ストロボ発光部１００９、記録媒体１０１０などを具備し、更に上述したパターン認識装置を被写体検出（認識）装置１０１１として備える。
【０１２２】
この撮像装置１００１は、例えば撮影された映像中から人物の顔画像の検出（存在位置、サイズの検出）を被写体検出（認識）装置１０１１により行う。そして、その人物の位置、サイズ情報が被写体検出（認識）装置１０１１から制御信号発生部１００７に入力されると、制御信号発生部１００７は、撮像パラメータ計測部１００４からの出力に基づき、その人物に対するピント制御、露出条件制御、ホワイトバランス制御などを最適に行う制御信号を発生する。
【０１２３】
上述したパターン検出（認識）装置を、このように撮像装置に用いて、人物検出とそれに基づく撮影の最適制御を行うことができるようになる。しかも、必要メモリ量が従来のものに比べて削減されているので、小型及び低消費電力な装置を実現できるという効果もある。なお、上記説明では、上述したパターン検出装置を被写体検出（認識）装置１０１１として備える撮像装置１００１について説明したが、当然、上述したパターン検出装置のアルゴリズムをプログラムとして実装し、ＣＰＵで動作させる処理手段として、撮像装置１００１に搭載することも可能である。
【０１２４】
なお、本実施形態では、顔パターンを検出パターンとして、入力画像から顔領域を求める処理を用いて説明したが、顔検出処理のみに限定されるわけではない。
【０１２５】
更に、このような撮像装置を監視カメラやロボットの撮像手段として適用することも可能である。
【０１２６】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１２７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２９】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャート（機能構成）に対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１３０】
【図１】本発明の第１の実施形態で用いる、階層型ニューラルネットワークの構成を示す図である。
【図２】入力画像から目を検知する為の処理のフローチャートである。
【図３】目の１次特徴量、２次特徴量、３次特徴量の例を示す図である。
【図４】ロジスティック関数の形状を示す図である。
【図５】入力画像から低次特徴を検出し、それをもとに中次特徴を検出、さらに高次特徴検出、というように階層的に処理を行い、パターン認識を行う処理をハードウェアでもって実行する場合のハードウェアの機能構成を示す図である。
【図６】図２に示した処理において、プルーミングを行う場合の処理のフローチャートである。
【図７】ニューロンのプルーニング処理を行った後の特徴検出層の処理のフローチャートを用いて詳細に説明する。
【図８】本発明の第１の実施形態に係る一連の処理ハードウェアでもって実行する場合のハードウェアの機能構成を示す図である。
【図９】本発明の第３の実施形態の重み係数の学習処理の流れを示したフローチャートである。
【図１０】本発明の第４の実施形態に係る撮像装置の基本構成を示す図である。
【図１１】人物像の背景に複雑な背景（Ｖ字パターンがたくさん検出されそうな背景）が含まれる画像の例を示す図である。
【図１２】第２の実施形態に係るコンピュータの基本構成を示す図である。
【図１】
2005346472.tif 000011
【図２】
2005346472.tif 000012
【図３】
2005346472.tif 000013
【図４】
2005346472.tif 000014
【図５】
2005346472.tif 000015
【図６】
2005346472.tif 000016
【図７】
2005346472.tif 000017
【図８】
2005346472.tif 000018
【図９】
2005346472.tif 000019
【図１０】
2005346472.tif 000020
【図１１】
2005346472.tif 000021
【図１２】
2005346472.tif 000022