(57)【要約】【課題】  決定木を使った認識処理の処理速度の向上【解決手段】  決定木のノード遷移におけるキャッシュメモリへのヒット確率を向上させ、認識処理を高速化させる。  木構造内の親子ノードのメモリ上における距離が小さくなるように、ノードデータのメモリ配置を変更した決定木に作り変える。このとき、根ノードに近いノードについては幅優先探索順に、終端ノードに近いノードについては深さ優先順にメモリ上に配置する。これにより、到達確率の高いノードについては全ての子ノードとの距離を小さくし、到達確率の低いノードについては複数ある子ノードのうち一つとの距離を小さくする。【選択図】  図１
2011150546.tif 000002
【特許請求の範囲】
【請求項１】
分類を行う複数のノードを有する決定木を用いて、入力データのクラスを認識する認識装置であって、
メモリと、
前記決定木の根ノードからの深さが所定の閾値以下のノードは幅優先の探索順に従った順番に前記メモリ上に配置し、前記決定木の根ノードからの深さが前記閾値よりも大きいノードは深さ優先の探索順に従った順番に前記メモリ上への配置を決定する配置部と、
配置部によって前記メモリ上に配された各ノード用いて前記入力データのクラスを認識する認識部と、
を備えた認識装置。
【請求項２】
前記メモリは前記メモリ上に配置された決定木の少なくとも一部を保持するキャッシュメモリを備え、
前記配置部は、前記キャッシュメモリの使用可能な容量に従って前記閾値を決定することを特徴とする請求項１記載の認識装置。
【請求項３】
前記配置部は、前記キャッシュメモリの使用可能な容量を前記幅優先のノード全体の容量がこえないような前記閾値を求めることを特徴とする請求項２記載の認識装置。
【請求項４】
前記配置部は、前記決定木の各ノードを前記メモリ上へ展開する際の配置を認識処理の実行直前に行うことを特徴とする、請求項３に記載の認識装置。
【請求項５】
前記決定木の各ノードへの親ノードからの遷移確率を推定するノード遷移確率推定部をさらに備え、
配置部では親ノードが同じノード群に対しては前記遷移確率の高いものから優先的にメモリ上に配置することを特徴とする、請求項３に記載の認識装置。
【請求項６】
前記ノード遷移確率推定部は、前記認識部による認識処理で前記入力データから各ノードへの到達数から前記遷移確率を算出することを特徴とする、請求項１乃至６に記載の認識装置。
【請求項７】
前記ノード遷移確率推定部は、前記決定木の学習に使われる学習サンプルの各ノードへの到達数から算出することを特徴とする、請求項５記載の認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、決定木を利用した認識装置に関する。
【背景技術】
【０００２】
入力されたデータを分類する方法に、木構造の決定木を用いる技術がある。決定木とは、入力データを複数の分岐条件（ノード）により木の枝葉のように階層的に分類していき、どのクラスに属するかを認識する手法である。決定木を生成する学習時に学習サンプルに付与されたクラスに分類するための分岐条件を見つけ出すことを再帰的に繰り返すことで、分岐条件をノードとする木構造を作成する方法が提案されている。例えば、特許文献１は、認識処理時にはこの木構造をメモリに読み込み、データを根ノード（最上位ノード）に入力し、分岐条件に応じてノードを遷移し、到達した葉ノード（終端ノード）に応じて分類を決定する方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許７３１０６２４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
決定木を使った認識処理ではノード間の遷移が頻繁に発生する。このとき、メモリ上ではそれぞれのノードのデータを読み出すため、距離の離れたアドレスへのアクセスが頻発する。このようなメモリアクセスはプロセッサのキャッシュメモリにヒットする確率を低下させ、結果的に処理速度の低下を引き起こしていた。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の一態様に係る認識装置は、分類を行う複数のノードを有する決定木を用いて、入力データのクラスを認識する認識装置であって、メモリと、前記決定木の根ノードからの深さが所定の閾値以下のノードは幅優先の探索順に従った順番に前記メモリ上に配置し、前記決定木の根ノードからの深さが前記閾値よりも大きいノードは深さ優先の探索順に従った順番に前記メモリ上への配置を決定する配置部と、配置部によって前記メモリ上に配された各ノード用いて前記入力データのクラスを認識する認識部と、を有する。
【発明の効果】
【０００６】
決定木を使った認識処理の処理速度を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係わる認識装置のブロック図。
【図２】決定木による認識処理の概要を説明する図。
【図３】ノードの配置順番の例を示す図。
【図４】第１、第２の実施形態の認識装置のフローチャート。
【図５】（ａ）入力される画像データの例（ｂ）認識対象の座標の例。
【図６】非終端ノードのデータの例。
【図７】終端ノードのデータの例。
【図８】第２、３の実施形態の認識装置のブロック図。
【図９】第３の実施形態の認識装置のフローチャート。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について説明する。なお、互いに同様の動作をする構成や処理には共通の符号を付して、重複する説明は省略する。以下の各実施形態では、入力されるデータが画像データでありその認識結果を出力する認識装置について例示する。なお、入力データは画像データに限定されるものではない。
【０００９】
［第１の実施形態］
決定木の木構造は、ノード（節）と、そこから分岐したリーフ（葉）で示される。ノードは、分岐条件を示す。入力データの認識処理は、そのノードの示す分岐条件に従って次のノード、もしくはリーフへと遷移していく。リーフはこれ以上分岐する必要がない状態を意味し、最終的な分類を意味する。分岐条件には、例えば特徴量ベクトルのインデックス、画像特徴量の閾値の条件式等がある。
【００１０】
図１は、本実施形態の認識装置を示す図である。認識装置は、認識部１０１と、配置部１０２と、メモリ１０３を有する。
【００１１】
認識部１０１は、入力データ（本実施形態では画像データ）の属するクラスを、決定木を用いた認識処理によって分類し、その識別結果を出力する。
【００１２】
配置部１０２は、決定木の各ノードのメモリ１０３上への配置を決定する。決定木はあらかじめ認識部１０１が保持しており、認識を行う対象や入力データの種類に応じて適宜使用する決定木の選択を行う。配置部１０２は、認識部１０１が認識に使用する決定木がをメモリ１０３に展開する。決定木の根ノードからの深さが所定の閾値Ｔ以下のノードは、幅優先の探索順に従った順番にメモリ１０３上に配置し、決定木の根ノードからの深さが閾値Ｔよりも大きいノードは深さ優先の探索順に従った順番にメモリ１０３上へ配置させる。なお、詳細については後述する。
【００１３】
メモリ１０３は、キャッシュメモリ（図示せず）とメイン・メモリ（図示せず）を有する。認識を行うための決定木の各ノードが、配置部１０２の定めた配置に従ってメモリ１０３内に配置される。
【００１４】
図２は、本実施形態の決定木による認識処理の概要を説明する図である。最初の分岐条件となる根ノード（最上位ノード）２１から分類を開始する。分岐条件に応じて根ノード２１を親ノードとする子ノード２２、２３のいずれかに遷移する。根ノード２１での分岐条件によって、ノード２２に遷移した場合はノード２２が示す分岐条件に応じて、ノード２２を親ノードとする子ノード２４、２５のいずれかに遷移する。これらの分岐を繰り返していくと、子ノードを持たない末端の葉ノードに達する。最終的な葉ノード３０〜３３が入力データの属するクラスを示す認識結果となる。根ノード２１を深さ０とすると、その子ノード２２、２３は深さ１である。
【００１５】
次に、配置部１０２が、認識処理の開始前に決定木の配置を行う方法について説明する。
【００１６】
図２は、閾値Ｔが２の例について示す。配置部１０２は、決定木の根ノード２１からの深さが所定の閾値Ｔ＝２以下のノード２１〜２７を、幅優先の探索順に従った順番でメモリ１０３上に連続して配置する。幅優先の探索順とは、根ノード２１で始まり隣接した同じ階層のノード２２、２３を探索する。その次に、１つ下の階層のノード２４〜２７を探索する。また、配置部１０２は、決定木の根ノード２１からの深さが閾値Ｔ＝２よりも大きいノード２８〜３３を、深さ優先の探索順に従った順番でメモリ１０３上へ連続して配置する。深さ優先の探索順とは、探索対象となる最初のノード２８から、子のないノード（葉）３０に行き着くまで、深く伸びていく探索である。その後はバックトラックして、最も近くの探索の終わっていないノード３１まで戻る。
【００１７】
図３に、図２の例の決定木を配置部１０２が配置した順番の例を示す。根ノード２１から始まり、閾値Ｔ（＝２）以下の深さのノードを幅優先探索に従った順番に並べてある。また、閾値Ｔ（＝２）よりも深さが大きいノードを深さ優先探索に従った順番に並べてある。なお、幅優先及び深さ優先に従った配置順番とは、幅優先内、又は深さ優先内でノードの順番が多少前後しても構わない。例えば、幅優先内で同じ深さのノード２２とノード２３の順番が入れ替わったとしても構わない。また、深さ優先内でノード２８とノード２９の順番が入れ替わったとしても構わない。これらのノードの配置順番によって、距離の近いノードを連続的にアクセスすることができ、二つのノードデータのアドレスの差を縮めることができ、とキャッシュメモリにヒットしやすくなる。
【００１８】
次に、本実施形態の認識装置の動作を説明する。画像データを入力し、その画像が車両でか否かを判定するための決定木を用いる認識処理の一例について以下説明する。この決定木は入力データに対し２クラス（車両クラス、非車両クラス）の認識を行うことになるが、本実施形態に係わる認識装置は２クラスの認識に限定されるものではなく、そのまま３以上のクラスの認識に拡張が可能である。
【００１９】
図５（ａ）は、入力された画像データの例を示す図である。また、図５（ｂ）は、画像データ中の２つの点a、bの例を示す図である。各ノードで指定された座標（xa, ya）の点aでの輝度と、座標（xb, yb）にある点bでの輝度とを画像データ中から抽出して、その大小比較を繰り返してノードを遷移していくことにより、クラス認識が行われる。
【００２０】
図６は、非終端ノードのデータ構造を示す図である。決定木の非終端ノードは図６のように非終端ノードであることを表すフラグfと、比較する点aと点bの座標値と、点aの輝度の方が大きかった場合に遷移する子ノードのインデックスcaと、点aの輝度の方が小さかった場合に遷移する子ノードのインデックスcbで表される。フラグを１バイト、座標値をそれぞれ１バイト、子ノードのインデックスをそれぞれ４バイトとすると、非終端ノードを表現するためのデータは１３バイト必要になる。
【００２１】
図７は、終端ノード（葉ノード）のデータ構造を示す図である。終端ノード（葉ノード）には図７のように、終端であることを表すフラグと、そのノードに到達したデータが属するクラスを表すスコアとして、車両クラスに属する確率s1と、非車両クラスに属する確率s2が記録されている。フラグに１バイト、確率を単精度小数で表すためにそれぞれ４バイト必要だとすると、終端ノードは９バイトで表現できるが、非終端ノードのサイズに合わせた方がメモリ上の取り扱いがしやすい。そのため、使用しないヌルデータ４バイトを追加して１３バイトに合わせる。以下の説明では終端・非終端ノードを表現するためのデータをまとめてノードデータと記載する。以下の説明ではそれぞれのノードが二つの子ノードを持つことになるので、決定木全体として二分木になる例について示す。ただし、二分木の木構造に限定されるものではない。決定木を使ってクラス認識を行うにはまず、木構造内の終端・非終端ノードデータの内容を決定する必要がある。これは木の学習または生成と呼ばれる処理であるが、決定木の学習手法については説明を省略する。本実施形態は学習の結果得られる終端・非終端ノードに対し、そのメモリ配置を改善するためのものである。
【００２２】
図４は、本実施形態の認識装置の動作を説明する図である。ＳＴ２０１からＳＴ２０６までは配置部１０２における動作を表す。また、ＳＴ２０７からＳＴ２１３までは認識部１０１における動作を表す。なお、配置部１０２での処理は決定木の学習時に行ってその結果をメモリ１０３（または、外部のストレージ装置であっても構わない）に保存しておくこともできる。または、メモリ１０３（または、外部のストレージ装置であっても構わない）に保存された決定木データの読み込み時に実行することも可能である。後者は前者に比べて決定木データの読み込み時の処理が増えることになるが、認識処理を行うハードウェアのスペック、特にキャッシュメモリの容量に合わせてノード配置が行えるという利点がある。どちらのタイミングで配置部の処理を行うかは、実行対象のハードウェアが既に分かっているか、それぞれのハードウェアのスペックにばらつきがあるか、といった条件で決めるべきである。
【００２３】
まず、ＳＴ２０１では、配置部１０２がノード探索の切り替えのしきい値Ｔを決める。Ｔの値は任意に指定することができる。所定の定数であっても構わないが、実行するプロセッサのキャッシュのラインサイズ（キャッシュメモリに格納される単位データの大きさ）がCsのとき、下記式によってＴを算出することで認識処理時に読み出すノードデータがキャッシュメモリにヒットして高速に処理できる確率が向上する。
【数１】
2011150546.tif 000003
【００２４】
ここで、Nsはノードデータ１つあたりのサイズである。本実施形態で説明している例の場合、Nsは１３バイトになる。動作対象となるプロセッサが既に分かっている場合は、決定木データをストレージに保存するときにＴを決めてＳＴ２０６までの処理を行って、学習の段階でメモリ配置を改善しておくということができる。一方、対象プロセッサが学習時に確定しておらず、キャッシュメモリに関するスペックにばらつきがあることが分かっている場合は、ＳＴ２０１からＳＴ２０６までを決定木データをストレージ装置から読み込む際に実行することで、それぞれのプロセッサに合わせた効率的なメモリ配置を実現できる。ノードの深さdがＴ以下であれば幅優先探索順に、この値を超えているノードに対しては深さ優先探索順にノードを並べていく。
【００２５】
次のＳＴ２０２では、配置部１０２が探索候補ノード集合に根ノード（最上位ノード）のデータとそのスコアを登録する。探索候補ノード集合は次にメモリに配置するノードの候補を集めた領域で、ノードデータとノードのスコアの組が保存されている。このスコアの算出方法をノードの深さで切り替えることにより、幅優先探索と深さ優先探索の二つのノード配置手法を切り替える。ノードnのスコアf(n)は、nの深さ（最上位ノードからノードnまでの距離）がＴ以下のとき、
【数２】
2011150546.tif 000004
【００２６】
Ｔよりも大きいとき、
【数３】
2011150546.tif 000005
【００２７】
で算出する。これらの式のうち、depth(n)はノードnの深さを表す。また、Dmaxは決定木の最大の深さを表す定数である。
【００２８】
決定木の学習時にはノード生成の打ち切り条件として最大の深さが指定されることが多い。Dmaxを決定木の深さによらず十分に大きな値を指定しておいても良い。こうして計算される根ノードのスコアをノードデータとともに探索候補ノード集合に追加する。この探索候補ノード集合によれば、学習時にメモリ１０３での配置を改善することができる。すなわちＳＴ２０６までの処理を実行しておく場合に、学習でノードの内容を決定した段階でＳＴ２０２の処理を実行する。後述する子ノードを探索候補ノード集合に追加する処理（ＳＴ２０６）の直前にこれらのノードの内容を決定することで、決定木を学習するのと同時にノードのメモリ１０３上での配置を改善できる。一方、決定木データをメモリ１０３に読み込む段階で配置を改善する場合には、探索候補ノード集合へノードを追加するときに該当するノードデータをストレージ装置（図示せず）から読み出すようにする。
【００２９】
ＳＴ２０３は条件分岐であり、探索候補ノード集合に要素が残っているかを判断する。決定木中の全てのノードのメモリ１０３への配置処理が完了した時点で探索候補ノード集合が空になり、ＳＴ２０７以降の処理に進む。まだ要素が残っている場合はＳＴ２０４に進む。
【００３０】
ＳＴ２０４では探索候補ノード集合からスコア最小のノードを抽出する。スコアの算出方法はノードの深さにより二つを切り替えるようになっており、ＳＴ２０４での処理により、深さＴ以下のノードについては幅優先探索順で、Ｔよりも大きな深さのノードについては深さ優先探索順でノードを取り出すことになる。取り出したノードをＮとする。
【００３１】
ＳＴ２０５では、ＳＴ２０４で抽出したノードＮのデータをメモリ１０３上に配置する。このとき、直前に配置したノードデータの直後にノードＮのデータを置くようにする。したがって、メモリ１０３上では根ノードを先頭として、ＳＴ２０４でのノード抽出順にノードデータが並べられることになる。
【００３２】
ＳＴ２０６ではノードＮの子ノードを探索候補ノード集合に追加する。このとき数２、数３で表されるスコアも同様に追加する。前述のとおり、学習時にメモリ配置を改善する場合はこの段階でＮの子ノードの内容を決定し、追加するようにすれば良い。一方、決定木データの読み込み時にメモリ配置を改善する場合には、この段階で子ノードのデータをストレージから読み出すようにすれば、メモリ配置の改善に必要なメモリ１０３の容量を少なく抑えることができる。
【００３３】
ここまでの処理で、決定木の全てのノードについてノードの配置の改善処理が終了したことになる。学習時にここまでの処理を行う場合は、ここまでの処理でメモリ１０３上に配置されたデータをそのままの順序でストレージ装置に保存し、認識処理を行うときにはストレージ装置から記録された順序でノードデータを読み出し、順序を変えずにメモリ１０３上に展開してＳＴ２０７以降の処理に進む。
【００３４】
ＳＴ２０７からＳＴ２１３までの処理はブロック図の認識処理部１０２で行われる処理に該当する。
【００３５】
ＳＴ２０７では、決定木に入力するデータを準備する。この処理は決定木で認識する対象に依存するため、アプリケーションにより処理内容が異なるが、一般的には認識したい対象から特徴量ベクトルを算出する処理が行われる。この説明で用いている決定木の場合だと、画像データを入力し、画像内の二点の輝度値の大小関係を比較して次に遷移する子ノードを決定するので、入力画像から車両かどうかを判定したい領域を切り出して、領域サイズを正規化する、といった処理が行われる。
【００３６】
続くＳＴ２０８ではＳＴ２０７で準備された入力データのクラスを判定すべく、最初にアクセスする根ノードのデータをメモリ１０３から読み込む。つまり、決定木データの先頭のノードデータを読む。
【００３７】
ＳＴ２０９は読み込んだノードが終端ノードかどうかを判定する。この説明で用いている決定木では、ノードデータに終端・非終端ノードを判定するための１バイトのフラグが付加されているのでこのフラグで判定を行う。この処理で終端ノードに到達していればＳＴ２１２に進む。非終端ノードの場合はＳＴ２１０に進む。
【００３８】
ＳＴ２１０では非終端ノードのノードデータから分岐条件を読み出し、入力データと照合する。そして照合結果に応じて次に遷移するノードを子ノードの中から選択する。この説明で用いている決定木では、分岐条件として点aと点bの座標が記述されており、子ノードとして、点aの輝度の方が大きい場合とそうでない場合の二つのノードのインデックスが記録されている。そのため、入力された画像データから点aと点bの座標の輝度値を読み取り、その値の大小により二つの子ノードのうち一つを選択する、という処理を行うことになる。
【００３９】
ＳＴ２１１ではＳＴ２１０で選択された子ノードを次に遷移するノードとしてメモリ１０３から読み出す。読み込んだらＳＴ２０９の終端判定に戻る。
【００４０】
一方、終端ノードに到達した場合はＳＴ２１２に進む。ＳＴ２１２では終端ノードのノードデータに保存された、クラスのスコアを入力されたデータの認識結果として出力する。本実施形態の例では、終端ノードに車両クラスと非車両クラスのスコアが保存されているのでこれを出力する。以上により、入力された画像が車両かそうでないかをそれぞれのスコアで出力できたことになる。決定木を一つ用いる場合には、このスコアの大小で車両かどうかを判定することになる。一方、複数の決定木を用いることもでき、このときはそれぞれの決定木が出力したスコアを合計して車両か否かの判定を行う。
【００４１】
ＳＴ２１３ではすべての入力データを認識したかを判定する。画像データの場合だと一枚の画像から複数の領域を切り出して認識処理を実行することが多く、また、それが複数のフレームに及ぶことも多い。このような場合にはＳＴ２０７に戻って同様の認識処理を実行する。一方、認識処理が全て完了した場合は認識処理を終了する。
【００４２】
以上によりメモリ１０３の配置を改善した決定木での認識処理が可能になる。幅優先探索順でノードを並べた場合、全ての子ノードとのメモリ１０３上での距離はほぼ同じとなる。しかしながら、ノードの深さが大きくなってくるにつれてその距離は指数関数的に大きくなる。アドレスの離れたメモリアクセスはキャッシュメモリに読み込まれていないため、読み込み処理に時間がかかってしまう。そのため、決定木のノードを全て幅優先探索順で並べると、根ノードに近い部分は親子ノード間の距離が近いのでキャッシュメモリに子ノードのデータが読み込まれる確率が非常に高いが、終端ノードに近付くにつれてキャッシュメモリにデータが蓄えられている確率は指数関数的に減少する。そこで、一定以上の深さのノードについては深さ優先探索順に切り替えてノードを並べている。深さ優先探索順にノードを並べた場合、子ノードのうち一つとは隣り合うようにメモリ１０３上に並ぶため距離が近く、その他のノードについては遠い位置に配置される。そのため、二分木の決定木の場合、終端に近いノードであっても約50％の確率で隣接したノードデータに遷移することになり、このときのキャッシュメモリへのヒット率は高い。二つの探索手法を組み合わせて使うことにより、根ノードから終端ノードまで全体にわたって、子ノードのデータがキャッシュメモリに蓄えられている確率を一定以下に落とさずに維持できる。このためノード遷移時のキャッシュメモリへのヒット率が高くなり、認識処理を高速化できるという効果が得られる。しかも、メモリ配置を変更することで認識性能に影響を与えることなく高速化でき、決定木を使った処理全体に適用が可能であるという利点がある。実行するプロセッサに合わせて探索手法の切り替えのしきい値Ｔを適用的に変更できるという利点もある。
【００４３】
[第２の実施形態]
本実施形態の認識装置は、幅優先探索と深さ優先探索の切り替えを遷移確率に応じて行う点が第１の実施形態とは異なる。
【００４４】
図８本実施形態に係わる認識装置のブロック図をに示す。第１の実施形態の認識装置に加えて、非終端ノードにおけるそれぞれの子ノードへの遷移確率を推定するための遷移確率推定部７０１を備える。処理のフローチャートは図４と同じであるが、一部の処理で遷移確率推定部７０１を使うようになるため、処理内容が異なる部分について説明する。
【００４５】
第２の実施形態に係わる認識装置ではＳＴ２０２とＳＴ２０６における、ノードのスコアの算出方法が異なる。各ノードのスコアを遷移確率推定部７０１から出力される子ノードへの遷移確率を加味して算出する。第１の実施形態におけるノードのスコアの算出式は数２、および数３であるが、これがそれぞれ
【数４】
2011150546.tif 000006
【数５】
2011150546.tif 000007
【００４６】
になる。ここで、prob(n)はノードnの親ノードからノードnに遷移する確率を表す。決定木に入力されうる全てのデータを入力したときのノードnへの遷移確率を求めることはできないため、ノード遷移確率推定部では容易に算出可能な近似値をprob(n)として出力する。
【００４７】
学習の段階でノード配置の改善を行う場合、ノード遷移確率推定部は学習サンプルを決定木に入力したときのサンプルの分岐度合いから遷移確率を推定する。ノードnの親ノードに到達する学習サンプルの数をNp、そのうちノードnに到達するサンプルの数をNcとすると、
【数６】
2011150546.tif 000008
【００４８】
をprob(n)の近似値とする。根ノードについては親ノードが存在しないためprob(n)=1とする。
【００４９】
一方、学習した決定木のデータをストレージ装置から読み込むときにノード配置の改善を行う場合、学習サンプルが各ノードに到達する数を保存しておいて、数６でprob(n)を算出することもできるが、さらに認識処理時に入力データが各ノードに到達した数も記録しておいてprob(n)の推定精度を向上させることもできる。学習の段階でノードnの親ノードに到達するサンプル数をNp、そのうちノードnに到達するサンプル数をNc、さらに認識処理時にノードnの親ノードに到達するサンプル数をNp’、ノードnに到達するサンプル数をNc’として、
【数７】
2011150546.tif 000009
【００５０】
Np’、Nc’については認識処理時にデータを蓄積しておき、処理終了時に保存しておく。こうすることで、認識装置を再起動するたびにprob(n)の推定に用いるサンプル数が増加することになり、prob(n)の推定精度が向上していくことが期待できる。
【００５１】
以上のようにして計算されるprob(n)をノード配置のスコア算出に含める。これにより、第１の実施形態のスコア算出法ではスコアが同一となっていた同一の親ノードを持つ子ノード集合でスコアの差が付くようになる。すなわち同一の親ノードを持つ子ノード間では遷移確率がより高いノードのスコアが小さくなり、メモリ１０３上で前の方に並べられるようになる。このことは深さ優先探索順にメモリ配置を行うノードに対して有効に作用する。深さ優先探索順にノードを配置する場合、親ノードpの直後にpの子ノードのうちの１つc1が来る。そのため、pとc1の距離は最小になる。ところが次の子ノードc2はc1の子ノード以下全ての後ろに配置されることになり、pとの距離は非常に遠くなってしまう。つまり、深さ優先探索順に並べるときは直後に並べられる子ノードc1に遷移する際にキャッシュメモリにヒットすると考えてよい。このノードc1に最も遷移確率が高いノードを割り当てることにより、キャッシュにヒットするノード遷移を起こり易くするというのが本実施形態に係わる認識装置の最大の効果である。ノード遷移確率推定部７０１を追加することにより、探索手法の切り替えに上乗せする形でキャッシュメモリへのヒット率を高めることが可能である。
【００５２】
［第３の実施形態］
本実施形態の認識装置のブロック図は第２の実施形態と同じである。あるノードnの親ノードからの遷移確率を推定するためのノード推定確率推定部７０１、メモリ１０３上のノードデータ配置を決定するための配置部７０２、ノード配置を改善した決定木を使って認識処理を行うための認識処理部７０３を備える。
【００５３】
図９は、本実施形態の動作を表すフローチャートである。図４のフローチャートと比べると探索方法の切り替えのしきい値Ｔを決める処理を行わない点が異なる。さらに、ＳＴ８０１、およびＳＴ８０５におけるノードのスコア算出を
【数８】
2011150546.tif 000010
【００５４】
を用いて行う。つまり、探索手法の切り替えを行わず、ノード遷移確率を加味した深さ優先探索順にノードをメモリ１０３上に配置する。第２の実施形態で述べたように遷移確率の高い子ノードからメモリ１０３上に並べることにより、ノード遷移時のキャッシュメモリへのヒット率を向上させる、という効果が得られる。本実施形態では探索方法の切り替えが発生しないため、実行するプロセッサのスペックに依存して変わるパラメータがない。そのため、同じ決定木をどのプロセッサで動かしても問題がない。深さ優先探索に子ノードの探索順序を決めるルールを追加するだけなので実装しやすい、といった利点もある。
【００５５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００５６】
また、上記の各実施形態の画像鮮鋭化装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。実行されるプログラムは、上述した各機能を含むモジュール構成となっている。プログラムはインストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供しても、ROM等に予め組み込んで提供してもよい。
【符号の説明】
【００５７】
１０１・・・認識部、１０２・・・配置部、１０３・・・メモリ、７０１・・・遷移確率推定部
【図１】
2011150546.tif 000011
【図２】
2011150546.tif 000012
【図３】
2011150546.tif 000013
【図４】
2011150546.tif 000014
【図５】
2011150546.tif 000015
【図６】
2011150546.tif 000016
【図７】
2011150546.tif 000017
【図８】
2011150546.tif 000018
【図９】
2011150546.tif 000019