以下、添付の図面を参照しながら、本発明の実施形態について説明する。なお、この実施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。図面においては、理解容易のため、必要に応じて各部の寸法や数が誇張又は簡略化して図示されている場合がある。また、本願において、一または複数の構成要素を「備える」、「含む」または「有する」という表現は、特に断らない限り、他の構成要素の存在を除外する排他的表現ではない。
<1. 第1実施形態>
図1は、実施形態の画像分類装置1の概略構成を示す図である。画像分類装置1では、半導体基板9上のパターン欠陥を示す欠陥画像が取得され、その欠陥画像の分類が行われる。画像分類装置1は、撮像装置2、検査・分類装置4およびホストコンピュータ5を備えている。なお、本実施形態では、分類対象が半導体基板を撮像して得られた欠陥画像である場合を例として説明するが、欠陥画像に限られるものではなく、例えば、細胞を撮像して得られた細胞画像等を分類対象としてもよい。
撮像装置2は、半導体基板9上の検査対象領域を撮像する。検査・分類装置4は、撮像装置2によって取得された画像データに基づく欠陥検査を行う。検査・分類装置4は、欠陥が検出された場合に、その欠陥を欠陥の種別(クラス)毎に分類する。半導体基板9上に存在するパターンの欠陥のクラスは、欠損、突起、断線、ショート、異物などを含み得る。ホストコンピュータ5は、画像分類装置1の全体動作を制御するとともに、検査・分類装置4における欠陥の分類に利用される分類器422を生成する。
撮像装置2は、半導体基板9の製造ラインに組み込まれ、画像分類装置1はいわゆるインライン型のシステムとされ得る。画像分類装置1は、欠陥検査装置に自動欠陥分類の機能を付加した装置である。
撮像装置2は、撮像部21、ステージ22およびステージ駆動部23を備えている。撮像部21は、半導体基板9の検査領域を撮像する。ステージ22は、半導体基板9を保持する。ステージ駆動部23は、撮像部21に対してステージ22を半導体基板9の表面に平行な方向に相対移動させる。
撮像部21は、照明部211、光学系212および撮像デバイス213を備えている。光学系212は、半導体基板9に照明光を導く。半導体基板9にて反射した光は、再び光学系212に入射する。撮像デバイス213は、光学系212により結像された半導体基板9の像を電気信号に変換する。
ステージ駆動部23は、ボールネジ、ガイドレール、モータ等により構成されている。ホストコンピュータ5がステージ駆動部23および撮像部21を制御することにより、半導体基板9上の検査対象領域が撮像される。
検査・分類装置4は、欠陥検出部41および自動分類部42を有する。欠陥検出部41は、検査対象領域の画像データを処理しつつ欠陥を検出する。詳細には、欠陥検出部41は、検査対象領域の画像データを高速に処理する専用の電気的回路を有し、撮像により得られた画像と参照画像(欠陥が存在しない画像)との比較や画像処理により検査対象領域の欠陥検査を行う。自動分類部42は、欠陥検出部41が検出した欠陥画像を分類する。詳細には、自動分類部42は、各種演算処理を行うCPUや各種情報を記憶するメモリ等により構成される。自動分類部42は、特徴量算出部421および分類器422を有する。分類器422は、ニューラルネットワーク、決定木、判別分析等を利用して欠陥の分類、すなわち、欠陥画像の分類を実行する。
図2は、実施形態の画像分類装置1による欠陥画像の分類の流れを示す図である。まず、図1に示す撮像装置2が半導体基板9を撮像することにより、検査・分類装置4の欠陥検出部41が画像データを取得する(ステップS11)。
続いて、欠陥検出部41が、検査対象領域の欠陥検査を行うことにより、欠陥の検出を行う(ステップS12)。ステップS12において欠陥が検出された場合(ステップS12においてYES)、欠陥部分の画像(すなわち、欠陥画像)のデータが自動分類部42へと送信される。欠陥が検出されない場合は(ステップS12においてNO)、ステップS11の画像データの取得が行われる。
自動分類部42は、欠陥画像を受け取ると、その欠陥画像の複数種類の特徴量の配列である特徴量を算出する(ステップS13)。その算出された特徴量は分類器422に入力され、分類器422により分類が行われる(ステップS14)。すなわち、分類器422により欠陥画像が複数のクラスのいずれかに分類される。画像分類装置1では、欠陥検出部41にて欠陥が検出される毎に、特徴量の算出がリアルタイムに行われ、多数の欠陥画像の自動分類が高速に行われる。
次に、ホストコンピュータ5による分類器422の学習について説明する。図3は、ホストコンピュータ5の構成を示すブロック図である。
ホストコンピュータ5は、CPU51、ROM52およびRAM53を有する。CPU51は各種演算処理を行う演算回路を含む。ROM52は基本プログラムを記憶している。RAM53は各種情報を記憶する揮発性の主記憶装置である。ホストコンピュータ5は、CPU51,ROM52およびRAM53をバスライン501で接続した一般的なコンピュータシステムの構成を備えている。
ホストコンピュータ5は、固定ディスク54、ディスプレイ55、入力部56、読取装置57および通信部58を備えている。これらの要素は、適宜インターフェース(I/F)を介してバスライン501に接続されている。
固定ディスク54は、情報記憶を行う補助記憶装置である。ディスプレイ55は、画像などの各種情報を表示する表示部である。入力部56は、キーボード56aおよびマウス56b等を含む入力用デバイスである。読取装置57は、光ディスク、磁気ディスク、光磁気ディスク等のコンピュータ読取可能な記録媒体8から情報の読み取りを行う。通信部58は、画像分類装置1の他の要素との間で信号を送受信する。
ホストコンピュータ5は、読取装置57を介して記録媒体8からプログラム80を読み取り、固定ディスク54に記録される。当該プログラム80は、RAM53にコピーされる。CPU51は、RAM53内に格納されたプログラム80に従って、演算処理を実行する。
図4は、検査・分類装置4の分類器422を生成するためのホストコンピュータ5の機能構成を示すブロック図である。ホストコンピュータ5の機能は、ホストコンピュータ5のCPU51、ROM52、RAM53および固定ディスク54などにより実現される。図4では、検査・分類装置4も併せて示されている。ホストコンピュータ5は、教師データ作成支援部61、及び、学習部63を有する。教師データ作成支援部61は、分類器の学習に使用される教師データを作成する。学習部63は、教師データを用いて分類器を学習させる。
教師データは、欠陥画像である教師画像のデータ、教師画像の特徴量の値、及び、欠陥のクラスを示す情報である教示クラスを含む。教師画像の特徴量として、例えば、欠陥の面積、明度平均、周囲長、扁平度、欠陥を楕円に近似した場合の長軸の傾き等が採用され得る。
学習部63では、教師データから読み出された教師画像の特徴量の値が、ホストコンピュータ5内の分類器(図示省略)に入力される。そして、分類器の出力が教示クラスと同じになるように学習が行われ、学習結果、すなわち、学習後の分類器422(正確には、分類器422の構造や変数の値を示す情報)が自動分類部42へと転送される。このように、教師データを使用して分類器422が生成される。分類器の生成とは、分類器が含むパラメータに値を付与したり構造を決定したりすること等により、分類器を生成することをいう。
図5は、ホストコンピュータ5の教師データ作成支援部61の機能構成を示すブロック図である。教師データ作成支援部61は、データ演算部610、ディスプレイ55および入力部56を備える。データ演算部610は、記憶部611、サブ教示済データ群構築部613、分類器生成部615、分類成績取得部617、繰返制御部618、データ抽出部619および表示制御部620を備える。データ演算部610の処理の詳細については後述する。なお、データ演算部610(および学習部63)の機能は、専用の電気回路により構築されてもよく、部分的に専用の電気回路が利用されてもよい。
図6は、第1の教師データ作成支援処理の流れを示す図である。以下に説明する各動作は、特に断らない限り、データ演算部610により実行されるものとする。
第1の教師データ作成支援処理では、まず、複数の教示済データ90が準備される(ステップS21)。以下、この複数の教示済データ90を「教示済データ90群」とも称する。教示済データ90は、あらかじめ複数の欠陥のクラスのうち1つが教示クラスとして教示された欠陥画像を示すデータである。教示済データ90群には、間違ったクラスが教示された教示済データ90を含む可能性がある。教師データ作成支援部61が実行する教師データ作成支援処理では、教示間違いの教示済データ90を効率よく発見して、正しいクラスを教示することにより、高品質の教師データを生成するものである。教示済データ90群に含まれる教示済データ90の数量は、特に限定されないが、例えば、1000個〜10万個程度であることが想定される。また、各教示済データ90の教示クラスは、任意の分類器の分類結果に基づいて教示されたものとしてよいし、あるいは、オペレータが各欠陥画像を目視確認すること等に基づいてオペレータが教示したものであってもよい。準備された教示済データ90群は、記憶部611に保存される。
教示済データ90群が準備された後、サブ教示済データ群構築部613が、サブ教示済データ群を構築する(ステップS22)。サブ教示済データ群は、記憶部611に保存された全ての教示済データ90のうち、複数のクラス各々から1つ以上の同数ずつランダムに選定された教示済データ90の集合である。
サブ教示済データ群が構築されると、分類器生成部615がサブ分類器を生成する(ステップS23)。詳細には、分類器生成部615が、サブ教示済データ群に属する複数の教示済データ90を用いた機械学習により、データを分類するサブ分類器を生成する。サブ分類器は、教示済データ90の欠陥画像が持つ特徴量に基づき、複数の欠陥のクラスのうちのいずれか1つに分類する。
具体的に、分類器生成部615では、教示済データ90から読み出された欠陥画像の特徴量が、ホストコンピュータ5内の分類器(図示省略)に入力される。そして、その分類器の出力が、教示クラスと一致するように学習が行われ、学習結果、すなわち、学習後のサブ分類器(正確には、サブ分類器の構造や変数の値を示す情報)が取得される。このように、サブ教示済データ群の教示済データ90を使用して、サブ分類器が生成される。サブ分類器の構築手法の詳細な例については、後述する。
サブ分類器が生成されると、分類成績取得部617がそのサブ分類器の分類成績を取得する(ステップS24)。具体的には、記憶部611に保存された教示済データ90群の全部または一部(サブ教示済データ群以外の教示済データ90を含む)を、そのサブ分類器で分類した場合の分類成績を取得する。分類成績の指標としては、例えば、正答率(Accuracy)が採用され得る。正答率とは、サブ分類器により分類された教示済データ90の総数のうち、サブ分類器で分類されたクラスと教示クラスとが一致した教示済データ90の総数の割合である。
なお、分類成績の指標として、正答率の代わりに再現率(Recall)または適合率(Precision)を採用してもよい。再現率とは、特定の教示クラスの教示済データ90のうち、サブ分類器によって正しくその教示クラスに分類された教示済データ90の割合である。適合率とは、サブ分類器によってある特定のクラスに分類された教示済データ90のうち、教示クラスがその特定のクラスに一致している教示済データ90の割合である。
サブ分類器の分類成績が取得されると、繰返制御部618は、所定数のサブ分類器が生成されたか否かを判定する(ステップS25)。所定数のサブ分類器が生成されていない場合(ステップS25においてNOの場合)、繰返制御部618は、サブ教示済データ群構築部613、分類器生成部615および分類成績取得部617を制御して、ステップS22〜ステップS24を再び実行させる。このように、本例では、所定数のサブ分類器が生成されるまでステップS22〜ステップS24が繰り返し行われる。
繰返制御部618が所定数のサブ分類器が生成されたと判定した場合(ステップS25においてYESの場合)、データ演算部610は、所定数のサブ分類器の中から、分類成績が最良のサブ分類器を選定する(ステップS26)。具体的に、分類成績の指標として「正答率」が採用されている場合、正答率が最も高いサブ分類器が選定される。なお、ステップS26において、分類成績の最も良いサブ分類器が選定されることは必須ではない。所定の分類成績の基準(例えば、「正答率が所定のしきい値を超える」など)を満たす1つのサブ分類器が選定されてもよい。
1つのサブ分類器が選定された後、データ抽出部619は、当該1つのサブ分類器を典型分類器とする。そして、データ抽出部619は、当該典型分類器で、教示済データ90群の全部または一部を分類した場合に、分類先クラスが元の教示クラスと適合しない教示済データ90(以下、「不適合教示済データ」とも称する。)を抽出する(ステップS27)。本例では、典型分類による分類結果は、ステップS24においてその典型分類器に対応するサブ分類器の分類成績を取得した際に得られている。このため、本例では、ステップS27において、改めて分類を行うことは必須ではない。
不適合教示済データが抽出された後、表示制御部620は、その不適合教示済データの欠陥画像をディスプレイ55に表示する(ステップS28)。これにより、教示間違いの可能性がある教示済データ90が、オペレータに提示される。このとき、不適合教示済データについて、欠陥画像とともに、元の教示クラスと分類先クラスとが表示されるとよい。教示済データ90の表示に伴い、データ演算部610が新たなクラスの教示を受け付ける再教示受付部として機能するようにしてもよい。具体的には、オペレータが各教示済データ90を目視により確認して教示クラスの妥当性を判断する。そして、オペレータがクラスの再教示が必要と判断した場合には、入力部56を介して、クラスを指定する入力を行う。データ演算部610は、当該入力を受け付けることにより、記憶部611に保存されているその教示済データ90の教示クラスを修正するとよい。
第1の教師データ作成支援処理によると、所定の分類成績の基準を満たすサブ分類器が典型分類器として選定され、教示済データ90群の中から、当該典型分類器による分類先クラスが教示クラスと適合しない不適合教示済データが抽出される。このため、分類成績の基準を適切に設定することにより、教示間違いの可能性が高い教示済データを効率よく抽出し得る。また、サブ分類器をそのまま典型分類器とするため、分類器の再生成が不要である。このため、分類器生成に係る演算処理量を軽減することができる。特に、分類成績が最も良いサブ分類器に基づいて、不適合教示済データを抽出することにより、不適合教示済データの数量を最小化することができる。
教示済データ90群のうち、サブ分類器の分類先クラスが教示クラスと一致しない教示済データ90(以下、不一致教示済データとも称する。)は、サブ分類器の分類成績を低下させるものである。このため、一致教示済データ(教示済データ90群から上記不一致教示済データを除いたもの)は、分類成績の良い分類器の生成に適した教師データとなり得る。したがって、教示済データ90群のうち、一致教示済データのみを教師データとすることにより、教示済データ90群全体を教師データとする場合よりも、分類成績が優れた典型分類器を生成し得る。したがって、当該典型分類器に基づいて、教示済データ90群から教示間違いの可能性のある教示済データ90を有効にかつ効率的に抽出し得る。
図7は、第2の教師データ作成支援処理の流れを示す図である。図7に示す教師データ作成支援処理のうち、ステップS21〜ステップS25までは、図6に示す教師データ作成支援処理と共通する。
この第2の教師データ作成支援処理では、データ演算部610がステップS25において所定数のサブ分類器が生成されたと判定した場合(ステップS25においてYES)、データ演算部610が、所定数のサブ分類器の中から、分類成績が所定の基準を満たす複数のサブ分類器を選定する(ステップS261)。分類成績の指標としては、例えば第1の教師データ作成支援処理のステップS24のときと同様に、正答率が採用され得る。この場合、ステップS261においては、正答率が所定の値を超える複数のサブ分類器が選定されるとよい。また、正答率の代わりに、特定クラスまたは全クラスについての再現率あるいは適合率も採用し得る。
複数のサブ分類器が選定された後、分類器生成部615は、データを分類する典型分類器を生成する(ステップS262)。詳細には、分類器生成部615は、ステップS261において選定された複数のサブ分類器各々で教示済データ90群の全部または一部を分類した場合に、分類先クラスが教示クラスと一致した教示済データ(以下、「一致教示済データ」とも称する)を収集する。そして、分類器生成部615は、その収集された一致教示済データを教師データとする機械学習を行うことにより、典型分類器を生成する。
典型分類器が生成された後、データ抽出部619は、当該典型分類器によって、記憶部611に保存されている教示済データ90群の全部または一部の教示済データ90を分類する。そして、データ抽出部619は、分類された複数の教示済データ90のうち、典型分類器による分類先クラスが元の教示クラスと適合しなかった教示済データ90を、不適合教示済データとして抽出する(ステップS27)。そして、表示制御部620が、その不適合教示済データをディスプレイ55に表示する(ステップS28)。
所定の分類成績の基準を満たす複数のサブ分類器の生成に使用されたサブ教示済データ群は、高精度な分類器の生成に適した典型データのセットであると考えられる。このため、ステップS261において選定されたサブ分類器の生成に使用された教示済データ90の各サブ教示済データ群を教師データとして典型分類器を生成することによって、分類成績の優れた典型分類器を生成し得る。したがって、この生成された典型分類器に基づいて、分類先クラスが教示クラスと適合しない教示済データ90を抽出することによって、オペレータに対して教示間違いの可能性があるデータを効率的に提示することができる。
なお、第2の教師データ作成支援処理では、ステップS261,S262において、複数のサブ分類器に基づき、典型分類器が生成されている。しかしながら、1つのサブ分類器に基づいて、典型分類器が生成されてもよい。例えば、ステップS261では、分類器生成部615が、分類成績が最も良い1つのサブ分類器を選定する。そして、ステップS262では、分類器生成部615が、その1つのサブ分類器で教示済データ90群の全部または一部を分類した場合に、分類先クラスが教示クラスと一致する一致教示済データを収集する。そして、分類器生成部615が、収集された一致教示済データを教師データとする機械学習を行うことにより、典型分類器を生成するとよい。
<分類器の生成処理>
分類器生成部615は、上述したように、第1および第2の教師データ支援処理において、サブ分類器の生成処理(図6:ステップS25)を行う。また、分類器生成部615は、第2の教師データ支援処理において、典型分類器の生成処理(図7:ステップS262)を行う。ここでは、この分類器生成部615による分類器の生成処理について説明する。以下では、サブ分類器の生成処理について主に説明するが、典型分類器についても同様に生成することができる。図8は、分類器生成部615の構成を示す図である。図9は、分類器生成部615によるサブ分類器生成の流れを示す図である。
図8に示すように、分類器生成部615は、教師データ記憶部6150、度数分布データ生成部6151、分類器構築部6152、度数分布データ修正部6153および繰返制御部6154を有する。
教師データ記憶部6150は、分類器を構築するための教師データ(ここでは、複数の教示済データ90)を記憶する。分類器生成部615において、サブ分類器を生成する場合、教師データ記憶部6150は、サブ教示済データ群構築部613により構築されたサブ教示済データ群に属する複数の教示済データ90を、教師データとして記憶する(図9:ステップS31)。
サブ教示済データ群の各教示済データ90が準備されると、度数分布データ生成部6151は、複数の教示済データ90に基づいて、特徴量軸毎の度数分布を示す度数分布データ82を生成する(図9:ステップS32)。度数分布データ82は、各教示済データ90を標本とする度数分布を示すデータであって、特徴量軸毎に、各特徴量軸の値を離散化した各区間における度数(出現頻度)を、クラス別に示すデータである。
具体的に、度数分布データ生成部6151は、特徴量軸毎に、各教示済データ90に含まれる特徴量の値から、最大値及び最小値を特定することにより、特徴量軸毎に値の分布範囲を取得する。そして、度数分布データ生成部6151は、当該分布範囲を、適当な個数の区間に等分割(離散化)する。分布範囲の分割数は、例えば、2の1乗(すなわち、2)以上、2の10乗以下とし得る。そして、離散化された各区間(離散区間)におけるクラス別の度数(出現頻度)が求められる。詳細には、特徴量軸毎に、1つの教示済データ90につき、その教示済データ90が持つ特徴量の値に対応する対応離散区間の度数を1つだけ加える。
図10は、度数分布データ82が示す第1の特徴量軸における複数のクラスの度数分布表を示す図である。図11は、度数分布データ82が示す第1の特徴量軸におけるクラス別のヒストグラムを示す図である。図12は、度数分布データ82が示す第2の特徴量軸における複数のクラスの度数分布表を示す図である。図13は、度数分布データ82が示す第2の特徴量軸におけるクラス別のヒストグラムを示す図である。
図10及び図12では、複数(ここでは3種類)のクラスをそれぞれ「Class 1」「Class 2」「Class 3」と表し、特徴量軸における区間を、見出しに「bin」と表す行に0〜15の番号で示している(以下同様)。
図10から図13では、各特徴量軸の値の分布範囲の分割数は14(区間(1)〜区間(14))であり、当該分布範囲よりも小さい値の区間(0)および大きい値の区間(15)も設けられている。区間(0)および区間(15)は、クラスが教示されていない未知のデータが示す値が、教示済データ90に基づく分布範囲の外側となる場合に用いられる。後述するように、特徴量軸毎のクラス別の度数分布は、データの分類(すなわち、クラス判別)に供される。このため、度数分布データ82は、クラス判別を行うための「判別情報」ともいえる。
分布範囲の分割数は、特徴量軸毎に異なっていてもよいし、全特徴量軸について同一としてもよい。例えば、全区間において度数が1となる区間が1つのみ存在するような分割数のうち、最小のものが分割数の上限として設定され得る。これにより、度数が1以上となる区間が不連続となることが抑制される。また、複数の特徴量軸により規定される特徴量空間において、複数の特徴量軸の区間により表現される領域(セル)の個数が、教師画像の総数よりも十分に多くなるように、分割数の下限が設定されることが好ましい。
分類器構築部6152は、各特徴量の値に基づきデータを分類する(すなわち、クラス判別する)初期の分類器330を生成する(図9:ステップS33)。当該初期の分類器330は、度数分布データ82が示す、特徴量軸毎の各区間におけるクラス別の出現比率に基づき、分類対象のデータを分類するように構成される。
ここでは、分類器330の基本的構造は予め決定されており、分類器330は、複数の特徴量軸各々について、演算を行う複数の弱分類器を含む。弱分類器各々は、分類対象の画像が持つ特徴量の値を参照して、当該値が取得された画像が、複数のクラスのそれぞれに属する確率(弱分類器各々が対応する特徴量軸のみに着目した確率)をクラス評価結果として求める。
ここで、サブ教示済データ群の各教示済データ90の総数をN、クラスの個数をn、クラスCi(i=1,2,・・・,n)に属する(すなわち教示クラスがCiである)教示済データ90の総数をNiとする。Niはどの特徴量軸についても同じ数である。したがって、クラスCiに属する教示済データ90の総数Niの全クラスの総和は、式(1)のようにサブ教示済データ群の各教示済データ90の総数Nとなる。
また、特徴量軸の総数をm、特徴量軸Dj(j=1,2,・・・,m)の値を離散化したときの分割数をKjとし、特徴量軸Djの区間k(k=1,2,・・・,Kj)におけるクラスCiに属する教示済データ90の個数をFij(k)で表すと、クラスCiに属する教示済データ90の総数Niは、式(2)のように表される。
一方、1つの特徴量軸Djのみに着目した場合に、区間kにおいてクラスCiに属する教示済データ90の出現比率(個数Fij(k)のクラスCiに属する教示済データ90の総数Niに対する比率)は、当該特徴量軸Djの値が区間kに属する画像がクラスCiに属する確率と考えることができる。以下、当該確率をPjk(Ci)と表す。この確率Pjk(Ci)は、式(3)のように表される。
例えば、第1の特徴量軸(特徴量軸D1)の9番の区間(9)について確率Pjk(Ci)を求めた場合、例えば、クラス1(C1)の確率P1,9(C1)は、0.031(=49/1578)となる。また、クラス2(C2)の確率P1,9(C2)は、0.171(=486/2849)となる。さらに、クラス3(C3)の確率P1,9(C3)は、0.013(=9/688)となる。1つの特徴量軸において、確率Pjk(Ci)はn個(クラス数)だけ得られるが、全クラスの確率Pjk(Ci)の総和は1にはならない。
分類器330を構成する複数の弱分類器各々は、対応する特徴量軸Djの値から度数分布データ82を参照することにより、クラス別に出現比率(確率Pjk(Ci))をクラス評価結果として求める。当該弱分類器では、特徴量軸Djの値が取得された画像が、特定のクラスCiに属するとした場合の妥当性(確信度)を示す評価値がクラス評価値として求められるともいえる。
ところで、多くの特徴量軸におけるクラス別の度数分布では、図11および図13のヒストグラムのように、互いに重なり合う部分が多く存在するため、各特徴量軸において求められる複数のクラスに対する確率によるクラスの予測精度は、あまり高いとはいえない(ただし、ランダムにクラスを予測するよりも精度は高いといえる。)。そこで、分類器330では、アンサンブル学習の考え方が取り入れられており、複数の特徴量軸に対する複数の弱分類器のクラス評価結果に基づいて分類クラスを決定する強分類器として、分類器330が構成される。
分類器330では、各特徴量軸に対するクラス評価結果として、複数のクラスの評価値(確率)が求められるが、クラス評価結果は、例えば、評価値が最大のクラスに1を付与し、他のクラスに0を付与するものであってもよい。この場合、実質的に、各特徴量軸において評価値が最大のクラスに投票を行う処理となり、複数の特徴量軸における得票数が最大のクラスが分類クラスとして決定される。
図8に示すように、度数分布データ修正部6153は、度数分布データ生成部6151によって生成され、分類器構築部6152に送られた度数分布データ82を修正する。以下、度数分布データ修正部6153が度数分布データ82を修正する処理の流れについて説明する。具体的には、度数分布データ修正部6153は、修正対象の度数分布データ82に基づきデータ分類を行う分類器330を用いて、サブ教示済データ群の各教示済データ90を分類する(図9:ステップS34)。
本処理例では、度数分布データ修正部6153は、教示済データ90として、初期の分類器330を生成したとき(すなわち、初期の度数分布データ82を生成したとき)に使用された教示済データ90全部を、分類器330に分類させる。なお、度数分布データ修正部6153が、教示済データ90全部のうち一部のみを選択して、分類器330に分類させてもよい。教示済データ90の分類では、各教示済データ90の各特徴量軸Djの値が特定され、クラスCi別の出現比率(確率Pjk(Ci))がクラス評価結果として取得される。
分類器330による分類では、さらに、特徴量軸各々の出現比率の代表値(例えば、平均値や中央値、加重平均値等)が求められる。そして、全クラスのうち代表値が最大であるクラスが、当該教示済データ90の分類先クラスに決定される。各教示済データ90の分類クラスは、度数分布データ修正部6153において記憶される。なお、分類器330による好ましい処理では、(1)最大の代表値が所定のしきい値SH1未満である場合、または、(2)最大の代表値と2番目に大きい代表値との差(または比率)が所定の他のしきい値SH2未満である場合などに、分類すべきクラスが不明であることを示す追加クラスが分類クラスとして決定される。以下の説明では、上記(1)、(2)の場合に、教師画像群の教師画像が、追加クラスに分類されるものとする。
図14は、分類器330による教示済データ90の分類結果の一例を示す図である。図14は、分類結果をまとめたコンフュージョンマトリクス(混同行列)である。図14では、3種類の教示クラスを行見出しに記し、不明を含む4種類の分類クラスを列見出しに記している。教示クラスが「A」である各教示済データ90のうち、クラス「B」に分類された教示済データ90の個数は、「A」の行と「B」の列とが交差するセルに示される。たとえば、教示クラスが「Class 1」である各教示済データ90のうち、「Class 2」に分類された教示済データ90の数は、143個である。また、「Precision」(適合率)の行と「Recall」(再現率)の列とが交差するセルは、分類器330により分類された教示済データ90の総数のうち、分類器330により分類されたクラスと教示クラスとが一致した教示済データ90の総数の比率(正答率:Accuracy)である。全ての教示済データ90が分類対象とされている場合、図9の分類結果は、いわゆる再代入法評価の結果である。
続いて、度数分布データ修正部6153は、各教示済データ90のうち、分類されたクラスが教示クラスと相違していた教示済データ90(以下、このデータを「不一致教示済データ」とも称する。)が存在する場合、その不一致教示済データ各々に基づいて、度数分布データ82を修正する(図9:ステップS35)。
この度数分布データ82の修正では、不一致教示済データを参酌することにより、特徴量軸各々に関して、その不一致教示済データが持つ特徴量の値に対応する区間(対応区間)が特定されるとともに、その対応区間における不一致教示済データの教示クラスの度数が、予め定められた正の値(たとえば「1」)だけ増加される。すなわち、分類先クラスが教示クラスと相違した不一致教示済データについて、特徴量軸毎のクラス別の度数分布を示す度数分布データ82において、重複して計数された度数分布データ82が生成されることとなる。この処理は、不一致教示済データの重みの変更と捉えることもできる。
図15は、度数分布データ82の修正例を説明するための図である。ここでは、不一致教示済データの教示クラスが「Class 2」であり、その不一致教示済データが持つ特徴量軸Djの特徴量の値の対応区間が区間kであるとする。すると、この場合、図15に示すように、度数分布データ修正部6153は、区間kにおける「Class 2」の度数(個数F2j(k))を「1」だけ増加させる。これにより、区間kにおける「Class 2」の出現比率(確率Pjk(C2))が見かけ上増加することとなる。このような要領で、度数分布データ修正部6153は、不一致教示済データの全ての特徴量軸に関して、対応区間の度数を増加させることにより、度数分布データ82を修正する。
続いて、分類器構築部6152は、修正された度数分布データ82に基づきデータを分類するように、分類器330を更新する(図9:ステップS36)。新たな度数分布データ82では、不一致教示済データについて、特徴量軸毎に対応する対応区間の出現比率が増加している。このため、更新された分類器330では、この不一致教示済データを教示クラスに正しく分類する確率が、更新前よりも高くなる。
続いて、度数分布データ修正部6153は、修正された度数分布データ82に基づく分類器330を用いて、サブ教示済データ群の各教示済データ90を分類する(図9:ステップS37)。ここでは、ステップS31で準備されたサブ教示済データ群の各教示済データ90の全てを対象としてもよいし、そのうちの一部を対象としてもよい。
繰返制御部6154は、分類器330の教示済データ90の分類成績が所定の基準を満たすまで、度数分布データ修正部6153に度数分布データ82の修正を行わせる。具体的には、繰返制御部6154は、図4のステップS17の分類結果に基づき、分類器330による各教示済データ90のクラス判別の正答率が所定基準を満たすか否かを判断する(図9:ステップS38)。所定基準は、たとえば「正答率が所定値を超える」とすることが考えられる。正答率が所定基準を満たさない場合(ステップS38においてNOの場合)、ステップS15戻って、度数分布データ修正部6153が、ステップS37において不一致教示済データに基づき、度数分布データ82をさらに修正する処理を行う。このように、分類器330による各教示済データ90のクラス判別の正答率が所定値となるまで、ステップS35からステップS37までが繰り返し行われる。
ステップS38において、所定基準を満たす分類器330が得られた場合(ステップS38においてYESの場合)、その分類器330がサブ分類器として登録される(ステップS39)。
このように、分類器生成部615では、分類器330が度数分布データ82に基づいてサブクラスの各教示済データ90を分類し、度数分布データ修正部6153が教示クラスとは異なるクラスに分類された不一致教示済データに基づき度数分布データ82を修正する。このとき、度数分布データ修正部6153は、特徴量軸毎に、不一致教示済データが持つ特徴量の値に対応する対応区間の度数が増大するように度数分布データ82を修正する。これにより、不一致教示済データ各々の各特徴量の値が属する区間の出現比率が見かけ上増加した度数分布データ82が生成される。すると、分類器330がこの修正された度数分布データ82に基づきデータ分類を行うように更新されるため、不一致教示済データを教示クラスに正しく分類する確率が上昇する。したがって、この度数分布データ82の修正を繰り返し行うことにより、データをその教示クラスに適合するクラスに高確率で分類する分類器330を得ることができる。
図16は、度数分布データ82の他の修正例を説明するための図である。図15に示す例では、1つの不一致教示済データがあった場合、その不一致教示済データの持つある特徴量の値に対応する対応区間kのみの度数を「1」だけ増加させている。しかしながら、図16に示すように、対応区間である区間kだけでなく、その区間kに隣接する区間k+1,k−1(隣接区間)についても、度数を増加させてよい。図16に示す例では、区間kの増加数は「2」としており、区間k+1,k−1の増加数「1」としている。このように、対応区間の増加数と隣接区間の増加数とを異ならせてもよいし、一致させてもよい。
また、度数を増加させる区間は、対応区間及びその両側の隣接区間に限定されない。たとえば、対応区間kとその両側の複数区間、あるいは、対応区間kとその片側の複数区間について、度数を増加させてもよい。また、対応区間kを中心とするガウス分布(詳細には、ガウス分布を整数化したもの)に従って、両側(または片側)の各区間における度数の増加数を決定してもよい。
不一致教示済データが持つ特徴量が属する対応区間および隣接区間の度数を増加させることにより、それらの区間の出現比率を見かけ上増加させた度数分布データ82を生成できる。ここで、不一致教示済データの教示クラスに属するデータの特徴量は、通常、特定の対応区間とそれに隣接する隣接区間に分布し得る。このため、更新された分類器330が、対応区間または隣接区間の特徴量を持つデータを、不一致教示済データの教示クラスに分類する確率を上げることができる。
また、対応区間の増加数を隣接区間の増加数よりも多くする場合、対応区間の出現比率を隣接区間の出現比率よりも相対的に大きく増加させることができる。したがって、更新された分類器330が、不一致教示済データの教示クラスに分類されるべきデータ、すなわち、上記対応区間の特徴量を持つが、その教示クラスに分類される確率を上げることができる。
なお、ここでは、第1および第2の教師データ作成支援処理におけるサブ分類器の生成処理(図6および図7:ステップS23)について説明した。しかしながら、第2の教師データ作成支援処理における典型分類器の生成処理(図7:ステップS262)も、このサブ分類器の生成処理と同様の手順で生成され得る。
図17は、教示済データ数(教師データ数)と分類器330の正答率の関係を示すグラフである。このグラフにおいて、横軸は教示済データ数(クラスが教示された教師データの数)を示しており、縦軸はその教示済データ数で生成された分類器330の正答率を示している。
図17のグラフは、分類器330が全データ数5112個の欠陥画像(特徴量軸の数は174次元)を3クラスに分類した場合の例を示している。なお、正答率を算出するために、5112個のデータ全てには予めクラスラベルが付与されているが、分類器330の分類処理中には参照されない。例えば、分類器330を生成する際、1クラスにつき1つの教示済データ90を使用した場合、教示済データ数が3となる。また、1クラスにつき2つの教示済データ90を使用した場合、サブ教示済データ群の教示済データ数が6となる。教示済データ90の選出はランダムに行っている。
また、図17に示す例では、分類器330を取得する際、度数分布データ修正部6153が度数分布データ82を修正するときに(図9:ステップS35参照)、対応区間k(注目区画)に「3」、その対応区間kを中心にしてその両側の各区間k−1,k+1に「1」ずつ度数を増加させている({+1,+3,+1}(総数5、標準偏差1))。また、どの教示済データ数についても、正答率の評価が100回ずつ独立して行われている。グラフ中、黒丸で示される点が100回の評価により得られた正答率の平均値を示しており、上下の「ひげ」は正答率の分布範囲(最大および最小)を示している。また、比較のため、度数分布データ82を修正する際に対応区間に+1だけ増加させる単純な方法で生成された分類器330の正答率を破線で示している。
図17に示すように、教示済データ数を増やすことにより、分類器330の正答率が向上している。また、対応区間に度数を1だけ増加させる場合よりも、対応区間およびその隣接区間にも度数を増加させる場合の方が、正答率の高い分類器330を得ることができている。この傾向は、教示済データ数が少ないほど特に顕著である。
図18は、教示済データ数と分類器330の正答率の関係を示す他のグラフである。このグラフにおいて、横軸は教示済データ数を示しており、縦軸は分類器構築装置33が生成した分類器330の正答率を示している。このグラフは、欠陥画像ではなく、細胞画像を教師データとして生成された分類器330を用いて、全データ数5000個の細胞画像(特徴量軸の数は11次元)を3クラスに分類した場合の正答率を示している。
また、図18に示す例では、分類器330を生成する際、度数分布データ修正部6153が度数分布データ82を修正するときに(図9:ステップS35参照)、対応区間k(注目区画)に「14」、その対応区間kを中心にして負側の8区間(区間k−8〜k−1)各々に「1」「2」「3」「5」「8」「11」「13」、正側の8区間(区間k+1〜k+8)各々に「13」「11」「8」「5」「3」「2」「1」の度数を増加させている({1,2,3,5,8,11,13,14,13,11,8,5,3,2,1}(総数100,標準偏差3))。グラフ中、黒丸で示される点が100回の評価により得られた正答率の平均値を示しており、上下の「ひげ」は正答率の分布範囲(最大および最小)を示している。また、比較のため、度数分布データ82を修正する際に対応区間に+1だけ増加させる単純な方法で生成された分類器330の正答率を破線で示している。
図18に示す例においても、図17に示した例と同様に、教示済データ数を増やすことにより、分類器330の正答率が向上している。また、不一致教示済データについて、対応区間に度数を1だけ増加させる場合よりも、対応区間及びその周辺の区間にも度数を増加させる場合の方が、正答率の高い分類器330を得ることができている。この傾向は、教示数が少ないほど特に顕著である。
図17および図18に示すように、同じ教示済データ数であっても、教示済データの選び方により正答率のばらつきが発生する。たとえば、図17に示すように、教示済データ数を3とした場合、平均50%程度の正答率であるが、教示済データ90の組み合わせによっては、65%以上の正答率が得られる可能性がある。つまり、図6および図7に示す第1および第2の教師データ作成支援処理で生成される複数のサブ分類器では、正答率が大きくばらつき得る。特に、第1の教師データ作成支援処理では、典型分類器の選定処理(図6:ステップS26)において、複数のサブ分類器の中から、分類成績が最も良いサブ分類器を典型分類器として選定する。このため、ステップS28においてオペレータに提示する不適合教示済データの数量、すなわち、人間の判断を求める教示済データ数を最小化する効果が顕著になる。
なお、分類器生成部615が、図9に示した手順で分類器を生成することは必須ではなく、他の手法(例えば、線形判別分析やSVMなど公知の手法)を採用することも妨げられない。
<2. 変形例>
以上、実施形態について説明してきたが、本発明は上記のようなものに限定されるものではなく、様々な変形が可能である。
例えば、ステップS22において、サブ教示済データ群構築部613が各クラスから選定する教示済データ90の数量は、同数に限定されず、クラス毎に異なっていてもよい。例えば、各クラスから選定される数量を、各クラスに属する教示済データ90の総数に比例させてもよい。すなわち、第1のクラスと第2のクラスとがある場合に、第1のクラスの総数が第2のクラスの総数のL倍であれば、第1のクラスから選定される数量を第2のクラスから選定される数量のL倍としてもよい。ただし、サブ分類器は教師データのクラス別の出現頻度に基づく機械学習により生成される。このため、選定される数量がクラス毎に異なる場合には、サブ分類器の分類結果に偏りが生じやすくなる。このため、サブ教示済データ群として各クラスから選定される教示済データ90の数量は、クラス間で同数であることが望ましい。
この発明は詳細に説明されたが、上記の説明は、すべての局面において、例示であって、この発明がそれに限定されるものではない。例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。上記各実施形態及び各変形例で説明した各構成は、相互に矛盾しない限り適宜組み合わせたり、省略したりすることができる。