(57)【要約】【課題】  正確に良否判定を行うことができる学習装置、検査装置、学習検査方法、学習プログラムおよび検査プログラムを提供する。【解決手段】  学習装置は、複数の学習データを含む第１学習データ群に対して機械学習することで、第１分類器および第１ＳＶＭ境界線を生成する機械学習部と、第１ＳＶＭ境界線と第１学習データ群の各学習データとの距離データを算出する算出部と、距離データの分布が中央で分かれていない場合には、距離データに応じて、第１学習データ群を第２学習データ群、第３学習データ群および第４学習データ群に分割する分割部と、を備え、機械学習部は、第２学習データ群に対して機械学習することで第２分類器および第２ＳＶＭ境界線を生成し、第３学習データ群に対して機械学習することで第３分類器および第３ＳＶＭ境界線を生成し、第４学習データ群に対して機械学習することで第４分類器および第４ＳＶＭ境界線を生成する。【選択図】  図８
2019164774.tif 000002
【特許請求の範囲】
【請求項１】
複数の学習データを含む第１学習データ群に対して機械学習することで、第１分類器および第１ＳＶＭ境界線を生成する機械学習部と、
前記第１ＳＶＭ境界線と前記第１学習データ群の各学習データとの距離データを算出する算出部と、
前記距離データの分布が中央で分かれていない場合には、前記距離データに応じて、前記第１学習データ群を第２学習データ群、第３学習データ群および第４学習データ群に分割する分割部と、を備え、
前記機械学習部は、前記第２学習データ群に対して機械学習することで第２分類器および第２ＳＶＭ境界線を生成し、前記第３学習データ群に対して機械学習することで第３分類器および第３ＳＶＭ境界線を生成し、前記第４学習データ群に対して機械学習することで第４分類器および第４ＳＶＭ境界線を生成することを特徴とする学習装置。
【請求項２】
前記機械学習部による分類器およびＳＶＭ境界線の生成、前記算出部による各学習データと生成されたＳＶＭ境界線との距離の算出、および前記分割部による学習データ群の３つの学習データ群への分割は、ＳＶＭ境界線と各学習データとの距離データの分布が中央で分かれるまで繰り返されることを特徴とする請求項１記載の学習装置。
【請求項３】
それぞれ２種類のラベルのいずれかが付された学習データを複数含む学習データ群に対して所定の特徴量に基づいてクラスタリングを行い、要素数が最大となる第１クラスタのいずれかの第１学習データと、前記第１クラスタに含まれる学習データのうち前記第１学習データと同じラベルが付された学習データとを第１群として選択し、前記第１クラスタ以外のクラスタに含まれる学習データのうち前記第１学習データと異なる学習データを第２群として選択し、前記第１群および前記第２群を前記第１学習データ群として格納部に格納する選択部をさらに備えることを特徴とする請求項１または２に記載の学習装置。
【請求項４】
前記選択部は、前記特徴量の特徴量空間において、前記第１クラスタに含まれる学習データのうち前記第１学習データと所定の距離以内の学習データを前記第１群として選択し、前記第１クラスタ以外の学習データのうち前記第１学習データと所定の距離以上の学習データを前記第２群として選択することを特徴とする請求項３記載の学習装置。
【請求項５】
前記選択部は、前記特徴量の特徴量空間において前記第１クラスタの重心位置に最も近い学習データを前記第１学習データとして選択することを特徴とする請求項３または４に記載の学習装置。
【請求項６】
検査対象に対して第１分類器で分類を行う検査部と、
前記第１分類器の第１ＳＶＭ境界線と前記検査対象との距離を算出する算出部と、を備え、
前記検査部は、前記算出部が算出した距離に応じて、第２分類器、第３分類器および第４分類器のいずれかを選択し、選択した分類器を用いて前記検査対象を分類することを特徴とする検査装置。
【請求項７】
前記第１分類器は、複数の学習データを含む第１学習データ群に対して機械学習することで生成された分類器であり、
前記第２分類器、前記第３分類器および前記第４分類器は、それぞれ、前記第１分類器に係る第１ＳＶＭ境界線と前記第１学習データ群の各学習データとの距離データに応じて前記第１学習データ群を分割することで得られた第２学習データ群、第３学習データ群および第４学習データ群に対して機械学習することで生成された分類器であることを特徴とする請求項６記載の検査装置。
【請求項８】
機械学習対象の学習データ群を用いた分類器およびＳＶＭ境界線の生成、各学習データと生成されたＳＶＭ境界線との距離の算出、および学習データ群の３つの学習データ群への分割は、ＳＶＭ境界線と各学習データとの距離データの分布が中央で分かれるまで繰り返され、生成された分類器に係るＳＶＭ境界線と各学習データとの距離データの分布が中央で分かれている場合に当該分類器に識別子が付されており、
前記算出部による距離の算出と、前記検査部による３つの分類器からの選択とが、前記算出部によって算出された距離に応じて選択される分類器に前記識別子が付されているまで繰り返されることを特徴とする請求項６または７に記載の検査装置。
【請求項９】
複数の学習データを含む第１学習データ群に対して機械学習することで、第１分類器および第１ＳＶＭ境界線を生成する処理と、
前記第１ＳＶＭ境界線と前記第１学習データ群の各学習データとの距離データを算出する処理と、
前記距離データの分布が中央で分かれていない場合には、前記距離データに応じて、前記第１学習データ群を第２学習データ群、第３学習データ群および第４学習データ群に分割する処理と、
前記第２学習データ群に対して機械学習することで第２分類器および第２ＳＶＭ境界線を生成し、前記第３学習データ群に対して機械学習することで第３分類器および第３ＳＶＭ境界線を生成し、前記第４学習データ群に対して機械学習することで第４分類器および第４ＳＶＭ境界線を生成する処理と、
検査対象に対して前記第１分類器で分類を行う処理と、
前記第１ＳＶＭ境界線と前記検査対象との距離を算出し、当該距離に応じて前記第２分類器、前記第３分類器および前記第４分類器のいずれかを選択し、選択した分類器を用いて前記検査対象を分類する処理と、をコンピュータが実行することを特徴とする学習検査方法。
【請求項１０】
コンピュータに、
複数の学習データを含む第１学習データ群に対して機械学習することで、第１分類器および第１ＳＶＭ境界線を生成する処理と、
前記第１ＳＶＭ境界線と前記第１学習データ群の各学習データとの距離データを算出する処理と、
前記距離データの分布が中央で分かれていない場合には、前記距離データに応じて、前記第１学習データ群を第２学習データ群、第３学習データ群および第４学習データ群に分割する処理と、
前記第２学習データ群に対して機械学習することで第２分類器および第２ＳＶＭ境界線を生成し、前記第３学習データ群に対して機械学習することで第３分類器および第３ＳＶＭ境界線を生成し、前記第４学習データ群に対して機械学習することで第４分類器および第４ＳＶＭ境界線を生成する処理と、を実行させることを特徴とする学習プログラム。
【請求項１１】
コンピュータに、
検査対象に対して第１分類器で分類を行う処理と、
前記第１分類器の第１ＳＶＭ境界線と前記検査対象との距離を算出する処理と、
算出された距離に応じて、第２分類器、第３分類器および第４分類器のいずれかを選択し、選択した分類器を用いて前記検査対象を分類する処理と、を実行させることを特徴とする検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、学習装置、検査装置、学習検査方法、学習プログラムおよび検査プログラムに関する。
【背景技術】
【０００２】
検査対象の画像などについて分類器を用いて良否判定を自動で行う技術が求められている。しかしながら、単一の分類器では、様々な種類の検査対象の良否判定の境界線が複雑になり、検査対象の良否を正確に行うことが困難である。そこで、分類器を多段にする技術が開示されている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１５１３９５号公報
【特許文献２】特開２０１０−１６５０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、固定されたパラメータで評価された分類器を多段に用いるだけでは、正確に良否判定することができない場合がある。
【０００５】
１つの側面では、本発明は、正確に良否判定を行うことができる学習装置、検査装置、学習検査方法、学習プログラムおよび検査プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、学習装置は、複数の学習データを含む第１学習データ群に対して機械学習することで、第１分類器および第１ＳＶＭ境界線を生成する機械学習部と、前記第１ＳＶＭ境界線と前記第１学習データ群の各学習データとの距離データを算出する算出部と、前記距離データの分布が中央で分かれていない場合には、前記距離データに応じて、前記第１学習データ群を第２学習データ群、第３学習データ群および第４学習データ群に分割する分割部と、を備え、前記機械学習部は、前記第２学習データ群に対して機械学習することで第２分類器および第２ＳＶＭ境界線を生成し、前記第３学習データ群に対して機械学習することで第３分類器および第３ＳＶＭ境界線を生成し、前記第４学習データ群に対して機械学習することで第４分類器および第４ＳＶＭ境界線を生成する。
【０００７】
１つの態様では、検査装置は、検査対象に対して第１分類器で分類を行う検査部と、前記第１分類器の第１ＳＶＭ境界線と前記検査対象との距離を算出する算出部と、を備え、前記検査部は、前記算出部が算出した距離に応じて、第２分類器、第３分類器および第４分類器のいずれかを選択し、選択した分類器を用いて前記検査対象を分類する。
【発明の効果】
【０００８】
正確に良否判定を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】ＳＶＭ境界線を例示する図である。
【図２】（ａ）はハードマージンを用いて生成されたＳＶＭ境界線を例示する図であり、（ｂ）はソフトマージンを用いて生成されたＳＶＭ境界線を例示する図である。
【図３】誤判定を例示する図である。
【図４】（ａ）および（ｂ）は背景パターンごとのデータ群を例示する図である。
【図５】（ａ）は実施例１に係る学習検査装置の全体構成を例示するブロック図であり、（ｂ）は学習検査装置のハードウェア構成を例示するブロック図である。
【図６】（ａ）は第１学習データ群を例示する図であり、（ｂ）は良データと不良データとを十分に分離できた場合を例示する図であり、（ｃ）は良データと不良データとが十分に分離できていない場合を例示する図である。
【図７】（ａ）は閾値を例示する図であり、（ｂ）は良判定領域、あいまい領域および不良判定領域を例示する図である。
【図８】分類器格納部に格納された各分類器を例示する図である。
【図９】学習処理の際に学習検査装置が実行するフローチャートを例示する図である。
【図１０】ユニットルーチンを表すフローチャートを例示する図である。
【図１１】検査処理を例示する図である。
【図１２】検査処理の際に学習検査装置が実行するフローチャートを例示する図である。
【図１３】テストルーチンを表すフローチャートを例示する図である。
【図１４】検査処理の際に学習検査装置が実行するフローチャートの他の例を例示する図である。
【図１５】（ａ）は学習データを例示する図であり（ｂ）は検査データを例示する図である。
【図１６】実施例２に係る学習検査装置の全体構成を例示するブロック図である。
【図１７】選択部が実行するフローチャートを例示する図である。
【図１８】（ａ）〜（ｃ）は学習データの選択を例示する図である。
【発明を実施するための形態】
【００１０】
実施例の説明に先立って、学習データ群を用いた機械学習について説明する。
【００１１】
検査対象の良否判定を行うことで、検査を行う技術が望まれている。例えば、検査対象のデータ（例えば画像データ）に対して良否判定を自動で行うことができれば、検査を自動で行うことができる。良否判定を自動で行うためには、学習データを用いて機械学習することによって、良否判定を行うための最適な分類器を生成しておけばよい。例えば、遺伝的プログラミングによって、最適な分類器を生成することができる。分類器として、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）を用いることができる。
【００１２】
図１で例示するように、分類器は、複数の学習データを含む学習データ群に対して、２種類のグループに分類するための分離超平面（ＳＶＭ境界線）を有している。２種類のグループとは、例えば、良データおよび不良データである。学習データ群に含まれる各学習データには、「良」を表すラベルまたは「不良」を表すラベルが付されている。例えば、「良」を表すラベルとして「＋１」を用い、「不良」を表すラベルとして「−１」を用いる。例えば、分類器は、様々なＳＶＭ境界線のうち、ＳＶＭ境界線に最も近い学習データ点までの距離（マージン）ｄｍｉｎが最大となるような、ＳＶＭ境界線を有している。
【００１３】
次に、ハードマージンおよびソフトマージンについて説明する。図２（ａ）は、ハードマージンを用いて生成されたＳＶＭ境界線を例示する図である。図２（ａ）で例示するように、ハードマージンを用いると、マージン内に学習データが含まれないようにマージンが最大化される。その結果、各学習データのはみ出し距離は０となる。この場合、誤判定が無くなるというメリットが得られる。その一方で、条件を満たすＳＶＭ境界線を生成できない場合があるというデメリットがある。また、学習データに特化されたＳＶＭ境界線が生成されることになり、汎化性能が低下するというデメリットがある。
【００１４】
これに対して、図２（ｂ）は、ソフトマージンを用いて生成されたＳＶＭ境界線を例示する図である。図２（ｂ）で例示するように、ソフトマージンを用いると、マージン内にある程度の学習データが含まれることが許容される。例えば、｛マージン−Σ（はみ出し距離）｝が最大となるようにＳＶＭ境界線が生成される。この場合、ハードマージンを用いる場合よりも、条件を満たすＳＶＭ境界線を見つけることができる可能性が高くなるというメリットが得られる。また、ハードマージンを用いる場合と比較して、汎化性能が高くなるというメリットも得られる。その一方で、マージン内の学習データに対する判定結果については誤っている可能性がある。
【００１５】
ソフトマージンを用いる場合、取得された条件が異なる学習データを用いて分類器を生成すると、見逃し判定などの誤判定が発生しやすくなる。見逃し判定とは、図３で例示するように、不良データが良データであると判定されることである。例えば、複数種類の背景パターンが存在する学習用画像を用いて分類器を生成する場合などに、誤判定が発生しやすくなる。例えば、複数の背景パターンが含まれた検査の場合に一つのアルゴリズムで良否判定を行なおうとすると、画像特徴量分布が複雑になる。良データの画像特徴量と不良データの画像特徴量とが重なると、誤判定が発生する。
【００１６】
図４（ａ）で例示するように、例えば、背景パターンの種類ごとにデータをグループ化すると、各グループにおいて良データと不良データとが含まれることになる。この場合、１つの境界線でデータを分類することが困難である。そこで、図４（ｂ）で例示するように、データを背景パターンの種類ごとにグループ化し、各グループにおいて良否判定を行うことが望まれる。
【００１７】
以下の実施例では、ソフトマージンを用い、背景などの条件が異なるデータに対しても正確に良否判定を行うことができる学習装置、検査装置、学習検査方法、学習プログラム、および検査プログラムについて説明する。
【実施例１】
【００１８】
図５（ａ）は、実施例１に係る学習検査装置１００の全体構成を例示するブロック図である。図５（ａ）で例示するように、学習検査装置１００は、学習データ格納部１０、学習部２０、距離算出部３０、判定部４０、分割部５０、分類器格納部６０、検査データ格納部７０、検査部８０などとして機能する。
【００１９】
図５（ｂ）は、学習検査装置１００のハードウェア構成を例示するブロック図である。図５（ｂ）で例示するように、学習検査装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、表示装置１０４等を備える。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置１０３は、学習プログラムおよび検査プログラムを記憶している。表示装置１０４は、液晶ディスプレイなどの表示装置である。
【００２０】
例えば、ＣＰＵ１０１が記憶装置１０３に記憶されている学習プログラムを実行することで、図５（ａ）の学習データ格納部１０、学習部２０、距離算出部３０、判定部４０、分割部５０および分類器格納部６０が実現される。また、ＣＰＵ１０１が記憶装置１０３に記憶されている検査プログラムを実行することで、図５（ａ）の距離算出部３０、分類器格納部６０、検査データ格納部７０および検査部８０が実現される。なお、学習検査装置１００の各部として、専用の回路などのハードウェアを用いてもよい。
【００２１】
図６（ａ）で例示するように、学習データ格納部１０には、複数の学習データを含む第１学習データ群が格納されている。本実施例においては、良データには、一例として「１」の良否ラベルが付されている。不良データには、一例として「−１」の良否ラベルが付されている。学習部２０は、ソフトマージンを用いて、この第１学習データ群に対して機械学習することで、分離超平面（第１ＳＶＭ境界線）を生成し、第１分類器１ａを生成する。分類器格納部６０は、第１世代の分類器として第１分類器１ａを格納する。
【００２２】
距離算出部３０は、第１ＳＶＭ境界線に対する各学習データの距離ｄｉを算出する。「ｉ」は、学習データ群のうちｉ番目の学習データを表す。第１ＳＶＭ境界線よりも良データ側の学習データの距離ｄｉは、プラスの値となる。第１ＳＶＭ境界線よりも不良データ側の学習データの距離ｄｉは、マイナスの値となる。
【００２３】
図６（ｂ）は、良データと不良データとを十分に分離できた場合を例示する図である。図６（ｂ）の例では、ＳＶＭ境界線との距離の分布において、良データ群と不良データ群とが中央（ＳＶＭ境界線）で互いに離間し、良データ群の分布範囲と不良データ群の分布範囲とが互いに重複していない。このような場合においては、再分類を行わなくてもよい。これに対して、図６（ｃ）は、良データと不良データとが十分に分離できていない場合を例示する図である。図６（ｃ）の例では、ＳＶＭ境界線との距離の分布において、良データ群と不良データ群とが中央で互いに離間していない。したがって、良データ群の分布範囲および不良データ群の分布範囲の少なくとも一部が互いに重複している。このような場合においては、再分類が行うことが求められる。
【００２４】
そこで、判定部４０は、良データ群と不良データ群とが十分に分離されているか否かを判定する。判定部４０は、プラスの閾値（以下、第１閾値）およびマイナスの閾値（以下、第２閾値）を設ける。判定部４０は、全ての良データ群が第１閾値を上回りかつすべての不良データ群が第２閾値を下回る場合には、再分類が不要と判定する。それ以外の場合には、判定部４０は、再分類が必要と判定する。例えば、図７（ａ）で例示するように、ｄｉの平均値が良判定では＋１、不良判定では−１となるように規格化しておけば、第１閾値＝＋１とし、第２閾値＝−１とすることができる。この場合、−１≦ｄｉ≦＋１のデータ数が０であり、全てのｄｉの符号が良否ラベルの符号と一致していれば、再分類が不要と判定することができる。
【００２５】
再分類が必要と判定されれば、分割部５０は、図７（ｂ）で例示するように、第１閾値を上回る距離の領域を、良判定領域とする。分割部５０は、第１閾値以下第２閾値以上の領域を、あいまい領域とする。分割部５０は、第２閾値を下回る距離の領域を、不良判定領域とする。分割部５０は、第１学習データ群を、良判定領域の第２学習データ群と、あいまい領域の第３学習データ群と、不良判定領域の第４学習データ群とに分割する。
【００２６】
学習部２０は、第２学習データ群に対して機械学習することで、第２ＳＶＭ境界線を生成し、第２分類器２ａを生成する。学習部２０は、第３学習データ群に対して機械学習することで、第３ＳＶＭ境界線を生成し、第３分類器２ｂを生成する。学習部２０は、第４学習データ群に対して機械学習することで、第４ＳＶＭ境界線を生成し、第４分類器２ｃを生成する。分類器格納部６０は、第２世代の良判定領域に関連付けて第２分類器２ａを格納し、第２世代のあいまい領域に関連付けて第３分類器２ｂを格納し、第２世代の不良判定領域に関連付けて第４分類器２ｃを格納する。
【００２７】
距離算出部３０は、第２学習データ群について、第２ＳＶＭ境界線に対する各学習データの距離ｄｉを算出する。判定部４０は、第２学習データ群について、再分類が必要か否かを判定する。再分類が不要と判定されれば、学習部２０は、第２学習データ群について、再分類を行わない。再分類が必要と判定されれば、分割部５０は、第２学習データ群を良判定領域、あいまい領域、および不良判定領域の３つの学習データ群に振り分ける。学習部２０は、さらに各学習データ群に対して学習を行うことで、ＳＶＭ境界線を生成し、第２世代の良判定領域からの第３世代として、３つの分類器を生成し、分類器格納部６０に格納する。これらの作業は、再分類が不要と判定されるまで繰り返される。第３学習データ群および第４学習データ群についても、同様の作業が繰り返される。それにより、あいまい領域の学習データが無くなり、良データ群と不良データ群とを十分に分離することができる。以上のように、再分類が不要と判定されるまで、１つの分類器について次の世代として３つの分類器が生成されることになる。
【００２８】
図８は、分類器格納部６０に格納された各分類器を例示する図である。図８で例示するように、第１世代の分類器として、第１分類器１ａが生成されている。第２世代の分類器として、第２分類器２ａ、第３分類器２ｂおよび第４分類器２ｃが生成されている。第２分類器２ａについて、第３世代として３つの分類器３ａ、分類器３ｂ、および分類器３ｃが生成されている。第３分類器２ｂについて、第３世代として３つの分類器３ｄ、分類器３ｅおよび分類器３ｆが生成されている。第４分類器２ｃについて、第３世代として３つの分類器３ｇ、分類器３ｈおよび分類器３ｉが生成されている。再分類が不要と判定された分類器については、末端の分類器であることを示す識別子が関連付けられる。
【００２９】
次に、以上の学習処理の詳細についてさらに説明する。図９は、学習処理の際に学習検査装置１００が実行するフローチャートを例示する図である。図９の処理は、学習処理の全体的な流れを表している。図９で例示するように、学習部２０は、学習データ格納部１０から第１学習データ群を読み込む（ステップＳ１）。次に、学習部２０は、第１学習データ群に対して機械学習を行うことで、第１ＳＶＭ境界線を生成し、第１分類器１ａを生成し、分類器格納部６０に格納する（ステップＳ２）。
【００３０】
次に、距離算出部３０は、第１学習データ群の各学習データについて、第１ＳＶＭ境界線との距離ｄｉを算出する（ステップＳ３）。次に、判定部４０は、第１学習データ群について、再分類が必要か否かを判定する（ステップＳ４）。例えば、判定部４０は、第２閾値（＝−１）≦ｄｉ≦第１閾値（＝１）のデータ数が０であり、全てのｄｉの符号が良否ラベルの符号と一致していれば、再分類が不要と判定することができる。
【００３１】
ステップＳ４で「Ｎｏ」と判定された場合には、フローチャートの実行が終了する。ステップＳ４で「Ｙｅｓ」と判定された場合には、分割部５０は、各学習データについて、距離ｄｉが第１閾値（＝１）を上回るか否かを判定する（ステップＳ５）。ステップＳ５で「Ｙｅｓ」と判定された学習データについて、分割部５０は、良判定領域の第２学習データ群に振り分ける（ステップＳ６）。次に、第２学習データ群について、ユニットルーチンが実行される（ステップＳ７）。次に、学習部２０は、学習収束のフラグが立っているか否かを判定する（ステップＳ８）。ステップＳ８で「Ｙｅｓ」と判定された場合、図９のフローチャートの実行が終了する。ステップＳ８で「Ｎｏ」と判定された場合、ユニットルーチンがさらに実行される（ステップＳ９）。以下、学習収束のフラグが立つまでユニットルーチンが繰り返される。
【００３２】
ステップＳ５で「Ｎｏ」と判定された学習データについて、分割部５０は、第２閾値（＝−１）≦ｄｉ≦第１閾値（＝１）を満たすか否かを判定する（ステップＳ１０）。ステップＳ１０で「Ｙｅｓ」と判定された学習データについて、分割部５０は、あいまい領域の第３学習データ群に振り分ける（ステップＳ１１）。次に、第３学習データ群について、ユニットルーチンが実行される（ステップＳ１２）。次に、学習部２０は、学習収束のフラグが立っているか否かを判定する（ステップＳ１３）。ステップＳ１３で「Ｙｅｓ」と判定された場合、図９のフローチャートの実行が終了する。ステップＳ１３で「Ｎｏ」と判定された場合、ユニットルーチンがさらに実行される（ステップＳ１４）。以下、学習収束のフラグが立つまでユニットルーチンが繰り返される。
【００３３】
ステップＳ１０で「Ｎｏ」と判定された学習データについて、分割部５０は、不良判定領域の第４学習データ群に振り分ける（ステップＳ１５）。次に、第４学習データ群について、ユニットルーチンが実行される（ステップＳ１６）。次に、学習部２０は、学習収束のフラグが立っているか否かを判定する（ステップＳ１７）。ステップＳ１７で「Ｙｅｓ」と判定された場合、図９のフローチャートの実行が終了する。ステップＳ１７で「Ｎｏ」と判定された場合、ユニットルーチンがさらに実行される（ステップＳ１８）。以下、学習収束のフラグが立つまでユニットルーチンが繰り返される。
【００３４】
図１０は、ユニットルーチンを表すフローチャートを例示する図である。図１０で例示するように、学習部２０は、学習対象の学習データ群を読み込む（ステップＳ２１）。次に、学習部２０は、読み込んだ学習データ群に対して機械学習を行うことで、ＳＶＭ境界を生成し、分類器を生成し、分類器格納部６０に格納する（ステップＳ２２）。次に、距離算出部３０は、各学習データについて、ＳＶＭ境界との距離ｄｉを算出する（ステップＳ２３）。次に、判定部４０は、学習データ群について、再分類が必要か否かを判定する（ステップＳ２４）。例えば、判定部４０は、第２閾値（＝−１）≦ｄｉ≦第１閾値（＝１）のデータ数が０であり、全てのｄｉの符号が良否ラベルの符号と一致していれば、再分類が不要と判定することができる。
【００３５】
ステップＳ２４で「Ｎｏ」と判定された場合には、学習部２０は、学習収束のフラグを立てる（ステップＳ２５）。その後、ユニットルーチンの実行が終了する。ステップＳ２４で「Ｙｅｓ」と判定された場合には、分割部５０は、各学習データについて、距離ｄｉが第１閾値（＝１）を上回るか否かを判定する（ステップＳ２６）。ステップＳ２６で「Ｙｅｓ」と判定された学習データについて、分割部５０は、良判定領域の学習データ群に振り分ける（ステップＳ２７）。ステップＳ２６で「Ｎｏ」と判定された学習データについて、分割部５０は、第２閾値（＝−１）≦ｄｉ≦第１閾値（＝１）を満たすか否かを判定する（ステップＳ２８）。ステップＳ２８で「Ｙｅｓ」と判定された学習データについて、分割部５０は、あいまい領域の学習データ群に振り分ける（ステップＳ２９）。ステップＳ２８で「Ｎｏ」と判定された学習データについて、分割部５０は、不良判定領域の学習データ群に振り分ける（ステップＳ３０）。学習部２０は、良判定領域の学習データ群、あいまい領域の学習データ群、および不良判定領域の学習データ群の２つの学習データ群を、それぞれ学習対象の学習データ群に設定する（ステップＳ３１）。以上の処理の実行によって、ユニットルーチンが終了する。
【００３６】
本実施例に係る学習処理によれば、学習部２０は、複数の学習データを含む第１学習データ群に対して機械学習することで、第１分類器１ａおよび第１ＳＶＭ境界線を生成する。距離算出部３０は、第１ＳＶＭ境界線と第１学習データ群の各学習データとの距離データを算出する。分割部５０は、距離データの分布が中央で分かれていない場合には、当該距離データに応じて、第１学習データ群を第２学習データ群、第３学習データ群および第４学習データ群に分割する。学習部２０は、第２学習データ群に対して機械学習することで第２分類器２ａおよび第２ＳＶＭ境界線を生成し、第３学習データ群に対して機械学習することで第３分類器２ｂおよび第３ＳＶＭ境界線を生成し、第４学習データ群に対して機械学習することで第４分類器２ｃおよび第４ＳＶＭ境界線を生成する。このように、学習データとＳＶＭ境界線との距離に応じて学習データ群を分割してさらに機械学習することで、正確に良否判定することができるようになる。例えば、複数の背景パターンが含まれる検査対象について、背景パターンごとに良否判定することができるようになる。
【００３７】
学習部２０による分類器およびＳＶＭ境界線の生成、距離算出部３０による各学習データと生成されたＳＶＭ境界線との距離の算出、および分割部５０による学習データ群の３つの学習データ群への分割は、ＳＶＭ境界線と各学習データとの距離データの分布が中央で分かれるまで繰り返されることが好ましい。この場合、より正確に良否判定することができるようになる。
【００３８】
続いて、検査処理について説明する。検査データ格納部７０は、検査対象の検査時に取得された検査対象の検査データを格納している。検査データは、例えば、製造工程の各製品の画像である。検査部８０は、図１１で例示するように、検査データ格納部７０に格納されている検査データを読み込む。検査部８０は、分類器格納部６０に格納されている第１分類器１ａを用いて、検査データを分類する。距離算出部３０は、検査データと第１ＳＶＭ境界線との距離ｄを算出する。
【００３９】
検査部８０は、算出された距離ｄに応じて、分類器格納部６０に格納されている分類器のうちどの分類器を用いるか決定する。ｄ＞第１閾値（＝＋１）の場合には、検査データは良判定領域に属するため、検査部８０は、第２世代の良判定領域に関連付けてある第２分類器２ａを用いると決定する。次に、検査部８０は、分類器格納部６０から第２分類器２ａを取得し、第２分類器２ａを用いて検査データを分類する。
【００４０】
第２閾値（＝−１）≦ｄ≦第１閾値の場合には、検査データはあいまい領域に属するため、検査部８０は、第２世代のあいまい領域に関連付けてある第３分類器２ｂを用いると決定する。次に、検査部８０は、分類器格納部６０から第３分類器２ｂを取得し、第３分類器２ｂを用いて検査データを分類する。
【００４１】
ｄ＜第２閾値の場合には、検査データは不良判定領域に属するため、検査部８０は、第２世代の不良判定領域に関連付けてある第４分類器２ｃを用いると決定する。次に、検査部８０は、分類器格納部６０から第４分類器２ｃを取得し、第４分類器２ｃを用いて検査データを分類する。検査部８０は、検査データが末端の分類器に到達するまでこれらの動作を繰り返す。
【００４２】
検査データが末端の分類器に到達した場合、検査部８０は、当該末端の分類器を用いて検査データを分類する。距離算出部３０は、検査データと当該末端の分類器のＳＶＭ境界線との距離ｄを算出する。例えば、検査部８０は、ｄ≧０の場合には、検査データが良データであると判定し、表示装置１０４に当該判定結果を表示させる。また、検査部８０は、ｄ＜０の場合には、検査データが不良データであると判定し、表示装置１０４に当該判定結果を表示させる。このようにすることで、検査データの良否を判定することができる。
【００４３】
あるいは、ｄ＞第１閾値の場合には、検査データは良判定領域に属するため、検査部８０は、検査データが良データであると判定し、表示装置１０４に当該判定結果を表示させる。第２閾値（＝−１）≦ｄ≦第１閾値（＝１）の場合には、検査データはあいまい領域に属するため、検査部８０は、検査データの良否判定が不可と判定し、表示装置１０４に当該判定結果を表示させる、第２閾値（＝−１）＜ｄの場合には、検査データは不良判定領域に属するため、検査部８０は、検査データが不良データであると判定し、表示装置１０４に当該判定結果を表示させる。このようにすることで、検査データの良否判定を行うことができるとともに、良否判定不可と判定することも可能となる。
【００４４】
次に、以上の検査処理の詳細についてさらに説明する。図１２は、検査処理の際に学習検査装置１００が実行するフローチャートを例示する図である。図１２の処理は、学習処理の全体的な流れを表している。図１２で例示するように、検査部８０は、検査データ格納部７０から検査データを読み込む（ステップＳ４１）。次に、検査部８０は、分類器格納部６０に格納されている第１分類器１ａを用いて検査データを分類する。距離算出部３０は、検査データと第１ＳＶＭ境界線との距離ｄを算出する（ステップＳ４２）。
【００４５】
次に検査部８０は、分類器格納部６０から取得した分類器が末端の分類器であるか否かを判定する（ステップＳ４３）。ステップＳ４３で「Ｎｏ」と判定された場合、検査部８０は、ｄ＞第１閾値（＝１）であるか否かを判定する（ステップＳ４４）。ステップＳ４４で「Ｙｅｓ」と判定された場合、検査部８０は、検査データが第２世代の良判定領域に属すると判定し、第２世代の良判定領域に関連付けてある第２分類器２ａを分類器格納部６０から取得する（ステップＳ４５）。次に、検査データに対して、テストルーチンが実行される（ステップＳ４６）。次に、検査部８０は、テストルーチンで取得された分類器が末端の分類器であるか否かを判定する（ステップＳ４７）。ステップＳ４７で「Ｎｏ」と判定された場合、テストルーチンがさらに実行される（ステップＳ４８）。以下、取得された分類器が末端の分類器であると判定されるまでテストルーチンが繰り返される。
【００４６】
ステップＳ４４で「Ｎｏ」と判定された場合、検査部８０は、第２閾値（＝−１）≦ｄ≦第１閾値（＝１）であるか否かを判定する（ステップＳ４９）。ステップＳ４９で「Ｙｅｓ」と判定された場合、検査部８０は検査データが第２世代のあいまい領域に属すると判定し、第２世代のあいまい領域に関連付けてある第３分類器２ｂを分類器格納部６０から取得する（ステップＳ５０）。次に、検査データに対してテストルーチンが実行される（ステップＳ５１）。次に、検査部８０は、テストルーチンで取得された分類器が末端の分類器であるか否かを判定する（ステップＳ５２）。ステップＳ５２で「Ｎｏ」と判定された場合、テストルーチンがさらに実行される（ステップＳ５３）。以下、取得された分類器が末端の分類器であると判定されるまでテストルーチンが繰り返される。
【００４７】
ステップＳ４９で「Ｎｏ」と判定された場合、検査部８０は検査データが第２世代の不良判定領域に属すると判定し、第２世代の不良判定領域に関連付けてある第４分類器２ｃを分類器格納部６０から取得する（ステップＳ５４）。次に、検査データに対してテストルーチンが実行される（ステップＳ５５）。次に、検査部８０は、テストルーチンで取得された分類器が末端の分類器であるか否かを判定する（ステップＳ５６）。ステップＳ５６で「Ｎｏ」と判定された場合、テストルーチンがさらに実行される（ステップＳ５７）。以下、取得された分類器が末端の分類器であると判定されるまでテストルーチンが繰り返される。
【００４８】
ステップＳ４３、ステップＳ４７、ステップＳ５２、またはステップＳ５６で「Ｙｅｓ」と判定された場合、検査部８０は、末端の分類器を用いて検査データを分類する。距離算出部３０は、検査データと当該末端の分類器のＳＶＭ境界線との距離ｄを算出する（ステップＳ５８）。検査部８０は、ｄ≧０であるか否かを判定する（ステップＳ５９）。ステップＳ５９で「Ｙｅｓ」と判定された場合、検査部８０は、検査データが良データであると判定し、表示装置１０４に当該判定結果を表示させる（ステップＳ６０）。ステップＳ５９で「Ｎｏ」と判定された場合、検査部８０は、検査データが不良データであると判定し、表示装置１０４に当該判定結果を表示させる（ステップＳ６１）。このようにすることで、検査データの良否を判定することができる。
【００４９】
図１３は、テストルーチンを表すフローチャートを例示する図である。図１３で例示するように、検査部８０は、取得された分類器が末端の分類器であるか否かを判定する（ステップＳ７１）。ステップＳ７１で「Ｙｅｓ」と判定された場合、テストルーチンは終了する。ステップＳ７１で「Ｎｏ」と判定された場合、検査部８０は、分類器を用いて検査データを分類する。距離算出部３０は、検査データと分類器のＳＶＭ境界線との距離ｄを算出する（ステップＳ７２）。検査部８０は、ｄ＞第１閾値（＝１）であるか否かを判定する（ステップＳ７３）。ステップＳ７３で「Ｙｅｓ」と判定された場合、検査部８０は、検査データが良判定領域に属すると判定し、当該良判定領域に関連付けられている分類器を取得する（ステップＳ７４）。ステップＳ７３で「Ｎｏ」と判定された場合、検査部８０は、第２閾値（＝−１）≦ｄ≦第１閾値（＝１）であるか否かを判定する（ステップＳ７５）。ステップＳ７５で「Ｙｅｓ」と判定された場合、検査部８０は、検査データがあいまい領域に属すると判定し、当該あいまい領域に関連付けられている分類器を取得する（ステップＳ７６）。ステップＳ７５で「Ｎｏ」と判定された場合、検査部８０は、検査データが不良判定領域に属すると判定し、当該不良判定領域に関連付けられている分類器を取得する（ステップＳ７７）。以上の処理により、テストルーチンが終了する。
【００５０】
図１４は、検査処理の際に学習検査装置１００が実行するフローチャートの他の例を例示する図である。図１４で例示するように、図１２と同様のステップＳ４１〜Ｓ５７が実行される。ステップＳ４３、ステップＳ４７、ステップＳ５２、またはステップＳ５６で「Ｙｅｓ」と判定された場合、検査部８０は、末端の分類器を用いて当該検査データを分類する。距離算出部３０は、検査データと当該末端の分類器のＳＶＭ境界線との距離ｄを算出する（ステップＳ８１）。検査部８０は、ｄ＞第１閾値（＝１）であるか否かを判定する（ステップＳ８２）。ステップＳ８２で「Ｙｅｓ」と判定された場合、検査部８０は、検査データが良データであると判定し、表示装置１０４に当該判定結果を表示させる（ステップＳ８３）。ステップＳ８２で「Ｎｏ」と判定された場合、検査部８０は、第２閾値（＝−１）≦ｄ≦第１閾値（＝１）であるか否かを判定する（ステップＳ８４）。ステップＳ８４で「Ｙｅｓ」と判定された場合、検査データの良否判定が不可と判定し、表示装置１０４に当該判定結果を表示させる（ステップＳ８５）。ステップＳ８４で「Ｎｏ」と判定された場合、検査部８０は、検査データが不良データであると判定し、表示装置１０４に当該判定結果を表示させる（ステップＳ８６）。
【００５１】
本実施例に係る検査処理によれば、検査部８０は、検査対象の検査データに対して第１分類器１ａで分類を行う。距離算出部３０は、第１分類器１ａの第１ＳＶＭ境界線と検査対象との距離を算出する。検査部８０は、距離算出部３０が算出した距離に応じて、第２分類器２ａ、第３分類器２ｂおよび第４分類器２ｃのいずれかを選択し、選択した分類器を用いて検査対象を分類する。このように、検査データとＳＶＭ境界線との距離に応じて、予め生成しておいた３つの分類器から選択を行うことで、正確に良否判定できるようになる。
【００５２】
第１分類器１ａは、複数の学習データを含む第１学習データ群に対して機械学習することで生成された分類器であり、第２分類器２ａ、第３分類器２ｂおよび第４分類器２ｃは、それぞれ、第１分類器１ａに係る第１ＳＶＭ境界線と第１学習データ群の各学習データとの距離データに応じて第１学習データ群を分割することで得られた第２学習データ群、第３学習データ群および第４学習データ群に対して機械学習することで生成された分類器であることが好ましい。この場合、予め、機械学習によって適切な分類器を生成しておくことができるため、正確に良否判定できるようになる。
【００５３】
機械学習対象の学習データ群を用いた分類器およびＳＶＭ境界線の生成、各学習データと生成されたＳＶＭ境界線との距離の算出、および学習データ群の３つの学習データ群への分割は、ＳＶＭ境界線と各学習データとの距離データの分布が中央で分かれるまで繰り返され、生成された分類器に係るＳＶＭ境界線と各学習データとの距離データの分布が中央で分かれている場合に当該分類器に識別子が付されている。この場合において、距離算出部３０による距離の算出と、検査部８０による３つの分類器からの選択とが、距離算出部３０によって算出された距離に応じて選択される分類器に識別子が付されているまで繰り返されることが好ましい。この場合、距離データの分布が中央で分かれるまで分類器の生成が繰り返されるため、より正確に良否判定できるようになる。
【００５４】
なお、上記各例において、第１閾値および第２閾値の絶対値が同一であるが、それに限られない。例えば、第１閾値の絶対値と第２閾値の絶対値とが異なっていてもよい。
【００５５】
上記学習処理において、学習部２０が、複数の学習データを含む第１学習データ群に対して機械学習することで、第１分類器および第１ＳＶＭ境界線を生成し、第２学習データ群に対して機械学習することで第２分類器および第２ＳＶＭ境界線を生成し、第３学習データ群に対して機械学習することで第３分類器および第３ＳＶＭ境界線を生成し、第４学習データ群に対して機械学習することで第４分類器および第４ＳＶＭ境界線を生成する機械学習部の一例として機能する。距離算出部３０が、前記第１ＳＶＭ境界線と前記第１学習データ群の各学習データとの距離データを算出する算出部の一例として機能する。分割部５０が、前記距離データの分布が中央で分かれていない場合には、前記距離データに応じて、前記第１学習データ群を第２学習データ群、第３学習データ群および第４学習データ群に分割する分割部の一例として機能する。
【００５６】
上記検査処理において、検査部８０が、検査対象に対して第１分類器で分類を行い、算出部が算出した距離に応じて、第２分類器、第３分類器および第４分類器のいずれかを選択し、選択した分類器を用いて前記検査対象を分類する検査部の一例として機能する。距離算出部３０が、前記第１分類器の第１ＳＶＭ境界線と前記検査対象との距離を算出する算出部の一例として機能する。
【実施例２】
【００５７】
実施例１では、背景などの条件が異なるデータを、それぞれ異なる分類器で分類することによって正確に良否判定を行うことができる学習装置、検査装置、学習検査方法、学習プログラム、および検査プログラムについて説明した。ところで、学習データおよび検査データにおいて、背景模様に、ゴミや傷などの欠陥が含まれる場合がある。例えば、図１５（ａ）で例示するように、学習データの良データに、規則的な斑点模様の背景模様が含まれる場合がある。一方、学習データの不良データに、縞模様にシミなどの欠陥が含まれる場合がある。このような場合、精度の高い分類器を生成することが困難となる場合がある。
【００５８】
精度の高い分類器の生成ができないと、検査データの分類精度が低下する。例えば、図１５（ｂ）で例示するように、良データに分類されるべき検査データにはゴミなどの欠陥は含まれないが背景模様が存在する場合に、当該検査データが不良データに分類される場合がある。また、不良データに分類されるべき検査データにゴミなどの欠陥が含まれる場合に、当該検査データが良データに分類される場合がある。
【００５９】
したがって、ゴミや傷などの欠陥が含まれる背景模様の学習データと、欠陥が含まれない背景模様の学習データとが、それぞれ異なる領域に分類されることが好ましい。そこで、人が学習データを確認し、学習データから、欠陥が明確に視認できる学習データと、欠陥がほとんど視認されない学習データとを選択することが考えられる。この場合、欠陥が含まれているか否かが不明確な学習データを排除することができ、精度の高い分類器を生成できるようになる。
【００６０】
しかしながら、人が１つ１つのデータの背景模様を確認すると手間を要することになり、コストが増大する。そこで、背景模様が共通する学習データが同じグループに分類され、当該グループが、欠陥の無い背景模様を含む学習データと欠陥を含む背景模様を含む学習データとに分類されるような学習データを選択して学習することが望まれる。そこで、実施例２では、背景模様が共通する学習データ群が、欠陥の無い背景模様を含む学習データと欠陥を含む背景模様を含む学習データとに分類されるような学習データを選択する例について説明する。
【００６１】
図１６は、実施例２に係る学習検査装置１００ａの全体構成を例示するブロック図である。図１６で例示するように、学習検査装置１００ａが実施例１の学習検査装置１００と異なるのは、選択部９０をさらに備える点である。選択部９０は、ユーザによって入力される学習データ群から少なくとも一部の学習データを選択して学習データ格納部１０に格納する。以下、選択部９０の動作について説明する。
【００６２】
図１７は、選択部９０が実行するフローチャートを例示する図である。まず、選択部９０は、ユーザによって入力される学習データ群の各学習データについて、特徴量を抽出し、各学習データを特徴量空間においてマッピングする（ステップＳ９１）。図１８（ａ）は、マッピングの結果を例示する図である。図１８（ａ）の例では、特徴量Ａおよび特徴量Ｂの２軸が用いられている。例えば、特徴量として、平均輝度、輝度分布、コントラスト、周波数情報などを用いることができる。
【００６３】
次に、選択部９０は、抽出した特徴量を用いて、学習データ群に対してクラスタリングを行う（ステップＳ９２）。図１８（ｂ）は、クラスタリングの結果を例示する図である。図１８（ｂ）の例では、学習データ群が４つのクラスタに分類されている。各クラスタは、〇で囲まれている。クラスタリング手法は、特に限定されるものではない。例えば、クラスタリング手法として、Ｋ−ｍｅａｎｓ法などを用いることができる。画像において背景模様の占有面積が大きければ、同じ背景模様の学習データは同じクラスタに分類されると見込まれる。
【００６４】
次に、選択部９０は、要素数が最大のクラスタ（以下、最大クラスタと称する）を探す（ステップＳ９３）。最大クラスタを探索することで、支配的な背景特徴を有するクラスタを選択することができる。
【００６５】
次に、選択部９０は、最大クラスタの重心に１番近い学習データｉを探す（ステップＳ９４）。学習データｉとして、最大クラスタの中心付近の学習データを探索してもよく、最大クラスタに含まれるいずれかの学習データを探索してもよい。ただし、最大クラスタの重心に一番近い学習データを探索することで、最大クラスタの特徴量が最も反映された学習データを探索することができる。
【００６６】
次に、選択部９０は、特徴量空間における学習データｉと学習データｊとの距離を算出する（ステップＳ９５）。ステップＳ９５が最初に実行される際には、ｊ＝１である。次回以降、ｊに１が足し合わされる。それにより、各学習データとの距離が順に算出される。ステップＳ９５の実行後、選択部９０は、ｊが学習データ群の学習データ数よりも小さいか否かを判定する（ステップＳ９６）。ステップＳ９６で「Ｙｅｓ」と判定された場合、ステップＳ９５から再度実行される。ステップＳ９５およびステップＳ９６が繰り返し実行されることで、学習データｉと他の学習データとの距離が算出される。図１８（ｂ）では、算出結果が例示されている。
【００６７】
ステップＳ９６で「Ｎｏ」と判定された場合、選択部９０は、学習データｉとｋ番目に近い学習データを探す（ステップＳ９７）。ステップＳ９７が最初に実行される際には、ｋ＝１である。次回以降、ｋに１が足し合わされる。それにより、学習データｉと近い順に学習データが探索されることになる。次に、選択部９０は、学習データｋが学習データｉと同じクラスタかつ同じラベルであるか否かを判定する（ステップＳ９８）。ラベルとは、上述したように、「良」を表すラベルおよび「不良」を表すラベルである。ステップＳ９８で「Ｙｅｓ」と判定された場合、選択部９０は、学習データｋを採用する（ステップＳ９９）。ステップＳ９８で「Ｎｏ」と判定された場合、選択部９０は、学習データｋを不採用とする（ステップＳ１００）。ステップＳ９９またはステップＳ１００の実行後、選択部９０は、ｋがＮよりも小さいか否かを判定する（ステップＳ１０１）。ステップＳ１０１で「Ｙｅｓ」と判定された場合、ステップＳ９７から再度実行される。ステップＳ９７〜ステップＳ１０１が繰り返し実行されることで、最大クラスタ内で学習データｉから近いＮ個の学習データのうち学習データｉと同じラベルの学習データが採用される。
【００６８】
次に、選択部９０は、学習データｉとＬ番目に遠い学習データを探す（ステップＳ１０２）。ステップＳ１０２が最初に実行される際には、Ｌ＝１である。次回以降に、Ｌに１が足し合わされる。それにより、学習データｉと遠い順に学習データが探索されることになる。次に、選択部９０は、学習データＬが学習データｉと異なるクラスタかつ異なるラベルであるか否かを判定する（ステップＳ１０３）。ステップＳ１０３で「Ｙｅｓ」と判定された場合、選択部９０は、学習データＬを採用する（ステップＳ１０４）。ステップＳ１０３で「Ｎｏ」と判定された場合、選択部９０は、学習データＬを不採用とする（ステップＳ１０５）。ステップＳ１０４の実行後またはステップＳ１０５の実行後、選択部９０は、ＬがＭよりも小さいか否かを判定する（ステップＳ１０６）。ステップＳ１０６で「Ｙｅｓ」と判定された場合、ステップＳ１０２から再度実行される。ステップＳ１０２〜ステップＳ１０６が繰り返し実行されることで、最大クラスタ以外の学習データのうち、学習データｉから遠いＭ個の学習データのうち学習データｉと異なるラベルの学習データが採用される。
【００６９】
ステップＳ１０６で「Ｎｏ」と判定された場合、選択部９０は、採用された学習データと学習データｉとを、第１学習データ群として学習データ格納部１０に格納する（ステップＳ１０７）。図１８（ｃ）は、第１学習データ群を例示する。
【００７０】
本実施例によれば、特徴量空間上のクラスタラベルと距離という背景情報が各学習データに自動で付与される。それにより、ユーザは、学習データと、学習データごとの良否ラベルを与えるだけで、学習に適した学習データを自動で選択することができる。
【００７１】
また、特徴量空間上のクラスタラベルと距離とによって、学習させたい背景模様をもつ画像を自動で選択することができる。それにより、良否ラベルだけの入力情報から背景模様ごとに特化したアルゴリズムを生成するような段構造を生成できるようになる。また、背景模様ごとに特化した良否判定アルゴリズムが生成されるため、雑多な学習データに対する良否判定アルゴリズムに比べて良否判定の正答率が向上する。
【００７２】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７３】
１０  学習データ格納部
２０  学習部
３０  距離算出部
４０  判定部
５０  分割部
６０  分類器格納部
７０  検査データ格納部
８０  検査部
９０  選択部
１００  学習検査装置
１０４  表示装置
【図１】
2019164774.tif 000003
【図２】
2019164774.tif 000004
【図３】
2019164774.tif 000005
【図４】
2019164774.tif 000006
【図５】
2019164774.tif 000007
【図６】
2019164774.tif 000008
【図７】
2019164774.tif 000009
【図８】
2019164774.tif 000010
【図９】
2019164774.tif 000011
【図１０】
2019164774.tif 000012
【図１１】
2019164774.tif 000013
【図１２】
2019164774.tif 000014
【図１３】
2019164774.tif 000015
【図１４】
2019164774.tif 000016
【図１５】
2019164774.tif 000017
【図１６】
2019164774.tif 000018
【図１７】
2019164774.tif 000019
【図１８】
2019164774.tif 000020