(58)【調査した分野】(Int.Cl.,DB名)
それぞれに複数のラベルのうち一つのラベルが付与された複数の既分類ノードのデータを参照し、前記複数の既分類ノードのうち同じラベルが付与された既分類ノード同士を接続したエッジのデータを生成する接続部と、
前記接続部により生成されたエッジのデータを参照し、両端の前記既分類ノードのラベルが異なるエッジ同士が交差する場合、前記交差する二つのエッジのうち長い方のエッジを除去することで、未分類ノードにラベルを付与するための構造データを生成する生成部と、
を備える情報処理装置。
前記生成部は、前記接続部により生成されたエッジのうち短いエッジから順にエッジを選択し、前記選択したエッジと、前記選択したエッジと交差するエッジとのうち長い方のエッジを除去する処理を行う、
請求項1記載の情報処理装置。
前記所定範囲は、前記未分類ノードを中心とし、前記未分類ノードに最も近い前記既分類ノードと前記未分類ノードとの距離に所定数を乗算した値を半径とした円領域である、
請求項3記載の情報処理装置。
前記構造データに含まれるエッジのうち未分類ノードに最も近いエッジを抽出し、前記抽出した最も近いエッジの両端の既分類ノードに付与されたラベルを、前記未分類ノードに付与する付与部を更に備える、
請求項1から7のうちいずれか1項記載の情報処理装置。
それぞれに複数のラベルのうち一つのラベルが付与された複数の既分類ノードのデータを参照し、前記複数の既分類ノードのうち同じラベルが付与された既分類ノード同士を接続したエッジのデータを生成し、
前生成したエッジのデータを参照し、両端の前記既分類ノードのラベルが異なるエッジ同士が交差する交差点交差する場合、前記交差する二つのエッジのうち長い方のエッジを除去することで、未分類ノードにラベルを付与するための構造データを生成する、
情報処理方法。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係る情報処理装置1の機能構成の一例を示す図である。
【
図2】既分類ノードデータ52の内容の一例を示す図である。
【
図3】エッジデータ54のデータ形式の一例を示す図である。
【
図4】マニフォルド生成部30の処理の内容について説明するための図(その1)である。
【
図5】マニフォルド生成部30の処理の内容について説明するための図(その2)である。
【
図6】マニフォルド生成部30の処理の内容について説明するための図(その3)である。
【
図7】マニフォルド生成部30の処理の内容について説明するための図(その4)である。
【
図8】長いエッジから順に各交差点について距離が長い方のエッジを削除した場合の結果を示している。
【
図9】選択順によるメリットについて説明するための図である。
【
図10】情報処理装置1において実行される処理の流れの一例を示すフローチャートである。
【
図12】第2実施形態の情報処理装置2の機能構成の一例を示す図である。
【
図13】ノード絞り込み部15による処理の内容について説明するための図である。
【
図14】所定数kの決定根拠について説明するための図である。
【
図15】第2実施形態の情報処理装置2により実行される処理の流れの一例を示すフローチャートである。
【
図16】ローカル領域の設定手法について説明するための図である。
【発明を実施するための形態】
【0009】
<概要>
以下、図面を参照し、本発明の情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、クラウドサービスを提供する装置であってもよいし、ツールやファームウェアなどのプログラムがインストールされ、単体で処理を実行可能な装置であってもよい。情報処理装置は、インターネットやWANなどのネットワークに接続されていてもよいし、接続されていなくてもよい。すなわち、情報処理装置を実現するためのコンピュータ装置について特段の制約は存在せず、以下に説明する処理を実行可能なものであれば、如何なるコンピュータ装置によって情報処理装置が実現されてもよい。
【0010】
情報処理装置は、例えば二次元座標を有するノードのうち、ラベルが付与されていないノード(以下、未分類ノード)に対して、ラベルを付与するための構造データ(マニフォルド)を生成する装置である。マニフォルドは、同じラベルが付与されたノード間を接続するエッジを集めたものである。マニフォルドは、ひと固まりの多角形で表現される場合もあるし、分離した二以上の多角形で表現される場合もある。
【0011】
エッジの両端のノードには同じラベルが付与されている。このため、エッジの両端のノードのそれぞれに付与されたラベルのことを、便宜的に、エッジに付与されたラベルと称する。情報処理装置は、同じラベルが付与されたノード同士を網羅的に接続しエッジを生成する。そして、情報処理装置は、付与されたラベルが異なるエッジが互いに交差しないようにエッジの一部を削除することで、マニフォルドを生成する。
【0012】
マニフォルドは、未分類ノードに対して、どのラベルを付与するかを決定するために用いられる。例えば、情報処理装置は、未分類ノードと全てのマニフォルドとの距離をそれぞれ計算し、最も距離が小さいマニフォルドに付与されているラベルを、未分類ノードに付与するラベルとして決定する。
【0013】
ラベルとは、ノードで表現されたデータを分類する情報である。一例として、手書きの「0」から「9」までの数字を自動的に認識する場合を例として考えると、ラベルとは、認識結果が「0」から「9」のいずれであるかを示す情報である。この場合、手書きの画像から得られる多次元データを何らかの手法により二次元ベクトルに次元圧縮したものがノードの座標となる。次元圧縮の手法としては、例えばt−SNEなどのアルゴリズムが使用される。t−SNEとは、高次元空間で多変量正規分布に従う座標を、低次元空間で自由度1のt分布に変換して座標を求めるアルゴリズムである。
【0014】
また、ノードは、ネットワークを介して配信される記事などのコンテンツの特徴を二次元ベクトルにしたものであってもよい。この場合、ラベルとは、例えば、記事のジャンルを示す情報である。また、ノードは、犬や猫などを撮像した画像の特徴を二次元ベクトルにしたものであってもよい。この場合、ラベルとは、被写体の種別を示す情報である。これらの場合も次元圧縮によってノードが生成される。
【0015】
また、ノードは、元々二次元座標で表現される情報であってもよい。例えば、ノードは、人の身長と体重を要素とした二次元ベクトルであってもよい。この場合、次元圧縮の処理は不要となる。この場合のラベルとは、例えば、性別、国籍などの情報である。
【0016】
以下、このような情報処理装置の機能について段階的に説明する。
【0017】
<第1実施形態>
図1は、第1実施形態に係る情報処理装置1の機能構成の一例を示す図である。情報処理装置1は、例えば、入力データ取得部10と、ノード間接続部20と、マニフォルド生成部30と、ラベル付与部40と、記憶部50とを備える。記憶部50には、既分類ノードデータ52やエッジデータ54、マニフォルド56などのデータが格納される。記憶部50以外の構成要素は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。記憶部50は、例えば、HDD(Hard Disk Drive)やフラッシュメモリ、RAM(Random Access Memory)などの記憶装置により実現される。プログラムは、予め記憶部50に格納されていてもよいし、DVDやCD−ROMなどの着脱可能な記憶媒体に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。なお、
図1に示す構成からラベル付与部40の機能が省略され、情報処理装置1は、マニフォルドを生成するところまでを行うものであってもよい。
【0018】
入力データ取得部10は、図示しない入力デバイス(マウスやキーボード、タッチパネルなど)を介して、或いはネットワークを介して入力データを取得する。入力データには、既分類ノードデータ52と、未分類ノードデータとが含まれる。
図2は、既分類ノードデータ52の内容の一例を示す図である。既分類ノードデータ52は、二次元座標を有し、それぞれに複数のラベルのうち一つのラベルが付与されたノードの集合である。既分類ノードデータ52は、例えば、ノードIDに対して、座標とラベルの情報が対応付けられた情報である。ラベルは、情報処理装置1に入力された時点で付与されていてもよいし、先に入力されたノードに対して情報処理装置1によって付与されてもよい。
【0019】
ノード間接続部20は、既分類ノードデータ52を参照し、同じラベルが付与された既分類ノード同士を網羅的に接続したエッジのデータ(エッジデータ54)を生成する。
図3は、エッジデータ54のデータ形式の一例を示す図である。エッジデータ54は、エッジIDに対して、両端ノードのノードIDと、両端ノードに付与されたラベルと、ノード間距離とが対応付けられた情報である。ノード間の距離は、ノード間接続部20により計算されてエッジデータ54に付与されていてもよいし、マニフォルド生成部30によって計算されてもよい。
図3では前者を前提としている。また、エッジデータ54からラベルは省略されてもよい。
【0020】
マニフォルド生成部30は、エッジデータ54を参照し、両端の既分類ノードのラベルが異なるエッジ(付与されたラベルが異なるエッジ)同士が交差する交差点を抽出し、抽出した交差点を通過する二つのエッジのうち長い方のエッジを除去することで、二次元座標を有する未分類ノードにラベルを付与するためのマニフォルド56を生成する。
【0021】
また、好ましくは、マニフォルド生成部30は、エッジデータ54を参照し、ラベルに関わらず短いエッジから順にエッジを選択し、選択したエッジについて、交差点を抽出して交差点を通過する二つのエッジのうち長い方のエッジを除去する処理を行う。
【0022】
図4は、マニフォルド生成部30の処理の内容について説明するための図(その1)である。ここでは、説明を簡略化するためにラベルが2種類用意されるものとする。図中、白丸で示されるものがラベル(1)が付与された既分類ノードであり、黒丸で示されるものがラベル(2)が付与された既分類ノードであり、二重丸で示されるものが未分類ノードであり、三角で示されるものが交差点である。
【0023】
図示するように、ラベル(1)が付与された既分類ノードは、左側に偏して分布しており、ラベル(2)が付与された既分類ノードは、右側に偏して分布している。この分布であれば、未分類ノード(N100)にはラベル(1)を付与するのが適切であると考えられる。しかしながら、未分類ノード(N100)に最も近い既分類ノード(N010)にはラベル(2)が付与されている。従って、単純に最も近い既分類ノードと同じラベルを付与するようなアルゴリズムを採用した場合、未分類ノード(N100)にラベル(2)が付与されてしまう。
【0024】
このような現象を回避するために、マニフォルド生成部30は、以下に説明する処理を実行する。
図5は、マニフォルド生成部30の処理の内容について説明するための図(その2)である。図中、エッジに付された番号は、距離が短い順に付された番号である。以下、便宜上、この番号をエッジの識別情報として「エッジ1」のように表現する。マニフォルド生成部30は、エッジ1から順に交差点を抽出する。エッジ1〜エッジ5までは交差点が存在しない。エッジ6には交差点が二つ存在し、エッジ9およびエッジ16と交差している。マニフォルド生成部30は、各交差点について距離が長い方のエッジを削除する。すなわち、マニフォルド生成部30は、エッジ6よりも長いエッジ9およびエッジ16を削除する。なお、互いに交差するエッジの距離が同じ場合、双方を削除してもよいし、双方を残してもよい。また、一つの交差点において3つ以上のエッジが交差する場合、マニフォルド生成部30は、最も短いエッジを残すようにしてもよいし、最も長いエッジを削除するようにしてもよい。
図6は、マニフォルド生成部30の処理の内容について説明するための図(その3)である。本図は、エッジ9およびエッジ16が削除された様子を示している。
【0025】
次に、マニフォルド生成部30は、エッジ7から順に同様の処理を行う。エッジ7には交差点が存在しない。エッジ8には交差点が二つ存在し、エッジ10およびエッジ15と交差している。マニフォルド生成部30は、エッジ8よりも長いエッジ10およびエッジ15を削除する。
図7は、マニフォルド生成部30の処理の内容について説明するための図(その4)である。本図は、エッジ10およびエッジ15が削除された様子を示している。
【0026】
マニフォルド生成部30は、
図7に示す状態の後も、エッジ11以降について順に処理を行うが、
図7に示す状態で交差点が全て消失しているため、
図7に示す状態のエッジの集合がマニフォルド56となる。マニフォルド56は、ラベルごとのエッジの集合データである。マニフォルド56において、異なるラベルが付与されたエッジは互いに交わらず、ラベルごとに分離された多角形形状を構成していることが分かる。
【0027】
ラベル付与部40は、各ラベルのマニフォルド56と、未分類ノードとの距離をそれぞれ計算し、未分類ノードとの距離が最も小さいマニフォルド56のラベルを未分類ノードに付与する。マニフォルド56と未分類ノードとの距離とは、マニフォルド56を構成する全てのエッジ上の点のうち最も未分類ノードに近い点との距離である。
【0028】
図7におけるD(1)は、ラベル(1)が付与されたマニフォルド56(1)と未分類ノードとの最短経路であり、D(2)は、ラベル(2)が付与されたマニフォルド56(2)と未分類ノードとの最短経路である。図示するように、D(1)の方がD(2)よりも短いため、ラベル付与部40は、未分類ノードにラベル(1)を付与する。
【0029】
なお、既分類ノードはエッジの端点であるため、最も未分類ノードに近い点が既分類ノードと一致することもあり得る。但し、エッジに接続されていない既分類ノード(接続されたエッジが全てマニフォルド生成部30により削除された既分類ノード)は距離の計算において考慮しない。この点、マニフォルド生成部30が、エッジに接続されていない既分類ノードを削除する処理を行ってもよいし、ラベル付与部40が、エッジに接続されていない既分類ノードを考慮せずに距離を計算するようにしてもよい。
【0030】
なお、
図8は、参考図であり、長いエッジから順に各交差点について距離が長い方のエッジを削除した場合の結果を示している。図中、括弧書きの数字は削除されたエッジを参考のために示したものである。この図に示すように、長いエッジから順に処理を行った場合、一つのエッジにのみ接続されたノードが出現しがちであり、最終的に存在してもよい筈のエッジ11、14が削除されてしまっている。
【0031】
短いエッジから順に、各交差点について各交差点について距離が長い方のエッジを削除することで、一度「残す」と決定されたエッジは最後まで残ることが保証される。短い順にエッジを選択するのであるから、順次選択されるエッジ(選択エッジ)について、選択エッジに交差し且つ選択エッジよりも短いエッジは存在し得ないからである。
【0032】
図9は、選択順によるメリットについて説明するための図である。例えば、A、B、Cの三つのエッジがあり、長さはA>B>Cであるものとする。また、AはBと交差し、Cとは交差しない。BはCと交差するものとする。長い順にエッジを選択する場合、まずAが先に選択され、Aはより短いBと交差するため削除される。次に、Bが選択され、Bはより短いCと交差するため削除される。この結果、Cのみが残ることになる。一方、短い順にエッジを選択する場合、まずCが選択され、Cはより長いBと交差するためBが削除される。次に、Aが選択されるが、交差するエッジが存在しないため残される。この結果、AとCが残ることになる。エッジが多く残れば残るほどマニフォルド56の形が見えやすくなるので、短い順にエッジを選択する方が好ましい。換言すると、短い順にエッジを選択していくと生成されるマニフォルドが徐々に構成されていくのに対し、長い順にエッジを選択してくと構成するマニフォルドの形が途中で変わってしまったり、消えてしまったりする。その結果、「分類に必要なエッジ」が消えてしまったりする可能性があるため、短い順にエッジを選択する方が好ましい。
図8に示す構成よりも、
図7に示す構成の方が、エッジの数がリッチで好ましいのである。但し、エッジをランダムに選択して処理を行うなど、必ずしも短い順に選択するのではない手法も採用されてよい。
【0033】
図10は、情報処理装置1において実行される処理の流れの一例を示すフローチャートである。まず、ノード間接続部20が、既分類ノードデータ52を記憶部50から読み出す(S100)。
【0034】
ノード間接続部20は、以下の処理を全てのラベルについて実行する。ノード間接続部20は、着目するラベルが付与された既分類ノードを抽出する(S102)。そして、S102で抽出した既分類ノードを網羅的に接続してエッジを生成する(S104)。
【0035】
次に、マニフォルド生成部30が、全てのラベルについて実行されたS104の処理において生成されたエッジを短い順に並べ(S106)、短いものから順にエッジを一つ選択する(S108)。次に、マニフォルド生成部30は、選択したエッジ上の交差点を抽出する(S110)。マニフォルド生成部30は、交差点が存在するか否かを判定し(S112)、存在する場合には、交差点を通るエッジのうち長い方を削除し(S114)、S110に処理を戻す。なお、本フローチャートでは、S108で「短いものから順にエッジを一つ選択する」としているため、S114では、S110で選択したエッジと交差するエッジが必ず削除されることになる。
【0036】
S112において交差点が存在しないと判定した場合、マニフォルド生成部30は、S108の処理を繰り返し行うことで、全てのエッジを選択し終えたか否かを判定する(S116)。全てのエッジを選択し終えていない場合、マニフォルド生成部30は、S108に処理を戻す。
【0037】
全てのエッジを選択し終えると、マニフォルド56が確定する。ラベル付与部40は、未分類ノードとラベルごとのマニフォルド56との距離をそれぞれ計算し(S118)、未分類ノードとの距離が最も小さいマニフォルド56のラベルを未分類ノードに付与する(S120)。
【0038】
[実施例]
図11は、第1実施形態の実施例を示す図である。
図11の上図は、MNISTデータ(手書きの0〜9までの数字に対応する画像)を二次元に圧縮したノード群を示しており、Softmax回帰などでラベルが付与されている。
図11の下図は、ノード群から生成されたマニフォルド56を示している。図中の濃淡は、ラベルを示している。図示するように、各ラベルのマニフォルド56は、他のラベルのマニフォルド56と交差しないように延在し、ノードの分布を適正に反映させていることがわかる。
【0039】
[まとめ]
以上説明した第1実施形態によれば、複数の既分類ノードのうち同じラベルが付与された既分類ノード同士を接続したエッジのデータを生成するノード間接続部20と、ノード間接続部20により生成されたエッジのデータを参照し、両端の既分類ノードのラベルが異なるエッジ同士が交差する交差点を抽出し、抽出した交差点を通過する二つのエッジのうち長い方のエッジを除去することで、二次元座標を有する未分類ノードにラベルを付与するためのマニフォルド56を生成するマニフォルド生成部30と、を備えることにより、既分類ノードのラベル分布を適切に反映させてマニフォルド56を生成することができる。
【0040】
また、第1実施形態によれば、マニフォルド生成部30は、ノード間接続部20により生成されたエッジのうち短いエッジから順にエッジを選択し、選択したエッジについて、交差点を抽出して、交差点を通過する二つのエッジのうち長い方のエッジを除去する処理を行うため、マニフォルド56の形状を更に好適なものにすることができる。
【0041】
<第2実施形態>
以下、第2実施形態について説明する。
図12は、第2実施形態の情報処理装置2の機能構成の一例を示す図である。第2実施形態の情報処理装置2は、第1実施形態の情報処理装置1と比較すると、ノード絞り込み部15を更に備える。
【0042】
ノード絞り込み部15は、既分類ノードデータ52に含まれる既分類ノードデータ52を、与えられた未分類ノードの位置を基準とした所定範囲内の領域に存在する既分類ノードに絞り込む。そして、ノード間接続部20は、ノード絞り込み部15によって絞り込まれた既分類ノードのうち同じラベルが付与された既分類ノード同士を接続してエッジデータ54を生成し、マニフォルド生成部30は、このように生成されたエッジデータ54を対象としてマニフォルド56を生成する。
【0043】
図13は、ノード絞り込み部15による処理の内容について説明するための図である。図示するように、ノード絞り込み部15は、例えば、未分類ノードを中心とし、未分類ノードに最も近い既分類ノードと未分類ノードとの距離r
minに所定数kを乗算した値k×r
minを半径とした円領域CAに存在する既分類ノードに絞り込む。これによって、未分類ノードへのラベル付与に対して影響の高い既分類ノードのみについて処理を行うことになり、処理時間を短縮することができる。なお、「未分類ノードの位置を基準とした所定範囲」とは、上記の円領域CAに限らず、矩形領域や楕円領域などであってもよい。
【0044】
特に手書き数字認識の分野に適用する場合、所定値kは、例えば3から5の間であり、より好ましくは、4付近の値であると好適である。
図14は、所定数kの決定根拠について説明するための図である。図示するように、所定数kは分類精度と処理時間の双方に影響を与える。ここでの分類精度とは、絞り込みを行わずに全ての既分類ノードに対して処理を行った分類結果との一致度である。所定数kが増加すると、分類精度は向上し、十分に所定数kが大きくなると1に漸近する。一方、所定数kが増加すると、対象となる既分類ノードの数をmとした場合、凡そで処理時間が増加してしまう。このトレードオフの関係において、分類精度が十分に1に近づき且つ処理時間が余り大きくならない程度の所定数kの範囲が、前述した3から5の間の範囲である。
【0045】
なお、上記では、「所定範囲内に存在する既分類ノードに絞り込む」ものとしたが、これに代えて「所定範囲内に全体が収まるエッジに絞り込む」ようにしてもよい。この場合、円領域で判定するとしたら、所定数kは上記よりも大きい値にするとよい。
【0046】
図15は、第2実施形態の情報処理装置2により実行される処理の流れの一例を示すフローチャートである。まず、ノード間接続部20が、既分類ノードデータ52を記憶部50から読み出す(S100)。次に、ノード絞り込み部15が、既分類ノードデータ52に含まれる既分類ノードを、与えられた未分類ノードの位置を基準とした所定範囲内の領域に存在する既分類ノードに絞り込む(S101)。これ以降の処理は、第1実施形態と同様である。
【0047】
[まとめ]
以上説明した第2実施形態によれば、第1実施形態と同様の効果を奏することができるのに加え、処理時間を短縮することができる。
【0048】
<第3実施形態>
以下、第3実施形態について説明する。第3の実施形態では、ノード間接続部20およびマニフォルド生成部30が、未分類ノードが与えられていない段階で、予めローカル領域ごとにマニフォルド56を作成しておき、ラベル付与部40が、未分類ノードが与えられたときに、未分類ノードが最も中心付近に位置するローカル領域を選択して、そのローカル領域で生成されたマニフォルド56に基づいて未分類ノードにラベルを付与する。
【0049】
ローカル領域は、互いに重複するように設定されると好適である。ローカル領域の端部付近に未分類ノードがあると、分類精度が低下するからである。
図16は、ローカル領域の設定手法について説明するための図である。ローカル領域は、例えば、縦横方向に半分ずつずらしながら設定される。図中、GAはグローバル領域すなわち対象平面全体であり、RA(1)、RA(2)、RA(3)はローカル領域である。
【0050】
このような態様であっても、各ローカル領域RA内の処理は、グローバル領域GA全体について処理をする場合に比して、ローカル領域RAの数の逆数よりも大きく改善することが期待される。前述したように、既分類ノードの数mに対して処理時間はmの二乗のオーダーで増加するからである。
【0051】
[まとめ]
以上説明した第3実施形態によれば、第1実施形態と同様の効果を奏することができるのに加え、処理時間を短縮することができる。
【0052】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。